Commit graph

267 commits

Author SHA1 Message Date
silverpill
91a91b9c16 Implement outboxes 2021-12-24 12:21:05 +00:00
silverpill
ca5640b138 Improve logging in deliverer module 2021-12-24 00:46:29 +00:00
silverpill
de15a57148 Create activitypub::collections module 2021-12-23 00:35:12 +00:00
silverpill
2703ab717a Prevent profile import error in case of webfinger redirection 2021-12-22 23:27:32 +00:00
silverpill
c13b110ca2 Allow linebreaks after mentions 2021-12-22 00:07:07 +00:00
silverpill
07b711fd61 Ignore Undo(Like) if reaction is not found in database 2021-12-21 22:19:21 +00:00
silverpill
2ab33f22ee Add log_level config parameter and improve logging of activities 2021-12-21 22:19:17 +00:00
silverpill
900299b5e8 Make "value" property optional on ActorProperty type 2021-12-20 23:07:08 +00:00
silverpill
bbbd2fcb13 Keep track of redirects when fetching thread 2021-12-20 01:00:35 +00:00
silverpill
263fae8039 Make name property optional on actor object 2021-12-20 00:12:18 +00:00
silverpill
93b703ba2f Fetch mentioned remote profiles when processing Create(Note) activity 2021-12-19 22:21:02 +00:00
silverpill
fae3f5bc2f Refactor mention_to_acct to return detailed actor address 2021-12-19 22:15:20 +00:00
silverpill
57ada55e8e Add formerType property to Tombstone object 2021-12-18 23:20:25 +00:00
silverpill
d31d315517 Use mention tag name instead of href when parsing incoming notes 2021-12-18 01:09:43 +00:00
silverpill
2df7f7ced7 Log inferred object type in receive_activity() 2021-12-17 23:47:46 +00:00
silverpill
f785541205 Delete accepted follow request when unfollowing actor 2021-12-17 22:35:39 +00:00
silverpill
a07f118159 Enable profile directory pagination 2021-12-16 23:09:08 +00:00
silverpill
3989a40825 Send Undo(Announce) activity when repost is deleted 2021-12-16 18:53:58 +00:00
silverpill
cf69ac6eb2 Send Undo(Like) activity when post is unfavourited 2021-12-15 01:03:59 +00:00
silverpill
99f32e8202 Store IDs of incoming Like() activities 2021-12-14 22:59:15 +00:00
silverpill
42624ab9a5 Enable pagination on profile timeline 2021-12-14 16:20:16 +00:00
silverpill
fc153a3156 Set "object" property value to note ID in Like() and Announce() activities 2021-12-12 22:36:50 +00:00
silverpill
816cae6b78 Link hashtags in posts to corresponding tag timeline pages 2021-12-12 19:16:32 +00:00
silverpill
da918d2296 Add API method for retrieving tag timeline 2021-12-12 18:42:09 +00:00
silverpill
a4dd06d6e9 Replace actor ID with actor URL in mentions, add microformats 2021-12-12 00:41:07 +00:00
silverpill
2a58f567b9 Add @ to mention tag names in Note objects 2021-12-12 00:41:07 +00:00
silverpill
6c1126dc8a Remove target=_blank from mentions 2021-12-11 22:08:34 +00:00
silverpill
164596989b Ignore Announce() if repost already exists in database 2021-12-11 21:22:08 +00:00
silverpill
bcaf6a08c7 Fix repost notifications 2021-12-10 15:31:57 +00:00
silverpill
c4fdb46df7 Parse and store hashtags 2021-12-10 00:38:24 +00:00
silverpill
3be313a0bf Allow timeline to contain multiple reposts of a post 2021-12-09 14:53:10 +00:00
silverpill
82fe25d458 Remove repeated mention tags when processing activities 2021-12-08 00:15:29 +00:00
silverpill
be2201f7b6 Use activity ID to identify remote reposts 2021-12-07 11:45:13 +00:00
silverpill
6087e78abb Log activity processing errors 2021-12-06 21:19:23 +00:00
silverpill
cc9d1ff0d3 Fetch announced notes 2021-12-06 15:28:41 +00:00
silverpill
21499b5fc3 Refactor process_note() function 2021-12-06 01:25:59 +00:00
silverpill
28511eeafa Use recipient list from Note object in Create activity 2021-12-05 18:12:57 +00:00
silverpill
76bac3a66a Add Note type and use it to construct Create(Note) activities 2021-12-05 16:32:59 +00:00
silverpill
40dbfc05a2 Add API method for deleting posts 2021-12-05 01:55:32 +00:00
silverpill
e7955d8ebb Add get_post_author() to posts::queries 2021-12-05 01:46:25 +00:00
silverpill
c2d070c4fe Fix repost counter update query in delete_profile() 2021-12-04 15:25:20 +00:00
silverpill
d33899f56e Use token_tx_id field to find posts awaiting tokenization 2021-12-03 19:07:36 +00:00
silverpill
4b5b98135d Add API method for registering minted tokens 2021-12-03 19:07:32 +00:00
silverpill
c5e292d39f Rename SessionError to AuthError 2021-12-03 18:22:25 +00:00
silverpill
057cac1ac7 Return error if post is already saved to IPFS 2021-12-03 18:22:15 +00:00
silverpill
ff439c9c81 Verify that ipfs_api_url and ipfs_gateway_url config params are used together 2021-12-02 23:31:24 +00:00
silverpill
e4f60695d8 Fix thread query 2021-12-02 13:38:45 +00:00
silverpill
e43e6c3d0a Paginate home timeline 2021-12-02 01:36:51 +00:00
silverpill
12c21d86f8 Use ULIDs instead of v4 UUIDs for identifiers 2021-12-02 01:36:35 +00:00
silverpill
b2150f9259 Reorder functions in posts::queries module 2021-12-01 21:58:18 +00:00
silverpill
a0c0f1d092 Log signer ID when processing incoming activity 2021-12-01 15:06:09 +00:00
silverpill
0ec69adbe2 Refactor favourite/unfavourite API methods to make fewer DB queries 2021-12-01 14:46:09 +00:00
silverpill
683996aaf3 Send notification when user's post is reposted 2021-11-30 22:37:23 +00:00
silverpill
2111bae373 Send notification when user is mentioned 2021-11-30 22:20:20 +00:00
silverpill
a3ac526bca Process EmojiReact() activity as Like() 2021-11-30 20:19:50 +00:00
silverpill
db0b49fe79 Refactor receive_activity() function 2021-11-29 20:45:36 +00:00
silverpill
a9b7426be4 Deliver Announce(Note) activity to followers 2021-11-26 22:53:40 +00:00
silverpill
c6b967567f Add files directory, update readme 2021-11-26 22:39:54 +00:00
silverpill
81adb9b70e Send Announce(Note) after doing a repost 2021-11-25 23:33:13 +00:00
silverpill
47826628cd Add API endpoints for making and deleting reposts 2021-11-25 23:31:10 +00:00
silverpill
9b52fb730a Fix incorrect consistency check in Post::new() 2021-11-25 16:14:06 +00:00
silverpill
215aa5932e Make "href" property optional on Tag object 2021-11-25 16:04:03 +00:00
silverpill
7c58e15123 Log post fetching error if it occurs during search 2021-11-25 16:04:03 +00:00
silverpill
6d243d86e6 Refactor posts::helpers, remove get_actions_for_post function 2021-11-25 16:03:57 +00:00
silverpill
f716a61d0e Improve error reporting during signature verification 2021-11-22 23:58:07 +00:00
silverpill
20026bd819 Don't log incoming Delete() activities if HTTP signature is not valid 2021-11-22 22:42:17 +00:00
silverpill
1d1618d6a2 Add uri attribute to Status object 2021-11-21 15:38:04 +00:00
silverpill
ac834fa99a Add object_id null value check to Post::new(), prevent panics 2021-11-21 15:21:10 +00:00
silverpill
65375ee2cd Don't send notification if user is liking or replying to his own post 2021-11-21 14:38:36 +00:00
silverpill
481d9a1509 Return error if trying to fetch local profile 2021-11-21 13:48:38 +00:00
silverpill
22fa619a16 Make "to" property optional on Activity object 2021-11-21 13:48:38 +00:00
silverpill
ec36dea0c9 Log activities coming to instance actor inbox 2021-11-21 13:48:33 +00:00
silverpill
562f92512e Check view permissions when interacting with post 2021-11-20 01:14:43 +00:00
silverpill
c578d8536f Hide private posts from threads 2021-11-20 01:14:37 +00:00
silverpill
294e2f201b Hide private posts from home timeline, show replies 2021-11-19 21:44:58 +00:00
silverpill
5547403200 Use macros to create FromSql/ToSql implementations for int enums 2021-11-19 17:47:26 +00:00
silverpill
cf5d4db031 Hide direct messages from profile timeline 2021-11-19 00:32:22 +00:00
silverpill
bbf696fe6e Handle Delete activities that don't have object type 2021-11-19 00:05:39 +00:00
silverpill
3b5ec45991 Set visibility to direct for incoming notes with single local recipient 2021-11-18 23:24:13 +00:00
silverpill
4f5930dcf1 Set post visibility to public by default 2021-11-18 21:55:22 +00:00
silverpill
9216d2414b Add "to" attribute to Activity object 2021-11-18 21:28:50 +00:00
silverpill
d104b32d5e Make "name" attribute optional in Attachment object 2021-11-18 16:50:52 +00:00
silverpill
fc24ba0e59 Change default activity content type 2021-11-18 16:23:57 +00:00
silverpill
3fc0acd2d1 Sign GET request when fetching AP object 2021-11-18 15:17:40 +00:00
silverpill
ac1027ac2a Don't sign GET requests in private mode 2021-11-18 15:11:54 +00:00
silverpill
924f5181b6 Sign GET request when fetching remote actor profile 2021-11-18 14:57:58 +00:00
silverpill
286e7155b8 Check actor host before importing profile during search 2021-11-18 13:20:23 +00:00
silverpill
a6f2f2f4f1 Fix bug in deletion queue processing 2021-11-18 11:37:17 +00:00
silverpill
d935b843a8 Create instance actor 2021-11-18 00:51:56 +00:00
silverpill
52b51501d5 Add config parameter that specifies instance actor's private key 2021-11-18 00:26:04 +00:00
silverpill
d94e3d610d Enable creation of HTTP signatures for all types of requests 2021-11-18 00:26:00 +00:00
silverpill
26763d9f5d Prevent CLI tool from reading config when it's not needed 2021-11-17 20:33:53 +00:00
silverpill
2747f3eafe Ignore Like() if post is not found locally 2021-11-14 22:58:29 +00:00
silverpill
6d0505e93f Redirect to frontend if actor or object is requested using web browser 2021-11-14 00:00:19 +00:00
silverpill
cc252d1349 Print version on startup 2021-11-13 17:49:04 +00:00
silverpill
c473070fd4 Configure linter and fix its warnings 2021-11-13 17:37:31 +00:00
silverpill
e9c5bda55c Send Update(Person) to followers after updating profile 2021-11-13 01:27:53 +00:00
silverpill
a5e3bef70c Refactor activitypub::actor module 2021-11-13 01:07:19 +00:00
silverpill
8da194e8a2 Add User constructor 2021-11-12 23:12:28 +00:00
silverpill
3d537f5987 Properly catch violations of unique constraint 2021-11-12 23:10:20 +00:00
silverpill
ce551e9c8b Handle incoming Delete() activities 2021-11-12 15:26:27 +00:00
silverpill
e48670c28b Change HTTP signature date format for compatibility with mastodon 2021-11-12 00:06:08 +00:00
silverpill
3fde882e1d Include inbox URL in deliverer log message 2021-11-11 23:28:41 +00:00
silverpill
a8ae3b6c81 Add "mention" class to mention links 2021-11-11 22:11:14 +00:00
silverpill
2bfb6253f8 Federate mentions 2021-11-11 21:51:47 +00:00
silverpill
4da44159ed Store mentions in database 2021-11-11 20:24:47 +00:00
silverpill
06010e4403 Avoid repeating attachment subquery in post queries 2021-11-11 19:24:47 +00:00
silverpill
fa7bff4b31 Add mention parser 2021-11-11 18:35:54 +00:00
silverpill
0fd7c0fae3 Add actor_id method to actor profile type 2021-11-10 17:21:55 +00:00
silverpill
7f07468d14 Improve instance URL parsing and validation 2021-11-10 17:07:18 +00:00
silverpill
81d6cf3daf Add support for search by Note url 2021-11-07 22:06:05 +00:00
silverpill
284840463c Move code that processes incoming Note objects to a separate function 2021-11-07 21:59:43 +00:00
silverpill
5cd79eb9b6 Return empty array instead of error if search for remote profile fails 2021-11-07 13:44:45 +00:00
silverpill
aa1ef71857 Refactor some mastodon API modules 2021-11-07 13:37:36 +00:00
silverpill
9a0a11e33f Don't write error message to log if ethereum integration is disabled 2021-11-06 12:48:52 +00:00
silverpill
979588b5b8 Create media directory automatically on start 2021-11-06 12:14:22 +00:00
silverpill
514c7ae237 Refactor config, make ethereum integration optional 2021-11-05 23:47:36 +00:00
silverpill
d975b00990 Use ActivityPub object ID for external_url field in token metadata 2021-11-04 23:50:24 +00:00
silverpill
fbb0bc01cd Add API methods for creating timeline markers 2021-11-03 23:29:11 +00:00
silverpill
64dddf3f7e Hide replies from profile feed 2021-11-01 20:49:36 +00:00
silverpill
ab9184f068 Send Create(Note) to author of parent post when creating reply 2021-11-01 18:33:56 +00:00
silverpill
5c10ffc590 Add actor() method to DbActorProfile type 2021-10-31 20:46:29 +00:00
silverpill
e10804be64 Refactor deliverer 2021-10-30 22:35:18 +00:00
silverpill
d41d85548d Send and receive Like activities 2021-10-29 21:32:31 +00:00
silverpill
371be9836e Add default value to Object type 2021-10-29 16:34:22 +00:00
silverpill
29940b5541 Notify user about new reactions 2021-10-29 12:30:28 +00:00
silverpill
6c050a37e6 Sort notifications 2021-10-29 11:54:22 +00:00
silverpill
b50da3e3a4 Create notification only if recipient is local user 2021-10-29 11:54:17 +00:00
silverpill
d98e86a93e Move common code from ethereum::nft to separate modules 2021-10-21 18:18:29 +00:00
silverpill
324ff20480 Call manager contract to verify that user is allowed to sign up 2021-10-21 18:18:18 +00:00
silverpill
a9fb874cb3 Update contracts 2021-10-21 11:57:40 +00:00
silverpill
486c819bc3 Add API method for unmarking favourite posts 2021-10-19 00:05:55 +00:00
silverpill
b6be5c8489 Add action attributes to Status entity when served to authorized user 2021-10-19 00:05:55 +00:00
silverpill
d2462e9e96 Add API method for marking posts as favourite 2021-10-19 00:05:50 +00:00
silverpill
bc65186f00 Notify user about new replies 2021-10-15 00:27:39 +00:00
silverpill
43256fa4b1 Add constructor for Post struct 2021-10-15 00:20:43 +00:00
silverpill
c4ea2900c8 Notify user about new followers 2021-10-14 15:10:25 +00:00
silverpill
56d073e1d8 Add source field to Account entity only if user is authenticated 2021-10-10 16:53:17 +00:00
silverpill
fea3c17700 Fix missing object_id in received Note 2021-10-10 00:46:23 +00:00
silverpill
cca8a5ff94 Fetch ancestors of incoming Notes by going through inReplyTo references 2021-10-10 00:29:54 +00:00
silverpill
3aa35271a6 Fetch actor when receiving Create(Note) or Follow activity 2021-10-10 00:24:31 +00:00
silverpill
8d66bcb034 Refactor Create(Note) activity processor 2021-10-09 16:49:20 +00:00
silverpill
9f114f4255 Add tests for create_note function 2021-10-09 12:53:53 +00:00
silverpill
8610719bd0 Store IDs of incoming Note objects 2021-10-08 23:12:15 +00:00
silverpill
8c18a0ab86 Allow retrieval of local Note objects using /objects/ URL 2021-10-08 22:59:04 +00:00
silverpill
7a65e34e62 Populate inReplyTo field in Note object when creating post 2021-10-08 22:54:53 +00:00
silverpill
aac3d89f21 Return error 404 if thread is empty 2021-10-08 14:07:00 +00:00
silverpill
d4adb55c53 Replace cookie auth with token auth 2021-10-05 22:53:33 +00:00
silverpill
9519786788 Change path of user creation endpoint 2021-10-05 22:52:13 +00:00
silverpill
b39733beb7 Make User API methods return Account entity 2021-10-05 16:24:28 +00:00