diff --git a/app.py b/app.py index 233ee3b..4282ddb 100644 --- a/app.py +++ b/app.py @@ -26,7 +26,6 @@ try: except ImportError: date_parser = None - # Konfiguracja aplikacji app = Flask(__name__) app.config['SECRET_KEY'] = 'twoj-sekret-klucz' @@ -70,7 +69,6 @@ class Device(db.Model): use_ssl = db.Column(db.Boolean, default=False) # Czy używać SSL? ssl_insecure = db.Column(db.Boolean, default=False) # Jeśli True – nie weryfikować certyfikatu SSL user_id = db.Column(db.Integer, db.ForeignKey('user.id'), nullable=False) - class Settings(db.Model): id = db.Column(db.Integer, primary_key=True) pushover_user_key = db.Column(db.String(255)) @@ -99,7 +97,6 @@ class UpdateHistory(db.Model): update_type = db.Column(db.String(50)) details = db.Column(db.Text) device = db.relationship('Device', backref='update_histories') - class Anomaly(db.Model): id = db.Column(db.Integer, primary_key=True) device_id = db.Column(db.Integer, db.ForeignKey('device.id'), nullable=True) @@ -107,7 +104,6 @@ class Anomaly(db.Model): description = db.Column(db.Text) resolved = db.Column(db.Boolean, default=False) device = db.relationship('Device', backref='anomalies') - class ChangelogEntry(db.Model): id = db.Column(db.Integer, primary_key=True) version = db.Column(db.String(50), nullable=False) @@ -125,19 +121,16 @@ def load_user(user_id): return User.query.get(int(user_id)) # FUNKCJE POWIADOMIEŃ - def send_pushover_notification(user, message): - # Sprawdzamy, czy użytkownik posiada ustawienia oraz wymagane pola if not user.settings or not user.settings.pushover_enabled or not user.settings.pushover_user_key or not user.settings.pushover_token: return data = { - "token": user.settings.pushover_token, # Używamy pushover_token z ustawień + "token": user.settings.pushover_token, "user": user.settings.pushover_user_key, "message": message } try: r = requests.post("https://api.pushover.net/1/messages.json", data=data) - # Możesz dodać logowanie odpowiedzi, jeśli potrzebne except Exception as e: print("Błąd przy wysyłaniu powiadomienia Pushover:", e) @@ -168,8 +161,7 @@ def check_device_update(device): update_available = False current_version = None current_firmware = None - upgrade_firmware = None # Nowa zmienna - + upgrade_firmware = None try: app.logger.debug(f"Connecting to device {device.ip}:{device.port} using SSL: {device.use_ssl}, ssl_verify: {not device.ssl_insecure}") api = librouteros.connect( @@ -381,6 +373,18 @@ def get_release_type(version_text): else: return "stable" +@app.template_filter('format_version') +def format_version(value): + import re + # Poprawiona wersja obsługująca różne formaty wersji + match = re.match(r"(\d+\.\d+)(rc|beta)?(\d)(\d{4})?", value) + if match: + main_version, label, number, _ = match.groups() + if label: + return f"{main_version}{label}{number}" + return main_version + return value # Zwraca oryginalną wartość, jeśli nie pasuje + def fetch_changelogs(force=False): changelog_url = "https://mikrotik.com/download/changelogs" current_date = datetime.utcnow() @@ -532,14 +536,6 @@ with app.app_context(): scheduler.start() # ROUTY APLIKACJI - -@app.template_filter('format_version') -def format_version(value): - import re - # Zamieniamy ciąg, który składa się z: liczba.część_1 + czterocyfrowy rok, na samą część_1. - # Przykładowo: "7.182025" => "7.18" - return re.sub(r"(\d+\.\d+)\d{4}", r"\1", value) - @app.route('/') def index(): if current_user.is_authenticated: