Compare commits

...

3 commits

Author SHA1 Message Date
ccebffb322 added cache 2025-07-15 14:25:42 +02:00
31888ccdd3 added debug mode 2025-07-15 14:25:10 +02:00
39508da73b added python 2025-07-15 13:18:40 +02:00
4 changed files with 78 additions and 0 deletions

2
.gitignore vendored Normal file
View file

@ -0,0 +1,2 @@
__pycache__
.ropeproject

22
Connector.py Normal file
View file

@ -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""}"

39
Logger.py Normal file
View file

@ -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)

15
main.py Executable file
View file

@ -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()