Add sql query support

This commit is contained in:
root
2018-02-26 15:50:32 +01:00
parent 0135fb7320
commit 9e69de3db1
2 changed files with 35 additions and 0 deletions

View File

@ -125,6 +125,21 @@ class DataBase:
result = self.execute(sql) result = self.execute(sql)
return(result) return(result)
def command(self, sql):
if 'DELETE' in sql.upper() \
or 'INSERT' in sql.upper() \
or 'UPDATE' in sql.upper() \
or 'CREATE' in sql.upper() \
or 'ALTER' in sql.upper():
return('gtfo')
try:
if 'LIMIT' in sql.upper()[-9:]:
result = self.execute(sql)
else:
result = self.execute(sql + ' limit 20')
except Exception as err:
result = err
return(result)
def close(self): def close(self):
self.conn.close() self.conn.close()

View File

@ -45,6 +45,25 @@ class MessageWorker:
user_id=user_id) user_id=user_id)
return True return True
if msg['message']['text'][:4] == '/sql':
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)
sql = msg['message']['text'][5:]
res = self.db.command(sql)
try:
msg = '```\n'
for z in res:
for i in z:
msg = msg + str(i) + '\t'
msg = msg + '\n'
except:
msg = res
self.send(id=conf_id, msg=msg + ' ```')
return True
if msg['message']['text'] == '@here': if msg['message']['text'] == '@here':
conf_id = msg['message']['chat']['id'] conf_id = msg['message']['chat']['id']
user_id = msg['message']['from']['id'] user_id = msg['message']['from']['id']
@ -123,6 +142,7 @@ class MessageWorker:
return collection return collection
def send(self, id, msg): def send(self, id, msg):
print(msg)
url = settings.parser.get('bot', 'telegram_api') + \ url = settings.parser.get('bot', 'telegram_api') + \
'bot'+ settings.parser.get('bot', 'telegram_key') \ 'bot'+ settings.parser.get('bot', 'telegram_key') \
+ '/sendMessage' + '/sendMessage'