示例#1
0
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
示例#2
0
	def __init__(self):
		self.article_manager = ArticleManager()
		self.community_manager = CommunityManager()
		self.user_manager = UserManager()
示例#3
0
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