Auto update yt-dlp

This commit is contained in:
Nonoo 2023-10-01 11:41:15 +02:00
parent 1d75df37cf
commit 548e7effb7
2 changed files with 21 additions and 6 deletions

19
main.go
View File

@ -176,14 +176,29 @@ func main() {
fmt.Println("telegram connection up") fmt.Println("telegram connection up")
ytdlpVersionCheckStr, _ := ytdlpVersionCheckGetStr(ctx) ytdlpVersionCheckStr, updateNeeded, _ := ytdlpVersionCheckGetStr(ctx)
if updateNeeded {
goutubedl.Path, err = ytdlpDownloadLatest(ctx)
if err != nil {
panic(fmt.Sprint("error: ", err))
}
ytdlpVersionCheckStr, _, _ = ytdlpVersionCheckGetStr(ctx)
}
sendTextToAdmins(ctx, "🤖 Bot started, "+ytdlpVersionCheckStr) sendTextToAdmins(ctx, "🤖 Bot started, "+ytdlpVersionCheckStr)
go func() { go func() {
for { for {
time.Sleep(24 * time.Hour) time.Sleep(24 * time.Hour)
if s, updateNeededOrError := ytdlpVersionCheckGetStr(ctx); updateNeededOrError { s, updateNeeded, gotError := ytdlpVersionCheckGetStr(ctx)
if gotError {
sendTextToAdmins(ctx, s) sendTextToAdmins(ctx, s)
} else if updateNeeded {
goutubedl.Path, err = ytdlpDownloadLatest(ctx)
if err != nil {
panic(fmt.Sprint("error: ", err))
}
ytdlpVersionCheckStr, _, _ = ytdlpVersionCheckGetStr(ctx)
sendTextToAdmins(ctx, "🤖 Bot updated, "+ytdlpVersionCheckStr)
} }
} }
}() }()

View File

@ -120,19 +120,19 @@ func ytdlpVersionCheck(ctx context.Context) (latestVersion, currentVersion strin
return return
} }
func ytdlpVersionCheckGetStr(ctx context.Context) (res string, updateNeededOrError bool) { func ytdlpVersionCheckGetStr(ctx context.Context) (res string, updateNeeded, gotError bool) {
verCheckCtx, verCheckCtxCancel := context.WithTimeout(ctx, ytdlpVersionCheckTimeout) verCheckCtx, verCheckCtxCancel := context.WithTimeout(ctx, ytdlpVersionCheckTimeout)
defer verCheckCtxCancel() defer verCheckCtxCancel()
var latestVersion, currentVersion string var latestVersion, currentVersion string
var err error var err error
if latestVersion, currentVersion, err = ytdlpVersionCheck(verCheckCtx); err != nil { if latestVersion, currentVersion, err = ytdlpVersionCheck(verCheckCtx); err != nil {
return errorStr + ": " + err.Error(), true return errorStr + ": " + err.Error(), false, true
} }
updateNeededOrError = currentVersion != latestVersion updateNeeded = currentVersion != latestVersion
res = "yt-dlp version: " + currentVersion res = "yt-dlp version: " + currentVersion
if updateNeededOrError { if updateNeeded {
res = "📢 " + res + " 📢 Update needed! Latest version is " + latestVersion + " 📢" res = "📢 " + res + " 📢 Update needed! Latest version is " + latestVersion + " 📢"
} else { } else {
res += " (up to date)" res += " (up to date)"