yellowcat
Regular Member
- Aug 27, 2015
- 404
- 297
Code:
#All cats are yellow
from selenium import webdriver
from selenium.webdriver.common.action_chains import ActionChains
import sys
import linecache
import time,pickle
from selenium.webdriver.common.keys import Keys
class Tbot():
def __init__(self):
_='_='
def PrintException(self):
exc_type, exc_obj, tb = sys.exc_info()
f = tb.tb_frame
lineno = tb.tb_lineno
filename = f.f_code.co_filename
linecache.checkcache(filename)
line = linecache.getline(filename, lineno, f.f_globals)
texty = 'EXCEPTION IN ({}, LINE {} "{}"): {}'.format(filename, lineno, line.strip(), exc_obj)
print texty
def login(self,username,password,driver):
print "logging in ..."
driver.get("http://tumblr.com/login")
driver.find_element_by_css_selector("#signup_determine_email").send_keys(username)
driver.find_element_by_css_selector("#signup_forms_submit > span.signup_determine_btn.active").click()
while True:
time.sleep(.5)
try:
driver.find_element_by_css_selector("#signup_password").send_keys(password)
driver.find_element_by_css_selector("#signup_forms_submit").click()
break
except:
self.PrintException()
cookielocation = "cookies/"+username+".pkl"
print "Saving cookies => ", cookielocation
try:
pickle.dump(driver.get_cookies() , open(cookielocation,"wb"))
print "Cookies saved!!!"
except:
self.PrintException()
return False
return cookielocation
def loadCookies(self,cookielocation,driver):
print "Fetching tumblr.com ...."
driver.get("http://tumblr.com")
print "Loading cookies.."
for cookie in pickle.load(open(cookielocation, "rb")):
driver.add_cookie(cookie)
print "Cookies loaded!!"
return True
def queimg(self ,driver,link,tags,img):
ftag = tags.pop()
tags = ",".join(tags)
for x in range(0,10):
time.sleep(2)
try:
driver.find_element_by_css_selector("#new_post_label_photo > i").click()
break
except:
self.PrintException()
time.sleep(4)
try:
driver.find_element_by_css_selector("""#new_post_buttons > div.post-form.post-form--photo.gif-search-variation.no-controls-line.gs-variation-ran-once > div.post-container > div > div.post-form--form.post-content-text > div > div.media-wrapper > div.media-dropzone-container.media-container > div > div > div.split-cell.media-upload-button > div.media-upload > input[type="file"]""").send_keys(
img)
except:
self.PrintException()
time.sleep(3) ##Wait for image to upload
element = driver.find_element_by_class_name("post-form--tag-editor")
actions = ActionChains(driver)
actions.move_to_element(element).perform()
for x in range(0,10):
time.sleep(.2)
try:
driver.find_element_by_css_selector("#new_post_buttons > div.post-form.post-form--photo.gif-search-variation.gs-variation-ran-once > div.post-container > div > div.post-form--form.post-content-text > div > div.caption-wrapper > div.caption-field.tray-open.inline-controls-show > div.editor-wrapper > div > div.editor.editor-richtext").send_keys(Keys.TAB + ftag)
driver.find_element_by_class_name("tag-input-wrapper").send_keys(tags)
break
except:
self.PrintException()
time.sleep(3)
element_to_hover_over = driver.find_element_by_css_selector("#new_post_buttons > div.post-form.post-form--photo.gif-search-variation.gs-variation-ran-once > div.post-container > div > div.post-form--form.post-content-text > div > div.media-wrapper > div.media-container.photo-media-container.photo-media-container--can-add > div.photoset-container > div > div.photoset--layout > div > div > div > div.media-overlay > div:nth-child(1) > div")
hover = ActionChains(driver).move_to_element(element_to_hover_over)
hover.perform()
element_to_hover_over.click()
time.sleep(3)
driver.find_element_by_css_selector("#dashboard_post_queue > div.overlay-input-popover.popover--base > div > input").send_keys(link)
driver.find_element_by_css_selector("#dashboard_post_queue > div.overlay-input-popover.popover--base > div > div").click()
print "Added link!!"
time.sleep(1.7)
print "clicking button naiw"
print driver.current_url
driver.find_element_by_css_selector("#new_post_buttons > div.post-form.post-form--photo.gif-search-variation.gs-variation-ran-once > div.post-container > div > div.post-form--bottom > div.post-form--controls > div > div:nth-child(3) > div > div > button").click()
for x in range(0,10): #Some images take longer to upload than others.
time.sleep(1)
if not "queue/new/photo" in driver.current_url:
time.sleep(1.2) #Perhaps increase this depending on network speed
return True
return False
Tbot = Tbot()
driver = webdriver.Chrome()#'chromedriver.exe')
cookieLocation = Tbot.login('username','password',driver)
#Tbot.loadCookies(cookieLocation,driver)
tagz = ['tag1, tag2']
link = 'http://cachemonet.com'
imgLoc = "C://Users/yellowcat/loot.jpg"
Tbot.queimg(driver,tagz,link,imgLoc)
"""
from random import randint
megaTagList = ['1',
'2',
'3 %s'%('magicKeyword'),
'4',
'5']
tagz.append(randint(0,len(megaTagList)-1))
print tagz
"""