Update things to allow for shared links.
- fix non-looping loop to pull in new icons - ghetto fix for timing issue on db creation
This commit is contained in:
parent
728f9e1675
commit
dc3dc81238
@ -2,6 +2,7 @@
|
|||||||
<project version="4">
|
<project version="4">
|
||||||
<component name="SqlDialectMappings">
|
<component name="SqlDialectMappings">
|
||||||
<file url="file://$PROJECT_DIR$/queries.sql" dialect="GenericSQL" />
|
<file url="file://$PROJECT_DIR$/queries.sql" dialect="GenericSQL" />
|
||||||
|
<file url="file://$PROJECT_DIR$/schema.sql" dialect="SQLite" />
|
||||||
<file url="PROJECT" dialect="SQLite" />
|
<file url="PROJECT" dialect="SQLite" />
|
||||||
</component>
|
</component>
|
||||||
</project>
|
</project>
|
@ -78,17 +78,19 @@ function deleteItem(path, id) {
|
|||||||
}
|
}
|
||||||
function sendLinkData() {
|
function sendLinkData() {
|
||||||
return __awaiter(this, void 0, void 0, function () {
|
return __awaiter(this, void 0, void 0, function () {
|
||||||
var ln, lu, ll, data;
|
var ln, lu, ll, ls, data;
|
||||||
return __generator(this, function (_a) {
|
return __generator(this, function (_a) {
|
||||||
switch (_a.label) {
|
switch (_a.label) {
|
||||||
case 0:
|
case 0:
|
||||||
ln = document.getElementById("linkname");
|
ln = document.getElementById("linkname");
|
||||||
lu = document.getElementById('linkurl');
|
lu = document.getElementById('linkurl');
|
||||||
ll = document.getElementById('logourl');
|
ll = document.getElementById('logourl');
|
||||||
|
ls = document.getElementById('linkshared');
|
||||||
data = {};
|
data = {};
|
||||||
data.Url = lu.value;
|
data.Url = lu.value;
|
||||||
data.Name = ln.value;
|
data.Name = ln.value;
|
||||||
data.Logo_Url = ll.value;
|
data.Logo_Url = ll.value;
|
||||||
|
data.Shared = ls.checked;
|
||||||
return [4 /*yield*/, postData('/links', data)];
|
return [4 /*yield*/, postData('/links', data)];
|
||||||
case 1:
|
case 1:
|
||||||
_a.sent();
|
_a.sent();
|
||||||
|
@ -24,6 +24,7 @@ interface Link {
|
|||||||
Url: string
|
Url: string
|
||||||
Name: string
|
Name: string
|
||||||
Clicked: number|null
|
Clicked: number|null
|
||||||
|
Shared: boolean
|
||||||
Logo_Url: string
|
Logo_Url: string
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -67,10 +68,12 @@ async function sendLinkData() {
|
|||||||
const ln = document.getElementById("linkname") as HTMLInputElement;
|
const ln = document.getElementById("linkname") as HTMLInputElement;
|
||||||
const lu = document.getElementById('linkurl') as HTMLInputElement;
|
const lu = document.getElementById('linkurl') as HTMLInputElement;
|
||||||
const ll = document.getElementById('logourl') as HTMLInputElement;
|
const ll = document.getElementById('logourl') as HTMLInputElement;
|
||||||
|
const ls = document.getElementById('linkshared') as HTMLInputElement;
|
||||||
let data = {} as Link;
|
let data = {} as Link;
|
||||||
data.Url = lu.value;
|
data.Url = lu.value;
|
||||||
data.Name = ln.value;
|
data.Name = ln.value;
|
||||||
data.Logo_Url = ll.value;
|
data.Logo_Url = ll.value;
|
||||||
|
data.Shared = ls.checked;
|
||||||
await postData('/links', data);
|
await postData('/links', data);
|
||||||
}
|
}
|
||||||
async function sendWatchData() {
|
async function sendWatchData() {
|
||||||
|
108
main.go
108
main.go
@ -59,8 +59,12 @@ func main() {
|
|||||||
log.Fatal("can't get ts local client: ", err)
|
log.Fatal("can't get ts local client: ", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
dbExists := false
|
||||||
if *dbFile == ":memory:" {
|
if *dbFile == ":memory:" {
|
||||||
tmpDBPopulate(db)
|
err := tmpDBPopulate(db)
|
||||||
|
if err != nil {
|
||||||
|
log.Fatal(err)
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
if _, err := os.Stat(*dbFile); os.IsNotExist(err) {
|
if _, err := os.Stat(*dbFile); os.IsNotExist(err) {
|
||||||
log.Println("Creating database..")
|
log.Println("Creating database..")
|
||||||
@ -69,6 +73,10 @@ func main() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
go func() {
|
||||||
|
time.Sleep(6 * time.Second)
|
||||||
|
dbExists = true
|
||||||
|
}()
|
||||||
|
|
||||||
if *key != "" {
|
if *key != "" {
|
||||||
keyData, err := os.ReadFile(*key)
|
keyData, err := os.ReadFile(*key)
|
||||||
@ -139,57 +147,67 @@ func main() {
|
|||||||
|
|
||||||
go func() {
|
go func() {
|
||||||
for {
|
for {
|
||||||
var err error
|
if dbExists {
|
||||||
app.watches, err = UpdateWatches(ghToken)
|
var err error
|
||||||
if err != nil {
|
app.watches, err = UpdateWatches(ghToken)
|
||||||
log.Fatal("can't update watches: ", err)
|
if err != nil {
|
||||||
|
log.Fatal("can't update watches: ", err)
|
||||||
|
}
|
||||||
|
time.Sleep(time.Duration(*watchInterval) * time.Minute)
|
||||||
|
} else {
|
||||||
|
time.Sleep(3 * time.Second)
|
||||||
}
|
}
|
||||||
time.Sleep(time.Duration(*watchInterval) * time.Minute)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}()
|
}()
|
||||||
|
|
||||||
go func() {
|
go func() {
|
||||||
links, err := app.queries.GetAllLinks(app.ctx)
|
if dbExists {
|
||||||
if err != nil {
|
for {
|
||||||
log.Fatal("can't get links: ", err)
|
links, err := app.queries.GetAllLinks(app.ctx)
|
||||||
|
if err != nil {
|
||||||
|
log.Fatal("can't get links: ", err)
|
||||||
|
}
|
||||||
|
|
||||||
|
for _, link := range links {
|
||||||
|
fmt.Println(link.LogoUrl)
|
||||||
|
if link.LogoUrl == "" {
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
resp, err := http.Get(link.LogoUrl)
|
||||||
|
if err != nil {
|
||||||
|
log.Println(err)
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
|
||||||
|
body, err := io.ReadAll(resp.Body)
|
||||||
|
if err != nil {
|
||||||
|
log.Println(err)
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
err = resp.Body.Close()
|
||||||
|
if err != nil {
|
||||||
|
log.Println(err)
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
contentType := resp.Header.Get("Content-Type")
|
||||||
|
|
||||||
|
err = app.queries.AddIcon(app.ctx, data.AddIconParams{
|
||||||
|
OwnerID: link.OwnerID,
|
||||||
|
LinkID: link.ID,
|
||||||
|
ContentType: contentType,
|
||||||
|
Data: body,
|
||||||
|
})
|
||||||
|
if err != nil {
|
||||||
|
log.Fatal("can't add icon: ", err)
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
time.Sleep(24 * time.Hour)
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
time.Sleep(3 * time.Second)
|
||||||
}
|
}
|
||||||
|
|
||||||
for _, link := range links {
|
|
||||||
fmt.Println(link.LogoUrl)
|
|
||||||
if link.LogoUrl == "" {
|
|
||||||
continue
|
|
||||||
}
|
|
||||||
resp, err := http.Get(link.LogoUrl)
|
|
||||||
if err != nil {
|
|
||||||
log.Println(err)
|
|
||||||
continue
|
|
||||||
}
|
|
||||||
|
|
||||||
body, err := io.ReadAll(resp.Body)
|
|
||||||
if err != nil {
|
|
||||||
log.Println(err)
|
|
||||||
continue
|
|
||||||
}
|
|
||||||
err = resp.Body.Close()
|
|
||||||
if err != nil {
|
|
||||||
log.Println(err)
|
|
||||||
continue
|
|
||||||
}
|
|
||||||
contentType := resp.Header.Get("Content-Type")
|
|
||||||
|
|
||||||
err = app.queries.AddIcon(app.ctx, data.AddIconParams{
|
|
||||||
OwnerID: link.OwnerID,
|
|
||||||
LinkID: link.ID,
|
|
||||||
ContentType: contentType,
|
|
||||||
Data: body,
|
|
||||||
})
|
|
||||||
if err != nil {
|
|
||||||
log.Fatal("can't add icon: ", err)
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
||||||
time.Sleep(24 * time.Hour)
|
|
||||||
}()
|
}()
|
||||||
|
|
||||||
hs := &http.Server{
|
hs := &http.Server{
|
||||||
|
@ -131,6 +131,10 @@
|
|||||||
URL
|
URL
|
||||||
<input id="linkurl" type="text" name="url" placeholder="https://..." required>
|
<input id="linkurl" type="text" name="url" placeholder="https://..." required>
|
||||||
</label>
|
</label>
|
||||||
|
<label for="shared">
|
||||||
|
Shared
|
||||||
|
<input id="linkshared" type="checkbox" required>
|
||||||
|
</label>
|
||||||
<label for="logourl">
|
<label for="logourl">
|
||||||
Logo URL
|
Logo URL
|
||||||
<input id="logourl" type="text" name="logourl" placeholder="https://..." required>
|
<input id="logourl" type="text" name="logourl" placeholder="https://..." required>
|
||||||
|
20
tmp.go
20
tmp.go
@ -7,10 +7,10 @@ import (
|
|||||||
"suah.dev/gostart/data"
|
"suah.dev/gostart/data"
|
||||||
)
|
)
|
||||||
|
|
||||||
func tmpDBPopulate(db *sql.DB) {
|
func tmpDBPopulate(db *sql.DB) error {
|
||||||
log.Println("CREATING TEMP DATABASE!")
|
log.Println("CREATING TEMP DATABASE!")
|
||||||
if _, err := db.ExecContext(app.ctx, schema); err != nil {
|
if _, err := db.ExecContext(app.ctx, schema); err != nil {
|
||||||
log.Fatal("can't create schema in temp db: ", err)
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
ownerID := int64(57395170551826799)
|
ownerID := int64(57395170551826799)
|
||||||
@ -20,15 +20,18 @@ func tmpDBPopulate(db *sql.DB) {
|
|||||||
Name: "europa.humpback-trout.ts.net.",
|
Name: "europa.humpback-trout.ts.net.",
|
||||||
})
|
})
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Fatal("can't add temp owner: ", err)
|
return err
|
||||||
}
|
}
|
||||||
b, err := app.queries.AddLink(app.ctx, data.AddLinkParams{
|
_, err = app.queries.AddLink(app.ctx, data.AddLinkParams{
|
||||||
OwnerID: ownerID,
|
OwnerID: ownerID,
|
||||||
Url: "https://tapenet.org",
|
Url: "https://tapenet.org",
|
||||||
Name: "Tape::Net",
|
Name: "Tape::Net",
|
||||||
|
Shared: true,
|
||||||
LogoUrl: "https://git.tapenet.org/assets/img/logo.svg",
|
LogoUrl: "https://git.tapenet.org/assets/img/logo.svg",
|
||||||
})
|
})
|
||||||
log.Println(b, err)
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
_, err = app.queries.AddPullRequest(app.ctx, data.AddPullRequestParams{
|
_, err = app.queries.AddPullRequest(app.ctx, data.AddPullRequestParams{
|
||||||
OwnerID: ownerID,
|
OwnerID: ownerID,
|
||||||
@ -36,7 +39,7 @@ func tmpDBPopulate(db *sql.DB) {
|
|||||||
Repo: "NixOS/nixpkgs",
|
Repo: "NixOS/nixpkgs",
|
||||||
})
|
})
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Fatal("can't add temp PR: ", err)
|
return err
|
||||||
}
|
}
|
||||||
_, err = app.queries.AddWatchItem(app.ctx, data.AddWatchItemParams{
|
_, err = app.queries.AddWatchItem(app.ctx, data.AddWatchItemParams{
|
||||||
Name: "tailscale",
|
Name: "tailscale",
|
||||||
@ -44,6 +47,9 @@ func tmpDBPopulate(db *sql.DB) {
|
|||||||
OwnerID: ownerID,
|
OwnerID: ownerID,
|
||||||
})
|
})
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Fatal("can't add temp watch item: ", err)
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
log.Println("Done setting up tmp DB")
|
||||||
|
return nil
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user