Guest User

Untitled

a guest
Apr 5th, 2016
384
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.26 KB | None | 0 0
  1. import getpass
  2. import praw
  3. import time
  4. import traceback
  5.  
  6. USERAGENT = 'Robin pHorniBot'
  7. r = praw.Reddit(USERAGENT)
  8. r.login(input('U: '), getpass.getpass('P: '))
  9.  
  10.  
  11. ROBIN_URL = 'https://www.reddit.com/robin'
  12. MESSAGE_URL = 'https://www.reddit.com/api/robin/{room}/message'
  13. VOTE_URL = 'https://www.reddit.com/api/robin/{room}/vote'
  14. VOTE = 'INCREASE'
  15. SLEEP = 120
  16. MESSAGE = 'Python autogrower by /u/pHorniCaiTe because userscripts are bad. This message sends once per merge.'
  17.  
  18.  
  19.  
  20. def get_room_data():
  21.     page = r.request(ROBIN_URL)
  22.     page.raise_for_status()
  23.     room_name = page.text.split('chat in')[1]
  24.     room_name = room_name.split('</title>')[0].strip()
  25.     room_id = page.text.split('robin_room_id": "')[1]
  26.     room_id = room_id.split('"')[0].strip()
  27.     return (room_id, room_name)
  28.  
  29. def post_vote(room_id, room_name, vote):
  30.     data = {
  31.         'room_id': room_id,
  32.         'room_name': room_name,
  33.         'winning_vote': 'NOVOTE',
  34.         'api_type': 'json',
  35.         'vote': vote,
  36.     }
  37.     url = VOTE_URL.format(room=room_id)
  38.     post = r.request(url, data=data, method='POST')
  39.     post.raise_for_status()
  40.     return post
  41.  
  42. def post_message(room_id, room_name, message):
  43.     data = {
  44.         'room_id': room_id,
  45.         'room_name': room_name,
  46.         'winning_vote': 'NOVOTE',
  47.         'api_type': 'json',
  48.         'message': message,
  49.     }
  50.     url = MESSAGE_URL.format(room=room_id)
  51.     post = r.request(url, data=data, method='POST')
  52.     post.raise_for_status()
  53.     return post
  54.  
  55. def strftime():
  56.     return time.strftime('[%H:%M:%S]')
  57.  
  58. def manage():
  59.     global previous_room
  60.     global i
  61.     print(strftime(), 'Getting room data...')
  62.     (room_id, room_name) = get_room_data()
  63.     if previous_room != room_id:
  64.         print(strftime(), 'Posting vote...')
  65.         post = post_vote(room_id, room_name, VOTE)
  66.         print(strftime(), post)
  67.         if post.status_code == 200:
  68.             print(strftime(), 'Vote successful.')
  69.         time.sleep(20)
  70.         print(strftime(), 'Sending message')
  71.         post = post_message(room_id, room_name, MESSAGE)
  72.         previous_room = room_id
  73.     else:
  74.         pass
  75.  
  76. previous_room = None
  77. while True:
  78.     try:
  79.         manage()
  80.     except:
  81.         traceback.print_exc()
  82.     time.sleep(SLEEP)
Add Comment
Please, Sign In to add comment