Compare commits

...

4 commits

2 changed files with 39 additions and 2 deletions

View file

@ -33,7 +33,7 @@ func getLargestFormat(input goutubedl.Result, sizeLimit float64) (format goutube
} else {
size = input.Formats()[i].Filesize
}
if size <= sizeLimit {
if size <= sizeLimit && input.Formats()[i].VCodec != "h265" { // Discord can't embed HEVC
return input.Formats()[i], nil
}
}

View file

@ -66,6 +66,7 @@ func messageCreate(session *discordgo.Session, message *discordgo.MessageCreate)
choice, err := getLargestFormat(result, 8*1024*1024)
log.Printf("Choice: %s | Size: %fM\n", choice.FormatID, choice.FilesizeApprox/1024/1024)
if err == nil {
session.ChannelTyping(message.ChannelID)
downloadResult, err := result.Download(context.Background(), choice.FormatID)
if err != nil {
log.Println(err)
@ -116,6 +117,7 @@ func messageCreate(session *discordgo.Session, message *discordgo.MessageCreate)
choice, err := getLargestYTFormat(result, 8*1024*1024)
log.Printf("Choice: %s | Size: %fM\n", choice.FormatID, choice.FilesizeApprox/1024/1024)
if err == nil {
session.ChannelTyping(message.ChannelID)
downloadResult, err := result.Download(context.Background(), choice.FormatID)
if err != nil {
@ -148,7 +150,8 @@ func messageCreate(session *discordgo.Session, message *discordgo.MessageCreate)
log.Println(err)
continue
} else {
downloadResult, err := result.Download(context.Background(), result.Formats()[0].FormatID) // Insta only has one possible format to download :(
session.ChannelTyping(message.ChannelID)
downloadResult, err := result.Download(context.Background(), "best") // Insta only has one possible format to download :(
if err != nil {
log.Println(err)
continue
@ -181,6 +184,40 @@ func messageCreate(session *discordgo.Session, message *discordgo.MessageCreate)
downloadResult.Close()
}
respond = true
} else if output, _ := regexp.MatchString("(http.*tiktok\\.com/\\@.*)", url); output {
log.Println("TikTok detected.")
response.Content = response.Content + fmt.Sprintf("\n<%s>", regexp.MustCompile("http.*tiktok\\.com").ReplaceAllString(url, "https://proxitok.pussthecat.org"))
result, err := goutubedl.New(context.Background(), url, goutubedl.Options{})
if err != nil {
log.Println(err)
continue
} else {
choice, err := getLargestFormat(result, 8*1024*1024)
log.Printf("Choice: %s | Size: %fM\n", choice.FormatID, choice.Filesize/1024/1024)
if err == nil {
session.ChannelTyping(message.ChannelID)
downloadResult, err := result.Download(context.Background(), choice.FormatID)
if err != nil {
log.Println(err)
//session.ChannelMessageSend(message.ChannelID, err.Error())
continue
}
response.Files = append(response.Files, &discordgo.File {
Name: fmt.Sprintf("%s.%s", result.Info.ID, choice.Ext),
ContentType: "text/plain", // This is of course not true, but Discord doesn't give a shit
Reader: downloadResult,
})
defer downloadResult.Close()
} else {
log.Println(err)
}
}
respond = true
}
}