Exemple #1
0
 def all_articles(self):
     return (Article.select()
                    .distinct()
                    .join(UserSubscription, on=(UserSubscription.subscription == Article.source))
                    .join(ArticleTopic, on=(ArticleTopic.article == Article.id))
                    .join(UserTopic, on=((UserTopic.topic == ArticleTopic.topic) & (UserTopic.user == UserSubscription.user)))
                    .join(UserArticle, JOIN_LEFT_OUTER, on=(UserArticle.article == Article.id) & (UserArticle.user == UserTopic.user))
                    .where(UserTopic.user == self, UserArticle.state >> None)
                    .order_by(Article.publish_date.desc())
                    .limit(200))
Exemple #2
0
 def articles(self, limit=50, offset=0):
     return (Article.select(Article, UserArticle.score)
                    .distinct()
                    .join(UserSubscription, on=(UserSubscription.subscription == Article.source))
                    .join(ArticleTopic, on=(ArticleTopic.article == Article.id))
                    .join(UserTopic, on=((UserTopic.topic == ArticleTopic.topic) & (UserTopic.user == UserSubscription.user)))
                    .join(UserArticle, on=(UserArticle.article == Article.id))
                    .where(UserTopic.user == self, UserArticle.user == self, UserArticle.state >> None)
                    .order_by(UserArticle.score.desc())
                    .limit(limit)
                    .offset(offset))
Exemple #3
0
 def evaluated_articles(self):
     return (Article.select(Article, UserArticle.state)
                    .join(UserArticle)
                    .where(UserArticle.user == self, ~(UserArticle.state >> None))
                    .order_by(Article.publish_date.desc())
                    .limit(100))