Files
discord-jeeves/scripts/emojivvdd.py

86 lines
3.4 KiB
Python
Raw Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
#!/usr/bin/env python3
import time
import discord
from discord.ext import commands
import sys
import ast
from ..jeevesbot import env
## Standalone script for emoji-vvdd
# setup discord.py bot
intents = discord.Intents().all()
client = commands.Bot(command_prefix='!', intents=intents)
if len(sys.argv) >= 2:
params = sys.argv[1:]
else:
print("Missing parameter input.")
async def score(question, score):
e = discord.Embed(title='Emoji-VVDD', color=discord.Color.green())
e.set_author(name='Jeeves', icon_url='https://cdn.hippogrief.nl/jeevesbot/jeeves.jpg')
e.add_field(name=question, value='\u200b', inline=False)
e.add_field(name='Hoogste score:', value=score, inline=False)
e.set_thumbnail(url='https://cdn.hippogrief.nl/jeevesbot/logo.jpg')
return score
async def run_script(params):
params = params
channel = client.get_channel(729667183126511617) # vvdd 729667183126511617 # tech 790908319005933598 # test 749399756752814105
emoji_numbers = ['1', '2', '3', '4', '5', '6', '7', '8', '9']
question = params[0] # string
answers = ast.literal_eval(params[1]) # list
number_of_responses = len(answers) # int
e = discord.Embed(title='Emoji-VVDD', description='Klik de emoji beneden dit bericht om te stemmen op het antwoord wat bij de emoji hoort.', color=discord.Color.blue())
e.set_author(name='Jeeves', icon_url='https://cdn.hippogrief.nl/jeevesbot/jeeves.jpg')
e.add_field(name=question, value='\u200b', inline=False)
for emoji, answer in zip(emoji_numbers, answers):
e.add_field(name=emoji, value=answer, inline=False)
e.set_thumbnail(url='https://cdn.hippogrief.nl/jeevesbot/logo.jpg')
message = await channel.send(embed=e)
for i in range(number_of_responses):
await message.add_reaction(emoji_numbers[i])
for i in range(24, -1, -1):
time.sleep(60)
message = await channel.fetch_message(message.id)
values = {}
for i in message.reactions:
itervalues = {str(i): int(i.count)}
values.update(itervalues)
max_key = max(values, key=values.get)
all_values = values.values()
max_value = max(all_values)
highest_keys = [key for key in values if values[key] == max_value]
if len(highest_keys) == 1:
max_key = highest_keys[0]
hoogste_score = 'Hoogste score:'
elif len(highest_keys) != 1:
max_key = highest_keys
print(max_key)
hoogste_score = 'Gelijkspel tussen:'
score = (str(max_key) + ' met ' + str(max_value) + ' stemmen.')
f = discord.Embed(title='Emoji-VVDD', color=discord.Color.green())
f.set_author(name='Jeeves', icon_url='https://cdn.hippogrief.nl/jeevesbot/jeeves.jpg')
f.add_field(name=question, value='\u200b', inline=False)
f.add_field(name=hoogste_score, value=score, inline=False)
f.set_footer(text="Je mag blijven doorstemmen, deze tussenstand zal niet worden bijgewerkt meer verder.")
f.set_thumbnail(url='https://cdn.hippogrief.nl/jeevesbot/logo.jpg')
message = await channel.send(embed=f)
await client.close()
@client.event
async def on_ready():
print('### Active with id %s as %s ###' % (client.user.id,client.user.name) )
activity = discord.Activity(name='!help', type=discord.ActivityType.listening)
await client.change_presence(activity=activity)
await run_script(params)
if __name__ == '__main__':
client.run(env.TOKEN)