|
@@ -0,0 +1,100 @@
|
|
|
|
+package main
|
|
|
|
+
|
|
|
|
+import (
|
|
|
|
+ "flag"
|
|
|
|
+ "fmt"
|
|
|
|
+
|
|
|
|
+ "github.com/bwmarrin/discordgo"
|
|
|
|
+)
|
|
|
|
+
|
|
|
|
+var (
|
|
|
|
+ Email string
|
|
|
|
+ Password string
|
|
|
|
+ Token string
|
|
|
|
+ AppName string
|
|
|
|
+ ConvToken string
|
|
|
|
+ DeleteID string
|
|
|
|
+ ListOnly bool
|
|
|
|
+)
|
|
|
|
+
|
|
|
|
+func init() {
|
|
|
|
+
|
|
|
|
+ flag.StringVar(&Email, "e", "", "Account Email")
|
|
|
|
+ flag.StringVar(&Password, "p", "", "Account Password")
|
|
|
|
+ flag.StringVar(&Token, "t", "", "Account Token")
|
|
|
|
+ flag.StringVar(&DeleteID, "d", "", "Application ID to delete")
|
|
|
|
+ flag.BoolVar(&ListOnly, "l", false, "List Applications Only")
|
|
|
|
+ flag.StringVar(&AppName, "a", "", "App/Bot Name")
|
|
|
|
+ flag.StringVar(&ConvToken, "c", "", "Token of account to convert.")
|
|
|
|
+ flag.Parse()
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+func main() {
|
|
|
|
+
|
|
|
|
+ // Create a new Discord session using the provided login information.
|
|
|
|
+ dg, err := discordgo.New(Email, Password, Token)
|
|
|
|
+ if err != nil {
|
|
|
|
+ fmt.Println("error creating Discord session,", err)
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ // If -l set, only display a list of existing applications
|
|
|
|
+ // for the given account.
|
|
|
|
+ if ListOnly {
|
|
|
|
+ aps, err := dg.Applications()
|
|
|
|
+ if err != nil {
|
|
|
|
+ fmt.Println("error fetching applications,", err)
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ for k, v := range aps {
|
|
|
|
+ fmt.Printf("%d : --------------------------------------\n", k)
|
|
|
|
+ fmt.Printf("ID: %s\n", v.ID)
|
|
|
|
+ fmt.Printf("Name: %s\n", v.Name)
|
|
|
|
+ fmt.Printf("Secret: %s\n", v.Secret)
|
|
|
|
+ fmt.Printf("Description: %s\n", v.Description)
|
|
|
|
+ }
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ // if -d set, delete the given Application
|
|
|
|
+ if DeleteID != "" {
|
|
|
|
+ err := dg.ApplicationDelete(DeleteID)
|
|
|
|
+ if err != nil {
|
|
|
|
+ fmt.Println("error deleting application,", err)
|
|
|
|
+ }
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ // Create a new application.
|
|
|
|
+ ap := &discordgo.Application{}
|
|
|
|
+ ap.Name = AppName
|
|
|
|
+ ap, err = dg.ApplicationCreate(ap)
|
|
|
|
+ if err != nil {
|
|
|
|
+ fmt.Println("error creating new applicaiton,", err)
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ fmt.Printf("Application created successfully:\n")
|
|
|
|
+ fmt.Printf("ID: %s\n", ap.ID)
|
|
|
|
+ fmt.Printf("Name: %s\n", ap.Name)
|
|
|
|
+ fmt.Printf("Secret: %s\n\n", ap.Secret)
|
|
|
|
+
|
|
|
|
+ // Create the bot account under the application we just created
|
|
|
|
+ // If ConvToken is set, then this will convert an existing account
|
|
|
|
+ // into a bot account under the application we just created.
|
|
|
|
+ bot, err := dg.ApplicationBotCreate(ap.ID, ConvToken)
|
|
|
|
+ if err != nil {
|
|
|
|
+ fmt.Println("error creating bot account,", err)
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ fmt.Printf("Bot account created successfully.\n")
|
|
|
|
+ fmt.Printf("ID: %s\n", bot.ID)
|
|
|
|
+ fmt.Printf("Username: %s\n", bot.Username)
|
|
|
|
+ fmt.Printf("Token: %s\n\n", bot.Token)
|
|
|
|
+ fmt.Println("Please save the above posted info in a secure place.")
|
|
|
|
+ fmt.Println("You will need that information to login with your bot account.")
|
|
|
|
+
|
|
|
|
+ return
|
|
|
|
+}
|