Commit graph

255 commits

Author SHA1 Message Date
silverpill
75ef8bba7c Move import_post to fetcher::helpers module 2022-05-02 17:31:39 +00:00
silverpill
fd067713d7 Allow to search for usernames containing "-" character 2022-05-01 11:30:15 +00:00
silverpill
fac0172159 Generate RSA key for instance actor automatically on the first run 2022-04-30 20:03:21 +00:00
silverpill
a1af46f566 Change default login message and update config example
Consider "ethereum" auth flow deprecated.
2022-04-30 16:35:54 +00:00
silverpill
ff5f707cba Prioritize verified results when searching for profile by subscription address 2022-04-27 22:57:49 +00:00
silverpill
303827ffc6 Include results based on identity proofs when searching profiles by wallet address 2022-04-27 22:19:50 +00:00
silverpill
a1af35997c Use currency enum instead of WALLET_CURRENCY_CODE constant 2022-04-27 22:19:14 +00:00
silverpill
7a47c28034 Federate identity proofs as actor attachments
https://codeberg.org/silverpill/mitra/issues/7
2022-04-27 10:31:59 +00:00
silverpill
8deea0c867 Save submitted identity proofs to database 2022-04-26 20:43:39 +00:00
silverpill
356592bc71 Add views for generating address ownership proof 2022-04-26 19:56:26 +00:00
silverpill
a9504de10d Add json_from_sql and json_to_sql macros 2022-04-21 23:10:24 +00:00
silverpill
56d1ebf9e5 Add include_reposts parameter to get_posts_by_author() func 2022-04-13 21:26:30 +00:00
silverpill
78d66f8a06 Prevent interactions with reposts 2022-04-13 21:26:30 +00:00
silverpill
2fda205dbf Rename process_note() to import_post() and change its error type to ImportError 2022-04-13 19:19:19 +00:00
silverpill
30bd3d6a37 Migrate to actix 4.0 and tokio 1 2022-04-10 19:14:45 +00:00
silverpill
ed68b728be Avoid deconstruction when using path extractor
Preparing for migration to actix 4.
2022-04-09 17:11:41 +00:00
silverpill
8a6dbca214 Change /reblog method to return repost info instead of original post
This is done to comply with Mastodon API spec.
2022-04-08 18:55:51 +00:00
silverpill
60b683b657 Allow to hide replies from given author from home timeline 2022-03-09 20:42:02 +00:00
silverpill
0727b739ed Move HTTP signature verification to receive_activity() function 2022-02-23 23:38:00 +00:00
silverpill
3a584f52b5 Add attachment type "video" 2022-02-23 17:55:53 +00:00
silverpill
f14e762ee3 Allow to hide reposts made by given actor from home timeline 2022-02-23 16:55:25 +00:00
silverpill
0f47fa201d Move get_relationship function to mastodon_api module 2022-02-21 22:32:36 +00:00
silverpill
c4a1da5349 Move RelationshipQueryParams type to types module 2022-02-21 15:27:25 +00:00
silverpill
227e3d3729 Allow passwordless registration 2022-02-15 19:43:22 +00:00
silverpill
6ddfb5b52d Do EIP-4361 verification at signup 2022-02-15 01:35:02 +00:00
silverpill
e8a29a3af1 Implement EIP-4361 authentication 2022-02-14 23:16:00 +00:00
silverpill
d3e3c1eb3e Refactor struct conversion in create_account() handler 2022-02-14 22:08:35 +00:00
silverpill
a5d3aa488b Require replies to non-public posts to have direct visibility 2022-02-13 18:16:59 +00:00
silverpill
e48a8999f5 Make /api/v1/accounts return validation error if user already exists 2022-02-11 21:32:37 +00:00
silverpill
0198a944ac Log successful login attempts 2022-02-11 20:40:56 +00:00
silverpill
2747e7b174 Add post character limit config option 2022-02-08 21:19:39 +00:00
silverpill
f1fd0af6bc Remove blockchain_contract_name property from instance info 2022-02-08 18:32:54 +00:00
silverpill
7d89f65b37 Hide posts that user is not allowed to view from search results 2022-02-08 18:00:30 +00:00
silverpill
b03b6e52aa Return empty array in response to pinned statuses query
https://codeberg.org/silverpill/mitra/issues/6
2022-02-08 01:30:58 +00:00
silverpill
9591be4df0 Use Pleroma-compliant instance version in /api/v1/instance
https://codeberg.org/silverpill/mitra/issues/4
2022-02-08 01:13:21 +00:00
silverpill
d9f0095787 Allow to reply to public post with a direct message 2022-02-07 01:06:18 +00:00
silverpill
9330038141 Add "subscribers-only" post visibility setting 2022-02-06 12:05:20 +00:00
silverpill
4e0f14df4c Add API method for getting authorization of paid subscription setup transaction 2022-02-05 23:51:12 +00:00
silverpill
464d4886fa Add wallet address to data returned by /api/v1/accounts/{account_id} method 2022-02-05 23:51:12 +00:00
silverpill
a81d0ef216 Remove get_relationships function and use get_relationship instead 2022-02-02 21:31:40 +00:00
silverpill
9f1f950aa3 Validate wallet address when logging in 2022-02-01 23:56:58 +00:00
silverpill
7e5917a821 Enable search by wallet address 2022-01-31 23:45:15 +00:00
silverpill
4797bacf32 Refactor search::helpers module 2022-01-31 23:27:59 +00:00
silverpill
333f90e293 Validate wallet address when creating new user 2022-01-31 19:10:51 +00:00
silverpill
a3f20149cf Remove actual ethereum contracts and use interfaces instead 2022-01-28 00:42:36 +00:00
silverpill
8b2474c448 Rename blockchain-related properties returned by /api/v1/instance method 2022-01-28 00:42:31 +00:00
silverpill
f2fb44bb63 Change configuration options related to blockchain integration 2022-01-28 00:41:23 +00:00
silverpill
5730ae0072 Return status 403 in response to signature request if post is not saved to IPFS 2022-01-23 23:12:58 +00:00
silverpill
5d2c3e85eb Allow author of parent post to be added to audience of direct message 2022-01-21 12:34:45 +00:00
silverpill
59a86ea827 Add "followers-only" post visibility setting 2022-01-15 20:40:37 +00:00
silverpill
05205c398e Allow clients to add mentions to a post 2022-01-15 16:36:31 +00:00
silverpill
5676d53cbb Disable reposts and reactions if post is not public 2022-01-15 15:25:37 +00:00
silverpill
eed648f140 Don't send direct messages to followers 2022-01-15 14:53:42 +00:00
silverpill
cd8791c881 Add profile URL field to Account type 2022-01-15 00:18:17 +00:00
silverpill
f1f3829b8d Enable pagination for notification list 2022-01-14 22:02:22 +00:00
silverpill
34ca9059b3 Fix object_id unwrap error in favourite() API method 2022-01-13 21:31:04 +00:00
silverpill
1d089d4b35 Add "Created at" attribute to IPFS representation of a post 2022-01-11 19:46:26 +00:00
silverpill
1de82674aa Move PostMetadata type to ipfs::posts module 2022-01-11 18:16:19 +00:00
silverpill
82508e103c Update /{account_id}/statuses method to return 404 if profile doesn't exist 2022-01-11 16:58:40 +00:00
silverpill
19f0a4bed6 Ensure visibility settings are not violated when creating a reply to non-public post 2022-01-09 12:10:20 +00:00
silverpill
5bdee5585a Allow to set visibility of new posts 2022-01-07 22:12:21 +00:00
silverpill
bce194ebda Show direct messages in timelines and threads 2022-01-07 20:44:36 +00:00
silverpill
810e67f88e Refactor create_account view 2022-01-06 19:26:14 +00:00
silverpill
ba52cf0be1 Check view permission when reposting a post 2022-01-06 19:26:14 +00:00
silverpill
2d2ec704a2 Refactor can_view_post() into async function 2022-01-06 19:25:20 +00:00
silverpill
de1760230a Set primary audience of Delete(Note) activities to Public 2022-01-04 21:55:29 +00:00
silverpill
3e5f5b80d3 Set correct primary and secondary audience for outgoing Announce(Note) and Undo(Announce) activities 2022-01-04 21:36:52 +00:00
silverpill
6d331f7669 Allow calling follow/unfollow API methods multiple times
For compatibility with Mastodon.
2022-01-03 18:37:07 +00:00
silverpill
3993c76c65 Add API methods for retrieving followers and following lists 2022-01-02 22:06:25 +00:00
silverpill
c11cd26961 Move get_followers to relationships::queries module 2022-01-02 13:42:10 +00:00
silverpill
9156dec5bb Convert actor_json value into Actor type when reading from database 2022-01-02 01:27:50 +00:00
silverpill
97d798eeed Create helper functions for getting recipients of Create, Like and Announce activities 2022-01-01 12:07:36 +00:00
silverpill
94aad001f8 Add in_reply_to field to Post struct
create_note refactored to accept Post without additional in_reply_to argument.
2021-12-31 19:44:17 +00:00
silverpill
a9a99d7172 Update actor JSON object in database when receiving Update(Person) activity 2021-12-31 19:43:11 +00:00
silverpill
f9fca604a9 Make media_type property on Attachment type optional 2021-12-29 15:07:19 +00:00
silverpill
38ed905f47 Use profile importer in verify_http_signature function 2021-12-28 20:54:21 +00:00
silverpill
f7211d2a14 Move profile importers to fetcher::helpers module 2021-12-28 19:54:59 +00:00
silverpill
1936219b3d Increase maximum length of display_name to 200 chars and validate it on profile import 2021-12-28 00:58:12 +00:00
silverpill
9cd2c26e06 Refactor accounts::views module 2021-12-26 15:54:22 +00:00
silverpill
3662d1a558 Don't call get_relationship in relationships::queries::(un)follow 2021-12-26 15:06:21 +00:00
silverpill
492b18a43a Always add primary recipients to "to" array 2021-12-25 00:53:18 +00:00
silverpill
81a260e691 Don't require wallet address during registration 2021-12-24 17:52:52 +00:00
silverpill
2703ab717a Prevent profile import error in case of webfinger redirection 2021-12-22 23:27:32 +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
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
c4fdb46df7 Parse and store hashtags 2021-12-10 00:38:24 +00:00
silverpill
21499b5fc3 Refactor process_note() function 2021-12-06 01:25:59 +00:00
silverpill
40dbfc05a2 Add API method for deleting posts 2021-12-05 01:55:32 +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
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
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
a9b7426be4 Deliver Announce(Note) activity to followers 2021-11-26 22:53:40 +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
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
1d1618d6a2 Add uri attribute to Status object 2021-11-21 15:38:04 +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
cf5d4db031 Hide direct messages from profile timeline 2021-11-19 00:32:22 +00:00
silverpill
4f5930dcf1 Set post visibility to public by default 2021-11-18 21:55:22 +00:00
silverpill
3fc0acd2d1 Sign GET request when fetching AP object 2021-11-18 15:17:40 +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
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
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
fa7bff4b31 Add mention parser 2021-11-11 18:35:54 +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
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
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
29940b5541 Notify user about new reactions 2021-10-29 12:30:28 +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
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
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
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
silverpill
f6e9c082e2 Implement Oauth 2.0 token service 2021-10-05 00:00:14 +00:00
silverpill
f87284b07c Remember CIDs of media attachments after adding them to IPFS 2021-09-28 21:58:43 +00:00