Exemple #1
0
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
Exemple #4
0
    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
Exemple #6
0
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