activityserve/TODO

75 lines
3.3 KiB
Plaintext

[ ] Load outbox of users and parse latest posts
[ ] Write these posts to local file
(normally we would need to sort by time but this is a
temporary solution until we really follow the actors
and get notifications in timely manner)
[ ] Follow users
[ ] Announcements (read up how boost json looks like)
[ ] Federate the post to our followers (hardcoded for now)
[ ] Actor should have pubActor not the other way around
[ ] Handle more than one local actors
[ ] Fix the json to host those multiple actors
[ ] Fix the json unmarshalling code to read multiple actors
[ ] Handle the /actor endpoint
[ ] Create configuration file
[ ] Implement database backend
[ ] Create a file with the actors we have, their following
and their followers.
[ ] `MakeActor` should create a file with that actor.
[ ] Implement `LoadActor`
[ ] All but `main.go` should run LoadActor instead of MakeActor
(Actually nobody should run LoadActor except GetActor)
[ ] `actor.Follow` should write the new following to file
[ ] Handle being followed
[ ] When followed, the handler should write the new follower to file
[ ] Make sure we send our boosts to all our followers
Code is there but it works sometimes (I hate when this happens)
[ ] Check why I get calls to get with an id that consists only of an actor's name
[ ] Implement `db.followers` and `db.following`
[ ] Write all the announcements (boosts) to the database to
their correct actors
[ ] Check if we are already following users
[ ] On GetOutbox read the database and present a list of the
last posts.
[ ] Make OS-independent (mosty directory separators)
[ ] Create outbox.json programmatically
[ ] Make storage configurable (search for "storage" in project)
[ ] Check if we're boosting only stuff from actors we follow, not whatever comes
through in our inbox
[ ] Boost not only articles but other things too
[ ] Handle post uri's
[ ] Sanitize input, never allow slashes or dots
[ ] Add summary to actors.json
[ ] Check local actor names for characters illegal for filenames and ban them
[ ] Create debug flag
[ ] Write to following only upon accept
(waiting to actually get an accept so that I can test this)
[ ] Implement webfinger
[ ] Make sure masto finds signature
[ ] Implement Unfollow
[ ] Implement accept (accept when other follow us)
(done but can't test it pending http signatures)
Works in pleroma/pixelfed not working on masto
(nothing works on masto)
[ ] Implement nodeinfo and statistics
[ ] Accept even if already follows us
[ ] Implement db.Update
[ ] Implement db.Delete
[ ] Handle paging
[ ] Handle http signatures
masto can't find the signature
[ ] Verify http signatures
[ ] Why doesn't our outbox being fetched by others?
[ ] Refactor, comment and clean up
[ ] Make sure we never show <actor>.json to the public
[ ] Split to pherephone and activityServe
[ ] Decide what's to be done with actors removed from `actors.json`.
[ ] Remove them?
[ ] Leave them read-only?
[ ] Leave them as is?
[ ] Check if an early failure in announcing posts causes a problem to the following ones
[ ] Handle followers and following uri's
[ ] Do I care about the inbox?
[ ] Maybe look at implementing lock files?
[ ] Check if it's worth it to reuse pubActor instead of creating
a new one every time