Esempio n. 1
0
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)
Esempio n. 2
0
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)
Esempio n. 3
0
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
Esempio n. 4
0
 def __init__(self):
     self.db = DBManager()
     self.news_api = NewsApiClient(api_key=newsApiKey)
Esempio n. 5
0
def getSources():
    db = DBManager()
    return jsonify(db.getSources())
Esempio n. 6
0
def getSummarizedArticles():
    db = DBManager()
    return jsonify(db.getSummarizedArticles())