def getnews(): db = DBManager() api = NewsSources() newsResponse = api.getNewsFromSources() newArticles = list(set(newsResponse['articlesURLs']) - set(db.getSummarizedArticlesURL())) for url in newArticles: sens = parse(url) fs = FrequencySummarizer() textsum = fs.summarize(sens, 4) if False != textsum: newsResponse['articlesData'][url]["exSummary"] = textsum else: del newsResponse['articlesData'][url] ret = {'status': 'Failed'} if db.addArticles(newsResponse['articlesData'].values()): ret = {'status': 'ok', 'summarizedCount': len(newsResponse['articlesData'].values())} return jsonify(ret)
def getnews(): db = DBManager() api = NewsSources() newsResponse = api.getNewsFromSources() newArticles = list( set(newsResponse['articlesURLs']) - set(db.getSummarizedArticlesURL())) for url in newArticles: sens, cat = parse(url) fs = FrequencySummarizer() textsum = fs.summarize(sens, 4) s = 0 if False != textsum: for x in textsum: s = s + len(x) newsResponse['articlesData'][url]["exSummary"] = textsum newsResponse['articlesData'][url]["category"] = cat newsResponse['articlesData'][url]["ratio"] = s / (len(sens) * 1.0) else: del newsResponse['articlesData'][url] headers = {'content-type': 'application/json'} r = requests.post("https://summarizer.localtunnel.me/api", data=json.dumps(list( newsResponse['articlesData'].keys())), headers=headers) if r.status_code == 200: x = r.json() i = 0 for url in list(newsResponse['articlesData'].keys()): newsResponse['articlesData'][url]["abSummary"] = x[i] i = i + 1 else: ret = {'status': 'abSummary Failed'} return jsonify(ret) ret = { 'status': 'ok', 'summarizedCount': db.addArticles(newsResponse['articlesData'].values()) } return jsonify(ret)
class NewsSources: def __init__(self): self.db = DBManager() self.news_api = NewsApiClient(api_key=newsApiKey) def getNewsFromSources(self): newsData = self.news_api.get_everything( sources=self.db.getNewsApiSourcesIDs(), language=appLanguage, page_size=pageSize)['articles'] res = {'articlesData': {}, 'articlesURLs': []} for article in newsData: articleDict = { 'title': article['title'], 'url': article['url'], 'image': article['urlToImage'], 'time': article['publishedAt'], 'newsApiID': article['source']['id'] } res['articlesData'][article['url']] = articleDict res['articlesURLs'].append(article['url']) return res
def __init__(self): self.db = DBManager() self.news_api = NewsApiClient(api_key=newsApiKey)
def getSources(): db = DBManager() return jsonify(db.getSources())
def getSummarizedArticles(): db = DBManager() return jsonify(db.getSummarizedArticles())