Ejemplo n.º 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)
Ejemplo n.º 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)
Ejemplo n.º 3
0
    def test_move_movie_by_file_path(self):
        movie_file_name = 'Abcde Fgh ijk Wjere To Found In 2010 HD-AA x111-ABC.mkv'
        file_handler.create_file(self._SOURCE_DIRECTORY + '/' + movie_file_name)

        source_file_path = self._SOURCE_DIRECTORY + '/' + movie_file_name
        mover.move_media_by_path(source_file_path, self._SHOW_DESTINATION_DIRECTORY, self._MOVIE_DESTINATION_DIRECTORY)

        destination_path = self._MOVIE_DESTINATION_DIRECTORY + '/' + file_handler.get_last_name_from_path(movie_file_name) + '/' + movie_file_name
        self._assert_file_moved(source_file_path, destination_path)
Ejemplo n.º 4
0
 def test_moving_with_only_season(self):
     episode = 'Lisa.Mirrander.S02.Special.Rocked.Summer.1080p.WEB-Org.AA02.1.LKIO.mkv'
     self._createSourceFile(episode)
     mover.move_media_by_path(self._SOURCE_DIRECTORY + episode,
                              self._SHOW_DESTINATION_DIRECTORY,
                              self._MOVIE_DESTINATION_DIRECTORY)
     self._assert_file_moved(
         episode, self._SHOW_DESTINATION_DIRECTORY +
         'Lisa Mirrander/Season 2/' + episode)
Ejemplo n.º 5
0
 def test_moving_episode_in_season_dir(self):
     folder_path = 'Kan Inte/Season 3/'
     file_name = 'Kan Inte S03E02 Apptest'
     source_path = self._createSourceFile(folder_path + file_name)
     mover.move_media_by_path(self._SOURCE_DIRECTORY + 'Kan Inte',
                              self._SHOW_DESTINATION_DIRECTORY,
                              self._MOVIE_DESTINATION_DIRECTORY)
     self._assert_file_moved(
         source_path,
         self._SHOW_DESTINATION_DIRECTORY + '/' + folder_path + file_name)
Ejemplo n.º 6
0
    def __create_move_and_validate_season1_episodes(self, episodes, show_name):
        for episode in episodes:
            file_path = show_name + episode
            self._createSourceFile(file_path)
            self._set_size_in_mb(file_path, 50)

        mover.move_media_by_path(self._SOURCE_DIRECTORY + show_name,
                                 self._SHOW_DESTINATION_DIRECTORY,
                                 self._MOVIE_DESTINATION_DIRECTORY)
        self.__validate_episodes_season_1(episodes, show_name)
Ejemplo n.º 7
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)
Ejemplo n.º 8
0
    def test_moving_wrong_formatted_episode_inside_right_formated_directory(
            self):
        folder_path = self._SOURCE_DIRECTORY + '/My.Stuff.Us.On.S10E09.HDTV.CCCC-ARD[axel]'
        source_path = self._createSourceFile(
            folder_path + '/my.stuff.us.on.1009.fktv-uuu[axel].mkv')

        mover.move_media_by_path(source_path, self._SHOW_DESTINATION_DIRECTORY,
                                 self._MOVIE_DESTINATION_DIRECTORY)
        self._assert_file_moved(
            folder_path, self._SHOW_DESTINATION_DIRECTORY +
            '/My Stuff Us On/Season 10/my.stuff.us.on.1009.fktv-uuu[axel].mkv')
Ejemplo n.º 9
0
    def test_move_show_by_file_path(self):
        tv_show_file_name = 'Man.In.The.on.Folder.S02E03.Dead.AAA.Walking.Wrong-DL.x123.BBA.mp4'
        file_handler.create_file(self._SOURCE_DIRECTORY + '/' +
                                 tv_show_file_name)

        source_file_path = self._SOURCE_DIRECTORY + '/' + tv_show_file_name
        mover.move_media_by_path(source_file_path,
                                 self._SHOW_DESTINATION_DIRECTORY,
                                 self._MOVIE_DESTINATION_DIRECTORY)

        destination_path = self._SHOW_DESTINATION_DIRECTORY + '/Man In The on Folder/Season 2/' + tv_show_file_name
        self._assert_file_moved(source_file_path, destination_path)
Ejemplo n.º 10
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
        )
Ejemplo n.º 11
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)
Ejemplo n.º 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'
        )
