1.15
Исправлено решение hCaptchaLogger
-
-
@UserTrue В большей степени я имел ввиду, что не стоит хорошему модулю оставаться на форумном распространении, если вдруг причина в том, что support считает его недостаточно оттестированным.
Как мы понимаем, всегда может выплыть какой-то баг, о котором даже невозможно было предположить до массового использования.Просто хотелось узнать, вдруг кто-то что-то знает.
На этом я со своими предположениями "все". -
@FastSpace said in Logger:
@Elmore В этом модуле нет ошибок.
Полно 🙃 Все не помню, но один из: когда фильтруешь лог по номеру потока, то цветной текст исчезает.
А это не мой баг, это баг самого api bas, который используется, также в скомпилированным скрипте при двойном клике лог очищается (но остается в файле). Эти баги не критичны и забивать голову разработчику ими не вижу смысла.
-
@UserTrue во-первых, спасибо за классный модуль. Во-вторых, видел, что есть поддержка веб-интерфейса. Но в скомпилированном скрипте по умолчанию только английский перевод. Как отображать русский язык в русской версии интерфейса?
И еще не работают цвета логов почему-то. Ниже код из веб интерфейса:
/////Set color if (EventData["type"] == "success") { Text.addClass("uk-text-success") } else if (EventData["type"] == "info") { // Text.addClass("uk-text-muted") Text.css("color", EventData["color"]) } else if (EventData["type"] == "fail") { Text.addClass("uk-text-danger") } else if (EventData["type"] == "error") { Text.addClass("uk-text-danger") } else if (EventData["type"] == "result") { Text.addClass("text-yellow") } -
@thepappo поддержка веб интерфейса заключается только в возможности отправки событий в него, а реализация их отображения это ваша задача. Что касается языка, то его надо передать через глобальную переменную в настройки логгера
-
@UserTrue я просто смотрел в документации к твоему модулю и сам код модуля. Там должен передаваться "level", но он в веб интерфейс не приходит. Приходит только type (fail, success и user), что по дефолту и так приходит. Проблема не в том, как обработать, а в том что я не могу получить данные в веб интерфейс из модуля.
Что касается языка, то его надо передать через глобальную переменную в настройки логгера
Вот это не очень понял
У меня веб интерфейс стандартный. В меню кнопки Translate to Russian и Translate to English. Попробовал в обработчики кликов по этим кнопкам засунуть изменение переменной _K, не работает =(
$(".TranslateEn").on("click", function(event) { Translate("en") Api.SetGlobalVariable("_K", "en") }) $(".TranslateRu").on("click", function(event) { Translate("ru") Api.SetGlobalVariable("_K", "ru") }) -
@UserTrue я просто смотрел в документации к твоему модулю и сам код модуля. Там должен передаваться "level", но он в веб интерфейс не приходит. Приходит только type (fail, success и user), что по дефолту и так приходит. Проблема не в том, как обработать, а в том что я не могу получить данные в веб интерфейс из модуля.
А вы какое событие слушаете? Нужно "custom-log"
Попробовал в обработчики кликов по этим кнопкам засунуть изменение переменной _K
_K - Это же не глобальная переменная. Вообще лучше вызывать функцию в которой будут устанавливаться настройки по умолчанию и через которую передавать нужные аргументы. https://wiki.bablosoft.com/web-interface/#/callbasfunction?id=bas-function-simplified-call
-
А вы какое событие слушаете? Нужно "custom-log"
Слушаю "log". "custom-log" пробовал, ничего не приходит.
_K - Это же не глобальная переменная.
Хм, ну это вроде как системная переменная баса, в которой хранится язык и ваш модуль как раз в нее смотрит. Если запускать веб интерфейс в режиме отладки, то таким макаром язык меняется. Если в скомпилированном - то нет. С функцией попробую, возможно в этом как раз дело.
-
@thepappo _K ну правильно это системная и никак не глобальная, модуль смотрит на нее если язык не указан. Но дело в том, что даже через глобальную переменную модуль не сможет отследить изменения переменной после применения настроек для модуля, поэтому лучше использовать функцию. Или же можно внести изменения в код модуля, чтобы в веб интерфейс отправлялись и русский и английский вариант, а решение что выводить будет приниматься на стороне интерфейса. До ПК доберусь так и сделаю. Просто я интерфейс пишу через вызовы функций и у меня не было таких проблем.
-
@thepappo Обновил модуль, добавил к данным поле ru и en, сделал небольшой рефакторинг кода
Api.SetEventHandler((type, data) => { if (type === 'custom-log') { console.log(data) } }){ "thread_name": "Thread #1", "action_id": '"363615980", "date": "Wed Jan 05 2022 18:00:22 GMT+0700 (RTZ 6 (", "text": "Привет", "lang": "ru", "ru": "Привет", "en": "Hello", "level": "info", "color": "" } -
@UserTrue не, не приходит событие custom-log (
/////Api event handler Api.SetEventHandler(function(EventType, EventData) { /////Display log if (EventType == "log") { let Logs = $('#Logs'); let LogLine = $("<div></div>").addClass("log-line").attr("data-log-type", EventData["type"]); let Text = $("<span></span>").text(EventData["text"]); /////Add action id if (EventData["action_id"]) { LogLine.append($("<span></span>").text("[" + EventData["action_id"] + "] ").addClass("uk-text-muted")) } /////Set color if (EventData["type"] == "success") { Text.addClass("uk-text-success") } else if (EventData["type"] == "info") { Text.addClass("uk-text-muted") } else if (EventData["type"] == "fail") { Text.addClass("uk-text-danger") } /////Remove old lines $('#Logs .log-line').slice(500).remove(); /////Append text LogLine.append(Text) Logs.append(LogLine) } if (EventType == "custom-log") { console.log(EventData) // ничего не выводится let Logs = $('#Logs'); let LogLine = $("<div></div>").addClass("log-line").attr("data-log-type", EventData["type"]); let Text = $("<span></span>").text(EventData["text"]); /////Add action id, date and thread name var MsgDate = new Date(EventData["date"]); LogLine.append($("<span></span>").text("[" + EventData["action_id"] + "] " + "[" + MsgDate + "] " + EventData["thread_name"]).addClass("uk-text-muted")) /////Set color if (EventData["type"] == "success") { Text.addClass("uk-text-success") } else if (EventData["type"] == "fail") { Text.addClass("uk-text-danger") } else if (EventData["type"] == "user") { if (EventData["level"] == "warn") { Text.addClass("text-yellow") } else if (EventData["level"] == "error") { Text.addClass("uk-text-danger") } } /////Append text LogLine.append(Text) Logs.append(LogLine) } -
