Add periodic post fetching and update default Mastodon instance to mstdn.party

This commit is contained in:
2025-05-13 22:47:52 +03:30
parent 117fe3dd34
commit f9ec882cd9
2 changed files with 46 additions and 37 deletions

View File

@@ -15,6 +15,9 @@ func main() {
// Setup AppContext // Setup AppContext
var appContext = helpers.SetupAppContext() var appContext = helpers.SetupAppContext()
ticker := time.NewTicker(1 * time.Minute)
runFetchPosts := func() {
// Get posts // Get posts
ctx, cancel := context.WithTimeout(context.Background(), 10*time.Second) ctx, cancel := context.WithTimeout(context.Background(), 10*time.Second)
defer cancel() defer cancel()
@@ -30,26 +33,33 @@ func main() {
var newAccounts = appContext.PostService.GetNewAccounts(existingAccountIds, newPosts) var newAccounts = appContext.PostService.GetNewAccounts(existingAccountIds, newPosts)
// Save to database // Save to database
log.Println("Number of existing posts: ", len(existingPostIds)) log.Printf("Number of existing posts: %d, existing accounts: %d, new posts: %d, new accounts: %d\n", len(existingPostIds), len(existingAccountIds), len(newPosts), len(newAccounts))
log.Println("Number of existing accounts: ", len(existingAccountIds))
log.Println("Number of new posts: ", len(newPosts))
log.Println("Number of new accounts: ", len(newAccounts))
// Additional logging // Additional logging
if newAccounts != nil { if newAccounts != nil {
log.Println("Number of inserted accounts: ", appContext.PostService.InsertNewAccounts(newAccounts)) log.Println("Number of inserted accounts: ", appContext.PostService.InsertNewAccounts(newAccounts))
} else { } else {
log.Println("No new accounts inserted") log.Print(" - No new accounts inserted")
} }
if newPosts != nil { if newPosts != nil {
log.Println("Number of inserted posts: ", appContext.PostService.InsertNewPosts(newPosts)) log.Print(" - Number of inserted posts: ", appContext.PostService.InsertNewPosts(newPosts))
} else { } else {
log.Println("No new posts inserted") log.Print(" - No new posts inserted")
} }
}
go func() {
for range ticker.C {
runFetchPosts()
}
}()
// https://seefnasrul.medium.com/create-your-first-go-rest-api-with-jwt-authentication-in-gin-framework-dbe5bda72817 // https://seefnasrul.medium.com/create-your-first-go-rest-api-with-jwt-authentication-in-gin-framework-dbe5bda72817
engine := gin.Default() engine := gin.Default()
r := server.SetupRouter(engine) r := server.SetupRouter(engine)
r.Run(":8080") err := r.Run(":8080")
if err != nil {
log.Fatal(err)
}
} }

View File

@@ -14,14 +14,13 @@ func SetupAppContext() *internal.AppContext {
// Setup AppContext // Setup AppContext
instance := os.Getenv("INSTANCE") instance := os.Getenv("INSTANCE")
if instance == "" { if instance == "" {
instance = "https://haminoa.net" instance = "https://mstdn.party"
} }
tag := os.Getenv("TAG") tag := os.Getenv("TAG")
if tag == "" { if tag == "" {
tag = "catsofmastodon" tag = "catsofmastodon"
} }
// Setup database // Setup database
db, err := gorm.Open(sqlite.Open("test.db"), &gorm.Config{Logger: logger.Default.LogMode(logger.Warn)}) db, err := gorm.Open(sqlite.Open("test.db"), &gorm.Config{Logger: logger.Default.LogMode(logger.Warn)})
if err != nil { if err != nil {