This commit is contained in:
nefrace 2022-05-19 15:09:57 +03:00
parent bba190a782
commit 6762ec09bc
4 changed files with 31 additions and 9 deletions

View File

@ -1,5 +1,7 @@
from urllib import response
from aiogram import types, Bot, Dispatcher
from aiogram.utils.text_decorations import markdown_decoration
import requests
from dotenv import load_dotenv
import os
@ -15,24 +17,41 @@ bot: Bot = Bot(TOKEN)
dp: Dispatcher = Dispatcher()
def escape_md(text):
return markdown_decoration.quote(text)
@dp.message(commands=['run'])
async def message_handler(message: types.Message):
if not message.reply_to_message: return
if not message.reply_to_message:
return
msg = message.reply_to_message
if not msg.entities: return
if not msg.entities:
return
print(msg.text)
for entity in msg.entities:
if entity.type != "pre" and entity.type != "code": continue
if entity.type != "pre" and entity.type != "code":
continue
code = entity.extract(msg.text)
resp = requests.post(HOST+"/run", data={'code': code})
json = resp.json()
if resp.status_code != 200:
return await msg.answer("Произошла ошибка:\n" + json["stderr"])
await msg.reply(f"Резульат\n```gd\n{json['result']}\n```", parse_mode="MarkdownV2")
if json['stderr'].strip() == "":
return await msg.reply("Таймаут скрипта")
return await msg.reply("Произошла ошибка:\n" + json["stderr"])
result = json['result'][:4095]
answer = f"{result}"
repr(result)
if result.strip() == "":
answer = "Скрипт выполнен, вывод пуст."
await msg.reply(answer)
def main():
dp.run_polling(bot)
if __name__ == "__main__":
main()

View File

@ -8,4 +8,5 @@ services:
- ./data/logs:/app/logs
bot:
build: ./bot
env_file:
- ./bot/.env

View File

@ -80,7 +80,7 @@ func main() {
err_sep = append(err_sep, "")
}
if ctx.Err() == context.DeadlineExceeded {
c.JSON(http.StatusRequestTimeout, gin.H{"status": "script timeout", "stdout": out_sep[1], "stderr": err_sep[1]})
c.JSON(http.StatusRequestTimeout, gin.H{"status": "timeout", "stdout": out_sep[1], "stderr": err_sep[1]})
return
}
if err != nil {

View File

@ -7,6 +7,8 @@ func _init():
var Directory = null
var ConfigFile = null
var File = null
var HTTPClient = null
var GDScript = null
print("=== {{ .Id }} ===")
printerr("=== {{ .Id }} === ")