def get(self, request, *args, **kwargs): cast_url = request.GET['castUrl'] if 'castUrl' in request.GET else '' if cast_url != '': cast_url = unquote(cast_url, 'utf-8') friendly_name = request.GET[ 'device'] if 'device' in request.GET else '' file_suffix = cast_url.lower().split('.')[-1] is_picture = (file_suffix in ['jpg', 'jpeg', 'png', 'gif']) if friendly_name == '' and is_picture: device = SSDP.get_one_by_manufacturer('Xiaomi') else: device = SSDP.get_one_by_friendly_name(friendly_name) if device is not None: try: meta_data = didl_meta_data(cast_url) if is_picture else '' device.AVTransport.SetAVTransportURI( InstanceID=0, CurrentURI=cast_url, CurrentURIMetaData=meta_data) data = {'code': 0} except: log.error(_('DLNA Device offline.')) data = {'code': -3, 'msg': _('DLNA Device offline.')} else: log.error(_('DLNA Device not found.')) data = {'code': -2, 'msg': _('DLNA Device not found.')} else: log.error(_('Cast Url is blank.')) data = {'code': -1, 'msg': _('Cast Url is blank.')} response = JSONResponse(data, mimetype=response_mimetype(self.request)) response['Content-Disposition'] = 'inline; filename=result.json' return response
def render_to_response(self, context, **response_kwargs): album_list = self.get_queryset().order_by('id').reverse() albums = [{'id': album.id, 'name': album.name} for album in album_list] data = {'albums': albums} response = JSONResponse(data, mimetype=response_mimetype(self.request)) response['Content-Disposition'] = 'inline; filename=albums.json' return response
def render_to_response(self, context, **response_kwargs): video_list = self.get_queryset().order_by('id').reverse() files = [serialize(video) for video in video_list] data = {'files': files} response = JSONResponse(data, mimetype=response_mimetype(self.request)) response['Content-Disposition'] = 'inline; filename=files.json' return response
def form_valid(self, form): self.object = form.save() self.join_album(form) self.pic_process() files = [serialize(self.object)] data = {'files': files} response = JSONResponse(data, mimetype=response_mimetype(self.request)) response['Content-Disposition'] = 'inline; filename=files.json' return response
def delete(self, request, *args, **kwargs): self.object = self.get_object() assert self.object.type in ['video', 'picture'], 'media.type invalid.' if self.object.type == 'picture': self.object.picture.delete() elif self.object.type == 'video': self.object.video.delete() response = JSONResponse(True, mimetype=response_mimetype(request)) response['Content-Disposition'] = 'inline; filename=result.json' return response
def render_to_response(self, context, **response_kwargs): video_list = self.get_queryset() total_count, per_page_count, page_count = cal_page_count(video_list) data = { 'total_count': total_count, 'per_page_count': per_page_count, 'page_count': page_count } response = JSONResponse(data, mimetype=response_mimetype(self.request)) response['Content-Disposition'] = 'inline; filename=paginfo.json' return response
def delete(self, request, *args, **kwargs): self.object = self.get_object() viedo_fp = os.path.join(self.object.file.storage.base_location, self.object.file.name) m3u8_dir = viedo_fp.split('.')[0] if os.path.exists(m3u8_dir): shutil.rmtree(m3u8_dir) self.object.delete() response = JSONResponse(True, mimetype=response_mimetype(request)) response['Content-Disposition'] = 'inline; filename=result.json' return response
def form_valid(self, form): self.object = form.save() self.join_album(form) video_fp, video_dir = VideoUploadView.mk_video_dir(self.object) self.hls_process(video_fp, video_dir) self.poster_process(video_fp, video_dir) self.video_info_process() files = [serialize(self.object)] data = {'files': files} response = JSONResponse(data, mimetype=response_mimetype(self.request)) response['Content-Disposition'] = 'inline; filename=files.json' return response
def debug(request): switch = request.GET.get('switch') client_ip = get_client_ip(request) if switch is not None and switch == 'toggle': if client_ip in settings.INTERNAL_IPS: settings.INTERNAL_IPS.remove(client_ip) else: settings.INTERNAL_IPS.append(client_ip) return JSONResponse( { 'code': 0, 'isDebug': client_ip in settings.INTERNAL_IPS }, mimetype=response_mimetype(request))
def render_to_response(self, context, **response_kwargs): page = int(self.request.GET.get('page', 1)) if page <= 0: page = 1 video_list = self.get_queryset().order_by('id').reverse() total_count, per_page_count, page_count = cal_page_count(video_list) if page > page_count: page = 1 cur_page_start = (page - 1) * per_page_count cur_page_end = np.minimum(page * per_page_count, total_count) files = [ serialize(video) for video in video_list[cur_page_start:cur_page_end] ] data = {'files': files, 'page': page} response = JSONResponse(data, mimetype=response_mimetype(self.request)) response['Content-Disposition'] = 'inline; filename=pagidata.json' return response
def delete(self, request, *args, **kwargs): album = self.get_object() media_list = Media.objects.filter(album_id=album.id) picture_ids = [] video_ids = [] for media in media_list: assert media.type in ['video', 'picture'], 'media.type invalid.' if media.type == 'picture': # media.picture.delete() picture_ids.append(media.picture_id) elif media.type == 'video': # media.video.delete() video_ids.append(media.video_id) # first delete medias media_list.delete() # then delete pictures and videos Picture.objects.filter(id__in=picture_ids).delete() Video.objects.filter(id__in=video_ids).delete() # last delete album album.delete() response = JSONResponse(True, mimetype=response_mimetype(request)) response['Content-Disposition'] = 'inline; filename=result.json' return response
def render_to_response(self, context, **response_kwargs): page = int(self.request.GET.get('page', 1)) if page <= 0: page = 1 album = self.get_object() media_list = Media.objects.filter( album_id=album.id).order_by('id').reverse() total_count, per_page_count, page_count = cal_page_count( media_list, per_page_count=8) if page > page_count: medias = [] else: cur_page_start = (page - 1) * per_page_count cur_page_end = np.minimum(page * per_page_count, total_count) medias = [ serialize(media) for media in media_list[cur_page_start:cur_page_end] ] data = {'medias': medias, 'pageCount': page_count} response = JSONResponse(data, mimetype=response_mimetype(self.request)) response[ 'Content-Disposition'] = 'inline; filename=media-more-data.json' return response
def get(self, request, *args, **kwargs): data = {'devices': SSDP.get_devices()} response = JSONResponse(data, mimetype=response_mimetype(self.request)) response['Content-Disposition'] = 'inline; filename=devices.json' return response
def form_valid(self, form): self.object = form.save() data = {'code': 0} response = JSONResponse(data, mimetype=response_mimetype(self.request)) response['Content-Disposition'] = 'inline; filename=reslut.json' return response
def delete(self, request, *args, **kwargs): self.object = self.get_object() self.object.delete() response = JSONResponse(True, mimetype=response_mimetype(request)) response['Content-Disposition'] = 'inline; filename=result.json' return response