understanding commited on
Commit
10051fb
·
verified ·
1 Parent(s): d722054

Create db_utils.py

Browse files
Files changed (1) hide show
  1. db_utils.py +52 -0
db_utils.py ADDED
@@ -0,0 +1,52 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # db_utils.py
2
+ import aiosqlite
3
+ import config
4
+
5
+ async def initialize_database():
6
+ async with aiosqlite.connect(config.DATABASE_NAME) as db:
7
+ await db.execute('''
8
+ CREATE TABLE IF NOT EXISTS file_cache (
9
+ short_id TEXT PRIMARY KEY,
10
+ file_id TEXT,
11
+ filename TEXT,
12
+ type TEXT,
13
+ size INTEGER
14
+ )
15
+ ''')
16
+ await db.execute('''
17
+ CREATE TABLE IF NOT EXISTS users (
18
+ user_id INTEGER PRIMARY KEY,
19
+ username TEXT,
20
+ first_name TEXT
21
+ )
22
+ ''')
23
+ await db.commit()
24
+
25
+ async def add_to_cache(short_id, file_id, filename, media_type, size):
26
+ async with aiosqlite.connect(config.DATABASE_NAME) as db:
27
+ await db.execute('''
28
+ INSERT OR REPLACE INTO file_cache (short_id, file_id, filename, type, size)
29
+ VALUES (?, ?, ?, ?, ?)
30
+ ''', (short_id, file_id, filename, media_type, size))
31
+ await db.commit()
32
+
33
+ async def get_cached_file(short_id):
34
+ async with aiosqlite.connect(config.DATABASE_NAME) as db:
35
+ async with db.execute('SELECT file_id, filename, type, size FROM file_cache WHERE short_id = ?', (short_id,)) as cursor:
36
+ row = await cursor.fetchone()
37
+ if row:
38
+ return {
39
+ "file_id": row[0],
40
+ "name": row[1],
41
+ "type": row[2],
42
+ "size": row[3]
43
+ }
44
+ return None
45
+
46
+ async def add_or_update_user_db(user_id, username, first_name):
47
+ async with aiosqlite.connect(config.DATABASE_NAME) as db:
48
+ await db.execute('''
49
+ INSERT OR REPLACE INTO users (user_id, username, first_name)
50
+ VALUES (?, ?, ?)
51
+ ''', (user_id, username, first_name))
52
+ await db.commit()