nyaa.pantsu.cat update

This commit is contained in:
JuanjoSalvador
2017-10-14 12:55:54 +02:00
parent 9e6060ee54
commit 00f1c4ee7f
3 changed files with 76 additions and 42 deletions

View File

@@ -5,38 +5,30 @@ from NyaaPy.utils import Utils as utils
class NyaaPantsu(): class NyaaPantsu():
''' '''
Make a query to nyaa.pantsu.cat using keyword as keyword. Return a list of dicts with the results of the query.
Returns an array of OrderedDict with every result of the query.
Returns an empty array if no results.
''' '''
def search(keyword): def search(keyword, category, subcategory, filters, page):
nyaapantsu_baseurl = "https://nyaa.pantsu.cat/feed?c=_&s=0&max=99999&userID=0&q=" if page > 0:
r = requests.get("http://nyaa.pantsu.cat/?f={}&c={}_{}&q={}&p={}".format(filters, category, subcategory, keyword, page))
else:
r = requests.get("http://nyaa.pantsu.cat/?f={}&c={}_{}&q={}".format(filters, category, subcategory, keyword))
request = requests.get(nyaa_baseurl + keyword) soup = BeautifulSoup(r.text, 'html.parser')
response = xmltodict.parse(request.text) rows = soup.select('table tr')
results = [] results = {}
try: if rows:
if type(response['rss']['channel']['item']) is collections.OrderedDict: results = utils.parse_pantsu(rows, limit=None)
results.append(response['rss']['channel']['item'])
else:
results = response['rss']['channel']['item']
except KeyError as ex:
results = []
return results return results
''' '''
Returns an array of OrderedDict with the n last updates of nyaa.pantsu.cat Returns an array of dicts with the n last updates of Nyaa.si
''' '''
def news(n): def news(number_of_results):
nyaa_baseurl = "https://nyaa.pantsu.cat/feed" r = requests.get("http://nyaa.pantsu.cat/")
soup = BeautifulSoup(r.text, 'html.parser')
rows = soup.select('table tr')
request = requests.get(nyaa_baseurl) return utils.parse_pantsu(rows, limit=number_of_results)
response = xmltodict.parse(request.text)
results = response['rss']['channel']['item']
return results[:n]

View File

@@ -4,7 +4,7 @@
class Utils(): class Utils():
def get_categories(b): def nyaa_categories(b):
c = b.replace('/?c=', '') c = b.replace('/?c=', '')
cats = c.split('_') cats = c.split('_')
@@ -68,6 +68,15 @@ class Utils():
return category_name return category_name
def pantsu_categories(b):
c = b.replace('/search?c=', '')
cats = c.split('_')
cat = cats[0]
subcat = cats[1]
return "{} - {}".format(cat, subcat)
def parse_nyaa(table_rows, limit): def parse_nyaa(table_rows, limit):
torrents = [] torrents = []
@@ -88,7 +97,7 @@ class Utils():
try: try:
torrent = { torrent = {
'category': Utils.get_categories(block[0]), 'category': Utils.nyaa_categories(block[0]),
'url': "http://nyaa.si{}".format(block[1]), 'url': "http://nyaa.si{}".format(block[1]),
'name': block[2], 'name': block[2],
'download_url': "http://nyaa.si{}".format(block[4]), 'download_url': "http://nyaa.si{}".format(block[4]),
@@ -104,4 +113,42 @@ class Utils():
except IndexError as ie: except IndexError as ie:
pass pass
return torrents
def parse_pantsu(table_rows, limit):
torrents = []
limit = limit + 1
for row in table_rows[1:limit]:
block = []
for td in row.find_all('td'):
if td.find_all('a'):
for link in td.find_all('a'):
if "lang" not in link.get('href'):
block.append(link.get('href'))
if td.text.rstrip():
block.append(td.text.replace('\n', ''))
try:
torrent = {
'category': Utils.pantsu_categories(block[0]),
'url': "http://nyaa.pantsu.cat{}".format(block[1]),
'name': block[2],
'download_url': block[4],
'magnet': block[3],
'size': block[5],
'date': block[9],
'seeders': block[6],
'leechers': block[7],
'completed_downloads': block[8],
}
torrents.append(torrent)
except IndexError as ie:
pass
return torrents return torrents

View File

@@ -2,10 +2,13 @@ from NyaaPy import Nyaa, NyaaPantsu
# Nyaa.si results # Nyaa.si results
def nyaa_search(): def nyaa_search():
nyaa_query = Nyaa.search(keyword='koe no katachi 1080', category=1, subcategory=0, filters=0, page=0) try:
nyaa_query = Nyaa.search(keyword='koe no katachi 1080', category=1, subcategory=0, page=0)
for nyaa in nyaa_query: for nyaa in nyaa_query:
print(nyaa) print(nyaa)
except TypeError as te:
print(te)
def nyaa_news(): def nyaa_news():
news = Nyaa.news(number_of_results=5) news = Nyaa.news(number_of_results=5)
@@ -15,22 +18,14 @@ def nyaa_news():
# Nyaa.pantsu.cat results # Nyaa.pantsu.cat results
def pantsu_search(): def pantsu_search():
pantsu_query = NyaaPantsu.search('new game!!') pantsu_query = NyaaPantsu.search('new game!!')
if len(pantsu_query) > 0:
for result in pantsu_query:
print(result['title'])
else:
print('Nothing here!')
def pantsu_news(): def pantsu_news():
news = NyaaPantsu.news(5) print(NyaaPantsu.news(1))
for result in news:
print(result['title'])
# Uncomment whatever you want to test # Uncomment whatever you want to test
#nyaa_search() #nyaa_search()
#pantsu_search() #pantsu_search()
nyaa_news() #nyaa_news()
#pantsu_news() pantsu_news()