コード例 #1
0
ファイル: download_feeds.py プロジェクト: gelendir/animesubs
def main():

    parser = argparse.ArgumentParser(
        description="download torrent files from anime feeds")
    parser.add_argument("-s", "--scan", action="append",
        help="don't download torrents already downloaded in scanned directory "
             "(can be specified multiple times)")
    parser.add_argument("-l", "--latest-version", action='store_true',
        help="download only latest version of an episode (v2, v3, etc)")
    parser.add_argument("-c", "--config", default="config.yml",
        help="YAML config file (default: config.yml)")
    parser.add_argument("torrent_dir",
        help="torrent files will be downloaded here")

    args = parser.parse_args()

    with open(args.config) as configfile:
        config = yaml.load(configfile)

    anime = feeds.fetch_episodes_from_feeds(config)

    discarded = [a for a in anime if not 'anime' in a]
    anime = [a for a in anime if a not in discarded]

    if args.latest_version:
        anime = feeds.filter_episode_versions(anime)

    if args.scan:
        anime = scan_directories(anime, args.scan)

    download.download_torrents(anime, args.torrent_dir)

    if len(discarded) > 0:
        print "the following entries could not be processed:"
        pprint(discarded)
コード例 #2
0
ファイル: feeds_test.py プロジェクト: gelendir/animesubs
    def test_filter_two_anime_three_episodes_one_version(self):
        episodes = [
            {"anime": u"Mâgì", "episode": 1},
            {"anime": u"Àccel wôrld", "episode": 1, "version": 2},
            {"anime": u"Àccel wôrld", "episode": 1},
        ]
        expected = [{"anime": u"Mâgì", "episode": 1}, {"anime": u"Àccel wôrld", "episode": 1, "version": 2}]

        result = feeds.filter_episode_versions(episodes)
        self.assertEquals(sorted(result), sorted(expected))
コード例 #3
0
ファイル: feeds_test.py プロジェクト: gelendir/animesubs
    def test_filter_two_anime(self):
        episodes = [{"anime": u"Mâgì", "episode": 1}, {"anime": u"Àccel wôrld", "episode": 1}]
        expected = list(episodes)

        result = feeds.filter_episode_versions(episodes)
        self.assertEquals(sorted(result), sorted(expected))
コード例 #4
0
ファイル: feeds_test.py プロジェクト: gelendir/animesubs
    def test_filter_same_episode_one_version(self):
        episodes = [{"anime": u"Mâgì", "episode": 1}, {"anime": u"Mâgì", "episode": 1, "version": 2}]
        expected = [{"anime": u"Mâgì", "episode": 1, "version": 2}]

        result = feeds.filter_episode_versions(episodes)
        self.assertEquals(result, expected)
コード例 #5
0
ファイル: feeds_test.py プロジェクト: gelendir/animesubs
    def test_filter_two_episodes_with_version(self):
        episodes = [{"anime": u"Mâgì", "episode": 1, "version": 2}, {"anime": u"Mâgì", "episode": 2, "version": 2}]
        expected = episodes

        result = feeds.filter_episode_versions(episodes)
        self.assertEquals(result, expected)
コード例 #6
0
ファイル: feeds_test.py プロジェクト: gelendir/animesubs
    def test_filter_one_episode_no_version(self):
        episodes = [{"anime": u"Mâgì", "episode": 1}]
        expected = episodes

        result = feeds.filter_episode_versions(episodes)
        self.assertEquals(result, expected)
コード例 #7
0
ファイル: feeds_test.py プロジェクト: gelendir/animesubs
    def test_filter_empty_list(self):
        episodes = []
        expected = []

        result = feeds.filter_episode_versions(episodes)
        self.assertEquals(result, expected)