59 lines
2.1 KiB
Python
59 lines
2.1 KiB
Python
from fediseer.apis.v1.base import *
|
|
from fediseer.fediverse import get_nodeinfo
|
|
|
|
class User(Resource):
|
|
get_parser = reqparse.RequestParser()
|
|
|
|
@api.expect(get_parser)
|
|
@cache.cached(timeout=10)
|
|
def get(self, username):
|
|
'''User details
|
|
'''
|
|
self.args = self.get_parser.parse_args()
|
|
if username != "fediseer":
|
|
raise e.NotFound("User does not exist")
|
|
with open('public.pem', 'r') as file:
|
|
pubkey = file.read()
|
|
fediseer = {
|
|
"@context": [
|
|
"https://www.w3.org/ns/activitystreams",
|
|
"https://w3id.org/security/v1"
|
|
],
|
|
"type": "Person",
|
|
"id": "https://fediseer.com/api/v1/user/fediseer",
|
|
"type": "Person",
|
|
"preferredUsername": "fediseer",
|
|
"inbox": "https://fediseer.com/api/v1/inbox/fediseer",
|
|
"outbox": "https://fediseer.com/api/v1/outbox/fediseer",
|
|
"publicKey": {
|
|
"id": "https://fediseer.com/api/v1/user/fediseer#main-key",
|
|
"owner": "https://fediseer.com/api/v1/user/fediseer",
|
|
"publicKeyPem": pubkey
|
|
}
|
|
}
|
|
return fediseer,200
|
|
|
|
class Inbox(Resource):
|
|
post_parser = reqparse.RequestParser()
|
|
|
|
@api.expect(post_parser)
|
|
def post(self, username):
|
|
'''User Inbox
|
|
'''
|
|
if username != "fediseer":
|
|
raise e.NotFound("User does not exist")
|
|
self.args = self.post_parser.parse_args()
|
|
json_payload = request.get_json()
|
|
actor = json_payload["actor"]
|
|
if json_payload.get("type") == "Follow":
|
|
logger.info(f"Fediseer is now followed from: {actor}")
|
|
elif json_payload.get("type") == "Delete":
|
|
pass
|
|
else:
|
|
try:
|
|
message = json_payload["object"]["content"]
|
|
logger.info(f"Fediseer Inbox Received: From: {actor} | {message}")
|
|
except:
|
|
logger.info(f"Received unexpected inbox payload: {json_payload}")
|
|
return {"message": "delivered"}, 200
|