Пример #1
0
    def test_same_show_name_on_each_file(self):
        show_source_dir = 'kung fo season 1 (1080p bd 123)/'
        destination_show_path = self._SHOW_DESTINATION_DIRECTORY + '/Kung Fo/Season 1/'

        file_name_1 = 'Kung fo S01E01 Completely Strange (1080p) (C).mkv'
        file_name_2 = '(C) for Audio Commentary.txt'
        file_name_3 = 'Kung fo S01E02 Somewhat Stranger (1080p) (C).mkv'

        file_handler.create_dir(destination_show_path)

        self._createSourceFile(show_source_dir + file_name_1)
        self._createSourceFile(show_source_dir + file_name_2)
        self._createSourceFile(show_source_dir + file_name_3)

        mover.move_media_by_path(self._SOURCE_DIRECTORY + show_source_dir,
                                 self._SHOW_DESTINATION_DIRECTORY,
                                 self._MOVIE_DESTINATION_DIRECTORY)

        self._assert_file_moved(show_source_dir + file_name_1,
                                destination_show_path + file_name_1)
        self._assert_file_moved(
            show_source_dir + file_name_2,
            self._SHOW_DESTINATION_DIRECTORY + '/Kung Fo/' + file_name_2)
        self._assert_file_moved(show_source_dir + file_name_3,
                                destination_show_path + file_name_3)
Пример #2
0
 def test_moving_movie_in_directory(self):
     folder_path = self._SOURCE_DIRECTORY + '007 Going For Old Time HD-TS x264-CPG'
     file_handler.create_dir(folder_path)
     file_path = folder_path + '/007 Going For Old Time HD-TS x264-CPG.mp4'
     file_handler.create_file(file_path)
     mover.move_media_by_path(folder_path, self._SHOW_DESTINATION_DIRECTORY, self._MOVIE_DESTINATION_DIRECTORY)
     file_destination_path = self._MOVIE_DESTINATION_DIRECTORY + '007 Going For Old Time HD-TS x264-CPG/007 Going For Old Time HD-TS x264-CPG.mp4'
     self._assert_file_moved(file_path, file_destination_path)
Пример #3
0
    def __test_matching_file_in_folder(self):
        folder_path = self.__SOURCE_DIRECTORY_PATH + '/hey.arnold.S09E01.SOMETHING.something-something'
        file_handler.create_dir(folder_path)
        search_for = 'hey arnold'

        file_paths = file_matcher.search_files(search_for,
                                               self.__SOURCE_DIRECTORY_PATH)
        self.assertEqual(1, len(file_paths))
        self.assertEqual(folder_path, file_paths[0])
Пример #4
0
    def test_moving_movie_with_image(self):
        folder_path = self._SOURCE_DIRECTORY + 'Konstig (2017) [1080p] [JKL.KL]'
        file_handler.create_dir(folder_path)
        source_file_path = folder_path + '/WWW.YTS.AG.jpg'
        file_handler.create_file(source_file_path)

        mover.move_media_by_path(folder_path, self._SHOW_DESTINATION_DIRECTORY, self._MOVIE_DESTINATION_DIRECTORY)

        file_destination_path = self._MOVIE_DESTINATION_DIRECTORY + '/Konstig (2017) [1080p] [JKL.KL]/WWW.YTS.AG.jpg'
        self._assert_file_moved(source_file_path, file_destination_path)
Пример #5
0
    def test_moving_episodes_by_name_in_directory(self):
        folder_path = self._SOURCE_DIRECTORY + '/Cool.And.Welcome.To.Earth.S01.Season.1.720p.5.1Ch.Web-DL.ReEnc-DeeJayAhmed'
        file_handler.create_dir(folder_path)
        file_path_1 = folder_path + '/Cool.And.Welcome.To.Earth.S01E13.720p.5.1Ch.Web-DL.ReEnc-DeeJayAhmed.mkv'
        file_handler.create_file(file_path_1)

        mover.move_media_by_name('Cool And Welcome To Earth',
                                 self._SOURCE_DIRECTORY,
                                 self._SHOW_DESTINATION_DIRECTORY,
                                 self._MOVIE_DESTINATION_DIRECTORY)

        self._assert_file_moved(
            file_path_1, self._SHOW_DESTINATION_DIRECTORY +
            'Cool And Welcome To Earth/Season 1/Cool.And.Welcome.To.Earth.S01E13.720p.5.1Ch.Web-DL.ReEnc-DeeJayAhmed.mkv'
        )
