Something went wrong. Try again.
search and/or read your saved and liked bluesky posts
wails go svelte sqlite desktop bluesky
Something went wrong. Try again.
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687package main
import ( "context" "os" "path/filepath"
"github.com/wailsapp/wails/v2/pkg/runtime")
// App structtype App struct { ctx context.Context authService *AuthService indexService *IndexService searchService *SearchService logService *LogService}
// NewApp creates a new App application structfunc NewApp() *App { return &App{ authService: NewAuthService(), indexService: NewIndexService(), searchService: NewSearchService(), logService: NewLogService(), }}
// startup is called when the app starts. The context is saved so we can call// the runtime methods.func (a *App) startup(ctx context.Context) { a.ctx = ctx
a.authService.setContext(ctx) a.indexService.setContext(ctx) a.logService.setContext(ctx)
// Initialize log service first if err := a.logService.Initialize(); err != nil { runtime.LogErrorf(a.ctx, "failed to initialize log service: %v", err) } else { InitLogger(a.logService) LogInfo("Application started") }
dbPath := getDBPath() if err := Open(dbPath); err != nil { LogErrorf("failed to open database: %v", err) runtime.LogErrorf(a.ctx, "failed to open database: %v", err) return }
if a.authService.IsAuthenticated() { if err := a.authService.RefreshSession(); err != nil { LogWarnf("token refresh failed on startup: %v", err) runtime.LogWarningf(a.ctx, "token refresh failed on startup: %v", err) } }}
// shutdown is called when the app shuts downfunc (a *App) shutdown(ctx context.Context) { if err := Close(); err != nil { LogErrorf("failed to close database: %v", err) runtime.LogErrorf(ctx, "failed to close database: %v", err) } if err := a.logService.Close(); err != nil { runtime.LogErrorf(ctx, "failed to close log service: %v", err) }}
// getDBPath returns the path to the shared databasefunc getDBPath() string { if dir := os.Getenv("BSKY_BROWSER_DATA"); dir != "" { return filepath.Join(dir, "bsky-browser.db") }
configDir := os.Getenv("XDG_CONFIG_HOME") if configDir == "" { home, _ := os.UserHomeDir() configDir = filepath.Join(home, ".config") }
return filepath.Join(configDir, "bsky-browser", "bsky-browser.db")}