terratensor / tg-svodd-bot

Telegram svodd.ru bot
https://t.me/svoddru
BSD 3-Clause "New" or "Revised" License
0 stars 0 forks source link

Обработка больших сообщений, обрубает на полуслове #5

Closed audetv closed 1 year ago

audetv commented 1 year ago

Можно телеговский issue открыть, но пока тут напишу — думаю переносы по количеству символов в будущем стоит придвинуть к переносам по словам, если вообще не по предложениям. Сейчас на полуслове может обрубить.

Originally posted by @iprst in https://github.com/terratensor/tg-svodd-bot/issues/4#issuecomment-1675954654

audetv commented 1 year ago

Причем необходимо отслеживать, чтобы сообщение при разбивке имело и открывающие и закрывающие тэги, в инцидентах ниже большая цитата была разбита на чанки по 4096 символов, но в первой части был открывающий <i>, во второй закрывающий </i>, итого телеграм отклонил эти сообщения и они не попали в ленту.

TG-SVODD-BOT-3

TG-SVODD-BOT-4

Надо применить практику разбивки больших параграфов из библиотеки, с поправкой на теги.

iprst commented 1 year ago

Надо применить практику разбивки больших параграфов из библиотеки, с поправкой на теги.

Видимо это наиболее адекватный сегодня вариант, ага.

audetv commented 1 year ago

Сейчас еще понял, что 99% будет проблема с доставкой старых сообщений при переходе на новую тему.

Т.е. сейчас нет механизма, который отправит уже созданные сообщения из новой темы, созданные до того, как сайт был переключен на новую тему.

Т.е. как минимум первое сообщения новой темы со ссылками и возможно несколько следующих сообщений, которые пользователи оставят в новой теме не будут отправлены. И когда будет произведено переключение темы на сервере в консоли, эти сообщения так и останутся неотправленными. В целом вопрос решаемый, надо просто доработать алгоритм, чтобы после переключения было произведено прочтение всех комментариев в новой теме и отправка их, но пока могут быть потери.

@iprst Итого, к чему я это все подумал и понял, я сегодня днем буду без компьютера, с этого момента чуть позже. И не смогу переключить тему, если вы решите обновить и сделать 38 тему. Просьба, если вы планировали переключение в ближайшее время, сегодня днем, отложить до вечера, когда я буду у компьютера и смогу оперативно переключить тему.

iprst commented 1 year ago

Итого, к чему я это все подумал и понял, я сегодня днем буду без компьютера, с этого момента чуть позже. И не смогу переключить тему, если вы решите обновить и сделать 38 тему. Просьба, если вы планировали переключение в ближайшее время, сегодня днем, отложить до вечера, когда я буду у компьютера и смогу оперативно переключить тему.

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

audetv commented 1 year ago

Сделал обновление https://github.com/terratensor/svodd/pull/224 Теоретически 90%, что все будет работать, во всяком случае на локальном протестировал, работало. Пользователь с правами администратора теперь может менять тему прямо на сайте, даже с телефона, надо только вспомнить как в режим разработчика на телефоне в браузере входить, чтобы ИД открывающего комментария посмотреть и добавить в форму. И добавил вам права администратора, на всякий случай, пусть будут.

UPD: нашёл как открыть исходный код на странице view-source:https//url

iprst commented 1 year ago

надо только вспомнить как в режим разработчика на телефоне в браузере входить, чтобы ИД открывающего комментария посмотреть и добавить в форму.

Можно процитировать — в цитате будет указан id.

Пользователь с правами администратора теперь может менять тему прямо на сайте

А куда жать надо?

audetv commented 1 year ago

надо только вспомнить как в режим разработчика на телефоне в браузере входить, чтобы ИД открывающего комментария посмотреть и добавить в форму.

Можно процитировать — в цитате будет указан id.

Да, точно.

А куда жать надо?

https://svodd.ru/cabinet

iprst commented 1 year ago

https://svodd.ru/cabinet

Супер. Завтра протестируем значит эту схему, подготовлю всё и просигналю, сообразим.

iprst commented 1 year ago

Для подумать: может быть цитату следует приклеивать к ответу на неё, чтобы сообщения не заканчивались на курсивный блок, а ответ на цитату не оказывался оторван от неё и перенесён в следующий пост? Будет более логично, но не знаю насколько сложно осуществить условие такой проверки для парсера.

audetv commented 1 year ago

Да, я об этом тоже думал, тоже кажется, что так будет логичнее, и когда я эту версию писал, я уже хотел это реализовать, но не смог и пока отложил до следующей версии, т.к. на тот момент мне было не понятно, правильно ли я разбил сообщение, будет ли это хорошо работать и прочее, ещё понаблюдаю. Но в итоге после последнего обновления не было не одного exception, и все сообщения проходят сами, ничего не терялось, так что теперь можно усовершенствовать метод и приклеивать цитату. Согласен с вашим предложением.

iprst commented 1 year ago

после последнего обновления не было не одного exception, и все сообщения проходят сами, ничего не терялось

Отлично. Визуально тоже всё нормально выглядит, даже сторонние картинки в виде ссылки парсятся как изображения. Рабочий метод. Можно дальше прикручивать свистелки и хотелки.