TelegramAuth + TelegramAuthBot + WatchTogether; README/AGENT
- mods/TelegramAuth, mods/TelegramAuthBot, mods/WatchTogether: копии из образа с enable: true (правило 1), секции в config/init.conf - TelegramAuth в API-режиме (enable: false -> accsdb/гейт не поднимается), TelegramAuthBot: бот @GatusMonBot, long polling - WatchTogether: customPlugins watchtogether.js, relay /wt/c/ - README: секция про SQLite/volume (первый запуск), таблица модулей, состояние Tg-notify и TelegramAuth, раздел WatchTogether - AGENT: правило 10 дополнено секретами init.conf, §12 переписан, добавлен §13 WatchTogether, список mods/ в §1 - в git bot_token и mutations_api_secret оставлены пустыми (правило 10), реальные значения только в рабочем файле на сервере
This commit is contained in:
@@ -0,0 +1,41 @@
|
||||
namespace TelegramAuthBot.Services
|
||||
{
|
||||
sealed partial class TelegramAuthBotSession
|
||||
{
|
||||
static string TruncateForTelegram(string s, int maxLen)
|
||||
{
|
||||
if (string.IsNullOrEmpty(s) || s.Length <= maxLen)
|
||||
return s ?? "";
|
||||
return s.Substring(0, maxLen) + "…";
|
||||
}
|
||||
|
||||
static string StripJsonError(string json)
|
||||
{
|
||||
if (string.IsNullOrEmpty(json))
|
||||
return "Ошибка API";
|
||||
try
|
||||
{
|
||||
var jo = JObject.Parse(json);
|
||||
var err = jo.Value<string>("error");
|
||||
var det = jo.Value<string>("detail");
|
||||
if (!string.IsNullOrEmpty(det))
|
||||
return det;
|
||||
return err ?? json;
|
||||
}
|
||||
catch
|
||||
{
|
||||
return json;
|
||||
}
|
||||
}
|
||||
|
||||
static string EscapeHtml(string s)
|
||||
{
|
||||
if (string.IsNullOrEmpty(s))
|
||||
return "";
|
||||
return s
|
||||
.Replace("&", "&", StringComparison.Ordinal)
|
||||
.Replace("<", "<", StringComparison.Ordinal)
|
||||
.Replace(">", ">", StringComparison.Ordinal);
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user