mirror of
https://github.com/house-of-vanity/conf_bot.git
synced 2025-08-21 16:27:14 +00:00
Add sql query feature.
This commit is contained in:
@@ -3,6 +3,7 @@ import datetime as dt
|
|||||||
class DataBase:
|
class DataBase:
|
||||||
def __init__(self, basefile, scheme):
|
def __init__(self, basefile, scheme):
|
||||||
import sqlite3
|
import sqlite3
|
||||||
|
self.scheme = ''
|
||||||
try:
|
try:
|
||||||
self.conn = sqlite3.connect(basefile, check_same_thread=False)
|
self.conn = sqlite3.connect(basefile, check_same_thread=False)
|
||||||
except:
|
except:
|
||||||
@@ -10,6 +11,7 @@ class DataBase:
|
|||||||
return None
|
return None
|
||||||
with open(scheme, 'r') as scheme_sql:
|
with open(scheme, 'r') as scheme_sql:
|
||||||
sql = scheme_sql.read()
|
sql = scheme_sql.read()
|
||||||
|
self.scheme = sql
|
||||||
if self.conn is not None:
|
if self.conn is not None:
|
||||||
try:
|
try:
|
||||||
cursor = self.conn.cursor()
|
cursor = self.conn.cursor()
|
||||||
@@ -129,6 +131,7 @@ class DataBase:
|
|||||||
if 'DELETE' in sql.upper() \
|
if 'DELETE' in sql.upper() \
|
||||||
or 'INSERT' in sql.upper() \
|
or 'INSERT' in sql.upper() \
|
||||||
or 'UPDATE' in sql.upper() \
|
or 'UPDATE' in sql.upper() \
|
||||||
|
or 'DROP' in sql.upper() \
|
||||||
or 'CREATE' in sql.upper() \
|
or 'CREATE' in sql.upper() \
|
||||||
or 'ALTER' in sql.upper():
|
or 'ALTER' in sql.upper():
|
||||||
return('gtfo')
|
return('gtfo')
|
||||||
|
12
worker.py
12
worker.py
@@ -17,6 +17,14 @@ class MessageWorker:
|
|||||||
|
|
||||||
def handleUpdate(self, msg):
|
def handleUpdate(self, msg):
|
||||||
try:
|
try:
|
||||||
|
if msg['message']['text'] == '/scheme':
|
||||||
|
conf_id = msg['message']['chat']['id']
|
||||||
|
user_id = msg['message']['from']['id']
|
||||||
|
chat_title = msg['message']['chat']['title']
|
||||||
|
self.db.add_conf(conf_id, chat_title)
|
||||||
|
self.send(id=conf_id, msg='```\n' + self.db.scheme + '\n```')
|
||||||
|
return True
|
||||||
|
|
||||||
if msg['message']['text'] == '/stat':
|
if msg['message']['text'] == '/stat':
|
||||||
conf_id = msg['message']['chat']['id']
|
conf_id = msg['message']['chat']['id']
|
||||||
user_id = msg['message']['from']['id']
|
user_id = msg['message']['from']['id']
|
||||||
@@ -53,6 +61,10 @@ class MessageWorker:
|
|||||||
sql = msg['message']['text'][5:]
|
sql = msg['message']['text'][5:]
|
||||||
|
|
||||||
res = self.db.command(sql)
|
res = self.db.command(sql)
|
||||||
|
if 'syntax' in str(res) \
|
||||||
|
or 'ambiguous' in str(res):
|
||||||
|
self.send(id=conf_id, msg=str(res))
|
||||||
|
return False
|
||||||
try:
|
try:
|
||||||
msg = '```\n'
|
msg = '```\n'
|
||||||
for z in res:
|
for z in res:
|
||||||
|
Reference in New Issue
Block a user