Ejemplo n.º 13
0
    def move_next_path(self):
        if self.__created_paths_queue.is_empty():
            return False

        path = self.__created_paths_queue.next()

        if self.__modified_paths_queue.in_queue(path):
            self.__modified_paths_queue.remove(path)
            return False

        self.__log_queue_status('Queues Before Move: Before removing path')

        # Remove file from queue before moving to avoid changes to file in modify queue
        self.__created_paths_queue.remove(path)

        self.__log_queue_status('Queues Before Move: after removing path')
        mover.move_media_by_path(path, self.__args.show_destination,
                                 self.__args.movie_destination)
        self.__log_queue_status('Queues After Move')
        return True
Ejemplo n.º 14
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)
Ejemplo n.º 15
0
    def test_moving_movie_with_sub_dir(self):
        class Destinations:

            def __init__(self, source, destination=None):
                self.source = source
                self.destination = destination if destination is not None else self.source

        movie_path = 'Castles.at.Sky.ghj'

        paths = [
            Destinations(movie_path + '/Castles.at.Sky.ghj.mp4'),
            Destinations(movie_path + '/Castles.at.Sky.ghj.nfo'),
            Destinations(movie_path + '/subs/English.srt', movie_path + '/Castles.at.Sky.ghj.en.srt'),
            Destinations(movie_path + '/subs/Spanish.srt', movie_path + '/Castles.at.Sky.ghj.es.srt'),
            Destinations(movie_path + '/subs/Portuguese.srt', movie_path + '/Castles.at.Sky.ghj.pt.srt'),
            Destinations(movie_path + '/subs/Swedish.srt', movie_path + '/Castles.at.Sky.ghj.sv.srt'),
            Destinations(movie_path + '/subs/Norwegian.srt', movie_path + '/Castles.at.Sky.ghj.no.srt'),
            Destinations(movie_path + '/subs/Danish.srt', movie_path + '/Castles.at.Sky.ghj.da.srt'),
            Destinations(movie_path + '/subs/Finnish.srt', movie_path + '/Castles.at.Sky.ghj.fi.srt'),
            Destinations(movie_path + '/subs/Indonesian.srt', movie_path + '/Castles.at.Sky.ghj.id.srt'),
            Destinations(movie_path + '/subs/Spanish.srt', movie_path + '/Castles.at.Sky.ghj.id.srt'),
            Destinations(movie_path + '/something_else.paa')
        ]

        for path in paths:
            self._createSourceFile(path.source)

        self._set_size_in_mb(paths[0].source, 60)

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

        for path in paths:
            self._assert_file_moved(path.source, self._MOVIE_DESTINATION_DIRECTORY + path.destination)
