from src.utils import printToFile as print import io import os import pathlib from pathlib import Path from bulkredditdownloader.errors import FileAlreadyExistsError, TypeInSkip from bulkredditdownloader.utils import GLOBAL from bulkredditdownloader.utils import printToFile as print VanillaPrint = print class SelfPost: def __init__(self, directory: pathlib.Path, post: dict): if "self" in GLOBAL.arguments.skip: raise TypeInSkip if not os.path.exists(directory): os.makedirs(directory) filename = GLOBAL.config['filename'].format(**post) file_dir = directory / (filename + ".md") print(file_dir) print(filename + ".md") if Path.is_file(file_dir): raise FileAlreadyExistsError try: self.writeToFile(file_dir, post) except FileNotFoundError: file_dir = post['POSTID'] + ".md" file_dir = directory / file_dir self.writeToFile(file_dir, post) @staticmethod def writeToFile(directory: pathlib.Path, post: dict): """Self posts are formatted here""" content = ("## [" + post["TITLE"] + "](" + post["CONTENTURL"] + ")\n" + post["CONTENT"] + "\n\n---\n\n" + "submitted to [r/" + post["SUBREDDIT"] + "](https://www.reddit.com/r/" + post["SUBREDDIT"] + ") by [u/" + post["REDDITOR"] + "](https://www.reddit.com/user/" + post["REDDITOR"] + ")") with io.open(directory, "w", encoding="utf-8") as FILE: VanillaPrint(content, file=FILE) print("Downloaded")