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:
|
||||
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:
|
||||
|
Loading…
x
Reference in New Issue
Block a user