Esempio n. 1
0
    def test_save_multiple_movies_to_csv(self):
        movie2 = dict()
        movie2['title'] = 'Star Trek - Der Film'
        movie2['year'] = 1979
        movie2['imdb'] = dict()
        movie2['imdb']['id'] = 'tt0079945'
        movie2['imdb']['url'] = 'http://www.imdb.com/title/tt0079945'
        movie2['trakt'] = dict()
        movie2['trakt']['id'] = '117'
        movie2['trakt'][
            'url'] = 'https://trakt.tv/movies/star-trek-the-motion-picture-1979'
        movie2['trakt']['my_rating'] = 8

        movies = [self.movie, movie2]
        filename = os.path.join(os.path.join(TESTDATA_PATH, 'exports'),
                                'TEST_multiple_movies.csv')
        file_impex.save_movies_to_csv(movies,
                                      os.path.join(TESTDATA_PATH, 'exports'),
                                      'TEST_multiple_movies.csv', 'trakt')
        with open(filename) as file:
            reader = csv.reader(file, delimiter=',')
            next(reader)  # csv header
            row1 = next(reader)
            self.assertEqual(self.movie['title'], row1[5])
            self.assertEqual(self.movie['year'], int(row1[11]))
            self.assertEqual(self.movie['imdb']['id'], row1[1])
            self.assertEqual(self.movie['imdb']['url'], row1[15])
            self.assertEqual(self.movie['trakt']['my_rating'], int(row1[8]))
            row2 = next(reader)
            self.assertEqual(movie2['title'], row2[5])
            self.assertEqual(movie2['year'], int(row2[11]))
            self.assertEqual(movie2['imdb']['id'], row2[1])
            self.assertEqual(movie2['imdb']['url'], row2[15])
            self.assertEqual(movie2['trakt']['my_rating'], int(row2[8]))
        os.remove(filename)
Esempio n. 2
0
    def insert(self, movies, source):
        sys.stdout.write('\r===== %s: posting %i movies\r\n' %
                         (self.site.site_name, len(movies)))
        sys.stdout.flush()

        save_movies_to_csv(movies,
                           folder=self.exports_folder,
                           filename=CSV_FILE_NAME,
                           rating_source=source)
        self.site.browser.get(
            'https://www.themoviedb.org/account/StegSchreck/import')
        time.sleep(1)
        self.site.browser.find_element_by_id('csv_file').send_keys(
            os.path.join(self.exports_folder, CSV_FILE_NAME))
        time.sleep(1)
        self.site.browser.find_element_by_xpath(
            "//form[@name='import_csv']//input[@type='submit']").click()
        time.sleep(3)

        sys.stdout.write(
            '\r\n===== %s: The file with %i movies was uploaded and will be process by the servers. '
            'You may check your TMDB account later. '
            'Note, that this will NOT overwrite any existing ratings.\r\n' %
            (self.site.site_name, len(movies)))
        sys.stdout.flush()

        self.site.kill_browser()
Esempio n. 3
0
    def insert(self, movies, source):
        sys.stdout.write(
            '\r===== {site_displayname}: posting {movies_count} movies\r\n'.
            format(site_displayname=self.site.site_displayname,
                   movies_count=len(movies)))
        sys.stdout.flush()

        save_movies_to_csv(movies,
                           folder=self.exports_folder,
                           filename=self.csv_filename,
                           rating_source=source)
        self.pre_upload_action()
        self.upload_csv_file()
        self.post_upload_action()

        sys.stdout.write(
            '\r\n===== {site_displayname}: The file with {movies_count} movies was uploaded '
            'and will be process by the servers. '
            'You may check your {site_name} account later.\r\n'
            'Note, that this might not overwrite any existing ratings.\r\n'.
            format(site_displayname=self.site.site_displayname,
                   movies_count=len(movies),
                   site_name=self.site.site_name))
        sys.stdout.flush()

        self.site.browser_handler.kill()
Esempio n. 4
0
    def insert(self, movies, source):
        sys.stdout.write('\r===== %s: posting %i movies\r\n' %
                         (self.site.site_name, len(movies)))
        sys.stdout.flush()

        save_movies_to_csv(movies,
                           folder=self.exports_folder,
                           filename=CSV_FILE_NAME,
                           rating_source=source)
        self.site.browser.get(
            'https://movielens.org/profile/settings/import-export')
        time.sleep(1)
        self.site.browser.find_element_by_id('infile').send_keys(
            os.path.join(self.exports_folder, CSV_FILE_NAME))
        time.sleep(1)
        self.site.browser.find_element_by_xpath(
            "//form[@name='importForm']//button[@type='submit']").click()
        time.sleep(3)

        sys.stdout.write('\r\n===== %s: The file with %i movies was uploaded '
                         'and will be process by the servers. '
                         'You may check your Movielens account later.\r\n' %
                         (self.site.site_name, len(movies)))
        sys.stdout.flush()

        self.site.kill_browser()
