Monday, August 18, 2025

import csv, time, random, requests from datetime import datetime import praw # pip install praw BITLY_TOKEN = "BITLY_TOKEN" TELEGRAM_BOT = "TELEGRAM_BOT_TOKEN" TELEGRAM_CHAT = "@your_channel" REDDIT = praw.Reddit( client_id="RID", client_secret="RSEC", username="RUSER", password="RPASS", user_agent="aff-auto/0.1" ) def bitly_shorten(long_url): r = requests.post( "https://api-ssl.bitly.com/v4/shorten", headers={"Authorization": f"Bearer {BITLY_TOKEN}","Content-Type":"application/json"}, json={"long_url": long_url} ) r.raise_for_status() return r.json()["link"] def add_utm(url, platform): glue = "&" if "?" in url else "?" tag = f"utm_source={platform}&utm_medium=social&utm_campaign=aff_{datetime.utcnow().date()}" return f"{url}{glue}{tag}" HOOKS = [ "ये डील सच में काम की है! 🔥", "पैसे बचाने वाला बढ़िया विकल्प ✨", "क्वालिटी चाहिए तो इसे ट्राय करो ✅", ] CTAS = ["ऑफ़र यहाँ देखें", "अभी चेक करें", "डील मिस न करें"] def spin_caption(title, platform): hook = random.choice(HOOKS) cta = random.choice(CTAS) return f"{hook}\n{title}\n{cta} ⬇️\n#ad #affiliate #savings #{platform}" def post_telegram(text): requests.get(f"https://api.telegram.org/bot{TELEGRAM_BOT}/sendMessage", params={"chat_id": TELEGRAM_CHAT, "text": text, "disable_web_page_preview":False}).raise_for_status() def post_reddit(subreddit, title, url): REDDIT.subreddit(subreddit).submit(title=title, url=url) with open("aff_queue.csv") as f: reader = csv.DictReader(f) for row in reader: base = row["url"].strip() title = row["title"].strip() # Telegram t_url = bitly_shorten(add_utm(base, "telegram")) t_text = spin_caption(title, "deals") + f"\n{t_url}" post_telegram(t_text) time.sleep(2) # Reddit (use relevant sub) r_url = bitly_shorten(add_utm(base, "reddit")) post_reddit("deals", f"{title} | Limited?", r_url) time.sleep(5)