Пример #6
0
    def test_movie_destination_no_slash_in_path(self):
        dir_name = 'Tah Felling Out Of hope In Valley (2019) [Converted] [movie-test-no-path]/'
        file_handler.create_dir(self._SOURCE_DIRECTORY  + dir_name)
        movie_file = 'Tah.Fellingr Out Of hope In Valley.2019.1080p.Converted-[movie-test-no-path].mp4'
        file_handler.create_file(self._SOURCE_DIRECTORY + dir_name + movie_file)

        mover.move_media_by_path(
            self._SOURCE_DIRECTORY + dir_name,
            self._SHOW_DESTINATION_DIRECTORY,
            self._MOVIE_DESTINATION_DIRECTORY[:-1]
        )

        self._assert_file_moved(
            self._SOURCE_DIRECTORY + dir_name + movie_file,
            self._MOVIE_DESTINATION_DIRECTORY + dir_name + movie_file
        )
Пример #7
0
    def test_moving_episodes_by_file_in_directory(self):
        folder_path = self._SOURCE_DIRECTORY + 'hey.arnold.season1.720p.webdl'
        file_handler.create_dir(folder_path)
        source_file_path_1 = folder_path + '/hey.arnold.S09E01.SOMETHING.something-something'
        file_handler.create_file(source_file_path_1)

        source_file_path_2 = folder_path + '/hey.arnold.S09E02.SOMETHING.something-something.mp4'
        file_handler.create_file(source_file_path_2)

        mover.move_media_by_path(folder_path, self._SHOW_DESTINATION_DIRECTORY,
                                 self._MOVIE_DESTINATION_DIRECTORY)

        file_destination_path = self._SHOW_DESTINATION_DIRECTORY + '/hey arnold/Season 9/hey.arnold.S09E01.SOMETHING.something-something'
        self._assert_file_moved(source_file_path_1, file_destination_path)

        file_destination_path = self._SHOW_DESTINATION_DIRECTORY + '/hey arnold/Season 9/hey.arnold.S09E02.SOMETHING.something-something.mp4'
        self._assert_file_moved(source_file_path_2, file_destination_path)
Пример #8
0
    def test_moving_movies_by_name(self):
        file_1_folder_path = self._SOURCE_DIRECTORY + '/201 Coolings 1999.DVDRIP.Xvid.NVesub-'
        file_handler.create_dir(file_1_folder_path)
        file_1_path = file_1_folder_path + '/201 Coolings 1999.___RIP.Xvid.NVesub-123.mp4'
        file_handler.create_file(file_1_path)

        file_2_path = self._SOURCE_DIRECTORY + '/201 Coolings 200.DADRAP.NVesub.mp4'
        file_handler.create_file(file_2_path)

        mover.move_media_by_name(
            '201 Coolings',
            self._SOURCE_DIRECTORY,
            self._SHOW_DESTINATION_DIRECTORY,
            self._MOVIE_DESTINATION_DIRECTORY
        )

        file_destination_path = self._MOVIE_DESTINATION_DIRECTORY + '/201 Coolings 1999.DVDRIP.Xvid.NVesub-/201 Coolings 1999.___RIP.Xvid.NVesub-123.mp4'
        self._assert_file_moved(file_1_folder_path, file_destination_path)

        file_destination_path = self._MOVIE_DESTINATION_DIRECTORY + '/201 Coolings 200.DADRAP.NVesub/201 Coolings 200.DADRAP.NVesub.mp4'
        self._assert_file_moved(file_2_path, file_destination_path)
