Compare commits
5 Commits
a24b36a822
...
47d72e778e
Author | SHA1 | Date |
---|---|---|
Chuck Sneed | 47d72e778e | |
Chuck Sneed | 6ba70f2540 | |
Chuck Sneed | d317dd4d0e | |
Chuck Sneed | 155df83abe | |
Chuck Sneed | 3375c1073f |
|
@ -3,6 +3,7 @@ import requests
|
||||||
from bs4 import BeautifulSoup
|
from bs4 import BeautifulSoup
|
||||||
import traceback
|
import traceback
|
||||||
import backoff
|
import backoff
|
||||||
|
from functools import lru_cache
|
||||||
|
|
||||||
class TimeOutException(Exception):
|
class TimeOutException(Exception):
|
||||||
pass
|
pass
|
||||||
|
@ -15,10 +16,43 @@ class RDramaAPIInterface:
|
||||||
self.headers={"Authorization": authorization_token}
|
self.headers={"Authorization": authorization_token}
|
||||||
self.site = site
|
self.site = site
|
||||||
self.protocol = "https" if https else "http"
|
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"
|
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.
|
Sends a message to a user.
|
||||||
|
@ -54,6 +88,9 @@ class RDramaAPIInterface:
|
||||||
def reply_to_post(self, post_id, message):
|
def reply_to_post(self, post_id, message):
|
||||||
return self.reply_to_comment(f"p_{post_id}", 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.
|
Gets "all" comments.
|
||||||
'''
|
'''
|
||||||
|
@ -107,6 +144,7 @@ class RDramaAPIInterface:
|
||||||
|
|
||||||
def get_front_page(self):
|
def get_front_page(self):
|
||||||
url=f"{self.protocol}://{self.site}"
|
url=f"{self.protocol}://{self.site}"
|
||||||
|
self.badge_refresh = True
|
||||||
return self.get(url)
|
return self.get(url)
|
||||||
|
|
||||||
def get_hole(self, hole: str):
|
def get_hole(self, hole: str):
|
||||||
|
|
Loading…
Reference in New Issue