Python library for unrealIRCD json-rpc
Project description
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
from unrealircd_rpc_py.Loader import Loader
# Using requests method
rpc = Loader(
req_method='requests',
url='https://your.irc.domaine.org:8600/api',
username='apiname',
password='apiPASSWORD'
)
# Using socket method
rpc = Loader(
req_method='socket',
url='https://your.irc.domaine.org:8600/api',
username='apiname',
password='apiPASSWORD'
)
# Using unixsocket method (Local only)
rpc = Loader(
req_method='unixsocket',
path_to_socket_file='/path/to/unrealircd/data/rpc.socket'
)
from unrealircd_rpc_py.Live import Live
# Live Connection (Local only)
LiveRpc = Live(
req_method='unixsocket',
path_to_socket_file='/path/to/unrealircd/data/rpc.socket',
callback_object_instance=Callback_class_instance,
callback_method_name='your_method_name'
)
# Live Connection (Local Or Remote)
liveRpc = Live(
req_method='websocket',
url='https://your.irc.domaine.org:8600/api',
username='apiname',
password='apiPASSWORD',
callback_object_instance=InitCallbackClass,
callback_method_name='your_method_name'
)
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:
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)
# The auto completion should help you to find all available attributes
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
from unrealircd_rpc_py.Loader import Loader
# Initialize your connexion to unrealircd using one of the three method
rpc = Loader(
req_method='unixsocket',
path_to_socket_file='/path/to/unrealircd/data/rpc.socket'
)
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
Live Connection via unixsocket or websocket
How to work with (using Live unixsocket)
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(req_method='unixsocket',
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
if liveRpc.Error.code == 0:
# Subscribe to live events
liveRpc.subscribe()
else:
# If error show the error message
print(liveRpc.Error.message)
How to work with (using Live websocket)
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(req_method='websocket',
url='https://your.irc.domaine.org:8600/api',
username='apiname',
password='apiPASSWORD',
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
if liveRpc.Error.code == 0:
# Subscribe to live events
liveRpc.subscribe()
else:
# If error show the error message
print(liveRpc.Error.message)
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-1.0.6.tar.gz
(25.0 kB
view details)
Built Distribution
File details
Details for the file unrealircd_rpc_py-1.0.6.tar.gz
.
File metadata
- Download URL: unrealircd_rpc_py-1.0.6.tar.gz
- Upload date:
- Size: 25.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.10.11
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2c31968332bc7f6e3e5c8e91135a68fa4a4f68a2b11748cf589d3c2c2fc13ef4 |
|
MD5 | b9198e711050fb158d4f1a1382b41194 |
|
BLAKE2b-256 | 3d8daa3af3ef62a9dfb7dbfd03a93520757af84f2e72ff0a87823611b9ed1ef7 |
File details
Details for the file unrealircd_rpc_py-1.0.6-py3-none-any.whl
.
File metadata
- Download URL: unrealircd_rpc_py-1.0.6-py3-none-any.whl
- Upload date:
- Size: 35.6 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 | 92aa705b1a0cf73f8db0a5da0d5d59de8580ab294bfcc107dd438b6255839e91 |
|
MD5 | e575389fc8a88561650d07e123e896f3 |
|
BLAKE2b-256 | b1221a197fbef525e29f12b74dcc0a64de9f972a1fd3ac93a2aa4713dced4cae |