Compare commits

...

5 Commits

Author SHA1 Message Date
Chuck Sneed 47d72e778e More post options, wall 2023-04-05 15:11:11 -05:00
Chuck Sneed 6ba70f2540 More self id stuff 2023-03-23 17:54:25 -05:00
Chuck Sneed d317dd4d0e Fix get_user_info 2023-03-22 09:32:47 -05:00
Chuck Sneed 155df83abe LRU cache 2023-03-21 21:19:41 -05:00
Chuck Sneed 3375c1073f easy way to determine if chudded 2023-03-21 18:10:57 -05:00
1 changed files with 40 additions and 2 deletions

View File

@ -3,6 +3,7 @@ import requests
from bs4 import BeautifulSoup
import traceback
import backoff
from functools import lru_cache
class TimeOutException(Exception):
pass
@ -15,10 +16,43 @@ class RDramaAPIInterface:
self.headers={"Authorization": authorization_token}
self.site = site
self.protocol = "https" if https else "http"
self.user_information = None
self.badge_refresh = False
def make_post(self, title, submission_url, body):
def is_chudded(self):
return "Chud" in self.get_my_badges_simple()
def is_marsey_awarded(self):
return "Marsey Award" in self.get_my_badges_simple()
def is_bird_site(self):
return "Bird Site Award" in self.get_my_badges_simple()
def is_pizzashilled(self):
return "Pizzashill Award" in self.get_my_badges_simple()
def get_agendaposter_phrase(self):
return self.get_me()['agendaposter_phrase']
def is_banned(self):
return self.get_me()['is_banned']
@lru_cache(maxsize=None)
def get_my_badges_simple(self):
return [i['name'] for i in self.get_my_badges()]
def get_my_badges(self):
return self.get_me()['badges']
def make_post(self, title, submission_url, body, notify = True, hole=None):
url=f"{self.protocol}://{self.site}/submit"
return self.post(url, data={'title' : title, 'url': submission_url, 'body': body})
return self.post(url, data={'title' : title, 'url': submission_url, 'body': body, 'notify': "on" if notify else "off", "sub":hole})
@lru_cache(maxsize=None)
def get_me(self):
self.get_front_page()
url=f"{self.protocol}://{self.site}/@me"
return self.get(url)
'''
Sends a message to a user.
@ -53,6 +87,9 @@ class RDramaAPIInterface:
def reply_to_post(self, post_id, message):
return self.reply_to_comment(f"p_{post_id}", post_id, message)
def comment_on_wall(self, user_id, message):
return self.reply_to_comment(f"u_{user_id}", None, message)
'''
Gets "all" comments.
@ -107,6 +144,7 @@ class RDramaAPIInterface:
def get_front_page(self):
url=f"{self.protocol}://{self.site}"
self.badge_refresh = True
return self.get(url)
def get_hole(self, hole: str):