83f45e7f60
Standardizes shebang and coding declarations. Coding matches what's used by install tools such as pip(x). Removes a few init files that were not needed.
40 lines
1.3 KiB
Python
40 lines
1.3 KiB
Python
#!/usr/bin/env python3
|
|
# -*- coding: utf-8 -*-
|
|
|
|
from abc import ABC, abstractmethod
|
|
from typing import Union
|
|
|
|
from praw.models import Comment, Submission
|
|
|
|
|
|
class BaseArchiveEntry(ABC):
|
|
def __init__(self, source: Union[Comment, Submission]):
|
|
self.source = source
|
|
self.post_details: dict = {}
|
|
|
|
@abstractmethod
|
|
def compile(self) -> dict:
|
|
raise NotImplementedError
|
|
|
|
@staticmethod
|
|
def _convert_comment_to_dict(in_comment: Comment) -> dict:
|
|
out_dict = {
|
|
"author": in_comment.author.name if in_comment.author else "DELETED",
|
|
"id": in_comment.id,
|
|
"score": in_comment.score,
|
|
"subreddit": in_comment.subreddit.display_name,
|
|
"author_flair": in_comment.author_flair_text,
|
|
"submission": in_comment.submission.id,
|
|
"stickied": in_comment.stickied,
|
|
"body": in_comment.body,
|
|
"is_submitter": in_comment.is_submitter,
|
|
"distinguished": in_comment.distinguished,
|
|
"created_utc": in_comment.created_utc,
|
|
"parent_id": in_comment.parent_id,
|
|
"replies": [],
|
|
}
|
|
in_comment.replies.replace_more(limit=None)
|
|
for reply in in_comment.replies:
|
|
out_dict["replies"].append(BaseArchiveEntry._convert_comment_to_dict(reply))
|
|
return out_dict
|