def refresh_status_by_site(request): if request.is_ajax(): json_data = json.loads(request.body) try: site_type = json_data['site_type'] except KeyError: return HttpResponse(False) user = request.user flr_list = Follower.objects.filter(user=user) if site_type == 'twitter': act_list = [] since_id = json_data.get('since_id', None) for flr in flr_list: try: act_list.append(TwAccount.objects.get(follower=flr)) except TwAccount.DoesNotExist: pass status_list = TwStatusView.refresh_status(act_list, since_id) return JsonResponse({'status_list': status_list}) elif site_type == 'quora': act_list = [] for flr in flr_list: try: act_list.append(QrAccount.objects.get(follower=flr)) except QrAccount.DoesNotExist: pass status_list = QrStatusView.refresh_status(act_list) return JsonResponse({'status_list': status_list}) raise Http404
def refresh_status_by_flr(request): if request.is_ajax(): json_data = json.loads(request.body) try: flr_name = json_data['flr_name'] except KeyError: return HttpResponse(False) lt_st_time = json_data.get('lt_st_time', None) status_list = [] try: tw_account = TwAccount.objects.get(follower__name=flr_name) status_list.extend(TwStatusView.refresh_status([tw_account, ])) except TwAccount.DoesNotExist: pass try: qr_account = QrAccount.objects.get(follower__name=flr_name) status_list.extend(QrStatusView.refresh_status([qr_account, ])) except QrAccount.DoesNotExist: pass sorted_status_list = sorted(status_list, key=lambda status: status['time_stamp'], reverse=True) if lt_st_time: raw_struct_time = time.strptime(lt_st_time, '%Y-%m-%d %H:%M:%S') lt_st_time_epoch = time.mktime(raw_struct_time) sorted_status_list = filter(time_filter_wrapper(lt_st_time_epoch), sorted_status_list) elif len(sorted_status_list) > 10: sorted_status_list = sorted_status_list[:10] # sorted_status_list = sorted(status_list, key=lambda tw_status: tw_status['id'], cmp=status_cmp) return JsonResponse({'status_list': sorted_status_list}) raise Http404
def test_refresh_status(self): self.set_up() follower = Follower(name='testFollower', user=self.user) follower.save() tw_account = TwAccount(follower=follower, act_id='3991423984', screen_name='charleszhuochen') tw_account.save() tw_account_list = [tw_account, ] since_id = None status_list = TwStatusView.refresh_status(tw_account_list, since_id) print(status_list[0]['created_at']) latest_status = TwStatus.objects.get(id=status_list[0]['id']) print(latest_status.created_at) self.assertEqual(10, len(status_list)) since_id = int(status_list[0]['id']) status_list = TwStatusView.refresh_status(tw_account_list, since_id) self.assertEqual(0, len(status_list))
def test_refresh_status(self): self.set_up() follower = Follower(name='testFollower', user=self.user) follower.save() tw_account = TwAccount(follower=follower, act_id='3991423984', screen_name='charleszhuochen') tw_account.save() tw_account_list = [ tw_account, ] since_id = None status_list = TwStatusView.refresh_status(tw_account_list, since_id) print(status_list[0]['created_at']) latest_status = TwStatus.objects.get(id=status_list[0]['id']) print(latest_status.created_at) self.assertEqual(10, len(status_list)) since_id = int(status_list[0]['id']) status_list = TwStatusView.refresh_status(tw_account_list, since_id) self.assertEqual(0, len(status_list))
def refresh_status_by_flr(request): if request.is_ajax(): json_data = json.loads(request.body) try: flr_name = json_data['flr_name'] except KeyError: return HttpResponse(False) lt_st_time = json_data.get('lt_st_time', None) status_list = [] try: tw_account = TwAccount.objects.get(follower__name=flr_name) status_list.extend(TwStatusView.refresh_status([ tw_account, ])) except TwAccount.DoesNotExist: pass try: qr_account = QrAccount.objects.get(follower__name=flr_name) status_list.extend(QrStatusView.refresh_status([ qr_account, ])) except QrAccount.DoesNotExist: pass sorted_status_list = sorted(status_list, key=lambda status: status['time_stamp'], reverse=True) if lt_st_time: raw_struct_time = time.strptime(lt_st_time, '%Y-%m-%d %H:%M:%S') lt_st_time_epoch = time.mktime(raw_struct_time) sorted_status_list = filter(time_filter_wrapper(lt_st_time_epoch), sorted_status_list) elif len(sorted_status_list) > 10: sorted_status_list = sorted_status_list[:10] # sorted_status_list = sorted(status_list, key=lambda tw_status: tw_status['id'], cmp=status_cmp) return JsonResponse({'status_list': sorted_status_list}) raise Http404