leilanising-sideblog - Leilanising-Sideblog
Leilanising-Sideblog

Sideblog for https://www.tumblr.com/leilanising-vault-of-knowledge

191 posts

Import Requests

import requests

from requests_oauthlib import OAuth1

import json

import time

from selenium import webdriver

from selenium.webdriver.chrome.service import Service

from selenium.webdriver.common.by import By

from selenium.webdriver.chrome.options import Options

from selenium.common.exceptions import NoSuchElementException

import pickle

from selenium.webdriver.common.keys import Keys

from selenium.webdriver.support.ui import WebDriverWait

from selenium.webdriver.support import expected_conditions as EC

from selenium.webdriver.common.keys import Keys

from selenium.webdriver.common.action_chains import ActionChains

import pyperclip

# Replace these values with your Tumblr API credentials

CONSUMER_KEY = 'IPTeKkiLSZ2wQ1io5vo5G37AN2thcbSwXOJgqL4SjHV2wLoNce'

CONSUMER_SECRET = 'lE97QdUIAj7svMGDznbcxmsFubj1iIr06hHJ4cLGCaM2wedIio'

TOKEN = 'wovWkA5KSv6XAbMvf5gkAr2V0hGyoRpxbdgM0uoN6qsSzg5OsI'

TOKEN_SECRET = 'gkDd6pBbvsPbUp0Eh95AQQp2CQi5qFzKNtvJ0qPo0far60BqxD'

# CONSUMER_KEY = 'wye8qq5zYT875se51OwUNwPaUvFjvE5ONkzYZ2nsgkoEXnUQfv'

# CONSUMER_SECRET = 'QxLe87coDa0NFzCZRS4KR6gOCxRIEzMqLzOVrH0hc1CVsUjJ35'

# TOKEN = 'fweQkfHHtNWgWiS8KOOFA6bzljfA47cldg44FkljdUbtaV51Uz'

# TOKEN_SECRET = 'l9uS5eLJ2XkRb8D93avCUTeLdxp6m8zDwUTTClgpNZjDGHYMFc'

# CONSUMER_KEY = 'ncRYD9hDIu0uV1tFk2bTxm2F3UDuZ1kM6gsTKO7TAIv9ZQ3rcW'

# CONSUMER_SECRET = '94lTdrh6izgyqP79aSI0HpBSvLAg4PiNRzYEHZTxGWrhWsr4MJ'

# TOKEN = 'vdPho0RVxZANZKVV02HzKKGDVbwMbMNdDckj1dy6GEqIXPvsX3'

# TOKEN_SECRET = '4f7Wfm8oc4mZ94BEH2z9P7fcOHt1tm8AoI3LoAThfKsZ1gWFSz'

# Tumblr API endpoints

BASE_URL = "https://api.tumblr.com/v2"

SENT_ASKS_FILE = "sent_asks.json"

BLOG_NAME = "abedalazeiz"

POST_ID = "756236689516691456"

ASK_MESSAGE = ("I know for sure that you can't help all families from Gaza that want to be evacuated from here but at least you can help those who come across your life. You have no idea how mentally and emotionally tiring this is. Asking for help is not easy. But when thinking that the price is my family's life and getting out of here safely, it just pushes me more and more to do this until i reach my goal, be able to attend my university abroad and achieve my doctoral degree dream after awarding prestigious PhD fellowship. Please donate and share to support us standing at this hard time.\n https://gofund.me/d597b8e2")

# OAuth 1.0a authentication

auth = OAuth1(CONSUMER_KEY, CONSUMER_SECRET, TOKEN, TOKEN_SECRET)

# = ""

options = webdriver.ChromeOptions()

options.add_argument("--disable-blink-features=AutomationControlled")

options.add_argument("--start-maximized")

options.add_experimental_option('excludeSwitches', ['enable-automation'])

options.add_experimental_option('useAutomationExtension', False)

options.page_load_strategy = 'none' #eager

driver = webdriver.Chrome(options=options)

driver.execute_cdp_cmd("Page.addScriptToEvaluateOnNewDocument", {

    "source": """

        Object.defineProperty(navigator, 'webdriver', {

          get: () => undefined

        })

      """

})

def load_sent_asks():

    try:

        with open(SENT_ASKS_FILE, 'r') as file:

            sent_asks = json.load(file)

            print(f"Loaded sent asks: {sent_asks}")

            return sent_asks

    except FileNotFoundError:

        print("No sent asks file found, starting fresh.")

        return []

def save_sent_asks(sent_asks):

    with open(SENT_ASKS_FILE, 'w') as file:

        json.dump(sent_asks, file)

def get_reblogs(after=None):

    url = f"{BASE_URL}/blog/{BLOG_NAME}/notes?id={POST_ID}&mode=likes&limit=20" #reblogs

    if after:

        url += f"&after={after}"

    print(f"Fetching reblogs from URL: {url}")

    response = requests.get(url, auth=auth)

    response.raise_for_status()

    return response.json()

