Временное решение проблемы поиска

Запилил архив форума с блэкджеком и поиском, может кому пригодится: https://buzer.dev/ep (новый адрес!)

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

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

Также есть возможность вывода сообщений конкретного пользователя. Для этого надо либо кликнуть по его нику в какой-нибудь теме или на главной странице, либо прямо вбить ссылку вида:
https://buzer.dev/ep/userposts/BUzer
(если в имени есть пробел, то вместо него надо ставить плюс, иначе браузер не поймёт)

В общем, функции пока что довольно базовые, но программа ещё допиливается, и в планах есть расширенный поиск с более гибкими настройками. Если, конечно, форумный поиск не заработает раньше :)
BUzer
Ба-альшое спасибо!
[BC]afGun
Ура-а-а! Спасибо!
Masha Event
/ехидно/ Оно, кнешна, хорошо... А гугль с ключом site:http://forum.everypony.ru отменили? ;)
Белый крокодил
В качестве идеи: может, стоит сортировать сообщения по убыванию дат, а не по возрастанию?
kuzya93
Ура, спасибо!
*убёгла читать первые сообщения пользователей. просто потому что забавно*
Белый крокодил писал(а):(автоопределение)/ехидно/ Оно, кнешна, хорошо... А гугль с ключом site:http://forum.everypony.ru отменили? ;)
Если хочется почитать сообщения пользователя - удобней вывод как на форуме через профиль был, и как в этой замене поиска. А не гугл.

/Лиса
Гость
Ого, отличная работа, молодец. Живое обновление данных?
NTFS
Да, раз в четыре минуты забирает новые сообщения (там внизу статус есть). Работает, кстати, на том же Cubietruck'е, про который как-то рассказывал: http://forum.everypony.ru/viewtopic.php ... 29#p592829

Кузя, ага, наверное переключатель будет.
BUzer
Ну что ж, активно пользуюсь этим поиском - могу сказать, что решение дельное. Встроенный поиск, конечно, ничто не заменит, но работающий внешний поиск намного удобнее неработающего внутреннего :-)
Из неудобств - всё-таки хотелось видеть свежие сообщения сверху, а не снизу. ORDER BY, Sort() или что там в твоём ядре поддерживается? Одна строчка кода сделает систему на 20% круче.
NTFS
А свежие сообщения сверху в результатах поиска, или в тредах вообще? Я просто думал, что речь шла только о результатах поиска (и списка сообщений пользователя), но вот внезапно для себя открыл, что на форуме для обычного чтения тредов это тоже настраивается :)
BUzer
Итак, несколько нововведений:
  • Добавлена страница настроек, где можно выбрать порядок сортировки постов во всех режимах, какие только есть.
  • В связи с этим возникает потребность в механизме постоянных ссылок на посты, потому что содержимое страницы под одним и тем же номером может отличаться для разных пользователей в зависимости от их настроек. В этом деле теперь внесена ясность: дата над сообщением (с иконкой якоря) всегда даёт постоянную ссылку на этот пост в архиве. Рядом с ней есть ссылка «на форуме», которая ведёт на это же сообщение на форуме.
  • Появилась возможность выводить список тем с участием определённого пользователя, а также возможность посмотреть посты конкретного пользователя в определённой теме. За это отвечают две кнопки над сообщением: «темы» и «в этой». В списке тем пользователя при этом также присутствует дополнительная колонка с зелёными кнопками, на которых написано, сколько сообщений пользователь оставил в этой теме.
  • В дополнение к двум режимам поиска в постах и в темах добавлен третий режим: поиск пользователя. Меня раньше постоянно напрягало, что чтобы найти чьи-то посты, надо было либо помнить его ник с точностью до регистра каждой буквы (чтобы вбить в URL), либо искать какой-нибудь его пост. В режиме поиска пользователя можно ввести любой кусочек его ника не важно в каком регистре, и он сразу выдаст сообщения пользователя, у которого больше всего постов из всех, чей ник содержит этот кусочек.
    Примеры: smt — SMT5015; gordon — GordonFreemane; ангел — Ангелочек Нежный; и т.д.
  • Дата последнего сообщения в последней колонке на главной странице теперь является ссылкой, и ведёт на это же сообщение на форуме. То есть, похоже на домик слева, только ссылка не в начало, а в конец темы.
    Хотя для тех, у кого на форуме включено отображение постов в обратном порядке, разницы нет.
