Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import requests
- from re import sub, findall
- from webbrowser import open as webopen
- from tkinter import *
- from datetime import datetime
- def constructor(thumbs, images, tags, search):
- head = "<html>\n <head>\n <style>\n .box {display:inline-block;width:150px;height:150px;padding:15px;}\n .topper {min-height:150px;} </style>\n <head>"
- body = ' <body><div class="topper"><h1>Tags: ' + search +'</h1></div>\n'
- img_template = ' <div class="box"><a href="max_img" target="_"><img src="thumb" title="tag"/></a></div>\n'
- end = " </body>\n</html>"
- html_file = open('lovin.html', 'w', encoding='UTF-8')
- html_file.write(head)
- html_file.write(body)
- for index in range(len(images)):
- body_block = img_template.replace('max_img', images[index])
- body_block = body_block.replace('thumb', thumbs[index])
- body_block = body_block.replace('tag', tags[index])
- body_block = body_block
- html_file.write(body_block)
- html_file.write(end)
- title['text'] = '++\\' + search + '/++'
- def download(event=None):
- url, search = get_query()
- print(url)
- sesh = requests.Session()
- web_page = sesh.get(url, cookies={'from-my': 'browser'})
- web_page_contents = web_page.text
- thumb_list = findall(r'preview_url="(.*?)"', web_page_contents) #thumnails
- image_list = findall(r'sample_url="(.*?)"', web_page_contents) #samplesized
- tag_list = findall(r'tags="(.*?)"', web_page_contents) #tags
- constructor(thumb_list, image_list, tag_list, search)
- #could return image_list to, in-background, download main images
- def get_query():
- base_url = 'https://gelbooru.com/index.php?page=dapi&s=post&q=index'
- post_count = count.get()
- page_number = pagenum.get()
- search = tag_box.get()
- url = base_url + '&limit=' + post_count
- url += '&pid=' + page_number
- if len(search) > 0:
- url += '&tags='
- for tag in search.split(' '):
- url += tag + '+'
- return url, search
- ## GUI
- window = Tk()
- tag_label = Label(window, text='Enter tags here', justify=CENTER)
- tag_label.grid(row=1, column=0, columnspan=5, padx=10)
- tag_box = Entry(window)
- tag_box.bind('<Return>', download)
- tag_box.grid(row=2, column=0, columnspan=5, padx=10)
- count_label = Label(window, text='Posts per page', justify=CENTER)
- count_label.grid(row=1, column=6, columnspan=5, padx=10)
- count = Spinbox(window, from_=10, to=10000)
- count.bind('<Return>', download)
- count.grid(row=2, column=6, columnspan=5, padx=10)
- page_label = Label(window, text='Posts per page', justify=CENTER)
- page_label.grid(row=1, column=11, columnspan=5, padx=10)
- pagenum = Spinbox(window, from_=0, to=100000)
- pagenum.bind('<Return>', download)
- pagenum.grid(row=2, column=11, columnspan=5, padx=10)
- enter_button = Button(window, text='Generate Webpage', justify=CENTER, width=25, command=download)
- enter_button.grid(row=3, column=0, columnspan=15, pady=5)
- info_label = Label(window, text="tag examples: 'flat_chest', 'bandage fangs', 'stomach swept_bangs'\nHover over images in browser for taglist\nRefresh the page after searching to load new search", justify=CENTER)
- info_label.grid(row=4, column=0, columnspan=15, rowspan=3, pady=5)
- title = Label(window,text="Gelb00ru pr0n f1ndur", font="Helvetica 15 bold", justify=CENTER)
- title.grid(row=0, column=0, columnspan=15, pady=5)
- window.mainloop()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement