MCPcopy
hub / github.com/FujiwaraChoki/MoneyPrinterV2 / post

Method post

src/classes/Twitter.py:73–141  ·  view source on GitHub ↗

Starts the Twitter Bot. Args: text (str): The text to post Returns: None

(self, text: Optional[str] = None)

Source from the content-addressed store, hash-verified

71 self.wait: WebDriverWait = WebDriverWait(self.browser, 30)
72
73 def post(self, text: Optional[str] = None) -> None:
74 """
75 Starts the Twitter Bot.
76
77 Args:
78 text (str): The text to post
79
80 Returns:
81 None
82 """
83 bot: webdriver.Firefox = self.browser
84 verbose: bool = get_verbose()
85
86 bot.get("https://x.com/compose/post")
87
88 post_content: str = text if text is not None else self.generate_post()
89 now: datetime = datetime.now()
90
91 print(colored(" => Posting to Twitter:", "blue"), post_content[:30] + "...")
92 body = post_content
93
94 text_box = None
95 text_box_selectors = [
96 (By.CSS_SELECTOR, "div[data-testid='tweetTextarea_0'][role='textbox']"),
97 (By.XPATH, "//div[@data-testid='tweetTextarea_0']//div[@role='textbox']"),
98 (By.XPATH, "//div[@role='textbox']"),
99 ]
100
101 for selector in text_box_selectors:
102 try:
103 text_box = self.wait.until(EC.element_to_be_clickable(selector))
104 text_box.click()
105 text_box.send_keys(body)
106 break
107 except Exception:
108 continue
109
110 if text_box is None:
111 raise RuntimeError(
112 "Could not find tweet text box. Ensure you are logged into X in this Firefox profile."
113 )
114
115
116 post_button = None
117 post_button_selectors = [
118 (By.XPATH, "//button[@data-testid='tweetButtonInline']"),
119 (By.XPATH, "//button[@data-testid='tweetButton']"),
120 (By.XPATH, "//span[text()='Post']/ancestor::button"),
121 ]
122
123 for selector in post_button_selectors:
124 try:
125 post_button = self.wait.until(EC.element_to_be_clickable(selector))
126 post_button.click()
127 break
128 except Exception:
129 continue
130

Callers 4

mainFunction · 0.95
mainFunction · 0.95
share_pitchMethod · 0.95

Calls 4

generate_postMethod · 0.95
add_postMethod · 0.95
get_verboseFunction · 0.85
successFunction · 0.85

Tested by

no test coverage detected