Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import getpass
- import praw
- import time
- import traceback
- USERAGENT = 'Robin pHorniBot'
- r = praw.Reddit(USERAGENT)
- r.login(input('U: '), getpass.getpass('P: '))
- ROBIN_URL = 'https://www.reddit.com/robin'
- MESSAGE_URL = 'https://www.reddit.com/api/robin/{room}/message'
- VOTE_URL = 'https://www.reddit.com/api/robin/{room}/vote'
- VOTE = 'INCREASE'
- SLEEP = 120
- MESSAGE = 'Python autogrower by /u/pHorniCaiTe because userscripts are bad. This message sends once per merge.'
- def get_room_data():
- page = r.request(ROBIN_URL)
- page.raise_for_status()
- room_name = page.text.split('chat in')[1]
- room_name = room_name.split('</title>')[0].strip()
- room_id = page.text.split('robin_room_id": "')[1]
- room_id = room_id.split('"')[0].strip()
- return (room_id, room_name)
- def post_vote(room_id, room_name, vote):
- data = {
- 'room_id': room_id,
- 'room_name': room_name,
- 'winning_vote': 'NOVOTE',
- 'api_type': 'json',
- 'vote': vote,
- }
- url = VOTE_URL.format(room=room_id)
- post = r.request(url, data=data, method='POST')
- post.raise_for_status()
- return post
- def post_message(room_id, room_name, message):
- data = {
- 'room_id': room_id,
- 'room_name': room_name,
- 'winning_vote': 'NOVOTE',
- 'api_type': 'json',
- 'message': message,
- }
- url = MESSAGE_URL.format(room=room_id)
- post = r.request(url, data=data, method='POST')
- post.raise_for_status()
- return post
- def strftime():
- return time.strftime('[%H:%M:%S]')
- def manage():
- global previous_room
- global i
- print(strftime(), 'Getting room data...')
- (room_id, room_name) = get_room_data()
- if previous_room != room_id:
- print(strftime(), 'Posting vote...')
- post = post_vote(room_id, room_name, VOTE)
- print(strftime(), post)
- if post.status_code == 200:
- print(strftime(), 'Vote successful.')
- time.sleep(20)
- print(strftime(), 'Sending message')
- post = post_message(room_id, room_name, MESSAGE)
- previous_room = room_id
- else:
- pass
- previous_room = None
- while True:
- try:
- manage()
- except:
- traceback.print_exc()
- time.sleep(SLEEP)
Add Comment
Please, Sign In to add comment