forked from Dogo6647/r2chat
90 lines
2.1 KiB
Markdown
90 lines
2.1 KiB
Markdown
# r2chat
|
|
Simple and lightweight IM application for multi-user systems (e.g. Windows Server).
|
|
Created by Dogo6647 with Python and Tkinter.
|
|
|
|
## Usage
|
|
Place r2chat folder on C:\ on windows or inside any other location accessible by all users.
|
|
Make sure you're running the script from within the folder it's in.
|
|
```
|
|
python r2chat.py
|
|
```
|
|
|
|
- Chat history is saved as `chat_CHANNEL.txt` inside either "C:\Users\Public\r2chat\" on Windows
|
|
or "/var/tmp/r2chat/" on Unix-like.
|
|
- Preferences are stored as a json in your home directory and can be changed
|
|
directly from the GUI by clicking "Preferences" on the menu bar.
|
|
- You can insert color text into the chat by using the following syntax: `((#XXXXXX | yourtext))`
|
|
- The "insert" menu is not functional yet.
|
|
|
|
## Bot client usage
|
|
You can look at `examples/botexample.py` for an example working setup you can use as a template.
|
|
|
|
Unlike regular r2chat, the bot client doesn't require any dependencies and its config file
|
|
is stored as `r2bot.config.json` where you're running the script from, so it's important
|
|
to separate bots between directories to prevent them from overwriting each other's files.
|
|
|
|
### Bot client API
|
|
#### Init:
|
|
```
|
|
bot = r2bot(channel, username)
|
|
```
|
|
|
|
#### Sending a message:
|
|
```
|
|
bot.send(msg)
|
|
```
|
|
|
|
#### Sending a system message:
|
|
```
|
|
bot.system_message(msg)
|
|
```
|
|
|
|
#### Receiving messages
|
|
```
|
|
messages = bot.poll()
|
|
```
|
|
Returns a list of new lines and triggers event callbacks,
|
|
which can be used like this:
|
|
|
|
```
|
|
def handlemsg(msg):
|
|
print("got message:", msg)
|
|
|
|
# Register event
|
|
bot.on("on_message", handlemsg)
|
|
```
|
|
|
|
List of possible on-event types:
|
|
- "on_message"
|
|
- "on_mention"
|
|
- "on_system"
|
|
|
|
#### Statuses
|
|
```
|
|
bot.set_status(status)
|
|
```
|
|
|
|
List of standard statuses:
|
|
- "online"
|
|
- "offline"
|
|
- "inactive"
|
|
- "busy"
|
|
|
|
#### Leave signal
|
|
```
|
|
bot.leave_channel()
|
|
```
|
|
|
|
#### Parse text blocks
|
|
The bot client can split normal text and colored text
|
|
into an array;
|
|
```
|
|
segments = bot.parse_colors(text)
|
|
```
|
|
Would output something like:
|
|
```
|
|
[
|
|
("text", "normal text"),
|
|
("color", "#ff0000", "This is red text")
|
|
]
|
|
```
|