Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # Work with Python 3.6
- import random
- import asyncio
- import aiohttp
- import json
- from discord import Game
- from discord.ext.commands import Bot
- import json, requests
- import time
- import re
- import mechanicalsoup
- import sys
- import discord.utils
- import os
- import gspread
- import traceback
- BOT_PREFIX = (">")
- TOKEN = ''
- version = "0.0.5.5"
- client = Bot(command_prefix=BOT_PREFIX)
- def infra_calc(start,end):
- #print 'works'
- ee = 2.1878
- a = 0
- z = start
- ee = float(ee)
- for i in range(0,end-start):
- x = float(300+((z-10)**2.2)/710)
- if i != 0:
- z = z + 1
- a = a + x
- #print a
- return a
- def restart_program():
- python = sys.executable
- os.execl(python, python, * sys.argv)
- def edit_sh(id,dis,t):
- from oauth2client.service_account import ServiceAccountCredentials
- scope = ['https://spreadsheets.google.com/feeds',
- 'https://www.googleapis.com/auth/drive']
- creds = ServiceAccountCredentials.from_json_keyfile_name('client_secret.json', scope)
- clientt = gspread.authorize(creds)
- sh = clientt.open("Bank")
- worksheet = sh.worksheet("accounts")
- worksheet2 = sh.worksheet("Loan_Requests")
- worksheet3 = sh.worksheet("bank info")
- list_of_hashes = worksheet.get_all_records()
- #print(list_of_hashes)
- values_list = worksheet.col_values(1)
- next_line = len(worksheet.col_values(1))+1
- next_line2 = len(worksheet2.col_values(1))+1
- if t == 1:
- try:
- disc = worksheet.find(dis)
- return 'You have already made an account'
- except:
- worksheet.update_cell(int(next_line),1, dis)
- worksheet.update_cell(int(next_line),2, id)
- worksheet2.update_cell(int(next_line2),1, dis)
- worksheet2.update_cell(int(next_line2),2, id)
- return 'Account created. Please set a password with >passwordcreate [password] (You can DM this bot)'
- elif t == 2:
- try:
- disc = worksheet.find(dis)
- print(worksheet.find(dis))
- worksheet.update_cell(disc.row,3, id)
- except:
- return "Account not found. Please use the command >create [nation link here]"
- elif t == 3:
- try:
- x = id
- print(x)
- id = x[6:]
- x = x[6:]
- username = ""
- password = ""
- t = True
- p = 0
- for i in range(0,len(x)):
- if t == True:
- username = username + x[i]
- if x[i] == "#":
- p = i+4
- if p == i and p > 0:
- t = False
- elif t == False:
- password = password + x[i]
- password = password[1:]
- print(username+'+')
- print(password)
- user = worksheet.find(username)
- passw = worksheet.find(password)
- #disc = worksheet.find(dis)
- print(user)
- print(passw)
- user_account = worksheet.row_values(user.row)
- user_account = user_account[3:]
- list = ['Initial Loan: ','Interest: ','Date taken out: ','Current date: ','Weeks passed: ','Loan To Repay: ']
- msg = '\n'
- for i in range(0,len(list)):
- try:
- msg = msg + list[i] + user_account[i] + '\n'
- except:
- print("Error In loop")
- return '```'+msg+'```'
- except:
- return 'Wrong username or password.'
- elif t == 4:
- try:
- disc = worksheet2.find(dis)
- print(disc)
- x = id
- amount = ""
- reason = ""
- get_str = ""
- for i in range(0,len(x)):
- if x[i] == " ":
- reason = x[i+1:]
- amount = x[:i]
- break
- if not amount.isdigit():
- raise ValueError('Wtf is this guy doing')
- worksheet2.update_cell(disc.row,3,amount)
- worksheet2.update_cell(disc.row,6,reason)
- worksheet2.update_cell(disc.row,5,1)
- print ('Amount:'+amount+'+')
- print ('Reason:'+reason+'+')
- return 'You have successfully requested: **'+amount+'**.'
- except ValueError:
- return "That number is not valid, sir."
- except:
- return "We could not find your account, sir."
- traceback.print_exc()
- elif t == 5:
- x = id
- amount = ""
- banker = ""
- reciever = ""
- for i in range(0,len(x)):
- if x[i] == " " and x[i+1].isdigit():
- banker = x[:i]
- x = x[i+1:]
- break
- for i in range(0,len(x)):
- if x[i] == " ":
- reciever = x[i+1:]
- amount = x[:i]
- break
- #p = client.server.get_member(banker)
- try:
- print("+"+banker+"+")
- sender = worksheet.find(banker)
- except:
- return 'The banker ID is incorrect, sir.'
- try:
- print("+"+reciever+"+")
- recieve = worksheet.find(reciever)
- except:
- return 'The recipient information is incorrect, sir.'
- print ('Amount:'+amount+'+')
- print ('Banker:'+banker+'+')
- print ('Reciever:'+reciever+'+')
- amount = int(amount)
- bamount = worksheet3.cell(sender.row,5).value
- money_leftover = bamount-amount
- print(int(bamount)+1)
- return 'You have sent '+amount+' to '+reciever
- #return values_list
- def rgb(color):
- if color == "lime":
- return discord.Colour(0x00DB0F)
- elif color == "green":
- return discord.Colour(0x249100)
- elif color == "aqua":
- return discord.Colour(0x00FFFF)
- if color == "black":
- return discord.Colour(0x000001)
- if color == "blue":
- return discord.Colour(0x0011FF)
- if color == "brown":
- return discord.Colour(0x754800)
- if color == "maroon":
- return discord.Colour(0x800000)
- if color == "olive":
- return discord.Colour(0x556B2F)
- if color == "orange":
- return discord.Colour(0xFFA500)
- if color == "pink":
- return discord.Colour(0xFF69B4)
- if color == "purple":
- return discord.Colour(0x800080)
- if color == "red":
- return discord.Colour(0xFF0000)
- if color == "white":
- return discord.Colour(0xFFFFFF)
- if color == "yellow":
- return discord.Colour(0xFFFF00)
- @client.event
- async def on_message(message):
- # we do not want the bot to reply to itself
- if message.author == client.user:
- return
- if message.content.startswith('>restart'):
- msg = 'Restarting...'.format(message)
- await client.send_message(message.channel, msg)
- restart_program()
- if message.content.startswith('>v'):
- msg = version.format(message)
- await client.send_message(message.channel, msg)
- if message.content.startswith('>create'):
- id = (message.content.format(message)[8:]).lower()
- msg = (edit_sh(id,str(message.author),1)).format(message)
- await client.send_message(message.channel, msg)
- #msg = m.format(message)
- #await client.send_message(message.channel, msg)
- if message.content.startswith('>passwordcreate'):
- id = (message.content.format(message)[16:])
- edit_sh(id,str(message.author),2)
- if message.content.startswith('>request'):
- id = (message.content.format(message)[9:])
- msg = (edit_sh(id,str(message.author),4)).format(message)
- await client.send_message(message.channel, msg)
- if message.content.startswith('>pay'):
- #try:
- #a = message.author.server_permissions.administrator
- id = (message.content.format(message)[5:])
- msg = (edit_sh(id,str(message.author),5)).format(message)
- await client.send_message(message.channel, msg)
- #except:
- #msg = 'You do not have permission to do that, sir.'.format(message)
- #await client.send_message(message.channel, msg)
- if message.content.startswith('>show'):
- id = (message.content.format(message))
- msg = (edit_sh(id,str(message.author),3)).format(message)
- await client.send_message(message.channel, msg)
- if message.content.startswith('>verify'):
- session = aiohttp.ClientSession()
- msg = ('Verifying...').format(message)
- await client.send_message(message.channel, msg)
- id = (message.content.format(message)[45:]).lower()
- print(message.server.roles)
- if id.isdigit():
- print(id)
- browser = mechanicalsoup.StatefulBrowser()
- browser.open("https://politicsandwar.com/nation/id="+id)
- page = browser.get_current_page()
- word = str(message.author)
- #word = "Monero"
- #print(word)
- page = str(page)
- if word in page:
- pull = await session.get("https://politicsandwar.com/api/nation/id="+str(id))
- nation_data = await pull.json()
- alliance = nation_data['alliance']
- col = nation_data['color']
- await client.send_message(message.channel,"You've been verified. Role: " + alliance)
- role = discord.utils.get(message.server.roles, name=alliance)
- color = rgb(col)
- if role in message.server.roles:
- print("Role already exists")
- try:
- await client.add_roles(message.author, role)
- await client.edit_role(message.server, role, colour=color)
- except:
- print("error1")
- else:
- print('Role does not exist')
- await client.create_role(message.author.server, name=alliance)
- role = discord.utils.get(message.server.roles, name=alliance)
- await client.add_roles(message.author, role)
- await client.edit_role(message.server, role, colour=color) #.blue()
- session.close()
- client.close()
- else:
- await client.send_message(message.channel,"Sorry but we could not verify you. Please make sure your discord is somewere in your nation description.")
- else:
- await client.send_message(message.channel,"Error, link invalid.")
- if message.content.startswith('>help'):
- msg = 'Commands:\n>help (Opens help menu)\n>verify [nation link here] (Put your discord ID in your nation description)'.format(message)
- await client.send_message(message.channel, msg)
- print(version)
- async def list_servers():
- await client.wait_until_ready()
- while not client.is_closed:
- print("Current servers:")
- for server in client.servers:
- print(server.name)
- await asyncio.sleep(600)
- client.loop.create_task(list_servers())
- client.run(TOKEN)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement