· 9 years ago · Jan 26, 2017, 04:20 AM
1import praw
2import datetime
3import time
4import sqlite3
5from selenium import webdriver
6from selenium.webdriver.common.keys import Keys
7from selenium.webdriver.support.ui import Select
8
9
10#create the database that will store information regarding which posts have already been parsed
11data = sqlite3.connect('checked.db')
12cur = data.cursor()
13cur.execute('CREATE TABLE IF NOT EXISTS checked (id)')
14data.commit()
15reddit = ''
16
17#create a class that will handle submissions on the subreddit
18class redditSubmission(object):
19
20 def __init__(self, submission):
21 self.driver = webdriver.Chrome()
22 self.submission = submission
23 self.url = submission.url
24 self.author = submission.author.name
25 self.id = submission.id
26 self.run()
27
28 def check_database(self):
29 cur.execute('SELECT * FROM checked WHERE id=?',[self.id])
30 if not cur.fetchone():
31 return True
32 else:
33 return False
34
35 def submit_to_database(self):
36 cur.execute('INSERT INTO checked VALUES(?)',[self.id])
37 data.commit()
38
39 def upload_url(self):
40 self.driver.get('https://streamable.com/clipper')
41 self.driver.find_element_by_xpath('//*[@id="root"]/div/div[2]/div[2]/div/div[1]/div/form/input').send_keys(self.url)
42 time.sleep(.5)
43 self.driver.find_element_by_xpath('//*[@id="root"]/div/div[2]/div[2]/div/div[1]/div/form/button').click()
44 time.sleep(.5)
45 self.driver.find_element_by_xpath('//*[@id="clip-controls-footer"]/button').click()
46 time.sleep(.5)
47 self.driver.find_element_by_xpath('//*[@id="video-url"]').click()
48 switch = self.driver.switch_to_window(self.driver.window_handles[-1])
49 time.sleep(.5)
50 url = self.driver.current_url
51 return url
52
53 def response(self):
54 if self.check_database() is True:
55 print('Beginning process...')
56 url = self.upload_url()
57 disclaimer = '\n\n------------\n\n^(I am a bot created by /u/iNeverQuiteWas, and this was done automatically. If you have any questions or concerns, or would like a bot of your own, please contact him) '
58 self.submission.reply('[Rehosted link in case original is lost]({})'.format(url)+disclaimer)
59 self.submit_to_database()
60 print('Reply was successful to /u/{}'.format(self.author))
61
62 def run(self):
63 print('Beginning moderation...')
64 self.response()
65 print('Finished moderation...')
66
67def main():
68 global reddit
69 reddit = praw.Reddit(username='RehostBOT',password='rehost1234',client_id='ehgHk7Y_al2vNw',client_secret='hbaBYxsk3t_IlcHf2Pi5smh9XwY',user_agent='Rehosting moderator for /r/StreetFights')
70 while True:
71 for submission in reddit.subreddit('StreetFights').new(limit=100):
72 redditSubmission(submission)
73 time.sleep(100)
74
75if __name__ == '__main__':
76 main()