Esempio n. 1
0
 def getTvShowImages(self, showId, lang):
     try:
         if showId.startswith(TMDBScraper.showIdPrefix):
             # TMDB TV 에피소드 목록 조회
             return TMDBScraper(SVC_NAME).getTvShowImages4Kodi(showId, lang)
         elif showId.startswith(DaumScraper.showIdPrefix):
             # Daum TV 에피소드 목록 조회
             return DaumScraper(SVC_NAME).getTvShowImages4Kodi(showId, lang)
         elif showId.startswith(MockScraper.showIdPrefix):
             # 테스트용
             return MockScraper(SVC_NAME).getTvShowImages4Kodi(showId, lang)
         else:
             return '{"error":"Invalid Id","id":"{0}"}'.format(showId)
 
     except Exception as e:
         log_err(str(e))
Esempio n. 2
0
 def getMovieDetail(self, movieId, lang, imageSrc):
     try:
         if movieId.startswith(TMDBScraper.movieIdPrefix) or movieId.startswith('tt') :
             # TMDB 영화정보 조회
             return TMDBScraper(SVC_NAME).getMovieDetail4Kodi(movieId, lang, imageSrc)
         elif movieId.startswith(DaumScraper.movieIdPrefix):
             # Daum 영화정보 조회
             return DaumScraper(SVC_NAME).getMovieDetail4Kodi(movieId, lang, imageSrc)
         elif movieId.startswith(DummyScraper.movieIdPrefix):
             # Dummy 영화정보 생성
             return DummyScraper(SVC_NAME).getMovieDetail4Kodi(movieId, lang, imageSrc)
         elif movieId.startswith(MockScraper.movieIdPrefix):
             # 테스트용
             return MockScraper(SVC_NAME).getMovieDetail4Kodi(movieId, lang, imageSrc)
         else:
             return '{"error":"Invalid Id","id":"{0}"}'.format(movieId)
 
     except Exception as e:
         log_err(str(e))
Esempio n. 3
0
 def findTvShows(self, query, year, lang, metaSrc):
     try:
         query = re.sub('[\.\[\]\-=:]', ' ', query)  # 특수문자 제거
         query = re.sub(' [ ]+', ' ', query)         # 연속된 공백은 공백 하나로 변경 
         query = query.strip().rstrip()              # 앞,뒤 공백 trim
         
         if (metaSrc == 'tmdb'):
             # TMDB에서 검색
             return TMDBScraper(SVC_NAME).findTvShows4Kodi(query, year, lang)
         elif (metaSrc == 'daum'):
             # Daum에서 검색
             return DaumScraper(SVC_NAME).findTvShows4Kodi(query, year, lang)
         elif (metaSrc == 'dummy'):
             # Dummy 검색결과 생성
             return DummyScraper(SVC_NAME).findTvShows4Kodi(query, year, lang)
         elif (metaSrc == 'mock'):
             # 테스트용
             return MockScraper(SVC_NAME).findTvShows4Kodi(query, year, lang)
         else:
             # TMDB에서 검색
             tmdbListJson = TMDBScraper(SVC_NAME).findTvShows4Kodi(query, year, lang)
             # Daum에서 검색
             daumListJson = DaumScraper(SVC_NAME).findTvShows4Kodi(query, year, lang)
             
             if (tmdbListJson is not None) and (daumListJson is not None):
                 # 두 개의 검색 결과를 merge
                 return self.mergeList(tmdbListJson, daumListJson)
             elif (tmdbListJson is not None):
                 return tmdbListJson
             elif (daumListJson is not None):
                 return daumListJson
             else:
                 # Dummy 리턴
                 #return DummyScraper(SVC_NAME).findTvShows4Kodi(query, year, lang)
                 return '{"error":"Nothing Found","query":"{0}"}'.format(query)
         
     except Exception as e:
         log_err(str(e))
Esempio n. 4
0
 def findMovies(self, query, year, lang, metaSrc):
     try:
         query = self.refineQuery(query)
         
         if (metaSrc == 'tmdb'):
             # TMDB에서 검색
             return TMDBScraper(SVC_NAME).findMovies4Kodi(query, year, lang) 
         elif (metaSrc == 'daum'):
             # Daum에서 검색
             return DaumScraper(SVC_NAME).findMovies4Kodi(query, year, lang)
         elif (metaSrc == 'dummy'):
             # Dummy 검색결과 생성
             return DummyScraper(SVC_NAME).findMovies4Kodi(query, year, lang)
         elif (metaSrc == 'mock'):
             # 테스트용
             return MockScraper(SVC_NAME).findMovies4Kodi(query, year, lang)
         else:
             # TMDB에서 검색
             tmdbListJson = TMDBScraper(SVC_NAME).findMovies4Kodi(query, year, lang)
             # Daum에서 검색
             daumListJson = DaumScraper(SVC_NAME).findMovies4Kodi(query, year, lang)
         
             if (tmdbListJson is not None) and (daumListJson is not None):
                 # 두 개의 검색 결과를 merge
                 return self.mergeList(tmdbListJson, daumListJson)
             elif (tmdbListJson is not None):
                 return tmdbListJson
             elif (daumListJson is not None):
                 return daumListJson
             else:
                 # Dummy 리턴
                 return DummyScraper(SVC_NAME).findMovies4Kodi(query, year, lang)
                 #return '{"error":"Nothing Found","query":"{0}"}'.format(query)
          
     except Exception as e:
         log_err(str(e))
Esempio n. 5
0
 def __init__(self, loggerName):
     '''
     Constructor
     '''
     MockScraper.__init__(self, loggerName)
Esempio n. 6
0
 def __init__(self, loggerName):
     '''
     Constructor
     '''
     MockScraper.__init__(self, loggerName)
     self.__initDB()
Esempio n. 7
0
            PORT_NUMBER = 8880
        
        # 기본 인코딩을 UTF-8로 변경
        reload(sys)
        sys.setdefaultencoding('utf-8')
        
        # Logger 초기화
        #LOG_FORMAT = '[%(asctime)-15s][%(name)s][%(module)s:%(funcName)s][%(levelname)s] %(message)s'
        LOG_FORMAT = '[%(asctime)-15s][%(name)s][%(levelname)s] %(message)s'
        #logFile = '{0}_{1}.log'.format(SVC_NAME, time.strftime('%Y%m%d')) 
        #logging.basicConfig(filename=logFile, format=LOG_FORMAT, level=logging.DEBUG)
        logging.basicConfig(format=LOG_FORMAT, level=logging.DEBUG)
        __logger__ = logging.getLogger(SVC_NAME)
        
        log_inf('==[STARTED]======================================')
        
        # 오래된 캐시 파일 삭제
        MockScraper(SVC_NAME).cache_clear()
        
        #Create a web server and define the handler to manage the
        #incoming request
        server = HTTPServer(('', PORT_NUMBER), ScraperProxyHandler)
        log_inf("Started httpserver on port {0}".format(PORT_NUMBER))
        
        #Wait forever for incoming htto requests
        server.serve_forever()
    
    except KeyboardInterrupt:
        log_inf("^C received, shutting down the web server")
        server.socket.close()