forked from kurtymckurt/UserValidationDiscordBot
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathGlobalBotConfig.py
More file actions
91 lines (71 loc) · 3.69 KB
/
GlobalBotConfig.py
File metadata and controls
91 lines (71 loc) · 3.69 KB
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
from tinydb import TinyDB, Query
from datetime import datetime
def is_user_old(created_at):
dt_obj = datetime.strptime('20.12.2016 09:38:42,76', '%d.%m.%Y %H:%M:%S,%f')
now = int(dt_obj.timestamp())
return now - created_at > 86400
class GlobalBotConfig:
__instance = None
@classmethod
def get_instance(cls, filename):
if cls.__instance is None:
cls.__instance = GlobalBotConfig(filename)
return cls.__instance
def __init__(self, filename):
self.db = TinyDB(filename)
self.config_table = self.db.table("config")
self.user_table = self.db.table("user")
def delete_guild(self, guild_id):
server_config = Query()
self.config_table.remove(server_config.guild_id == guild_id)
def delete_expired_users(self):
user = Query()
users = self.user_table.all()
for u in users:
if is_user_old(u['created_at']):
self.user_table.remove((user.guild_id == u['guild_id']) & (user.user_id == u['user_id']))
def exists_guild_config(self, guild_id):
server_config = Query()
return len(self.config_table.search(server_config.guild_id == guild_id)) > 0
def create_guild_config(self, guild_id):
if not self.exists_guild_config(guild_id):
self.config_table.insert({'server_name': 'My Discord', 'guild_id': guild_id,
'role': 'new_user', 'channel': 'guest', 'server_rules': 'No Rules have been set'})
def add_server_name(self, guild_id, name):
server_config = Query()
self.config_table.update({'server_name': name}, server_config.guild_id == guild_id)
def add_role(self, guild_id, role):
server_config = Query()
self.config_table.update({'role': role}, server_config.guild_id == guild_id)
def add_channel(self, guild_id, channel):
server_config = Query()
self.config_table.update({'channel': channel}, server_config.guild_id == guild_id)
def add_rules(self, guild_id, rules):
server_config = Query()
self.config_table.update({'server_rules': rules}, server_config.guild_id == guild_id)
def get_server_name(self, guild_id):
server_config = Query()
return self.config_table.search(server_config.guild_id == guild_id)[0]['server_name']
def get_guild_config(self, guild_id):
server_config = Query()
return self.config_table.search(server_config.guild_id == guild_id)[0]
def add_user_code(self, guild_id, user_id, code):
user = Query()
dt_obj = datetime.strptime('20.12.2016 09:38:42,76', '%d.%m.%Y %H:%M:%S,%f')
created_at = int(dt_obj.timestamp())
if len(self.user_table.search((user.guild_id == guild_id) & (user.user_id == user_id))) == 0:
self.user_table.insert({'guild_id': guild_id, 'user_id': user_id, 'code': code, 'created_at': created_at})
else:
self.user_table.update({'code': code, 'created_at': created_at},(user.guild_id == guild_id) & (user.user_id == user_id))
def get_user_code(self, guild_id, user_id):
user = Query()
code_record = self.user_table.search((user.guild_id == guild_id) & (user.user_id == user_id))
if len(code_record) == 0:
return None
return self.user_table.search((user.guild_id == guild_id) & (user.user_id == user_id))[0]['code']
def exists_user_code(self, guild_id, user_id):
user = Query()
return len(self.user_table.search((user.guild_id == guild_id) & (user.user_id == user_id))) > 0
def delete_user_code(self, guild_id, user_id):
user = Query()
return self.user_table.remove((user.guild_id == guild_id) & (user.user_id == user_id))