Пример #9
0
    def setUp(self):
        self._create_test_dirs()
        file_handler.create_file(self._SOURCE_DIRECTORY + '/' +
                                 self.__TV_SHOW_FILE_NAME_1)
        file_handler.create_file(self._SOURCE_DIRECTORY + '/' +
                                 self.__TV_SHOW_FILE_NAME_2)
        file_handler.create_file(self._SOURCE_DIRECTORY + '/' +
                                 self.__TV_SHOW_FILE_NAME_3)
        file_handler.create_file(self._SOURCE_DIRECTORY + '/' +
                                 self.__MOVIE_FILE_NAME_1)
        file_handler.create_file(self._SOURCE_DIRECTORY + '/' +
                                 self.__MOVIE_FILE_NAME_2)

        file_handler.create_dir(self._SHOW_DESTINATION_DIRECTORY +
                                'Old Stuff/Season 2/')
        file_handler.create_file(self._SHOW_DESTINATION_DIRECTORY +
                                 'Old Stuff/Season 2/' +
                                 self.__TV_SHOW_FILE_NAME_3_ORIGINAL)
        file_handler.create_file(self._SOURCE_DIRECTORY + '/' +
                                 self.__TV_SHOW_FILE_NAME_3_PROPER)

        parent_path = self._SOURCE_DIRECTORY + '/' + self.__TV_SHOW_FILE_NAME_4_PARENT_FOLDER
        file_handler.create_dir(parent_path)
        file_handler.create_file(parent_path + '/' +
                                 self.__TV_SHOW_FILE_NAME_4)

        parent_path = self._SOURCE_DIRECTORY + '/' + self.__TV_SHOW_FILE_NAME_5_PARENT_FOLDER
        file_handler.create_dir(parent_path)
        file_handler.create_file(parent_path + '/' +
                                 self.__TV_SHOW_FILE_NAME_5)
Пример #10
0
    def test_screens_images_moved_correctly(self):
        show_name = 'what happens in the sun/'
        show_source_dir = '/What Happens in the Sun S01E01 1080p WEB H264'
        source_show_dir = self._SOURCE_DIRECTORY + show_source_dir

        file_handler.create_dir(source_show_dir)
        episode = '/what.happens.in.the.sun.s01e01.1080p.web.h264.mkv'
        file_handler.create_file(source_show_dir + episode)

        screen_dir = '/Screens'
        file_handler.create_dir(source_show_dir + screen_dir)
        screen_file = '/screen0001.jpg'
        file_handler.create_file(source_show_dir + screen_dir + screen_file)

        mover.move_media_by_path(source_show_dir,
                                 self._SHOW_DESTINATION_DIRECTORY,
                                 self._MOVIE_DESTINATION_DIRECTORY)

        self._assert_file_moved(
            source_show_dir + screen_dir + screen_file,
            self._SHOW_DESTINATION_DIRECTORY + show_name + screen_file)

        self.__validate_episodes_season_1([episode], show_name)
Пример #11
0
    def test_move_shows_into_existing_season_directory(self):
        file_handler.create_dir(self._SHOW_DESTINATION_DIRECTORY +
                                '/Kontroll US/Season 7/')
        tv_show_file_name = 'kontroll.US.S07E02.720p.AM.SOMETING-OTHER-DEMINSION[aaa]'
        file_source_path = self._SOURCE_DIRECTORY + '/' + tv_show_file_name
        file_handler.create_file(file_source_path)

        # move by name
        mover.move_media_by_name('kontroll', self._SOURCE_DIRECTORY,
                                 self._SHOW_DESTINATION_DIRECTORY,
                                 self._MOVIE_DESTINATION_DIRECTORY)

        file_destination_path = self._SHOW_DESTINATION_DIRECTORY + '/Kontroll US/Season 7/' + tv_show_file_name
        self._assert_file_moved(file_source_path, file_destination_path)

        # move by file
        file_handler.delete_file(file_destination_path)
        file_handler.create_file(file_source_path)
        mover.move_media_by_path(file_source_path,
                                 self._SHOW_DESTINATION_DIRECTORY,
                                 self._MOVIE_DESTINATION_DIRECTORY)
        self._assert_file_moved(file_source_path, file_destination_path)

        # Test with two letter word in the middle of file name that should not be stripped when matching
        file_handler.create_dir(self._SHOW_DESTINATION_DIRECTORY +
                                '/Cool And Welcome To Earth/Season 2/')
        tv_show_file_name = 'Cool.And.Welcome.To.Earth.S02E02.The.Boo.720p.KOL-OL.A300.MP#.mp4'
        file_source_path = self._SOURCE_DIRECTORY + '/' + tv_show_file_name
        file_handler.create_file(file_source_path)

        mover.move_media_by_name('Cool And Welcome To Earth',
                                 self._SOURCE_DIRECTORY,
                                 self._SHOW_DESTINATION_DIRECTORY,
                                 self._MOVIE_DESTINATION_DIRECTORY)

        file_destination_path = self._SHOW_DESTINATION_DIRECTORY + '/Cool And Welcome To Earth/Season 2/' + tv_show_file_name
        self._assert_file_moved(file_source_path, file_destination_path)
