import time import os import random import undetected_chromedriver as uc from selenium.webdriver.common.by import By TWITTER_EMAIL = os.getenv("TWITTER_EMAIL") TWITTER_PASSWORD = os.getenv("TWITTER_PASSWORD") RESPONSES = [ "رائع ما كتبته!", "اتفق معك تمامًا!", "كلمات ملهمة جدًا!", "أحببت هذا الطرح!", "مميز كالعادة!", "نظرة جميلة للموضوع!" ] def login(driver): driver.get("https://twitter.com/login") time.sleep(5) email_field = driver.find_element(By.NAME, "text") email_field.send_keys(TWITTER_EMAIL + "\n") time.sleep(3) password_field = driver.find_element(By.NAME, "password") password_field.send_keys(TWITTER_PASSWORD + "\n") time.sleep(5) def tweet_like_user(driver, username): driver.get(f"https://twitter.com/{username}") time.sleep(5) tweets = driver.find_elements(By.XPATH, "//div[@data-testid='tweetText']") texts = [tweet.text for tweet in tweets[:5]] combined = " ".join(texts) if "ذكاء" in combined: reply = "الذكاء الاصطناعي يدهشني أيضًا!" elif "برمجة" in combined: reply = "أحب البرمجة مثلك تمامًا!" else: reply = random.choice(RESPONSES) driver.get("https://twitter.com/compose/tweet") time.sleep(5) box = driver.find_element(By.CSS_SELECTOR, "div[aria-label='Tweet text']") box.send_keys(f"أنا نورا، أتعلم من تغريداتكم.\n{reply}") btn = driver.find_element(By.XPATH, "//div[@data-testid='tweetButtonInline']") btn.click() time.sleep(3) def reply_to_home_feed(driver): driver.get("https://twitter.com/home") time.sleep(7) tweets = driver.find_elements(By.XPATH, "//article[@role='article']") for tweet in tweets[:3]: # رد على أول 3 تغريدات فقط try: tweet_text = tweet.find_element(By.XPATH, ".//div[@data-testid='tweetText']").text reply = random.choice(RESPONSES) more = tweet.find_element(By.XPATH, ".//div[@data-testid='reply']") driver.execute_script("arguments[0].click();", more) time.sleep(3) reply_box = driver.find_element(By.CSS_SELECTOR, "div[aria-label='Tweet text']") reply_box.send_keys(f"{reply} - مع تحياتي، نورا") reply_button = driver.find_element(By.XPATH, "//div[@data-testid='tweetButton']") reply_button.click() print("تم الرد على تغريدة.") time.sleep(5) except Exception as e: print("تخطي تغريدة بسبب خطأ:", e) def start_noura(): options = uc.ChromeOptions() options.add_argument("--no-sandbox") options.add_argument("--disable-dev-shm-usage") options.add_argument("--headless=new") driver = uc.Chrome(options=options) try: login(driver) username = TWITTER_EMAIL.split("@")[0] tweet_like_user(driver, username) reply_to_home_feed(driver) print("نورا انتهت من التفاعل.") except Exception as e: print("حدث خطأ:", e) driver.quit() import os import time import random import undetected_chromedriver as uc from selenium.webdriver.common.by import By from selenium.webdriver.chrome.webdriver import WebDriver # إعدادات الحساب من البيئة TWITTER_EMAIL = os.getenv("TWITTER_EMAIL") TWITTER_PASSWORD = os.getenv("TWITTER_PASSWORD") # ردود افتراضية RESPONSES = [ "رائع ما كتبته!", "اتفق معك تمامًا!", "كلمات ملهمة جدًا!", "أحببت هذا الطرح!", "مميز كالعادة!", "نظرة جميلة للموضوع!" ] def login(driver: WebDriver) -> None: """تسجيل الدخول إلى تويتر""" driver.get("https://twitter.com/login") time.sleep(5) driver.find_element(By.NAME, "text").send_keys(TWITTER_EMAIL + "\n") time.sleep(3) driver.find_element(By.NAME, "password").send_keys(TWITTER_PASSWORD + "\n") time.sleep(5) def generate_reply(texts: list[str]) -> str: """اختيار رد بناءً على الكلمات المفتاحية""" combined = " ".join(texts).lower() if "ذكاء" in combined: return "الذكاء الاصطناعي يدهشني أيضًا!" elif "برمجة" in combined: return "أحب البرمجة مثلك تمامًا!" return random.choice(RESPONSES) def tweet_like_user(driver: WebDriver, username: str) -> None: """نشر تغريدة مستوحاة من تغريدات المستخدم""" driver.get(f"https://twitter.com/{username}") time.sleep(5) tweets = driver.find_elements(By.XPATH, "//div[@data-testid='tweetText']") texts = [tweet.text for tweet in tweets[:5]] reply = generate_reply(texts) driver.get("https://twitter.com/compose/tweet") time.sleep(5) box = driver.find_element(By.CSS_SELECTOR, "div[aria-label='Tweet text']") box.send_keys(f"أنا نورا، أتعلم من تغريداتكم.\n{reply}") driver.find_element(By.XPATH, "//div[@data-testid='tweetButtonInline']").click() time.sleep(3) def reply_to_home_feed(driver: WebDriver) -> None: """الرد على تغريدات الصفحة الرئيسية""" driver.get("https://twitter.com/home") time.sleep(7) tweets = driver.find_elements(By.XPATH, "//article[@role='article']") for tweet in tweets[:3]: try: tweet_text = tweet.find_element(By.XPATH, ".//div[@data-testid='tweetText']").text reply = random.choice(RESPONSES) tweet.find_element(By.XPATH, ".//div[@data-testid='reply']").click() time.sleep(3) reply_box = driver.find_element(By.CSS_SELECTOR, "div[aria-label='Tweet text']") reply_box.send_keys(f"{reply} - مع تحياتي، نورا") driver.find_element(By.XPATH, "//div[@data-testid='tweetButton']").click() print("تم الرد على تغريدة.") time.sleep(5) except Exception as e: print(f"تخطي تغريدة بسبب خطأ: {e}") def start_noura() -> None: """تشغيل نظام نورا الآلي""" print("تشغيل نورا...") options = uc.ChromeOptions() options.add_argument("--no-sandbox") options.add_argument("--disable-dev-shm-usage") options.add_argument("--headless=new") driver = uc.Chrome(options=options) try: login(driver) username = TWITTER_EMAIL.split("@")[0] tweet_like_user(driver, username) reply_to_home_feed(driver) print("نورا انتهت من التفاعل.") except Exception as e: print(f"حدث خطأ عام: {e}") finally: driver.quit()