ability to create and edit templates
directly in telegram
This commit is contained in:
+64
-4
@@ -47,8 +47,63 @@ if ($hash == substr(md5($c['key']), 0, 8)) {
|
||||
$t = json_decode(file_get_contents("/config/{$_GET['ty']}.json"), true);
|
||||
}
|
||||
if ($t) {
|
||||
header('Content-Type: application/json');
|
||||
echo json_encode($t, JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES);
|
||||
header('Content-Type: text/html');
|
||||
$t = json_encode($t, JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES);
|
||||
$name = $_GET['te'] ?: 'origin';
|
||||
$type = $_GET['ty'];
|
||||
echo <<<HTML
|
||||
<!DOCTYPE HTML>
|
||||
<html lang="en" style="height:100%">
|
||||
<head>
|
||||
<!-- when using the mode "code", it's important to specify charset utf-8 -->
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
|
||||
<link href="jsoneditor.min.css" rel="stylesheet" type="text/css">
|
||||
<script src="jsoneditor.min.js"></script>
|
||||
<script src="jquery-3.7.1.min.js"></script>
|
||||
<script src="https://telegram.org/js/telegram-web-app.js"></script>
|
||||
</head>
|
||||
<body style="height:100%">
|
||||
<div id="jsoneditor" style="height:100%"></div>
|
||||
|
||||
<script>
|
||||
jQuery(function($) {
|
||||
var tg = window.Telegram.WebApp;
|
||||
// create the editor
|
||||
const container = document.getElementById("jsoneditor")
|
||||
const options = {}
|
||||
const editor = new JSONEditor(container, options)
|
||||
editor.set({$t})
|
||||
tg.MainButton.show().setText('{$bot->i18n('save')}').onClick(function (e) {
|
||||
var self = this;
|
||||
$.ajax({
|
||||
url: '/webapp/save?' + tg.initData,
|
||||
method: 'POST',
|
||||
data: {
|
||||
name: '$name',
|
||||
type: '$type',
|
||||
json: editor.getText()
|
||||
},
|
||||
dataType: 'json'
|
||||
}).done(function (r) {
|
||||
if (r.status == true) {
|
||||
tg.MainButton.setText('{$bot->i18n('success')}')
|
||||
setTimeout(() => {
|
||||
tg.close();
|
||||
}, 500);
|
||||
} else {
|
||||
tg.MainButton.setText(r.message);
|
||||
}
|
||||
}).fail(function (r) {
|
||||
tg.MainButton.setText('{$bot->i18n('error')}')
|
||||
});
|
||||
});
|
||||
});
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
HTML;
|
||||
exit;
|
||||
}
|
||||
|
||||
@@ -81,8 +136,13 @@ if (!empty($_GET['hash'])) {
|
||||
require __DIR__ . '/bot.php';
|
||||
require __DIR__ . '/i18n.php';
|
||||
$bot = new Bot($c['key'], $i);
|
||||
setcookie('c', substr(hash('sha256', $c['key']), 0, 8), 0, '/');
|
||||
setcookie('a', $bot->adguardBasicAuth(), 0, '/');
|
||||
if (!empty($_POST['json'])) {
|
||||
echo json_encode($bot->saveTemplate($_POST['name'], $_POST['type'], $_POST['json']));
|
||||
die();
|
||||
} else {
|
||||
setcookie('c', substr(hash('sha256', $c['key']), 0, 8), 0, '/');
|
||||
setcookie('a', $bot->adguardBasicAuth(), 0, '/');
|
||||
}
|
||||
die('ok');
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user