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

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

В связи с глюком Телеграмма при встрече варианта текста с пробелом и следующей за ним заглавной буквой H латинского алфавита (см. viewtopic.php?f=14&t=12043&start=60) я включил в массив преобразования подфункции StrToTele ключ из пробела и равного ему элемента "0020" (пробел).
и дополнительную проверку в цикле на образование сочетания " H" с заменой на %20.
Это проще и быстрее, чем после переконвертации опять прогонять всю строку с заменой всех пробелов на %20.
Либо ещё вариант добавить в алгоритм преобразования проверку на сочетание пробела и заглавной H и только в этом случае вставлять вместо пробела %20
типа вот так :if (($keys=" ") and ([:pick $string ($i+1) (2+$i)]="H")) do={:set $code "%20"} else={


фрагменты скриптов, готовые работы, статьи, полезные приемы, ссылки
viewtopic.php?f=14&t=13947
xvo
Сообщения: 4204
Зарегистрирован: 25 фев 2018, 22:41
Откуда: Москва

Уже обсуждалось, в этой теме: это не глюк телеграма, а в принципе http запрос так работает.

Повторяю ссылку с объяснением:
https://forum.mikrotik.com/viewtopic.ph ... 15#p810546


Telegram: @thexvo
Lurker
Сообщения: 159
Зарегистрирован: 29 апр 2021, 10:45

xvo писал(а): 14 сен 2021, 15:04 Повторяю ссылку с объяснением:
https://forum.mikrotik.com/viewtopic.ph ... 15#p810546
Ага, вобщем так:
Пробелы в чистом виде URL вообще пихать нельзя по стандарту, но telegram по доброй воле их принимает.
НО на " H" его парсер ломается(там есть причина, читай ссылку).
Итого: я бы рекомендовал заменять все пробелы дабы соответствовать стандарту URL, хз где ещё может вылезти проблема.


xvo
Сообщения: 4204
Зарегистрирован: 25 фев 2018, 22:41
Откуда: Москва

Именно так.


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

OK, понятно. Будем заменять все пробелы на %20 !
В своей функции я исправил.


фрагменты скриптов, готовые работы, статьи, полезные приемы, ссылки
viewtopic.php?f=14&t=13947
pepelxl
Сообщения: 161
Зарегистрирован: 23 июл 2013, 18:47

Вот вообще не понимаю зачем изобретать велосипед. Есть стандарт, стандарт в открытом доступе. Что мешает прочитать, и сделать как нужно с первого раза? тыц


Lurker
Сообщения: 159
Зарегистрирован: 29 апр 2021, 10:45

pepelxl писал(а): 14 сен 2021, 20:18 Вот вообще не понимаю зачем изобретать велосипед. Есть стандарт, стандарт в открытом доступе. Что мешает прочитать, и сделать как нужно с первого раза? тыц
1)лень
2)обычно разработка на непрофессиональном уровне ведётся не по стандартам, а вот это не работает по этому, ну значит исправляем это. На стандарты никто не смотрит.


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

Я в английском как свинья в апельсинах понимаю. Если бы кто-нибудь (из профессиональных разработчиков :-) ) перевёл текст из этого "ТЫЦ" ....
Вот уважаемый pepelxl взялся бы и сделал для нас функцию-конвертер под Телеграмм как надо ...


фрагменты скриптов, готовые работы, статьи, полезные приемы, ссылки
viewtopic.php?f=14&t=13947
Sertik
Сообщения: 1598
Зарегистрирован: 15 сен 2017, 09:03

Поправил обе функции FuncStrToTele и FuncTelegramSender. Теперь они будут заменять нужной кодировкой для Телеграмма все символы, которые помещены в массив. Если всплывет какой-то символ, который кодируется не правильно (а это в нашем случае могут быть только символы с кодами $00-$40 - вставьте его и его код в словарь-массив и всё будет океу. Пока обнаружил что дело портили такие симфолы как & и ^. Их вставил, теперь нормально.


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

Sertik писал(а): 19 сен 2021, 19:29 Поправил обе функции FuncStrToTele и FuncTelegramSender. Теперь они будут заменять нужной кодировкой для Телеграмма все символы, которые помещены в массив. Если всплывет какой-то символ, который кодируется не правильно (а это в нашем случае могут быть только символы с кодами $00-$40 - вставьте его и его код в словарь-массив и всё будет океу. Пока обнаружил что дело портили такие симфолы как & и ^. Их вставил, теперь нормально.
А как правильно вызвать функцию отправки из Скрипта, в котором указаны локальные переменные, используемые для отправки в сообщении?
Так понимаю он отправляет их как текст в функцию...


Ответить