mirror of
https://github.com/eduardogsilva/wireguard_webadmin.git
synced 2025-07-24 12:54:37 +02:00
Update check
This commit is contained in:
parent
578f7a63f9
commit
03a9c12696
24 changed files with 349 additions and 16 deletions
40
api/views.py
40
api/views.py
|
@ -1,8 +1,13 @@
|
|||
from django.http import JsonResponse
|
||||
from django.views.decorators.http import require_http_methods
|
||||
from django.contrib.auth.decorators import login_required
|
||||
from django.conf import settings
|
||||
from django.utils import timezone
|
||||
from wireguard.models import WebadminSettings
|
||||
import requests
|
||||
import subprocess
|
||||
|
||||
|
||||
@login_required
|
||||
@require_http_methods(["GET"])
|
||||
def wireguard_status(request):
|
||||
|
@ -53,3 +58,38 @@ def wireguard_status(request):
|
|||
output[interface][peer][key] = value
|
||||
|
||||
return JsonResponse(output)
|
||||
|
||||
|
||||
def cron_check_updates(request):
|
||||
webadmin_settings, webadmin_settings_created = WebadminSettings.objects.get_or_create(name='webadmin_settings')
|
||||
|
||||
if webadmin_settings.last_checked is None or timezone.now() - webadmin_settings.last_checked > timezone.timedelta(hours=6):
|
||||
try:
|
||||
version = settings.WIREGUARD_WEBADMIN_VERSION / 10000
|
||||
url = f'https://updates.eth0.com.br/api/check_updates/?app=wireguard_webadmin&version={version}'
|
||||
response = requests.get(url)
|
||||
response.raise_for_status()
|
||||
data = response.json()
|
||||
|
||||
if 'update_available' in data:
|
||||
webadmin_settings.update_available = data['update_available']
|
||||
|
||||
if data['update_available']:
|
||||
webadmin_settings.latest_version = float(data['current_version']) * 10000
|
||||
|
||||
webadmin_settings.last_checked = timezone.now()
|
||||
webadmin_settings.save()
|
||||
|
||||
response_data = {
|
||||
'update_available': webadmin_settings.update_available,
|
||||
'latest_version': webadmin_settings.latest_version,
|
||||
'current_version': settings.WIREGUARD_WEBADMIN_VERSION,
|
||||
}
|
||||
return JsonResponse(response_data)
|
||||
|
||||
except Exception as e:
|
||||
webadmin_settings.update_available = False
|
||||
webadmin_settings.save()
|
||||
return JsonResponse({'update_available': False})
|
||||
|
||||
return JsonResponse({'update_available': webadmin_settings.update_available})
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue