mirror of
https://github.com/RicterZ/nhentai.git
synced 2025-04-20 02:41:19 +02:00
feature: more detail of doujinshi
This commit is contained in:
parent
e56a241849
commit
73849e0d10
@ -5,16 +5,27 @@ from constant import DETAIL_URL, IMAGE_URL
|
|||||||
from logger import logger
|
from logger import logger
|
||||||
|
|
||||||
|
|
||||||
|
class DoujinshiInfo(dict):
|
||||||
|
def __init__(self, **kwargs):
|
||||||
|
super(DoujinshiInfo, self).__init__(**kwargs)
|
||||||
|
|
||||||
|
def __getattr__(self, item):
|
||||||
|
try:
|
||||||
|
return dict.__getitem__(self, item)
|
||||||
|
except KeyError:
|
||||||
|
return ''
|
||||||
|
|
||||||
|
|
||||||
class Doujinshi(object):
|
class Doujinshi(object):
|
||||||
def __init__(self, name=None, subtitle=None, id=None, img_id=None, ext='jpg', pages=0):
|
def __init__(self, name=None, id=None, img_id=None, ext='jpg', pages=0, **kwargs):
|
||||||
self.name = name
|
self.name = name
|
||||||
self.subtitle = subtitle
|
|
||||||
self.id = id
|
self.id = id
|
||||||
self.img_id = img_id
|
self.img_id = img_id
|
||||||
self.ext = ext
|
self.ext = ext
|
||||||
self.pages = pages
|
self.pages = pages
|
||||||
self.downloader = None
|
self.downloader = None
|
||||||
self.url = '%s/%d' % (DETAIL_URL, self.id)
|
self.url = '%s/%d' % (DETAIL_URL, self.id)
|
||||||
|
self.info = DoujinshiInfo(**kwargs)
|
||||||
|
|
||||||
def __repr__(self):
|
def __repr__(self):
|
||||||
return '<Doujinshi: {}>'.format(self.name)
|
return '<Doujinshi: {}>'.format(self.name)
|
||||||
@ -22,7 +33,11 @@ class Doujinshi(object):
|
|||||||
def show(self):
|
def show(self):
|
||||||
table = [
|
table = [
|
||||||
["Doujinshi", self.name],
|
["Doujinshi", self.name],
|
||||||
["Subtitle", self.subtitle],
|
["Subtitle", self.info.subtitle],
|
||||||
|
["Characters", self.info.characters],
|
||||||
|
["Authors", self.info.artists],
|
||||||
|
["Language", self.info.language],
|
||||||
|
["Tags", self.info.tags],
|
||||||
["URL", self.url],
|
["URL", self.url],
|
||||||
["Pages", self.pages],
|
["Pages", self.pages],
|
||||||
]
|
]
|
||||||
|
@ -37,6 +37,7 @@ def doujinshi_parser(id_):
|
|||||||
|
|
||||||
title = doujinshi_info.find('h1').text
|
title = doujinshi_info.find('h1').text
|
||||||
subtitle = doujinshi_info.find('h2')
|
subtitle = doujinshi_info.find('h2')
|
||||||
|
|
||||||
doujinshi['name'] = title
|
doujinshi['name'] = title
|
||||||
doujinshi['subtitle'] = subtitle.text if subtitle else ''
|
doujinshi['subtitle'] = subtitle.text if subtitle else ''
|
||||||
|
|
||||||
@ -55,6 +56,17 @@ def doujinshi_parser(id_):
|
|||||||
pages = pages.group(1)
|
pages = pages.group(1)
|
||||||
break
|
break
|
||||||
doujinshi['pages'] = int(pages)
|
doujinshi['pages'] = int(pages)
|
||||||
|
|
||||||
|
# gain information of the doujinshi
|
||||||
|
information_fields = doujinshi_info.find_all('div', attrs={'class': 'field-name'})
|
||||||
|
needed_fields = ['Characters', 'Artists', 'Language', 'Tags']
|
||||||
|
for field in information_fields:
|
||||||
|
field_name = field.contents[0].strip().strip(':')
|
||||||
|
if field_name in needed_fields:
|
||||||
|
data = [sub_field.contents[0].strip() for sub_field in
|
||||||
|
field.find_all('a', attrs={'class': 'tag'})]
|
||||||
|
doujinshi[field_name.lower()] = ', '.join(data)
|
||||||
|
|
||||||
return doujinshi
|
return doujinshi
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user