Функция-конвертер строки для отправки сообщений в Телеграмм

Здесь выкладываем скрипты
Правила форума
Уважаемые Пользователи форума, обратите внимание!
Ни при каких обстоятельствах, Администрация форума, не несёт ответственности за какой-либо, прямой или косвенный, ущерб причиненный в результате использования материалов, взятых на этом Сайте или на любом другом сайте, на который имеется гиперссылка с данного Сайта. Возникновение неисправностей, потерю программ или данных в Ваших устройствах, даже если Администрация будет явно поставлена в известность о возможности такого ущерба.
Просим Вас быть предельно осторожными и внимательными, в использовании материалов раздела. Учитывать не только Ваши пожелания, но и границы возможностей вашего оборудования.
Sertik
Сообщения: 1598
Зарегистрирован: 15 сен 2017, 09:03

Как правило, сначала составляется "итоговая" переменная, которая потом отправляется в функцию для перекодирования и отправки. Либо итоговый текст составляется конкатенацией (объединением) непосредственного текста и значений нужных переменных, в том числе результатов выполнения команд РОС.


фрагменты скриптов, готовые работы, статьи, полезные приемы, ссылки
viewtopic.php?f=14&t=13947
dimka-dh
Сообщения: 3
Зарегистрирован: 23 дек 2021, 18:32

Sertik писал(а): 24 дек 2021, 12:36 Как правило, сначала составляется "итоговая" переменная, которая потом отправляется в функцию для перекодирования и отправки. Либо итоговый текст составляется конкатенацией (объединением) непосредственного текста и значений нужных переменных, в том числе результатов выполнения команд РОС.
Подскажи, а есть рабочий вариант на ROS 7? Очень полезная функция, но не могу никак ее перенести на новую версию, не разберусь с синтаксисом никак...


Sertik
Сообщения: 1598
Зарегистрирован: 15 сен 2017, 09:03

Да и этот должен работать. Мне сейчас проверять не на чем. Сам Рос 7 не пользуюсь пока, сыровата.


фрагменты скриптов, готовые работы, статьи, полезные приемы, ссылки
viewtopic.php?f=14&t=13947
dimka-dh
Сообщения: 3
Зарегистрирован: 23 дек 2021, 18:32

Sertik писал(а): 04 мар 2023, 22:25 Да и этот должен работать. Мне сейчас проверять не на чем. Сам Рос 7 не пользуюсь пока, сыровата.
Да, заработал. При апгрейде прошивки ROS сразу не запустился, что странно, переписав скрипт заново ручками все завелось)


FalkonThincer
Сообщения: 1
Зарегистрирован: 25 май 2023, 18:16

Прежде всего хотелось бы поблагодарить автора за выложенный код.
Продолжить бы хотелось тем, что, как уже обсуждалось выше, есть определённый сложности с использованием где-либо кроме Windows, и, столкнувшись с ними, я пришёл к следующему решению для функции преобразования строки:

Код: Выделить всё

