# -*- coding: utf-8 -*-
""" Parser image from 2ch """
import urllib
import json
from Tkinter import *
import ttk
def check_value( er= 1 ) :
if not entry1.get ( ) :
label1[ 'text' ] = u"Enter url"
elif not '2ch.hk' in entry1.get ( ) :
label1[ 'text' ] = u"Enter url 2ch.hk v1"
else :
parser ( )
def parser ( ) :
try :
urli = entry1.get ( ) .replace ( 'html' , 'json' )
req = json.load ( urllib .urlopen ( urli) )
thread = req[ 'threads' ] [ 0 ] [ 'posts' ]
l = [ ]
for x in thread :
if ( 'files' in x) and ( ( 'png' in x[ 'files' ] [ 0 ] [ 'path' ] ) or ( 'jpg' in x[ 'files' ] [ 0 ] [ 'path' ] ) ) :
l.append ( urli[ :urli.index ( 'hk/' ) +3 ] + urli[ urli.index ( 'hk/' ) +3 :] .split ( '/' , 1 ) [ 0 ] + '/' + x[ 'files' ] [ 0 ] [ 'path' ] )
#print urli[:urli.index('hk/')+3] + urli[urli.index('hk/')+3:].split('/',1)[0] + '/' + x['files'][0]['path']
label1[ 'text' ] = 'open ' + str ( urli[ :urli.index ( 'hk/' ) +3 ] + urli[ urli.index ( 'hk/' ) +3 :] .split ( '/' , 1 ) [ 0 ] + '/' + x[ 'files' ] [ 0 ] [ 'path' ] )
root.update ( )
for x in l:
label1[ 'text' ] = 'download ' + str ( x)
urllib .urlretrieve ( x, x.rsplit ( '/' , 1 ) [ 1 ] )
root.update ( )
label1.configure ( text = "Good work" )
#label1.after(200, label1.configure(text = "Enter url"))
#label1.after(2000, label1.configure(text = "Enter url"))
root.update ( )
except :
label1[ 'text' ] = "Dont open url"
root= Tk( )
root.title ( "2ch parser image" )
root.minsize ( width = 300 , height = 185 )
fra1 = Frame( root, width= 300 , height= 30 )
fra1.pack ( )
# input field------------------------------------------------
#text1=Text(root,height=7,width=7,font='Arial 14',wrap=WORD)
entry1 = Entry( root, width= 25 , font= 'Arial 14' )
entry1.focus ( )
entry1.bind ( '<Return>' , check_value)
entry1.pack ( ) #pack
# output field------------------------------------------------
label1 = Label( root, text = u"Enter url" , font= 'arial 7' , relief = 'groove' , width= 46 )
label1.pack ( ) #pack
fra2 = Frame( root, width= 300 , height= 30 )
fra2.pack ( )
# button------------------------------------------------------
button1 = Button( root, text= u"parser" , font= 'arial 12' , command= check_value)
button1.pack ( ) #pack
fra3 = Frame( root, width= 300 , height= 30 )
fra3.pack ( )
label2 = Label( root, text = u"s0k1ll" , font= 'arial 7' )
label2.pack ( side= 'left' ) #pack
# run main loop-----------------------------------------------
root.mainloop ( )
IyAtKi0gY29kaW5nOiB1dGYtOCAtKi0KIiIiIFBhcnNlciBpbWFnZSBmcm9tIDJjaCAiIiIKCmltcG9ydCB1cmxsaWIKaW1wb3J0IGpzb24KZnJvbSBUa2ludGVyIGltcG9ydCAqCmltcG9ydCB0dGsKCgpkZWYgY2hlY2tfdmFsdWUoZXI9MSk6CiAgICBpZiBub3QgZW50cnkxLmdldCgpOgogICAgICAgIGxhYmVsMVsndGV4dCddID0gdSJFbnRlciB1cmwiCiAgICBlbGlmIG5vdCAnMmNoLmhrJyBpbiBlbnRyeTEuZ2V0KCk6CiAgICAgICAgbGFiZWwxWyd0ZXh0J10gPSB1IkVudGVyIHVybCAyY2guaGsgdjEiCiAgICBlbHNlOgogICAgICAgIHBhcnNlcigpCgpkZWYgcGFyc2VyKCk6CiAgICB0cnk6CiAgICAgICAgdXJsaSA9IGVudHJ5MS5nZXQoKS5yZXBsYWNlKCdodG1sJywnanNvbicpCiAgICAgICAgcmVxID0ganNvbi5sb2FkKHVybGxpYi51cmxvcGVuKHVybGkpKQogICAgICAgIHRocmVhZCA9IHJlcVsndGhyZWFkcyddWzBdWydwb3N0cyddCiAgICAgICAgCiAgICAgICAgbCA9IFtdCiAgICAgICAgZm9yIHggaW4gdGhyZWFkOgogICAgICAgICAgICBpZiAoJ2ZpbGVzJyBpbiB4KSBhbmQgKCgncG5nJyBpbiB4WydmaWxlcyddWzBdWydwYXRoJ10pIG9yICgnanBnJyBpbiB4WydmaWxlcyddWzBdWydwYXRoJ10pKToKICAgICAgICAgICAgICAgIGwuYXBwZW5kKHVybGlbOnVybGkuaW5kZXgoJ2hrLycpKzNdICsgdXJsaVt1cmxpLmluZGV4KCdoay8nKSszOl0uc3BsaXQoJy8nLDEpWzBdICsgJy8nICsgeFsnZmlsZXMnXVswXVsncGF0aCddKQogICAgICAgICAgICAgICAgI3ByaW50ICB1cmxpWzp1cmxpLmluZGV4KCdoay8nKSszXSArIHVybGlbdXJsaS5pbmRleCgnaGsvJykrMzpdLnNwbGl0KCcvJywxKVswXSArICcvJyArIHhbJ2ZpbGVzJ11bMF1bJ3BhdGgnXQogICAgICAgICAgICAgICAgbGFiZWwxWyd0ZXh0J10gPSAnb3BlbiAnICsgc3RyKHVybGlbOnVybGkuaW5kZXgoJ2hrLycpKzNdICsgdXJsaVt1cmxpLmluZGV4KCdoay8nKSszOl0uc3BsaXQoJy8nLDEpWzBdICsgJy8nICsgeFsnZmlsZXMnXVswXVsncGF0aCddKQogICAgICAgICAgICAgICAgcm9vdC51cGRhdGUoKQogICAgICAgIGZvciB4IGluIGw6CiAgICAgICAgICAgIGxhYmVsMVsndGV4dCddID0gJ2Rvd25sb2FkICcgKyBzdHIoeCkgCiAgICAgICAgICAgIHVybGxpYi51cmxyZXRyaWV2ZSh4LCB4LnJzcGxpdCgnLycsMSlbMV0pCiAgICAgICAgICAgIHJvb3QudXBkYXRlKCkKCiAgICAKICAgICAgICBsYWJlbDEuY29uZmlndXJlKHRleHQgPSAiR29vZCB3b3JrIikKICAgIAogICAgICAgICNsYWJlbDEuYWZ0ZXIoMjAwLCBsYWJlbDEuY29uZmlndXJlKHRleHQgPSAiRW50ZXIgdXJsIikpCgogICAgICAgICNsYWJlbDEuYWZ0ZXIoMjAwMCwgbGFiZWwxLmNvbmZpZ3VyZSh0ZXh0ID0gIkVudGVyIHVybCIpKQogICAgICAgIHJvb3QudXBkYXRlKCkKICAgIGV4Y2VwdDoKICAgICAgICAgbGFiZWwxWyd0ZXh0J10gPSAiRG9udCBvcGVuIHVybCIKICAgICAgICAKCgoKcm9vdD1UaygpCnJvb3QudGl0bGUoIjJjaCBwYXJzZXIgaW1hZ2UiKQpyb290Lm1pbnNpemUod2lkdGggPSAzMDAsIGhlaWdodCA9IDE4NSkKCmZyYTEgPSBGcmFtZShyb290LHdpZHRoPTMwMCxoZWlnaHQ9MzApCmZyYTEucGFjaygpCgojIGlucHV0IGZpZWxkLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgojdGV4dDE9VGV4dChyb290LGhlaWdodD03LHdpZHRoPTcsZm9udD0nQXJpYWwgMTQnLHdyYXA9V09SRCkKZW50cnkxID0gRW50cnkocm9vdCwgd2lkdGg9MjUsIGZvbnQ9J0FyaWFsIDE0JykKZW50cnkxLmZvY3VzKCkKZW50cnkxLmJpbmQoJzxSZXR1cm4+JywgY2hlY2tfdmFsdWUpCmVudHJ5MS5wYWNrKCkjcGFjawoKCiMgb3V0cHV0IGZpZWxkLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCmxhYmVsMSA9IExhYmVsKHJvb3QsIHRleHQgPSB1IkVudGVyIHVybCIsIGZvbnQ9J2FyaWFsIDcnLCByZWxpZWYgPSdncm9vdmUnLCB3aWR0aD00NikKbGFiZWwxLnBhY2soKSNwYWNrCgoKZnJhMiA9IEZyYW1lKHJvb3Qsd2lkdGg9MzAwLGhlaWdodD0zMCkKZnJhMi5wYWNrKCkKCgojIGJ1dHRvbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpidXR0b24xID0gQnV0dG9uKHJvb3QsIHRleHQ9dSJwYXJzZXIiLGZvbnQ9J2FyaWFsIDEyJywgY29tbWFuZD1jaGVja192YWx1ZSkKCmJ1dHRvbjEucGFjaygpI3BhY2sKCgpmcmEzID0gRnJhbWUocm9vdCx3aWR0aD0zMDAsaGVpZ2h0PTMwKQpmcmEzLnBhY2soKQoKbGFiZWwyID0gTGFiZWwocm9vdCwgdGV4dCA9IHUiczBrMWxsIiwgZm9udD0nYXJpYWwgNycpCmxhYmVsMi5wYWNrKHNpZGU9J2xlZnQnKSNwYWNrCiMgcnVuIG1haW4gbG9vcC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCnJvb3QubWFpbmxvb3AoKQo=