add .token command
This commit is contained in:
parent
29d8ff41c5
commit
75c8727097
1 changed files with 17 additions and 4 deletions
|
@ -18,6 +18,8 @@ class Commander:
|
|||
T_START_E = frozenset(['cmd_start_enabled'])
|
||||
T_STOP = frozenset(['cmd_stop'])
|
||||
T_STOP_D = frozenset(['cmd_stop_disabled'])
|
||||
NOPE = "а ты что ещё за хуй с горы?"
|
||||
YEP = "да, господин!"
|
||||
DOC = """
|
||||
Команды:
|
||||
__.start__
|
||||
|
@ -26,6 +28,8 @@ class Commander:
|
|||
остановить бота
|
||||
__.list__
|
||||
перечислить доступные токены
|
||||
__.regex token__
|
||||
перечислить регулярные выражения, относящиеся к токену
|
||||
__.chat__
|
||||
получить id текущего чата
|
||||
__.users__
|
||||
|
@ -55,7 +59,7 @@ class Commander:
|
|||
|
||||
def __add_response(self, caller: int, command: str) -> bool:
|
||||
if caller not in self.admins:
|
||||
return 'а ты что ещё за хуй с горы?'
|
||||
return self.NOPE
|
||||
input_tokens, phrase = command.strip().split(' ', 1)
|
||||
input_tokenset = frozenset(input_tokens.split(','))
|
||||
for token in input_tokenset:
|
||||
|
@ -64,17 +68,17 @@ class Commander:
|
|||
query = 'INSERT INTO responses (tokens, response) values (%s,%s)'
|
||||
values = (','.join(sorted(input_tokenset)), phrase.strip())
|
||||
self.db_conn.update(query, values)
|
||||
return 'да, господин!'
|
||||
return self.YEP
|
||||
|
||||
def __add_user(self, caller: int, userspec: str) -> bool:
|
||||
if caller not in self.admins:
|
||||
return 'а ты что ещё за хуй с горы?'
|
||||
return self.NOPE
|
||||
user_id, names = userspec.strip().split(' ', 1)
|
||||
for name in names.strip().split(','):
|
||||
query = 'INSERT INTO names (tg_id, name) values(%s,%s)'
|
||||
values = (user_id, name)
|
||||
self.db_conn.update(query, values)
|
||||
return 'да, господин!'
|
||||
return self.YEP
|
||||
|
||||
|
||||
def __start_response(self) -> str:
|
||||
|
@ -92,6 +96,13 @@ class Commander:
|
|||
for user in users]
|
||||
return '\n'.join(userlist)
|
||||
|
||||
def __list_regex(self, token: str) -> str:
|
||||
for t, r in self.responder.tokens:
|
||||
if token == t:
|
||||
regexlist = [i.pattern for i in r]
|
||||
return '\n'.join(regexlist)
|
||||
return 'not found!'
|
||||
|
||||
async def action(self,
|
||||
event: telethon.events.common.EventBuilder) -> None:
|
||||
chat_id = telethon.utils.get_peer_id(event.message.peer_id)
|
||||
|
@ -114,6 +125,8 @@ class Commander:
|
|||
response = str(chat_id)
|
||||
elif command == '.list':
|
||||
response = ', '.join(self.available_tokens)
|
||||
elif command.startswith('.regex '):
|
||||
response = self.__list_regex(command[7:].strip())
|
||||
elif command == '.users':
|
||||
users = await self.client.get_participants(
|
||||
entity=event.message.peer_id)
|
||||
|
|
Loading…
Reference in a new issue