Пример #12
0
    def test_multiple_matches(self):
        file_handler.create_dir(f'{self._SHOW_DESTINATION_DIRECTORY}mr test')
        file_handler.create_dir(
            f'{self._SHOW_DESTINATION_DIRECTORY}Test Test and Test')

        episode_name = 'Mr.Test.S07E01.REPACK.a111-AAA[a]'
        file_handler.create_dir(f'{self._SOURCE_DIRECTORY}{episode_name}')
        file_path = f'{self._SOURCE_DIRECTORY}{episode_name}/{episode_name}.mp4'
        file_handler.create_file(file_path)

        mover.move_media_by_path(self._SOURCE_DIRECTORY + episode_name,
                                 self._SHOW_DESTINATION_DIRECTORY,
                                 self._MOVIE_DESTINATION_DIRECTORY)

        self._assert_file_moved(
            file_path,
            f'{self._SHOW_DESTINATION_DIRECTORY}mr test/Season 7/{episode_name}.mp4'
        )
Пример #13
0
    def test_moving_movie_with_extra_dir(self):
        movie_dir = 'Movie.The.Movie.1234'
        file_handler.create_dir(self._SOURCE_DIRECTORY + movie_dir)

        movie_file = movie_dir + '/Movie.The.Movie.1234.mkv'
        file_handler.create_file(self._SOURCE_DIRECTORY + movie_file)

        extras_dir = movie_dir + '/Extras'
        file_handler.create_dir(self._SOURCE_DIRECTORY + extras_dir)

        extras_file1 = extras_dir + '/Movie.The.Movie.1234.Theatrical.Trailer.mkv'
        file_handler.create_file(self._SOURCE_DIRECTORY + extras_file1)

        extras_file2 = extras_dir + '/Movie.3.Theatrical.Trailer.mkv'
        file_handler.create_file(self._SOURCE_DIRECTORY + extras_file2)

        extras_soundtrack_dir = extras_dir + '/Soundtrack Live'
        file_handler.create_dir(self._SOURCE_DIRECTORY + extras_soundtrack_dir)

        extras_soundtrack_file1 = extras_soundtrack_dir + '/Making.the.Soundtrack.mkv'
        file_handler.create_file(self._SOURCE_DIRECTORY + extras_soundtrack_file1)

        extras_soundtrack_file2 = extras_soundtrack_dir + '/original.song.mkv'
        file_handler.create_file(self._SOURCE_DIRECTORY + extras_soundtrack_file2)

        mover.move_media_by_path(
            self._SOURCE_DIRECTORY + movie_dir,
            self._SHOW_DESTINATION_DIRECTORY,
            self._MOVIE_DESTINATION_DIRECTORY
        )

        self._assert_file_moved(movie_file, self._MOVIE_DESTINATION_DIRECTORY + movie_file)
        self._assert_file_moved(extras_file1, self._MOVIE_DESTINATION_DIRECTORY + extras_file1)
        self._assert_file_moved(extras_file2, self._MOVIE_DESTINATION_DIRECTORY + extras_file2)
        self._assert_file_moved(extras_soundtrack_file1, self._MOVIE_DESTINATION_DIRECTORY + extras_soundtrack_file1)
        self._assert_file_moved(extras_soundtrack_file2, self._MOVIE_DESTINATION_DIRECTORY + extras_soundtrack_file2)
