Compare commits

..

No commits in common. "7911e3f117dc15c6956b4d297293814702f90ec6" and "daca611f6afc9b7ae106f1bef2fea14fa2a44d1f" have entirely different histories.

3 changed files with 11 additions and 41 deletions

2
.gitignore vendored
View File

@ -1,2 +0,0 @@
_cache/
__pycache__/

17
app.py
View File

@ -1,6 +1,5 @@
from flask import Flask, Response, abort, request
from flask import Flask, Response, abort
from parsers.nvidia import NvidiaParser
from urllib.parse import urlparse
import os, time, threading
class ParserData:
@ -83,19 +82,6 @@ indexPage += '</html>'
def index():
return indexPage
#@app.route('/favicon.ico')
#def favicon():
# referrer = request.referrer
# if referrer != None:
# u = urlparse(referrer)
#
# for parser in parsers:
# if parser.parser.URL == u.path:
# favi = parser.parser.favicon
# return Response(favi.content, mimetype=favi.headers['Content-Type'])
#
# abort(404)
runParserWorkers()
for parser in parsers:
@ -105,3 +91,4 @@ for parser in parsers:
if parser.rss == None:
abort(404)
return Response(parser.rss, mimetype='text/xml')

View File

@ -3,7 +3,6 @@ from feedgen.feed import FeedGenerator
from collections import namedtuple
import multiprocessing
from datetime import datetime
import requests
Entry = namedtuple('Entry', 'url fe')
@ -11,18 +10,6 @@ class NvidiaParser:
NAME = 'NVidia Research'
URL = '/nvidia'
CACHE_TIMEOUT = 3600
root_url = 'https://research.nvidia.com'
favicon = None
def loadFavicon(self):
try:
favUrl = NvidiaParser.root_url + '/themes/custom/nvidia/favicon.ico'
self.favicon = requests.get(favUrl)
except:
pass
# def __init__(self):
# self.loadFavicon()
def parseNvidiaDate(entry):
dom = pq(entry.url)
@ -33,20 +20,22 @@ class NvidiaParser:
entry.fe.pubDate(time)
def getRss(self):
d = pq(self.root_url +'/publications')
# self.loadFavicon()
root_url = 'https://research.nvidia.com'
d = pq(root_url +'/publications')
fg = FeedGenerator()
fg.id(self.root_url)
fg.id(root_url)
fg.title('NVidia Research')
fg.link(href=self.root_url, rel='alternate')
fg.link(href=root_url, rel='alternate')
fg.logo(root_url + '/themes/custom/nvidia/favicon.ico')
fg.description('NVidia Research papers')
entries = []
print('RSS GOT')
for elem in d('.views-field-title').items():
link = elem.find('a')
url = self.root_url + link.attr.href
url = root_url + link.attr.href
title = link.text()
fe = fg.add_entry()
@ -56,12 +45,8 @@ class NvidiaParser:
entries.append(Entry(url, fe))
for entry in entries:
NvidiaParser.parseNvidiaDate(entry)
print(entry.url)
# with multiprocessing.Pool(8) as p:
# p.map(NvidiaParser.parseNvidiaDate, entries)
with multiprocessing.Pool(8) as p:
p.map(NvidiaParser.parseNvidiaDate, entries)
return fg.rss_str()