From dda9b4ba5ab7120b2415fec715ba3a75de57c9ab Mon Sep 17 00:00:00 2001 From: A B Date: Sat, 26 Oct 2024 23:36:18 +0000 Subject: [PATCH] Added keys count on outline page. --- mysite/urls.py | 3 ++- vpn/admin.py | 1 - vpn/server_plugins/outline.py | 2 ++ vpn/views.py | 8 ++++++++ 4 files changed, 12 insertions(+), 2 deletions(-) diff --git a/mysite/urls.py b/mysite/urls.py index 32a1951..2a93aab 100644 --- a/mysite/urls.py +++ b/mysite/urls.py @@ -17,11 +17,12 @@ Including another URLconf from django.contrib import admin from django.urls import path, include from django.views.generic import RedirectView -from vpn.views import shadowsocks +from vpn.views import shadowsocks, print_headers urlpatterns = [ path('admin/', admin.site.urls), path('ss/', shadowsocks, name='shadowsocks'), path('dynamic/', shadowsocks, name='shadowsocks'), + path('headers/', print_headers, name='print_headers'), path('', RedirectView.as_view(url='/admin/', permanent=False)), ] \ No newline at end of file diff --git a/vpn/admin.py b/vpn/admin.py index 1b3b307..e6bf4c4 100644 --- a/vpn/admin.py +++ b/vpn/admin.py @@ -33,7 +33,6 @@ class ServerAdmin(PolymorphicParentModelAdmin): status = obj.get_server_status() if 'error' in status: return mark_safe(f"Error: {status['error']}") - # Преобразуем JSON в красивый формат import json pretty_status = ", ".join(f"{key}: {value}" for key, value in status.items()) return mark_safe(f"
{pretty_status}
") diff --git a/vpn/server_plugins/outline.py b/vpn/server_plugins/outline.py index b57f8de..6b0d299 100644 --- a/vpn/server_plugins/outline.py +++ b/vpn/server_plugins/outline.py @@ -73,7 +73,9 @@ class OutlineServer(Server): if raw: status = info else: + keys = self.client.get_keys() status.update(info) + status.update({"keys": len(keys)}) except Exception as e: status.update({f"error": e}) return status diff --git a/vpn/views.py b/vpn/views.py index 2744bf5..15c6651 100644 --- a/vpn/views.py +++ b/vpn/views.py @@ -1,6 +1,14 @@ from django.shortcuts import get_object_or_404 from django.http import JsonResponse +from django.http import HttpResponse +def print_headers(request): + headers = {key: value for key, value in request.META.items() if key.startswith('HTTP_')} + + for key, value in headers.items(): + print(f'{key}: {value}') + + return HttpResponse(f"Headers: {headers}") def shadowsocks(request, link): from .models import ACL