def send_ask(account_name):

    print(f"Sending ask to {account_name}")

    driver.get(f"https://www.tumblr.com/new/ask/{account_name}")

    driver.implicitly_wait(40)

    actions = ActionChains(driver)

    try:

        #loadingSelector = '#glass-container > div > div > div > div > div > div > div.Y21sU > div > div.oDBam > div > div'

        #WebDriverWait(driver, 30).until(EC.invisibility_of_element_located(driver.find_element(By.CSS_SELECTOR, loadingSelector)))

        #actions.key_down(Keys.ENTER).key_up(Keys.ENTER).perform()

        field = driver.find_element(By.CSS_SELECTOR, '#glass-container > div > div > div > div > div > div > div.Y21sU > div > div.oDBam > div:nth-child(2) > div > div:nth-child(4) > div.block-editor-writing-flow > div > div')

        field.send_keys("\n")

        actions.key_down(Keys.LEFT_CONTROL).send_keys('v').key_up(Keys.LEFT_CONTROL).perform()

        askselector = '#glass-container > div > div > div > div > div > div > div.Y21sU > div > div.Q1jRN > div > div > div > button > span'

        ask = driver.find_element(By.CSS_SELECTOR, askselector)

        ask.click()

        WebDriverWait(driver, 60).until(EC.invisibility_of_element_located(ask))

    except Exception as e:

        print("hmmm")

def main():

    print("Starting script...")

    sent_asks = load_sent_asks()

    previousSave = len(sent_asks)

    after = None

    pyperclip.copy(ASK_MESSAGE)

    try:

        with open('cookies.pkl', 'rb') as file:

            cookies = pickle.load(file)

        driver.get('https://www.tumblr.com')

        for cookie in cookies:

            driver.add_cookie(cookie)

        #driver.refresh()

    except FileNotFoundError:

        driver.get('https://www.tumblr.com/login')

        input("Log in to Tumblr and then press Enter to continue...")

        cookies = driver.get_cookies()

        with open('cookies.pkl', 'wb') as file:

            pickle.dump(cookies, file)

    while True:

        data = get_reblogs(after=after)

        reblogs = data.get('response', {}).get('notes', [])

        if not reblogs:

            break

        for reblog in reblogs:

            account_name = reblog['blog_name']

            if account_name in sent_asks:

                print(f"Already sent ask to {account_name}, skipping.")

                continue

            try:

                url = f"https://api.tumblr.com/v2/blog/{account_name}/info"

                response = requests.get(url, auth=auth)

                if response.status_code == 200:

                    blog_info = response.json().get('response', {}).get('blog', {}).get('ask', False)

                    if blog_info:

                        send_ask(account_name)

                        sent_asks.append(account_name)

                        save_sent_asks(sent_asks)

                    else:

                        print(f"{account_name} doesn't accept asks")

                else:

                    return print("request not available")

            except requests.exceptions.HTTPError as e:

                print(f"Failed to process {account_name}")

        after = data.get('response', {}).get('_links', {}).get('next', {}).get('href')

        if not after:

            break

    # url = f"https://api.tumblr.com/v2/blog/impossiblebool/info"

    # response = requests.get(url, auth=auth)

    # if response.status_code == 200:

    #     blog_info = response.json().get('response', {}).get('blog', {}).get('ask', False)

    #     send_ask("impossiblebool")

    # else:

    #     return print(f"impossiblebool doesn't accept asks>>>>")

    print(f"Script finished, new sent asks number: {len(sent_asks) - previousSave}")

if __name__ == "__main__":

    main()

Donate to Help my family survive famine and have secure life, organized by Mazin Fakak
gofundme.com
Dear friends, family, and compassionate supporters, My name is Eman Za… Mazin Fakak needs your support for Help my family survive famine an

This has been vetted. Please share, and donate if you can <3


More Posts from Leilanising-sideblog

9 months ago

Are u alive? ;4

hewo my friend!! Thank you so much for checking on me!

While this blog is technically my side account, it's actually my main account, but I'm more active on my side account, here! @leilanising

I am so sorry for the confusion 😔 but I rlly appreciate getting a message from you ^^

10 months ago

https://gofund.me/2b8a25aa

🇵🇸🍉🇵🇸🍉🇵🇸🍉🇵🇸🍉

Hey there! I am Majed from Gaza. My family and I are in desperate need of help to rebuild our lives after escaping the war in Gaza💔. Every donation can make a huge difference in securing a safe home and allowing my children to continue their education🙏. Please click the link below to donate or share our story.❤️🍉

Donate to Rebuilding Hope: A Gaza Family in Need of Your Help, organized by Majed gaza
gofundme.com
We Need Your Help to Build a New Life After Escaping the War in Gaza. … Majed gaza needs your support for Rebuilding Hope: A Gaza Family in

This has been vetted. Please share and donate if you can <3


Tags :
10 months ago

Miss Power threatens to deprive Dr. Two-Brains of his needs (Episode: The Rise of Miss Power)

10 months ago

URGENT APPEAL !!!

Don't ignore appeal please please 🥺, time is running out, my little son is very sick he can't breathe normally, He is breathing through a ventilator in the hospital

Donation a LIFE to US

My compaign vetted by 90-ghost, North Gaza updated and butterfly project line no. 406

https://www.tumblr.com/90-ghost/755122452856700928?source=share

My compaign link

https://www.gofundme.com/f/save-the-life-of-an-innocent-child

Please don't leave my little son alone and donate if you can

Thanks 🙏🍉

Donate to Save the life of an innocent child, organized by Yousef Alhabeel
gofundme.com
*Introduction:* Hello everyone, I'm Youssef Al-Habeel. Prior to the conflict, … Yousef Alhabeel needs your support for Save the life of

This has been vetted. Please share and donate if you can <3


Tags :
10 months ago

careful it leaves a mark

Animation by: Yin ‪Youtube Twitter

Idea by AB


Tags :