terratensor / svodd

Поиск по архиву вопросов и комментариев сайта ФКТ
https://svodd.ru
BSD 3-Clause "New" or "Revised" License
2 stars 0 forks source link

Ссылка на телеграм в футере комментария соборной темы #297

Open iprst opened 1 month ago

iprst commented 1 month ago

Под каждым комментарием соборной темы на сайте есть ссылка на телеграм @svoddru — она может вести не на главную страницу канала, а на конкретную запись, соответствующую этому комментарию.

Если ничего не путаю, достаточно хранить счётчик и добавлять N+1 к используемому адресу после слэша.

audetv commented 1 month ago

Да, да. Когда делал тоже об этом подумал, но вот какие есть соображения по поводу:

Если ничего не путаю, достаточно хранить счётчик и добавлять N+1 к используемому адресу после слэша.

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

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

Кажется это не сложно сделать. А раз уж идеи синхронизировались, можно сделать.

UPD: обдумываю оба вариант, с сохранением ИД в БД, и со счетчиком n+1

iprst commented 1 month ago

То есть публикация на сайте → публикация в телеге → обновление ссылки в записи на сайте. Как то так?

audetv commented 1 month ago

Да, парсер парсит , публикация на сайте, публикация в телеге, если успешно, бот записывает в БД ИД опубликованного сообщения, когда происходит рендер страницы, то если установлено в БД ИД сообщения в телеге для комментария, то добавляет этот идентификатор к ссылке.

Остался момент, что комментарии могут быть разбиты на чанки при отправке в телегу, тогда у такого комментария будет несколько идентификаторов сообщения в телеге. Видимо, надо брать тот который первый, самый наименьший. Как то так.

audetv commented 1 month ago

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

audetv commented 1 month ago

Добавил в ручную в БД комментарий #474805 Это сообщение следующее после уточнения про «цветок». Обратил внимание, на следующе за уточнением сообщение, т.к аномально много пересылок (11) и просмотров (523) получило это сообщение.

iprst commented 1 month ago

Заодно протестировал. Новая ссылка на телегу работает, теперь ссылается на комментарий сразу.

iprst commented 1 month ago

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