Miroca_Server
This commit is contained in:
56
upanel/views.py
Normal file
56
upanel/views.py
Normal file
@@ -0,0 +1,56 @@
|
||||
import json
|
||||
from django.contrib.auth import get_user_model
|
||||
from routeros_api.exceptions import RouterOsApiConnectionError
|
||||
|
||||
# from synology_api.exceptions import JSONDecodeError
|
||||
User = get_user_model()
|
||||
import os, requests,re
|
||||
from django.shortcuts import render, redirect
|
||||
from django.http import JsonResponse
|
||||
from django.contrib.auth.decorators import login_required
|
||||
from .logout import logout_view
|
||||
from upanel.models import *
|
||||
import routeros_api
|
||||
import datetime
|
||||
|
||||
|
||||
@login_required(login_url='/login/')
|
||||
def connect(request):
|
||||
try:
|
||||
hosts = User.objects.values('ipaddress').distinct()[0]
|
||||
connection = routeros_api.RouterOsApiPool(hosts['ipaddress'], username='api', password='cbvgcjy0',
|
||||
plaintext_login=True)
|
||||
api = connection.get_api()
|
||||
ping=api.get_binary_resource('/').call('ping', {'address': str.encode(hosts['ipaddress']), 'count': b'2'}) #блять тут надо перевести в байт str.encode
|
||||
return JsonResponse({'ethernet': bytes.decode(max([i['time'] for i in ping]))})
|
||||
except RouterOsApiConnectionError as e:
|
||||
return JsonResponse({'ethernet': 'false'})
|
||||
|
||||
|
||||
# def server_smart(request):
|
||||
# month_int = sorted([int(datetime.datetime.now().strftime('%m'))-i for i in range(6)])
|
||||
# pattern = r'\+\d{2}+\.\d+'
|
||||
# return JsonResponse({'month':list(Month.objects.using('miroca').filter(id__in=month_int).order_by('id').values_list('name', flat=True)),
|
||||
# 'smart_server_temp':max(map(float,re.findall(pattern, os.popen('sensors').read())))})
|
||||
|
||||
|
||||
# # @login_required(login_url='/login/')
|
||||
# # @logout_view
|
||||
# def greenhouse(request):
|
||||
# connect_timeout = 18
|
||||
# read_timeout = 30
|
||||
# host_name_green = Hostname.objects.values('area')[0]['area']
|
||||
# try:
|
||||
# response = requests.get("http://" + host_name_green, timeout=(connect_timeout, read_timeout))
|
||||
# return JsonResponse(response.json() | {'host_name_green':host_name_green})
|
||||
# except Exception as e:
|
||||
# return JsonResponse({'temp': [' ', ' '], 'sensor_lend_web': [' '], 'host_name_green':host_name_green})
|
||||
|
||||
|
||||
@login_required(login_url='/login/')
|
||||
@logout_view
|
||||
def home(request):
|
||||
user = User.objects.get(id=request.user.id)
|
||||
return render(request, 'upanel/upanel/index.html',# {'user': user, 'temp': res['temp'][0], 'damp': res['sensor_lend_web'][0]}
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user