64 lines
2.0 KiB
Python
64 lines
2.0 KiB
Python
import requests as req
|
|
import xmltodict, json
|
|
import wget
|
|
import os
|
|
import random
|
|
|
|
logo = """•---------------•-------•--------------------•
|
|
| rule34-parser | v 0.1 | MIT License |
|
|
•---------------•-------•--------------------•
|
|
| https://github.com/Hell13Cat/rule34-parser |
|
|
•--------------------------------------------•\n"""
|
|
root_dir = os.getcwd()
|
|
try:
|
|
os.mkdir(root_dir + "/down")
|
|
except:
|
|
pass
|
|
def download(url, filename):
|
|
wget.download(url, filename)
|
|
return filename
|
|
|
|
def dirs_create(name):
|
|
root_dir = os.getcwd()
|
|
try:
|
|
os.mkdir(root_dir + "/down/" + name)
|
|
except:
|
|
pass
|
|
|
|
def load_url(url, tag):
|
|
dirs_create(tag)
|
|
root_dir = os.getcwd()
|
|
filename = root_dir + "/down/" + tag + "/" + (url.split("/"))[-1]
|
|
download(url, filename)
|
|
|
|
def get_json(url):
|
|
cont = (req.get(url)).content
|
|
o = xmltodict.parse(cont)
|
|
return json.loads(json.dumps(o))
|
|
|
|
def list_tag(num, tag):
|
|
tags = tag.replace("(", "%28").replace(")", "%29").replace(" ", "+")
|
|
json_l = get_json("https://rule34.xxx/index.php?page=dapi&s=post&q=index&limit=" + str(num) + "&tags=" + tags)
|
|
posts_all = json_l["posts"]["post"]
|
|
return_data = []
|
|
for post in range(int(num)):
|
|
return_data.append([json_l["posts"]["post"][post]["@tags"], json_l["posts"]["post"][post]["@file_url"]])
|
|
return return_data
|
|
|
|
print(logo)
|
|
tag = input("TAG> ")
|
|
num = input("COUNTS> ")
|
|
os.system('cls' if os.name == 'nt' else 'clear')
|
|
print(logo+"Loading url's...")
|
|
list_url = list_tag(int(num), tag)
|
|
text_info = ""
|
|
count = 0
|
|
for one_url in list_url:
|
|
os.system('cls' if os.name == 'nt' else 'clear')
|
|
count += 1
|
|
print(logo+"File "+str(count)+"/"+str(len(list_url)))
|
|
load_url(one_url[1], tag)
|
|
text_info = text_info + "> " + one_url[1] + "\n" + one_url[0] + "\n\n"
|
|
os.system('cls' if os.name == 'nt' else 'clear')
|
|
open("./down/"+tag+" - "+str(random.randrange(1, 25000, 1))+".txt", "w").write(text_info)
|
|
print(logo+str(len(list_url))+" files downloads") |