Advertisement
Faerlynn

Miku v0.18 (24.12.2018)

Dec 24th, 2018
103
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 49.01 KB | None | 0 0
  1. import discord
  2. import random
  3. import time
  4. import os
  5. import timeit
  6. import sys
  7. import asyncio
  8. from youtube_dl import YoutubeDL
  9.  
  10. start = timeit.timeit()
  11.  
  12. file = open('bot_save_files\patch.txt', 'r')
  13. version = file.read()
  14. file.close()
  15. print(str(version))
  16. print('------------')
  17.  
  18. client = discord.Client()
  19.  
  20. def log(msg, message_channel, message_author, cmd_type):
  21.     if cmd_type == '':
  22.         cmd_type = 'unknown'
  23.     #print("Command '" + cmd_type + "' used in " + str(message_channel) + ' by ' + str(message_author) +'!')
  24.     print('Command \'{0}\' used in {1} by {2}!'.format(cmd_type, str(message_channel), str(message_author)))
  25.  
  26. def reload_files():
  27.     global cuddle_message, hug_message, kiss_message, about, patchnotes, pat_message, version, slap_message, s_id, success
  28.     global miku_message
  29.     #Opens file for 'cuddle'
  30.     success = False
  31.     try:
  32.         file = open("bot_save_files\cuddle_messages.txt",'r')
  33.         line = file.readline()
  34.         cuddle_message = []
  35.         while line:
  36.             cuddle_message.append(line)
  37.             line = file.readline()
  38.         file.close()
  39.     except:
  40.         print("File 'cuddle_messages.txt' couldn't be opened!")
  41.         success = True
  42.  
  43.     #Opens file for 'hug'
  44.     try:
  45.         file = open("bot_save_files\hug_messages.txt",'r')
  46.         line = file.readline()
  47.         hug_message = []
  48.         while line:
  49.             hug_message.append(line)
  50.             line = file.readline()
  51.         file.close()
  52.     except:
  53.         print("File 'hug_messages.txt' couldn't be opened!")
  54.         success = True
  55.  
  56.     #Opens file for 'pat'
  57.     try:
  58.         file = open("bot_save_files\pat_messages.txt",'r')
  59.         line = file.readline()
  60.         pat_message = []
  61.         while line:
  62.             pat_message.append(line)
  63.             line = file.readline()
  64.         file.close()
  65.     except:
  66.         print("File 'pat_messages.txt' couldn't be opened!")
  67.         success = True
  68.        
  69.     #Opens file for 'kiss'
  70.     try:
  71.         file = open("bot_save_files\kiss_messages.txt",'r')
  72.         line = file.readline()
  73.         kiss_message = []
  74.         while line:
  75.             kiss_message.append(line)
  76.             line = file.readline()
  77.         file.close()
  78.     except:
  79.         print("File 'kiss_messages.txt' couldn't be opened!")
  80.         success = True
  81.        
  82.     #Opens file for 'about'
  83.     try:
  84.         about = ''
  85.         file = open("bot_save_files\\about.txt",'r')
  86.         about = file.read()
  87.         file.close()
  88.     except:
  89.         print("File 'about.txt' couldn't be opened!")
  90.         success = True
  91.  
  92.     #Opens file for 'about'
  93.     try:
  94.         version = ''
  95.         file = open("bot_save_files\\patch.txt",'r')
  96.         version = file.read()
  97.         file.close()
  98.     except:
  99.         print("File 'patch.txt' couldn't be opened!")
  100.         success = True
  101.  
  102.     #Opens file for 'patchnotes'
  103.     try:
  104.         patchnotes = ''
  105.         file = open("bot_save_files\\patch_notes.txt",'r')
  106.         patchnotes = file.read()
  107.         file.close()
  108.     except:
  109.         print("File 'patch_notes.txt' couldn't be opened!")
  110.         success = True
  111.  
  112.     #Opens file for 'slap'
  113.     try:
  114.         file = open("bot_save_files\slap_messages.txt",'r')
  115.         line = file.readline()
  116.         slap_message = []
  117.         while line:
  118.             slap_message.append(line)
  119.             line = file.readline()
  120.         file.close()
  121.     except:
  122.         print("File 'slap_messages.txt' couldn't be opened!")
  123.         success = True
  124.  
  125.     #Opens fire for s_id
  126.     s_id = {}
  127.     try:
  128.         file = open("bot_save_files\server_id.txt",'r')
  129.         line = file.readline()
  130.         while line:
  131.             key, value = line.split(':')
  132.             s_id[key] = value[:1]
  133.             line = file.readline()
  134.         file.close()
  135.     except:
  136.         print("File 'server_id.txt' couldn't be opened!")
  137.         success = True
  138.  
  139.     #Opens file for 'miku reaction'
  140.     try:
  141.         file = open("bot_save_files\miku_reaction_msg.txt",'r')
  142.         line = file.readline()
  143.         miku_message = []
  144.         while line:
  145.             miku_message.append(line)
  146.             line = file.readline()
  147.         file.close()
  148.     except:
  149.         print("File 'miku_reaction_msg.txt' couldn't be opened!")
  150.         success = True
  151.  
  152. def save():
  153.     global s_id
  154.     key, value = '', ''
  155.     s_id_file = ''
  156.     for key, value in s_id.items():
  157.         s_id_file = s_id_file + "{0}:{1}\n".format(key, value)
  158.     os.remove("bot_save_files\server_id.txt")
  159.     file = open("bot_save_files\server_id.txt",'w')
  160.     file.write(str(s_id_file))
  161.     file.close()
  162.  
  163.  
  164. #startup variables
  165. ydl_opts = {
  166.     'format': 'bestaudio/best',
  167.     'outtmpl': 'tmp/%(id)s.%(ext)s',
  168.     'noplaylist': True,
  169.     'quiet': True,
  170.     'prefer_ffmpeg': True,
  171.     'audioformat': 'wav',
  172.     'forceduration':True
  173. }
  174.  
  175. game_number = 274**21
  176. game_active = False
  177. attempts = 0
  178. round_active = False
  179. error = ''
  180. player = ''
  181. author = ''
  182. msg = ''
  183. gmn_cp = {}
  184. gmn_number = {}
  185. gmn_a = {}
  186. edits = ['*', '__', '~~', '**', '***']
  187. players = {}
  188. playlist = {}
  189. cp = {}
  190. loop = {}
  191. lp = {}
  192. ytdl = YoutubeDL()
  193. urls = {}
  194.  
  195.  
  196. @client.event
  197. async def on_message(message):
  198.     global game_number, game_active, error, round_active, attempts, about, player, author, msg, version, s_id, gmn_cp, success
  199.     global miku_message, edits, statuses, players, vc, playlist, cp, loop, lp
  200.     if message.author == client.user:
  201.         return
  202.  
  203.     if not message.server.id in s_id:
  204.         s_id[message.server.id] = '$'
  205.         print('Creating a backup...')
  206.         msg = 'Creating a first settings for your server!'
  207.         await client.send_message(message.channel, msg)
  208.         save()
  209.         reload_files()
  210.         return
  211.    
  212.     #done       HELLO
  213.     if message.content.startswith('{0}hello'.format(s_id[message.server.id])):
  214.         cmd = 'hello'
  215.         msg = '*Hello {0.author.mention}'.format(message) + '''! My name is MikuBot! If you wanna find more about me and my creator, just type* **`{0}about`** *and read!\nIf you want to know more, just type* **`{0}help`**, *and there you can find all my available commands!*'''.format(s_id[message.server.id])
  216.         log(msg, message.channel, message.author, cmd)
  217.         await client.send_message(message.channel, msg)
  218.  
  219.     #done       LOVE
  220.     if message.content.startswith('{0}love'.format(s_id[message.server.id])):
  221.         cmd = 'love'
  222.         msg = "Soo.. Umm.. I know that umm.. This command is not listed.. because it is actually a *secret one!*  Umm.. Back to topic.. Yeah.. ***I love Lily Snow Aisaka ^~^***  Pfew... It's out now.. *giggles and blushes*"
  223.         log(msg, message.channel, message.author, cmd)
  224.         await client.send_message(message.channel, msg)
  225.  
  226.     #done       RANDOM NUMBER
  227.     if message.content.startswith('{0}random'.format(s_id[message.server.id])):
  228.         cmd = 'random'
  229.         msg = ('Randomly generated number: '+str(random.randrange(101)))
  230.         log(msg, message.channel, message.author, cmd)
  231.         await client.send_message(message.channel, msg)
  232.  
  233.     #done       POKE
  234.     if message.content.startswith('{0}poke'.format(s_id[message.server.id])):
  235.         cmd = "poke"
  236.         msg = str(message.content)[6:]
  237.         msg_list = msg.split(' ')
  238.         msg_recipient = ''
  239.         msg_author = str(message.author)[:-5]
  240.         msg_content_test = False
  241.         for i in range(len(msg_list)):
  242.             msg_check = msg_list[i]
  243.             if (('<@!' and '>') in msg_check) == True:
  244.                 msg_recipient = msg_check
  245.                 msg_content_test = True
  246.         if msg_content_test == False:
  247.             msg = '*' + msg_author + " tries to poke an empty air, and there should be nothing there.. But suddenly a white cloud appears before them, forming into a big ghost with a single long arm, and only three fingers. " + msg_author + " can't move any limbs, and as ghost's finger comes closer, they close their eyes, only to feel a small poke on their nose. When " + msg_author + " finally opens eyes, there is no more ghost to be seen.*"
  248.         else:
  249.             msg = '*' + msg_author + " pokes " + msg_recipient + "'s shoulder gently and then just waits for their response patiently.*"
  250.         log(msg, message.channel, message.author, cmd)
  251.         await client.send_message(message.channel, msg)
  252.         if msg_recipient == '<@!492432534181773313>':
  253.             time.sleep(1)
  254.             msg = "*She looks at {0.author.mention} curiously, and after moment she pokes {0.author.mention}'s nose back.*".format(message)
  255.             await client.send_message(message.channel, msg)
  256.  
  257.     #done       CUDDLE
  258.     if message.content.startswith('{0}cuddle'.format(s_id[message.server.id])):
  259.         cmd = 'cuddle'
  260.         try:
  261.             msg = str(message.content)[8:]
  262.             msg_list = msg.split(' ')
  263.             msg_recipient = ''
  264.             msg_author = str(message.author)[:-5]
  265.             msg_content_test = False
  266.            
  267.             for i in range(len(msg_list)):
  268.                 msg_check = msg_list[i]
  269.                 if (('<@!' and '>') in msg_check) == True:
  270.                     msg_recipient = msg_check
  271.                     msg_content_test = True
  272.             if not '!' in msg_recipient:
  273.                 msg_recipient = msg_recipient[:2] + '!' + msg_recipient[2:]
  274.             if msg_recipient == str(message.author.mention):
  275.                 msg = random.choice(cuddle_message).format('Miku', msg_recipient)
  276.             else:
  277.            
  278.                 if not msg_content_test:
  279.                     msg = '*' + msg_author + " cuddles their pillow, smiling but alone.*"
  280.                 else:
  281.                     msg = random.choice(cuddle_message).format(msg_author, msg_recipient)
  282.             log(msg, message.channel, message.author, cmd)
  283.        
  284.             await client.send_message(message.channel, msg)
  285.         except ValueError in error:
  286.             print(error)
  287.             await client.send_message(message.channel, 'Something went wrong.... :sob:')
  288.        
  289.  
  290.     #done       HUG
  291.     if message.content.startswith('{0}hug'.format(s_id[message.server.id])):
  292.         cmd = 'hug'
  293.         msg = str(message.content)[5:]
  294.         msg_list = msg.split(' ')
  295.         msg_recipient = ''
  296.         msg_author = str(message.author)[:-5]
  297.         msg_content_test = False
  298.         for i in range(len(msg_list)):
  299.             msg_check = msg_list[i]
  300.             if (('<@!' and '>') in msg_check) == True:
  301.                 msg_recipient = msg_check
  302.                 msg_content_test = True
  303.         if not msg_content_test:
  304.             msg_recipient = 'bottle of expensive red wine'
  305.         if not '!' in msg_recipient:
  306.             msg_recipient = msg_recipient[:2] + '!' + msg_recipient[2:]
  307.         if msg_recipient == str(message.author.mention):
  308.             msg = random.choice(hug_message).format('Miku', msg_recipient)
  309.         else:
  310.             msg = random.choice(hug_message).format(msg_author, msg_recipient)
  311.         log(msg, message.channel, message.author, cmd)
  312.         try:
  313.             await client.send_message(message.channel, msg)
  314.         except ValueError in error:
  315.             print(error)
  316.             await client.send_message(message.channel, 'Something went wrong.... :sob:')
  317.  
  318.     #done       KISS
  319.     if message.content.startswith('{0}kiss'.format(s_id[message.server.id])):
  320.         cmd = 'kiss'
  321.         msg = str(message.content)[5:]
  322.         msg_list = msg.split(' ')
  323.         msg_recipient = ''
  324.         msg_author = str(message.author)[:-5]
  325.         msg_content_test = False
  326.         for i in range(len(msg_list)):
  327.             msg_check = msg_list[i]
  328.             if (('<@!' and '>') in msg_check) == True:
  329.                 msg_recipient = msg_check
  330.                 msg_content_test = True
  331.         if msg_content_test == False:
  332.             msg_recipient = 'bottle of expensive red wine'
  333.         if not '!' in msg_recipient:
  334.                 msg_recipient = msg_recipient[:2] + '!' + msg_recipient[2:]
  335.         if msg_recipient == str(message.author.mention):
  336.             msg = random.choice(kiss_message).format('Miku', msg_recipient)
  337.         else:
  338.             msg = random.choice(kiss_message).format(msg_author, msg_recipient)
  339.         log(msg, message.channel, message.author, cmd)
  340.         try:
  341.             await client.send_message(message.channel, msg)
  342.         except ValueError in error:
  343.             print(error)
  344.             await client.send_message(message.channel, 'Something went wrong.... :sob:')
  345.  
  346.     #done       PAT
  347.     if message.content.startswith('{0}pat'.format(s_id[message.server.id])):
  348.         cmd = 'pat'
  349.         if '{0}pat '.format(s_id[message.server.id]) in message.content:
  350.             msg = str(message.content)[4:]
  351.             msg_list = msg.split(' ')
  352.             msg_recipient = ''
  353.             msg_author = str(message.author)[:-5]
  354.             msg_content_test = False
  355.             for i in range(len(msg_list)):
  356.                 msg_check = msg_list[i]
  357.                 if (('<@!' and '>') in msg_check) == True:
  358.                     msg_recipient = msg_check
  359.                     msg_content_test = True
  360.             if msg_content_test == False:
  361.                 msg_recipient = 'invisible unicorn'
  362.             if not '!' in msg_recipient:
  363.                 msg_recipient = msg_recipient[:2] + '!' + msg_recipient[2:]
  364.             if msg_recipient == str(message.author.mention):
  365.                 msg = random.choice(pat_message).format('Miku', msg_recipient)
  366.             else:
  367.                 msg = random.choice(pat_message).format(msg_author, msg_recipient)
  368.             log(msg, message.channel, message.author, cmd)
  369.             try:        
  370.                 await client.send_message(message.channel, msg)
  371.             except ValueError in error:
  372.                 print(error)
  373.                 await client.send_message(message.channel, 'Something went wrong.... :sob:')
  374.  
  375.     #SLAP
  376.     if message.content.startswith('{0}slap'.format(s_id[message.server.id])):
  377.         cmd = 'slap'
  378.         if '{0}slap '.format(s_id[message.server.id]) in message.content:
  379.             msg = str(message.content)[5:]
  380.             msg_list = msg.split(' ')
  381.             msg_recipient = ''
  382.             msg_author = str(message.author)[:-5]
  383.             msg_content_test = False
  384.             for i in range(len(msg_list)):
  385.                 msg_check = msg_list[i]
  386.                 if (('<@!' and '>') in msg_check) == True:
  387.                     msg_recipient = msg_check
  388.                     msg_content_test = True
  389.             if msg_content_test == False:
  390.                 msg_recipient = 'air'
  391.             if not '!' in msg_recipient:
  392.                 msg_recipient = msg_recipient[:2] + '!' + msg_recipient[2:]
  393.             if msg_recipient == str(message.author.mention):
  394.                 msg = random.choice(pat_message).format('Miku', msg_recipient)
  395.             else:
  396.                 msg = random.choice(slap_message).format(msg_author, msg_recipient)
  397.             log(msg, message.channel, message.author, cmd)
  398.             try:
  399.                 abc = str(message.author.mention).strip('<')
  400.                 await client.send_message(message.channel, msg)
  401.                
  402.             except ValueError in error:
  403.                 print(error)
  404.                 await client.send_message(message.channel, 'Something went wrong.... :sob:')
  405.    
  406.  
  407.     #WIP               <-----------------------------------------------------
  408.     if message.content.startswith('{0}help'.format(s_id[message.server.id])):
  409.         cmd = 'help'
  410.         msg = """**{0}hello** - yes, this is my greeting to all of you, my users! ^~^
  411.        **{0}kiss @user** - kisses your lovely friend
  412.        **{0}hug @user** - hugs your hugging-friend
  413.        **{0}poke @user** - pokes your victim
  414.        **{0}cuddle @user** - cuddles your cuddle pillow friend
  415.        **{0}pat @user** - pat your friend's head and make them blush with happiness
  416.        **{0}slap @user** - slap someone who's being rude! Ouch!
  417.        **{0}rnf x z** - gives you random number from between numbers **x** and **z**
  418.        **{0}random** - gives you random number between **0** and **100**
  419.        **{0}choice a, b, c, d, ...** - makes a choice for you from the list words, each one divided with ","
  420.        **{0}rc** - gives you a random colour in hex format
  421.        **{0}p <youtube url>** - plays song in voice channel you're conencted to
  422.        **{0}dc** - disconnects bot from voice channel
  423.        **{0}coinflip** - flips the coin. Try your luck!
  424.        **{0}gmn** - first minigame! Guess my number! Collect points and get on top of the leaderboard! ***<Rankings And Points Not Yet Implemented>***
  425.        **{0}invite** - sends you a special link with which you can invite this bot to ***your own server***
  426.        **{0}about** - do you want to learn more about me and my creator? Don't wait any longer!
  427.        **{0}chart** - shows you a simple japanese katakana and hiragana chart! *For all weebs who can't type in their mother language..* >.>
  428.        **{0}prefix set <prefix>** - allows owner of the server to change prefix to which my commands will react in that server
  429.        **{0}lewd** - *winks*""".format(s_id[message.server.id])
  430.         color = 4122822
  431.         embed = discord.Embed(title = 'List of my commands:', description = msg, color = color)
  432.         log(msg, message.channel, message.author, cmd)
  433.         await client.send_message(message.author, embed = embed)
  434.         await client.add_reaction(message, '\U00002705')
  435.  
  436.     #done       ABOUT
  437.     if message.content.startswith('{0}about'.format(s_id[message.server.id])):
  438.         cmd = 'about'
  439.         log(msg, message.channel, message.author, cmd)
  440.         await client.send_message(message.channel, about)
  441.  
  442.     #done       CHART
  443.     if message.content.startswith('{0}chart'.format(s_id[message.server.id])):
  444.         cmd = 'chart'
  445.         msg = '''**ๆ—ฅ ๏ฝ ๏ฝ‰ ๏ฝ• ๏ฝ… ๏ฝใ€€๏ฝ ๏ฝ‰ ๏ฝ• ๏ฝ… ๏ฝ ๆœฌ
  446.        ใƒผ ใ‚ข ใ‚ค ใ‚ฆ ใ‚จ ใ‚ชใ€€ใ‚ ใ„ ใ† ใˆ ใŠ
  447.        ๏ฝ‹ ใ‚ซ ใ‚ญ ใ‚ฏ ใ‚ฑ ใ‚ณใ€€ใ‹ ใ ใ ใ‘ ใ“
  448.        ๏ฝ“ ใ‚ต ใ‚ท ใ‚น ใƒ‡ ใ‚ฝใ€€ใ• ใ— ใ™ ใ› ใ
  449.        ๏ฝ” ใ‚ฟ ใƒ ใƒ„ ใƒ† ใƒˆใ€€ใŸ ใก ใค ใฆ ใจ
  450.        ๏ฝŽ ใƒŠ ใƒ‹ ใƒŒ ใƒ ใƒŽใ€€ใช ใซ ใฌ ใญ ใฎ
  451.        ๏ฝ ใƒž ใƒŸ ใƒ  ใƒก ใƒขใ€€ใพ ใฟ ใ‚€ ใ‚ ใ‚‚
  452.        ๏ฝ’ ใƒฉ ใƒช ใƒซ ใƒฌ ใƒญใ€€ใ‚‰ ใ‚Š ใ‚‹ ใ‚Œ ใ‚
  453.        ๏ฝˆ ใƒ ใƒ’ ใƒ• ใƒ˜ ใƒ›ใ€€ใฏ ใฒ ใต ใธ ใป
  454.        ๏ฝ— ใƒฏ ใ€€ ใ€€ ใ€€ ใƒฒใ€€ใ‚  ใ€€ใ€€ ใ€€ ใ‚’
  455.        ๏ฝ™ ใƒค ใ€€ ใƒฆ ใ€€ ใƒจใ€€ใ‚„  ใ€€ใ‚† ใ€€ ใ‚ˆ
  456.        ๏ฝŽ ใƒณ ใ€€ ใ€€ ใ€€ ใ€€ใ€€ใ‚“**'''
  457.         color = 4122822
  458.         embed = discord.Embed(title = 'Katakana and hiragana chart:', description = msg, color = color)
  459.         log(msg, message.channel, message.author, cmd)
  460.         await client.send_message(message.channel, embed = embed)
  461.  
  462.     #done       AYAYA AYAYAAAAAA
  463.     if (message.content.startswith('ayaya')) or (message.content.startswith('AYAYA')):
  464.         cmd = 'ayaya'
  465.         msg = '''**โฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃทโฃฌโก›โฃฟโฃฟโฃฟโฃฏโขป
  466. โฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโกŸโขปโฃฟโฃฟโขŸโฃปโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฎโกปโฃฟโฃฟโฃง
  467. โฃฟโฃฟโฃฟโฃฟโฃฟโขปโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃ†โ ปโกซโฃขโ ฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃทโฃœโขปโฃฟ
  468. โฃฟโฃฟโกโฃฟโฃฟโฃจโฃโ ฟโฃฟโฃฟโฃฟโฃฟโฃฟโข•โ ธโฃ›โฃฉโฃฅโฃ„โฃฉโขโฃ›โกฟโ ฟโฃฟโฃฟโฃ†โข
  469. โฃฟโฃฟโขกโฃธโฃฟโฃโฃฟโฃฟโฃถโฃฏโฃ™โ ซโขบโฃฟโฃทโกˆโฃฟโฃฟโฃฟโฃฟโกฟโ ฟโขฟโฃŸโฃ’โฃ‹โฃ™โ Š
  470. โฃฟโกโกฟโฃ›โฃโขฟโฃฎโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃถโฃถโฃถโฃถโฃพโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟ
  471. โฃฟโขฑโฃพโฃฟโฃฟโฃฟโฃโกฎโกปโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโกฟโ ฟโ ›โฃ‹โฃปโฃฟโฃฟโฃฟโฃฟ
  472. โขฟโขธโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃทโฃฝโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโก•โฃกโฃดโฃถโฃฟโฃฟโฃฟโกŸโฃฟโฃฟโฃฟ
  473. โฃฆโกธโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโก›โขฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโก‡โฃฟโฃฟโฃฟ
  474. โข›โ ทโกนโฃฟโ ‹โฃ‰โฃ โฃคโฃถโฃถโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโกฟโ ฟโขฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃทโขนโฃฟโฃฟ
  475. โฃทโกโฃฟโกžโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโกŸโ ‹โ โฃ โฃคโฃคโฃฆโฃฝโฃฟโฃฟโฃฟโกฟโ ‹โ ˜โฃฟโฃฟ
  476. โฃฟโฃฟโกนโฃฟโกผโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃงโกฐโฃฟโฃฟโฃฟโฃฟโฃฟโฃนโกฟโ Ÿโ ‰โก€โ „โ „โขฟโฃฟ
  477. โฃฟโฃฟโฃฟโฃฝโฃฟโฃผโฃ›โ ฟโ ฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฏโฃฟโ ฟโขŸโฃปโกฝโขšโฃคโกžโ „โ „โ „โขธโฃฟ**'''
  478.         log(msg, message.channel, message.author, cmd)
  479.         await client.send_message(message.channel, msg)
  480.  
  481.     #done       INVITE
  482.     if message.content.startswith('{0}invite'.format(s_id[message.server.id])):
  483.         msg = "*You can invite me to your server using this link:*\nhttps://discordapp.com/oauth2/authorize?client_id=492432534181773313&scope=bot"
  484.         await client.send_message(message.author, msg)
  485.  
  486.     #done       CHOICE
  487.     if message.content.startswith('{0}choice'.format(s_id[message.server.id])):
  488.         cmd = 'choice'
  489.         msg = message.content[8:]
  490.         choice_list = []
  491.         choice_list = msg.split(',')
  492.         msg = "I've randomly chosen this for you: " + str(random.choice(choice_list))
  493.         log(msg, message.channel, message.author, cmd)
  494.         await client.send_message(message.channel, msg)
  495.  
  496.     #done       PATCHNOTES
  497.     if message.content.startswith('{0}patchnotes'.format(s_id[message.server.id])):
  498.         cmd = 'patchnotes'
  499.         p_notes_split = patchnotes.split('<$>')
  500.         #print(p_notes_split)
  501.         log(msg, message.channel, message.author, cmd)
  502.         for i in p_notes_split:
  503.             msg = '```{0}```'.format(i)
  504.             await client.send_message(message.author, msg)
  505.  
  506.     #done       VERSION
  507.     if message.content.startswith('{0}version'.format(s_id[message.server.id])):
  508.         cmd = 'version'
  509.         msg = '`Current version of this bot is: {0}`'.format(version)
  510.         log(msg, message.channel, message.author, cmd)
  511.         await client.send_message(message.channel, msg)
  512.  
  513.     #done       RANDOM NUMBER X Z
  514.     if message.content.startswith('{0}rnf'.format(s_id[message.server.id])):
  515.         cmd = 'random number from <x, z>'
  516.         msg = message.content[5:]
  517.         numbers = []
  518.         numbers = msg.split(' ')
  519.         log(msg, message.channel, message.author, cmd)
  520.         error = ''
  521.         if len(numbers) == (1 or 0):
  522.             msg = 'You need two numbers!'
  523.             await client.send_message(message.channel, msg)
  524.         else:
  525.             try:
  526.                 print(numbers[0], numbers[1])
  527.                 a = int(round(float(numbers[0])))
  528.                 b = int(round(float(numbers[1])))
  529.                 print(a, b)
  530.                
  531.                 if a >= b:
  532.                     c = a
  533.                     a = b
  534.                     b = c
  535.                    
  536.                 if a == b:
  537.                     msg = "Your random number is not really random, but here you go: {0}".format(a)
  538.                 else:
  539.                     num = random.randrange(a, b+1)
  540.                     msg = "Your random number is: " + str(num)
  541.                 await client.send_message(message.channel, msg)
  542.                
  543.             except ValueError as error:
  544.                 print(error)
  545.                 msg = 'Something went wrong!'
  546.                 await client.send_message(message.channel, msg)
  547.  
  548.     #done       COINFLIP
  549.     if message.content.startswith('{0}coinflip'.format(s_id[message.server.id])):
  550.         cmd = 'coinflip'
  551.         num = random.randrange(1000)+1
  552.         if num == 741:
  553.             msg = "***It landed on it's side! How lucky!!!***"
  554.         else:
  555.             if num == 274:
  556.                 msg = "As coin spins in the air, you notice it doesn't stop spinning. After few seconds of spinning in the place, everything goes black, and from a dark purple portal long tentacle appears and takes your coin... You will need a new one, I guess..."
  557.             else:
  558.                 if num > 500:
  559.                     msg = 'Heads!' + '!'*random.randrange(4)
  560.                 else:
  561.                     msg = 'Tails!' + '!'*random.randrange(4)
  562.         #log(msg, message.channel, message.author, cmd)
  563.         print("Command '$" + cmd + "' used in " + str(message.channel) + ' by ' + str(message.author) +'! Rolled: ' + str(num))
  564.         await client.send_message(message.channel, msg)
  565.  
  566.     #done       RANDOM COLOUR
  567.     if message.content.startswith('{0}rc'.format(s_id[message.server.id])):
  568.         cmd = 'random colour'
  569.         color = random.randrange(256**3)
  570.         print(color)
  571.         msg = str(f'#{color:06x}')
  572.         embed = discord.Embed(title = 'Your random colour: ', description = msg, color = color)
  573.         log(str(msg), message.channel, message.author, cmd)
  574.         await client.send_message(message.channel, embed = embed)
  575.  
  576.     #done       GUESS MY NUMBER
  577.     if message.content.startswith('{0}gmn'.format(s_id[message.server.id])):
  578.        
  579.         if not str(message.author) in gmn_cp:
  580.             gmn_cp[str(message.author)] = False
  581.             gmn_a[str(message.author)] = 0
  582.             gmn_number[str(message.author)] = 0
  583.            
  584.         if gmn_cp[str(message.author)] == False:
  585.             await client.send_message(message.channel, "Oh.. S-senpai..! L-let's play a g-game..! I.. I will think of a number b-between 1 and 100, a-and you will have to g-guess it..!!")
  586.             time.sleep(0.25)
  587.             await client.send_message(message.channel, "I..I am w-waiting for y-your guess, s-senpai..! J-just type **`{0}gmn your_number`**...! G-good luck! *blushes*".format(s_id[message.server.id]))
  588.             game_number = random.randrange(100)+1
  589.             gmn_number[str(message.author)] = game_number
  590.             gmn_a[str(message.author)] = 0
  591.             player = str(message.author)
  592.             gmn_cp[str(message.author)] = True
  593.            
  594.         elif gmn_cp[str(message.author)] == True:
  595.             number = message.content[4:]
  596.             try:
  597.                 number = int(number)
  598.                 gmn_cp[str(message.author)] = True
  599.                
  600.                 if gmn_number[str(message.author)] == number:
  601.                     msg = "Y-yes..! That's the number I.. I've been thinking of! Y-you are so good s-senpai! :heart_eyes:"
  602.                     gmn_a[str(message.author)] = 0
  603.                     await client.send_message(message.channel, msg)
  604.                     gmn_a[str(message.author)] = 0
  605.                     gmn_cp[str(message.author)] = False
  606.  
  607.                    
  608.                 elif (gmn_a[str(message.author)] == 0) and (gmn_cp[str(message.author)] == True):
  609.  
  610.                     if gmn_number[str(message.author)] < number:
  611.                         msg = "T-that's not it, s-senpai..! :flushed: Your n-number is too b-big.. T-try again..! *blushes*"
  612.                         await client.send_message(message.channel, msg)
  613.                     else:
  614.                         msg = "T-that's not it, s-senpai..! :flushed: Your n-number is not b-big enough.. T-try again..! *blushes*"
  615.                         await client.send_message(message.channel, msg)
  616.  
  617.                     gmn_a[str(message.author)] = 1
  618.                     print('New game! Player: {0}, attempt: {1}, number: {2}'.format(message.author, gmn_a[str(message.author)], gmn_number[str(message.author)]))
  619.                    
  620.                 elif (gmn_a[str(message.author)] == 1) and (gmn_cp[str(message.author)] == True):
  621.  
  622.                    
  623.                     if gmn_number[str(message.author)] < number:
  624.                         msg = "N-no senpai... S-still not my number.. It's n-not that big..."
  625.                         await client.send_message(message.channel, msg)
  626.                     else:
  627.                         msg = "N s-senpai... S-still not my special number.. It's even higher..."
  628.                         await client.send_message(message.channel, msg)
  629.                        
  630.                     gmn_a[str(message.author)] = 2
  631.                     print('Player: {0}, attempt: {1}, number: {2}'.format(message.author, gmn_a[str(message.author)], gmn_number[str(message.author)]))
  632.  
  633.                    
  634.                 elif (gmn_a[str(message.author)] == 2) and (gmn_cp[str(message.author)] == True):
  635.                    
  636.                     if gmn_number[str(message.author)] < number:
  637.                         msg = "That's again n-not my n-number *blushes* T-too big..! Last chance..!"
  638.                         await client.send_message(message.channel, msg)
  639.                     else:
  640.                         msg = "N-not my n-number, senpai..! *blushes* Go h-higher..! L-last attempt..!"
  641.                         await client.send_message(message.channel, msg)
  642.                        
  643.                     gmn_a[str(message.author)] = 3
  644.                     print('Player: {0}, attempt: {1}, number: {2}'.format(message.author, gmn_a[str(message.author)], gmn_number[str(message.author)]))
  645.                    
  646.                 elif (gmn_a[str(message.author)] == 3) and (gmn_cp[str(message.author)] == True):
  647.                    
  648.                     if gmn_number[str(message.author)] < number:
  649.                         msg = "I.. I am s-sorry, s-senpai..! Your number w-was t-too big..! I was t-thinking of a number " + str(gmn_number[str(message.author)])
  650.                         await client.send_message(message.channel, msg)
  651.                     else:
  652.                         msg = "S-senpai..! T-that's not my number..! I was t-thinking of a number " + str(gmn_number[str(message.author)])
  653.                         await client.send_message(message.channel, msg)
  654.                        
  655.                     print('Player: {0}, attempt: {1}, number: {2}'.format(message.author, gmn_a[str(message.author)], gmn_number[str(message.author)]))
  656.                     gmn_a[str(message.author)] = 0
  657.                     gmn_cp[str(message.author)] = False
  658.                    
  659.             except:
  660.                 await client.send_message(message.channel, "That's not a number, b-baka s-senpai..!!")
  661.         else:
  662.             await client.send_message(message.channel, "I.. I'm s-sorry senpai, b-but... You h-haven't finished y-your previous g-game yet... :flushed:")
  663.  
  664.  
  665.     #done       LEWD
  666.     if message.content.startswith('{0}lewd'.format(s_id[message.server.id])):
  667.         if str(message.author) == 'Ana#3140':
  668.             msg = 'Y-yes, s-senpai.. I.. I w-will do a-anything y-you want m-me to d-do.. A-anything... I.. I promise..:heart_eyes: I.. I p-promise t-to be a *good g-girl*..! ***__A-anything..!__***'
  669.         else:
  670.             msg = '**Y-YOU ARE SO L-LEWD, SENPAI**' + '!'*int(random.randrange(9)+3)
  671.         await client.send_message(message.channel, msg)
  672.  
  673.     #done       SERVER PREFIX CHANGE
  674.     if message.content.startswith('{0}prefix set'.format(s_id[message.server.id])):
  675.         if message.author == message.server.owner:
  676.             try:
  677.                 prefix = message.content[12:]
  678.                 if len(prefix) > 1:
  679.                     msg = 'Prefix can consist of only one character!'
  680.                 else:
  681.                     s_id[message.server.id] = str(prefix)
  682.                     save()
  683.                     reload_files()
  684.                     msg = 'Prefix of this server has been changed to {0}'.format(prefix)
  685.             except:
  686.                 msg = 'Something went wrong!'
  687.         else:
  688.             msg = "I'm sorry s-senpai, b-but you are n-not owner of t-this server!"
  689.         await client.send_message(message.channel, msg)
  690.                
  691.  
  692.     #bet reaction
  693.     if (message.content.startswith('bet'))or (message.content.startswith('beet')) or (message.content.startswith('Bet')):
  694.         num = random.randrange(10000)
  695.         if num == 2714:
  696.             msg = 'BEEEEEEEEEEEEEEEEEEEEEEEEEEEET!!!!!'
  697.             await client.send_message(message.channel, msg)
  698.         else:
  699.             if num == 8743:
  700.                 msg = 'No bets allowed to underage trolls (That means you are not allowed to bet if you are not 18+.... B-baka senpai.. >.>)'
  701.                 await client.send_message(message.channel, msg)
  702.             else:
  703.                 msg = "{0}bet{0}".format(edits[random.randrange(5)])
  704.                 await client.send_message(message.channel, msg)
  705.  
  706.     #miku reaction
  707.     if ("Miku" in message.content) or ("miku" in message.content):
  708.         time.sleep(0.37)
  709.         msg = random.choice(miku_message).format(message.author.mention)
  710.         await client.send_message(message.channel, msg)
  711.  
  712.     #Reactions for other bots
  713.     if (message.content.startswith('+pat <@!492432534181773313>')) or (message.content.startswith('{0}pat <@!492432534181773313>'.format(s_id[message.server.id]))) or (message.content.startswith('{0}pat <@492432534181773313>'.format(s_id[message.server.id]))):
  714.         time.sleep(1)
  715.         #print(message.content)
  716.         msg = 'Awwwwww t-thanks a lot for petting me, {0}! :sparkling_heart: :heart_eyes: ^~^'.format(message.author.mention)
  717.         await client.send_message(message.channel, msg)
  718.  
  719.     if (message.content.startswith('+hug <@!492432534181773313>')) or (message.content.startswith('{0}hug <@!492432534181773313>'.format(s_id[message.server.id]))) or (message.content.startswith('{0}hug <@492432534181773313>'.format(s_id[message.server.id]))):
  720.         time.sleep(1)
  721.         msg = 'Oh~, thanks s-senpai for hug! *she hugs {0} back tightly, smiling and blushing.*'.format(message.author.mention)
  722.         await client.send_message(message.channel, msg)
  723.  
  724.     if (message.content.startswith('+cuddle <@!492432534181773313>')) or (message.content.startswith('{0}cuddle <@!492432534181773313>'.format(s_id[message.server.id]))) or (message.content.startswith('{0}cuddle <@492432534181773313>'.format(s_id[message.server.id]))):
  725.         time.sleep(1)
  726.         msg = '*She giggles and cuddles {0} back, slightly stroking their back, still giggling.*'.format(message.author.mention)
  727.         await client.send_message(message.channel, msg)
  728.        
  729.     if (message.content.startswith('{0}poke <@!492432534181773313>'.format(s_id[message.server.id]))) or (message.content.startswith('{0}poke <@492432534181773313>'.format(s_id[message.server.id]))):
  730.         time.sleep(1)
  731.         msg = "*She looks at {0} curiously, and then she pokes {0} back.*".format(message.author.mention)
  732.         await client.send_message(message.channel, msg)
  733.  
  734.     if (message.content.startswith('{0}slap <@!492432534181773313>'.format(s_id[message.server.id]))) or (message.content.startswith('{0}slap <@492432534181773313>'.format(s_id[message.server.id]))):
  735.         time.sleep(1)
  736.         msg = '*She slaps {0} back, looking angry, annoyed but dissappointed and sad as well...*'.format(message.author.mention)
  737.         await client.send_message(message.channel, msg)
  738.  
  739.  
  740.     #dev only functions
  741.  
  742.     #done       STOP
  743.     if (message.content.startswith('{0}stop'.format(s_id[message.server.id]))) or (message.content.startswith('{0}bye'.format(s_id[message.server.id]))):
  744.         author = str(message.author)
  745.         cmd = 'stop'
  746.         msg = ''
  747.         log(msg, message.channel, message.author, cmd)
  748.         if (author == 'Ana#3140') or (author == 'Cutie Kitty#0068'):
  749.             msg = 'Good bye!'
  750.             await client.send_message(message.channel, msg)
  751.             print('Good b-bye Ana s-senpai~ <3')
  752.             client.logout()
  753.             save()
  754.             sys.exit(0)
  755.         else:
  756.             msg = 'Insufficient permissions...'
  757.             await client.send_message(message.channel, msg)
  758.  
  759.     #done       RELOAD FILES
  760.     if message.content.startswith('{0}rf'.format(s_id[message.server.id])):
  761.         cmd = 'reload files'
  762.         log(msg, message.channel, message.author, cmd)
  763.         author = str(message.author)
  764.         if author == 'Ana#3140':
  765.             reload_files()
  766.             if success == False:
  767.                 print('Files reloaded successfully...')
  768.             else:
  769.                 print('Reload unsuccessful...')
  770.         else:
  771.             msg = 'Insufficient permissions...'
  772.             await client.send_message(message.channel, msg)
  773.  
  774.     #done       CHANGE GAME STATUS
  775.     if message.content.startswith('{0}game'.format(s_id[message.server.id])):
  776.         cmd = 'game status'
  777.         if (str(message.author) == 'Ana#3140') or (str(message.author) == 'Cutie Kitty#0068'):
  778.             if len(str(message.content)) >6:
  779.                 g = str(message.content)[6:]
  780.                 print(g, str(message.content))
  781.                 me = discord.utils.find(lambda s: s != None, client.servers).me
  782.                 if not me:
  783.                         return
  784.                 elif not me.game:
  785.                         updated_game = discord.Game(name = str(g))
  786.                 else:
  787.                         updated_game = me.game
  788.                         updated_game.name = str(g)
  789.             else:
  790.                 me = discord.utils.find(lambda s: s != None, client.servers).me
  791.                 if not me:
  792.                         return
  793.                 elif not me.game:
  794.                         updated_game = discord.Game(name = random.choice(statuses))
  795.                 else:
  796.                         updated_game = me.game
  797.                         updated_game.name = random.choice(statuses)
  798.             await client.change_presence(game = updated_game)
  799.             print('Changing game to: {0}'.format(str(updated_game)))
  800.            
  801.  
  802.     #done       PATCH CHANGE
  803.     if message.content.startswith('{0}patch set'.format(s_id[message.server.id])):
  804.         author = str(message.author)
  805.         cmd = 'patch'
  806.         msg = ''
  807.         patch = ''
  808.         log(msg, message.channel, message.author, cmd)
  809.         if author == 'Ana#3140':
  810.             try:
  811.                 msg = 'Done!'
  812.                 patch = message.content
  813.                 patch = patch[11:]
  814.                 os.remove('bot_save_files\patch.txt')
  815.                 file = open('bot_save_files\patch.txt', 'w')
  816.                 file.write(str(patch))
  817.                 file.close()
  818.                 version = patch
  819.                 print('Current patch changed to {0}'.format(patch))
  820.                 await client.send_message(message.channel, msg)
  821.             except:
  822.                 print('Something went wrong!')
  823.            
  824.     #WIP        TEST COMMAND
  825.     if message.content.startswith('{0}test'.format(s_id[message.server.id])):
  826.         cmd = 'test'
  827.         file = open('bot_save_files\\server_id.txt', 'a')
  828.         file.write(str(str(s_id.keys()).split("'")))
  829.         file.close()
  830.        
  831.         try:
  832.             print(message.author.id, message.content, message.server, message.server.id)
  833.             await client.send_message(message.channel, message.server.id)
  834.         except:
  835.             print(error)
  836.  
  837.     #MUSIC LOOP
  838.     if message.content.startswith('{0}loop'.format(s_id[message.server.id])):
  839.         if not message.server.id in loop:
  840.             loop[message.server.id] = True
  841.             msg = 'Looping current song!'
  842.             await client.send_message(message.channel, msg)
  843.            
  844.         elif loop[message.server.id] == True:
  845.             loop[message.server.id] = False
  846.             msg = 'Loop of the current song disabled!'
  847.             await client.send_message(message.channel, msg)
  848.            
  849.         elif loop[message.server.id] == False:
  850.             loop[message.server.id] = True
  851.             msg = 'Looping current song!'
  852.             await client.send_message(message.channel, msg)
  853.  
  854.  
  855.     #MUSIC LOOP PLAYLIST
  856.     if message.content.startswith('{0}lp'.format(s_id[message.server.id])):
  857.         if not message.server.id in lp:
  858.             lp[message.server.id] = True
  859.             msg = 'Looping current playlist!'
  860.             await client.send_message(message.channel, msg)
  861.            
  862.         elif lp[message.server.id] == True:
  863.             lp[message.server.id] = False
  864.             msg = 'Loop of the current playlist disabled!'
  865.             await client.send_message(message.channel, msg)
  866.            
  867.         elif lp[message.server.id] == False:
  868.             lp[message.server.id] = True
  869.             msg = 'Looping current playlist!'
  870.             await client.send_message(message.channel, msg)
  871.            
  872.     #MUSIC CONNECT
  873.     if message.content.startswith("{0}p ".format(s_id[message.server.id])):
  874.         channel = message.author.voice.voice_channel
  875.        
  876.         if not message.server.id in loop:
  877.             loop[message.server.id] = False
  878.  
  879.         if not message.server.id in lp:
  880.             lp[message.server.id] = False
  881.            
  882.         if not channel == None:
  883.             ytdl = YoutubeDL()
  884.             link = ''
  885.             if not message.server.id in playlist:
  886.                 playlist[message.server.id] = ''
  887.             if not message.server.id in cp:
  888.                 cp[message.server.id] = 'False'
  889.  
  890.             link = str(message.content).strip('{0}p '.format(s_id[message.server.id]))
  891.             playlist[message.server.id] = '{0}<split>{1}'.format(playlist[message.server.id], link)
  892.             await music_playlist(message)
  893.         else:
  894.             msg = "S-senpai..! You're n-not in a-any voice c-channel!"
  895.             await client.send_message(message.channel, msg)
  896.  
  897.     #MUSIC DISCONENCT
  898.     if message.content.startswith('{0}dc'.format(s_id[message.server.id])):
  899.         if client.is_voice_connected(message.server):
  900.             await vc.disconnect()
  901.             playlist[message.server.id] = ''
  902.             cp[message.server.id] = 'False'
  903.         else:
  904.             msg = "S-senpai..! B-but I.. I'm n-not connected y-yet! :flushed:"
  905.             await client.send_message(message.channel, msg)
  906.  
  907.     #MUSIC PLAYLIST
  908.     if message.content.startswith('{0}playlist'.format(s_id[message.server.id])):
  909.         urls = []
  910.         urls = playlist[message.server.id].split('<split>')
  911.         del urls[0]
  912.         msg = '***Current playlist:*** '
  913.         for i in range(len(urls)):
  914.             msg = '{0}\n**{1}**: {2}'.format(msg, i+1, urls[i])
  915.         await client.send_message(message.channel, msg)
  916.  
  917.     #MUSIC SKIP
  918.     if message.content.startswith('{0}skip'.format(s_id[message.server.id])):
  919.         await music_skip(message)
  920.  
  921. async def music_playlist(message):
  922.     global vc, cp, playlist, urllist
  923.     urllist = []
  924.     urllist = playlist[message.server.id].split('<split>')
  925.     del urllist[0]
  926.     print('Urllist: {0}'.format(urllist))
  927.                
  928.     #url = str(urllist)
  929.     #url = str(url[6:len(url)-2])
  930.     url = str(urllist[0])
  931.     print('Url: {0}'.format(url))
  932.     del urllist[0]
  933.     if (cp[message.server.id] == 'False') and (playlist[message.server.id] != ''):
  934.         #print(playlist[message.server.id])
  935.         await music_bot(url, message)
  936.        
  937.  
  938. async def music_bot(url, message):
  939.     global vc, cp, playlist, urllist, loop, ytdl
  940.  
  941.     print('Type: {0}'.format(type(url)))
  942.     print('begining music bot')
  943.     urls[message.server.id] = url
  944.     try:
  945.         if client.is_voice_connected(message.server):
  946.             try:
  947.                 while playlist[message.server.id] != '':
  948.                     print('Second player condition 1')
  949.                     vc = client.voice_client_in(message.server)
  950.                     players[message.server.id].stop()
  951.                     musicplayer = await vc.create_ytdl_player(url, before_options=" -reconnect 1 -reconnect_streamed 1"
  952.                                                                                    " -reconnect_delay_max 5")
  953.                     players[message.server.id] = musicplayer
  954.                     musicplayer.start()
  955.                     cp[message.server.id] = 'True'
  956.                    
  957.                     info = ytdl.extract_info(url, download = False)
  958.                     formats = info['formats']
  959.                    
  960.                     await asyncio.sleep(int(info['duration'])-1)
  961.                     cp[message.server.id] = 'False'
  962.                     #playlist[message.server.id] = playlist[message.server.id][len(urllist)+7:]
  963.                     await loop_check(url, message)
  964.                    
  965.             except Exception as e:
  966.                 e = sys.exc_info()[0]
  967.                 await client.send_message(message.server, "Error2____[{0}]".format(e))
  968.  
  969.         if not client.is_voice_connected(message.server):
  970.             try:
  971.                 while playlist[message.server.id] != '':
  972.                     #urllist = playlist[message.server.id].split('<split>')
  973.  
  974.                     channel = message.author.voice.voice_channel
  975.                     vc = await client.join_voice_channel(channel)
  976.                     musicplayer = await vc.create_ytdl_player(url, before_options=" -reconnect 1 -reconnect_streamed 1"
  977.                                                                                    " -reconnect_delay_max 5")
  978.                     players[message.server.id] = musicplayer
  979.                     musicplayer.start()
  980.                     cp[message.server.id] = 'True'
  981.                    
  982.                     info = ytdl.extract_info(url, download = False)
  983.                     formats = info['formats']
  984.                    
  985.                     await asyncio.sleep(int(info['duration'])-1)
  986.                     print('1')
  987.                     cp[message.server.id] = 'False'
  988.                     print('2')
  989.                     await loop_check(url, message)
  990.                     print('3')
  991.                    
  992.                    
  993.             except Exception as u:
  994.                 e = sys.exc_info()[0]
  995.                 await client.send_message(message.channel, "Error3____[{0}]____[{1}]".format(e, u))
  996.                
  997.     except Exception as e:
  998.         e = sys.exc_info()[0]
  999.         #await client.send_message(message.channel, "Error4____[{0}]".format(e))
  1000.         print("Error4____[{0}]".format(e))
  1001.    
  1002. async def loop_check(url, message):
  1003.     global loop, playlist, urllist, lp
  1004.  
  1005.     if lp[message.server.id] == True:
  1006.         print('3')
  1007.         playlist[message.server.id] = '{0}<split>{1}'.format(playlist[message.server.id][len(url)+7:], url)
  1008.    
  1009.         await music_playlist(message)
  1010.        
  1011.     else:
  1012.    
  1013.         if loop[message.server.id] == True:
  1014.             await music_bot(url, message)
  1015.         elif loop[message.server.id] == False:
  1016.             playlist[message.server.id] = playlist[message.server.id][len(url)+7:]
  1017.             await music_playlist(message)
  1018.  
  1019. async def music_skip(message):
  1020.     global players, playlist, urllist, cp, urls
  1021.  
  1022.     for i in message.server.roles:
  1023.         print(i, type(i))
  1024.     if 'DJ' in message.server.roles:
  1025.         print('SKIP TEST 1')
  1026.         if 'DJ' in message.author.roles:
  1027.  
  1028.             print('SKIP TEST 2')
  1029.             cp[message.server.id] = 'False'
  1030.             players[message.server.id].stop()
  1031.             playlist[message.server.id] = playlist[message.server.id][len(urls[message.server.id])+7:]
  1032.             msg = 'Skipping current song...'
  1033.             await client.send_message(message.channel, msg)
  1034.             await music_playlist(message)
  1035.         else:
  1036.             msg = 'Insufficent permission!'
  1037.             await client.send_message(message.channel, msg)
  1038.             print('SKIP TEST 3')
  1039.     else:
  1040.         if lp[message.server.id] == True:
  1041.        
  1042.             playlist[message.server.id] = '{0}<split>{1}'.format(playlist[message.server.id][len(urls[message.server.id])+7:], urls[message.server.id])
  1043.            
  1044.         else:
  1045.             playlist[message.server.id] = playlist[message.server.id][len(urls[message.server.id])+7:]
  1046.         cp[message.server.id] = 'False'
  1047.         players[message.server.id].stop()
  1048.         msg = 'Skipping current song...'
  1049.         await client.send_message(message.channel, msg)
  1050.         await music_playlist(message)
  1051.    
  1052.    
  1053.  
  1054. statuses = ["with Lily", "with Ana", "with Yuno", "with Eri", "with Honoka", "with Nico", "with Nico", "with Nico Nico Niii~",
  1055.             "with Maki", "with herself", "with her toys", "with Nozomi", "with Kotori", "with Umi", "with Rin", "with Hanayo",
  1056.             "with Chika", "with Riko", "with Kanan", "with Dia", "with You-chan", "with Yoshiko", "with Yohanne", "with Hanamaru zuraaa~",
  1057.             "with Mari", "with Ruby", "with Taiga", "with her phone", "with Toastie", "with Ado-kun", "with adorable Ana-chan",
  1058.             "with Mashiro", "with Yuzu", "with Katalina", "with her creator", "with Angela", "with her hair", "with Aqours", "with ยต's",
  1059.             "with Luka", "Doki Doki Literature Club", "with Natsuki..?", "with Yuri", "with Sayori", "with Hana", "with her friends",
  1060.             "with Faerlynn", "nothing... Weird...", "with Satou", "with Shio", "with Livvy", "as Mercy", "as Ana", "as Brigitte", "as Pharah", "as D.Va",
  1061.             "as Mei", "as Sombra", "as Ashe", "as Moira", "as Symmetra", "as Tracer", "as Zarya", "as Miku", "as Luka", "as Athena", "as Echo",
  1062.             "as Efi", "with Katniss", "never have I ever"]
  1063.  
  1064.  
  1065. async def task_loop():
  1066.     while True:
  1067.         me = discord.utils.find(lambda s: s != None, client.servers).me
  1068.         if not me:
  1069.                 return
  1070.         elif not me.game:
  1071.                 updated_game = discord.Game(name = random.choice(statuses))
  1072.         else:
  1073.                 updated_game = me.game
  1074.                 updated_game.name = random.choice(statuses)
  1075.         await client.change_presence(game = updated_game)
  1076.         print('Setting game to: Playing {0}'.format(str(updated_game)))
  1077.         await asyncio.sleep(300)
  1078.  
  1079.  
  1080. @client.event
  1081. async def on_ready():
  1082.     global start, statuses
  1083.     print('Logged in as:', client.user.name)
  1084.     print('Client ID:',client.user.id)
  1085.     print('Loading files...')
  1086.     reload_files()
  1087.     if success == False:
  1088.         print('Files loaded successfully')
  1089.     else:
  1090.         print("Loading of files unsuccessfull")
  1091.     end = timeit.timeit()
  1092.     print('Started up in', round((end - start)*100, 2), 'seconds')
  1093.     client.loop.create_task(task_loop())
  1094.     await asyncio.sleep(0.5)
  1095.     print('------------')
  1096.  
  1097. TOKEN = '<removed>'      
  1098. client.run(TOKEN)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement