LINUXTALKS.CO

Автоматический показ комментов в стрим-топиках

 

L


0

0

cocucka, извини, что опять бомблю тебя сообщениями, но в токсах у нас по сути многие темы стриминговые, это как бы чаты. Там людям не столько важна история сообщений и их продуманность, сколько им важно видеть ответ от собеседника как можно быстрее. Я бы добавил новую галку в администрирование топика: «Стриминговый топик».

Ты уже смотрел js показа комментов. Как реализована эта кнопка «Показать новые комменты»? Можем ли вместо уведомления сразу выводить сообщение?

sorrow, torvn77, Kaschenko, а вы что думаете?

★★★☆☆

sorrow, torvn77, Kaschenko, а вы что думаете?

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

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

И наверное в таком виде так стоит сделать во всём форуме.

torvn77    
★★★
Последнее исправление: torvn77 (всего исправлений: 3)

Android / Chrome
Ответ на: комментарий от torvn77

пример со скриншотом из телеграма

crypt    
★★★☆☆
FreeBSD / Chrome
Ответ на: комментарий от torvn77

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

cocucka это к слову о галочки по умолчанию «показывать блоги». ты уверен, что она должна стоять по умолчанию?

crypt    
★★★☆☆
Последнее исправление: crypt (всего исправлений: 1)

FreeBSD / Chrome
Ответ на: комментарий от torvn77

скриншот увидел, идея, может и неплохая, но выглядит тупо. и реализовать сложновато.

crypt    
★★★☆☆
FreeBSD / Chrome
Ответ на: комментарий от torvn77

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

crypt    
★★★☆☆
FreeBSD / Chrome
Ответ на: комментарий от crypt

Ну не обязательно сразу всё делать, пока хватит кнопки "Докачать комментарии", тем более что она будет экономить трафик.

torvn77    
★★★
Android / Chrome
Ответ на: комментарий от crypt

Копия комментария к скриншоту:

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

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

Ссылка на блог с скриншотом https://linuxtalks.co/blogs/personal/2118

torvn77    
★★★
Последнее исправление: torvn77 (всего исправлений: 2)

Android / Chrome
Ответ на: комментарий от torvn77

ну и? сейчас есть такая кнопка. я-то говорю о том, чтобы их сразу показывать.

crypt    
★★★☆☆
FreeBSD / Chrome
Ответ на: комментарий от crypt

Телеграмм считает сообщение прочитанным если оно было полностью на экране.

Ну или если оно было длиннее экрана то если на экране побывал его конец.

torvn77    
★★★
Последнее исправление: torvn77 (всего исправлений: 1)

Android / Chrome
Ответ на: комментарий от torvn77

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

crypt    
★★★☆☆
Последнее исправление: crypt (всего исправлений: 1)

FreeBSD / Chrome
Ответ на: комментарий от crypt

Полностью динамический чат есть на ютубе в действующих трансяциях, может тебе почерпнуть идей от него?

torvn77    
★★★
Android / Chrome
Ответ на: комментарий от torvn77

не, сходу я столько кода не прочту.

crypt    
★★★☆☆
FreeBSD / Chrome
Ответ на: комментарий от cocucka

да видел, но конкретики не было.

crypt    
★★★☆☆
FreeBSD / Chrome

Ты уже смотрел js показа комментов. Как реализована эта кнопка «Показать новые комменты»? Можем ли вместо уведомления сразу выводить сообщение?

Там через вебсокет ивент прилетает. Если туда тело сообщения добавить, то можно и сразу показывать, но тк это js, то лагать это дерьмо будет будь здоров.

cocucka    
★★★★★★★★★★★
Linux / Chrome
Ответ на: комментарий от cocucka

да сейчас все на js, не будет лагать, если нормальный код писать.

я понимаю, что в инвент можно попробовать запихнуть тело. но лента-то сама генерится на бекэенде. и ссылка в «показать новые» ведет на релоад страницы.

crypt    
★★★☆☆
Последнее исправление: crypt (всего исправлений: 1)

FreeBSD / Chrome
Ответ на: комментарий от crypt

Ну она перезагружает страницу как раз чтобы с dom не пердолиться из js, а отрендерить на беке. Так то добавить ещё один div с телом не проблема, но нужно что-то будет придумывать со страницами.

cocucka    
★★★★★★★★★★★
Linux / Chrome
Ответ на: комментарий от cocucka

чтобы с dom не пердолиться из js

там jquery, а он под это заточен. сейчас вообще весь современный веб на js. не понимаю, почему ты так против этого выступаешь. особенно, когда предлагаешь поставить перед форумом клаудфларе, который в принципе свои проверки затачивает на js.

я пока слабо представляю, как просто так взять и добавить <div> к бекэнду из js. новые люди, которые зайдут на страницу ничего об этом знать не будут. тут back должен быть синхронизирован.

crypt    
★★★☆☆
Последнее исправление: crypt (всего исправлений: 1)

FreeBSD / Chrome
Ответ на: комментарий от crypt

Я не против js в принципе, я против моего пердоления с ним :)

Стриминг сообщений кажется простой фигней, но там есть подводные камни – либо делать бесконечный скролл а-ля вконтакт, либо пердолиться со страницами. Можно ещё втихаря дёргать бек и обновлять страницу по аяксу.

cocucka    
★★★★★★★★★★★
Linux / Chrome
Ответ на: комментарий от crypt

Тогда может лучше сейчас сделать несложные запросы, а потом просто сделать новый движок форума.

Мне это видится так: сам linuxtalks.co статический сайт раздающий кучу js который делает вебклиент децентрализованной сети.
А на node.linuxtalks.co находится нода которая из этой сети вытягивает комментарии и при необходимости выдает их обратно.

