|
|
|
@ -1,6 +1,6 @@
|
|
|
|
|
from django.shortcuts import render
|
|
|
|
|
from django.views import View
|
|
|
|
|
from rest_framework.parsers import FormParser
|
|
|
|
|
from rest_framework.parsers import FormParser, JSONParser
|
|
|
|
|
from rest_framework.views import APIView
|
|
|
|
|
|
|
|
|
|
from core.lib.manage import threshold
|
|
|
|
@ -208,6 +208,61 @@ class ThresholdIRCNetworkRelayStatus(SuperUserRequiredMixin, APIView):
|
|
|
|
|
}
|
|
|
|
|
return render(request, self.template_name, context)
|
|
|
|
|
|
|
|
|
|
class ThresholdIRCNetworkChannelsAPI(SuperUserRequiredMixin, APIView):
|
|
|
|
|
template_name = "manage/threshold/irc/network/channels.html"
|
|
|
|
|
parser_classes = [FormParser]
|
|
|
|
|
|
|
|
|
|
def delete(self, request, net):
|
|
|
|
|
"""
|
|
|
|
|
Part a channel.
|
|
|
|
|
:param net: network name
|
|
|
|
|
:param channel: channel name
|
|
|
|
|
"""
|
|
|
|
|
channel = request.data["channel"]
|
|
|
|
|
print("DELETE CHANNEL", channel)
|
|
|
|
|
parted = threshold.part_channel(net, channel)
|
|
|
|
|
if parted["success"]:
|
|
|
|
|
message = f"Requested part on relays: {', '.join(parted['relays'])}"
|
|
|
|
|
message_class = "success"
|
|
|
|
|
else:
|
|
|
|
|
message = parted["reason"]
|
|
|
|
|
message_class = "danger"
|
|
|
|
|
|
|
|
|
|
channels = threshold.get_irc_channels(net)
|
|
|
|
|
context = {
|
|
|
|
|
"net": net,
|
|
|
|
|
"channels": channels["channels"],
|
|
|
|
|
"message": message,
|
|
|
|
|
"class": message_class,
|
|
|
|
|
}
|
|
|
|
|
return render(request, self.template_name, context)
|
|
|
|
|
|
|
|
|
|
def put(self, request, net):
|
|
|
|
|
"""
|
|
|
|
|
Join a channel.
|
|
|
|
|
:param net: network name
|
|
|
|
|
"""
|
|
|
|
|
if "channel" not in request.data:
|
|
|
|
|
message = "No channel specified"
|
|
|
|
|
message_class = "danger"
|
|
|
|
|
else:
|
|
|
|
|
channel = request.data["channel"]
|
|
|
|
|
joined = threshold.join_channel(net, channel)
|
|
|
|
|
if joined["success"]:
|
|
|
|
|
message = f"Requested join on relay: {joined['relays']}"
|
|
|
|
|
message_class = "success"
|
|
|
|
|
else:
|
|
|
|
|
message = joined["reason"]
|
|
|
|
|
message_class = "danger"
|
|
|
|
|
|
|
|
|
|
channels = threshold.get_irc_channels(net)
|
|
|
|
|
context = {
|
|
|
|
|
"net": net,
|
|
|
|
|
"channels": channels["channels"],
|
|
|
|
|
"message": message,
|
|
|
|
|
"class": message_class,
|
|
|
|
|
}
|
|
|
|
|
return render(request, self.template_name, context)
|
|
|
|
|
|
|
|
|
|
class ThresholdIRCNetworkChannels(SuperUserRequiredMixin, APIView):
|
|
|
|
|
"""
|
|
|
|
|