예제 #1
0
파일: apis.py 프로젝트: yomnaa/warpit
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)
예제 #2
0
파일: apis.py 프로젝트: basselhossam/wrapit
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)
예제 #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
예제 #4
0
 def __init__(self):
     self.db = DBManager()
     self.news_api = NewsApiClient(api_key=newsApiKey)
예제 #5
0
파일: apis.py 프로젝트: basselhossam/wrapit
def getSources():
    db = DBManager()
    return jsonify(db.getSources())
예제 #6
0
파일: apis.py 프로젝트: basselhossam/wrapit
def getSummarizedArticles():
    db = DBManager()
    return jsonify(db.getSummarizedArticles())