Advertisement
Guest User

Untitled

a guest
Nov 2nd, 2018
186
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.55 KB | None | 0 0
  1. reddit = praw.Reddit(user_agent=my_user_agent,
  2.                      client_id=my_client_id,
  3.                      client_secret=my_client_secret,
  4.                      username=my_username,
  5.                      password=my_password)
  6.  
  7.  
  8. # In[ ]:
  9.  
  10. import sqlalchemy
  11. from sqlalchemy import create_engine
  12. from sqlalchemy.orm import sessionmaker
  13. from sqlalchemy.ext.declarative import declarative_base
  14. from sqlalchemy import Table, Column, Integer, String, MetaData, ForeignKey, desc, Sequence
  15.  
  16. engine = create_engine('postgresql://python:pythonpass@{}/reddit'.format(server_ip), echo = False)
  17. Base = declarative_base()
  18.  
  19. class Post(Base):
  20.     __tablename__ = 'posts'
  21.     post_id_seq = Sequence('post_id_seq')
  22.     id = Column(Integer, post_id_seq, server_default=post_id_seq.next_value())
  23.     title = Column(String)
  24.     url_id = Column(String, primary_key=True, unique=True)
  25.     points = Column(Integer)
  26.     subr = Column(String)
  27.     author = Column(String)
  28.     link = Column(String)
  29.     def __repr__(self):
  30.         return '<Post(title="{}", url_id="{}", points={}, subr ="{}", author="{}")>'.format(
  31.         self.title, self.url_id, self.points, self.subr, self.author, self.link)
  32.    
  33. Base.metadata.create_all(engine)
  34. Session = sessionmaker(bind=engine)
  35. session = Session()
  36.  
  37.  
  38. # In[ ]:
  39.  
  40. def process_submission(submission, session):
  41.     create_time = datetime.datetime.fromtimestamp(submission.created)
  42.     #out = 'Submission titled {}, \n Was submitted by {} at {}'.format(submission.title,
  43.     #                                                                 submission.author,
  44.     #                                                                 create_time)
  45.     #print(submission.id)
  46.     session.merge(Post(title= submission.title,
  47.                        url_id= submission.id,
  48.                        points= submission.score,
  49.                        subr= submission.subreddit.display_name,
  50.                        author= submission.author.name,
  51.                        link= submission.url))
  52.     session.commit()
  53.     print('committed: {} --{}'.format(submission.id, submission.subreddit.display_name))
  54.  
  55.  
  56. # In[ ]:
  57. print('starting cycle')
  58. for target_subreddit in cycle(target_subreddits):
  59.     print('Rotating, current target {}'.format(target_subreddit))
  60.     subreddit = reddit.subreddit(target_subreddit)
  61.     for num, submission in enumerate(subreddit.stream.submissions()):
  62.             process_submission(submission, session)
  63.             #print(target_subreddit)
  64.             #print(submission.id)
  65.             if num == 120:
  66.                 break
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement