Python library for unrealIRCD json-rpc
Project description
UNREALIRCD-RPC-PY
If you are using Python3, this package can help you to parse all json responses it does all the work for you.
How to use this package
$ pip3 install unrealircd_rpc_py
How to work with (remotly)
This package allows easy interfacing with UnrealIRCd through regular Python3 code, such as:
from unrealircd_rpc_py.Loader import Loader
# Initialize your connexion to unrealircd
rpc = Loader(
req_method='requests', # you can also use 'socket'
url='https://your.irc.domaine.org:8600/api',
username='apiname',
password='apiPASSWORD'
)
# Enjoy the power of JSON-RPC
User = rpc.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.DB_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)
How to work with (using unix socket locally)
This package allows easy interfacing with UnrealIRCd through regular Python3 code, such as:
from unrealircd_rpc_py.Loader import Loader
# Initialize your connexion to unrealircd
rpc = Loader(
req_method='unixsocket',
path_to_socket_file='/path/to/unrealircd/data/rpc.socket'
)
# Enjoy the power of JSON-RPC
User = rpc.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.DB_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)
How to work with (using Live unix socket)
from unrealircd_rpc_py.Live import Live
# This is un callback class that will recieve the response
from TestObject import TestObject
InitCallbackClass = TestObject()
# The Callback method must always have 1 parameter as string
liveRpc = Live(
path_to_socket_file='/path/to/unrealircd/data/rpc.socket',
callback_object_instance=InitCallbackClass,
callback_method_name='your_method_name'
)
# This method will run forever and will send to your callback method the response
# in SimpleNameSpace type that you can parse
liveRpc.execute_async_method()
Exemple of a Callback Class
class CallbackObject:
def __init__(self) -> None:
pass
def run(self, json_response) -> bool:
print(json_response)
if type(json_response.result) != bool:
print(json_response.result.channel)
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
unrealircd_rpc_py-0.0.8.tar.gz
(20.2 kB
view details)
Built Distribution
File details
Details for the file unrealircd_rpc_py-0.0.8.tar.gz
.
File metadata
- Download URL: unrealircd_rpc_py-0.0.8.tar.gz
- Upload date:
- Size: 20.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.10.11
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | dd611ebaca0d892dd1ac8c670364dfe9a60b2c47d80d588ca8c81cd70ea2e62a |
|
MD5 | a245dcdf5fb793f41d6bbd592de7d587 |
|
BLAKE2b-256 | 17c8101aae2c87eec1ad5cca3d8d1fc41518d9c848884d56e8a0762bac78a123 |
File details
Details for the file unrealircd_rpc_py-0.0.8-py3-none-any.whl
.
File metadata
- Download URL: unrealircd_rpc_py-0.0.8-py3-none-any.whl
- Upload date:
- Size: 30.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.10.11
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | b6ba8ff96c92c89791bed286aab494a4147020f64b7ed521b96797491d8051a1 |
|
MD5 | 8b77adc413bb169001aea12d47a3eb4e |
|
BLAKE2b-256 | f299c7b5e7cbf405dc6f4c737405fac5d61697ad2edf722e20b50535c933dde7 |