#!/usr/bin/env python3 # -*- coding: utf-8 -*- """ @Copyright (C) ansjer cop Video Technology Co.,Ltd.All rights reserved. @AUTHOR: ASJRD018 @NAME: AnsjerFormal @software: PyCharm @DATE: 2019/1/14 15:57 @Version: python3.6 @MODIFY DECORD:ansjer dev @file: DetectController.py @Contact: chanjunkai@163.com """ from django.utils.decorators import method_decorator from django.views.decorators.csrf import csrf_exempt from django.views.generic.base import View import time import apns2 from Object.ResponseObject import ResponseObject import os from Ansjer.config import BASE_DIR class DetectControllerView(View): @method_decorator(csrf_exempt) def dispatch(self, *args, **kwargs): return super(DetectControllerView, self).dispatch(*args, **kwargs) def get(self, request, *args, **kwargs): request.encoding = 'utf-8' operation = kwargs.get('operation') return self.validation(request.GET, request, operation) def post(self, request, *args, **kwargs): request.encoding = 'utf-8' operation = kwargs.get('operation') return self.validation(request.POST, request, operation) def validation(self, request_dict, request, operation): response = ResponseObject() if operation is None: return response.json(444, 'error path') if operation == 'push': return self.do_push(request_dict, response) def do_push(self, request_dict, response): device_token = request_dict.get('device_token') try: daytime = time.strftime("%Y%m%d%H%M", time.localtime(1547256103)) print(daytime) pem_path = os.path.join(BASE_DIR, 'Ansjer/file/apns-dev.pem') cli = apns2.APNSClient(mode="dev", client_cert=pem_path, password='111111') alert = apns2.PayloadAlert(body="body!", title="title!") payload = apns2.Payload(alert=alert) n = apns2.Notification(payload=payload, priority=apns2.PRIORITY_LOW) res = cli.push(n=n, device_token=device_token, topic='com.ansjer.zsavcloud') # assert res.status_code == 200, res.reason # assert res.apns_id if res.status_code == 200: return response.json(0) else: return response.json(404, res.reason) except Exception as e: return response.json(10, repr(e))