1234567891011121314151617181920212223242526272829303132333435363738394041424344 |
- from functools import reduce
- import requests
- from requests.exceptions import ConnectionError
- def post_message(msg, bot_id):
- requests.post(
- "https://api.groupme.com/v3/bots/post",
- json={
- "bot_id": bot_id,
- "text": msg
- },
- timeout=10
- )
- def upload_image(key, content):
- try:
- return True, requests.post(
- "https://image.groupme.com/pictures",
- headers={
- "Content-Type": "image/png",
- "X-Access-Token": key,
- },
- data=content
- ).json()["payload"]["url"]
- except ConnectionError as ce:
- return False, {
- "explain": "Could not reach GroupMe image service.",
- "exception": ce
- }
- except (KeyError, JSONDecodeError) as e:
- return False, {
- "explain": "Could not parse response from GroupMe image service.",
- "exception": e
- }
- def find_all_subclasses(baseClass):
- def get_subclasses(clazz):
- s = set(clazz.__subclasses__())
- return s | reduce(set.union, (get_subclasses(sc) for sc in s), set())
- return get_subclasses(baseClass)
|