-
Notifications
You must be signed in to change notification settings - Fork 1
/
database.cpp
147 lines (111 loc) · 4.92 KB
/
database.cpp
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
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
#include "database.h"
#include <QtCore>
#include <QtSql>
Database::Database(QObject *parent) :
QObject(parent)
{
database = QSqlDatabase::addDatabase("QSQLITE");
database.setDatabaseName("tf.db");
if (!database.open())
qFatal("Could not open the database!");
prepareDatabase();
}
void Database::executeQuery(QSqlQuery &query)
{
if (!query.exec())
qDebug() << "Sql Error: " << query.executedQuery() << endl
<< query.lastError().text() << endl << flush;
}
void Database::prepareDatabase()
{
QSqlQuery query;
query.prepare("CREATE TABLE IF NOT EXISTS tf_userstat (gid INTEGER, uid INTEGER, date INTEGER, "
"count INTEGER, length INTEGER, online INTEGER, PRIMARY KEY (gid, uid, date))");
executeQuery(query);
query.prepare("CREATE TABLE IF NOT EXISTS tf_groups (gid INTEGER PRIMARY KEY, admin_id INTEGER, name TEXT)");
executeQuery(query);
query.prepare("CREATE TABLE IF NOT EXISTS tf_banned (gid INTEGER, uid INTEGER, PRIMARY KEY (gid, uid))");
executeQuery(query);
query.prepare("CREATE TABLE IF NOT EXISTS tf_subscribe (gid INTEGER, uid INTEGER, PRIMARY KEY (gid, uid))");
executeQuery(query);
query.prepare("CREATE TABLE IF NOT EXISTS tf_usergroups (uid INTEGER PRIMARY KEY, gid INTEGER)");
executeQuery(query);
query.prepare("CREATE TABLE IF NOT EXISTS tf_sup (id INTEGER PRIMARY KEY AUTOINCREMENT, "
"gid INTEGER, text TEXT)");
executeQuery(query);
query.prepare("CREATE TABLE IF NOT EXISTS tf_polls (id INTEGER PRIMARY KEY AUTOINCREMENT, "
"gid INTEGER, title TEXT, multi_choice BOOLEAN, options TEXT)");
executeQuery(query);
query.prepare("CREATE TABLE IF NOT EXISTS tf_protect (gid INTEGER, "
"type INTEGER, value TEXT, PRIMARY KEY (gid, type))");
executeQuery(query);
query.prepare("CREATE TABLE IF NOT EXISTS tf_config (headadmin_id INTEGER, bot_id INTEGER)");
executeQuery(query);
query.prepare("CREATE TABLE IF NOT EXISTS tf_permissions (gid INTEGER, module TEXT, operation TEXT, "
"access INTEGER, pm_access INTEGER, PRIMARY KEY (gid, module, operation))");
executeQuery(query);
query.prepare("CREATE TABLE IF NOT EXISTS tf_requests (id INTEGER PRIMARY KEY AUTOINCREMENT, "
"gid INTEGER, uid INTEGER, inpm BOOLEAN, command TEXT)");
executeQuery(query);
query.prepare("CREATE TABLE IF NOT EXISTS tf_leave_protect (gid INTEGER, uid INTEGER, "
"PRIMARY KEY (gid, uid))");
executeQuery(query);
query.prepare("CREATE TABLE IF NOT EXISTS tf_scores (gid INTEGER, uid INTEGER, score INTEGER, "
"PRIMARY KEY (gid, uid))");
executeQuery(query);
query.prepare("CREATE TABLE IF NOT EXISTS tf_nicks (gid INTEGER, uid INTEGER, nick TEXT, "
"PRIMARY KEY (gid, uid))");
executeQuery(query);
query.prepare("CREATE TABLE IF NOT EXISTS tf_talk (id INTEGER PRIMARY KEY AUTOINCREMENT, "
"gid INTEGER, text TEXT, react TEXT)");
executeQuery(query);
query.prepare("CREATE TABLE IF NOT EXISTS tf_bff (gid INTEGER, name TEXT, value INTEGER, "
"PRIMARY KEY (gid, name))");
executeQuery(query);
}
void Database::deleteGroup(qint64 gid)
{
QSqlQuery query;
query.prepare("DELETE FROM tf_banned WHERE gid=:gid");
query.bindValue(":gid", gid);
executeQuery(query);
query.prepare("DELETE FROM tf_userstat WHERE gid=:gid");
query.bindValue(":gid", gid);
executeQuery(query);
query.prepare("DELETE FROM tf_subscribe WHERE gid=:gid");
query.bindValue(":gid", gid);
executeQuery(query);
query.prepare("DELETE FROM tf_usergroups WHERE gid=:gid");
query.bindValue(":gid", gid);
executeQuery(query);
query.prepare("DELETE FROM tf_sup WHERE gid=:gid");
query.bindValue(":gid", gid);
executeQuery(query);
query.prepare("DELETE FROM tf_polls WHERE gid=:gid");
query.bindValue(":gid", gid);
executeQuery(query);
query.prepare("DELETE FROM tf_protect WHERE gid=:gid");
query.bindValue(":gid", gid);
executeQuery(query);
query.prepare("DELETE FROM tf_permissions WHERE gid=:gid");
query.bindValue(":gid", gid);
executeQuery(query);
query.prepare("DELETE FROM tf_requests WHERE gid=:gid");
query.bindValue(":gid", gid);
executeQuery(query);
query.prepare("DELETE FROM tf_leave_protect WHERE gid=:gid");
query.bindValue(":gid", gid);
executeQuery(query);
query.prepare("DELETE FROM tf_scores WHERE gid=:gid");
query.bindValue(":gid", gid);
executeQuery(query);
query.prepare("DELETE FROM tf_nicks WHERE gid=:gid");
query.bindValue(":gid", gid);
executeQuery(query);
query.prepare("DELETE FROM tf_talk WHERE gid=:gid");
query.bindValue(":gid", gid);
executeQuery(query);
query.prepare("DELETE FROM tf_bff WHERE gid=:gid");
query.bindValue(":gid", gid);
executeQuery(query);
}