浏览代码

fix:配置文件过期时间恢复

chenjunkai 6 年之前
父节点
当前提交
9399fea624
共有 3 个文件被更改,包括 43 次插入2 次删除
  1. 1 1
      Ansjer/config.py
  2. 0 1
      Ansjer/urls.py
  3. 42 0
      Controller/CloudVod.py

+ 1 - 1
Ansjer/config.py

@@ -32,7 +32,7 @@ OAUTH_ACCESS_TOKEN_SECRET = 'a+jbgnw%@1%zy^=@dn62%'
 OAUTH_REFRESH_TOKEN_SECRET = 'r+jbgnw%@1%zy^=@dn62%'
 # access_token超时
 # OAUTH_ACCESS_TOKEN_TIME = datetime.timedelta(hours=1)
-OAUTH_ACCESS_TOKEN_TIME = datetime.timedelta(days=700)
+OAUTH_ACCESS_TOKEN_TIME = datetime.timedelta(days=7)
 # refresh_token超时
 OAUTH_REFRESH_TOKEN_TIME = datetime.timedelta(days=7)
 # 腾讯验证,短信发送

+ 0 - 1
Ansjer/urls.py

@@ -77,7 +77,6 @@ urlpatterns = [
     url(r'^device/updateIP$', EquipmentStatus.updateIP),
     # 系统ctr
     url(r'^sys/updateLog', SysManage.updateLog),
-    # 设备日志
     url(r'^devices/(\w+)/logs$', DeviceLog.DeviceLog),
     url(r'^devices/(\w+)$', DeviceManage.Devices),
     # 访问日志 mongodb版

+ 42 - 0
Controller/CloudVod.py

@@ -111,6 +111,8 @@ class CloudVodView(View):
                 return self.do_get_playlist(request_dict, userID, response)
             elif operation == 'details':
                 return self.do_get_details(request_dict, response)
+            elif operation == 'queryVod':
+                return self.do_query_vod(request_dict,userID, response)
             else:
                 return response.json(414)
 
@@ -560,3 +562,43 @@ class CloudVodView(View):
                                     params={'x-oss-process': 'video/snapshot,t_10000,m_fast,w_300'})
             vod_play_list.append({'name': vod['time'], 'sign_url': vod_play_url, 'thumb': thumb, 'sec': vod['sec']})
         return response.json(0, vod_play_list)
+
+    def do_query_vod(self, request_dict, userID, response):
+        page = request_dict.get('page', None)
+        line = request_dict.get('line', None)
+        did = request_dict.get('did', None)
+        channel = request_dict.get('channel', None)
+        dvqs = Device_Info.objects.filter(id=did, userID_id=userID, isShare=False).values("UID")
+        if not dvqs.exists():
+            return response.json(12)
+        UID = dvqs[0]["UID"]
+        ubqs = UID_Bucket.objects.filter(uid=UID, channel=channel).values('status')
+        if not ubqs.exists():
+            return response.json(10, '设备未购买')
+        nowTime = CommonService.get_utc()
+        vodqs = VodHlsModel.objects.filter(uid=UID, channel=channel, endTime__gte=nowTime) \
+            .values("time", "sec", "bucket__bucket", "bucket__endpoint", "bucket__region")
+        vod_play_list = []
+        # print(vodqs)
+        page = int(page)
+        line = int(line)
+        for vod in vodqs[(page - 1) * line:page * line]:
+            bucket_name = vod["bucket__bucket"]
+            endpoint = vod["bucket__endpoint"]
+            auth = oss2.Auth(OSS_STS_ACCESS_KEY, OSS_STS_ACCESS_SECRET)
+            bucket = oss2.Bucket(auth, endpoint, bucket_name)
+            daytime = time.strftime("%Y%m%d%H", time.localtime(vod['time']))
+            m3u8 = '{uid}/vod{channel}/{daytime}/{time}/{time}.m3u8'. \
+                format(uid=UID, channel=channel, daytime=daytime, time=vod['time'])
+            ts = '{uid}/vod{channel}/{daytime}/{time}/ts0.ts'. \
+                format(uid=UID, channel=channel, daytime=daytime, time=vod['time'])
+            url = bucket.sign_url('GET', m3u8, 3600, params={'x-oss-process': 'hls/sign'})
+            urllst = url.split('?')
+            url_start = urllib.parse.unquote(urllst[0])
+            url_end = urllst[1]
+            vod_play_url = '{url_start}?{url_end}'. \
+                format(url_start=url_start, url_end=url_end)
+            thumb = bucket.sign_url('GET', ts, 3600,
+                                    params={'x-oss-process': 'video/snapshot,t_10000,m_fast,w_300'})
+            vod_play_list.append({'name': vod['time'], 'sign_url': vod_play_url, 'thumb': thumb, 'sec': vod['sec']})
+        return response.json(0, vod_play_list)