forked from vi2k6/Music-Player
-
Notifications
You must be signed in to change notification settings - Fork 1
/
database.py
68 lines (50 loc) · 2.22 KB
/
database.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
import datetime
import motor.motor_asyncio
class Database:
def __init__(self, uri, database_name):
self._client = motor.motor_asyncio.AsyncIOMotorClient(uri)
self.db = self._client[database_name]
self.col = self.db.users
def new_user(self, id):
return dict(
id=id,
join_date=datetime.date.today().isoformat(),
upload_as_doc=False,
thumbnail=None,
generate_ss=False,
generate_sample_video=False
)
async def add_user(self, id):
user = self.new_user(id)
await self.col.insert_one(user)
async def is_user_exist(self, id):
user = await self.col.find_one({'id': int(id)})
return True if user else False
async def total_users_count(self):
count = await self.col.count_documents({})
return count
async def get_all_users(self):
all_users = self.col.find({})
return all_users
async def delete_user(self, user_id):
await self.col.delete_many({'id': int(user_id)})
async def set_upload_as_doc(self, id, upload_as_doc):
await self.col.update_one({'id': id}, {'$set': {'upload_as_doc': upload_as_doc}})
async def get_upload_as_doc(self, id):
user = await self.col.find_one({'id': int(id)})
return user.get('upload_as_doc', False)
async def set_thumbnail(self, id, thumbnail):
await self.col.update_one({'id': id}, {'$set': {'thumbnail': thumbnail}})
async def get_thumbnail(self, id):
user = await self.col.find_one({'id': int(id)})
return user.get('thumbnail', None)
async def set_generate_ss(self, id, generate_ss):
await self.col.update_one({'id': id}, {'$set': {'generate_ss': generate_ss}})
async def get_generate_ss(self, id):
user = await self.col.find_one({'id': int(id)})
return user.get('generate_ss', False)
async def set_generate_sample_video(self, id, generate_sample_video):
await self.col.update_one({'id': id}, {'$set': {'generate_sample_video': generate_sample_video}})
async def get_generate_sample_video(self, id):
user = await self.col.find_one({'id': int(id)})
return user.get('generate_sample_video', False)