#!/usr/bin/env python3 # -*- coding: utf-8 -*- """ """ import json import time import requests from django.views.generic import TemplateView from django.shortcuts import render_to_response from django.http import JsonResponse from object.ResObject import ResObject import subprocess # from gevent.pool import Pool from model.models import UserModel,UidRtspModel from object.tkObject import tkObject from service.CommonService import CommonService from object.RedisObject import RedisObject rtspServer = "rtsp.zositech.org,3.16.66.144" class selectConnectNum(TemplateView): def post(self, request, *args, **kwargs): request.encoding = 'utf-8' request_dict = json.loads(request.body.decode('utf-8')) return self.select(request_dict) def get(self, request, *args, **kwargs): request.encoding = 'utf-8' request_dict = request.GET return self.select(request_dict) # def select(self, request_dict): # uid = 'xixixixiixixixixix' # response = ResObject() # redisObj = RedisObject(db=1) # rtko = tkObject(rank=1) # rtsp_stream = rtko.encrypt(data=uid) # res = redisObj.z_revrange('url') # url = res[0] # rtspUrl = str(url) + rtsp_stream # return response.json(0, res=rtspUrl) def select(self, request_dict): response = ResObject() redisObj = RedisObject(db=1) urls = rtspServer.split(',') httpPrefix = 'http://' rtspPrefix = 'rtsp://' postfix = ':10008/api/v1/pushers' redisdata=[] for url in urls: res = redisObj.get_data(url) redisdata.append(res) return JsonResponse({'msg': redisdata, 'code': 0}) class storageConnectNum(TemplateView): def post(self, request, *args, **kwargs): request.encoding = 'utf-8' request_dict = json.loads(request.body.decode('utf-8')) return self.storage(request_dict) def get(self, request, *args, **kwargs): request.encoding = 'utf-8' request_dict = request.GET return self.storage(request_dict) def storage(self, request_dict): response = ResObject() redisObj = RedisObject(db=1) urls = rtspServer.split(',') httpPrefix = 'http://' # rtspPrefix = 'rtsp://' postfix = ':10008/api/v1/pushers' for url in urls: apiUrl = httpPrefix + url + postfix try: selectRtsp = requests.get(url=apiUrl, timeout=5) connectNum = selectRtsp.json()['total'] except Exception as e: connectNum = -1 redisObj.set_data(url, connectNum) return response.json(0, res={'connectNum':connectNum})