Ну и у меня и прочих желающих дома по такой же ноде.

И сразу чтоб запомнить: dht такого сайта надо делать настраиваемым, чтобы бы была возможность работать не только с центральным сервером, но и по f2f, может вообще центральный сервер отключать и поднимать копию linuxtalks.co на локальном ПК(сам сайт то статический).

torvn77    
★★★
Последнее исправление: torvn77 (всего исправлений: 3)

Android / Chrome
Ответ на: комментарий от crypt

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

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

cocucka    
★★★★★★★★★★★
Linux / Chrome
Ответ на: комментарий от torvn77

А кто всю эту хурму будет писать? Я тоже могу миллион охуенных идей накидать, но время и деньги на это откуда возьмутся?

cocucka    
★★★★★★★★★★★
Linux / Chrome
Ответ на: комментарий от cocucka

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

Можно ещё втихаря дёргать бек и обновлять страницу по аяксу.

при обновлении страницы дергается вся картинка. тут надо тогда какой-то iframe или еще что-то. слишком много перелопачивать. сложно.

но там есть подводные камни – либо делать бесконечный скролл а-ля вконтакт, либо пердолиться со страницами

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

crypt    
★★★☆☆
FreeBSD / Chrome
Ответ на: комментарий от cocucka

не обращай на него внимание. есть такие люди «прожектеры». мы их так называем.

crypt    
★★★☆☆
FreeBSD / Chrome
Ответ на: комментарий от cocucka

А кто всю эту хурму будет писать? Я тоже могу миллион охуенных идей накидать, но время и деньги на это откуда возьмутся?

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

torvn77    
★★★
Последнее исправление: torvn77 (всего исправлений: 1)

Android / Chrome
Ответ на: комментарий от cocucka

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

моя идея, что юзеры кастуют админа и он ставит галочку: турбо моде акак срач моде.

как вариант включать его автоматически, если число сообщений в секунду превышает 5.

crypt    
★★★☆☆
Последнее исправление: crypt (всего исправлений: 2)

FreeBSD / Chrome
Ответ на: комментарий от crypt

моя идея, что юзеры кастуют админа и он ставит галочку: турбо мод

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

torvn77    
★★★
Последнее исправление: torvn77 (всего исправлений: 2)

Android / Chrome
Ответ на: комментарий от crypt

моя идея, что юзеры кастуют админа и он ставит галочку: турбо мод

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

torvn77    
★★★
Android / Chrome

Может, просто глобальную настройку: ☑ Автоматически показывать новые комментарии?

sudopacman    
★★★★★★★★★★
Windows / Firefox
Ответ на: комментарий от sudopacman

или так. меня сейчас занимает, я не понимаю, как должен работать js со страницой и с бекэендом.

crypt    
★★★☆☆
FreeBSD / Chrome
Ответ на: комментарий от sorrow

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

Ну или просто посмотреть какие функции и пр. подобное он использует, может тогда будет понятнее как это писать.

Днлать это так, все символы ; заменяются на \n; после чего применяется sort -u
Потом результат изучается и делается новые замены для разбивания кода на элементарные действия.
Задача собрать информацию о названиях и типах переменных, функции и способы их вызова.
Будет хорошо если в процессе разборки получится понять что либо ещё.

torvn77    
★★★
Последнее исправление: torvn77 (всего исправлений: 1)

Android / Chrome
Ответ на: комментарий от torvn77

Нет. Код там не просто минифицирован, а именно обфусцирован. Так просто его не раскодируешь.

sorrow    
★★★★★★★★★★★★
Windows / Firefox
Ответ на: комментарий от sorrow

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

torvn77    
★★★
Последнее исправление: torvn77 (всего исправлений: 2)

Android / Chrome
Ответ на: комментарий от torvn77

лишь бы не зашифрован

возможно что и зашифрован

sorrow    
★★★★★★★★★★★★
Windows / Firefox
Ответ на: комментарий от torvn77

Системные и библиотечные переменные и функции всё равно сохранят свои названия и можно будет посмотреть на что этот код опирается

А если основной код, который выполняет логику, не вызывает системных и библиотечных функций, а работает с DOM через прослойку наподобие jQuery, причём эта библиотека тоже обфусцирована и все её вызовы являются рандомно сгенерированными именами?

sorrow    
★★★★★★★★★★★★
Windows / Firefox
Ответ на: комментарий от sorrow

Ну хотя бы функции отрисовки там не обсфуцированы?
Хотя если обсфуцированы то можно раздербанить библиотеку, где то этот код обращаясь к браузеру начнёт называть вещи своими именами, они то и нужны.

torvn77    
★★★
Android / Chrome
Ответ на: комментарий от torvn77

раздербанить библиотеку, где то этот код обращаясь к браузеру начнёт называть вещи своими именами, они то и нужны.

Это ничего не даст. Это будет список стандартных методов DOM и XHR/fetch. И никакой информации о том, в каком порядке и с каким алгоритмом их вызывать.

sorrow    
★★★★★★★★★★★★
Windows / Firefox
Ответ на: комментарий от sorrow

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

Но в принципе им можно попробовать вытащить последовательность вызовов?

В любом случае сначала надо выдернуть стандартные компоненты, а там видно будет.

torvn77    
★★★
Последнее исправление: torvn77 (всего исправлений: 2)

Android / Chrome

Это давно есть в lorify, как и табличка с бб-кодами, которую я просил.

Просто как server-side его интегрировать, да и всё.

Kaschenko    
★★★★★★
Android / Yandex
Ответ на: комментарий от Kaschenko

Ещё кнопка показать ответы сломалась

Kaschenko    
★★★★★★
Android / Yandex
Ограничение на отправку комментариев: только для зарегистрированных пользователей, score>=90