changelog parsowanie wersji
This commit is contained in:
parent
9cb1c4e3a2
commit
781840066b
32
app.py
32
app.py
@ -26,7 +26,6 @@ try:
|
|||||||
except ImportError:
|
except ImportError:
|
||||||
date_parser = None
|
date_parser = None
|
||||||
|
|
||||||
|
|
||||||
# Konfiguracja aplikacji
|
# Konfiguracja aplikacji
|
||||||
app = Flask(__name__)
|
app = Flask(__name__)
|
||||||
app.config['SECRET_KEY'] = 'twoj-sekret-klucz'
|
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?
|
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
|
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)
|
user_id = db.Column(db.Integer, db.ForeignKey('user.id'), nullable=False)
|
||||||
|
|
||||||
class Settings(db.Model):
|
class Settings(db.Model):
|
||||||
id = db.Column(db.Integer, primary_key=True)
|
id = db.Column(db.Integer, primary_key=True)
|
||||||
pushover_user_key = db.Column(db.String(255))
|
pushover_user_key = db.Column(db.String(255))
|
||||||
@ -99,7 +97,6 @@ class UpdateHistory(db.Model):
|
|||||||
update_type = db.Column(db.String(50))
|
update_type = db.Column(db.String(50))
|
||||||
details = db.Column(db.Text)
|
details = db.Column(db.Text)
|
||||||
device = db.relationship('Device', backref='update_histories')
|
device = db.relationship('Device', backref='update_histories')
|
||||||
|
|
||||||
class Anomaly(db.Model):
|
class Anomaly(db.Model):
|
||||||
id = db.Column(db.Integer, primary_key=True)
|
id = db.Column(db.Integer, primary_key=True)
|
||||||
device_id = db.Column(db.Integer, db.ForeignKey('device.id'), nullable=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)
|
description = db.Column(db.Text)
|
||||||
resolved = db.Column(db.Boolean, default=False)
|
resolved = db.Column(db.Boolean, default=False)
|
||||||
device = db.relationship('Device', backref='anomalies')
|
device = db.relationship('Device', backref='anomalies')
|
||||||
|
|
||||||
class ChangelogEntry(db.Model):
|
class ChangelogEntry(db.Model):
|
||||||
id = db.Column(db.Integer, primary_key=True)
|
id = db.Column(db.Integer, primary_key=True)
|
||||||
version = db.Column(db.String(50), nullable=False)
|
version = db.Column(db.String(50), nullable=False)
|
||||||
@ -125,19 +121,16 @@ def load_user(user_id):
|
|||||||
return User.query.get(int(user_id))
|
return User.query.get(int(user_id))
|
||||||
|
|
||||||
# FUNKCJE POWIADOMIEŃ
|
# FUNKCJE POWIADOMIEŃ
|
||||||
|
|
||||||
def send_pushover_notification(user, message):
|
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:
|
if not user.settings or not user.settings.pushover_enabled or not user.settings.pushover_user_key or not user.settings.pushover_token:
|
||||||
return
|
return
|
||||||
data = {
|
data = {
|
||||||
"token": user.settings.pushover_token, # Używamy pushover_token z ustawień
|
"token": user.settings.pushover_token,
|
||||||
"user": user.settings.pushover_user_key,
|
"user": user.settings.pushover_user_key,
|
||||||
"message": message
|
"message": message
|
||||||
}
|
}
|
||||||
try:
|
try:
|
||||||
r = requests.post("https://api.pushover.net/1/messages.json", data=data)
|
r = requests.post("https://api.pushover.net/1/messages.json", data=data)
|
||||||
# Możesz dodać logowanie odpowiedzi, jeśli potrzebne
|
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
print("Błąd przy wysyłaniu powiadomienia Pushover:", e)
|
print("Błąd przy wysyłaniu powiadomienia Pushover:", e)
|
||||||
|
|
||||||
@ -168,8 +161,7 @@ def check_device_update(device):
|
|||||||
update_available = False
|
update_available = False
|
||||||
current_version = None
|
current_version = None
|
||||||
current_firmware = None
|
current_firmware = None
|
||||||
upgrade_firmware = None # Nowa zmienna
|
upgrade_firmware = None
|
||||||
|
|
||||||
try:
|
try:
|
||||||
app.logger.debug(f"Connecting to device {device.ip}:{device.port} using SSL: {device.use_ssl}, ssl_verify: {not device.ssl_insecure}")
|
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(
|
api = librouteros.connect(
|
||||||
@ -381,6 +373,18 @@ def get_release_type(version_text):
|
|||||||
else:
|
else:
|
||||||
return "stable"
|
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):
|
def fetch_changelogs(force=False):
|
||||||
changelog_url = "https://mikrotik.com/download/changelogs"
|
changelog_url = "https://mikrotik.com/download/changelogs"
|
||||||
current_date = datetime.utcnow()
|
current_date = datetime.utcnow()
|
||||||
@ -532,14 +536,6 @@ with app.app_context():
|
|||||||
scheduler.start()
|
scheduler.start()
|
||||||
|
|
||||||
# ROUTY APLIKACJI
|
# 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('/')
|
@app.route('/')
|
||||||
def index():
|
def index():
|
||||||
if current_user.is_authenticated:
|
if current_user.is_authenticated:
|
||||||
|
Loading…
x
Reference in New Issue
Block a user