mirror of
				https://github.com/RicterZ/nhentai.git
				synced 2025-11-03 18:50:53 +01:00 
			
		
		
		
	feature: more detail of doujinshi
This commit is contained in:
		@@ -5,16 +5,27 @@ from constant import DETAIL_URL, IMAGE_URL
 | 
			
		||||
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):
 | 
			
		||||
    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.subtitle = subtitle
 | 
			
		||||
        self.id = id
 | 
			
		||||
        self.img_id = img_id
 | 
			
		||||
        self.ext = ext
 | 
			
		||||
        self.pages = pages
 | 
			
		||||
        self.downloader = None
 | 
			
		||||
        self.url = '%s/%d' % (DETAIL_URL, self.id)
 | 
			
		||||
        self.info = DoujinshiInfo(**kwargs)
 | 
			
		||||
 | 
			
		||||
    def __repr__(self):
 | 
			
		||||
        return '<Doujinshi: {}>'.format(self.name)
 | 
			
		||||
@@ -22,7 +33,11 @@ class Doujinshi(object):
 | 
			
		||||
    def show(self):
 | 
			
		||||
        table = [
 | 
			
		||||
            ["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],
 | 
			
		||||
            ["Pages", self.pages],
 | 
			
		||||
        ]
 | 
			
		||||
 
 | 
			
		||||
@@ -37,6 +37,7 @@ def doujinshi_parser(id_):
 | 
			
		||||
 | 
			
		||||
    title = doujinshi_info.find('h1').text
 | 
			
		||||
    subtitle = doujinshi_info.find('h2')
 | 
			
		||||
 | 
			
		||||
    doujinshi['name'] = title
 | 
			
		||||
    doujinshi['subtitle'] = subtitle.text if subtitle else ''
 | 
			
		||||
 | 
			
		||||
@@ -55,6 +56,17 @@ def doujinshi_parser(id_):
 | 
			
		||||
            pages = pages.group(1)
 | 
			
		||||
            break
 | 
			
		||||
    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
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user