コード例 #1
0
ファイル: reset_redis.py プロジェクト: tejesh0/random-read
    def handle(self, *args, **options):
        print "in process"
        redis_conn.flushdb()
        for article in Article.objects.only("id").filter(primary=True):
            redis_conn.sadd(Article.ALL_PRIMARY_IDS_KEY, article.id)

        ## to add user read article id list;

        print "done"
コード例 #2
0
    def handle(self, *args, **options):
        print "in process"
        redis_conn.flushdb()
        for article in Article.objects.only("id").filter(primary=True):
            redis_conn.sadd(Article.ALL_PRIMARY_IDS_KEY, article.id)


        ## to add user read article id list;

        print "done"
コード例 #3
0
ファイル: models.py プロジェクト: brianjking/random-read
 def defer_process(self):
     from readability.readability import Document
     import urllib
     article  = self.article
     if not article.finished:
         header = {'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10.9; rv:32.0) Gecko/20100101 Firefox/32.0',}
         response = requests.get(article.original_url, headers=header, verify=False)
         response.encoding = chardet.detect(response.content)["encoding"]
         html = response.text
         article.content = Document(html).summary()
         article.title = Document(html).short_title()
         article.primary = True # TODO
         article.finished = True
         redis_conn.sadd(Article.ALL_PRIMARY_IDS_KEY, article.id)
         article.save()
         q.enqueue(article._catch_image)
コード例 #4
0
ファイル: models.py プロジェクト: tejesh0/random-read
 def defer_process(self):
     from readability.readability import Document
     import urllib
     article = self.article
     if not article.finished:
         header = {
             'user-agent':
             'Mozilla/5.0 (Macintosh; Intel Mac OS X 10.9; rv:32.0) Gecko/20100101 Firefox/32.0',
         }
         response = requests.get(article.original_url,
                                 headers=header,
                                 verify=False)
         response.encoding = chardet.detect(response.content)["encoding"]
         html = response.text
         article.content = Document(html).summary()
         article.title = Document(html).short_title()
         article.primary = True  # TODO
         article.finished = True
         redis_conn.sadd(Article.ALL_PRIMARY_IDS_KEY, article.id)
         article.save()
         q.enqueue(article._catch_image)
コード例 #5
0
ファイル: views.py プロジェクト: AlexRiedler/random-read
def random_article(request):
    ''' put all primary article id to the redis
        redis[all] = set(1,2,3)
        put all user read in redis
        redis[user] = set(1,2, 3)

        consider use sdiff: r.sdiff(keys=('local', 'mythtv'))
    '''

    # use request.user 
    # if we need to collect anonymous user data
    if request.user.is_authenticated(): 
        article_id_sets = redis_conn.sdiff((Article.ALL_PRIMARY_IDS_KEY, request.user.id)) or 0
        if article_id_sets == 0:
            raise Http404
        article_id = random.sample(article_id_sets, 1)[0]
        redis_conn.sadd(request.user.id, article_id)
        UserReadArticle.objects.get_or_create(user=request.user, article_id=article_id)

    else:
        article_id = redis_conn.srandmember(Article.ALL_PRIMARY_IDS_KEY) or 0

    return redirect("/api/article/%s/"%article_id)