IRC-стиль чата для Reticulum NomadNet
Find a file
2025-11-23 00:15:42 -06:00
chat_log.json Update chat_log.json 2025-08-24 13:24:52 +02:00
emoticon.txt Update emoticon.txt 2025-08-24 13:28:13 +02:00
fullchat.mu Update with translations 2025-11-22 23:47:47 -06:00
index.mu adjust color, add text 2025-11-23 00:11:16 -06:00
last100.mu Update with translations 2025-11-22 23:47:47 -06:00
meshchat.mu Update time conversion to use timezone-aware datetime for local time calculation in meshchat.mu and nomadnet.mu 2025-11-23 00:15:42 -06:00
nomadnet.mu Update time conversion to use timezone-aware datetime for local time calculation in meshchat.mu and nomadnet.mu 2025-11-23 00:15:42 -06:00
README.md Update with translations 2025-11-22 23:47:47 -06:00
topic.json Update with translations 2025-11-22 23:47:47 -06:00

The Chat Room! RU-Edition

IRC-стиль чата для Reticulum NomadNet, оптимизирован для MeshChat v2.1+. Автор: F. Переведено на русский Sudo-Ivan.


Демо

Официальная страница NomadNet:

Ссылка на страницу NomadNet (оптимизировано для MeshChat v2.1+): d251bfd8e30540b5bd219bbbfcc3afc5:/page/index.mu


Информация

Добро пожаловать в THE CHATROOM v2.00 от F.
Первый IRC-стиль чата для Reticulum/Nomadnet, оптимизирован для Nomadnet и Meshchat v2.x+.

Создан в v1 (beta) 10 августа 2025.

Стабильная версия v2.00: 01/10/2025


Обзор проекта

Скрипт страницы Nomadnet на Python для создания IRC-стиля чата.
Скопируйте файлы из релиза GitHub в папку ./nomadnetwork/storage/pages/,
сделайте nomadnet.mu и meshchat.mu исполняемыми через chmod +x и запустите узел Nomadnet.

  • Децентрализованная mesh-сеть на базе NomadNetwork
  • Регистрация не требуется — выберите никнейм и начинайте общаться
  • Никнеймы автоматически окрашиваются и сохраняются между сессиями
  • Привязка никнейма к адресу LXMF через Fingerprint в Meshchat v2+ для сохранения и восстановления никнейма между сессиями (благодарность: THOMAS)
  • Построен на Python и компонентах Micron, JSON и SQL БД для чата, темы и сохранения никнеймов
  • Официальный скрипт чата размещён на VPS для стабильной работы

Демо: d251bfd8e30540b5bd219bbbfcc3afc5:/page/index.mu

GitHub: https://github.com/fr33n0w/thechatroom


Требования

Проект использует встроенные модули Python и сторонние библиотеки.

Встроенные модули (установка не требуется)

Модуль Назначение
os Работа с операционной системой (пути к файлам, переменные окружения)
sys Доступ к системным параметрам и функциям
json Парсинг и работа с JSON данными
time Операции со временем (задержки, временные метки)
random Генерация случайных значений
re Сопоставление с регулярными выражениями
shutil Высокоуровневые файловые операции (копирование, перемещение)
collections Специализированные структуры данных, например Counter
datetime Работа с датой и временем

Сторонние библиотеки (установка через pip)

Пакет Назначение
pytz Определения и преобразования часовых поясов
requests Упрощённые HTTP запросы (нужно только для команды /meteo)
geopy Геолокационные сервисы (поиск адресов через Nominatim)
sqlite3 Локальное хранение SQLite БД для привязки никнейма к LXMF

Установка:

pip install pytz requests geopy sqlite3

Также необходимо установить и настроить NomadNet для размещения страницы:

pip install nomadnet

Протестировано и работает с rns_server_pages от SebastianObi: https://github.com/SebastianObi/RNS-Tools/tree/main/rns_server_page


Установка

1. Скачать файлы

Клонировать репозиторий или скачать ZIP:

git clone https://github.com/Sudo-Ivan/thechatroom.git

2. Скопировать файлы в директорию страниц NomadNet

