Tumblr Mass Queue Bot Code

yellowcat

Regular Member
Joined
Aug 27, 2015
Messages
404
Reaction score
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
"""
 
Back
Top