txlyre 1 năm trước cách đây
mục cha
commit
c90d6ea7c1
2 tập tin đã thay đổi với 31 bổ sung1 xóa
  1. 24 1
      commands.py
  2. 7 0
      utils.py

+ 24 - 1
commands.py

@@ -39,7 +39,8 @@ from utils import (
   parse_kind,
   get_user_name,
   calculate_age,
-  unparse
+  unparse,
+  remove_ansi_escapes
 )
 
 class Handler:
@@ -406,6 +407,27 @@ async def vpn_handler(bot, event, command):
 
   await event.reply('Готово!!~~ Файл конфигурации WireGuard отправлен в Ваши личные сообщения!')
 
+async def run_handler(bot, event, command):
+  if command.argc < 2:
+    await event.reply('Пожалуйста, не оставляйте ввод пустым!')
+
+    return
+
+  async with ClientSession() as session:
+    try:
+      async with session.post(
+        f'https://farlands.txlyre.website/run/{command.args[0]}',
+        data=command.args_string[command.args_string.find(' ')+1:]
+      ) as resp:
+        text = await resp.read()
+        text = text.decode('UTF-8')
+    except:
+      await event.reply('Произошла ошибка при попытке обращения к API… :(')
+
+      return
+
+  await event.reply(f'```\n{text}```')
+
 async def sylvy_handler(bot, event, command):
   if command.argc < 1:
     await event.reply('Пожалуйста, не оставляйте ввод пустым!')
@@ -492,4 +514,5 @@ COMMANDS = {
   'vpn':       Handler(vpn_handler),
 
   'sylvy':     Handler(sylvy_handler),
+  'run':       Handler(run_handler),
 }

+ 7 - 0
utils.py

@@ -1,3 +1,5 @@
+import re
+
 from uuid import uuid4
 from enum import IntEnum
 from datetime import datetime
@@ -31,6 +33,8 @@ Age = namedtuple(
   'days_until age age_now date_string'
 )
 
+ANSI_ESCAPE_RE = re.compile(r'\x1B(?:[@-Z\\-_]|\[[0-?]*[ -/]*[@-~])')
+
 class Kind(IntEnum):
   CANNOT_APPLY_TO_SELF = 0
   CAN_APPLY_TO_SELF    = 1
@@ -195,3 +199,6 @@ def is_valid_ip(ip):
     return False
 
   return True
+
+def remove_ansi_escapes(text):
+  return ANSI_ESCAPE_RE.sub('', text)