BUzer
Бузер, ты не увлекайся, а то лентяи вообще ничего делать не будут)))
А вообще тебе респект.
GordonFreemane
Спасибо :) Вообще, у меня ещё есть желание сделать так, чтобы как-нибудь выделялись темы, где появились новые сообщения, но вот всё не могу придумать нормальный критерий, по которому она будет это определять. Она же не знает, какие темы я читал на форуме…
BUzer
BUzer писал(а):(автоопределение)Спасибо :) Вообще, у меня ещё есть желание сделать так, чтобы как-нибудь выделялись темы, где появились новые сообщения, но вот всё не могу придумать нормальный критерий, по которому она будет это определять. Она же не знает, какие темы я читал на форуме…
Ты можешь читать форум через свою оболочку в фрейме, которая будет запоминать твои переходы. Не лучшее решение, но должно работать - я так делал с региональным форумом.
NTFS
GordonFreemane писал(а):(автоопределение)Бузер, ты не увлекайся, а то лентяи вообще ничего делать не будут)))
А вообще тебе респект.
Как мне еще тогда намекнули: "пусть весь дизайновский интерфейс форума теперь натянет, и посмотрим, как заработает".

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

Впрочем, увлекаться действительно не советую. Текущим форумом не занимаются по другой причине, и уж точно не лентяйстве.
[BC]afGun
По просьбам трудящихся, тему прикрепил, ибо нужна пользователям на видном месте и в ближнем доступе.
NTFS
Добавил ещё одну фичу: теперь клик по надписи "Юзернейм писал(а):" в цитате перебрасывает к цитируемому сообщению.
При этом перезагрузки страницы не происходит, если оригинальное сообщение находится на той же странице — только перескакивает прокрутка.

Цитаты без указания автора автоматически дополняются авторством из найденного сообщения. При этом после "Юзернейм писал(а):" дописывается "(автоопределение)", чтобы в случае чего было видно, где с текстом пошаманила автоматика.
BUzer
Давно хотел прикрутить одну штуку, но что-то только сейчас руки дошли. Теперь если в поиске дописать звёздочку в конце слова, то будут найдены все остальные слова, начинающиеся на это слово.
Например, поиск по сезон* помимо постов с самим словом "сезон" также найдёт посты с "сезона", "сезонов", "сезону" и т.п.
Посередине или в начале слова звёздочка не работает, только в конце. Минимальная длина слова при поиске со звёздочкой — четыре символа (в названиях тредов — два).

Плюс пофиксил небольшой визуальный баг, когда список тредов сжимаешь по горизонтали, то все строки резко становились высотой в две строки. Теперь переносятся только строки с длинными названиями тредов.
BUzer
BUzer писал(а):(автоопределение) Посередине или в начале слова звёздочка не работает, только в конце.
Эм, регулярные выражения возможны?
Не то, чтобы прям сильно нужно, просто интересуюсь.
NTFS
Не, какой там :) Оно вообще всё заточено под поиск прямых совпадений слов. Просто потом оказалось, что поиск именно по началу слова довольно удачно можно впилить без особых изменений.
BUzer
BUzer - предлагаю переименовать тему в "решение проблемы поиска". Самоочевидно, что основной поиск - уже

NTFS
Пути его неисповедимы. Предлагаю ничего не переименовывать и подождать ещё лет 60. Who knows? Не каркай.
Mokuri Pies
Какая жесть. Обнаружил вчера, что сервис не работает. Точнее, он работает, но доступа к нему снаружи нет — всё выглядит так, как будто Ростелеком просто не пускает входящие соединения на порт 80. Написал в техподдержку, а они мне говорят…
На Ваше обращение в службу поддержки Клиентов ПАО «Ростелеком» сообщаем, что в целях безопасности клиентов ПАО Ростелеком порты (номера портов из обращения) на стороне клиента закрыты снаружи. Ограничение применяется для клиентов, подключённых по технологии PPPoE. Для гарантированной работоспособности портов/сервисов рекомендуем одно из решений:

1. Использовать альтернативные порты для предоставления доступа к сервисам.

2. Перенести сервисы на площадки, предоставляющие услуги хостинга (например, nic.ru).
Надо было ещё добавить пункт 3: "использовать услуги другого провайдера". Чем я вскоре и собираюсь воспользоваться
update: нашёл другое решение, всё снова работает через 80 (см. следующий пост, кому любопытно).

NTFS писал(а):(автоопределение)BUzer - предлагаю переименовать тему в "решение проблемы поиска".
Да не, не надо. Название темы — это же о том, как оно позиционируется, а не о том, как оно на деле :)
BUzer
Хех, проблема решилась быстрее, чем я думал.
Оказывается, Cloudflare в прошлом году выкатили новую фичу: Cloudflare Warp. Это тулза, которая ставится на твой сервер, и с него открывает исходящий шифрованный канал до серверов Cloudflare (примерно как VPN). Когда юзер стучится на твой сайт, он обращается к Cloudflare, который, в свою очередь, забирает страницу у тебя с сервера по этому каналу. Прелесть в том, что это позволяет хостить сайт на любом компьютере, у которого есть доступ в интернет — не обязательно пробрасывать порты, и даже белый айпишник не нужен. Напоминает принцип работы tor hidden service.
Вообще, технология давно напрашивалась, я даже удивлён, что они не сделали её раньше. Единственная беда с ней — это то, что её обещают когда-нибудь сделать платной. Но к тому моменту я уже обзаведусь другим провайдером.

