| | <!DOCTYPE html> |
| | <html lang="en"> |
| | <head> |
| | <meta charset="UTF-8"> |
| | <title>Telegram Bot Visual Editor</title> |
| | <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/drawflow/dist/drawflow.min.css"> |
| | <script src="https://cdn.jsdelivr.net/npm/drawflow/dist/drawflow.min.js"></script> |
| | <script src="https://cdn.jsdelivr.net/npm/axios/dist/axios.min.js"></script> |
| | </head> |
| | <body> |
| | <div id="drawflow" style="width: 800px; height: 600px; border: 1px solid black;"></div> |
| |
|
| | <script> |
| | const id = document.getElementById("drawflow"); |
| | const editor = new Drawflow(id); |
| | editor.start(); |
| | |
| | |
| | editor.addNode('StartCommand', 0, 1, 150, 300, 'telegram', { command: '/start', response: 'Привет! Я ваш бот.' }); |
| | editor.addNode('EchoCommand', 0, 1, 400, 300, 'telegram', { response: '{{message}}' }); |
| | |
| | |
| | function generateAndSendPythonCode() { |
| | const nodes = editor.getNodes(); |
| | let code = ''; |
| | |
| | nodes.forEach(node => { |
| | if (node.data.command) { |
| | code += `def ${node.data.command.slice(1)}(update: Update, context: CallbackContext) -> None:\n`; |
| | code += ` update.message.reply_text('${node.data.response}')\n`; |
| | code += `\n`; |
| | } else if (node.data.response) { |
| | code += `def echo(update: Update, context: CallbackContext) -> None:\n`; |
| | code += ` update.message.reply_text(update.message.text)\n`; |
| | code += `\n`; |
| | } |
| | }); |
| | |
| | axios.post('/execute', { command: '/start', code: code }) |
| | .then(response => { |
| | console.log(response.data); |
| | }) |
| | .catch(error => { |
| | console.error(error); |
| | }); |
| | } |
| | </script> |
| | </body> |
| | </html> |