logic.py (view raw)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 |
import db as database
import emoji as emojis
# ========================= INITIALIZATION ========================= #
async def on_guild_join(guild_id):
db = database.Database(f"{guild_id}.db")
await db.create_tables()
# ========================= SETUP ========================== #
async def setup(guild_id):
db = database.Database(f"{guild_id}.db")
booster_role_id = await db.get_discord_id("booster_role_id")
if booster_role_id == None:
booster_check = "❌"
else:
booster_check = "✅"
distributor_channel_id = await db.get_discord_id("distributor_channel_id")
if distributor_channel_id == None:
distributor_check = "❌"
else:
distributor_check = "✅"
new_channel_category_id = await db.get_discord_id("new_channel_category_id")
if new_channel_category_id == None:
category_check = "❌"
else:
category_check = "✅"
return( \
f"{booster_check} Setze die Booster Rolle mit `/setze_booster_rolle`\n" \
f"{distributor_check} Setze den Verteiler Channel mit `/setze_verteiler_channel`\n" \
f"{category_check} Setze die Kategorie, in der, die Clubs erstellt werden sollen mit `/setze_club_kategorie`" \
)
async def add_booster_role(guild_id: int, booster_role_id: int)-> str:
db = database.Database(f"{guild_id}.db")
response = await db.add_id("booster_role_id", booster_role_id)
if response == "Error":
return(response)
else:
return("✅ Booster Rolle registriert")
async def add_distributor_channel(guild_id: int, distributor_channel_id: int)-> str:
db = database.Database(f"{guild_id}.db")
response = await db.add_id("distributor_channel_id", distributor_channel_id)
if response == "Error":
return(response)
else:
return("✅ Verteiler Channel registriert")
async def add_club_category(guild_id: int, category_id: int)-> str:
db = database.Database(f"{guild_id}.db")
response = await db.add_id("new_channel_category_id", category_id)
if response == "Error":
return(response)
else:
return("✅ Club Kategorie registriert")
# ========================== ADD CLUB ======================== #
async def add_club(guild_id: int, channel_name_without_emoji: str, emoji: str, role_name: str, color: str, owner_id: int, cycle: int):
# ------------------------- check if club creatable ------------------------ #
db = database.Database(f"{guild_id}.db")
match cycle:
case 1: # check if booster
return(await db.get_booster_role_id())
case 2: # check for ability to create given club
existing_club_of_owner = await db.select_club_by_owner(owner_id)
if existing_club_of_owner != None:
return("❌ Error! Du hast bereits einen Club")
# ---------------------- emoji checks ------------------------- #
if len(emoji) != 1:
return("❌ Error! Das Emoji-Feld darf nicht länger oder kürzer als 1 sein")
if emojis.is_emoji(emoji) != True:
return(" Error! Das Emoji-Feld muss mit einem Emoji gefüllt werden")
# ---------------------- channel name checks ------------------------- #
if emojis.emoji_count(channel_name_without_emoji) > 0:
return("❌ Error! Der Kanalname darf keine Emojis enthalten")
combined_channel_name = f"「{emoji}」{channel_name_without_emoji}"
existing_club = await db.select_club_by_channel_name(combined_channel_name)
if existing_club != None:
return("❌ Error! Es gibt bereits einen Club mit diesem Kanalnamen")
existing_club_role = await db.select_club_by_role_name(role_name)
if existing_club_role != None:
return("❌ Error! Es existiert bereits ein Club mit diesem Rollennamen")
if color[0] == '#':
color = color[1:]
try:
color = int("0x"+color, 16)+0x200
except:
return("❌ Error! Farbformat falsch angegeben")
return(role_name, color)
case 3:
error = await db.create_club(f"「{emoji}」{channel_name_without_emoji}", owner_id, int(color), role_name)
if error != None:
return(error)
else:
return(f"✅ Club `「{emoji}」{channel_name_without_emoji}` erstellt!")
# ==================================== EDIT CLUB ============================= #
async def club_change_channel_name(guild_id: int, owner_id: int, new_channel_name: str):
db = database.Database(f"{guild_id}.db")
response = await db.select_club_by_owner(owner_id)
if response[:8] == "❌ Error!":
return(response)
else:
old_channel_name = response[1]
error = await db.club_edit(owner_id, "channel_name", new_channel_name)
if error != None:
return(error)
else:
return(f"✅ Club Name von `{old_channel_name}` auf `{new_channel_name}` geändert")
|