Ilayda
Bilgili
import feedparser
import pyautogui
import pyperclip
import webbrowser
import time
import os
import logging
import random
# Log dosyası yolu
LOG_FILE_PATH = r"C:\Users\Administrator\Desktop\twitter\log.txt"
os.makedirs(os.path.dirname(LOG_FILE_PATH), exist_ok=True)
logging.basicConfig(filename=LOG_FILE_PATH, level=logging.INFO, format='%(asctime)s - %(message)s')
# RSS adresi
RSS_FEED_URL = "https://news.btc.gripe/feed/"
FILTERED_KEYWORDS = ["Coinkolik"] # Kaldırılacak anahtar kelimeler
def fetch_latest_feed():
"""RSS akışından en son başlığı, linki ve kategorileri çeker."""
feed = feedparser.parse(RSS_FEED_URL)
if feed.entries:
latest_entry = feed.entries[0]
title = latest_entry.title
link = latest_entry.link
categories = []
# Başlıktaki "• Coinkolik" kısmını kaldır
title = title.replace(" • Coinkolik", "")
# Etiketlerden istenmeyenleri çıkar ve ilk etiketi kaldır
if hasattr(latest_entry, 'tags'):
raw_categories = [cat.term for cat in latest_entry.tags if cat.term not in FILTERED_KEYWORDS]
if raw_categories:
raw_categories.pop(0) # İlk etiketi kaldır
selected_categories = random.sample(raw_categories, min(len(raw_categories), random.randint(3, 6)))
categories = [f"#{cat}" for cat in selected_categories]
return title, link, categories
return None, None, []
def is_already_posted(link):
"""Log dosyasına bakarak aynı linkin daha önce paylaşılıp paylaşılmadığını kontrol eder."""
try:
with open(LOG_FILE_PATH, "r", encoding="utf-8") as log_file:
logs = log_file.readlines()
except UnicodeDecodeError:
with open(LOG_FILE_PATH, "r", encoding="cp1252") as log_file:
logs = log_file.readlines()
return any(link in log for log in logs)
def post_to_twitter(title, link, categories):
"""Twitter üzerinde içerik paylaşımını yapar."""
try:
webbrowser.open("https://x.com/compose/post")
time.sleep(47)
post_content = f"{title}\n{link}\n{' '.join(categories)}"
pyperclip.copy(post_content)
pyautogui.hotkey('ctrl', 'v')
time.sleep(6)
pyautogui.hotkey('ctrl', 'enter')
time.sleep(8)
pyautogui.hotkey('ctrl', 'w')
time.sleep(22)
logging.info(f"Posted: {title} - {link}")
print(f"Posted: {title} - {link}")
except Exception as e:
print(f"Error during posting: {e}")
def main():
"""Bot döngüsü."""
while True:
title, link, categories = fetch_latest_feed()
if title and link and not is_already_posted(link):
print(f"New post found: {title}")
print("Posting to Twitter...")
post_to_twitter(title, link, categories)
# Log dosyasına linki kaydedelim
with open(LOG_FILE_PATH, "a", encoding="utf-8") as log_file:
log_file.write(f"{link}\n")
else:
print("No new post or already posted. Waiting...")
time.sleep(200)
if __name__ == "__main__":
main()
import pyautogui
import pyperclip
import webbrowser
import time
import os
import logging
import random
# Log dosyası yolu
LOG_FILE_PATH = r"C:\Users\Administrator\Desktop\twitter\log.txt"
os.makedirs(os.path.dirname(LOG_FILE_PATH), exist_ok=True)
logging.basicConfig(filename=LOG_FILE_PATH, level=logging.INFO, format='%(asctime)s - %(message)s')
# RSS adresi
RSS_FEED_URL = "https://news.btc.gripe/feed/"
FILTERED_KEYWORDS = ["Coinkolik"] # Kaldırılacak anahtar kelimeler
def fetch_latest_feed():
"""RSS akışından en son başlığı, linki ve kategorileri çeker."""
feed = feedparser.parse(RSS_FEED_URL)
if feed.entries:
latest_entry = feed.entries[0]
title = latest_entry.title
link = latest_entry.link
categories = []
# Başlıktaki "• Coinkolik" kısmını kaldır
title = title.replace(" • Coinkolik", "")
# Etiketlerden istenmeyenleri çıkar ve ilk etiketi kaldır
if hasattr(latest_entry, 'tags'):
raw_categories = [cat.term for cat in latest_entry.tags if cat.term not in FILTERED_KEYWORDS]
if raw_categories:
raw_categories.pop(0) # İlk etiketi kaldır
selected_categories = random.sample(raw_categories, min(len(raw_categories), random.randint(3, 6)))
categories = [f"#{cat}" for cat in selected_categories]
return title, link, categories
return None, None, []
def is_already_posted(link):
"""Log dosyasına bakarak aynı linkin daha önce paylaşılıp paylaşılmadığını kontrol eder."""
try:
with open(LOG_FILE_PATH, "r", encoding="utf-8") as log_file:
logs = log_file.readlines()
except UnicodeDecodeError:
with open(LOG_FILE_PATH, "r", encoding="cp1252") as log_file:
logs = log_file.readlines()
return any(link in log for log in logs)
def post_to_twitter(title, link, categories):
"""Twitter üzerinde içerik paylaşımını yapar."""
try:
webbrowser.open("https://x.com/compose/post")
time.sleep(47)
post_content = f"{title}\n{link}\n{' '.join(categories)}"
pyperclip.copy(post_content)
pyautogui.hotkey('ctrl', 'v')
time.sleep(6)
pyautogui.hotkey('ctrl', 'enter')
time.sleep(8)
pyautogui.hotkey('ctrl', 'w')
time.sleep(22)
logging.info(f"Posted: {title} - {link}")
print(f"Posted: {title} - {link}")
except Exception as e:
print(f"Error during posting: {e}")
def main():
"""Bot döngüsü."""
while True:
title, link, categories = fetch_latest_feed()
if title and link and not is_already_posted(link):
print(f"New post found: {title}")
print("Posting to Twitter...")
post_to_twitter(title, link, categories)
# Log dosyasına linki kaydedelim
with open(LOG_FILE_PATH, "a", encoding="utf-8") as log_file:
log_file.write(f"{link}\n")
else:
print("No new post or already posted. Waiting...")
time.sleep(200)
if __name__ == "__main__":
main()