// 有效配置与登录方式的取用口。OAuth / Telegram 凭据迁移进后台系统设置后 // 不再是启动期常量:每次请求按「DB 设置叠加 env」现算(Res.Config 自带 // 短缓存),后台改完凭据不用重启就生效。 package api import ( "oneblog/internal/auth" "oneblog/internal/config" "oneblog/internal/storage" ) // cfg 返回当前请求应使用的有效配置。 func (a *API) cfg() *config.Config { if a.Res != nil { return a.Res.Config() } return a.Cfg } // blobs 返回当前存储后端(Res 存在时支持后台改配置热重建)。 func (a *API) blobs() storage.BlobStore { if a.Res != nil { if b := a.Res.Blobs(); b != nil { return b } } return a.blobs() } // 三个读者登录方式。凭据为空时 Enabled() 为 false,相关端点自动 404。 func (a *API) gh() auth.GitHub { c := a.cfg() return auth.GitHub{ClientID: c.GitHubClientID, ClientSecret: c.GitHubClientSecret} } func (a *API) gg() auth.Google { c := a.cfg() return auth.Google{ClientID: c.GoogleClientID, ClientSecret: c.GoogleClientSecret} } func (a *API) tg() auth.Telegram { c := a.cfg() return auth.Telegram{Bot: c.TelegramBot, Token: c.TelegramToken} } // siteURL 去掉尾部斜杠的站点地址(OAuth 回调、RSS 链接的拼装基座)。 func (a *API) siteURL() string { return a.cfg().SiteURL }