Exemplo n.º 1
0
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))
Exemplo n.º 2
0
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})
Exemplo n.º 3
0
    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,
        ])
Exemplo n.º 4
0
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')
Exemplo n.º 5
0
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)
Exemplo n.º 6
0
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'
Exemplo n.º 7
0
    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()
Exemplo n.º 8
0
    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)
Exemplo n.º 9
0
 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)
Exemplo n.º 10
0
 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)
Exemplo n.º 11
0
 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')
Exemplo n.º 12
0
 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
     })
Exemplo n.º 13
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')
Exemplo n.º 14
0
 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>'])
Exemplo n.º 15
0
 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>'])
Exemplo n.º 16
0
 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
     })
Exemplo n.º 17
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>'])
Exemplo n.º 18
0
 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>'])
Exemplo n.º 19
0
 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)
Exemplo n.º 20
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"))
Exemplo n.º 21
0
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
Exemplo n.º 22
0
 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')
Exemplo n.º 23
0
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()
Exemplo n.º 24
0
 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)
Exemplo n.º 25
0
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,
    ])
Exemplo n.º 26
0
    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')
Exemplo n.º 27
0
 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>'])
Exemplo n.º 28
0
 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)])
Exemplo n.º 29
0
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,
    })
Exemplo n.º 30
0
    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()