implement proxies

This commit is contained in:
lucasheld 2022-07-02 20:26:18 +02:00
parent eab0715d8e
commit bfe002c11d
3 changed files with 45 additions and 2 deletions

View file

@ -1,4 +1,5 @@
from .auth_method import AuthMethod
from .monitor_type import MonitorType
from .notification_providers import NotificationType, notification_provider_options
from .proxy_protocol import ProxyProtocol
from .api import UptimeKumaApi

View file

@ -5,6 +5,7 @@ import socketio
from . import AuthMethod
from . import MonitorType
from . import NotificationType, notification_provider_options
from . import ProxyProtocol
class UptimeKumaApi(object):
@ -327,8 +328,40 @@ class UptimeKumaApi(object):
def get_proxies(self):
return self.get_event_data("proxyList")
def add_proxy(self):
pass
def add_proxy(self, *args, **kwargs):
data = self._build_proxy_data(*args, **kwargs)
return self.sio.call('addProxy', (data, None))
def edit_proxy(self, id_: int, *args, **kwargs):
data = self._build_proxy_data(*args, **kwargs)
return self.sio.call('addProxy', (data, id_))
def delete_proxy(self, id_: int):
return self.sio.call('deleteProxy', id_)
def _build_proxy_data(
self,
protocol: ProxyProtocol,
host: str,
port: str,
auth: bool = False,
username: str = None,
password: str = None,
active: bool = True,
default: bool = False,
apply_existing: bool = False,
):
return {
"protocol": protocol,
"host": host,
"port": port,
"auth": auth,
"username": username,
"password": password,
"active": active,
"default": default,
"applyExisting": apply_existing
}
# status page

View file

@ -0,0 +1,9 @@
from enum import Enum
class ProxyProtocol(str, Enum):
HTTPS = "https"
HTTP = "http"
SOCKS = "socks"
SOCKS5 = "socks5"
SOCKS4 = "socks4"