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
Using requests module
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
from unrealircd_rpc_py.Loader import Loader
# 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)
from unrealircd_rpc_py.Loader import Loader
# Using unixsocket method (Local only)
rpc = Loader(
req_method='unixsocket',
path_to_socket_file='/path/to/unrealircd/data/rpc.socket'
)
Live Connection using UnixSocket (Local Only)
from unrealircd_rpc_py.Live import LiveUnixSocket
# Live Connection (Local only) using unix socket
LiveRpc = LiveUnixSocket(
callback_object_instance=Callback_class_instance,
callback_method_name='your_method_name',
path_to_socket_file='/path/to/unrealircd/data/rpc.socket'
)
Live connection using Websocket (Local or Remote)
from unrealircd_rpc_py.Live import LiveWebsocket
# Live Connection (Local Or Remote) using websocket
liveRpc = LiveWebsocket(
callback_object_instance=InitCallbackClass,
callback_method_name='your_method_name',
url='https://your.irc.domaine.org:8600/api',
username='apiname',
password='apiPASSWORD'
)
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')
# Handling errors
if rpc.get_error.code != 0:
# if code is not 0 then there is an error
print(f"Your Error Message: {rpc.get_error.message}")
# You can also access errors like so:
if User.get_error.code != 0:
print(f"Your Error Message: {User.get_error.message}")
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 LiveUnixSocket
# 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 = LiveUnixSocket(
callback_object_instance=InitCallbackClass,
callback_method_name='your_method_name',
path_to_socket_file='/path/to/unrealircd/data/rpc.socket'
)
# This method will run forever and will send to your callback method the response
# in SimpleNameSpace type that you can parse
if liveRpc.get_error.code == 0:
# Subscribe to live events
liveRpc.subscribe()
else:
# If error show the error message
print(liveRpc.get_error.message)
How to work with (using Live websocket)
from unrealircd_rpc_py.Live import LiveWebsocket
# 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 = LiveWebsocket(
callback_object_instance=InitCallbackClass,
callback_method_name='your_method_name',
url='https://your.irc.domaine.org:8600/api',
username='apiname',
password='apiPASSWORD'
)
# This method will run forever and will send to your callback method the response
# in SimpleNameSpace type that you can parse
if liveRpc.get_error.code == 0:
# Subscribe to live events
liveRpc.subscribe()
else:
# If error show the error message
print(liveRpc.get_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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file unrealircd_rpc_py-2.0.4.tar.gz.
File metadata
- Download URL: unrealircd_rpc_py-2.0.4.tar.gz
- Upload date:
- Size: 26.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.10.11
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
372f0172d0c320c06076d623ef32c4a227e146093c92162bdffbff836bd32483
|
|
| MD5 |
51df3ee67c6498ca0415b103c085f6a7
|
|
| BLAKE2b-256 |
4473ede2872500ef5279f60424bffc0c2f1fff25708ed71abca75878edc7c289
|
File details
Details for the file unrealircd_rpc_py-2.0.4-py3-none-any.whl.
File metadata
- Download URL: unrealircd_rpc_py-2.0.4-py3-none-any.whl
- Upload date:
- Size: 36.0 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 |
38a187cf6e25321604561b1c42e88145eddf32b462e14ddb795cb83806c3cf7a
|
|
| MD5 |
b4cebee3dcd58be5eda20dea9b61a6cd
|
|
| BLAKE2b-256 |
462567fdf54c9deaed852e31ba002f1d4befa31d0233afcdfcb2f03b1ce7a0c7
|