Страница 5 из 6
Re: Функция-конвертер строки для отправки сообщений в Телеграмм
Добавлено: 24 дек 2021, 12:36
Sertik
Как правило, сначала составляется "итоговая" переменная, которая потом отправляется в функцию для перекодирования и отправки. Либо итоговый текст составляется конкатенацией (объединением) непосредственного текста и значений нужных переменных, в том числе результатов выполнения команд РОС.
Re: Функция-конвертер строки для отправки сообщений в Телеграмм
Добавлено: 04 мар 2023, 19:52
dimka-dh
Sertik писал(а): ↑24 дек 2021, 12:36
Как правило, сначала составляется "итоговая" переменная, которая потом отправляется в функцию для перекодирования и отправки. Либо итоговый текст составляется конкатенацией (объединением) непосредственного текста и значений нужных переменных, в том числе результатов выполнения команд РОС.
Подскажи, а есть рабочий вариант на ROS 7? Очень полезная функция, но не могу никак ее перенести на новую версию, не разберусь с синтаксисом никак...
Re: Функция-конвертер строки для отправки сообщений в Телеграмм
Добавлено: 04 мар 2023, 22:25
Sertik
Да и этот должен работать. Мне сейчас проверять не на чем. Сам Рос 7 не пользуюсь пока, сыровата.
Re: Функция-конвертер строки для отправки сообщений в Телеграмм
Добавлено: 05 мар 2023, 09:29
dimka-dh
Sertik писал(а): ↑04 мар 2023, 22:25
Да и этот должен работать. Мне сейчас проверять не на чем. Сам Рос 7 не пользуюсь пока, сыровата.
Да, заработал. При апгрейде прошивки ROS сразу не запустился, что странно, переписав скрипт заново ручками все завелось)
Re: Функция-конвертер строки для отправки сообщений в Телеграмм
Добавлено: 25 май 2023, 18:28
FalkonThincer
Прежде всего хотелось бы поблагодарить автора за выложенный код.
Продолжить бы хотелось тем, что, как уже обсуждалось выше, есть определённый сложности с использованием где-либо кроме 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
}
В данном случае необходимо заранее преобразовать строку в набор хекс-кодов (можно онлайн,
например) и уже его принимать на вход скриптом. Да, костыльно, но работает.
Re: Функция-конвертер строки для отправки сообщений в Телеграмм
Добавлено: 02 дек 2023, 16:39
uhi
Подскажите пожалуйста а этот скрипт должен работать в 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 то сообщение не приходит.
Re: Функция-конвертер строки для отправки сообщений в Телеграмм
Добавлено: 02 дек 2023, 18:26
Sertik
Покажите, что и как вставляете в Нетвоч
Re: Функция-конвертер строки для отправки сообщений в Телеграмм
Добавлено: 02 дек 2023, 19:24
Perreiro
День добрый!
Что-то не хватает в моих стараниях Не взлетает перекодировщик (((
Сделал так:
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
ЧЯДНТ?
Re: Функция-конвертер строки для отправки сообщений в Телеграмм
Добавлено: 02 дек 2023, 20:57
Sertik
Всё так.
Проверьте у Вас Микротик чисто английские тексты передает в чат (без перекодироввщика) ?
Re: Функция-конвертер строки для отправки сообщений в Телеграмм
Добавлено: 02 дек 2023, 23:04
uhi
Sertik писал(а): ↑02 дек 2023, 18:26
Покажите, что и как вставляете в Нетвоч
то же что и в скрипте. скрипт отрабатывает....
на скрине:
