Advertisement
Guest User

Rajeesh Pajeetson

a guest
Oct 22nd, 2017
687
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 3.41 KB | None | 0 0
  1. import requests
  2. from re import sub, findall
  3. from webbrowser import open as webopen
  4. from tkinter import *
  5. from datetime import datetime
  6.  
  7.  
  8.  
  9. def constructor(thumbs, images, tags, search):
  10.     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>"
  11.  
  12.     body = ' <body><div class="topper"><h1>Tags: ' + search +'</h1></div>\n'
  13.     img_template = '  <div class="box"><a href="max_img" target="_"><img src="thumb" title="tag"/></a></div>\n'
  14.  
  15.     end = " </body>\n</html>"
  16.  
  17.     html_file = open('lovin.html', 'w', encoding='UTF-8')
  18.     html_file.write(head)
  19.     html_file.write(body)
  20.  
  21.     for index in range(len(images)):
  22.         body_block = img_template.replace('max_img', images[index])
  23.         body_block = body_block.replace('thumb', thumbs[index])
  24.         body_block = body_block.replace('tag', tags[index])
  25.         body_block = body_block
  26.         html_file.write(body_block)
  27.  
  28.     html_file.write(end)
  29.     title['text'] = '++\\' + search + '/++'
  30.  
  31. def download(event=None):
  32.     url, search = get_query()
  33.     print(url)
  34.    
  35.     sesh = requests.Session()
  36.     web_page = sesh.get(url, cookies={'from-my': 'browser'})
  37.     web_page_contents = web_page.text
  38.    
  39.     thumb_list = findall(r'preview_url="(.*?)"', web_page_contents) #thumnails
  40.     image_list = findall(r'sample_url="(.*?)"', web_page_contents) #samplesized
  41.     tag_list = findall(r'tags="(.*?)"', web_page_contents) #tags
  42.  
  43.     constructor(thumb_list, image_list, tag_list, search)
  44.  
  45.     #could return image_list to, in-background, download main images
  46.  
  47. def get_query():
  48.     base_url = 'https://gelbooru.com/index.php?page=dapi&s=post&q=index'
  49.     post_count = count.get()
  50.     page_number = pagenum.get()
  51.     search = tag_box.get()
  52.  
  53.     url = base_url + '&limit=' + post_count
  54.     url += '&pid=' + page_number
  55.  
  56.     if len(search) > 0:
  57.         url += '&tags='
  58.         for tag in search.split(' '):
  59.             url += tag + '+'
  60.  
  61.     return url, search
  62.  
  63.  
  64.  
  65. ## GUI    
  66. window = Tk()
  67.  
  68. tag_label = Label(window, text='Enter tags here', justify=CENTER)
  69. tag_label.grid(row=1, column=0, columnspan=5, padx=10)
  70.  
  71. tag_box = Entry(window)
  72. tag_box.bind('<Return>', download)
  73. tag_box.grid(row=2, column=0, columnspan=5, padx=10)
  74.  
  75. count_label = Label(window, text='Posts per page', justify=CENTER)
  76. count_label.grid(row=1, column=6, columnspan=5, padx=10)
  77.  
  78. count = Spinbox(window, from_=10, to=10000)
  79. count.bind('<Return>', download)
  80. count.grid(row=2, column=6, columnspan=5, padx=10)
  81.  
  82. page_label = Label(window, text='Posts per page', justify=CENTER)
  83. page_label.grid(row=1, column=11, columnspan=5, padx=10)
  84.  
  85. pagenum = Spinbox(window, from_=0, to=100000)
  86. pagenum.bind('<Return>', download)
  87. pagenum.grid(row=2, column=11, columnspan=5, padx=10)
  88.  
  89. enter_button = Button(window, text='Generate Webpage', justify=CENTER, width=25, command=download)
  90. enter_button.grid(row=3, column=0, columnspan=15, pady=5)
  91.  
  92. 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)
  93. info_label.grid(row=4, column=0, columnspan=15, rowspan=3, pady=5)
  94.  
  95. title = Label(window,text="Gelb00ru pr0n f1ndur", font="Helvetica 15 bold", justify=CENTER)
  96. title.grid(row=0, column=0, columnspan=15, pady=5)
  97.  
  98.  
  99. window.mainloop()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement