From 143fd45149aca52894acddd49b2922f4022c0178 Mon Sep 17 00:00:00 2001 From: LaDfBC Date: Fri, 27 Nov 2020 22:42:13 -0600 Subject: [PATCH] Update to discordpy 1.0 --- .../database_classes/db_classes.py | 1 - src/main/database_module/guess_dao.py | 1 - src/main/database_module/play_dao.py | 6 +-- src/main/db_session.py | 14 +++++-- src/main/discord_module/bot_runner.py | 37 ++++++++++--------- 5 files changed, 32 insertions(+), 27 deletions(-) diff --git a/src/main/database_module/database_classes/db_classes.py b/src/main/database_module/database_classes/db_classes.py index fcc4576..c8110dc 100644 --- a/src/main/database_module/database_classes/db_classes.py +++ b/src/main/database_module/database_classes/db_classes.py @@ -13,7 +13,6 @@ class Play(Base): play_id = Column(String, nullable=False, primary_key=True) pitch_value = Column(Integer, nullable=True) - swing_value = Column(Integer, nullable=False) creation_date = Column(Date, nullable=False) guesses = relationship(lambda : Guess) diff --git a/src/main/database_module/guess_dao.py b/src/main/database_module/guess_dao.py index dedcab0..e896333 100644 --- a/src/main/database_module/guess_dao.py +++ b/src/main/database_module/guess_dao.py @@ -73,7 +73,6 @@ class GuessDAO(): else: return possible_value - def fetch_closest(self, num_to_fetch): session = DatabaseSession.session diff --git a/src/main/database_module/play_dao.py b/src/main/database_module/play_dao.py index 46c5b32..7105c8d 100644 --- a/src/main/database_module/play_dao.py +++ b/src/main/database_module/play_dao.py @@ -5,7 +5,6 @@ from src.main.database_module.database_classes.db_classes import Play PLAY_ID = 'play_id' PITCH_VALUE = 'pitch_value' -SWING_VALUE = 'swing_value' CREATION_DATE = 'creation_date' class PlayDAO(): @@ -23,7 +22,6 @@ class PlayDAO(): play = Play( play_id = play_info[PLAY_ID], pitch_value = play_info[PITCH_VALUE] if PITCH_VALUE in play_info else None, - swing_value = play_info[SWING_VALUE] if SWING_VALUE in play_info else None, creation_date = play_info[CREATION_DATE] ) @@ -51,14 +49,14 @@ class PlayDAO(): else: return plays[0] - def resolve_play(self, input_pitch, input_swing): + def resolve_play(self, input_pitch): session = DatabaseSession.session active_id = self.get_active_play() session\ .query(Play)\ .filter(Play.pitch_value == None)\ - .update({Play.pitch_value: input_pitch, Play.swing_value: input_swing}) + .update({Play.pitch_value: input_pitch}) session.commit() return active_id diff --git a/src/main/db_session.py b/src/main/db_session.py index c21759e..bd4c597 100644 --- a/src/main/db_session.py +++ b/src/main/db_session.py @@ -2,6 +2,7 @@ from sqlalchemy import create_engine from sqlalchemy.orm import sessionmaker import sys +import sqlite3 sys.path.append('../../../../../src') from src.main.configs import Configs, DATABASE_USERNAME, DATABASE_PASSWORD, DATABASE_HOST, DATABASE_NAME @@ -20,7 +21,14 @@ class DatabaseSession(): def __init__(self): config_map = Configs.configs - db_string = 'postgresql://%s:%s@%s/%s' % \ - (config_map[DATABASE_USERNAME], config_map[DATABASE_PASSWORD], config_map[DATABASE_HOST], config_map[DATABASE_NAME]) + db_string = self._pgsql_conn_string_(config_map) Session = sessionmaker(create_engine(db_string)) - DatabaseSession.session = Session() \ No newline at end of file + DatabaseSession.session = Session() + + # Look, this kinda sucks. But it's for fun and friends and I'm doing it quick and dirty. + def _pgsql_conn_string_(self, config_map): + return 'postgresql://%s:%s@%s/%s' % \ + (config_map[DATABASE_USERNAME], config_map[DATABASE_PASSWORD], config_map[DATABASE_HOST], config_map[DATABASE_NAME]) + + def _sqlite_conn_string(self, config_map): + return "sqlite:///ghostball.db" \ No newline at end of file diff --git a/src/main/discord_module/bot_runner.py b/src/main/discord_module/bot_runner.py index 13c83c3..9e606d4 100644 --- a/src/main/discord_module/bot_runner.py +++ b/src/main/discord_module/bot_runner.py @@ -33,18 +33,18 @@ async def on_message(message): ''' if content.startswith('!ghostball'): if play_dao.is_active_play(): - await bot.send_message(message.channel, "Um, I think there's already an active play. Could you close that one first, please?") + await message.channel.send("There's already an active play. Could you close that one first, please?") else: play_object = {PLAY_ID : uuid.uuid4(), CREATION_DATE : datetime.datetime.now()} play_dao.insert(play_object) - await bot.send_message(message.channel, "@everyone, pitch is in! Send me your guesses with a !guess command.") + await message.channel.send( "@flappyball, pitch is in! Send me your guesses with a !guess command.") if content.startswith("!guess"): guess_value = __parse_guess__(content) if not play_dao.is_active_play(): - await bot.send_message(message.channel, "Hey, there's no active play! Start one up first with !ghostball.") + await message.channel.send( "Hey, there's no active play! Start one up first with !ghostball.") else: play = play_dao.get_active_play() guess_object = {PLAY_ID: play['play_id'], @@ -53,30 +53,30 @@ async def on_message(message): MEMBER_NAME: str(message.author.name)} if guess_dao.insert(guess_object): - await bot.add_reaction(message, emoji="\N{THUMBS UP SIGN}") + await message.add_reaction(emoji="\N{THUMBS UP SIGN}") # Closes off the active play to be ready for the next set if content.startswith('!resolve'): # try: - pitch_value, swing_value = __parse_resolve_play__(content) - if pitch_value is None or swing_value is None: - await bot.send_message(message.channel, "Hey " + "<@" + str(message.author.id) + ">, I'm not sure what you meant. " + pitch_value = __parse_resolve_play__(content) + if pitch_value is None: + await message.channel.send( "Hey " + "<@" + str(message.author.id) + ">, I'm not sure what you meant. " "You need real, numeric, values for this command to work. " "Use !resolve and try again.") # Check if we have an active play if not play_dao.is_active_play(): - await bot.send_message(message.channel, "You confused me. There's no active play so I have nothing to close!") + await message.channel.send( "You confused me. There's no active play so I have nothing to close!") else: - play = play_dao.resolve_play(pitch_value, swing_value) + play = play_dao.resolve_play(pitch_value) guess_dao.set_differences(pitch_value, play['play_id']) - await bot.send_message(message.channel, + await message.channel.send( "You got it boss. Closed this play, no further guesses allowed!") # Likely due to too few parameters but could be any number of things # except : - # await bot.send_message(message.channel, "Hey " + "<@" + str(message.author.id) + ">, you confused me with that message. " + # await message.channel.send( "Hey " + "<@" + str(message.author.id) + ">, you confused me with that message. " # "To close an active pitch, the proper command is !resolve . " # "Use that format and try again, ok?") @@ -90,18 +90,18 @@ async def on_message(message): for i, value in enumerate(values): string_to_send += str(i + 1) + ': ' + value['member_name'] + ', ' + value['difference'] + '\n' - await bot.send_message(message.channel, string_to_send) + await message.channel.send( string_to_send) elif leaderboard_config.should_sort_by_best_average(): pass else: - await bot.send_message(message.channel, "I don't understand that leaderboard command, sorry! I know it's a little confusing, so send me" + await message.channel.send( "I don't understand that leaderboard command, sorry! I know it's a little confusing, so send me" " a !help message if you want the full rundown for how to make this work!") if content.startswith('!help'): help_message = __get_help_message__() - recipient = await bot.get_user_info(message.author.id) - await bot.send_message(recipient, help_message) + recipient = await bot.fetch_user(message.author.id) + await recipient.send(help_message) def __get_help_message__(): # Start message with person who asked for help @@ -110,9 +110,9 @@ def __get_help_message__(): "I will give you a thumbs up if everything worked!\n" \ "!ghostball --- Starts a new play. I'll let you know if this didn't work for some reason!\n" \ "!help --- You just asked for this. If you ask for it again, I'll repeat myself.\n" \ - "!resolve --- Uses the pitch number and real swing number " \ + "!resolve --- Uses the pitch number and real swing number " \ "to figure out who was closest and ends the active play.\n" \ - "\n" + "\n" return help_message @@ -130,7 +130,7 @@ def __parse_guess__(message_content): def __parse_resolve_play__(message_content): pieces = message_content.split(' ') try: - return pieces[1], pieces[2] + return pieces[1] except TypeError: return None @@ -141,6 +141,7 @@ if __name__ == '__main__': configs = Configs(file_path) databaseSession = DatabaseSession() + play_dao = PlayDAO() guess_dao = GuessDAO() bot.run(token) \ No newline at end of file