-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathpin_db.py
79 lines (75 loc) · 2.51 KB
/
pin_db.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
import sqlite3
import settings
import lightbulb
import hikari
from datetime import datetime
import utils
import json
import time
def create_database(bot: lightbulb.BotApp):
database = sqlite3.connect(bot.d.settings.get_save_database_file())
curser = database.cursor()
curser.execute(
'''CREATE TABLE pins(
message_id INTEGER PRIMARY KEY,
message_content TEXT,
author_id INTEGER,
author TEXT,
avatar_hash TEXT,
avatar_url TEXT,
avatar_file TEXT,
date_posted INTEGER,
date_saved INTEGER,
attached_files TEXT,
attachment_urls TEXT)'''
)
database.commit()
database.close()
def save_to_database(
bot: lightbulb.BotApp,
message: hikari.messages.Message):
database = sqlite3.connect(bot.d.settings.get_save_database_file())
curser = database.cursor()
attachments = []
curser.execute(
'''INSERT OR IGNORE INTO pins(
message_id,
message_content,
author_id,
author,
avatar_hash,
avatar_url,
avatar_file,
date_posted,
date_saved,
attached_files,
attachment_urls)
VALUES(?,?,?,?,?,?,?,?,?,?,?)''',
(
message.id,
message.content,
message.author.id,
message.author.username,
message.author.avatar_hash,
message.author.avatar_url.url,
utils.save_file('./avatars/', ''.join([str(message.author.id), '_', message.author.avatar_hash, '.', message.author.avatar_url.extension]), message.author.avatar_url),
time.mktime(message.timestamp.timetuple()),
time.mktime(datetime.now().timetuple()),
get_attachments(message.attachments),
get_attachment_urls(message.attachments)
)
)
database.commit()
database.close()
def get_attachments(attachments: []) -> str:
if len(attachments) > 0:
path_list = []
for attachment in attachments:
path_list.append(utils.save_file('./attachments/', ''.join([str(attachment.id), '_', attachment.filename]), attachment.url))
return json.dumps(path_list)
def get_attachment_urls(attachments: []) -> str:
if len(attachments) > 0:
urls = []
for attachment in attachments:
urls.append(attachment.url)
return json.dumps(urls)