Advertisement
Guest User

Untitled

a guest
Oct 20th, 2018
113
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.96 KB | None | 0 0
  1. import requests
  2. from tinydb import TinyDB, Query, where
  3. import os
  4. import praw
  5. from config import *
  6. from time import sleep
  7. import datetime
  8.  
  9.  
  10. class Colour:
  11.     Green, Red, White, Yellow = '\033[92m', '\033[91m', '\033[0m', '\033[93m'
  12.  
  13.  
  14. db_invited = TinyDB('data/invited.json')
  15. db_api = TinyDB('data/new_api.json')
  16. query = Query()
  17. switches = ['comment', 'submission']
  18.  
  19.  
  20. user_agent = 'Inviterer (by /u/impshum)'
  21. secret_sub = 'outsidethesoulstone'
  22.  
  23. reddit = praw.Reddit(client_id=client_id,
  24.                      client_secret=client_secret,
  25.                      user_agent=user_agent,
  26.                      username=reddit_user,
  27.                      password=reddit_pass)
  28.  
  29.  
  30. def spared_seeker():
  31.     #os.remove('data/new_api.json')
  32.     db_api = TinyDB('data/new_api.json')
  33.     count = 0
  34.     counter = 0
  35.     for switch in switches:
  36.         end = 1
  37.         start = 0
  38.         for i in range(750):
  39.             api = 'https://api.pushshift.io/reddit/search/{}/?subreddit=thanosdidnothingwrong&sort=desc&after={}h&before={}h'.format(switch, end, start)
  40.             r = requests.get(api)
  41.             data = r.json()
  42.             for user in data['data']:
  43.                 count += 1
  44.                 try:
  45.                     author = user['author']
  46.                     flair = user['author_flair_css_class']
  47.                     if flair == 'thanos-spared':
  48.                         if not db_invited.contains(query.user == author):
  49.                             if not db_api.contains(query.user == author):
  50.                                 db_api.insert({'user': author})
  51.                                 counter += 1
  52.                                 print(Colour.Yellow + '{}/{}: {} - {} - {}'.format(counter, count, author, switch, flair))
  53.                 except Exception as e:
  54.                     print(Colour.Red + 'Error: {}'.format(e))
  55.             end += 1
  56.             start += 1
  57.  
  58.  
  59. def invite_bot():
  60.     count = 0
  61.     counter = 0
  62.     users = []
  63.     all_count = len(db_invited.all())
  64.     api_count = len(db_api.all())
  65.     for user in db_api.all():
  66.         counter += 1
  67.         username = user['user']
  68.         if not db_invited.contains(query.user == username):
  69.             try:
  70.                 reddit.subreddit(secret_sub).contributor.add(username)
  71.                 users.append(username)
  72.                 db_invited.insert({'user': username})
  73.             except Exception as e:
  74.                 print(e)
  75.             count += 1
  76.             d = datetime.datetime.now()
  77.             d = d.strftime('%H:%M:%S')
  78.             print(Colour.Green + '{}/{}/{}: {} - {}'.format(counter, api_count, all_count, username, d))
  79.             if count == 500:
  80.                 title = 'INVITE BOT UPDATE'
  81.                 msg = 'Survivors found and invited are\nu/' + ', u/'.join(users)
  82.                 reddit.subreddit(secret_sub).submit(title=title, selftext=msg)
  83.                 count = 0
  84.                 users = []
  85.             sleep(100)
  86.  
  87. invite_bot()
  88. #spared_seeker()
  89. #invite_bot()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement