Beispiel #1
0
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后台,但是没有设置推送地址!')
Beispiel #2
0
 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,
     }
Beispiel #3
0
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
Beispiel #4
0
 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
Beispiel #6
0
 def dict_row(self, inst):
     dc = sim_dict(inst.worker, exclude=['id', 'status', 'update_time'])
     dc.pop('pk')
     return dc
Beispiel #7
0
 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,
     }     
Beispiel #8
0
def get_worker_info(worker):
    worker_info = WorkInfo.objects.get(pk=worker)
    return sim_dict(worker_info)
Beispiel #9
0
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