Esempio n. 5
0
 def test_save_single_movie_to_csv(self):
     movies = [self.movie]
     filename = os.path.join(os.path.join(TESTDATA_PATH, 'exports'), 'TEST_single_movie.csv')
     file_impex.save_movies_to_csv(movies, os.path.join(TESTDATA_PATH, 'exports'),
                                   'TEST_single_movie.csv',
                                   'imdb')
     with open(filename) as file:
         reader = csv.reader(file, delimiter=',')
         next(reader)  # csv header
         row = next(reader)
         self.assertEqual(self.movie['title'], row[5])
         self.assertEqual(self.movie['year'], int(row[11]))
         self.assertEqual(self.movie['imdb']['id'], row[1])
         self.assertEqual(self.movie['imdb']['url'], row[15])
         self.assertEqual(self.movie['imdb']['my_rating'], int(row[8]))
     os.remove(filename)
Esempio n. 6
0
    def test_save_multiple_movies_to_csv(self):
        movie2 = dict()
        movie2["title"] = "Star Trek - Der Film"
        movie2["year"] = 1979
        movie2["imdb"] = dict()
        movie2["imdb"]["id"] = "tt0079945"
        movie2["imdb"]["url"] = "https://www.imdb.com/title/tt0079945"
        movie2["trakt"] = dict()
        movie2["trakt"]["id"] = "117"
        movie2["trakt"][
            "url"] = "https://trakt.tv/movies/star-trek-the-motion-picture-1979"
        movie2["trakt"]["my_rating"] = 8

        movies = [self.movie, movie2]
        filename = os.path.join(os.path.join(TESTDATA_PATH, "exports"),
                                "TEST_multiple_movies.csv")
        file_impex.save_movies_to_csv(
            movies,
            os.path.join(TESTDATA_PATH, "exports"),
            "TEST_multiple_movies.csv",
            "trakt",
        )
        with open(filename) as file:
            reader = csv.reader(file, delimiter=",")
            headers = next(reader)  # csv header
            row1 = next(reader)
            self.assertEqual(self.movie["title"], row1[headers.index("Title")])
            self.assertEqual(self.movie["year"],
                             int(row1[headers.index("Year")]))
            self.assertEqual(self.movie["imdb"]["id"],
                             row1[headers.index("Const")])
            self.assertEqual(self.movie["imdb"]["url"],
                             row1[headers.index("URL")])
            self.assertEqual(
                self.movie["trakt"]["my_rating"],
                int(row1[headers.index("Your Rating")]),
            )
            row2 = next(reader)
            self.assertEqual(movie2["title"], row2[headers.index("Title")])
            self.assertEqual(movie2["year"], int(row2[headers.index("Year")]))
            self.assertEqual(movie2["imdb"]["id"],
                             row2[headers.index("Const")])
            self.assertEqual(movie2["imdb"]["url"], row2[headers.index("URL")])
            self.assertEqual(movie2["trakt"]["my_rating"],
                             int(row2[headers.index("Your Rating")]))
        os.remove(filename)
Esempio n. 7
0
    def insert(self, movies, source):
        sys.stdout.write('\r===== %s: posting %i movies\r\n' %
                         (self.site.site_displayname, len(movies)))
        sys.stdout.flush()

        save_movies_to_csv(movies,
                           folder=self.exports_folder,
                           filename=CSV_FILE_NAME,
                           rating_source=source)
        self.upload_csv_file(len(movies))

        sys.stdout.write(
            '\r\n===== %s: The file with %i movies was uploaded '
            'and successfully processed by the servers. '
            'You may check your %s account later.\r\n' %
            (self.site.site_displayname, len(movies), self.site.site_name))
        sys.stdout.flush()

        self.site.kill_browser()
Esempio n. 8
0
    def insert(self, movies, source):
        sys.stdout.write('\r===== %s: posting %i movies\r\n' %
                         (self.site.site_displayname, len(movies)))
        sys.stdout.flush()

        save_movies_to_csv(movies,
                           folder=self.exports_folder,
                           filename=self.csv_filename,
                           rating_source=source)
        self.upload_csv_file()

        sys.stdout.write(
            '\r\n===== %s: The file with %i movies was uploaded '
            'and will be process by the servers. '
            'You may check your %s account later.\r\n'
            'Note, that this might not overwrite any existing ratings.\r\n' %
            (self.site.site_displayname, len(movies), self.site.site_name))
        sys.stdout.flush()

        self.site.kill_browser()
