Files
TestPostsBot/bot.py
2026-03-04 23:01:36 +00:00

55 lines
1.7 KiB
Python

# Reddit Test Posts Bot
# This script reads config from a subreddit wiki page and makes test posts if the bot is a moderator.
import praw
import json
import time
import os
from config import fetch_config_from_wiki
REDDIT_CLIENT_ID = os.environ.get('REDDIT_CLIENT_ID')
REDDIT_CLIENT_SECRET = os.environ.get('REDDIT_CLIENT_SECRET')
REDDIT_USERNAME = os.environ.get('REDDIT_USERNAME')
REDDIT_PASSWORD = os.environ.get('REDDIT_PASSWORD')
REDDIT_USER_AGENT = os.environ.get('REDDIT_USER_AGENT', f'TestPostsBot/0.1 by {REDDIT_USERNAME}')
SUBREDDIT = os.environ.get('SUBREDDIT')
WIKI_PAGE = os.environ.get('WIKI_PAGE', 'testpostsbot_config')
def is_moderator(reddit, subreddit_name):
subreddit = reddit.subreddit(subreddit_name)
mods = [str(mod) for mod in subreddit.moderator()]
return reddit.user.me().name in mods
def make_posts(reddit, subreddit_name, posts):
subreddit = reddit.subreddit(subreddit_name)
for post in posts:
title = post.get('title', 'Test Post')
body = post.get('body', '')
print(f"Posting: {title}")
subreddit.submit(title, selftext=body)
time.sleep(2) # avoid rate limits
def main():
reddit = praw.Reddit(
client_id=REDDIT_CLIENT_ID,
client_secret=REDDIT_CLIENT_SECRET,
username=REDDIT_USERNAME,
password=REDDIT_PASSWORD,
user_agent=REDDIT_USER_AGENT
)
config = fetch_config_from_wiki(reddit, SUBREDDIT, WIKI_PAGE)
posts = config.get('posts', [])
if is_moderator(reddit, SUBREDDIT):
make_posts(reddit, SUBREDDIT, posts)
else:
print(f"Bot is not a moderator of r/{SUBREDDIT}. No posts made.")
if __name__ == '__main__':
main()