Ejemplo n.º 16
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)
Ejemplo n.º 17
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)
Ejemplo n.º 18
0
    def test_moving_multiple_episodes_with_subtitles_and_instruction_file(
            self):
        self._createSourceFile(
            'Kalla Rander, Valla Calla S01 (Generationen X) HDTV 720p/Kalla Rander, Valla Calla S01E01 (Generationen X) HDTV/Kalla Rander, Valla Calla S01E01 (Generationen X) HDTV.srt'
        )
        self._createSourceFile(
            'Kalla Rander, Valla Calla S01 (Generationen X) HDTV 720p/Kalla Rander, Valla Calla S01E01 (Generationen X) HDTV/Kalla Rander, Valla Calla S01E01 (Generationen X) HDTV.mkv'
        )
        self._set_size_in_mb(
            'Kalla Rander, Valla Calla S01 (Generationen X) HDTV 720p/Kalla Rander, Valla Calla S01E01 (Generationen X) HDTV/Kalla Rander, Valla Calla S01E01 (Generationen X) HDTV.mkv',
            60)

        self._createSourceFile(
            'Kalla Rander, Valla Calla S01 (Generationen X) HDTV 720p/Kalla Rander, Valla Calla S01E02 (Generationen X) HDTV/Kalla Rander, Valla Calla S01E02 (Generationen X) HDTV.srt'
        )
        self._createSourceFile(
            'Kalla Rander, Valla Calla S01 (Generationen X) HDTV 720p/Kalla Rander, Valla Calla S01E02 (Generationen X) HDTV/Kalla Rander, Valla Calla S01E02 (Generationen X) HDTV.mkv'
        )
        self._set_size_in_mb(
            'Kalla Rander, Valla Calla S01 (Generationen X) HDTV 720p/Kalla Rander, Valla Calla S01E02 (Generationen X) HDTV/Kalla Rander, Valla Calla S01E02 (Generationen X) HDTV.mkv',
            61)

        self._createSourceFile(
            'Kalla Rander, Valla Calla S01 (Generationen X) HDTV 720p/Kalla Rander, Valla Calla S01E03 (Generationen X) HDTV/Kalla Rander, Valla Calla S01E03 (Generationen X) HDTV.srt'
        )
        self._createSourceFile(
            'Kalla Rander, Valla Calla S01 (Generationen X) HDTV 720p/Kalla Rander, Valla Calla S01E03 (Generationen X) HDTV/Kalla Rander, Valla Calla S01E03 (Generationen X) HDTV.mkv'
        )
        self._set_size_in_mb(
            'Kalla Rander, Valla Calla S01 (Generationen X) HDTV 720p/Kalla Rander, Valla Calla S01E03 (Generationen X) HDTV/Kalla Rander, Valla Calla S01E03 (Generationen X) HDTV.mkv',
            62)

        self._createSourceFile(
            'Kalla Rander, Valla Calla S01 (Generationen X) HDTV 720p/Instructions.txt'
        )

        mover.move_media_by_path(
            self._SOURCE_DIRECTORY +
            'Kalla Rander, Valla Calla S01 (Generationen X) HDTV 720p',
            self._SHOW_DESTINATION_DIRECTORY,
            self._MOVIE_DESTINATION_DIRECTORY)

        self._assert_file_moved(
            'Kalla Rander, Valla Calla S01 (Generationen X) HDTV 720p/Kalla Rander, Valla Calla S01E01 (Generationen X) HDTV/Kalla Rander, Valla Calla S01E01 (Generationen X) HDTV.srt',
            'show-destination/Kalla Rander, Valla Calla/Season 1/Kalla Rander, Valla Calla S01E01 (Generationen X) HDTV.en.srt'
        )

        self._assert_file_moved(
            'Kalla Rander, Valla Calla S01 (Generationen X) HDTV 720p/Kalla Rander, Valla Calla S01E01 (Generationen X) HDTV/Kalla Rander, Valla Calla S01E01 (Generationen X) HDTV.mkv',
            'show-destination/Kalla Rander, Valla Calla/Season 1/Kalla Rander, Valla Calla S01E01 (Generationen X) HDTV.mkv'
        )

        self._assert_file_moved(
            'Kalla Rander, Valla Calla S01 (Generationen X) HDTV 720p/Kalla Rander, Valla Calla S01E02 (Generationen X) HDTV/Kalla Rander, Valla Calla S01E02 (Generationen X) HDTV.srt',
            'show-destination/Kalla Rander, Valla Calla/Season 1/Kalla Rander, Valla Calla S01E02 (Generationen X) HDTV.en.srt'
        )

        self._assert_file_moved(
            'Kalla Rander, Valla Calla S01 (Generationen X) HDTV 720p/Kalla Rander, Valla Calla S01E02 (Generationen X) HDTV/Kalla Rander, Valla Calla S01E02 (Generationen X) HDTV.mkv',
            'show-destination/Kalla Rander, Valla Calla/Season 1/Kalla Rander, Valla Calla S01E02 (Generationen X) HDTV.mkv'
        )

        self._assert_file_moved(
            'Kalla Rander, Valla Calla S01 (Generationen X) HDTV 720p/Kalla Rander, Valla Calla S01E03 (Generationen X) HDTV/Kalla Rander, Valla Calla S01E03 (Generationen X) HDTV.srt',
            'show-destination/Kalla Rander, Valla Calla/Season 1/Kalla Rander, Valla Calla S01E03 (Generationen X) HDTV.en.srt'
        )

        self._assert_file_moved(
            'Kalla Rander, Valla Calla S01 (Generationen X) HDTV 720p/Kalla Rander, Valla Calla S01E03 (Generationen X) HDTV/Kalla Rander, Valla Calla S01E03 (Generationen X) HDTV.mkv',
            'show-destination/Kalla Rander, Valla Calla/Season 1/Kalla Rander, Valla Calla S01E03 (Generationen X) HDTV.mkv'
        )

        self._assert_file_moved(
            'Kalla Rander, Valla Calla S01 (Generationen X) HDTV 720p/Instructions.txt',
            'show-destination/Kalla Rander, Valla Calla/Season 1/Instructions.txt'
        )