mirror of
https://github.com/house-of-vanity/conf_bot.git
synced 2025-08-21 16:27:14 +00:00
Performance improvement. Now bot obtains himself data via getMe api call.
This commit is contained in:
41
worker.py
41
worker.py
@@ -7,17 +7,34 @@ from database import DataBase
|
|||||||
import os
|
import os
|
||||||
import urllib.request
|
import urllib.request
|
||||||
from urllib.parse import urlencode
|
from urllib.parse import urlencode
|
||||||
|
import json
|
||||||
import settings
|
import settings
|
||||||
import re
|
import re
|
||||||
|
|
||||||
class MessageWorker:
|
class MessageWorker:
|
||||||
def __init__(self, db, stop_words = 'assets/stop-word.ru'):
|
def __init__(self, db, stop_words = 'assets/stop-word.ru', settings = settings):
|
||||||
self.stop_words = stop_words
|
self.stop_words = stop_words
|
||||||
self.db = db
|
self.db = db
|
||||||
|
self.telegram_key = settings.parser.get('bot', 'telegram_key')
|
||||||
|
self.telegram_api = settings.parser.get('bot', 'telegram_api')
|
||||||
|
self.me = self.getMe()
|
||||||
|
print("My name is %s" % self.me['result']['username'])
|
||||||
|
|
||||||
|
def getMe(self):
|
||||||
|
url = self.telegram_api + 'bot' + self.telegram_key + '/getMe'
|
||||||
|
print(url)
|
||||||
|
urllib.request.Request(url)
|
||||||
|
request = urllib.request.Request(url)
|
||||||
|
raw = urllib.request.urlopen(request).read().decode()
|
||||||
|
return json.loads(raw)
|
||||||
|
|
||||||
def handleUpdate(self, msg):
|
def handleUpdate(self, msg):
|
||||||
try:
|
try:
|
||||||
if msg['message']['text'] == '/scheme':
|
try:
|
||||||
|
input_message = msg['message']['text'].replace('@' + self.me['result']['username'], '')
|
||||||
|
except:
|
||||||
|
input_message = msg['message']['text']
|
||||||
|
if input_message == '/scheme':
|
||||||
conf_id = msg['message']['chat']['id']
|
conf_id = msg['message']['chat']['id']
|
||||||
user_id = msg['message']['from']['id']
|
user_id = msg['message']['from']['id']
|
||||||
chat_title = msg['message']['chat']['title']
|
chat_title = msg['message']['chat']['title']
|
||||||
@@ -25,7 +42,7 @@ class MessageWorker:
|
|||||||
self.send(id=conf_id, msg='```\n' + self.db.scheme + '\n```')
|
self.send(id=conf_id, msg='```\n' + self.db.scheme + '\n```')
|
||||||
return True
|
return True
|
||||||
|
|
||||||
if msg['message']['text'] == '/stat':
|
if input_message == '/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']
|
||||||
chat_title = msg['message']['chat']['title']
|
chat_title = msg['message']['chat']['title']
|
||||||
@@ -41,7 +58,7 @@ class MessageWorker:
|
|||||||
self.send(id=conf_id, msg=message)
|
self.send(id=conf_id, msg=message)
|
||||||
return True
|
return True
|
||||||
|
|
||||||
if msg['message']['text'] == '/reset':
|
if input_message == '/reset':
|
||||||
conf_id = msg['message']['chat']['id']
|
conf_id = msg['message']['chat']['id']
|
||||||
user_id = msg['message']['from']['id']
|
user_id = msg['message']['from']['id']
|
||||||
chat_title = msg['message']['chat']['title']
|
chat_title = msg['message']['chat']['title']
|
||||||
@@ -53,7 +70,7 @@ class MessageWorker:
|
|||||||
user_id=user_id)
|
user_id=user_id)
|
||||||
return True
|
return True
|
||||||
|
|
||||||
if msg['message']['text'][:4] == '/sql':
|
if input_message[:4] == '/sql':
|
||||||
conf_id = msg['message']['chat']['id']
|
conf_id = msg['message']['chat']['id']
|
||||||
user_id = msg['message']['from']['id']
|
user_id = msg['message']['from']['id']
|
||||||
chat_title = msg['message']['chat']['title']
|
chat_title = msg['message']['chat']['title']
|
||||||
@@ -76,20 +93,22 @@ class MessageWorker:
|
|||||||
self.send(id=conf_id, msg=msg + ' ```')
|
self.send(id=conf_id, msg=msg + ' ```')
|
||||||
return True
|
return True
|
||||||
|
|
||||||
if msg['message']['text'][:5] == '@here' or \
|
if '@here' in input_message:
|
||||||
msg['message']['text'][5:] == '@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']
|
||||||
chat_title = msg['message']['chat']['title']
|
chat_title = msg['message']['chat']['title']
|
||||||
self.db.add_conf(conf_id, chat_title)
|
self.db.add_conf(conf_id, chat_title)
|
||||||
|
if msg['message']['text'] != '@here':
|
||||||
|
message = msg['message']['text'].replace('@here', '\n')
|
||||||
|
else:
|
||||||
|
message = """I summon you!\n"""
|
||||||
|
|
||||||
message = """I summon you!\n"""
|
|
||||||
users = self.db.here(
|
users = self.db.here(
|
||||||
user_id=user_id,
|
user_id=user_id,
|
||||||
conf_id=conf_id
|
conf_id=conf_id
|
||||||
)
|
)
|
||||||
for user in users:
|
for user in users:
|
||||||
message += '@%s ' % (user[0])
|
message += ' @%s ' % (user[0])
|
||||||
self.send(id=conf_id, msg=message)
|
self.send(id=conf_id, msg=message)
|
||||||
return True
|
return True
|
||||||
except:
|
except:
|
||||||
@@ -156,9 +175,7 @@ class MessageWorker:
|
|||||||
|
|
||||||
def send(self, id, msg):
|
def send(self, id, msg):
|
||||||
print(msg)
|
print(msg)
|
||||||
url = settings.parser.get('bot', 'telegram_api') + \
|
url = self.telegram_api + 'bot' + self.telegram_key + '/sendMessage'
|
||||||
'bot'+ settings.parser.get('bot', 'telegram_key') \
|
|
||||||
+ '/sendMessage'
|
|
||||||
post_fields = {
|
post_fields = {
|
||||||
'text': msg,
|
'text': msg,
|
||||||
'chat_id': id,
|
'chat_id': id,
|
||||||
|
Reference in New Issue
Block a user