mirror of
				https://github.com/RicterZ/nhentai.git
				synced 2025-11-04 02:50:55 +01:00 
			
		
		
		
	implemented Py2 & Py3 compatible Singleton
This commit is contained in:
		@@ -6,14 +6,10 @@ from urlparse import urlparse
 | 
			
		||||
from logger import logger
 | 
			
		||||
from parser import request
 | 
			
		||||
 | 
			
		||||
from nhentai.utils import Singleton
 | 
			
		||||
 | 
			
		||||
class Downloader(object):
 | 
			
		||||
    _instance = None
 | 
			
		||||
 | 
			
		||||
    def __new__(cls, *args, **kwargs):
 | 
			
		||||
        if not cls._instance:
 | 
			
		||||
            cls._instance = super(Downloader, cls).__new__(cls, *args, **kwargs)
 | 
			
		||||
        return cls._instance
 | 
			
		||||
class Downloader(Singleton):
 | 
			
		||||
 | 
			
		||||
    def __init__(self, path='', thread=1, timeout=30):
 | 
			
		||||
        if not isinstance(thread, (int, )) or thread < 1 or thread > 10:
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										10
									
								
								nhentai/utils.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										10
									
								
								nhentai/utils.py
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,10 @@
 | 
			
		||||
# coding: utf-8
 | 
			
		||||
class _Singleton(type):
 | 
			
		||||
    """ A metaclass that creates a Singleton base class when called. """
 | 
			
		||||
    _instances = {}
 | 
			
		||||
    def __call__(cls, *args, **kwargs):
 | 
			
		||||
        if cls not in cls._instances:
 | 
			
		||||
            cls._instances[cls] = super(_Singleton, cls).__call__(*args, **kwargs)
 | 
			
		||||
        return cls._instances[cls]
 | 
			
		||||
 | 
			
		||||
class Singleton(_Singleton('SingletonMeta', (object,), {})): pass
 | 
			
		||||
		Reference in New Issue
	
	Block a user