diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..b65deb3 --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +__pycache__ +.ropeproject 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..8227a89 --- /dev/null +++ b/Logger.py @@ -0,0 +1,39 @@ +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): + 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) + 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): + if self.debug: + self.log(syslog.LOG_DEBUG,"DEBUG",msg) diff --git a/main.py b/main.py new file mode 100755 index 0000000..a4adbd6 --- /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, debug=False) + log.info("script gestartet") + log.warn("warnung") + log.error("error") + log._debug("thing worked") +#good, IP invalid, nochg, + +if __name__ == "__main__": + main()