start the retrieval work
This commit is contained in:
parent
dcf143d556
commit
a7309aa1c1
47
patchodon.py
47
patchodon.py
|
|
@ -30,16 +30,21 @@ def api_token(args):
|
|||
raise ("API token not specified")
|
||||
|
||||
|
||||
def do_post_status(args, body, parent=None, optional=None):
|
||||
if len(body) > STATUS_LENGTH_LIMIT:
|
||||
raise ("required status body too long")
|
||||
|
||||
def auth_headers(args):
|
||||
if not args.instance_url:
|
||||
raise ("mastodon instance not specified")
|
||||
|
||||
token = api_token(args)
|
||||
|
||||
headers = {"Authorization": f"Bearer {token}"}
|
||||
return {"Authorization": f"Bearer {token}"}
|
||||
|
||||
|
||||
def do_post_status(args, body, parent=None, optional=None):
|
||||
if len(body) > STATUS_LENGTH_LIMIT:
|
||||
raise ("required status body too long")
|
||||
|
||||
headers = auth_headers(args)
|
||||
|
||||
st = body + (
|
||||
"\n" + optional[0 : (STATUS_LENGTH_LIMIT - len(body) - 1)]
|
||||
if optional
|
||||
|
|
@ -129,13 +134,35 @@ def do_post(args):
|
|||
print(url)
|
||||
|
||||
|
||||
def find_head_post(args):
|
||||
headers = auth_headers(args)
|
||||
r = requests.get(
|
||||
args.instance_id + "/api/v2/search",
|
||||
params={"resolve": "true", "limit": "10", "q": args.patch_url},
|
||||
)
|
||||
print(r.__dict__)
|
||||
if r.status_code != 200:
|
||||
raise ("status URL search failed!")
|
||||
|
||||
sts = filter(lambda x: x["url"] == args.patch_url, r.json()["statuses"])
|
||||
|
||||
if len(sts) < 1:
|
||||
raise ("status URL not found")
|
||||
|
||||
if len(sts) > 1:
|
||||
raise ("ambiguous status URL?")
|
||||
|
||||
st = sts[0]
|
||||
return (st["id"], st["account"]["id"], st["content"])
|
||||
|
||||
|
||||
def do_get(args):
|
||||
# search & resolve the status ID on the instance (if configured)
|
||||
# get context, all replies from the same author as the original status ID
|
||||
# cycle the same for all hashes
|
||||
st_id, st_acct_id, st_content = find_head_post(args)
|
||||
# parse out the hash and subhashes
|
||||
# get context, all replies from the same author as the original status ID, subhashes must match
|
||||
# repeat for all subhashes
|
||||
# verify the full hash
|
||||
# pass to git-am OR throw to a directory
|
||||
pass
|
||||
# pass as one blob to git-am OR throw to a directory
|
||||
|
||||
|
||||
def main():
|
||||
|
|
|
|||
Loading…
Reference in a new issue