From 9d93ffd4fc11afb65b16c23ef50a61960f498c54 Mon Sep 17 00:00:00 2001 From: AustrianToast Date: Sun, 21 Jul 2024 16:18:54 +0200 Subject: [PATCH] almost done --- gallery-dl/gallery-dl.py | 53 +++++++++++++++++++++++++++++++++++++--- 1 file changed, 49 insertions(+), 4 deletions(-) diff --git a/gallery-dl/gallery-dl.py b/gallery-dl/gallery-dl.py index aa9cda2..a8f864c 100644 --- a/gallery-dl/gallery-dl.py +++ b/gallery-dl/gallery-dl.py @@ -1,5 +1,8 @@ import subprocess import sqlite3 +import os +import urllib.parse +import shutil # conn = sqlite3.connect("Hentai.sqlite3") conn = sqlite3.connect(":memory:") @@ -30,6 +33,44 @@ conn.executescript(""" """) +def get_artist_from_url(url): + if "rule34.xxx" in url: + return urllib.parse.unquote(url)[51:] + if "kemono.su" in url or "coomer.su" in url: + return url.split("/")[5] + return "" + + +def mv(source, destination): + if not os.path.isdir(source): + return + if os.path.isfile(source): + shutil.copy(source, destination) + shutil.rmtree(source) + return + + for item in os.listdir(source): + if not os.path.isdir(destination): + os.rename(source, destination) + return + + if os.path.isdir(f"{source}/{item}"): + mv(f"{source}/{item}", f"{destination}/{item}") + elif os.path.isfile(f"{destination}/{item}"): + shutil.copy(f"{source}/{item}", f"{destination}/{item}") + else: + shutil.copy(f"{source}/{item}", f"{destination}") + shutil.rmtree(source) + + +# existing folder names may be not what is wanted, so this will take care of it +def name_needed(url, artist): + artist_from_url = get_artist_from_url(url) + if artist_from_url == "": + exit(1) + mv(f"Artists/{artist_from_url}", f"Artists/{artist}") + + def insert_into_db(website_name, url, artist): conn.execute(f"INSERT INTO website(name) VALUES('{website_name}')") conn.execute(f"INSERT INTO artist(name) VALUES('{artist}')") @@ -51,9 +92,13 @@ def import_website(website_name): for line in file_contents: if line.startswith("#"): continue + if "#" not in line: + continue url = line.split("# ")[0].rstrip() - artist = line.split("# ")[1].rstrip("\n") + artist = line.split("# ")[1].rstrip() + name_needed(url, artist) insert_into_db(website_name, url, artist) + break # do only on for now def read_db(): @@ -80,11 +125,11 @@ def galleryDl(url, website_name, artist_name): # This will not work with Rule34 as is # Rule34 will need it's artists to be added like the others -import_website("Coomer") +import_website("Rule34") # conn.commit() db_contents = read_db() conn.close() for row in db_contents: - # print(row) - galleryDl(row[0], row[1], row[2]) + print(row) + # galleryDl(row[0], row[1], row[2])