def friendslist(request): #try: graph = get_facebook_graph(request) facebook = FacebookUserConverter(graph) #groups = facebook.get_groups() items = facebook.get_free_for_sale() #print json.dumps(items, sort_keys=True, indent=4, separators=(',', ': ')) for item in items: thumbnail_url = item.get('picture') if thumbnail_url: link = item.get('link') fb_id = parse_qs(urlparse(link).query)['fbid'][0] # print(fb_id) picture = facebook.get_facebook_url(fb_id) # print(picture) picture_url = picture.get('source') # print(picture_url) #print items #friends = facebook.get_friends() #likes = facebook.get_likes() #store_likes = facebook.get_and_store_likes(request.user) #print(groups) #print(store_likes) #print(queryset) #context_object_name = 'my_friends_list' #template_name = "friendslist.html" #except OpenFacebookException as e: # print(e) #except: # raise Http404 update_index.Command().handle(using='default', remove=True) return render_to_response('friendslist.html', {'items': items}, context_instance=RequestContext(request))
def upload(request): if request.method == 'POST': user = request.user form = UploadFileForm(request.POST, request.FILES) if form.is_valid(): upload_model = Video( title=form.cleaned_data['title'], description=form.cleaned_data['description'], path=request.FILES['video_file'], author=user, ) upload_model.save() video_path = str(upload_model.path).replace("/", "").replace(".", "") filename = "{}thumb_{}.png".format("media/images/thumbnails/", video_path) command = "ffmpeg -i media/{} -vf \"thumbnail,scale=1000:750\" -frames:v 1 {}".format(upload_model.path, filename) os.system(command) upload_model.thumbnail = "/" + filename upload_model.save() update_index.Command().handle() return render(request, 'upload.html', {'alert': 'success'}) return render(request, 'upload.html', {'form': form}) else: form = UploadFileForm() return render(request, 'upload.html', {'form': form})
def setUpClass(cls): """ Set up the test """ LOGGER.info("running '{}' tests...".format(cls.__name__)) # disable indexing during import test_utils.set_index_active(False) # import resources test_utils.setup_test_storage() OBJECT_XML_CACHE.clear() test_utils.import_xml_or_zip("{}/repository/fixtures/full-resources/" "partial-corpus.xml".format(ROOT_PATH)) test_utils.import_xml_or_zip( "{}/repository/fixtures/full-resources/" "full-lang-description.xml".format(ROOT_PATH)) test_utils.import_xml_or_zip( "{}/repository/fixtures/full-resources/" "full-lex-conceptual.xml".format(ROOT_PATH)) test_utils.import_xml_or_zip("{}/repository/fixtures/full-resources/" "full-corpus-text.xml".format(ROOT_PATH)) test_utils.import_xml_or_zip("{}/repository/fixtures/full-resources/" "full-tool-service.xml".format(ROOT_PATH)) # enable indexing test_utils.set_index_active(True) # update index update_index.Command().handle(using=[ settings.TEST_MODE_NAME, ])
def rebuild_index(): """ Task for downloading a video from YouTube. :param instance: YoutubeVideo """ update_index.Command().handle(interactive=False) logger = StructLogger.get_logger(__name__) logger.info('Re-indexed search')
def update_search_index(sender, instance, created, **kwargs): """ receiver to update the search index whenever a model is saved """ watched_models = [Invoice, Account] # if sender in watched but do NOT trigger when saving the model when saving PDF (no point) if sender in watched_models and not getattr(instance, 'save_pdf', False): update_index.Command().handle(interactive=False)
def task_update_index(): """Updates each 15 minutes the index """ from haystack.management.commands import update_index update_index.Command().handle(age=1) return 'Index Updated'
def handle(self, *args, **options): if options.get('action')[0] == 'videos': print("Creating dummy data...") self.make_videos(options) update_index.Command().handle() if options.get('action')[0] == 'users': print("Creating dummy data...") self.make_users(options) update_index.Command().handle() if options.get('action')[0] == 'clear': print("Deleting dummy data...") self.clear() if options.get('action')[0] == 'count': self.count()
def form_valid(self, form): self.object.last_modified_by=self.request.user self.object.save() try: update_index.Command().handle(interactive=False) except: pass return redirect('/sensorimotordb/experiment/%d/' % self.object.id)
def test_simple_match_score_offers(self): Offer.objects.create(user=self.user, offer=self.subject) Offer.objects.create(user=self.user, offer=self.subject2) Offer.objects.create(user=self.user1, offer=self.subject5) Offer.objects.create(user=self.user1, offer=self.subject6) Offer.objects.create(user=self.user1, offer=self.subject7) update_index.Command().handle(interactive=False) users = MatchQuerySet.all(self.user.id) self.assertEqual(users[0].score, 2)
def test_simple_match_between(self): Goal.objects.create(user=self.user, goal=self.subject11) Goal.objects.create(user=self.user1, goal=self.subject10) Goal.objects.create(user=self.user2, goal=self.subject10) Goal.objects.create(user=self.user3, goal=self.subject10) update_index.Command().handle(interactive=False) users = MatchQuerySet.between(self.user.id, self.user1.id) self.assertEqual(len(users), 1) self.assertEqual(users[0].score, 1)
def test_filter_gender_female(self): Goal.objects.create(user=self.user, goal=self.subject) Goal.objects.create(user=self.user4, goal=self.subject5) FilterState.objects.create(user=self.user, gender='f', max_age=99) update_index.Command().handle(interactive=False) match_users = MatchQuerySet.all(self.user.id, is_filter=True) self.assertEqual(len(match_users), 1) self.assertEqual(match_users[0].first_name, 'Tati') self.assertEqual(match_users[0].gender, 'f')
def test_simple_top_interests_less_than_3(self): Goal.objects.create(user=self.user, goal=self.subject11) Goal.objects.create(user=self.user1, goal=self.subject10) update_index.Command().handle(interactive=False) match_users = MatchQuerySet.all(self.user.id) self.assertEqual(len(match_users), 1) self.assertEqual(match_users[0].top_interests[0], { u'kiteboarding': 1, u'foxes': 0 })
def test_filter_gender_male(self): Goal.objects.create(user=self.user, goal=self.subject) Goal.objects.create(user=self.user1, goal=self.subject5) Goal.objects.create(user=self.user3, goal=self.subject5) FilterState.objects.create(user=self.user, gender='m', distance=16516) update_index.Command().handle(interactive=False) match_users = MatchQuerySet.all(self.user.id, is_filter=True) self.assertEqual(len(match_users), 1) self.assertEqual(match_users[0].first_name, 'Sasa') self.assertEqual(match_users[0].gender, 'm')
def test_simple_match_offers(self): Offer.objects.create(user=self.user, offer=self.subject2) Offer.objects.create(user=self.user1, offer=self.subject6) update_index.Command().handle(interactive=False) match_users = ElasticSearchMatchEngine. \ elastic_objects.match(user_id=self.user.id) self.assertEqual( match_users[0]['_id'], u'members.facebookcustomuseractive.%s' % self.user1.id) self.assertEqual(match_users[0]['highlight']['offers'], [u'teach <em>python</em>'])
def test_simple_match_interests(self): Interest.objects.create(user=self.user, interest=self.i_subject) Interest.objects.create(user=self.user1, interest=self.i_subject1) update_index.Command().handle(interactive=False) match_users = ElasticSearchMatchEngine. \ elastic_objects.match(user_id=self.user.id) self.assertEqual( match_users[0]['_id'], u'members.facebookcustomuseractive.%s' % self.user1.id) self.assertEqual(match_users[0]['highlight']['interests'], [u'learn <em>django</em>'])
def test_simple_top_interests(self): Goal.objects.create(user=self.user, goal=self.subject) Goal.objects.create(user=self.user1, goal=self.subject15) update_index.Command().handle(interactive=False) match_users = MatchQuerySet.all(self.user.id) self.assertEqual(len(match_users), 1) self.assertEqual(match_users[0].top_interests[0], { u'coding': 0, u'django': 1, u'python': 0 })
def test_simple_match_goals_with_root_forms_of_word(self): Goal.objects.create(user=self.user, goal=self.subject11) Goal.objects.create(user=self.user1, goal=self.subject10) update_index.Command().handle(interactive=False) match_users = ElasticSearchMatchEngine. \ elastic_objects.match(user_id=self.user.id) self.assertEqual( match_users[0]['_id'], u'members.facebookcustomuseractive.%s' % self.user1.id) self.assertEqual(match_users[0]['highlight']['goals'], [u'learn <em>kiteboarding</em> and <em>foxes</em>'])
def test_simple_match_synonyms(self): Goal.objects.create(user=self.user, goal=self.subject12) Goal.objects.create(user=self.user1, goal=self.subject12) update_index.Command().handle(interactive=False) match_users = ElasticSearchMatchEngine. \ elastic_objects.match(user_id=self.user.id) self.assertEqual( match_users[0]['_id'], u'members.facebookcustomuseractive.%s' % self.user1.id) self.assertEqual(match_users[0]['highlight']['goals'], [u'<em>baby</em>'])
def test_filter_distance(self): Goal.objects.create(user=self.user, goal=self.subject) Goal.objects.create(user=self.user1, goal=self.subject5) Goal.objects.create(user=self.user1, goal=self.subject2) Goal.objects.create(user=self.user3, goal=self.subject5) FilterState.objects.create(user=self.user, min_age=18, max_age=99, distance=1) update_index.Command().handle(interactive=False) match_users = MatchQuerySet.all(self.user.id, is_filter=True) self.assertEqual(len(match_users), 0)
def post_document(request): doc = Document( name=request.POST["name"], description=request.POST["description"], content=request.POST["content"], date_added=datetime.datetime.now(), rating=0.5, author=Author.objects.all()[0], ) doc.save() update_index.Command().handle() return HttpResponseRedirect(reverse("index"))
def ajx_validate_event(request, pk): if (request.is_ajax() or settings.DEBUG) and request.method == 'PUT': event = get_object_or_404(Event, pk=pk) event.validate() # update haystack index to display changes update_index.Command().handle(interactive=False) messages.success(request, ("Evénement {0} validé").format(event.name)) return HttpResponse('') return HttpResponseBadRequest
def test_exclude_friends(self): Goal.objects.create(user=self.user, goal=self.subject) Goal.objects.create(user=self.user1, goal=self.subject5) Goal.objects.create(user=self.user3, goal=self.subject5) FilterState.objects.create(user=self.user, min_age=18, max_age=99, distance=10000) self.neo.create_friendship(self.user, self.user3) update_index.Command().handle(interactive=False) match_users = MatchQuerySet.all(self.user.id) self.assertEqual(len(match_users), 1) self.assertEqual(match_users[0].first_name, 'Sasa')
def update_object(username): options = {} options['age']=0.01 options['remove']=True update_index.Command().handle(**options) solrUpdateByUser = SolrUpdate.objects.all() user = User.objects.filter(username=username) if len(solrUpdateByUser) == 0: newUpdate = SolrUpdate(user=user[0]) newUpdate.save() else: solrUpdateByUser[0].user=user[0] solrUpdateByUser[0].save()
def test_named_message_indexed(self): msg = MessageModelFactory(sender_approved_public=True, sender_approved_public_named=True, recipient_approved_public=True, recipient_approved_public_named=True, admin_approved_public=True) update_index.Command().handle(using=['default']) response = self.client.get(self.url, {'q': msg.message}) self.assertEqual(response.status_code, 200) self.assertContains(response, msg.sender_name) self.assertContains(response, msg.recipient_name) self.assertContains(response, msg.message) self.assertNotContains(response, msg.sender_email) self.assertNotContains(response, msg.recipient_email)
def import_dir(path): """ imports all XML files in the given directory """ # to speed up the import, we disable indexing during the import and only # rebuild the index at afterwards os.environ['DISABLE_INDEXING_DURING_IMPORT'] = 'True' _files = os.listdir(path) for _file in _files: test_utils.import_xml_or_zip("%s%s" % (path, _file)) os.environ['DISABLE_INDEXING_DURING_IMPORT'] = 'False' update_index.Command().handle(using=[ settings.TEST_MODE_NAME, ])
def setUp(self): """ Import test fixtures and add resource pairs to TogetherManager """ test_utils.setup_test_storage() self.res_1 = _import_resource('creators-projects-1.xml') self.res_2 = _import_resource('creators-projects-2.xml') self.res_3 = _import_resource('creators-projects-3.xml') self.res_4 = _import_resource('creators-projects-4.xml') update_index.Command().handle(using=[settings.TEST_MODE_NAME,]) # create an groups used to get the proper results Group.objects.create(name='ecmembers') Group.objects.create(name='reviewers')
def test_match_goals_to_offers(self): Goal.objects.create(user=self.user, goal=self.subject) Goal.objects.create(user=self.user, goal=self.subject2) Offer.objects.create(user=self.user1, offer=self.subject5) Offer.objects.create(user=self.user1, offer=self.subject3) update_index.Command().handle(interactive=False) match_users = ElasticSearchMatchEngine. \ elastic_objects.match(user_id=self.user.id) self.assertEqual( match_users[0]['_id'], u'members.facebookcustomuseractive.%s' % self.user1.id) self.assertEqual(match_users[0]['_source']['offers'], [u'teach django', u'teach erlang']) self.assertEqual(match_users[0]['highlight']['offers'], [u'teach <em>django</em>'])
def test_simple_match_likes(self): FacebookLike.objects.create(user_id=self.user.id, facebook_id=123456, name='learn python') fb_like = FacebookLike.objects.create(user_id=self.user1.id, facebook_id=123456, name='learn python') update_index.Command().handle(interactive=False) match_users = ElasticSearchMatchEngine. \ elastic_objects.match(user_id=self.user.id) self.assertEqual( match_users[0]['_id'], u'members.facebookcustomuseractive.%s' % self.user1.id) self.assertEqual(match_users[0]['_source']['likes_fb_ids'], [unicode(fb_like.facebook_id)])
def new_user(request): if request.method == 'POST': user_form = SNUserForm(request.POST, request.FILES) if user_form.is_valid(): user = SNUser.objects.create_user(**user_form.cleaned_data) update_index.Command().handle() login(request, user) return redirect('home_page') else: print user_form.errors else: user_form = SNUserForm() return render(request, 'SNUser/new_user.html', { 'user_form': user_form, })
def import_concepts(self, new_version=False, total=0, test_mode=False, deactivate_old_records=False, **kwargs): initial_signal_processor = haystack.signal_processor try: haystack.signal_processor.teardown() haystack.signal_processor = haystack.signals.BaseSignalProcessor import_start_time = datetime.now() self.info('Started import at {}'.format( import_start_time.strftime("%Y-%m-%dT%H:%M:%S"))) self.action_count = {} self.test_mode = test_mode self.info('Import concepts to source...') self.handle_new_source_version(new_version) # Load the JSON file line by line and import each line self.user = User.objects.filter(is_superuser=True)[0] self.concept_version_ids = set( self.source_version.get_concept_ids()) lines_handled = self.handle_lines_in_input_file(total) self.output_unhandled_concept_version_ids() self.handle_deactivation__of_old_records( deactivate_old_records) # Display final summary self.output_summary(lines_handled, total) actions = self.action_count update_index_required = actions.get( ImportActionHelper.IMPORT_ACTION_ADD, 0) > 0 update_index_required |= actions.get( ImportActionHelper.IMPORT_ACTION_UPDATE, 0) > 0 if update_index_required: self.info('Indexing objects updated since {}'.format( import_start_time.strftime("%Y-%m-%dT%H:%M:%S"))) update_index.Command().handle( start_date=import_start_time.strftime("%Y-%m-%dT%H:%M:%S"), verbosity=2, workers=4, batchsize=100) finally: haystack.signal_processor = initial_signal_processor haystack.signal_processor.setup()