Last active
November 5, 2015 20:05
-
-
Save NickHurst/5e0b8b96c506b8a68a0f to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import time | |
import praw | |
import sqlite3 | |
from datetime import datetime | |
def archive_posts(u, sql, c): | |
submissions = u.get_submitted(sort='new', time='all', limit=None) | |
print('Archiving submissions...') | |
for subm in submissions: | |
timestamp = datetime.fromtimestamp(subm.created_utc).strftime('%Y-%m-%d %H:%M:%S') | |
c.execute('''INSERT INTO posts(title, subreddit, karma, num_comments, | |
gilds, link, linked_url, created) | |
VALUES(?,?,?,?,?,?,?,?)''', | |
[subm.title, str(subm.subreddit), subm.score, subm.num_comments, | |
subm.gilded, subm.permalink, subm.url, timestamp]) | |
sql.commit() | |
def archive_comments(u, sql, c): | |
comments = u.get_comments(sort='new', time='all', limit=None) | |
print('Archiving comments...') | |
for cmt in comments: | |
timestamp = datetime.fromtimestamp(cmt.created_utc).strftime('%Y-%m-%d %H:%M:%S') | |
c.execute('''INSERT INTO comments(body, subreddit, karma, gilds, link, created) | |
VALUES(?,?,?,?,?,?)''', | |
[str(cmt), str(cmt.subreddit), cmt.score, cmt.gilded, cmt.permalink, timestamp]) | |
sql.commit() | |
def main(): | |
r = praw.Reddit(user_agent='Post_Archival v1.0 /u/cutety') | |
uname = input('Enter username: ') | |
u = r.get_redditor(uname) | |
sql = sqlite3.connect('{}_archive.db'.format(uname)) | |
c = sql.cursor() | |
c.execute('''CREATE TABLE IF NOT EXISTS posts | |
(id INTEGER PRIMARY KEY AUTOINCREMENT, | |
title TEXT, | |
subreddit TEXT, | |
karma INTEGER, | |
num_comments INTEGER, | |
gilds INTEGER, | |
link TEXT, | |
linked_url TEXT, | |
created TEXT)''') | |
c.execute('''CREATE TABLE IF NOT EXISTS comments | |
(id INTEGER PRIMARY KEY AUTOINCREMENT, | |
body TEXT, | |
subreddit TEXT, | |
karma INTEGER, | |
gilds INTEGER, | |
link TEXT, | |
created TEXT)''') | |
sql.commit() | |
print('Database loaded...') | |
archive_posts(u, sql, c) | |
archive_comments(u, sql, c) | |
print('Done!') | |
if __name__ == '__main__': | |
main() |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment