package main import ( "CatsOfMastodonBotGo/internal/helpers" "CatsOfMastodonBotGo/internal/server" "context" "log" "os" "time" "github.com/gin-gonic/gin" "gorm.io/driver/sqlite" "gorm.io/gorm" "gorm.io/gorm/logger" ) func main() { var tag = os.Getenv("COM_TAG") if tag == "" { tag = "catsofmastodon" } var instance = os.Getenv("COM_INSTANCE") if instance == "" { instance = "https://haminoa.net" } ctx, cancel := context.WithTimeout(context.Background(), 10*time.Second) defer cancel() err, posts := helpers.GetPosts(ctx, tag, instance) if err != nil { panic(err) } log.Println("Number of fetched posts: ", len(posts)) db, err := gorm.Open(sqlite.Open("test.db"), &gorm.Config{Logger: logger.Default.LogMode(logger.Warn)}) if err != nil { panic("failed to connect database") } helpers.AddMigrations(db) var existingPostIds = helpers.GetExistingPostIds(db) var existingAccountIds = helpers.GetExistingAccountIds(db) var newPosts = helpers.GetNewPosts(existingPostIds, posts) var newAccounts = helpers.GetNewAccounts(existingAccountIds, newPosts) log.Println("Number of existing posts: ", len(existingPostIds)) log.Println("Number of existing accounts: ", len(existingAccountIds)) log.Println("Number of new posts: ", len(newPosts)) log.Println("Number of new accounts: ", len(newAccounts)) if newAccounts != nil { log.Println("Number of inserted accounts: ", helpers.InsertNewAccounts(db, newAccounts)) } else { log.Println("No new accounts inserted") } if newPosts != nil { log.Println("Number of inserted posts: ", helpers.InsertNewPosts(db, newPosts)) } else { log.Println("No new posts inserted") } // https://seefnasrul.medium.com/create-your-first-go-rest-api-with-jwt-authentication-in-gin-framework-dbe5bda72817 engine := gin.Default() r := server.SetupRouter(engine) r.Run(":8080") }