Esempio n. 9
0
 def test_save_single_movie_to_csv(self):
     movies = [self.movie]
     filename = os.path.join(os.path.join(TESTDATA_PATH, 'exports'),
                             'TEST_single_movie.csv')
     file_impex.save_movies_to_csv(movies,
                                   os.path.join(TESTDATA_PATH, 'exports'),
                                   'TEST_single_movie.csv', 'imdb')
     with open(filename) as file:
         reader = csv.reader(file, delimiter=',')
         headers = next(reader)
         row = next(reader)
         self.assertEqual(self.movie['title'], row[headers.index("Title")])
         self.assertEqual(self.movie['year'],
                          int(row[headers.index("Year")]))
         self.assertEqual(self.movie['imdb']['id'],
                          row[headers.index("Const")])
         self.assertEqual(self.movie['imdb']['url'],
                          row[headers.index("URL")])
         self.assertEqual(self.movie['imdb']['my_rating'],
                          int(row[headers.index("Your Rating")]))
     os.remove(filename)
Esempio n. 10
0
    def insert(self, movies, source):
        sys.stdout.write(
            '\r===== {site_displayname}: posting {movies_count} movies\r\n'.
            format(site_displayname=self.site.site_displayname,
                   movies_count=len(movies)))
        sys.stdout.flush()

        if self.site.site_name.lower() == 'movielens':
            movies = [movie for movie in movies if 'imdb' in movie]

        if len(movies) == 0:
            command_line.warn(
                'There are no movies with an IMDB id in the parsed data.'
                'As the target site is looking for this id to match the data, '
                'there is nothing left to do.')
            command_line.info(
                'A workaround would be to upload the data to a third site, which knows the IMDB id, '
                'and parse again from there.')
            self.site.browser_handler.kill()

        save_movies_to_csv(movies,
                           folder=self.exports_folder,
                           filename=self.csv_filename,
                           rating_source=source)
        self.pre_upload_action()
        self.upload_csv_file()
        self.post_upload_action()

        sys.stdout.write(
            '\r\n===== {site_displayname}: The file with {movies_count} movies was uploaded '
            'and will be process by the servers. '
            'You may check your {site_name} account later.\r\n'
            'Note, that this might not overwrite any existing ratings.\r\n'.
            format(site_displayname=self.site.site_displayname,
                   movies_count=len(movies),
                   site_name=self.site.site_name))
        sys.stdout.flush()

        self.site.browser_handler.kill()
    def insert(self, movies, source):
        sys.stdout.write(
            f"\r===== {self.site.site_displayname}: posting {len(movies)} movies\r\n"
        )
        sys.stdout.flush()

        save_movies_to_csv(
            movies,
            folder=self.exports_folder,
            filename=CSV_FILE_NAME,
            rating_source=source,
        )
        self.upload_csv_file(len(movies))

        sys.stdout.write(
            f"\r\n===== {self.site.site_displayname}: The file with {len(movies)} movies was uploaded "
            "and successfully processed by the servers. "
            f"You may check your {self.site.site_name} account later.\r\n"
        )
        sys.stdout.flush()

        self.site.browser_handler.kill()
Esempio n. 12
0
    def insert(self, movies, source):
        sys.stdout.write(
            f"\r===== {self.site.site_displayname}: posting {len(movies)} movies\r\n"
        )
        sys.stdout.flush()

        if self.site.site_name.lower() == "movielens":
            movies = [movie for movie in movies if "imdb" in movie]

        if len(movies) == 0:
            self.site.browser_handler.kill()
            raise NoMoviesForInsertion(
                "There are no movies with an IMDB id in the parsed data. "
                "As the target site is looking for this id to match the data, "
                "there is nothing left to do. "
                "A workaround would be to upload the data to a third site, "
                "which knows the IMDB id, and parse again from there."
            )

        save_movies_to_csv(
            movies,
            folder=self.exports_folder,
            filename=self.csv_filename,
            rating_source=source,
        )
        self.pre_upload_action()
        self.upload_csv_file()
        self.post_upload_action()

        sys.stdout.write(
            f"\r\n===== {self.site.site_displayname}: The file with {len(movies)} movies was uploaded "
            "and will be process by the servers. "
            f"You may check your {self.site.site_name} account later.\r\n"
            "Note, that this might not overwrite any existing ratings.\r\n"
        )
        sys.stdout.flush()

        self.site.browser_handler.kill()
Esempio n. 13
0
 def test_save_single_movie_to_csv(self):
     movies = [self.movie]
     filename = os.path.join(os.path.join(TESTDATA_PATH, "exports"),
                             "TEST_single_movie.csv")
     file_impex.save_movies_to_csv(
         movies,
         os.path.join(TESTDATA_PATH, "exports"),
         "TEST_single_movie.csv",
         "imdb",
     )
     with open(filename) as file:
         reader = csv.reader(file, delimiter=",")
         headers = next(reader)
         row = next(reader)
         self.assertEqual(self.movie["title"], row[headers.index("Title")])
         self.assertEqual(self.movie["year"],
                          int(row[headers.index("Year")]))
         self.assertEqual(self.movie["imdb"]["id"],
                          row[headers.index("Const")])
         self.assertEqual(self.movie["imdb"]["url"],
                          row[headers.index("URL")])
         self.assertEqual(self.movie["imdb"]["my_rating"],
                          int(row[headers.index("Your Rating")]))
     os.remove(filename)