cp -r thechatroom/* ~/.nomadnetwork/storage/pages/

3. Сделать файлы исполняемыми

chmod +x ~/.nomadnetwork/storage/pages/nomadnet.mu
chmod +x ~/.nomadnetwork/storage/pages/meshchat.mu
chmod +x ~/.nomadnetwork/storage/pages/fullchat.mu
chmod +x ~/.nomadnetwork/storage/pages/last100.mu

Убедитесь, что у пользователя есть права на чтение и запись для JSON и DB файлов.

4. Запустить NomadNet

Установите и настройте Nomadnet (или другой сервер страниц nomadnet), после настройки:

nomadnet

Готово!

Примечание: TheChatRoom создан и запускался на машинах с правами root, возможно потребуются права root для запуска.

LXMF Контакт: 0d051f3b6f844380c3e0c5d14e37fac8


Технические заметки

  • Чат не обновляется автоматически из-за ограничений Micron
    → Используйте кнопки Reload в нижней панели меню для просмотра новых сообщений
  • Никнеймы можно сохранять через Fingerprint binding в MeshChat
    • Использование: нажмите кнопку fingerprint, установите никнейм и перезагрузите страницу. Никнейм сохранён. → Это позволяет сохранять никнейм между сессиями (благодарность Thomas!)
    • Для восстановления никнейма при потере кэша сессии нажмите fingerprint снова, и он появится автоматически
  • Основной вид чата показывает последние 30 сообщений для соответствия окнам браузера MeshChat, можно настроить лимит в скрипте → Полные логи доступны через кнопку View Logs в нижнем меню
  • Команда /meteo использует внешние API
    → Требует установки requests и geopy
  • Построен на Python и компонентах Micron
    → Совместим с MeshChat v2.1+ и чистым клиентом NomadNet

Справочник команд

Общие информационные и служебные команды

Команда Описание
/info Показать информацию о чате, использование и отказ
/cmd Показать все доступные команды пользователя
/stats Показать статистику чата, включая Топ-5 участников
/users Список всех активных пользователей чата
/version Показать версию скрипта, последние обновления

Интерактивные команды чата

Команда Описание
/lastseen <nickname> Показать последнее появление и сообщение пользователя
/topic или /topic <text> Просмотр или изменение текущей темы комнаты
/search <keyword(s)> Поиск ключевых слов в полном логе чата
/time Показать текущее время сервера (UTC) и локальное
/ping Ответить PONG! для подтверждения активности системы
/meteo <city> Получить информацию о погоде для города (требует интернет + API)

Команды социального взаимодействия

Команда Описание
/e Отправить случайные эмодзи из внутреннего списка
/c <message> Отправить цветное сообщение со случайными цветами фона и шрифта
@nickname Упомянуть пользователя с цветной подсветкой
$e Вставить случайный эмотикон в любое место сообщения
/welcome или /welcome <nickname> Отправить приветственное сообщение в комнату или конкретному пользователю

Команды статуса пользователя

Команда Описание
/hi, /bye, /brb, /lol, /exit, /quit, /away, /back, /notice Отправить обновления статуса или реакции
Пример /hi Hello World! — синтаксис работает для всех команд статуса

Административные команды (ограниченный доступ)

Доступны только системным администраторам через /admincmd

Команда Описание
/clear Удалить последнее сообщение навсегда
/clear N Удалить последние N сообщений, например /clear 3
/clear user <nickname> Удалить все сообщения от конкретного пользователя
/clearall Очистить весь лог чата и базу данных (необратимо)
/backup Создать полную резервную копию chat_log.json в папке скрипта

Некоторые команды требуют доступа в интернет или сторонних библиотек (requests, geopy).
Административные команды защищены и доступны только авторизованным пользователям. (Отредактируйте никнейм SYSADMIN в скрипте!!)


Дополнительные возможности

Антиспам

The ChatRoom! включает список фильтров антиспама на основе отдельных слов или комбинаций фраз. Добавьте свои или удалите ненужные заблокированные слова в секции spam_patterns скрипта.

Фиксированные окна интерфейса

Интерфейс фиксирован с помощью переменной DISPLAY_LIMIT, ограничен примерно 28 сообщениями для соответствия окну браузера MeshChat 2.0+.
То же для страницы Nomadnet с более простым подходом, ограничение строк примерно до 36.
Примечание: Длинные сообщения пользователей разбиваются на несколько строк, что может изменять размер финального интерфейса.

Система цветов никнеймов

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

Привязка никнейма к отпечатку LXMF (благодарность Thomas!)

Нажав кнопку Fingerprint в meshchat v2.1+, вы отправляете свой lxmf в чат, и скрипт автоматически привяжет никнейм и адрес lxmf как автовход. При повторном входе в чат никнейм будет автоматически восстановлен. Если переменные окружения meshchat отсутствуют (например, после перезагрузки), просто нажмите fingerprint снова, и на основе вашего lxmf никнейм появится автоматически. Никнейм и соответствующий адрес LXMF сохраняются в SQL БД для восстановления.

Функция разбиения длинных сообщений

Длинные сообщения автоматически разбиваются на несколько строк для сохранения постоянного макета и формата интерфейса.

Команды статистики и пользователей

Показывают статистику чата, топ участников, общее количество отправленных сообщений на пользователя, общее количество пользователей в чате (команды: /stats или /users)


Планируемые функции

Персонализированные настройки пользователя

(например, установка предпочтений цвета никнейма, возможность кликнуть по никнейму для отправки адреса lxmf для приватного чата, удаление привязки никнейма и lxmf, выбор темы чата и т.д.)

Команды администрирования

(например, добавление или удаление нескольких администраторов)