2024-04-04 14:25:16 -03:00
|
|
|
from django.shortcuts import render, Http404
|
|
|
|
from .models import WebadminSettings
|
|
|
|
from django.http import JsonResponse
|
|
|
|
from django.conf import settings
|
|
|
|
from django.utils import timezone
|
|
|
|
import requests
|
|
|
|
|
|
|
|
|
|
|
|
def cron_check_updates(request):
|
|
|
|
webadmin_settings, webadmin_settings_created = WebadminSettings.objects.get_or_create(name='webadmin_settings')
|
2024-04-05 22:11:08 -03:00
|
|
|
webadmin_settings.cron_last_run = timezone.now()
|
|
|
|
webadmin_settings.save()
|
2024-04-04 14:25:16 -03:00
|
|
|
|
|
|
|
if webadmin_settings.last_checked is None or timezone.now() - webadmin_settings.last_checked > timezone.timedelta(
|
|
|
|
hours=1):
|
|
|
|
try:
|
|
|
|
version = settings.ROUTERFLEET_VERSION / 10000
|
|
|
|
url = f'https://updates.eth0.com.br/api/check_updates/?app=routerfleet&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.ROUTERFLEET_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})
|