RSS
[>] Re: gemini:// как дополнение idec
idec.talks
Esenin Pavel(tgi,1) — hugeping
2021-11-06 10:32:04


А можно поподробнее про кучу серверов и клиентов? На досуге ознакомился с этим делом. Пробовал найти хоть один нормальный клиент под, прости Господи, винду 10. Дак нет же. Всё в каком-то полусыром виде - то собирать с бубном надо, то ошибки сыпятся, то вообще не работает. Нет ли чего-то готового, чтоб просто запустил и работает?

[>] Анонс станции
idec.talks
Esenin Pavel(tgi,1) — All
2021-11-07 16:29:03


Продолжаю славную традицию "каждому пользователю сети по станции". На днях увидела свет станция tgi (https://idec.textgamesinfo.ru/). Станция была создана исключительно из научного интереса и в целях более глубокого изучения idec. Так что глобальных планов на данный момент нет. Для начала предполагается держать несколько новостных конференций, касательно работы самой станции и всего с этим связанного, а так же небольшой блог для складывания в него умных и не очень мыслей.

На данный момент проверена работа станции с несколькими клиентами. В том числе и отправка сообщений. Веб интерфейс отсутствует как класс - руки ещё не дошли. Более подробно о ходе работ отписываю в tgi.station.

Буду рад замечаниям, предложениям и конструктивной критике.

P. S. Пользуясь случаем, выражаю благодарность Andrew Lobanov за разъяснения непонятных из документации вещей и помощи в тестировании.

[>] Re: Анонс станции
idec.talks
Esenin Pavel(tgi,1) — hugeping
2021-11-08 11:21:11


> Скорее всего, присутствуют пустые строки в выдаче.
Абсолютно верно. Действительно в выдаче были пустые строки. Битых сообщений нет, это неправильная обработка списка перед выводом (у меня все генерируется на лету). Поправил, больше не должно такого быть. В любом случае буду посмотреть.

Вообще странно как я этот баг проглядел - ни один клиент не ругается на такое - просто молча игнорируют.

[>] Рождение станции tgi
tgi.station
Esenin Pavel(tgi,1) — All
2021-11-03 15:12:33


Всем привет.

Набросал на скорую руку небольшой прототип станции. Это еще даже не альфа-версия, т.к. много чего пока не реализовано, но кое-что уже есть. На данный момент поддерживаются:
* /u/e/ для одной или нескольких коференций;
* /u/m/ для одного или нескольких сообщений;
* /x/с/
* /list.txt
* /u/e/ частично - сейчас игнорируются смещение и лимит;
* POST /u/point; соответственно имеется возможность проверки пароля и возврата кода (сейчас только "msg ok:<msgid>" и "error: no auth!";

Планы:
* сейчас не проверяется размер сообщения, надо поправить;
* добавить обработку в /u/e/ смещения и лимита;
* добавить repto - сейчас игнорируется;
* добавить возможность забирать сообщения с других станций.

[>] Сайт
tgi.station
Esenin Pavel(tgi,1) — All
2021-11-03 16:13:51


Сделал для станции поддомен idec.textgamesinfo.ru и прикрутил https. Теперь можно подключаться к станции по адресу https://idec.textgamesinfo.ru/

[>] Доработки
tgi.station
Esenin Pavel(tgi,1) — All
2021-11-04 23:45:32


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

[>] Об используемых технологиях
tgi.station
Esenin Pavel(tgi,1) — All
2021-11-08 17:02:45


Немного об используемых технологиях. Все данные, необходимые для работы, генерируются на лету. Никаких статических файлов нет. Станция работает на Django 3 + sqlite. ОС - Ubuntu 20.04 LTS (да, возможно, кто-то скажет, что это "не серверная ось" и все такое прочее - не собираюсь никому ничего доказывать). Все это хозяйство живет на VPS (4 Gb ram/60 GB hdd). На том же VPS имеются и другие проекты, но все сосуществуют мирно, да и ресурсы особо не едят.

Сообщения хранятся в базе как в кодированном виде (base64), так и открытым текстом. Сделано так для совмещения приятного с полезным: с одной стороны, станция может отдавать кодированные сообщения практически мгновенно и в любых количествах, т.к. они уже есть в готовом виде. С другой стороны, наличие тех же сообщений в открытом виде дает возможность быстрого доступа непосредственно к тексту сообщения и остальным его полям, что позволяет производить сортировку, делать различные выборки и аналитику. Конечно, можно было бы дополнительно задействовать и такие вещи как Elasticsearch, например, но такой необходимости пока не вижу. Может быть, когда количество сообщений в сети достигнет нескольких миллионов (ну вдруг), тогда может быть. Но не сейчас.

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

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

[>] Скрытые конференции и web-интерфейс
tgi.station
Esenin Pavel(tgi,1) — All
2021-11-09 14:40:36


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

Теперь у станции есть web-интерфейс, позволяющий просматривать конференции и сообщения в них. Конечно, многого еще нет (например, регистрация и возможность отправлять сообщения), но базовые возможности присутствуют.

[>] Новое 10.11.2021
tgi.station
Esenin Pavel(tgi,1) — All
2021-11-10 17:27:19


Добавлено:
* blacklist.txt. Сообщения, помеченные как заблокированные, автоматически добавляются сюда.
* x/features
* x/filelist (POST)
* x/filelist/pauth (GET)
* x/file

Проверена работа с публичными и скрытыми файлами.

Добавлена автоматическая проверка наличия файлов. В случае если файл не найден - запись о нем в базе помечается удаленной.