Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import discord
- import json
- from discord.ext import commands
- MY_TOKEN = "NjY5OTQ4NDA5NTYxNjEyMzIw.XinQLQ.TdWWdbjU63-F0UuhXSQ89rp2Vuc"
- SERVER_ID_FAM = "553655332434608148"
- def get_guild_members(server_name):
- server = ''
- for guild in bot.guilds:
- if guild.name == server_name:
- server = guild
- return server.members
- def dump_json(data):
- with open('data.json', 'w') as outfile:
- json.dump(data, outfile)
- outfile.close()
- def open_json():
- data = {}
- with open('data.json') as json_file:
- data = json.load(json_file)
- json_file.close()
- return data
- def reset_json():
- data = {}
- data['members'] = []
- data['voted_members'] = []
- dump_json(data)
- def write_member_to_json(member, voted):
- data = open_json()
- if voted:
- data['voted_members'].append({
- 'id' : member.id,
- 'guild_id' : member.guild.id,
- 'display_name' : member.display_name,
- 'votes' : 1
- })
- else:
- data['members'].append({
- 'id' : member.id,
- 'guild_id' : member.guild.id,
- 'display_name' : member.display_name,
- 'votes_left' : 4
- })
- dump_json(data)
- def check_votes(member_id, members):
- votes = 0
- for m in members:
- if member_id == m.get("id"):
- if "votes_left" in m.keys():
- votes = m.get("votes_left")
- elif "votes" in m.keys():
- votes = m.get("votes")
- return votes
- def add_vote_to_member(member_author, member_voted):
- data = open_json()
- found_voted = False
- found_author = False
- # check if vote_member exists
- for m in data['voted_members']:
- if m.get("id") == member_voted.id:
- found_voted = True
- if check_votes(member_author.id, data['members']) > 0:
- m["votes"] += 1
- print("User {0} has {1} votes this week".format(m.get("display_name"), m.get("votes")))
- m
- else:
- print("User {0} has insufficient votes".format(m.get("display_name")))
- if not found_voted:
- write_member_to_json(member_voted, True)
- else:
- reset_json()
- dump_json(data)
- # check if member exists
- for m in data['members']:
- if m.get("id") == member_author:
- found_author = True
- m["votes_left"] -= 1
- if not found_author:
- write_member_to_json(member_author, False)
- else:
- reset_json()
- dump_json(data)
- bot = commands.Bot(command_prefix='!')
- @bot.event
- async def on_ready():
- print('Bot has successfully joined the server...')
- reset_json()
- @bot.command()
- async def vote(ctx, arg):
- # check if user exists
- if len(ctx.message.mentions) == 1:
- member_voted = ctx.message.mentions[0]
- member_author = ctx.message.author
- print('{0} voted for {1}'.format(member_author, member_voted.display_name))
- add_vote_to_member(member_author, member_voted)
- else:
- return "You can vote only one person at a time."
- bot.run(MY_TOKEN)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement