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

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

14 сен 2021, 13:50

В связи с глюком Телеграмма при встрече варианта текста с пробелом и следующей за ним заглавной буквой 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={


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

14 сен 2021, 15:04

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

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


Telegram: @thexvo

Дома: [CCR1009-7G-1C-1S+] [CRS112-8P-4S-IN] [wAP ac] [RB260GS]
Не дома: [RB4011iGS+] [CRS326-24G-2S+RM] [wAP 60ad] [cAP ac]...
...[hEX] [hAP ac²] [hAP ac lite] [hAP mini] [RB260GS]
Lurker
Сообщения: 152
Зарегистрирован: 29 апр 2021, 10:45

14 сен 2021, 15:10

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


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

14 сен 2021, 15:12

Именно так.


Telegram: @thexvo

Дома: [CCR1009-7G-1C-1S+] [CRS112-8P-4S-IN] [wAP ac] [RB260GS]
Не дома: [RB4011iGS+] [CRS326-24G-2S+RM] [wAP 60ad] [cAP ac]...
...[hEX] [hAP ac²] [hAP ac lite] [hAP mini] [RB260GS]
Sertik
Сообщения: 1109
Зарегистрирован: 15 сен 2017, 09:03

14 сен 2021, 20:14

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


Чего не знаем то нагуглим
pepelxl
Сообщения: 125
Зарегистрирован: 23 июл 2013, 18:47

14 сен 2021, 20:18

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


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

15 сен 2021, 08:12

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


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

15 сен 2021, 10:56

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


Чего не знаем то нагуглим
Sertik
Сообщения: 1109
Зарегистрирован: 15 сен 2017, 09:03

19 сен 2021, 19:29

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


Чего не знаем то нагуглим
Ответить