From 39508da73b72ea7e63b134b56a3d9a8243f5baad Mon Sep 17 00:00:00 2001 From: shm0rt Date: Tue, 15 Jul 2025 13:18:40 +0200 Subject: [PATCH 1/3] added python --- Connector.py | 22 ++++++++++++++++++++++ Logger.py | 30 ++++++++++++++++++++++++++++++ main.py | 15 +++++++++++++++ 3 files changed, 67 insertions(+) create mode 100644 Connector.py create mode 100644 Logger.py create mode 100755 main.py diff --git a/Connector.py b/Connector.py new file mode 100644 index 0000000..4ee1996 --- /dev/null +++ b/Connector.py @@ -0,0 +1,22 @@ +import requests +import Logger as logger + +class Infomaniak: + url: str="" + hostname: str="" + username: str="" + password: str="" + udpate_ip: str="" + def __init__(self,url,hostname,username,password,update_ip=None,syslog_option:bool=False): + self.url=url + self.hostname=hostname + self.username=username + self.password=password + self.update_ip=update_ip + self.logger=logger.Logger(syslog=syslog_option) + + def update(self) -> str: + return requests.get(self._updatelink()).text + + def _updatelink(self) -> str: + return f"https://{self.username}:{self.password}@{self.url}?hostname={self.hostname}{f"&myip={self.update_ip}" if self.update_ip else""}" diff --git a/Logger.py b/Logger.py new file mode 100644 index 0000000..d7adf86 --- /dev/null +++ b/Logger.py @@ -0,0 +1,30 @@ +import sys +import datetime +import syslog +#from warnings import warn + +class Logger: + pre:str + timestamp:bool + message:str + syslog:bool + debug:bool + + def __init__(self, syslog:bool=False, debug:bool=False): + self.syslog=syslog + self.debug=debug + + def log(self,severity, loglevel, msg): + print(f"{loglevel}, {datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S")}, {msg}") + if not self.debug or self.syslog: + syslog.syslog(severity, f"{loglevel}, {msg}") + + + def info(self, msg): + self.log(syslog.LOG_INFO,"INFO",msg) + def warn(self, msg): + self.log(syslog.LOG_WARNING,"WARNING",msg) + def error(self, msg): + self.log(syslog.LOG_ERR,"ERROR",msg) + def _debug(self, msg): + self.log(syslog.LOG_DEBUG,"DEBUG",msg) diff --git a/main.py b/main.py new file mode 100755 index 0000000..2440504 --- /dev/null +++ b/main.py @@ -0,0 +1,15 @@ +import Connector as connector +import Logger as logger + + +def main(): + ExternalConnector=connector.Infomaniak("infomaniak.com/nic/update", "grug.cloud", "ddns-updater", "gTgN8gz5i40uBFunvP8M",syslog_option=True) + log = logger.Logger(syslog=True) + log.info("script gestartet") + log.warn("warnung") + log.error("error") + log._debug("thing worked") +#good, IP invalid, nochg, + +if __name__ == "__main__": + main() From 31888ccdd3248d44688016f660713dc47e0c8aed Mon Sep 17 00:00:00 2001 From: shm0rt Date: Tue, 15 Jul 2025 14:25:10 +0200 Subject: [PATCH 2/3] added debug mode --- Logger.py | 17 +++++++++++++---- main.py | 2 +- 2 files changed, 14 insertions(+), 5 deletions(-) diff --git a/Logger.py b/Logger.py index d7adf86..8227a89 100644 --- a/Logger.py +++ b/Logger.py @@ -1,4 +1,3 @@ -import sys import datetime import syslog #from warnings import warn @@ -15,10 +14,19 @@ class Logger: self.debug=debug def log(self,severity, loglevel, msg): - print(f"{loglevel}, {datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S")}, {msg}") - if not self.debug or self.syslog: - syslog.syslog(severity, f"{loglevel}, {msg}") + if loglevel == "DEBUG": + if self.debug: + self.print_console(severity, loglevel, msg) + else: + self.print_console(severity, loglevel, msg) + if self.syslog: + self.print_syslog(severity, loglevel, msg) + + def print_console(self, severity, loglevel, msg): + print(f"{loglevel}, {datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S")}, {msg}") + def print_syslog(self, severity, loglevel, msg): + syslog.syslog(severity, f"{loglevel}, {msg}") def info(self, msg): self.log(syslog.LOG_INFO,"INFO",msg) @@ -27,4 +35,5 @@ class Logger: def error(self, msg): self.log(syslog.LOG_ERR,"ERROR",msg) def _debug(self, msg): + if self.debug: self.log(syslog.LOG_DEBUG,"DEBUG",msg) diff --git a/main.py b/main.py index 2440504..a4adbd6 100755 --- a/main.py +++ b/main.py @@ -4,7 +4,7 @@ import Logger as logger def main(): ExternalConnector=connector.Infomaniak("infomaniak.com/nic/update", "grug.cloud", "ddns-updater", "gTgN8gz5i40uBFunvP8M",syslog_option=True) - log = logger.Logger(syslog=True) + log = logger.Logger(syslog=True, debug=False) log.info("script gestartet") log.warn("warnung") log.error("error") From ccebffb3227af4f717ecfe4728dcd41823cbef62 Mon Sep 17 00:00:00 2001 From: shm0rt Date: Tue, 15 Jul 2025 14:25:42 +0200 Subject: [PATCH 3/3] added cache --- .gitignore | 2 ++ 1 file changed, 2 insertions(+) create mode 100644 .gitignore diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..b65deb3 --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +__pycache__ +.ropeproject