Пример #14
0
 def _create_test_dirs(self):
     self._delete_test_dirs()
     file_handler.create_dir(self._SOURCE_DIRECTORY)
     file_handler.create_dir(self._SHOW_DESTINATION_DIRECTORY)
     file_handler.create_dir(self._MOVIE_DESTINATION_DIRECTORY)
Пример #15
0
 def setUp(self):
     file_handler.create_dir(self.__SOURCE_DIRECTORY_PATH)
Пример #16
0
    def setUp(self):
        self._create_test_dirs()
        self.__TV_SHOW_FILE_SOURCE_PATH = 'aaa.bbb.s01e04.something.something-something.mp4'
        self.__TV_SHOW_FILE_DESTINATION_PATH = self._SHOW_DESTINATION_DIRECTORY + 'aaa bbb/Season 1/aaa.bbb.s01e04.something.something-something.mp4'

        self.__TV_SHOW_2_FILE_1_SOURCE_PATH = 'Moradeaa.S01E03.something.something-something.mkv'
        self.__TV_SHOW_2_FILE_1_DESTINATION_PATH = self._SHOW_DESTINATION_DIRECTORY + 'Moradeaa/Season 1/Moradeaa.S01E03.something.something-something.mkv'

        self.__TV_SHOW_2_FILE_2_SOURCE_PATH = 'Moradeaa.S01E02.something.something-something.mkv'
        self.__TV_SHOW_2_FILE_2_DESTINATION_PATH = self._SHOW_DESTINATION_DIRECTORY + 'Moradeaa/Season 1/Moradeaa.S01E02.something.something-something.mkv'

        self.__TV_SHOW_2_FILE_3_ORIGINAL_2 = 'Mordeaa.S06E14.720p.HDTV.x000-Argos.mkv'
        self.__TV_SHOW_2_FILE_ORIGINAL_2_NFO = 'Mordeaa.S06E14.720p.HDTV.x000-Argos.nfo'
        self.__TV_SHOW_2_FILE_ORIGINAL_1 = 'Mordeaa.S06E15.720p.HDTV.x264-Sallad[rarbgag].mkv'
        self.__TV_SHOW_2_FILE_ORIGINAL_1_NFO = 'Mordeaa.S06E15.720p.HDTV.x264-Sallad[rarbgag].nfo'
        self.__TV_SHOW_2_FILE_PROPER = 'Mordeaa.S06E15.PROPER.720p.HDTV.x264-ARGON-[123].mkv'
        self.__TV_SHOW_2_FILE_PROPER_NFO = 'Mordeaa.S06E15.PROPER.720p.HDTV.x264-ARGON-[123].nfo'

        self.__TV_SHOW_3_SEASON_DESTINATION_DIRECTORY_PATH = self._SHOW_DESTINATION_DIRECTORY + 'ABC/Season 9'
        self.__TV_SHOW_3_FILE_SOURCE_PATH = 'abc.S09E02.something.something-something.mp4'
        self.__TV_SHOW_3_FILE_DESTINATION_PATH = self.__TV_SHOW_3_SEASON_DESTINATION_DIRECTORY_PATH + '/abc.S09E02.something.something-something.mp4'

        self.__TV_SHOW_4_DESTINATION_DIRECTORY_PATH = self._SHOW_DESTINATION_DIRECTORY + 'Ab Cd Ef Gh/Season 10'
        self.__TV_SHOW_4_SOURCE_PATH = 'Ab.Cd.Ef.Gh.PROPER.S10E13.720p.HDTV.q123-FLOOR.mkv'
        self.__TV_SHOW_4_DESTINATION_PATH = self.__TV_SHOW_4_DESTINATION_DIRECTORY_PATH + '/Ab.Cd.Ef.Gh.PROPER.S10E13.720p.HDTV.q123-FLOOR.mkv'

        self.__TV_SHOW_5_FILE_SOURCE_PATH = 'Kongrass.2016.S01E06.720p.KONG-GG.maker.MAK.SWE.mkv'
        self.__TV_SHOW_5_DESTINATION_PATH = self._SHOW_DESTINATION_DIRECTORY + 'Kongrass/Season 1/Kongrass.2016.S01E06.720p.KONG-GG.maker.MAK.SWE.mkv'

        self.__SAMPLE_FILE_SOURCE_DIRECTORY = 'Felkod.S01E03.asd.dsa.dsa-AJKL[rarbg/Sample/'

        self.__SAMPLE_FILE_1_SOURCE_PATH = self.__SAMPLE_FILE_SOURCE_DIRECTORY + 'sample-felkod.s01e03.720p.ui.qq-oiu.mkv'
        self.__SAMPLE_FILE_1_DESTINATION_PATH = self._SHOW_DESTINATION_DIRECTORY + 'felkod/Season 1/sample-felkod.s01e03.720p.ui.qq-oiu.mkv'

        self.__SAMPLE_FILE_2_SOURCE_PATH = self.__SAMPLE_FILE_SOURCE_DIRECTORY + 'sample.felkod.s01e03.720p.ui.qq-oiu.mkv'
        self.__SAMPLE_FILE_2_DESTINATION_PATH = self._SHOW_DESTINATION_DIRECTORY + 'felkod/Season 1/sample.felkod.s01e03.720p.ui.qq-oiu.mkv'

        self.__SAMPLE_FILE_3_SOURCE_PATH = self.__SAMPLE_FILE_SOURCE_DIRECTORY + 'SaMple-felkod.s01e03.720p.aaa.x123-RORING.mkv'
        self.__SAMPLE_FILE_3_DESTINATION_PATH = self._SHOW_DESTINATION_DIRECTORY + 'felkod/Season 1/SaMple-felkod.s01e03.720p.aaa.x123-RORING.mkv'

        self._createSourceFile(self.__TV_SHOW_2_FILE_1_SOURCE_PATH)
        self._createSourceFile(self.__TV_SHOW_FILE_SOURCE_PATH)
        self._createSourceFile(self.__TV_SHOW_2_FILE_2_SOURCE_PATH)
        self._createSourceFile(self.__TV_SHOW_3_FILE_SOURCE_PATH)
        self._createSourceFile(self.__TV_SHOW_4_SOURCE_PATH)

        file_handler.create_dir(
            self.__TV_SHOW_3_SEASON_DESTINATION_DIRECTORY_PATH)
        file_handler.create_dir(self.__TV_SHOW_4_DESTINATION_DIRECTORY_PATH)

        file_handler.create_file(self._SHOW_DESTINATION_DIRECTORY +
                                 'Mordeaa/Season 6/' +
                                 self.__TV_SHOW_2_FILE_ORIGINAL_1)
        file_handler.create_file(self._SHOW_DESTINATION_DIRECTORY +
                                 'Mordeaa/Season 6/' +
                                 self.__TV_SHOW_2_FILE_ORIGINAL_1_NFO)
        file_handler.create_file(self._SHOW_DESTINATION_DIRECTORY +
                                 'Mordeaa/Season 6/' +
                                 self.__TV_SHOW_2_FILE_3_ORIGINAL_2)
        file_handler.create_file(self._SHOW_DESTINATION_DIRECTORY +
                                 'Mordeaa/Season 6/' +
                                 self.__TV_SHOW_2_FILE_ORIGINAL_2_NFO)
        self._createSourceFile(self.__TV_SHOW_2_FILE_PROPER)
        self._createSourceFile(self.__TV_SHOW_2_FILE_PROPER_NFO)

        self._createSourceFile(self.__SAMPLE_FILE_1_SOURCE_PATH)
        self._createSourceFile(self.__SAMPLE_FILE_2_SOURCE_PATH)
        self._createSourceFile(self.__SAMPLE_FILE_3_SOURCE_PATH)

        self._createSourceFile(self.__TV_SHOW_5_FILE_SOURCE_PATH)
Пример #17
0
 def _create_source_dir(self, relative_path):
     dir_path = f'{self._SOURCE_DIRECTORY}{relative_path}'
     file_handler.create_dir(dir_path)
     return dir_path