Gambling-BOT/database.py
2025-03-24 16:11:15 +01:00

115 lines
2.5 KiB
Python

from psycopg2.extensions import connection, cursor
async def user_exists(conn, user_id, guild_id):
cur = conn.cursor()
cur.execute("SELECT user_id FROM member WHERE user_id=%s AND guild_id=%s", (user_id, guild_id))
result = cur.fetchone()
cur.close()
return result is not None
async def insert_vote_options(conn, vote_id, vote_option):
cur = conn.cursor()
cur.execute(
"INSERT INTO "
"vote (vote_id, vote_option) "
"VALUES (%s, %s)",
(vote_id, vote_option)
)
conn.commit()
cur.close()
async def change_bet(conn: connection, user_id: str, guild_id: str, new_bet_amount: int):
cur: cursor = conn.cursor()
cur.execute("UPDATE member SET bet_value = %s WHERE user_id=%s AND guild_id=%s",
(new_bet_amount, user_id, guild_id))
async def get_user_vote(conn: connection, user_id: str, poll_id: str):
cur: cursor = conn.cursor()
cur.execute(""
"SELECT vote_id "
"FROM vote_member "
"WHERE user_id=%s "
"AND poll_id=%s",
(user_id, poll_id)
)
conn.commit()
cur.close()
async def bet(conn, vote_id: str, poll_id: str, user_id: str, guild_id: str):
cur = conn.cursor()
cur.execute(
"INSERT INTO "
"vote_member (user_id, poll_id, guild_id, vote_id) "
"VALUES (%s, %s, %s, %s)",
(user_id, poll_id, guild_id, vote_id)
)
conn.commit()
cur.close()
async def guild_exists(conn, guild_id):
cur = conn.cursor()
cur.execute("SELECT guild_id FROM guild WHERE guild_id=%s", (guild_id,))
result = cur.fetchone()
cur.close()
return result is not None
async def insert_poll(conn, creator, poll_id, guild_id, question):
cur = conn.cursor()
cur.execute(
"INSERT INTO "
"poll (creator, poll_id, guild_id, question, opened) "
"VALUES (%s, %s, %s, %s, true)",
(creator, poll_id, guild_id, question)
)
conn.commit()
cur.close()
async def insert_guild(conn, guild_id):
cur = conn.cursor()
cur.execute(
"INSERT INTO "
"guild (guild_id) "
"VALUES (%s)",
(guild_id,)
)
conn.commit()
cur.close()
async def insert_user(conn, user_id, guild_id, global_name, avatar):
cur = conn.cursor()
cur.execute(
"INSERT INTO "
"member (user_id, guild_id, global_name, avatar) "
"VALUES (%s, %s, %s, %s)",
(user_id, guild_id, global_name, avatar)
)
conn.commit()
cur.close()