From 4e24f5df9c6fb193bc7756514f62370f5d694732 Mon Sep 17 00:00:00 2001 From: Christopher Date: Fri, 24 May 2024 16:42:58 -0500 Subject: [PATCH] Added main.py and initial grab of sqlite DB --- .venv/YIFY.db | Bin 0 -> 90112 bytes .venv/main.py | 83 ++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 83 insertions(+) create mode 100644 .venv/YIFY.db create mode 100644 .venv/main.py diff --git a/.venv/YIFY.db b/.venv/YIFY.db new file mode 100644 index 0000000000000000000000000000000000000000..941194eca15aa6364699031fe7544d16a7930982 GIT binary patch literal 90112 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�(?N1pGSNu_`gx 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 YKcQc5!2JK`j%>VpJOBUxU;h9907;cMnE(I) literal 0 HcmV?d00001 diff --git a/.venv/main.py b/.venv/main.py new file mode 100644 index 0000000..a180bb9 --- /dev/null +++ b/.venv/main.py @@ -0,0 +1,83 @@ +import requests +import json +import sqlite3 + + +connection = sqlite3.connect("YIFY.db") +cursor = connection.cursor() +testMovie = "Nightmare on Elm Street" + + +try: + cursor.execute("CREATE TABLE Movies (ID INTEGER UNIQUE, Title TEXT, IMDB_Code TEXT, Rating INTEGER, YT_Trailer TEXT, Description TEXT, Language TEXT,Cover TEXT)") +except sqlite3.OperationalError: + print("Table Movies Exists") + pass + +try: + cursor.execute("CREATE TABLE Hashes (ID INTEGER UNIQUE, hash_720 TEXT, hash_1080 TEXT, hash_2160 TEXT, hash_3D TEXT)") +except sqlite3.OperationalError: + print("Table Hashes Exists") + pass + +def movieSearch(movieName): + movie = requests.get("https://yts.mx/api/v2/list_movies.json?query_term=" + str(movieName)) + movieInfo = json.loads(movie.content) + return movieInfo + + +def movieDetails(movie): + movieDetails = requests.get("https://yts.mx/api/v2/movie_details.json?movie_id=" + str(movie[0])) + try: + movieInfo = json.loads(movieDetails.content) + except json.decoder.JSONDecodeError: + movieInfo = movieDetails.content + return movieInfo + + +def addMovie(query): + sql = "insert or replace into Movies (ID, Title, IMDB_Code, Rating, YT_Trailer, Description, Language,Cover) values (?,?,?,?,?,?,?,?)" + cursor.execute(sql, query) + +def addHashes(query): + sql = "insert or replace into Hashes (ID, hash_720, hash_1080, hash_2160, hash_3D) values (?,?,?,?,?)" + cursor.execute(sql, query) + + +results = movieSearch(testMovie) +latest3D = requests.get("https://yts.mx/api/v2/list_movies.json?quality=3D") + +cleanLatest3D = json.loads(latest3D.content) +for Dmovie in cleanLatest3D['data']['movies']: + query = (Dmovie['id'], Dmovie['title'], Dmovie['imdb_code'], Dmovie['rating'], Dmovie['yt_trailer_code'], Dmovie['summary'], Dmovie['language'], Dmovie['large_cover_image']) + addMovie(query) + +for movie in results['data']['movies']: + query = (movie['id'], movie['title'], movie['imdb_code'],movie['rating'],movie['yt_trailer_code'],movie['summary'],movie['language'],movie['large_cover_image']) + addMovie(query) + +IDs = cursor.execute("SELECT ID FROM Movies").fetchall() + +for ID in IDs: + hashObject = {} + hashObject['ID'] = ID[0] + hashObject['720'] = "" + hashObject['1080'] = "" + hashObject['2160'] = "" + hashObject['3D'] = "" + movieObject = movieDetails(ID) + for torrent in movieObject['data']['movie']['torrents']: + if torrent['quality'] == '720p': + hashObject['720'] = torrent['hash'] + elif torrent['quality'] == '1080p': + hashObject['1080'] = torrent['hash'] + elif torrent['quality'] == '2160p': + hashObject['2160'] = torrent['hash'] + elif torrent['quality'] == '3D': + hashObject['3D'] = torrent['hash'] + query = (str(hashObject['ID']), str(hashObject['720']), str(hashObject['1080']), str(hashObject['2160']), str(hashObject['3D'])) + addHashes(query) + +connection.commit() + +