2021-07-09 11:11:09 +02:00
#!/usr/bin/env python3
import time
import discord
from discord . ext import commands
import sys
import ast
2021-07-12 01:22:54 +02:00
from . . jeevesbot import env
2021-07-09 11:11:09 +02:00
2021-07-12 01:22:54 +02:00
## Standalone script for emoji-vvdd
2021-07-09 11:11:09 +02:00
# 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
2021-07-12 01:22:54 +02:00
channel = client . get_channel ( 729667183126511617 ) # vvdd 729667183126511617 # tech 790908319005933598 # test 749399756752814105
2021-07-09 11:11:09 +02:00
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 )
2021-07-12 01:22:54 +02:00
f . set_footer ( text = " Je mag blijven doorstemmen, deze tussenstand zal niet worden bijgewerkt meer verder. " )
2021-07-09 11:11:09 +02:00
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__ ' :
2021-07-12 01:22:54 +02:00
client . run ( env . TOKEN )