UNREALIRCD-RPC-PY
Introduction
If you are using Python3, this package can help you to parse all json responses it does all the work for you.
How to install this package
pip3 install unrealircd_rpc_py
[!NOTE] I recommend installing a virtual environment and then installing the package within it.
How to establish the link
Using requests module
from unrealircd_rpc_py.ConnectionFactory import ConnectionFactory
# Define your connection string
connection_string = {
'url': 'https://your.irc.domaine.org:8600/api',
'username':'API_USERNAME',
'password':'API_PASSWORD'
}
# Use the factory to create your connection object
conn = ConnectionFactory().get('http')
conn.setup(connection_string)
Using unixsocket method (Local only)
from unrealircd_rpc_py.ConnectionFactory import ConnectionFactory
# Define your connection string
connection_string = {
'path_to_socket_file': '/path/to/unrealircd/data/rpc.socket'
}
# Use the factory to create your connection object
conn = ConnectionFactory().get('unixsocket')
conn.setup(connection_string)
How to work with it
This package allows easy interfacing with UnrealIRCd through regular Python3 code, such as:
# Enjoy the power of JSON-RPC
User = conn.User
response = User.get('adator')
print(f'Nickname: {response.name}')
print(f'Ip: {response.ip}')
Channels = rpc.Channel
response = Channels.list_(_object_detail_level=3)
for chan in Channels:
print(f'-' * 16)
print(f'Channel: {chan.name}')
print(f'Created on: {chan.creation_time}')
print(f'Bans: {chan.bans}')
print(f'Members: {chan.members}')
print(f'-' * 16)
Object that you can use in a synchrone mode
# After connecting using one of the methods listed above.
rpc = conn
Channel = rpc.Channel
Name_ban = rpc.Name_ban
Server_ban_exception = rpc.Server_ban_exception
Server_ban = rpc.Server_ban
Spamfilter = rpc.Spamfilter
Stats = rpc.Stats
User = rpc.User
Whowas = rpc.Whowas
Log = rpc.Log # This feature requires unrealIRCd 6.1.8 or higher
Message = rpc.Message # This feat requires unrealIRCd 6.2.2 or higher
Connthrottle = rpc.ConnThrottle # This feat requires unrealIRCd 6.2.2 or higher
SecurityGroup = rpc.SecurityGroup # This feat requires unrealIRCd 6.2.2 or higher
Live Connection using UnixSocket (Local Only)
from unrealircd_rpc_py.LiveConnectionFactory import LiveConnectionFactory
# Live Connection (Local only) using unix socket
liverpc = LiveConnectionFactory().get('unixsocket')
liverpc.setup({
'path_to_socket_file': '/path/to/unrealircd/data/rpc.socket',
'callback_object_instance' : callback_function_instance,
'callback_method_or_function_name': 'your_method_name'
})
Live connection using Websocket (Local or Remote)
from unrealircd_rpc_py.LiveConnectionFactory import LiveConnectionFactory
# Live Connection (Local Or Remote) using websocket
liverpc = LiveConnectionFactory().get('http')
liverpc.setup({
'url': 'https://your.irc.domaine.org:8600/api',
'username': 'Your-api-username',
'password': 'Your-api-password',
'callback_object_instance' : callback_function_instance,
'callback_method_or_function_name': 'your_method_name'
})
Live Connection via unixsocket or websocket
How to work with
- Class: see how_to_use_it_live_class.py
- Function: see how_to_use_it_live_func.py
JSON-RPC TO SQL
from unrealircd_rpc_py.modules.tosql.tosql import ToSql
# PROVIDE YOUR SQL CREDENTIALS HERE
# engine_name: you can choose between 3 sql engines
# postgresql, mysql or sqlite
sql = ToSql(engine_name='postgresql',
db_hostname='127.0.0.1',
db_name='YOUR_DB_NAME',
db_username='YOUR_DB_USERNAME',
db_password='YOUR_DB_PASSWORD',
db_port=0) # If you use default port leave the db_port to 0
# PROVIDE YOUR RPC CREDENTIALS HERE
sql.rpc_credentials.url='https://your.rpc.link:PORT/api'
sql.rpc_credentials.username='YOUR-RPC-USER'
sql.rpc_credentials.password='YOUR-RPC-PASSWORD'
# FINALLY RUN THE COPY
sql.run()
If you want to use sqlite please use the syntax below:
from unrealircd_rpc_py.modules.tosql.tosql import ToSql
sql = ToSql(engine_name='sqlite')
# PROVIDE YOUR RPC CREDENTIALS HERE
sql.rpc_credentials.url='https://your.rpc.link:PORT/api'
sql.rpc_credentials.username='YOUR-RPC-USER'
sql.rpc_credentials.password='YOUR-RPC-PASSWORD'
# FINALLY RUN THE COPY
sql.run()
How to work with JSON-RPC TO SQL
- JSON-RPC TO SQL: see how_to_use_json_to_sql.py
Metadata
Release files for unrealircd-rpc-py 3.1.8
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| unrealircd_rpc_py-3.1.8.tar.gz | 38.1 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| unrealircd_rpc_py-3.1.8-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 96.4 kB
Release files / unrealircd_rpc_py-3.1.8.tar.gz
| Download URL | unrealircd_rpc_py-3.1.8.tar.gz |
|---|---|
| Size | 38.1 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
09300457cc50b0fe8bcba69b1074c8460edd542a8ae682bf0f676e8743a42ae9
|
|
BLAKE2b-256 checksum How to use checksums |
f31736dc5cc0f8b55d4178fc4fe131b7fd7b94620d26b421a64ed713cd11dc38
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
poetry/2.4.1 CPython/3.13.5 Linux/6.12.90+deb13-amd64
|
Release files / unrealircd_rpc_py-3.1.8-py3-none-any.whl
| Download URL | unrealircd_rpc_py-3.1.8-py3-none-any.whl |
|---|---|
| Size | 58.3 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
2f60151eff64745490908b4feda1af257a20462787a80d46ca2b50415a57b13c
|
|
BLAKE2b-256 checksum How to use checksums |
ff57ea8f77b8312330e56414bfa47bf41e0e3d0ef9f31983b305c7aeb5c5c07e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
poetry/2.4.1 CPython/3.13.5 Linux/6.12.90+deb13-amd64
|