
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()

This has been vetted. Please share, and donate if you can <3
More Posts from Leilanising-sideblog





m Abdel Muti , I am 27 years old. I live in Palestine, Gaza. I am married and my wife is 23 years old. I have a daughter, Juri,maroan who is 2 years old and salmaa 6manth. We are displaced in southern Gaza. Our situation is very, very difficult, and I am afraid of losing my daughter and my family. Please, my friends, help me with my campaign so that we can travel outside Gaza from Please don't break the children's hear,Please do something and Help my family get out of these bad conditions we are living in, to get the decent life we deserve, to survive, to live, to feel a life 🙏😔https://gofund.me/a4da9cf7

This has been vetted. Please share and donate if you can <3
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.❤️🍉

This has been vetted. Please share and donate if you can <3
Hello dear
I am from the Baalousha family from Gaza.. 🇵🇸🍉
I hope you are well .
I write to you with a heart full of hope and faith, and I ask for your urgent help. My family is in great danger due to the war, and I am running a fundraising campaign to save them. My father and mother suffer from diabetes and high blood pressure. Help me secure them
Please, can you reblog my campaign post on my account? Every participation can make a difference in my family's life.
Thank you from the bottom of my heart for any help you can provide. 🇵🇸🇵🇸
🍉🍉 Please save what's left of my family

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