def upload_richtexteditor_picture(request): uid = request.GET['uid'] request.user = User.objects.get(id=uid) if not request.user: raise RuntimeError('invalid user') title = request.POST['pictitle'] user_id = request.user.id file_name = request.POST['Filename'] #file_name = urllib.quote(file_name.encode('utf-8')).replace('%', '_').strip('_') file_name = __get_file_name(file_name) file = request.FILES.get('Filedata', None) content = [] if file: for chunk in file.chunks(): content.append(chunk) date = time.strftime('%Y%m%d') dir_path_suffix = '%d_%s' % (user_id, date) dir_path = os.path.join(settings.UPLOAD_DIR, dir_path_suffix) if not os.path.exists(dir_path): os.makedirs(dir_path) #file_name = '%s_%s' % (date, file_name) file_path = os.path.join(dir_path, file_name) dst_file = open(file_path, 'wb') print >> dst_file, ''.join(content) dst_file.close() url = '/static/upload/%s/%s' % (dir_path_suffix, file_name) if __validate_image(file_path): try: url = upload_image_to_upyun(file_path,'/upload/%s/%s' % (dir_path_suffix, file_name)) except: notify_msg = u"上传图片到又拍云时失败, cause:\n{}".format(unicode_full_stack()) watchdog_error(notify_msg) # response = JsonResponse() # response.state = "FAIL" # response.title = title # return response.get_response() response = JsonResponse() response.url = url response.state = "SUCCESS" response.title = title return response.get_response() else: response = JsonResponse() response.state = "FAIL" response.title = title return response.get_response()
def delete_session(request): session_id = request.GET['session_id'] Session.objects.filter(id=session_id).delete() response = JsonResponse() response.code = 200 return response.get_response()
def put(request): file = request.FILES.get('Filedata', None) #读取二进制内容 content = [] if file: for chunk in file.chunks(): content.append(chunk) #获取存储图片的目录和文件信息 file_name = RichTextImage.__get_file_name(file.name) store_dir = time.strftime('%Y%m%d') dir_path = os.path.join(settings.UPLOAD_DIR, store_dir) if not os.path.exists(dir_path): os.makedirs(dir_path) file_path = os.path.join(dir_path, file_name) #写图片文件内容 dst_file = open(file_path, 'wb') print >> dst_file, ''.join(content) dst_file.close() #保存图片信息到mysql中 image_path = '/static/upload/%s/%s' % (store_dir, file_name) image = models.Image.objects.create(user=request.user, path=image_path) response = JsonResponse() response.url = image_path response.state = "SUCCESS" response.title = file.name return response.get_response()
def get_operation_infos(request): secrect = request.GET.get('secrect', '') from_id = int(request.GET.get('from', 0)) if secrect == 'i@love*tiger(': result = JsonResponse() result.code = 200 result.operations = [] for message in Message.objects.filter(severity=WATCHDOG_OPERATION, id__gt=from_id): operation = JsonResponse() operation.id = message.id operation.message = message.message operation.create_time = message.create_time.strftime('%H:%M') result.operations.append(operation) return result.get_response() else: return HttpResponse('{"code":200, "result":"success"}', 'application/json')
def kuaidi_callback(request): """ 快递100 推送回调接口 """ response = JsonResponse() callback_id = request.GET.get('callbackid', -1) version = request.GET.get('version', '1') order = None if version == '2.0': express = express_models.ExpressHasOrderPushStatus.get(callback_id) else: order = mall_api.get_order_by_id(callback_id) express = express_models.ExpressHasOrderPushStatus.get_by_order(order) data = ExpressCallbackHandle(request, order, express).handle() # response.data = data # response.data['callback_id'] = callback_id # response.data['version'] = version for key,value in data.items(): response.__dict__[key] = value return response.get_response()
def get_sessions(request): response = JsonResponse() response.code = 200 response.data = JsonResponse() response.data.items = [] mpuser = get_system_user_binded_mpuser(request.user) if mpuser is None: return response.get_response() #获取当前页数 cur_page = int(request.GET.get('page', '1')) #获取每页个数 count = int(request.GET.get('count', COUNT_PER_PAGE)) is_debug = (request.GET.get('dbg', '0') == '1') #收藏记录 is_collected = request.GET.get('is_collected', '0') start_time = request.GET.get('start_time', '').strip() end_time = request.GET.get('end_time', '').strip() search_content = request.GET.get('search_content', '').strip() if is_debug: sessions = Session.objects.select_related().filter(mpuser=mpuser) else: sessions = Session.objects.select_related().filter(mpuser=mpuser, is_show=True) if start_time and end_time: start_time = '%s 0:0:0' % start_time end_time = '%s 23:59:59' % end_time sessions = sessions.filter(latest_contact_created_at__gte=start_time, latest_contact_created_at__lte=end_time) pageinfo, sessions = paginate(sessions, cur_page, count, query_string=request.META['QUERY_STRING']) #清空未读消息数量 RealTimeInfo.objects.filter(mpuser=mpuser).update(unread_count=0) webapp_id = request.user_profile.webapp_id weixin_user_usernames = [s.weixin_user_id for s in sessions] weixin_users = WeixinUser.objects.filter( username__in=weixin_user_usernames) username2weixin_user = dict([(u.username, u) for u in weixin_users]) # session2member = dict([(member_has_social_account.account.openid, member_has_social_account.member) for member_has_social_account \ # in MemberHasSocialAccount.objects.filter()]) for session in sessions: weixin_user = username2weixin_user[session.weixin_user_id] one_session = JsonResponse() one_session.id = session.id one_session.session_id = session.id one_session.sender_fake_id = weixin_user.fake_id one_session.sender_username = weixin_user.username one_session.sender_name = weixin_user.nickname_for_html if weixin_user.weixin_user_icon: one_session.weixin_user_icon = weixin_user.weixin_user_icon if len( weixin_user.weixin_user_icon.strip()) > 0 else DEFAULT_ICON else: one_session.weixin_user_icon = DEFAULT_ICON one_session.content = emotion.change_emotion_to_img( session.latest_contact_content) one_session.created_at = __format_datetime( session.latest_contact_created_at) one_session.unread_count = session.unread_count one_session.message_id = session.message_id one_session.is_collected = CollectMessage.is_collected( session.message_id) one_session.for_collected = False one_session.hidden_a = False try: if session.message_id != 0: message = Message.objects.get(id=session.message_id) one_session.message_type = message.message_type one_session.pic_url = message.pic_url one_session.audio_url = message.audio_url else: one_session.message_type = 'text' one_session.pic_url = '' one_session.audio_url = '' except: one_session.message_type = 'text' one_session.pic_url = '' one_session.audio_url = '' one_session.is_subscribed = is_subscribed(weixin_user) one_session.is_active = True if datetime.now( ) < session.latest_contact_created_at + timedelta( hours=EXPIRED_TIME) and datetime.now( ) > session.latest_contact_created_at else False try: account = SocialAccount.objects.get(webapp_id=webapp_id, openid=weixin_user.username) member = MemberHasSocialAccount.objects.filter( account=account)[0].member #member = session2member[session.weixin_user_id] if member: one_session.member_id = member.id one_session.member_remarks_name = member.remarks_name if member.user_icon and len(member.user_icon.strip()) > 0: one_session.weixin_user_icon = member.user_icon if member.username_for_html: one_session.sender_name = member.username_for_html except: notify_message = u"设置会话信息失败, weixin_user_openid:{}, webapp_id:{},cause:\n{}".format( session.weixin_user_id, webapp_id, unicode_full_stack()) watchdog_notice(notify_message) continue response.data.items.append(one_session) response.data.page_info = __package_pageinfo(pageinfo) return response.get_response()
def get_messages(request): response = JsonResponse() response.code = 200 response.data = JsonResponse() response.data.items = [] mpuser = get_system_user_binded_mpuser(request.user) if mpuser is None: return response.get_response() #获取当前页数 cur_page = int(request.GET.get('page', '1')) #获取每页个数 count = int(request.GET.get('count', COUNT_PER_PAGE)) is_debug = (request.GET.get('dbg', '0') == '1') is_collected = request.GET.get('is_collected', '') search_content = request.GET.get('search_content', '') if is_collected: collected_message_ids = CollectMessage.get_message_ids(request.user) ordering = 'FIELD(`id`, %s)' % ','.join( str(id) for id in collected_message_ids) messages = Message.objects.filter(id__in=collected_message_ids).extra( select={'ordering': ordering}, order_by=('ordering', )) elif search_content: data_before_tow_days = dateutil.get_previous_date('today', 2) messages = Message.objects.belong_to(request.user_profile.webapp_id, mpuser, search_content) else: messages = [] pageinfo, messages = paginate(messages, cur_page, count, query_string=request.META['QUERY_STRING']) webapp_id = request.user_profile.webapp_id for message in messages: weixin_user = message.session.weixin_user one_session = JsonResponse() one_session.id = message.id one_session.session_id = message.session.id one_session.sender_fake_id = weixin_user.fake_id one_session.sender_username = weixin_user.username one_session.sender_name = weixin_user.nickname_for_html if weixin_user.weixin_user_icon: one_session.weixin_user_icon = weixin_user.weixin_user_icon if len( weixin_user.weixin_user_icon.strip()) > 0 else DEFAULT_ICON else: one_session.weixin_user_icon = DEFAULT_ICON one_session.content = emotion.change_emotion_to_img(message.content) one_session.is_active = True if datetime.now( ) < message.created_at + timedelta( hours=EXPIRED_TIME) and datetime.now( ) > message.created_at else False if is_collected: one_session.is_active = False try: collect_message = CollectMessage.objects.get( message_id=message.id) one_session.created_at = __format_datetime( collect_message.created_at) except: one_session.created_at = __format_datetime(message.created_at) else: one_session.created_at = __format_datetime(message.created_at) one_session.message_id = message.id one_session.is_collected = CollectMessage.is_collected(message.id) one_session.message_type = message.message_type one_session.pic_url = message.pic_url one_session.audio_url = message.audio_url one_session.for_collected = is_collected one_session.hidden_a = True if message.message_type == IMAGE: one_session.content = message.pic_url if message.message_type == VOICE: one_session.content = message.audio_url one_session.is_subscribed = is_subscribed(weixin_user) try: account = SocialAccount.objects.get(webapp_id=webapp_id, openid=weixin_user.username) member = MemberHasSocialAccount.objects.filter( account=account)[0].member #member = session2member[session.weixin_user_id] if member: one_session.member_id = member.id one_session.member_remarks_name = member.remarks_name if member.user_icon and len(member.user_icon.strip()) > 0: one_session.weixin_user_icon = member.user_icon if member.username_for_html: one_session.sender_name = member.username_for_html except: notify_message = u"设置会话信息失败, weixin_user_openid:{}, cause:\n{}".format( session.weixin_user_id, unicode_full_stack()) watchdog_notice(notify_message) continue response.data.items.append(one_session) response.data.page_info = __package_pageinfo(pageinfo) return response.get_response()