1.15
Исправлено решение hCaptchaTelegramAdvanced
-
Название: TelegramAdvanced
Версия: 1.2 (BETA)
Данные: модуль, демо скрипт
00c11f76-dea9-4150-8617-3c346054da10-TelegramAdvanced.zipСогласие на добавление модуля в BAS: Да
Описание: Продвинутый модуль для работы с api telegram ботов в BAS. Планируется на смену\дополнение оригинального модуля "Telegram". На данный момент доступны функции отправки сообщений, картинок base64, кнопок, стикеров, блокировка пользователя в групповом чате, ожидание ответа от пользователя и сохранение текста сообщения в переменную, таким образом, можно дистанционно управлять софтом, например, прописав ряд команд, которые вызывают асинхронные функции, тем самым запуская работу программы. Пока что все действия на английском языке, а названия переменных могут конфликтовать с пользовательскими.
Также к модулю прилагается исходник скрипта телеграм бота для удаленного запуска функций из телеграм.
Список всех функций:

История версий:
02-18-2023, 1.2, уменьшена задержка ожидания сообщений, добавлены функции отправки стикеров и блокировки пользователя в групповом чате, все функции теперь возвращают ответ, модуль русифицирован, модуль БОЛЬШЕ НЕ РАБОТАЕТ НА СТАРЫХ ВЕРСИЯХ BAS (скорее всего, работает только с версии 24+)
10-16-2021, бета 1.1, исправлена работа функции WaitMessage в режиме запуска, добавлена задержка для этого действия в 2 секунды, чтобы телеграм не банил IP
10-14-2021, выпущена бета 1.0 -
задумка классная только русифицировать кубики и было бы шикарно
-
@Wavvy_the9 Ваш модуль использует api http-клиента BAS, в связи с этим есть несколько проблем. Во первых ваш модуль использует текущие настройки прокси http-клиента. Это значит, что невалидный прокси не позволит вам отправить сообщение:

После использования любого действия модуля заменяется состояние последнего запроса http-клиента. То есть действие "Содержание ответа" вернёт данные запроса модуля, а не http-клиента ранее:

Это справедливо для следующих действий:
Текущий Url Содержание ответа Статус ответа Получить заголовок Xpath получить xml Xpath получить каждый xml Xpath получить текст Xpath получить каждый текст Xpath получить количество элементов Xpath проверить существование
Действие "WaitMessage" срабатывает только на сообщения, которые были введены после старта действия. То есть если вы напишете боту команду до фактического запуска этого действия, то действие не вернёт результат.
Ещё у этого действия слишком большая частота отправки запросов:
сервер телеграм просто заблокирует ваш ip за ddos атаку, особенно при работе в многопотоке.
Несколько моментов по коду. Для использования данных внутри функций вы зачем то используете переменные BAS:

Особенно удивило решение использовать стандартные названия переменных других действий:

То есть если пользователь заранее сохранит данные запроса из http-клиента в переменную SAVED_CONTENT, то это действие всё равно перезапишет данные.
Ещё есть несколько проблем с оформлением, нет описания действий, нет описания полей действий, нет перевода самих действий.
То есть нет разницы в локализации BAS, в обоих языках часть интерфейса действий будут на английском, а часть на русском:


-
@Fox Здравствуйте! По поводу использования стандартного HTTP клиента и стандартных названий переменных (которые могут перекликаться с переменными пользователей) мне уже сообщили, что это не очень удобно, буду менять.
По поводу "Действие "WaitMessage" срабатывает только на сообщения, которые были введены после старта действия. То есть если вы напишете боту команду до фактического запуска этого действия, то действие не вернёт результат." - так ведь и должно быть, разве нет? Мало ли что мы пишем боту, до того, как сказали ему ждать команду, по-моему, это логично и удобно. Насчет частоты запросов тоже сомневался, но все таки, прислушаюсь к вашему совету и добавил задержку в 2 сек между запросами.
Ну а насчет локализации, описания, и, от себя добавлю, лога, так это все будет изменено ближе к финальной версии, потому что, насколько я знаю, менять названия функций на русские можно только в самом manifest.json, и после обновления модуля из BAS (я пишу модуль именно в BAS, не чистым кодом), все названия все равно сбрасываются на английский. Также в финальной версии уберу лог, сейчас это, скорее, отладочная информация. А еще действие waitMessage не работало при запуске или многопотоке, т.к если использовать действия JSON в модуле, но не использовать в самом скрипте - ничего работать не будет, надо сообщить разработчику BAS об этой проблеме. Следовательно, экшены json из модуля я заменил на json команды через "выполнить код".
Новая версия уже в шапке. -
Очень большие кнопки в действии SendButton, используйте "resize_keyboard":true в теле запроса. Нет возможности добавить кнопки, если нужно использовать например 3шт. Было бы удобно передавать в действие SendButton кнопки списком и просто указывать переменную со списком и какое количество кнопок должно располагаться в одном ряду. Еще неплохо было бы добавить InlineKeyboard.
-
@John_Bradley Спасибо, учту, в будущих обновлениях добавлю.
@Fox к вам такой вопрос: не знаете ли, как сделать несколько возвратных значений в функции? Чтобы действие "ждать сообщение", например, возвращало не только текст сообщения, но и ID юзера. -
@Wavvy_the9 возвращать массив, а лучше объект, например:
{ userId: 123456789, message: 'Hello from telegram!' }Такое спокойно можно будет обработать тем же модулем JSON
-
@Oyasumi-Punpun Спасибо
-
@UserTrue said in TelegramAdvanced:
@ElTigre ну если простая капча, то можно. Изучайте телеграм апи для ботов.
Только зачем такой изврат, когда такую капча гадать стоит копейкиа как определить простая капча или нет) ну почему изврат, как один из вариантов решения капчи. ручной или автоматический) если вам не сложно ткните носом в нужную ссылку чтоб по изучать) давно ищу нечто подобное, но безуспешно(
-
@ElTigre https://core.telegram.org/bots/api
Хотя судя по описанию данного модуля это можно реализовать с его помощью.
Отправляете картинку и ждёте ответ.
Но я всё равно не понимаю зачем это надо, если объемы маленькие то положите на баланс сервиса по разгадывание капч 100р и не занимайтесь ерундой. А если большой объем, то существует xEvil и capmonster
-
@ElTigre said in TelegramAdvanced:
@UserTrue было бы шикарно если бы это реализовали в модуле)
Другими словами, вам бы очень хотелось, что бы кто то за вас сделал то, что нужно вам?
-
@Fox другими словам было бы шикарно что в этом модули была такая функция. думаю твой сарказм не к месту) да если даже так и что?) это плохо? если я не могу подобного сам сделать,а человек сможет. не вижу проблемы в принципе. лучше бы помогли с этим)
-
@ElTigre said in TelegramAdvanced:
@Fox другими словам было бы шикарно что в этом модули была такая функция. думаю твой сарказм не к месту) да если даже так и что?) это плохо? если я не могу подобного сам сделать,а человек сможет. не вижу проблемы в принципе. лучше бы помогли с этим)
Здесь я больше согласен с @UserTrue, программа называется "BrowserAutomationStudio", а не "BrowserManualStudio".
-
Модуль обновлен.