Telegram version of schneiderbot
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
import praw from prawcore import exceptions import requests
def get_post_type(url): header = requests.head(url).headers if 'Content-Type' in header: return header['Content-Type'] else: return ''
def get_reddit_instance(): reddit_config = {} with open("reddit_config") as tmp_file: for line in tmp_file: (key, val) = line.split(';') reddit_config[key] = val.replace('\n', '')
return praw.Reddit( user_agent=reddit_config['user_agent'], client_id=reddit_config['client_id'], client_secret=reddit_config['client_secret'] )
def wrong_dog(bot, update): reddit(bot, update, ['whatswrongwithyourdog'])
def hamster(bot, update): reddit_img(bot, update, ['hamsters'])
def reddit(bot, update, args): if not args: update.message.reply_text("Geile, sag sub") return sub = args[0] reddit_instance = get_reddit_instance()
post = reddit_instance.subreddit(sub).random() update.message.reply_text(post.url)
def reddit_img(bot, update, args): if not args: update.message.reply_text("Geile, sag sub") return desired_sub = args[0] reddit_instance = get_reddit_instance()
try: sub = reddit_instance.subreddit(desired_sub) post = sub.random() print(post.url) except exceptions.NotFound: update.message.reply_text("Geile, gib gültiges Sub") return except exceptions.Forbidden: update.message.reply_text("Geile, gib freies Sub") return except Exception as e: update.message.reply_text(e) return
tries = 0 while "image" not in get_post_type(post.url) and tries < 5: post = sub.random() tries += 1 if tries >= 5: update.message.reply_text("Geile, gib Sub mit Bildern (über 5 Fehlversuche)") return
bot.send_photo(chat_id=update.message.chat_id, photo=post.url)
|