def main(argv): global opts opts, articles = get_command_args(argv) metadata = DatabaseManager().get_metadata() articles = list(set(articles)) if (opts['ml']): train(articles) #cant run train and other functions return if (opts['zxml']): #opts['zxml'] is the xml file for (bs, each_id) in ArticleManager().get_articles_xml( opts['zxml'], opts['ident'], articles): art = XMLArticle(each_id, opts['ident'], run_style=opts['indi'], metadata=metadata, bs=bs) extract(art) return else: for each_article in articles: try: art = PDFArticle("{}/{}".format(opts['dir'], each_article), each_article, opts['ident'], run_style=opts['indi'], metadata=metadata) extract(art) except TypeError as e: print("{} not found".format(each_article)) continue
def __init__(self): self.article_manager = ArticleManager() self.community_manager = CommunityManager() self.user_manager = UserManager()
class Framework: def __init__(self): self.article_manager = ArticleManager() self.community_manager = CommunityManager() self.user_manager = UserManager() # def get_article_by_id(self, aid): # return self.article_manager.get_article_by_id(aid) # Article methods def get_articles(self): return self.user_manager.get_articles() def get_article_url(self, aid): return self.user_manager.get_article_url(aid) def get_article_title(self, aid): return self.article_manager.get_article_title(aid) def get_article_score(self, aid): return self.article_manager.get_article_score(aid) def post_article(self, title, url, uid, cid): aid = self.article_manager.post_article(title, url, uid, cid) self.community_manager.post_article(uid, aid) self.user_manager.add_user_article(uid, aid) def upvote(self, aid): self.article_manager.upvote(aid) def downvote(self, aid): self.article_manager.downvote(aid) def get_top_articles(self): aids = self.get_articles() top_aids = rank_articles(aids)[:20] return get_articles(top_aids) def get_random_article(self): return self.article_manager.get_random_article() # User methods def add_user(self, username): return self.user_manager.add_user(username) def get_users(self): return self.user_manager.get_all_users() def get_user_communities(self, uid): return self.user_manager.get_user_communities(self, uid) def get_user_articles(self, uid): aids = self.user_manager.get_user_articles(uid) return self.get_articles(aids) def add_user_community(self, uid, cid): self.user_manager.add_user_community(uid, cid) self.community_manager.add_user_community(uid, cid) def remove_user_community(self, uid, cid): self.user_manager.remove_user_community(uid, cid) self.community_manager.remove_user_community(uid, cid) # Community methods def get_communities(self): return self.community_manager.get_communityIds() def add_community(self, name): self.community_manager.add_new_community(name) def get_community_users(self, cid): return self.community_manager.get_community_users(cid) def get_community_articles(self, cid): aids = self.community_manager.get_community_articles(cid) return self.get_articles(aids) # Helper methods def rank_articles(aids): return sorted(aids, key=self.get_article_score) def get_articles(self, aids): articles = [] for aid in aids: article = (self.get_article_title(aid), self.get_article_url(aid), self.get_article_score(aid)) articles.append(article) return articles