From 5c8959ad6bf382ea9c473664d53d6282a533e9bb Mon Sep 17 00:00:00 2001 From: Hey Moon Date: Sun, 27 Nov 2022 14:45:10 -0600 Subject: [PATCH] pre-fsdfsd --- .gitignore | 4 ++ RDramaAPIInterface.py | 101 ------------------------------------------ autodrama.py | 8 ++-- 3 files changed, 8 insertions(+), 105 deletions(-) delete mode 100644 RDramaAPIInterface.py diff --git a/.gitignore b/.gitignore index 1161d70..4f334e0 100644 --- a/.gitignore +++ b/.gitignore @@ -2,3 +2,7 @@ id secret user_agent rdrama_auth_token +*.md +log +__pycache__/ +.ipynb_checkpoints/ \ No newline at end of file diff --git a/RDramaAPIInterface.py b/RDramaAPIInterface.py deleted file mode 100644 index bea820c..0000000 --- a/RDramaAPIInterface.py +++ /dev/null @@ -1,101 +0,0 @@ -import time -import requests -''' -Wrapper around the RDRama API -''' -class RDramaAPIInterface: - def __init__(self, authorization_token, site, sleep : float, https: bool = True) -> None: - self.headers={"Authorization": authorization_token} - self.site = site - self.protocol = "https" if https else "http" - self.sleep = sleep - - def make_post(self, title, submission_url, body): - url=f"{self.protocol}://{self.site}/submit" - return self.post(url, data={'title' : title, 'url': submission_url, 'body': body}) - - ''' - Sends a message to a user. - ''' - def send_message(self, username, message): - url=f"{self.protocol}://{self.site}/@{username}/message" - return self.post(url, data={'message':message}) - - ''' - Replies to the comment with the given id. - ''' - def reply_to_comment(self,parent_fullname, parent_submission, message): - url=f"{self.protocol}://{self.site}/comment" - return self.post(url, data={ - 'parent_fullname':parent_fullname, - 'submission': parent_submission, - "body": message - }) - - ''' - Replies to the comment with the given id. - ''' - def reply_to_comment_easy(self,comment_id, parent_submission, message): - return self.reply_to_comment(f"t3_{comment_id}", parent_submission, message) - - ''' - Gets "all" comments. TODO: Probably need to add pagination support if I want to actually use this - ''' - def get_comments(self): - url=f"{self.protocol}://{self.site}/comments" - return self.get(url) - - ''' - Calls the notifications endpoint - ''' - def get_notifications(self, page : int): - url=f"{self.protocol}://{self.site}/notifications?page={page}" - return self.get(url) - - def reply_to_direct_message(self, message_id : int, message : str): - url=f"{self.protocol}://{self.site}/reply" - return self.post(url, data = { - 'parent_id' : message_id, - 'body': message - }, allowed_failures=[500]) #There is a bug (probably) with the site that causes 500 errors to be sent when doing this via json. TODO: Ask Aevann why - - def get_comment(self, id): - url=f"{self.protocol}://{self.site}/comment/{id}" - return self.get(url) - - def has_url_been_posted(self, the_url): - url=f"{self.protocol}://{self.site}/is_repost" - return self.post(url, {'url': the_url})['permalink'] != '' - - ''' - I have no clue what this is supposed to do, lol. - ''' - def clear_notifications(self): - url=f"{self.protocol}://{self.site}/clear" - return self.post(url, headers=self.headers) - - def give_coins(self, user, amount): - url=f"{self.protocol}://{self.site}/@{user}/transfer_coins" - return self.post(url, data={'amount':amount}) - - def get(self, url, allowed_failures = []): - print(f"[rdrama_api] sleeping for {self.sleep}") - time.sleep(self.sleep) - print(f"[rdrama_api] Awake") - response = requests.get(url, headers=self.headers) - print(f"GET {url} ({response.status_code}) {response.json()}") - if (response.status_code != 200 and response.status_code not in allowed_failures): - raise BaseException(f"GET {url} ({response.status_code}) {response.json()}") - else: - return response.json() - - def post(self, url, data, allowed_failures = []): - print(f"[rdrama_api] sleeping for {self.sleep}") - time.sleep(self.sleep) - print(f"[rdrama_api] Awake") - response = requests.post(url, headers=self.headers, data=data) - print(f"POST {url} ({response.status_code}) {data} => {response.json()}") - if (response.status_code != 200 and response.status_code not in allowed_failures): - raise BaseException(f"POST {url} ({response.status_code}) {data} => {response.json()}") - else: - return response.json() \ No newline at end of file diff --git a/autodrama.py b/autodrama.py index 18026fb..fc934be 100644 --- a/autodrama.py +++ b/autodrama.py @@ -420,7 +420,7 @@ else: auth = f.read() https = True timeout = 10 -rdrama = RDramaAPIInterface(auth, website, timeout, https=https) +rdrama = RDramaAPIInterface(auth, website, https=https) def create_report(submission : Submission, absolute): file_name = sanitize_sentence(submission.title).replace(" ", "_") @@ -428,6 +428,6 @@ def create_report(submission : Submission, absolute): f.write(generate_submission_report(submission, absolute)) if __name__ == "__main__": - # print(f"Starting at {datetime.datetime.now()}") - # daily_drama_post(rdrama) - # print(f"Ending at {datetime.datetime.now()}") \ No newline at end of file + print(f"Starting at {datetime.datetime.now()}") + daily_drama_post(rdrama) + print(f"Ending at {datetime.datetime.now()}") \ No newline at end of file