:local RUHEXtoUTF8 do={
    :set $inputString $1;
    # Russian letters UTF8-codes
    :local HEXUTFarr [:toarray {"C0"="D090"; "C1"="D091"; "C2"="D092"; "C3"="D093"; "C4"="D094"; "C5"="D095"; "C6"="D096"; "C7"="D097"; "C8"="D098"; "C9"="D099"; "CA"="D09A"; "CB"="D09B"; "CC"="D09C"; "CD"="D09D"; "CE"="D09E"; "CF"="D09F"; "D0"="D0A0"; "D1"="D0A1"; "D2"="D0A2"; "D3"="D0A3"; "D4"="D0A4"; "D5"="D0A5"; "D6"="D0A6"; "D7"="D0A7"; "D8"="D0A8"; "D9"="D0A9"; "DA"="D0AA"; "DB"="D0AB"; "DC"="D0AC"; "DD"="D0AD"; "DE"="D0AE"; "DF"="D0AF"; "E0"="D0B0"; "E1"="D0B1"; "E2"="D0B2"; "E3"="D0B3"; "E4"="D0B4"; "E5"="D0B5"; "E6"="D0B6"; "E7"="D0B7"; "E8"="D0B8"; "E9"="D0B9"; "EA"="D0BA"; "EB"="D0BB"; "EC"="D0BC"; "ED"="D0BD"; "EE"="D0BE"; "EF"="D0BF"; "F0"="D180"; "F1"="D181"; "F2"="D182"; "F3"="D183"; "F4"="D184"; "F5"="D185"; "F6"="D186"; "F7"="D187"; "F8"="D188"; "F9"="D189"; "FA"="D18A"; "FB"="D18B"; "FC"="D18C"; "FD"="D18D"; "FE"="D18E"; "FF"="D18F"; "A8"="D081"; "B8"="D191"}]

    # Define string that we will use in the loop
    :local outString ""
    :local UTFcode ""
    # Read string as array with two character elements
    :for i from=0 to=([:len $inputString]-1) step=2 do={
        # Define array element as HEX-code
        :local HEXcode [:pick $inputString $i ($i+2)]
        # Mapping HEX-code onto UTF-key
        :local UTFkey ($HEXUTFarr->$HEXcode)
        # Set UTF-code as %XX%XX for Russian letters and %XX for others
        :if ([:len $UTFkey]!=0) do={
            :set $UTFcode ("%"."$[:pick ($HEXUTFarr->$HEXcode) 0 2]"."%"."$[:pick ($HEXUTFarr->$HEXcode) 2 4]")
        } else={
            :set $UTFcode ("%"."$HEXcode")
        }
        # Add UTF-code to output string
        :set $outString ("$outString"."$UTFcode")
    }
    :return $outString
}
В данном случае необходимо заранее преобразовать строку в набор хекс-кодов (можно онлайн, например) и уже его принимать на вход скриптом. Да, костыльно, но работает.


uhi
Сообщения: 26
Зарегистрирован: 15 фев 2013, 00:34

Подскажите пожалуйста а этот скрипт должен работать в Netwatch?
у меня не отрабатывает...
если создаю скрипт:
:local botID "бот_ид" ;
:local myChatID "чат_ид" ;
:global FuncStrToTele;
:local string [$FuncStrToTele "тест"]
:tool fetch url=("https://api.telegram.org/$botID/sendmes ... xt=$string") keep-result=no

выполняю его то уведомление приходит на телеграмм.
а если это содержимое вставляю в Netwatch то сообщение не приходит.


Sertik
Сообщения: 1598
Зарегистрирован: 15 сен 2017, 09:03

Покажите, что и как вставляете в Нетвоч


фрагменты скриптов, готовые работы, статьи, полезные приемы, ссылки
viewtopic.php?f=14&t=13947
Perreiro
Сообщения: 5
Зарегистрирован: 25 мар 2023, 16:10

День добрый!
Что-то не хватает в моих стараниях Не взлетает перекодировщик (((
Сделал так:
1. Добавил скрипт "FuncStrToTele", содержимое скопировал из первого поста.
2. Создал скрипт "myScript". Содержимое:
:local botID "botXXXXXXXXXX:YYYYYYYYYYYYYYYYYYYYYYYY";
:local myChatID "ZZZZZZZZZZZZ";
:global FuncStrToTele;
:local string [$FuncStrToTele "Привет от Sertik ! Работает функция-конвертер Russian alfabit для Telegramm"]
/tool fetch url=("https://api.telegram.org/$botID/sendmes ... xt=$string") keep-result=no

ЧЯДНТ?


Sertik
Сообщения: 1598
Зарегистрирован: 15 сен 2017, 09:03

Всё так.
Проверьте у Вас Микротик чисто английские тексты передает в чат (без перекодироввщика) ?


фрагменты скриптов, готовые работы, статьи, полезные приемы, ссылки
viewtopic.php?f=14&t=13947
uhi
Сообщения: 26
Зарегистрирован: 15 фев 2013, 00:34

Sertik писал(а): 02 дек 2023, 18:26 Покажите, что и как вставляете в Нетвоч
то же что и в скрипте. скрипт отрабатывает....

на скрине:
Изображение


Ответить