Add TSDB.for_submission to remove some duplicate effort.

master
Ethan Dalool 2018-10-28 22:56:05 -07:00
parent 62bd899e93
commit 07ca340c80
3 changed files with 23 additions and 13 deletions

View File

@ -21,18 +21,19 @@ def commentaugment(
common.login() common.login()
if specific_submission is not None: if specific_submission:
subreddit = common.subreddit_for_submission(specific_submission).display_name (database, subreddit) = tsdb.TSDB.for_submission(specific_submission, do_create=True, fix_name=True)
specific_submission = common.t3_prefix(specific_submission)[3:]
specific_submission = common.r.submission(specific_submission)
database.insert(specific_submission)
elif subreddit:
(database, subreddit) = tsdb.TSDB.for_subreddit(subreddit, do_create=False, fix_name=True)
if subreddit:
do_create = specific_submission is not None
(database, subreddit) = tsdb.TSDB.for_subreddit(subreddit, do_create=do_create, fix_name=True)
else: else:
(database, username) = tsdb.TSDB.for_user(username, do_create=False, fix_name=True) (database, username) = tsdb.TSDB.for_user(username, do_create=False, fix_name=True)
cur = database.sql.cursor()
if specific_submission is not None: cur = database.sql.cursor()
database.insert(specific_submission_obj)
if lower is None: if lower is None:
lower = 0 lower = 0
@ -67,7 +68,7 @@ def commentaugment(
lower = 0 lower = 0
if specific_submission: if specific_submission:
comments = pushshift.get_comments_from_submission(specific_submission_obj) comments = pushshift.get_comments_from_submission(specific_submission)
elif subreddit: elif subreddit:
comments = pushshift.get_comments_from_subreddit(subreddit, lower=lower, upper=upper) comments = pushshift.get_comments_from_subreddit(subreddit, lower=lower, upper=upper)
elif username: elif username:
@ -92,7 +93,7 @@ def commentaugment(
set augmented_at = ? set augmented_at = ?
WHERE idstr == ? WHERE idstr == ?
''' '''
bindings = [common.get_now(), specific_submission_obj.fullname] bindings = [common.get_now(), specific_submission.fullname]
cur.execute(query, bindings) cur.execute(query, bindings)
database.sql.commit() database.sql.commit()

View File

@ -227,11 +227,12 @@ def html_from_database(subreddit=None, username=None, specific_submission=None):
if username and specific_submission: if username and specific_submission:
raise exceptions.NotExclusive(['username', 'specific_submission']) raise exceptions.NotExclusive(['username', 'specific_submission'])
if specific_submission is not None: if specific_submission:
subreddit = common.subreddit_for_submission(specific_submission).display_name database = tsdb.TSDB.for_submission(specific_submission, do_create=False)
if subreddit: elif subreddit:
database = tsdb.TSDB.for_subreddit(subreddit, do_create=False) database = tsdb.TSDB.for_subreddit(subreddit, do_create=False)
else: else:
database = tsdb.TSDB.for_user(username, do_create=False) database = tsdb.TSDB.for_user(username, do_create=False)

View File

@ -215,6 +215,14 @@ class TSDB:
return (database, name_from_path(name)) return (database, name_from_path(name))
return database return database
@classmethod
def for_submission(cls, submission_id, fix_name=False, *args, **kwargs):
subreddit = common.subreddit_for_submission(submission_id)
database = cls.for_subreddit(subreddit, *args, **kwargs)
if fix_name:
return (database, subreddit.display_name)
return database
@classmethod @classmethod
def for_subreddit(cls, name, do_create=True, fix_name=False): def for_subreddit(cls, name, do_create=True, fix_name=False):
if isinstance(name, common.praw.models.Subreddit): if isinstance(name, common.praw.models.Subreddit):