Advertisement
Guest User

Frezasan's bot

a guest
Oct 30th, 2018
138
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 11.13 KB | None | 0 0
  1.  
  2.  
  3. # Work with Python 3.6
  4. import random
  5. import asyncio
  6. import aiohttp
  7. import json
  8. from discord import Game
  9. from discord.ext.commands import Bot
  10. import json, requests
  11. import time
  12. import re
  13. import mechanicalsoup
  14. import sys
  15. import discord.utils
  16. import os
  17. import gspread
  18. import traceback
  19.  
  20. BOT_PREFIX = (">")
  21. TOKEN = ''
  22. version = "0.0.5.5"
  23.  
  24. client = Bot(command_prefix=BOT_PREFIX)
  25.  
  26. def infra_calc(start,end):
  27.     #print 'works'
  28.     ee = 2.1878
  29.     a = 0
  30.     z = start
  31.     ee = float(ee)
  32.     for i in range(0,end-start):
  33.         x = float(300+((z-10)**2.2)/710)
  34.         if i != 0:
  35.             z = z + 1
  36.         a = a + x
  37.     #print a
  38.     return a
  39. def restart_program():
  40.     python = sys.executable
  41.     os.execl(python, python, * sys.argv)
  42. def edit_sh(id,dis,t):
  43.     from oauth2client.service_account import ServiceAccountCredentials
  44.     scope = ['https://spreadsheets.google.com/feeds',
  45.         'https://www.googleapis.com/auth/drive']
  46.     creds = ServiceAccountCredentials.from_json_keyfile_name('client_secret.json', scope)
  47.     clientt = gspread.authorize(creds)
  48.     sh = clientt.open("Bank")
  49.     worksheet = sh.worksheet("accounts")
  50.     worksheet2 = sh.worksheet("Loan_Requests")
  51.     worksheet3 = sh.worksheet("bank info")
  52.     list_of_hashes = worksheet.get_all_records()
  53.     #print(list_of_hashes)
  54.     values_list = worksheet.col_values(1)
  55.     next_line = len(worksheet.col_values(1))+1
  56.     next_line2 = len(worksheet2.col_values(1))+1
  57.     if t == 1:
  58.         try:
  59.             disc = worksheet.find(dis)
  60.             return 'You have already made an account'
  61.         except:
  62.             worksheet.update_cell(int(next_line),1, dis)
  63.             worksheet.update_cell(int(next_line),2, id)
  64.             worksheet2.update_cell(int(next_line2),1, dis)
  65.             worksheet2.update_cell(int(next_line2),2, id)
  66.             return 'Account created. Please set a password with >passwordcreate [password] (You can DM this bot)'
  67.     elif t == 2:
  68.         try:
  69.             disc = worksheet.find(dis)
  70.             print(worksheet.find(dis))
  71.             worksheet.update_cell(disc.row,3, id)
  72.         except:
  73.             return "Account not found. Please use the command >create [nation link here]"
  74.     elif t == 3:
  75.         try:
  76.  
  77.             x = id
  78.             print(x)
  79.             id = x[6:]
  80.             x = x[6:]
  81.             username = ""
  82.             password = ""
  83.             t = True
  84.             p = 0
  85.             for i in range(0,len(x)):
  86.                 if t == True:
  87.                     username = username + x[i]
  88.                 if x[i] == "#":
  89.                     p = i+4
  90.                 if p == i and p > 0:
  91.                     t = False
  92.                 elif t == False:
  93.                     password = password + x[i]
  94.             password = password[1:]
  95.             print(username+'+')
  96.             print(password)
  97.             user = worksheet.find(username)
  98.             passw = worksheet.find(password)
  99.             #disc = worksheet.find(dis)
  100.             print(user)
  101.             print(passw)
  102.             user_account = worksheet.row_values(user.row)
  103.             user_account = user_account[3:]
  104.             list = ['Initial Loan: ','Interest: ','Date taken out: ','Current date: ','Weeks passed: ','Loan To Repay: ']
  105.             msg = '\n'
  106.             for i in range(0,len(list)):
  107.                 try:
  108.                     msg = msg + list[i] + user_account[i] + '\n'
  109.                 except:
  110.                     print("Error In loop")
  111.             return '```'+msg+'```'
  112.         except:
  113.             return 'Wrong username or password.'
  114.     elif t == 4:
  115.         try:
  116.             disc = worksheet2.find(dis)
  117.             print(disc)
  118.             x = id
  119.             amount = ""
  120.             reason = ""
  121.             get_str = ""
  122.             for i in range(0,len(x)):
  123.                 if x[i] == " ":
  124.                     reason = x[i+1:]
  125.                     amount = x[:i]
  126.                     break
  127.             if not amount.isdigit():
  128.                 raise ValueError('Wtf is this guy doing')
  129.             worksheet2.update_cell(disc.row,3,amount)
  130.             worksheet2.update_cell(disc.row,6,reason)
  131.             worksheet2.update_cell(disc.row,5,1)
  132.             print ('Amount:'+amount+'+')
  133.             print ('Reason:'+reason+'+')
  134.             return 'You have successfully requested: **'+amount+'**.'
  135.         except ValueError:
  136.             return "That number is not valid, sir."
  137.         except:
  138.             return "We could not find your account, sir."
  139.             traceback.print_exc()
  140.     elif t == 5:
  141.         x = id
  142.         amount = ""
  143.         banker = ""
  144.         reciever = ""
  145.         for i in range(0,len(x)):
  146.             if x[i] == " " and x[i+1].isdigit():
  147.                 banker = x[:i]
  148.                 x = x[i+1:]
  149.                 break
  150.         for i in range(0,len(x)):
  151.             if x[i] == " ":
  152.                 reciever = x[i+1:]
  153.                 amount = x[:i]
  154.                 break
  155.         #p = client.server.get_member(banker)
  156.         try:
  157.             print("+"+banker+"+")
  158.             sender = worksheet.find(banker)
  159.         except:
  160.             return 'The banker ID is incorrect, sir.'
  161.         try:
  162.             print("+"+reciever+"+")
  163.             recieve = worksheet.find(reciever)
  164.         except:
  165.             return 'The recipient information is incorrect, sir.'
  166.         print ('Amount:'+amount+'+')
  167.         print ('Banker:'+banker+'+')
  168.         print ('Reciever:'+reciever+'+')
  169.         amount = int(amount)
  170.         bamount = worksheet3.cell(sender.row,5).value
  171.         money_leftover = bamount-amount
  172.        
  173.         print(int(bamount)+1)
  174.  
  175.        
  176.         return 'You have sent '+amount+' to '+reciever
  177.     #return values_list
  178. def rgb(color):
  179.     if color == "lime":
  180.         return discord.Colour(0x00DB0F)
  181.     elif color == "green":
  182.         return discord.Colour(0x249100)
  183.     elif color == "aqua":
  184.         return discord.Colour(0x00FFFF)
  185.     if color == "black":
  186.         return discord.Colour(0x000001)
  187.     if color == "blue":
  188.         return discord.Colour(0x0011FF)
  189.     if color == "brown":
  190.         return discord.Colour(0x754800)
  191.     if color == "maroon":
  192.         return discord.Colour(0x800000)
  193.     if color == "olive":
  194.         return discord.Colour(0x556B2F)
  195.     if color == "orange":
  196.         return discord.Colour(0xFFA500)
  197.     if color == "pink":
  198.         return discord.Colour(0xFF69B4)
  199.     if color == "purple":
  200.         return discord.Colour(0x800080)
  201.     if color == "red":
  202.         return discord.Colour(0xFF0000)
  203.     if color == "white":
  204.         return discord.Colour(0xFFFFFF)
  205.     if color == "yellow":
  206.         return discord.Colour(0xFFFF00)
  207.  
  208. @client.event
  209. async def on_message(message):
  210.  
  211.     # we do not want the bot to reply to itself
  212.     if message.author == client.user:
  213.         return
  214.     if message.content.startswith('>restart'):
  215.         msg = 'Restarting...'.format(message)
  216.         await client.send_message(message.channel, msg)
  217.         restart_program()
  218.     if message.content.startswith('>v'):
  219.         msg = version.format(message)
  220.         await client.send_message(message.channel, msg)
  221.     if message.content.startswith('>create'):
  222.         id = (message.content.format(message)[8:]).lower()
  223.         msg = (edit_sh(id,str(message.author),1)).format(message)
  224.         await client.send_message(message.channel, msg)
  225.         #msg = m.format(message)
  226.         #await client.send_message(message.channel, msg)
  227.     if message.content.startswith('>passwordcreate'):
  228.         id = (message.content.format(message)[16:])
  229.         edit_sh(id,str(message.author),2)
  230.     if message.content.startswith('>request'):
  231.         id = (message.content.format(message)[9:])
  232.         msg = (edit_sh(id,str(message.author),4)).format(message)
  233.         await client.send_message(message.channel, msg)
  234.     if message.content.startswith('>pay'):
  235.         #try:
  236.             #a = message.author.server_permissions.administrator
  237.         id = (message.content.format(message)[5:])
  238.         msg = (edit_sh(id,str(message.author),5)).format(message)
  239.         await client.send_message(message.channel, msg)
  240.         #except:
  241.             #msg = 'You do not have permission to do that, sir.'.format(message)
  242.             #await client.send_message(message.channel, msg)
  243.  
  244.     if message.content.startswith('>show'):
  245.         id = (message.content.format(message))
  246.         msg = (edit_sh(id,str(message.author),3)).format(message)
  247.         await client.send_message(message.channel, msg)
  248.     if message.content.startswith('>verify'):
  249.         session = aiohttp.ClientSession()
  250.         msg = ('Verifying...').format(message)
  251.         await client.send_message(message.channel, msg)
  252.         id = (message.content.format(message)[45:]).lower()
  253.         print(message.server.roles)
  254.         if id.isdigit():
  255.             print(id)
  256.             browser = mechanicalsoup.StatefulBrowser()
  257.             browser.open("https://politicsandwar.com/nation/id="+id)
  258.             page = browser.get_current_page()
  259.             word = str(message.author)
  260.             #word = "Monero"
  261.             #print(word)
  262.             page = str(page)
  263.             if word in page:
  264.                 pull = await session.get("https://politicsandwar.com/api/nation/id="+str(id))
  265.                 nation_data = await pull.json()
  266.                 alliance = nation_data['alliance']
  267.                 col = nation_data['color']
  268.                 await client.send_message(message.channel,"You've been verified. Role: " + alliance)
  269.                 role = discord.utils.get(message.server.roles, name=alliance)
  270.                 color = rgb(col)
  271.                 if role in message.server.roles:
  272.                     print("Role already exists")
  273.                     try:
  274.                         await client.add_roles(message.author, role)
  275.                         await client.edit_role(message.server, role, colour=color)
  276.                     except:
  277.                         print("error1")
  278.                 else:
  279.                     print('Role does not exist')
  280.                     await client.create_role(message.author.server, name=alliance)
  281.                     role = discord.utils.get(message.server.roles, name=alliance)
  282.                     await client.add_roles(message.author, role)
  283.                     await client.edit_role(message.server, role, colour=color) #.blue()
  284.                 session.close()
  285.                 client.close()
  286.             else:
  287.                 await client.send_message(message.channel,"Sorry but we could not verify you. Please make sure your discord is somewere in your nation description.")
  288.         else:
  289.             await client.send_message(message.channel,"Error, link invalid.")
  290.     if message.content.startswith('>help'):
  291.         msg = 'Commands:\n>help (Opens help menu)\n>verify [nation link here] (Put your discord ID in your nation description)'.format(message)
  292.         await client.send_message(message.channel, msg)
  293.  
  294. print(version)
  295. async def list_servers():
  296.     await client.wait_until_ready()
  297.     while not client.is_closed:
  298.         print("Current servers:")
  299.         for server in client.servers:
  300.             print(server.name)
  301.         await asyncio.sleep(600)
  302.  
  303.  
  304. client.loop.create_task(list_servers())
  305. client.run(TOKEN)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement