-
Notifications
You must be signed in to change notification settings - Fork 1
/
utils.py
118 lines (90 loc) · 3.1 KB
/
utils.py
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
import json
from typing import Dict, Optional
import discord
import db.dbfunc as dbfunc
from vars import url_row
def get_sus_list():
sus_list_str = dbfunc.get_sus_words_str()
json_compatible = sus_list_str.replace("'", '"')
sus_list = json.loads(json_compatible)
return sus_list
def get_sus_list_spanish():
sus_list_str = dbfunc.get_sus_words_spanish()
json_compatible = sus_list_str.replace("'", '"')
sus_list = json.loads(json_compatible)
return sus_list
def get_custom_list(id):
custom_list_str = dbfunc.get_server_custom_list(id)
json_compatible = custom_list_str.replace("'", '"')
custom_list = json.loads(json_compatible)
return custom_list
def get_blacklist():
blacklist_str = dbfunc.get_blacklisted_words_str()
json_compatible = blacklist_str.replace("'", '"')
blacklist = json.loads(json_compatible)
return blacklist
def create_embed(title, description, colour):
embed = discord.Embed(title=title, description=description, colour=colour)
return embed
def translate_list_type(list_type):
if list_type == "Community":
return "Comunidad"
else:
return "Personalizada"
async def need_permissions_embed(interaction: discord.Interaction, language):
title = ""
description = ""
colour = discord.Color.red()
if language == "English":
title = "Error!"
description = "You must have `ADMINISTRATOR` or `MANAGE_GUILD` permissions to run this command."
elif language == "Español":
title = "¡Error!"
description = "Debe tener los permisos `ADMINISTRATOR` o` MANAGE_GUILD` para ejecutar este comando."
await send(
interaction=interaction,
embed=create_embed(title, description, colour),
view=url_row,
)
async def send(
interaction: discord.Interaction,
embed: discord.Embed,
file: Optional[discord.File] = None,
view: Optional[discord.ui.View] = None,
ephemeral: bool = False,
):
kwargs = {}
kwargs["embed"] = embed
kwargs["ephemeral"] = ephemeral
if view:
kwargs["view"] = view
if file:
kwargs["file"] = file
await interaction.response.send_message(**kwargs)
async def followup_send(
interaction: discord.Interaction,
embed: discord.Embed,
file: Optional[discord.File] = None,
view: Optional[discord.ui.View] = None,
ephemeral: bool = False,
):
kwargs = {}
kwargs["embed"] = embed
kwargs["ephemeral"] = ephemeral
if view:
kwargs["view"] = view
if file:
kwargs["file"] = file
await interaction.followup.send(**kwargs)
# Concats two dictionaries together, adding the values of each
def concat_dict(dict1: dict, dict2: dict) -> Dict:
for key, value in dict2.items():
dict1[key] = dict1.get(key, 0) + value
return dict1
# Sorts dictionaries by highest to lowest number in reverse (leaderboard style)
def sort_dict(dict_to_sort: dict) -> Dict:
sorted_list = sorted(dict_to_sort.items(), key=lambda x: x[1], reverse=True)
sorted_dict = {}
for item in sorted_list:
sorted_dict[item[0]] = item[1]
return sorted_dict