mirror of
https://github.com/wassname/RedditAgain.git
synced 2026-06-27 22:35:31 +08:00
79 lines
2.8 KiB
Python
79 lines
2.8 KiB
Python
#!/usr/bin/env python
|
|
|
|
import sys
|
|
import time
|
|
import csv
|
|
|
|
import praw
|
|
|
|
USER_AGENT = 'RedditAgain by @karangoeluw // github: thekarangoel'
|
|
|
|
def print_dot():
|
|
"""Prints out a dot on the same line when called"""
|
|
sys.stdout.write('. ')
|
|
sys.stdout.flush()
|
|
|
|
def main():
|
|
print '>> Login to OLD account..'
|
|
|
|
old_r = praw.Reddit(USER_AGENT) # praw.Reddit
|
|
old_r.login()
|
|
|
|
print '\t>>Login successful..'
|
|
old_user = old_r.user # get a praw.objects.LoggedInRedditor object
|
|
|
|
print '>> Saving and Deleting all comments...'
|
|
comment_file = csv.writer(open('%s_comments.csv' % old_user.name, 'wb'))
|
|
comment_file.writerow(['Comment', "Posted on", "Thread"]) # header
|
|
|
|
for com in old_user.get_comments(limit=None):
|
|
comment_file.writerow([com.body,
|
|
time.strftime('%Y-%m-%d %H:%M:%S',
|
|
time.localtime(com.created)),
|
|
com.submission.permalink])
|
|
com.delete()
|
|
print_dot()
|
|
comment_file.close()
|
|
print '\n\t>> Saved to {0}_comments.csv'.format(old_user.name)
|
|
|
|
print '>> Saving and Deleting all submissions...'
|
|
submission_file = csv.writer(open('%s_submissions.csv' % old_user.name, 'wb'))
|
|
submission_file.writerow(['Title', "Body/Link", "Created", "Karma"]) # header
|
|
|
|
for sub in old_user.get_submitted(limit=None):
|
|
submission_file.writerow([sub.title,
|
|
sub.selftext if sub.is_self else sub.url,
|
|
time.strftime('%Y-%m-%d %H:%M:%S',
|
|
time.localtime(sub.created)),
|
|
sub.score])
|
|
sub.delete()
|
|
print_dot()
|
|
print '\n\t>> Saved to {0}_submissions.csv'.format(old_user.name)
|
|
|
|
print '>> Preparing to migrate subscriptions.'
|
|
|
|
subs = old_r.get_my_subreddits(limit=None)
|
|
|
|
new_r = praw.Reddit(USER_AGENT)
|
|
new_username = raw_input('>> Enter username of new account to be registered.')
|
|
new_pass = raw_input('\t>> Enter preferred password for %s' % new_username)
|
|
|
|
new_r.create_redditor(new_username, new_pass) # create the new account
|
|
|
|
new_r.login(new_username, new_pass)
|
|
|
|
new_user = new_r.user # get a praw.objects.LoggedInRedditor object
|
|
print '\t>>Login successful..'
|
|
|
|
print '>> Migrating subscriptions...'
|
|
for sub in subs:
|
|
new_r.get_subreddit(sub.display_name).subscribe()
|
|
old_r.get_subreddit(sub.display_name).unsubscribe()
|
|
print_dot()
|
|
|
|
print '>> Done migrating.'
|
|
print '>> Go to https://ssl.reddit.com/prefs/delete/ to delete your old account.'
|
|
|
|
|
|
if __name__ == '__main__':
|
|
main() |