Implement joining and parting channels
This commit is contained in:
@@ -1,3 +1,5 @@
|
||||
import urllib.parse
|
||||
|
||||
from core.lib.threshold import threshold_request
|
||||
|
||||
|
||||
@@ -31,8 +33,15 @@ def get_irc_network(net):
|
||||
def edit_irc_network(net, data):
|
||||
url = f"irc/network/{net}/edit"
|
||||
payload = dict(data)
|
||||
network = threshold_request(url, payload)
|
||||
return network
|
||||
result = threshold_request(url, payload)
|
||||
return result
|
||||
|
||||
|
||||
def change_network_status(net, num, status):
|
||||
url = f"irc/network/{net}/{num}"
|
||||
payload = {"status": status}
|
||||
result = threshold_request(url, payload)
|
||||
return result
|
||||
|
||||
|
||||
def get_irc_relays(net):
|
||||
@@ -40,7 +49,7 @@ def get_irc_relays(net):
|
||||
payload = {}
|
||||
relays = threshold_request(url, payload)
|
||||
if not relays:
|
||||
return []
|
||||
return {}
|
||||
return relays
|
||||
|
||||
|
||||
@@ -49,5 +58,25 @@ def get_irc_channels(net):
|
||||
payload = {}
|
||||
channels = threshold_request(url, payload)
|
||||
if not channels:
|
||||
return []
|
||||
return {}
|
||||
return channels
|
||||
|
||||
|
||||
def part_channel(net, channel):
|
||||
channel = urllib.parse.quote(channel, safe="")
|
||||
url = f"irc/network/{net}/channel/{channel}"
|
||||
payload = {}
|
||||
parted = threshold_request(url, payload, method="DELETE")
|
||||
if not parted:
|
||||
return {}
|
||||
return parted
|
||||
|
||||
|
||||
def join_channel(net, channel):
|
||||
channel = urllib.parse.quote(channel, safe="")
|
||||
url = f"irc/network/{net}/channel/{channel}"
|
||||
payload = {}
|
||||
joined = threshold_request(url, payload, method="PUT")
|
||||
if not joined:
|
||||
return {}
|
||||
return joined
|
||||
|
||||
@@ -37,14 +37,28 @@ def sort_data(data):
|
||||
data[item] = OrderedDict({k: v for k, v in sorted_item})
|
||||
|
||||
|
||||
def threshold_request(url, data):
|
||||
def threshold_request(url, data, method="POST"):
|
||||
headers = {
|
||||
"ApiKey": settings.THRESHOLD_API_KEY,
|
||||
"Token": settings.THRESHOLD_API_TOKEN,
|
||||
}
|
||||
for key in data:
|
||||
data[key] = escape(data[key])
|
||||
r = requests.post(
|
||||
|
||||
if method == "POST":
|
||||
method = requests.post
|
||||
elif method == "GET":
|
||||
method = requests.get
|
||||
elif method == "DELETE":
|
||||
method = requests.delete
|
||||
elif method == "PUT":
|
||||
method = requests.put
|
||||
else:
|
||||
logger.error("Invalid method specified")
|
||||
method = requests.get
|
||||
print("SENDING TO", url)
|
||||
|
||||
r = method(
|
||||
f"{settings.THRESHOLD_ENDPOINT}/{url}/", data=dumps(data), headers=headers
|
||||
)
|
||||
if not r.headers.get("Counter") == settings.THRESHOLD_API_COUNTER:
|
||||
|
||||
Reference in New Issue
Block a user