Стартовая страница

# Peter to All @ Пишу ноду ii/idec на go @ idec.talks 01/09/20 21:14

Вот и до меня добралось. :)
В общем, пишу ноду на go.
Цели:
- никаких внешних зависимостей;
- экстремальная простота настройки и переноса базы;
- поддержка умного (адаптивного) fetch

На данный момент черновик ноды готов: https://github.com/gl00my/ii-go
Пока нет никакой морды, нет документации. Но решил показать что есть, вдруг кто-то pr накидает. ;)

Как посмотреть:

git clone https://github.com/gl00my/ii-go.git

cd ii-go/ii-tool
go build

./ii-tool fetch http://idec.spline-online.tk (полный фетч в 6 потоков всех эх (нужна поддержка list.txt), запускается только если видит, что база ноды изменилась, по наличию последнего сообщения)

./ii-tool -lim=-32 fetch http://idec.spline-online.tk (адаптивный фетч, спускается вглубь истории постепенно, по мере необходимости)

./ii-tool -lim=32 fetch https://club.syscall.ru (неадаптивный фетч, просто последние 32)

В конце можно указать файл с эхами или - для stdin

cat std.club | ./ii-tool -lim=32 fetch https://club.syscall.ru -

В итоге сольётся db и создастся db.idx - индекс. db - это просто бандл, и только этого файла достаточно, чтоб переносить базу.

можно теперь положить его к ноде:

mv db ../ii-node/
cd ../ii-node
go build
./ii-node - и запустить ноду на 8080

Теперь можно пофетчить с 127.0.0.1:8080 и позамерять скорость.

Ну и посылка сообщений тоже есть, см. -h

Увлекательное занятие, должен я сказать. :)





# Peter to Peter @ Re: Пишу ноду ii/idec на go @ idec.talks 05/09/20 16:17

Что нового и вообще, что в ноде особенного на данный момент.

0) Ни одной внешней зависимости.
1) Вся база - это бандл. Бандлы легко мержить друг с другом, переносить и так далее. Индекс создается автоматически но он не является необходимым, так как при удалении создается заново автоматически.
2) Есть тулза для работы с базами если это понадобится
3) Нода - это фактически форум с видом по тредам
4) Можно редактировать сообщения. При этом ничего не меняется, а просто в базу добавляется новый вариант сообщения с тем же ID. Более актуальной считается всегда более новая версия. Blacklist делается так же.
5) Многопоточный фетчинг
6) Адаптивный фетчинг, это когда пробуем по одному сообщению с каким то шагом, постоянно умножая его на *2 и уходим в глубь до тех пор, пока не найдутся те сообщения, что у нас есть в базе. Например: -16:1 -32:1 -64:1 -128:1 (увидели, что сообщение есть в нашей базе!), Сделали: -128:128
7) Простая web морда, нормально выглядит и на мобильном и в eww
8) Никакого js!
9) Предпросмотр сообщений при редактировании и создании новых
10) Простота разворачивания

Продолжаю работать. То, что хочется сделать.

1) RSS
2) Возможно, активацию юзеров по почте или вручную
3) Карбонка
4) Поиск
5) Избранное

http://club.syscall.ru:8080 - демка для экспериментов,



# btimofeev to Peter @ Re: Пишу ноду ii/idec на go @ idec.talks 09/09/20 19:11

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



# hugeping to Peter @ Re: Пишу ноду ii/idec на go @ idec.talks 18/09/20 07:16

Меня убедили начать комментировать код. :)

Так что постепенно буду это делать. На данный момент описал функции в msg.go -- это базовые функции для манипуляции бандлами (decode/encode) и приём сообщений от поинтов.

https://github.com/gl00my/ii-go/blob/master/ii/msg.go





# vvs to Peter @ Re: Пишу ноду ii/idec на go @ idec.talks 04/12/20 22:22

Кстати, не было повода, а тут вдруг вспомнил. Это чуть ли не единственный ресурс интернета, которым я пользуюсь, где толково реализован RSS. Ну просто идеально, даже клиент не нужен если не надо ничего писать. Чего не скажешь о различных форумах. В groups.google.com недавно поменяли интерфейс и окончательно испортили ленту, дата больше не обновляется и непрочитанные сообщения больше не видно :( К тому же там только первые несколько строк и из-за цитирования ничего не поймешь. На других форумах еще хуже. Там есть только первый пост в новой теме и все. Вот и на instead-games.ru/forum тоже.

А так хотелось все ресурсы объединить в одну ленту и сидеть как за штурвалом - все приборы обозревать одним взглядом с высоты капитанского кресла. Но видно не судьба. Вообще RSS явно нынче не в моде. Firefox еще раньше отказался его поддерживать, теперь пользуюсь newsboat.
P.S. Edited: 2020-12-04 22:22:38