def push_callrecord(channel): general_log.debug('channel=%s 拨打结束,准备数据推送给app后台'%channel) url = get_json('cfg_push_call_record') record = CallRecord.objects.get(channel=channel) dc = sim_dict(record) event = [] resource ={ 'captions':[], 'recording':[], 'recording_timestamp':[], } for item in record.callevent_set.all().exclude(code =3): #for item in CallEvent.objects.filter(channel=channel).exclude(code =3): item_dc = sim_dict(item) for k,v in dict(item_dc).items(): if k.startswith('_'): item_dc.pop(k) event.append(item_dc) dc['event'] = event for item in record.callevent_set.filter(code=3): #for item in CallEvent.objects.filter(code=3): caption_dc = {'userid':item.uid,'kind_label':'字幕',} caption_dc.update( json.loads(item.desp) ) resource['captions'].append(caption_dc) path = os.path.join( settings.RECORD.get('tone_dir'),record.channel) if os.path.exists(path): root_url = urllib.parse.urljoin(settings.RECORD.get('tone_url'),channel) +'/' for fl in os.listdir(path): fl_url = urllib.parse.urljoin(root_url,fl) if fl.endswith('.aac') : resource['recording'].append( {'userid':0,'kind_label':'录音','content':fl_url,} ) elif fl.endswith('.txt') and fl.startswith('uid_'): resource['recording_timestamp'].append( {'userid':0,'kind_label':'录音时间戳','content':fl_url} ) # 甲方要求,只取第一个 general_log.debug('channel = %s读取到资源文件:%s'% (channel,resource,)) resource['recording'] = resource ['recording'][:1] resource['recording_timestamp'] = resource ['recording_timestamp'][:1] if resource['recording']: record.record_file = resource['recording'][0]['content'] record.save() dc['resource'] = resource if url: general_log.debug('推送数据:%s'%json.dumps( {'callrecord':dc} ,ensure_ascii=False ) ) rt = requests.post(url,json= {'callrecord':dc}) general_log.info('推送拨打记录给app后台,返回状态码%s,返回结果%s'%(rt.status_code,rt.text)) else: general_log.info('推送拨打记录给app后台,但是没有设置推送地址!')
def extraCtx(self): map_points = [sim_dict(x) for x in MapPoint.objects.all()] area = [sim_dict(x) for x in Area.objects.all()] page_item_list = [sim_dict(x) for x in MainPageItem.objects.all()] image_list = [sim_dict(x) for x in PageImages.objects.all()] return { 'map_points': map_points, 'area_list': area, 'page_item_list': page_item_list, 'image_list': image_list, }
def get_palette(): rows = [] for inst in Palette.objects.all(): dc={ 'colors':json.loads(inst.colors) if inst.colors else [] } rows.append(sim_dict(inst,filt_attr=dc)) return rows
def extraCtx(self): wd = self.request.GET.get('kwd') exp = Q(title__icontains = wd) exp = exp | Q(sub_title__icontains = wd) yewus = [sim_dict(x) for x in Yewu.objects.filter(exp)] return { 'yewus': yewus, 'extend_menu': False, }
def get_voice_msg(uid): '''{"doc":"api/user.md"} ### 获取用户的最近语音消息 最近2分钟内的语音消息 ''' now = timezone.now() rows = [] for item in VoiceMsgList.objects.filter( uid=uid, status=0, createtime__gte=(now - timezone.timedelta(minutes=2))): rows.append(sim_dict(item)) return rows
def dict_row(self, inst): dc = sim_dict(inst.worker, exclude=['id', 'status', 'update_time']) dc.pop('pk') return dc
def extraCtx(self): pageitems = [sim_dict(x) for x in ZhanRich.objects.filter(page = 'manual').order_by('-priority', '-pk')] return { 'crt_page_name':'manual', 'pageitems': pageitems, }
def get_worker_info(worker): worker_info = WorkInfo.objects.get(pk=worker) return sim_dict(worker_info)
def get_imageinfo(id): inst = SourceImage.objects.get(pk=id) return sim_dict(inst)
def get_imagegroup_list(): out = [sim_dict(x) for x in ImageGroup.objects.filter(status=1)] return out