def write_movie(fulltitle, link, settings, parser, path, skip_nfo_exists=False, download_torrent=True): debug('+-------------------------------------------') filename = parser.make_filename() if filename: debug('fulltitle: ' + fulltitle.encode('utf-8')) debug('filename: ' + filename.encode('utf-8')) debug('-------------------------------------------+') from strmwriter import STRMWriter STRMWriter(parser.link()).write(filename, path, parser=parser, settings=settings) from nfowriter import NFOWriter NFOWriter(parser, movie_api=parser.movie_api()).write_movie( filename, path, skip_nfo_exists=skip_nfo_exists) if download_torrent: from downloader import TorrentDownloader TorrentDownloader(parser.link(), settings.torrents_path(), settings).download() return filesystem.relpath(filesystem.join( path, base.make_fullpath(filename, '.strm')), start=settings.base_path()) else: return None
def write_episode(info, parser, fulltitle, description, link, settings): path = parser.full_tvshow_path season_path = 'Season ' + str(info['season']) with filesystem.save_make_chdir_context(filesystem.join(path, season_path)): from nfowriter import NFOWriter filename = '%02d. episode_s%02de%02d' % (info['episode'], info['season'], info['episode']) episode = parser.tvshow_api.Episode(info['season'], info['episode']) if not episode: episode = { 'title': info['episode_name'], 'seasonNumber': info['season'], 'episodeNumber': info['episode'], 'image': '', 'airDate': '' } NFOWriter(parser, tvshow_api=parser.tvshow_api, movie_api=parser.movie_api()).write_episode(episode, filename) from strmwriter import STRMWriter import re link = re.sub(r'/dl/[\d\w]+/', '/dl/', link) from downloader import TorrentDownloader dl = TorrentDownloader(link, settings.torrents_path(), settings) dl.download() path = filesystem.join(settings.torrents_path(), dl.get_subdir_name(), dl.get_post_index() + '.torrent') STRMWriter(link).write(filename, settings=settings, parser=EpParser(parser, info, path, episode))
def write_twshow(info, settings): parser = DescriptionParser(info, settings) with filesystem.save_make_chdir_context(parser.full_tvshow_path): from nfowriter import NFOWriter NFOWriter(parser, tvshow_api=parser.tvshow_api, movie_api=parser.movie_api()).write_tvshow_nfo() return parser
def Episode(self, season, episode): from nfowriter import NFOWriter data_ms = MyShowsAPI.getEpisode(self, season, episode) data_tmdb = TheTVDBAPI.getEpisode(self, season, episode) res = data_ms.copy() res.update(data_tmdb) if 'plot' in res: res['plot'] = NFOWriter(None).stripHtml(res['plot']) return res
def write_movie(post, settings, tracker): debug('!-------------------------------------------') parser = DescriptionParser(post, settings=settings, tracker=tracker) if parser.parsed(): debug('+-------------------------------------------') full_title = parser.get_value('full_title') filename = parser.make_filename() if filename: debug('full_title: ' + full_title.encode('utf-8')) debug('filename: ' + filename.encode('utf-8')) debug('-------------------------------------------+') STRMWriter(parser.link()).write(filename, parser=parser, settings=settings) NFOWriter(parser, movie_api=parser.movie_api()).write_movie(filename) link = None try: link = post.select('a[href*="download.php"]')[0]['href'] except: try: link = post.find_parent('tr').select( 'a[href*="download.php"]')[0]['href'] except: pass #if link: # save_download_link(parser, settings, 'http://nnm-club.me/forum/' + link + '&uk=' + settings.nnmclub_passkey) from downloader import TorrentDownloader TorrentDownloader(parser.link(), settings.torrents_path(), settings).download() # time.sleep(1) del parser
def write_tvshow(fulltitle, link, settings, parser, path, skip_nfo_exists=False): from nfowriter import NFOWriter from strmwriter import STRMWriter import requests from downloader import TorrentDownloader dl = TorrentDownloader(parser.link(), settings.torrents_path(), settings) if not dl.download(): return None #r = requests.get(link) #if r.status_code == requests.codes.ok: with filesystem.fopen(dl.get_filename(), 'rb') as torr: content = torr.read() files = parse_torrent(content, season_from_title(fulltitle)) title = parser.get_value('title') debug(title) originaltitle = parser.get_value('originaltitle') debug(originaltitle) imdb_id = parser.get('imdb_id', None) kp_id = parser.get('kp_id', None) tvshow_api = TVShowAPI.get_by(originaltitle, title, imdb_id, kp_id) api_title = parser.movie_api().get('title') if not api_title: api_title = tvshow_api.Title() tvshow_path = make_fullpath( api_title if api_title is not None else title, '') debug(tvshow_path) if tvshow_path: tvshow_path = filesystem.join(path, tvshow_path) with filesystem.save_make_chdir_context(tvshow_path): NFOWriter( parser, tvshow_api=tvshow_api, movie_api=parser.movie_api()).write_tvshow_nfo(tvshow_path) # cnt = 0 for f in files: # cnt += 1 s_num = f['season'] if f['season'] else 1 try: episode = tvshow_api.Episode(s_num, f['episode']) if not episode: episode = { 'title': title, 'seasonNumber': s_num, 'episodeNumber': f['episode'], 'image': '', 'airDate': '' } season_path = 'Season %d' % s_num except BaseException as e: print_tb(e) continue season_path = filesystem.join(tvshow_path, season_path) with filesystem.save_make_chdir_context(season_path): results = filter( lambda x: x['season'] == s_num and x['episode'] == f['episode'], files) if len(results) > 1: # Has duplicate episodes filename = f['name'] else: try: cnt = f['episode'] filename = '%02d. episode_s%02de%02d' % ( cnt, s_num, f['episode']) except BaseException as e: print_tb(e) filename = f['name'] try: debug(filename) filename = filename.decode('utf-8') except: debug([filename]) STRMWriter(parser.link()).write(filename, season_path, index=f['index'], settings=settings, parser=parser) NFOWriter(parser, tvshow_api=tvshow_api, movie_api=parser.movie_api()).write_episode( episode, filename, season_path, skip_nfo_exists=skip_nfo_exists) return tvshow_path # end for else: return None