working alpha ver.
This commit is contained in:
2
makefile
2
makefile
@@ -2,4 +2,4 @@ compose_up:
|
||||
docker compose up --build
|
||||
|
||||
run:
|
||||
python src/bot_core.py database.ini discord.token 477298331777761280 1441505246818996445
|
||||
python src/bot_core.py database.ini discord.token 1128111628471255050 1441504341797371996
|
||||
@@ -2,13 +2,15 @@
|
||||
|
||||
import argparse
|
||||
import discord
|
||||
import datetime
|
||||
import psycopg2
|
||||
from discord.ext import commands
|
||||
import helper.db_helper
|
||||
|
||||
CONTRASTELLAR = 181187505448681472
|
||||
VERYBADSTAR_PL = 1439484001751404554
|
||||
|
||||
DATABASE_CONN = helper.db_helper.DBHelper = None
|
||||
DATABASE_CONN: helper.db_helper.DBHelper = None
|
||||
|
||||
# instance variables
|
||||
larboard = 0
|
||||
@@ -37,9 +39,11 @@ parser.add_argument('channel_id')
|
||||
|
||||
@client.event
|
||||
async def on_ready():
|
||||
await client.tree.sync()
|
||||
print(f'{client.user} has connected.')
|
||||
print(f'we are using the guild {args.guild_id} and channel {args.channel_id}')
|
||||
#guild: discord.Guild = await client.fetch_guild(args.guild_id)
|
||||
#channel: discord.TextChannel = await client.fetch_channel(args.channel_id)
|
||||
#await channel.send("test")
|
||||
|
||||
|
||||
@client.tree.command()
|
||||
@@ -52,15 +56,39 @@ async def ping(interaction: discord.Interaction):
|
||||
async def on_reaction_add(react: discord.Reaction, user: discord.User):
|
||||
message: discord.Message = react.message
|
||||
reaction: discord.Reaction = react.emoji
|
||||
link: str = react.message.jump_url
|
||||
|
||||
react_uid: int = react.emoji.id
|
||||
message_uid: int = message.id
|
||||
|
||||
|
||||
|
||||
if reaction != VERYBADSTAR_PL:
|
||||
print(f'disregarding reaction!')
|
||||
|
||||
if react_uid != VERYBADSTAR_PL:
|
||||
return
|
||||
|
||||
is_message_in_table: bool = DATABASE_CONN.is_message_in_table(message_uid)
|
||||
|
||||
if react_uid == VERYBADSTAR_PL and not is_message_in_table:
|
||||
print(f'adding to table /w one react')
|
||||
DATABASE_CONN.add_message_to_table(message_uid=message_uid)
|
||||
return
|
||||
|
||||
elif react_uid == VERYBADSTAR_PL and is_message_in_table:
|
||||
print(f'adding one react')
|
||||
current_num_reacts: int = DATABASE_CONN.num_reacts(message_uid)
|
||||
DATABASE_CONN.add_one_to_message(message_uid, current_num_reacts)
|
||||
|
||||
current_num_reacts: int = DATABASE_CONN.num_reacts(message_uid)
|
||||
if current_num_reacts == 3:
|
||||
embed = discord.Embed(description=f"{react.message.content}\n[Jump to message]({link})",
|
||||
timestamp=datetime.datetime.now())
|
||||
|
||||
embed.set_author(name=f"{react.message.author}")
|
||||
|
||||
posting_channel: discord.TextChannel = await client.fetch_channel(args.channel_id)
|
||||
|
||||
await posting_channel.send(embed=embed)
|
||||
|
||||
|
||||
|
||||
return
|
||||
|
||||
# --- end commands
|
||||
|
||||
@@ -53,8 +53,41 @@ class DBHelper():
|
||||
def __del__(self):
|
||||
pass
|
||||
|
||||
def num_reacts(self, message_uid: int):
|
||||
def num_reacts(self, message_uid: int) -> int:
|
||||
self.__CONN = connect_config(self._config)
|
||||
cursor = self.__CONN.cursor()
|
||||
cursor.execute('SELECT ')
|
||||
return
|
||||
|
||||
cursor.execute(f'SELECT number_reacts from messages WHERE message_uid = {message_uid};')
|
||||
|
||||
return_val: list = cursor.fetchone()
|
||||
|
||||
return return_val[0]
|
||||
|
||||
def is_message_in_table(self, message_uid: int) -> bool:
|
||||
self.__CONN = connect_config(self._config)
|
||||
cursor = self.__CONN.cursor()
|
||||
|
||||
cursor.execute(f'SELECT * FROM messages WHERE message_uid = {message_uid};')
|
||||
|
||||
list_of_return = cursor.fetchone()
|
||||
|
||||
return list_of_return is not None
|
||||
|
||||
def add_message_to_table(self, message_uid: int) -> bool:
|
||||
self.__CONN = connect_config(self._config)
|
||||
cursor = self.__CONN.cursor()
|
||||
|
||||
cursor.execute(f"INSERT INTO messages (message_uid, number_reacts) VALUES ('{message_uid}', 1);")
|
||||
self.__CONN.commit()
|
||||
|
||||
return True
|
||||
|
||||
def add_one_to_message(self, message_uid: int, current_count: int) -> bool:
|
||||
self.__CONN = connect_config(self._config)
|
||||
cursor = self.__CONN.cursor()
|
||||
|
||||
cursor.execute(f"UPDATE messages SET number_reacts = {current_count + 1} WHERE message_uid = {message_uid}")
|
||||
self.__CONN.commit()
|
||||
|
||||
return True
|
||||
|
||||
|
||||
Reference in New Issue
Block a user