update: ух ты, порт опять открыт… Одумались что ли в Ростелекоме?
А Warp тем временем так себе решением оказался. Эта их тулза постоянно рвет соединения, и выключается.
BUzer
Тут у меня проблема с девайсом возникла, на котором работал сервер. Вчера отключали свет, и после этого девайс перестал загружаться. Не знаю ещё, сколько я с ним буду разбираться, поэтому сайтец пока что полежит, увы.
BUzer
Не везёт на поиски понячим сайтам)

Очень жаль, крайне удобный сайтец. Поправляй его сокрей, если вы не против, конечно.
4hoof
Когда уже наконец заработает Импанкейк, пока неизвестно???
Мусоргский
Сорян, что так долго — несколько раз брался за этот девайс, и каждый раз оно меня вымораживало каким-то головняком с прошивкой и прочим.
В итоге просто залил программу на обычный vps, вроде нормально работает, посмотрим как оно будет.
BUzer
Никто не знает, что случилось с архивом форума??? Уже примерно неделю "Web server is down"…
Мусоргский
Выключен, надо полагать. Это все-таки пользовательский архив был, а его создателя на форуме уже давненько видно не было.
[BC]afGun
[BC]afGun писал(а):(автоопределение) Выключен, надо полагать. Это все-таки пользовательский архив был, а его создателя на форуме уже давненько видно не было.
Жаль =((( А я так любил там свою старую "тему имени Мусоргского" почитывать…
Мусоргский
Так что там с архивом форума??? Его не будут восстанавливать???
Мусоргский
А почему, собственно, ты у нас спрашиваешь, а не автора архива напрямую?
[BC]afGun
Автор архива, судя по учетке, не заходил сюда уже три года.
NTFS
Извиняюсь, там просто VPS-ка перезагрузилась, а архив самостоятельно с некоторых пор подниматься не умеет *facepalm*
Не стесняйтесь писать мне в лс, если оно лежит несколько дней и больше. Мне на почту должны уведомления приходить.

Вообще, у меня скоро этот домен протухает, и я, наверное, не буду его продлять, а перенесу на другой свой адрес. Думаю, на выходных этим займусь.
BUzer
Поняли, приняли, осознали :)
[BC]afGun
BUzer писал(а):(автоопределение) а архив самостоятельно с некоторых пор подниматься не умеет *facepalm*
Знакомая боль, особенно когда ты в лесу, а VPS упал и встать не может.
У некоторых хостеров есть для этого API, которое можно дергать с другой VPS и при отсутствии пинга - рестартовать корректно. Но конечно, для некоммерческого проекта это избыточно.
NTFS
Новый адрес: https://buzer.dev/ep
BUzer
Спасибо.
Кстати, хотел спросить, тебя попавший в архив спам не смущает? А то сам понимаешь, всякое "подхватить" можно :)
[BC]afGun
Смущает, я его иногда подчищаю в ручном режиме. Кстати, спасибо что напомнил.
BUzer
Сочувствую :)
В обозримом будущем нового спама быть не должно. Так как капчи сейчас вводят люди, а внятных альтернатив пока не найдено, регу закрыли и перевели на режим запросов администратору.
[BC]afGun
Почему у меня не открывается архив форума??? Вылезает ошибка 502 Bad Gateway.
И вчера вечером, и сегодня так.
Это у меня или у всех???
Мусоргский
Не только у тебя.
[BC]afGun
Архив до сих пор не работает... Так и светится 502 ошибка. Восстанавливаться уже не будет?
Elena5178
Епт, два месяца лежало что ли? О, спасибо кто меня в личку пнул, поднял обратно :D

Напоминаю, если оно валяется, просто пошлите мне в лс "архив упал" или что-нибудь в этом духе :)
BUzer
BUzer писал(а):(автоопределение)Напоминаю, если оно валяется, просто пошлите мне в лс "архив упал" или что-нибудь в этом духе :)
Ок, принято. Спасибо :)
[BC]afGun
BUzer писал(а):(автоопределение) Епт, два месяца лежало что ли? О, спасибо кто меня в личку пнул, поднял обратно :D

Напоминаю, если оно валяется, просто пошлите мне в лс "архив упал" или что-нибудь в этом духе :)
Будет сделано, шеф.
Гость
Опять архив не работает... Вылезает ошибка защищённого соединения.
Мусоргский
Починил, спасибо!
BUzer
Хостер "обрадовал", что тариф моей впс-ки протухает, 15 октября сервер превратится в тыкву, автоматически перенести сервер на другой тариф они не могут, и я должен переносить всё ручками. На всякий случай решил предупредить, что возможно архив чуток полежит, пока я соберусь всё настроить.
BUzer