# πŸ’¬ **The Chat Room!** πŸ’¬ An IRC-style chat room built for **Reticulum NomadNet**, optimized for **MeshChat v2.1+**. Made By F. --- ## πŸ–ΌοΈ The Chat Room UI Screenshot from MeshChat interface: the chat room --- ## πŸš€ Live Demo Experience the chatroom in action via the official NomadNet page: **NomadNet Page Link (MeshChat v2.1+ Optimized):** `d251bfd8e30540b5bd219bbbfcc3afc5:/page/index.mu` --- # Informations Welcome to **THE CHATROOM** – v1.45a by F. The first Reticulum/Nomadnet IRC-style chatroom, optimized for Meshchat v2.x+. Born on v1 the 10 of August 2025. Enjoy! **Note:** This chatroom page was developed using MeshChat Browser so it's optimized for MeshChat v2.1+ only, could be unreadable on Nomadnet browser. A simpler Nomadnet version is coming soon, work in progress, stay tuned! --- ## πŸ“˜ Project Overview This is a Python-based Nomadnet page script that creates a ready-to-run IRC-style chatroom. Just copy all files from this GitHub release into your `./nomadnetwork/storage/pages/` folder, make `index.mu` executable with `chmod +x`, and launch your Nomadnet node. Detailed installation info below. - 🌍 Decentralized mesh-based communication based on NomadNetwork - πŸ§‘β€πŸ’» No registration requiredβ€”just choose a nickname and start chatting - 🎨 Nicknames are randomly colorized and persist across sessions (user settings personalization is coming soon!) - πŸ”’ Nickname to LXMF address binding, using the Fingerprint in Meshchat v2+ to save and recover the nickname across sessions (THANKS TO: **THOMAS**) - πŸ› οΈ Built with Python and Micron components - 🌐 Official chat script is Hosted on a VPS for stable uptime Live Demo: `d251bfd8e30540b5bd219bbbfcc3afc5:/page/index.mu` Official GitHub: [https://github.com/fr33n0w/thechatroom](https://github.com/fr33n0w/thechatroom) --- --- # πŸ†˜ Help Page Welcome to the Help section! This guide outlines all the modules required to run this project, along with setup instructions to get you started smoothly. ## 🧰 Requirements This project uses a combination of Python’s built-in modules and third-party libraries. ### βœ… Built-in Modules (No installation required) These come bundled with Python and require no additional setup: | Module | Purpose | |---------------------|-------------------------------------------------------------------------| | `os` | Interacts with the operating system (e.g., file paths, environment vars)| | `sys` | Accesses system-specific parameters and functions | | `json` | Parses and manipulates JSON data | | `time` | Handles time-based operations (e.g., delays, timestamps) | | `random` | Generates random values and selections | | `re` | Performs pattern matching with regular expressions | | `sqlite3` | Manages local SQLite database storage | | `shutil` | Performs high-level file operations (e.g., copying, moving files) | | `collections` | Provides specialized data structures like `Counter` | | `datetime` | Manages date and time objects | ### 🌐 Third-Party Libraries (Install via pip) These must be installed manually: | Package | Purpose | |-------------|-------------------------------------------------------------------------| | `pytz` | Timezone definitions and conversions | | `requests` | Simplified HTTP requests and API calls (needed for /meteo command only) | | `geopy` | Geolocation services (e.g., address lookup via Nominatim, as above) | To install them, run: ```bash pip install pytz requests geopy ``` ...and of course, you need NomadNet to host the page: ```bash pip install nomadnet ``` --- ## βš™οΈ Installation Ready to deploy **THE CHATROOM** on your NomadNet node? Follow these steps to get it running in minutes: --- ### πŸ“ 1. Download the Files Clone the repository or download the ZIP: ```bash git clone https://github.com/fr33n0w/thechatroom.git ``` ### πŸ“‚ 2. Copy Files to NomadNet Pages Directory ```bash cp -r thechatroom/* ~/.nomadnetwork/storage/pages/ ``` ### πŸ”“ 3. Make index.mu and other python pages Executable ```bash chmod +x ~/.nomadnetwork/storage/pages/index.mu chmod +x ~/.nomadnetwork/storage/pages/fullchat.mu chmod +x ~/.nomadnetwork/storage/pages/last100.mu ``` Also make sure your user has read and write permission for the json and db files! ### πŸš€ 4. Launch NomadNet ```bash nomadnet ``` # DONE! --- --- ## βš™οΈ Technical Notes Here are some important details about how **THE CHATROOM** works and what to expect: - πŸ”„ The chatroom does **not auto-refresh** due to Micron limitations β†’ Use the **Reload buttons** that you find in the bottom menubar to view new messages - 🧠 Nicknames can be stored using MeshChat’s **Fingerprint binding** - Usage: press fingerprint button, set a nickname and reload the page. Nick is saved. β†’ This allows nickname persistence across sessions (thanks to Thomas!) - To recover the nickname on lost session cache, press fingerprint again and it will reappear automatically - πŸ“œ The main chat view shows the **last 30 messages** to fit MeshChat browser windows, you cn adjust the limit in the script β†’ Full logs are available via the **View Logs** button on the bottom menΓΉ - πŸ§ͺ The `/meteo` command uses external APIs β†’ Requires `requests` and `geopy` to be installed - 🧱 Built with Python and Micron components β†’ Compatible with MeshChat v2.1+ only, pure NomadNet version is coming soon! - πŸ§ͺ More Features will come soon! Stay Tuned! --- --- ## πŸ’¬ Commands Reference Here’s the full list of available commands in **THE CHATROOM**, grouped by category for easy reference: --- ### πŸ“˜ General Info & Utility Commands | Command | Description | |-------------------|-----------------------------------------------------------------------------| | `/info` | Show chatroom information, usage, and disclaimer | | `/cmd` | Display all available user commands | | `/stats` | Show chatroom statistics, including Top 5 Chatters | | `/users` | List all active chatroom users | | `/version` | Show script version, latest updates, and news | --- ### 🧠 Interactive Chat Commands | Command | Description | |-----------------------------|-----------------------------------------------------------------------------| | `/lastseen ` | Show last seen info and latest message from a user | | `/topic` or `/topic ` | View or change the current room topic | | `/search ` | Search for keywords in the full chat log | | `/time` | Show current server time (UTC) and your local time | | `/ping` | Reply with PONG! to confirm chat system is active | | `/meteo ` | Get weather info for a city (requires internet + API) | --- ### 🎭 Social Interaction Commands | Command | Description | |-----------------------------|-----------------------------------------------------------------------------| | `/e` | Send randomized emojis from the internal emoji list | | `/c ` | Send a colored message with randomized background and font colors | | `@nickname` | Mention a user with a colored highlight | | `$e` | Insert a random emoticon anywhere in your message | | `/welcome` or `/welcome ` | Send a welcome message to the room or a specific user | --- ### πŸ‘€ User Status Commands | Command | Description | |-----------------------------|-----------------------------------------------------------------------------| | `/hi`, `/bye`, `/brb`, `/lol`, `/exit`, `/quit`, `/away`, `/back`, `/notice` | Send status updates or reactions | | Example | `/hi Hello World!` β€” syntax works for all status commands | --- ### πŸ”’ Admin Commands (Restricted Access) > Only available to system administrators via `/admincmd` | Command | Description | |----------------------------------|-------------------------------------------------------------------------| | `/clear` | Delete the last message permanently | | `/clear N` | Delete the last N messages, e.g. `/clear 3` | | `/clear user ` | Delete all messages from a specific user | | `/clearall` | Clear the entire chat log and database (irreversible) | | `/backup` | Create a full `chat_log.json` backup in the script folder | --- > ⚠️ Some commands require internet access or third-party libraries (`requests`, `geopy`). > πŸ” Admin commands are protected and only executable by authorized users. (Edit SYSADMIN nickname in the script!!) ---