mirror of
https://github.com/Schmenn/discord-exploits.git
synced 2024-12-23 07:05:33 +00:00
216 lines
5.8 KiB
Go
216 lines
5.8 KiB
Go
package main
|
|
|
|
import (
|
|
"fmt"
|
|
"github.com/Schmenn/discord-exploits/exploits"
|
|
"github.com/Schmenn/discord-exploits/modules"
|
|
"os"
|
|
"path/filepath"
|
|
"strings"
|
|
)
|
|
|
|
var (
|
|
quiet bool = false
|
|
inputFile string = "no input file provided"
|
|
mode string = "no mode specified"
|
|
)
|
|
|
|
func main() {
|
|
|
|
args := os.Args[1:]
|
|
handleArgs(args, &quiet)
|
|
if !quiet {
|
|
modules.Welcome()
|
|
}
|
|
|
|
fmt.Println("input file: " + inputFile)
|
|
fmt.Println("mode: " + mode)
|
|
|
|
initCommand(inputFile, mode)
|
|
|
|
}
|
|
|
|
func handleArgs(args []string, quiet *bool) {
|
|
|
|
for i, s := range args {
|
|
switch s {
|
|
// Quiet
|
|
case "-q", "--quiet":
|
|
*quiet = true
|
|
|
|
// Input File
|
|
case "-i":
|
|
absPath, err := filepath.Abs(args[i+1])
|
|
if err != nil {
|
|
absPath = args[i+1]
|
|
}
|
|
inputFile = filepath.FromSlash(absPath)
|
|
|
|
// Mode Selection
|
|
case "-m":
|
|
mode = args[i+1]
|
|
|
|
// Help Message
|
|
case "-h":
|
|
modules.Help(os.Args[0])
|
|
*quiet = true
|
|
return
|
|
|
|
default:
|
|
break
|
|
}
|
|
}
|
|
|
|
}
|
|
|
|
func initCommand(inputFile string, mode string) {
|
|
if strings.HasSuffix(inputFile, ".webm") {
|
|
|
|
switch mode {
|
|
case "e":
|
|
fmt.Println("editing video.")
|
|
exploits.RunExpandingVideoTask(inputFile)
|
|
fmt.Println("completed task.")
|
|
|
|
case "n":
|
|
fmt.Println("editing video.")
|
|
exploits.RunNegativeVideoTask(inputFile)
|
|
fmt.Println("completed task.")
|
|
|
|
case "0", "z":
|
|
fmt.Println("editing video.")
|
|
exploits.RunZeroVideoTask(inputFile)
|
|
fmt.Println("completed task.")
|
|
|
|
case "c":
|
|
fmt.Println("transcoding video from webm to mp4")
|
|
out := modules.Transcode(inputFile, "mp4")
|
|
fmt.Println("finished transcoding video from webm to mp4")
|
|
fmt.Println("editing video.")
|
|
exploits.RunCrashVideoTask(out)
|
|
fmt.Println("completed task.")
|
|
os.Remove(out)
|
|
|
|
case "r":
|
|
fmt.Println("transcoding video from webm to mp4")
|
|
out := modules.Transcode(inputFile, "mp4")
|
|
fmt.Println("finished transcoding video from webm to mp4")
|
|
fmt.Println("editing video.")
|
|
exploits.RunRestartVideoTask(out)
|
|
fmt.Println("completed task.")
|
|
os.Remove(out)
|
|
|
|
default:
|
|
fmt.Println("the mode doesn't match the file")
|
|
}
|
|
|
|
} else if strings.HasSuffix(inputFile, ".mp4") {
|
|
|
|
switch mode {
|
|
case "e":
|
|
fmt.Println("transcoding video from mp4 to webm")
|
|
out := modules.Transcode(inputFile, "webm")
|
|
fmt.Println("finished transcoding video from mp4 to webm")
|
|
fmt.Println("editing video.")
|
|
exploits.RunExpandingVideoTask(out)
|
|
fmt.Println("completed task.")
|
|
os.Remove(out)
|
|
|
|
case "n":
|
|
fmt.Println("transcoding video from mp4 to webm")
|
|
out := modules.Transcode(inputFile, "webm")
|
|
fmt.Println("finished transcoding video from mp4 to webm")
|
|
fmt.Println("editing video.")
|
|
exploits.RunNegativeVideoTask(out)
|
|
fmt.Println("completed task.")
|
|
os.Remove(out)
|
|
|
|
case "0", "z":
|
|
fmt.Println("transcoding video from mp4 to webm")
|
|
out := modules.Transcode(inputFile, "webm")
|
|
fmt.Println("finished transcoding video from mp4 to webm")
|
|
fmt.Println("editing video.")
|
|
exploits.RunZeroVideoTask(out)
|
|
fmt.Println("completed task.")
|
|
os.Remove(out)
|
|
|
|
case "c":
|
|
fmt.Println("editing video.")
|
|
exploits.RunCrashVideoTask(inputFile)
|
|
fmt.Println("completed task.")
|
|
|
|
case "r":
|
|
fmt.Println("editing video.")
|
|
exploits.RunRestartVideoTask(inputFile)
|
|
fmt.Println("completed task.")
|
|
|
|
default:
|
|
fmt.Println("the mode doesn't match the file")
|
|
}
|
|
|
|
} else if strings.HasSuffix(inputFile, ".png") {
|
|
fmt.Println("editing photo.")
|
|
exploits.RunVirusImageTask(inputFile)
|
|
fmt.Println("completed task.")
|
|
|
|
} else if strings.HasSuffix(inputFile, ".jpg") {
|
|
fmt.Println("transcoding image from jpg to png")
|
|
out := modules.Transcode(inputFile, "png")
|
|
fmt.Println("finished transcoding image from jpg to png")
|
|
fmt.Println("editing photo.")
|
|
exploits.RunVirusImageTask(out)
|
|
fmt.Println("completed task.")
|
|
os.Remove(out)
|
|
|
|
} else if strings.HasSuffix(inputFile, ".jpeg") {
|
|
if strings.ToLower(mode) != "v" || strings.ToLower(mode) == "no mode specified" {
|
|
fmt.Println("the mode is not compatible with the image, proceeding to run the virus image task anyway")
|
|
}
|
|
fmt.Println("transcoding image from jpeg to png")
|
|
out := modules.Transcode(inputFile, "png")
|
|
fmt.Println("finished transcoding image from jpeg to png")
|
|
fmt.Println("editing photo.")
|
|
exploits.RunVirusImageTask(out)
|
|
fmt.Println("completed task.")
|
|
os.Remove(out)
|
|
|
|
} else if strings.HasSuffix(inputFile, ".ogg") {
|
|
if strings.ToLower(mode) != "t" || strings.ToLower(mode) == "no mode specified" {
|
|
fmt.Println("the mode is not compatible with the audio file, proceeding to run the play-twice task anyway")
|
|
}
|
|
fmt.Println("editing audio.")
|
|
exploits.RunTwiceAudioTask(inputFile)
|
|
fmt.Println("completed task.")
|
|
|
|
} else if strings.HasSuffix(inputFile, ".mp3") {
|
|
if strings.ToLower(mode) != "t" || strings.ToLower(mode) == "no mode specified" {
|
|
fmt.Println("the mode is not compatible with the audio file, proceeding to run the play-twice task anyway")
|
|
}
|
|
fmt.Println("transcoding audio from mp3 to ogg")
|
|
out := modules.Transcode(inputFile, "ogg")
|
|
fmt.Println("finished transcoding audio from mp3 to ogg")
|
|
fmt.Println("editing audio.")
|
|
exploits.RunTwiceAudioTask(out)
|
|
fmt.Println("completed task.")
|
|
os.Remove(out)
|
|
|
|
} else if strings.HasSuffix(inputFile, ".m4a") {
|
|
if strings.ToLower(mode) != "t" || strings.ToLower(mode) == "no mode specified" {
|
|
fmt.Println("the mode is not compatible with the audio file, proceeding to run the play-twice task anyway")
|
|
}
|
|
fmt.Println("transcoding audio from m4a to ogg")
|
|
out := modules.Transcode(inputFile, "ogg")
|
|
fmt.Println("finished transcoding audio from m4a to ogg")
|
|
fmt.Println("editing audio.")
|
|
exploits.RunTwiceAudioTask(out)
|
|
fmt.Println("completed task.")
|
|
os.Remove(out)
|
|
|
|
} else if inputFile == "no input file provided" {
|
|
return
|
|
|
|
} else {
|
|
fmt.Println("incompatible input file")
|
|
}
|
|
}
|