From bda3b1e05ba38f1fb31e4dc61d188774243a4d54 Mon Sep 17 00:00:00 2001 From: lyx0 <66651385+lyx0@users.noreply.github.com> Date: Thu, 5 Oct 2023 21:21:26 +0200 Subject: [PATCH] move download/upload into application --- cmd/nourybot/commands.go | 8 +- cmd/nourybot/download.go | 223 +++++++++++++++++ {internal/commands => cmd/nourybot}/upload.go | 146 +++++------ internal/commands/download.go | 234 ------------------ 4 files changed, 291 insertions(+), 320 deletions(-) create mode 100644 cmd/nourybot/download.go rename {internal/commands => cmd/nourybot}/upload.go (53%) delete mode 100644 internal/commands/download.go diff --git a/cmd/nourybot/commands.go b/cmd/nourybot/commands.go index 12e7432..b1bdb9d 100644 --- a/cmd/nourybot/commands.go +++ b/cmd/nourybot/commands.go @@ -84,16 +84,16 @@ func (app *application) handleCommand(message twitch.PrivateMessage) { } case "catbox": - go commands.NewDownload("catbox", target, cmdParams[1], app.TwitchClient, app.Log) + go app.NewDownload("catbox", target, cmdParams[1]) case "kappa": - go commands.NewDownload("kappa", target, cmdParams[1], app.TwitchClient, app.Log) + go app.NewDownload("kappa", target, cmdParams[1]) case "yaf": - go commands.NewDownload("yaf", target, cmdParams[1], app.TwitchClient, app.Log) + go app.NewDownload("yaf", target, cmdParams[1]) case "gofile": - go commands.NewDownload("gofile", target, cmdParams[1], app.TwitchClient, app.Log) + go app.NewDownload("gofile", target, cmdParams[1]) case "mail": app.SendEmail("Test command used!", "This is an email test") diff --git a/cmd/nourybot/download.go b/cmd/nourybot/download.go new file mode 100644 index 0000000..e33bf7e --- /dev/null +++ b/cmd/nourybot/download.go @@ -0,0 +1,223 @@ +package main + +import ( + "context" + "fmt" + "io" + "os" + + "github.com/google/uuid" + "github.com/wader/goutubedl" +) + +func (app *application) NewDownload(destination, target, link string) { + + switch destination { + case "catbox": + app.CatboxDownload(target, link) + case "yaf": + app.YafDownload(target, link) + case "kappa": + app.KappaDownload(target, link) + case "gofile": + app.GofileDownload(target, link) + } +} + +func (app *application) YafDownload(target, link string) { + goutubedl.Path = "yt-dlp" + + app.Send(target, "Downloading... dankCircle") + result, err := goutubedl.New(context.Background(), link, goutubedl.Options{}) + if err != nil { + app.Log.Errorln(err) + app.Send(target, fmt.Sprintf("Something went wrong FeelsBadMan: %q", err)) + return + } + rExt := result.Info.Ext + downloadResult, err := result.Download(context.Background(), "best") + if err != nil { + app.Log.Errorln(err) + app.Send(target, fmt.Sprintf("Something went wrong FeelsBadMan: %q", err)) + return + } + app.Send(target, "Downloaded.") + uuidFilename, err := uuid.NewUUID() + if err != nil { + app.Log.Errorln(err) + app.Send(target, fmt.Sprintf("Something went wrong FeelsBadMan: %q", err)) + return + } + fileName := fmt.Sprintf("%s.%s", uuidFilename, rExt) + f, err := os.Create(fileName) + app.Send(target, fmt.Sprintf("Filename: %s", fileName)) + + if err != nil { + app.Log.Errorln(err) + app.Send(target, fmt.Sprintf("Something went wrong FeelsBadMan: %q", err)) + return + } + defer f.Close() + if _, err = io.Copy(f, downloadResult); err != nil { + app.Log.Errorln(err) + app.Send(target, fmt.Sprintf("Something went wrong FeelsBadMan: %q", err)) + return + } + + downloadResult.Close() + f.Close() + // duration := 5 * time.Second + // dl.twitchClient.Say(target, "ResidentSleeper ..") + // time.Sleep(duration) + + go app.NewUpload("yaf", fileName, target) + +} + +func (app *application) KappaDownload(target, link string) { + goutubedl.Path = "yt-dlp" + + app.Send(target, "Downloading... dankCircle") + result, err := goutubedl.New(context.Background(), link, goutubedl.Options{}) + if err != nil { + app.Log.Errorln(err) + app.Send(target, fmt.Sprintf("Something went wrong FeelsBadMan: %q", err)) + return + } + rExt := result.Info.Ext + downloadResult, err := result.Download(context.Background(), "best") + if err != nil { + app.Log.Errorln(err) + app.Send(target, fmt.Sprintf("Something went wrong FeelsBadMan: %q", err)) + return + } + app.Send(target, "Downloaded.") + uuidFilename, err := uuid.NewUUID() + if err != nil { + app.Log.Errorln(err) + app.Send(target, fmt.Sprintf("Something went wrong FeelsBadMan: %q", err)) + return + } + fileName := fmt.Sprintf("%s.%s", uuidFilename, rExt) + f, err := os.Create(fileName) + app.Send(target, fmt.Sprintf("Filename: %s", fileName)) + + if err != nil { + app.Log.Errorln(err) + app.Send(target, fmt.Sprintf("Something went wrong FeelsBadMan: %q", err)) + return + } + defer f.Close() + if _, err = io.Copy(f, downloadResult); err != nil { + app.Log.Errorln(err) + app.Send(target, fmt.Sprintf("Something went wrong FeelsBadMan: %q", err)) + return + } + + downloadResult.Close() + f.Close() + // duration := 5 * time.Second + // dl.twitchClient.Say(target, "ResidentSleeper ..") + // time.Sleep(duration) + + go app.NewUpload("kappa", fileName, target) + +} + +func (app *application) GofileDownload(target, link string) { + goutubedl.Path = "yt-dlp" + + app.Send(target, "Downloading... dankCircle") + result, err := goutubedl.New(context.Background(), link, goutubedl.Options{}) + if err != nil { + app.Log.Errorln(err) + app.Send(target, fmt.Sprintf("Something went wrong FeelsBadMan: %q", err)) + return + } + safeFilename := fmt.Sprintf("download_%s", result.Info.Title) + rExt := result.Info.Ext + downloadResult, err := result.Download(context.Background(), "best") + if err != nil { + app.Log.Errorln(err) + app.Send(target, fmt.Sprintf("Something went wrong FeelsBadMan: %q", err)) + return + } + app.Send(target, "Downloaded.") + fileName := fmt.Sprintf("%s.%s", safeFilename, rExt) + f, err := os.Create(fileName) + app.TwitchClient.Say(target, fmt.Sprintf("Filename: %s", fileName)) + + if err != nil { + app.Log.Errorln(err) + app.Send(target, fmt.Sprintf("Something went wrong FeelsBadMan: %q", err)) + return + } + defer f.Close() + if _, err = io.Copy(f, downloadResult); err != nil { + app.Log.Errorln(err) + app.Send(target, fmt.Sprintf("Something went wrong FeelsBadMan: %q", err)) + return + } + + downloadResult.Close() + f.Close() + // duration := 5 * time.Second + // dl.twitchClient.Say(target, "ResidentSleeper ..") + // time.Sleep(duration) + + go app.NewUpload("gofile", fileName, target) + +} + +func (app *application) CatboxDownload(target, link string) { + goutubedl.Path = "yt-dlp" + var fileName string + + app.Send(target, "Downloading... dankCircle") + result, err := goutubedl.New(context.Background(), link, goutubedl.Options{}) + if err != nil { + app.Log.Errorln(err) + app.Send(target, fmt.Sprintf("Something went wrong FeelsBadMan: %q", err)) + return + } + + // I don't know why but I need to set it to mp4, otherwise if + // I use `result.Into.Ext` catbox won't play the video in the + // browser and say this message: + // `No video with supported format and MIME type found.` + rExt := "mp4" + + downloadResult, err := result.Download(context.Background(), "best") + if err != nil { + app.Log.Errorln(err) + app.Send(target, fmt.Sprintf("Something went wrong FeelsBadMan: %q", err)) + return + } + app.Send(target, "Downloaded.") + uuidFilename, err := uuid.NewUUID() + if err != nil { + app.Log.Errorln(err) + app.Send(target, fmt.Sprintf("Something went wrong FeelsBadMan: %q", err)) + return + } + fileName = fmt.Sprintf("%s.%s", uuidFilename, rExt) + f, err := os.Create(fileName) + app.Send(target, fmt.Sprintf("Filename: %s", fileName)) + + if err != nil { + app.Log.Errorln(err) + app.Send(target, fmt.Sprintf("Something went wrong FeelsBadMan: %q", err)) + return + } + defer f.Close() + if _, err = io.Copy(f, downloadResult); err != nil { + app.Log.Errorln(err) + app.Send(target, fmt.Sprintf("Something went wrong FeelsBadMan: %q", err)) + return + } + + downloadResult.Close() + f.Close() + + go app.NewUpload("catbox", fileName, target) +} diff --git a/internal/commands/upload.go b/cmd/nourybot/upload.go similarity index 53% rename from internal/commands/upload.go rename to cmd/nourybot/upload.go index 1b1577d..93485f6 100644 --- a/internal/commands/upload.go +++ b/cmd/nourybot/upload.go @@ -6,7 +6,7 @@ // Use of this source code is governed by the MIT // license that can be found in the LICENSE file. -package commands +package main import ( "encoding/json" @@ -18,9 +18,6 @@ import ( "os" "path/filepath" "time" - - "github.com/gempir/go-twitch-irc/v4" - "go.uber.org/zap" ) const ( @@ -30,48 +27,30 @@ const ( YAF_ENDPOINT = "https://i.yaf.ee/upload" ) -type Uploader struct { - Client *http.Client - Time string - Userhash string - TwitchClient *twitch.Client - Log *zap.SugaredLogger -} - -func NewUpload(destination, fileName, target string, twitchClient *twitch.Client, log *zap.SugaredLogger) { - client := &http.Client{ - Timeout: 300 * time.Second, - } - - ul := &Uploader{ - Client: client, - Time: "24h", - TwitchClient: twitchClient, - Log: log, - } +func (app *application) NewUpload(destination, fileName, target string) { switch destination { case "catbox": - go ul.CatboxUpload(target, fileName) + go app.CatboxUpload(target, fileName) case "yaf": - go ul.YafUpload(target, fileName) + go app.YafUpload(target, fileName) case "kappa": - go ul.KappaUpload(target, fileName) + go app.KappaUpload(target, fileName) case "gofile": - go ul.GofileUpload(target, fileName) + go app.GofileUpload(target, fileName) } } -func (ul *Uploader) CatboxUpload(target, fileName string) { +func (app *application) CatboxUpload(target, fileName string) { defer os.Remove(fileName) file, err := os.Open(fileName) if err != nil { - ul.TwitchClient.Say(target, fmt.Sprintf("Something went wrong FeelsBadMan: %q", err)) + app.Send(target, fmt.Sprintf("Something went wrong FeelsBadMan: %q", err)) return } defer file.Close() - ul.TwitchClient.Say(target, "Uploading to catbox.moe... dankCircle") + app.Send(target, "Uploading to catbox.moe... dankCircle") // if size := helper.FileSize(fileName); size > 209715200 { // return "", fmt.Errorf("file too large, size: %d MB", size/1024/1024) @@ -85,10 +64,10 @@ func (ul *Uploader) CatboxUpload(target, fileName string) { defer m.Close() m.WriteField("reqtype", "fileupload") - m.WriteField("time", ul.Time) + m.WriteField("time", "24h") part, err := m.CreateFormFile("fileToUpload", filepath.Base(file.Name())) if err != nil { - ul.TwitchClient.Say(target, fmt.Sprintf("Something went wrong FeelsBadMan: %q", err)) + app.Send(target, fmt.Sprintf("Something went wrong FeelsBadMan: %q", err)) return } @@ -100,27 +79,31 @@ func (ul *Uploader) CatboxUpload(target, fileName string) { req, _ := http.NewRequest(http.MethodPost, CATBOX_ENDPOINT, r) req.Header.Add("Content-Type", m.FormDataContentType()) - resp, err := ul.Client.Do(req) + client := &http.Client{ + Timeout: 300 * time.Second, + } + + resp, err := client.Do(req) if err != nil { - ul.TwitchClient.Say(target, fmt.Sprintf("Something went wrong FeelsBadMan: %q", err)) + app.Send(target, fmt.Sprintf("Something went wrong FeelsBadMan: %q", err)) return } defer resp.Body.Close() body, err := ioutil.ReadAll(resp.Body) if err != nil { - ul.TwitchClient.Say(target, fmt.Sprintf("Something went wrong FeelsBadMan: %q", err)) + app.Send(target, fmt.Sprintf("Something went wrong FeelsBadMan: %q", err)) return } reply := string(body) - ul.TwitchClient.Say(target, fmt.Sprintf("Removing file: %s", fileName)) - ul.TwitchClient.Say(target, reply) + app.Send(target, fmt.Sprintf("Removing file: %s", fileName)) + app.Send(target, reply) } -func (ul *Uploader) GofileUpload(target, path string) { +func (app *application) GofileUpload(target, path string) { defer os.Remove(path) - ul.TwitchClient.Say(target, "Uploading to gofile.io... dankCircle") + app.Send(target, "Uploading to gofile.io... dankCircle") pr, pw := io.Pipe() form := multipart.NewWriter(pw) @@ -143,21 +126,21 @@ func (ul *Uploader) GofileUpload(target, path string) { file, err := os.Open(path) // path to image file if err != nil { - ul.TwitchClient.Say(target, fmt.Sprintf("Something went wrong FeelsBadMan: %q", err)) + app.Send(target, fmt.Sprintf("Something went wrong FeelsBadMan: %q", err)) os.Remove(path) return } w, err := form.CreateFormFile("file", path) if err != nil { - ul.TwitchClient.Say(target, fmt.Sprintf("Something went wrong FeelsBadMan: %q", err)) + app.Send(target, fmt.Sprintf("Something went wrong FeelsBadMan: %q", err)) os.Remove(path) return } _, err = io.Copy(w, file) if err != nil { - ul.TwitchClient.Say(target, fmt.Sprintf("Something went wrong FeelsBadMan: %q", err)) + app.Send(target, fmt.Sprintf("Something went wrong FeelsBadMan: %q", err)) os.Remove(path) return } @@ -167,7 +150,7 @@ func (ul *Uploader) GofileUpload(target, path string) { req, err := http.NewRequest(http.MethodPost, GOFILE_ENDPOINT, pr) if err != nil { - ul.TwitchClient.Say(target, fmt.Sprintf("Something went wrong FeelsBadMan: %q", err)) + app.Send(target, fmt.Sprintf("Something went wrong FeelsBadMan: %q", err)) os.Remove(path) return } @@ -178,39 +161,39 @@ func (ul *Uploader) GofileUpload(target, path string) { } resp, err := httpClient.Do(req) if err != nil { - ul.TwitchClient.Say(target, fmt.Sprintf("Something went wrong FeelsBadMan: %q", err)) + app.Send(target, fmt.Sprintf("Something went wrong FeelsBadMan: %q", err)) os.Remove(path) - ul.Log.Errorln("Error while sending HTTP request:", err) + app.Log.Errorln("Error while sending HTTP request:", err) return } defer resp.Body.Close() - ul.TwitchClient.Say(target, "Uploaded PogChamp") + app.Send(target, "Uploaded PogChamp") body, err := io.ReadAll(resp.Body) if err != nil { - ul.TwitchClient.Say(target, fmt.Sprintf("Something went wrong FeelsBadMan: %q", err)) + app.Send(target, fmt.Sprintf("Something went wrong FeelsBadMan: %q", err)) os.Remove(path) - ul.Log.Errorln("Error while reading response:", err) + app.Log.Errorln("Error while reading response:", err) return } jsonResponse := new(gofileResponse) if err := json.Unmarshal(body, jsonResponse); err != nil { - ul.TwitchClient.Say(target, fmt.Sprintf("Something went wrong FeelsBadMan: %q", err)) - ul.Log.Errorln("Error while unmarshalling JSON response:", err) + app.Send(target, fmt.Sprintf("Something went wrong FeelsBadMan: %q", err)) + app.Log.Errorln("Error while unmarshalling JSON response:", err) return } var reply = jsonResponse.Data.DownloadPage - ul.TwitchClient.Say(target, fmt.Sprintf("Removing file: %s", path)) - ul.TwitchClient.Say(target, reply) + app.Send(target, fmt.Sprintf("Removing file: %s", path)) + app.Send(target, reply) } -func (ul *Uploader) KappaUpload(target, path string) { +func (app *application) KappaUpload(target, path string) { defer os.Remove(path) - ul.TwitchClient.Say(target, "Uploading to kappa.lol... dankCircle") + app.Send(target, "Uploading to kappa.lol... dankCircle") pr, pw := io.Pipe() form := multipart.NewWriter(pw) @@ -223,28 +206,28 @@ func (ul *Uploader) KappaUpload(target, path string) { err := form.WriteField("name", "xd") if err != nil { - ul.TwitchClient.Say(target, fmt.Sprintf("Something went wrong FeelsBadMan: %q", err)) + app.Send(target, fmt.Sprintf("Something went wrong FeelsBadMan: %q", err)) os.Remove(path) return } file, err := os.Open(path) // path to image file if err != nil { - ul.TwitchClient.Say(target, fmt.Sprintf("Something went wrong FeelsBadMan: %q", err)) + app.Send(target, fmt.Sprintf("Something went wrong FeelsBadMan: %q", err)) os.Remove(path) return } w, err := form.CreateFormFile("file", path) if err != nil { - ul.TwitchClient.Say(target, fmt.Sprintf("Something went wrong FeelsBadMan: %q", err)) + app.Send(target, fmt.Sprintf("Something went wrong FeelsBadMan: %q", err)) os.Remove(path) return } _, err = io.Copy(w, file) if err != nil { - ul.TwitchClient.Say(target, fmt.Sprintf("Something went wrong FeelsBadMan: %q", err)) + app.Send(target, fmt.Sprintf("Something went wrong FeelsBadMan: %q", err)) os.Remove(path) return } @@ -254,7 +237,7 @@ func (ul *Uploader) KappaUpload(target, path string) { req, err := http.NewRequest(http.MethodPost, KAPPA_ENDPOINT, pr) if err != nil { - ul.TwitchClient.Say(target, fmt.Sprintf("Something went wrong FeelsBadMan: %q", err)) + app.Send(target, fmt.Sprintf("Something went wrong FeelsBadMan: %q", err)) os.Remove(path) return } @@ -265,38 +248,38 @@ func (ul *Uploader) KappaUpload(target, path string) { } resp, err := httpClient.Do(req) if err != nil { - ul.TwitchClient.Say(target, fmt.Sprintf("Something went wrong FeelsBadMan: %q", err)) + app.Send(target, fmt.Sprintf("Something went wrong FeelsBadMan: %q", err)) os.Remove(path) - ul.Log.Errorln("Error while sending HTTP request:", err) + app.Log.Errorln("Error while sending HTTP request:", err) return } defer resp.Body.Close() - ul.TwitchClient.Say(target, "Uploaded PogChamp") + app.Send(target, "Uploaded PogChamp") body, err := io.ReadAll(resp.Body) if err != nil { - ul.TwitchClient.Say(target, fmt.Sprintf("Something went wrong FeelsBadMan: %q", err)) + app.Send(target, fmt.Sprintf("Something went wrong FeelsBadMan: %q", err)) os.Remove(path) - ul.Log.Errorln("Error while reading response:", err) + app.Log.Errorln("Error while reading response:", err) return } jsonResponse := new(kappaResponse) if err := json.Unmarshal(body, jsonResponse); err != nil { - ul.TwitchClient.Say(target, fmt.Sprintf("Something went wrong FeelsBadMan: %q", err)) - ul.Log.Errorln("Error while unmarshalling JSON response:", err) + app.Send(target, fmt.Sprintf("Something went wrong FeelsBadMan: %q", err)) + app.Log.Errorln("Error while unmarshalling JSON response:", err) return } var reply = jsonResponse.Link - ul.TwitchClient.Say(target, fmt.Sprintf("Removing file: %s", path)) - ul.TwitchClient.Say(target, reply) + app.Send(target, fmt.Sprintf("Removing file: %s", path)) + app.Send(target, reply) } -func (ul *Uploader) YafUpload(target, path string) { +func (app *application) YafUpload(target, path string) { defer os.Remove(path) - ul.TwitchClient.Say(target, "Uploading to yaf.ee... dankCircle") + app.Send(target, "Uploading to yaf.ee... dankCircle") pr, pw := io.Pipe() form := multipart.NewWriter(pw) @@ -305,28 +288,28 @@ func (ul *Uploader) YafUpload(target, path string) { err := form.WriteField("name", "xd") if err != nil { - ul.TwitchClient.Say(target, fmt.Sprintf("Something went wrong FeelsBadMan: %q", err)) + app.Send(target, fmt.Sprintf("Something went wrong FeelsBadMan: %q", err)) os.Remove(path) return } file, err := os.Open(path) // path to image file if err != nil { - ul.TwitchClient.Say(target, fmt.Sprintf("Something went wrong FeelsBadMan: %q", err)) + app.Send(target, fmt.Sprintf("Something went wrong FeelsBadMan: %q", err)) os.Remove(path) return } w, err := form.CreateFormFile("file", path) if err != nil { - ul.TwitchClient.Say(target, fmt.Sprintf("Something went wrong FeelsBadMan: %q", err)) + app.Send(target, fmt.Sprintf("Something went wrong FeelsBadMan: %q", err)) os.Remove(path) return } _, err = io.Copy(w, file) if err != nil { - ul.TwitchClient.Say(target, fmt.Sprintf("Something went wrong FeelsBadMan: %q", err)) + app.Send(target, fmt.Sprintf("Something went wrong FeelsBadMan: %q", err)) os.Remove(path) return } @@ -336,7 +319,7 @@ func (ul *Uploader) YafUpload(target, path string) { req, err := http.NewRequest(http.MethodPost, YAF_ENDPOINT, pr) if err != nil { - ul.TwitchClient.Say(target, fmt.Sprintf("Something went wrong FeelsBadMan: %q", err)) + app.Send(target, fmt.Sprintf("Something went wrong FeelsBadMan: %q", err)) os.Remove(path) return } @@ -347,25 +330,24 @@ func (ul *Uploader) YafUpload(target, path string) { } resp, err := httpClient.Do(req) if err != nil { - ul.TwitchClient.Say(target, fmt.Sprintf("Something went wrong FeelsBadMan: %q", err)) + app.Send(target, fmt.Sprintf("Something went wrong FeelsBadMan: %q", err)) os.Remove(path) - ul.Log.Errorln("Error while sending HTTP request:", err) + app.Log.Errorln("Error while sending HTTP request:", err) return } defer resp.Body.Close() - ul.TwitchClient.Say(target, "Uploaded PogChamp") body, err := io.ReadAll(resp.Body) if err != nil { - ul.TwitchClient.Say(target, fmt.Sprintf("Something went wrong FeelsBadMan: %q", err)) + app.Send(target, fmt.Sprintf("Something went wrong FeelsBadMan: %q", err)) os.Remove(path) - ul.Log.Errorln("Error while reading response:", err) + app.Log.Errorln("Error while reading response:", err) return } var reply = string(body[:]) - ul.TwitchClient.Say(target, fmt.Sprintf("Removing file: %s", path)) - ul.TwitchClient.Say(target, reply) + app.Send(target, fmt.Sprintf("Removing file: %s", path)) + app.Send(target, reply) } diff --git a/internal/commands/download.go b/internal/commands/download.go deleted file mode 100644 index 1317e97..0000000 --- a/internal/commands/download.go +++ /dev/null @@ -1,234 +0,0 @@ -package commands - -import ( - "context" - "fmt" - "io" - "os" - - "github.com/gempir/go-twitch-irc/v4" - "github.com/google/uuid" - "github.com/wader/goutubedl" - "go.uber.org/zap" -) - -type Downloader struct { - TwitchClient *twitch.Client - Log *zap.SugaredLogger -} - -func NewDownload(destination, target, link string, tc *twitch.Client, log *zap.SugaredLogger) { - dl := &Downloader{ - TwitchClient: tc, - Log: log, - } - - switch destination { - case "catbox": - dl.CatboxDownload(target, link) - case "yaf": - dl.YafDownload(target, link) - case "kappa": - dl.KappaDownload(target, link) - case "gofile": - dl.GofileDownload(target, link) - } -} - -func (dl *Downloader) YafDownload(target, link string) { - goutubedl.Path = "yt-dlp" - - dl.TwitchClient.Say(target, "Downloading... dankCircle") - result, err := goutubedl.New(context.Background(), link, goutubedl.Options{}) - if err != nil { - dl.Log.Errorln(err) - dl.TwitchClient.Say(target, fmt.Sprintf("Something went wrong FeelsBadMan: %q", err)) - return - } - rExt := result.Info.Ext - downloadResult, err := result.Download(context.Background(), "best") - if err != nil { - dl.Log.Errorln(err) - dl.TwitchClient.Say(target, fmt.Sprintf("Something went wrong FeelsBadMan: %q", err)) - return - } - dl.TwitchClient.Say(target, "Downloaded.") - uuidFilename, err := uuid.NewUUID() - if err != nil { - dl.Log.Errorln(err) - dl.TwitchClient.Say(target, fmt.Sprintf("Something went wrong FeelsBadMan: %q", err)) - return - } - fileName := fmt.Sprintf("%s.%s", uuidFilename, rExt) - f, err := os.Create(fileName) - dl.TwitchClient.Say(target, fmt.Sprintf("Filename: %s", fileName)) - - if err != nil { - dl.Log.Errorln(err) - dl.TwitchClient.Say(target, fmt.Sprintf("Something went wrong FeelsBadMan: %q", err)) - return - } - defer f.Close() - if _, err = io.Copy(f, downloadResult); err != nil { - dl.Log.Errorln(err) - dl.TwitchClient.Say(target, fmt.Sprintf("Something went wrong FeelsBadMan: %q", err)) - return - } - - downloadResult.Close() - f.Close() - // duration := 5 * time.Second - // dl.twitchClient.Say(target, "ResidentSleeper ..") - // time.Sleep(duration) - - go NewUpload("yaf", fileName, target, dl.TwitchClient, dl.Log) - -} - -func (dl *Downloader) KappaDownload(target, link string) { - goutubedl.Path = "yt-dlp" - - dl.TwitchClient.Say(target, "Downloading... dankCircle") - result, err := goutubedl.New(context.Background(), link, goutubedl.Options{}) - if err != nil { - dl.Log.Errorln(err) - dl.TwitchClient.Say(target, fmt.Sprintf("Something went wrong FeelsBadMan: %q", err)) - return - } - rExt := result.Info.Ext - downloadResult, err := result.Download(context.Background(), "best") - if err != nil { - dl.Log.Errorln(err) - dl.TwitchClient.Say(target, fmt.Sprintf("Something went wrong FeelsBadMan: %q", err)) - return - } - dl.TwitchClient.Say(target, "Downloaded.") - uuidFilename, err := uuid.NewUUID() - if err != nil { - dl.Log.Errorln(err) - dl.TwitchClient.Say(target, fmt.Sprintf("Something went wrong FeelsBadMan: %q", err)) - return - } - fileName := fmt.Sprintf("%s.%s", uuidFilename, rExt) - f, err := os.Create(fileName) - dl.TwitchClient.Say(target, fmt.Sprintf("Filename: %s", fileName)) - - if err != nil { - dl.Log.Errorln(err) - dl.TwitchClient.Say(target, fmt.Sprintf("Something went wrong FeelsBadMan: %q", err)) - return - } - defer f.Close() - if _, err = io.Copy(f, downloadResult); err != nil { - dl.Log.Errorln(err) - dl.TwitchClient.Say(target, fmt.Sprintf("Something went wrong FeelsBadMan: %q", err)) - return - } - - downloadResult.Close() - f.Close() - // duration := 5 * time.Second - // dl.twitchClient.Say(target, "ResidentSleeper ..") - // time.Sleep(duration) - - go NewUpload("kappa", fileName, target, dl.TwitchClient, dl.Log) - -} - -func (dl *Downloader) GofileDownload(target, link string) { - goutubedl.Path = "yt-dlp" - - dl.TwitchClient.Say(target, "Downloading... dankCircle") - result, err := goutubedl.New(context.Background(), link, goutubedl.Options{}) - if err != nil { - dl.Log.Errorln(err) - dl.TwitchClient.Say(target, fmt.Sprintf("Something went wrong FeelsBadMan: %q", err)) - return - } - safeFilename := fmt.Sprintf("download_%s", result.Info.Title) - rExt := result.Info.Ext - downloadResult, err := result.Download(context.Background(), "best") - if err != nil { - dl.Log.Errorln(err) - dl.TwitchClient.Say(target, fmt.Sprintf("Something went wrong FeelsBadMan: %q", err)) - return - } - dl.TwitchClient.Say(target, "Downloaded.") - fileName := fmt.Sprintf("%s.%s", safeFilename, rExt) - f, err := os.Create(fileName) - dl.TwitchClient.Say(target, fmt.Sprintf("Filename: %s", fileName)) - - if err != nil { - dl.Log.Errorln(err) - dl.TwitchClient.Say(target, fmt.Sprintf("Something went wrong FeelsBadMan: %q", err)) - return - } - defer f.Close() - if _, err = io.Copy(f, downloadResult); err != nil { - dl.Log.Errorln(err) - dl.TwitchClient.Say(target, fmt.Sprintf("Something went wrong FeelsBadMan: %q", err)) - return - } - - downloadResult.Close() - f.Close() - // duration := 5 * time.Second - // dl.twitchClient.Say(target, "ResidentSleeper ..") - // time.Sleep(duration) - - go NewUpload("gofile", fileName, target, dl.TwitchClient, dl.Log) - -} - -func (dl *Downloader) CatboxDownload(target, link string) { - goutubedl.Path = "yt-dlp" - var fileName string - - dl.TwitchClient.Say(target, "Downloading... dankCircle") - result, err := goutubedl.New(context.Background(), link, goutubedl.Options{}) - if err != nil { - dl.Log.Errorln(err) - dl.TwitchClient.Say(target, fmt.Sprintf("Something went wrong FeelsBadMan: %q", err)) - return - } - - // I don't know why but I need to set it to mp4, otherwise if - // I use `result.Into.Ext` catbox won't play the video in the - // browser and say this message: - // `No video with supported format and MIME type found.` - rExt := "mp4" - - downloadResult, err := result.Download(context.Background(), "best") - if err != nil { - dl.Log.Errorln(err) - dl.TwitchClient.Say(target, fmt.Sprintf("Something went wrong FeelsBadMan: %q", err)) - return - } - dl.TwitchClient.Say(target, "Downloaded.") - uuidFilename, err := uuid.NewUUID() - if err != nil { - dl.Log.Errorln(err) - dl.TwitchClient.Say(target, fmt.Sprintf("Something went wrong FeelsBadMan: %q", err)) - return - } - fileName = fmt.Sprintf("%s.%s", uuidFilename, rExt) - f, err := os.Create(fileName) - dl.TwitchClient.Say(target, fmt.Sprintf("Filename: %s", fileName)) - - if err != nil { - dl.Log.Errorln(err) - dl.TwitchClient.Say(target, fmt.Sprintf("Something went wrong FeelsBadMan: %q", err)) - return - } - defer f.Close() - if _, err = io.Copy(f, downloadResult); err != nil { - dl.Log.Errorln(err) - dl.TwitchClient.Say(target, fmt.Sprintf("Something went wrong FeelsBadMan: %q", err)) - return - } - - downloadResult.Close() - f.Close() - - go NewUpload("catbox", fileName, target, dl.TwitchClient, dl.Log) -}