· 4 years ago · Jan 11, 2021, 06:26 PM
1import vkquick as vq
2import aiosqlite
3
4
5create_table_sql = '''
6CREATE TABLE IF NOT EXISTS questions
7(
8 id INTEGER PRIMARY KEY AUTOINCREMENT,
9 post_url TEXT NOT NULL,
10 date TEXT NOT NULL,
11 count INTEGER,
12 description TEXT NOT NULL
13)
14'''
15
16delete_sql = '''
17DELETE FROM questions WHERE
18 count=0
19'''
20
21get_data_sql = '''
22SELECT * FROM questions
23'''
24
25@vq.Command(
26 prefixes=["/"],
27 names=["questions"]
28)
29async def questions(ctx: vq.Context):
30 """
31 Дает список заданий.
32 """
33 async with aiosqlite.connect("database.db") as conn:
34
35 # database action's
36 cursor = await conn.cursor()
37
38 # main actions
39 await cursor.execute(create_table_sql)
40 await conn.commit()
41
42 # delete and update DataBase
43 await cursor.execute(delete_sql)
44 await conn.commit()
45
46 # get data in DataBase
47 await cursor.execute(get_data_sql)
48 result = tuple(await cursor.fetchall())
49
50 # if result.length != 0
51 result_text = ''
52
53 if len(result) == 0:
54 result_text = "На данный момент нет заданий."
55 elif len(result) > 10:
56 for i in range(10):
57 result_text += f'[{result[i][0]} - url:{result[i][1]} - date:{result[i][2]} - count:{result[i][3]}\ndescription:{result[i][4]}\n'
58 else:
59 result_text += f'[{result[i][0]} - url:{result[i][1]} - date:{result[i][2]} - count:{result[i][3]}\ndescription:{result[i][4]}\n'
60
61 await ctx.answer(result_text, disable_mentions=True)