Commit graph

284 commits

Author SHA1 Message Date
silverpill
d2ba86315c Move AP ID helpers to activitypub::identifiers module 2022-07-16 01:49:48 +00:00
silverpill
6f247ad40d Send notification to sender when subscription expires
Only if sender is local.
2022-07-15 23:53:21 +00:00
silverpill
3bfb7dc9eb Add command for deleting orphaned files 2022-07-12 22:54:38 +00:00
silverpill
c78af51398 Increase max size of profile field name 2022-07-12 19:03:44 +00:00
silverpill
cedc6667bd Try to find profile by acct if couldn't find it by actor ID
This should prevent violation of unique constraint on "acct" column
when importing profile by actor ID.
2022-07-10 21:26:44 +00:00
silverpill
a06f1b4aba Use character count instead of bytes in validate_display_name() 2022-07-09 21:25:15 +00:00
silverpill
5d3e5dc693 Re-fetch remote profiles automatically 2022-07-09 21:25:11 +00:00
silverpill
d658c3e802 Add updated_at column to actor_profile table 2022-07-08 20:02:28 +00:00
silverpill
d63c19a996 Add total numbers of local users and posts to NodeInfo response 2022-07-07 19:26:06 +00:00
silverpill
94bd5bdbb5 Remove duplicates before creating deletion queue 2022-07-06 22:39:27 +00:00
silverpill
255aca68de Allow hashtags to be followed by comma 2022-07-06 22:17:21 +00:00
silverpill
5fc17effaa Show only public posts in local timeline 2022-07-03 21:24:49 +00:00
silverpill
f312fdff9e Show posts that mention user in home timeline
Even if visibility is not "direct".
2022-06-15 13:10:05 +00:00
silverpill
f700d79754 Ignore subscription event if sender changes their ethereum address in profile 2022-06-05 19:42:48 +00:00
silverpill
90d0a6870e Refactor unfollow_account view 2022-06-02 03:28:58 +00:00
silverpill
1c098cb6b2 Add test for remote follow sequence 2022-06-02 03:28:58 +00:00
silverpill
4ffec71c24 Send notification when subscription payment is received 2022-05-28 19:00:24 +00:00
silverpill
28fad8986c Limit number of profiles in search results 2022-05-27 22:11:16 +00:00
silverpill
a3716079d7 Remove duplicates when searching profiles by wallet address 2022-05-27 21:39:52 +00:00
silverpill
80880555bf Do not expose login wallet address via search
Login address is considered private unless verified.
2022-05-26 11:22:10 +00:00
silverpill
dc8a7bed2e Require verified wallet address when setting up subscription 2022-05-26 10:42:04 +00:00
silverpill
5e7d3ab434 Don't expose wallet address in /api/v1/accounts/{account_id} response 2022-05-19 23:01:12 +00:00
silverpill
0a988b5439 Allow hashtags to be followed by colon or question mark 2022-05-16 17:46:40 +00:00
silverpill
e2d2e2e5de Save post CID and attachment CID in a single database transaction 2022-05-12 14:53:43 +00:00
silverpill
dc34c980f6 Handle Update(Note) activities 2022-05-11 13:31:08 +00:00
silverpill
50699b5ab5 Don't use update_post() to set ipfs_cid, token_id and token_tx_id fields 2022-05-10 22:18:43 +00:00
silverpill
1ea55b5d1a Add API method for getting local timeline 2022-05-09 00:02:36 +00:00
silverpill
da6ceadd51 Add CLI command for deleting unused media attachments 2022-05-07 21:10:35 +00:00
silverpill
e6e7e6f42a Refactor Status API views 2022-05-06 19:39:17 +00:00
silverpill
fd067713d7 Allow to search for usernames containing "-" character 2022-05-01 11:30:15 +00:00
silverpill
7ed919a295 Set max size for names and values of extra fields 2022-04-30 16:03:41 +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
8deea0c867 Save submitted identity proofs to database 2022-04-26 20:43:39 +00:00
silverpill
fd6b71073a Add IdentityProof type 2022-04-26 19:56:32 +00:00
silverpill
a97456d77a Pass Actor object instead of Value when creating/updating profile 2022-04-21 23:10:30 +00:00
silverpill
a9504de10d Add json_from_sql and json_to_sql macros 2022-04-21 23:10:24 +00:00
silverpill
e4c5440ec2 Increase max number of extra profile fields to 20 2022-04-20 14:41:25 +00:00
silverpill
997d9257af Improve descriptions of database errors 2022-04-20 14:05:09 +00:00
silverpill
04e851025b Enforce uniqueness of actor ID 2022-04-20 14:03:13 +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
f914702de9 Allow duplicate labels in extra profile fields 2022-04-12 15:11:26 +00:00
silverpill
2ebcc10dcb Add comments to home timeline SQL query 2022-04-08 18:55:29 +00:00
silverpill
60b683b657 Allow to hide replies from given author from home timeline 2022-03-09 20:42:02 +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
8b4325ad96 Add CLI command that deletes old remote posts 2022-02-20 23:36:04 +00:00
silverpill
76106e4214 Delete media attached to descendants of posts when profile is deleted 2022-02-20 23:24:22 +00:00
silverpill
54277e410d Delete media attached to descendants of post when it is deleted 2022-02-20 23:24:17 +00:00
silverpill
50630c004a Validate and clean extra fields when importing profile 2022-02-17 21:08:43 +00:00
silverpill
0993a3b38c Improve username validation 2022-02-17 20:39:18 +00:00
silverpill
82e24ad8b0 Validate and clean bio when profile is created or updated 2022-02-17 20:38:56 +00:00
silverpill
227e3d3729 Allow passwordless registration 2022-02-15 19:43:22 +00:00
silverpill
e8a29a3af1 Implement EIP-4361 authentication 2022-02-14 23:16:00 +00:00
silverpill
6fc319f7dd Validate content of incoming Note objects 2022-02-09 13:53:11 +00:00
silverpill
2747e7b174 Add post character limit config option 2022-02-08 21:19:39 +00:00
silverpill
0a2a145807 Optimize database queries in can_view_post() 2022-02-08 18:25:48 +00:00
silverpill
9330038141 Add "subscribers-only" post visibility setting 2022-02-06 12:05:20 +00:00
silverpill
71fc2d9dad Save subscription state to database when processing blockchain event 2022-02-06 12:05:14 +00:00
silverpill
4e49f113e7 Add subscription relationship type 2022-02-05 23:53:01 +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
a3a0a6053d Add relationship type column to relationship table 2022-02-03 00:15:52 +00:00
silverpill
7de7f7a501 Refactor get_relationship function and optimize SQL query 2022-02-02 21:56:34 +00:00
silverpill
a81d0ef216 Remove get_relationships function and use get_relationship instead 2022-02-02 21:31:40 +00:00
silverpill
548e000b3e Add test for get_relationship function 2022-02-02 19:55:01 +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
333f90e293 Validate wallet address when creating new user 2022-01-31 19:10:51 +00:00
silverpill
59a86ea827 Add "followers-only" post visibility setting 2022-01-15 20:40:37 +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
aea6db5acb Try to find actor by href when parsing mention tags 2022-01-14 00:16:54 +00:00
silverpill
b8e87f13ac Fix visibility filter 2022-01-09 12:23:15 +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
f0d021853a Refactor timeline and thread queries
Added tests for home timeline query.
2022-01-08 14:56:38 +00:00
silverpill
3ff4c79f0d Add macro for building SQL queries 2022-01-07 22:12:31 +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
2d2ec704a2 Refactor can_view_post() into async function 2022-01-06 19:25:20 +00:00
silverpill
011951c129 Set up tests for database queries 2022-01-06 14:31:29 +00:00
silverpill
adb5a6c651 Verify follow request target when processing Accept(Follow)
Activity sender and the target must be the same.
2022-01-03 23:22: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
40958500c1 Add ID column to relationship table 2022-01-02 15:52:20 +00:00
silverpill
c11cd26961 Move get_followers to relationships::queries module 2022-01-02 13:42:10 +00:00
silverpill
e2b5147502 Make profile search case-insensitive 2022-01-02 12:50:17 +00:00
silverpill
9156dec5bb Convert actor_json value into Actor type when reading from database 2022-01-02 01:27:50 +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
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
3662d1a558 Don't call get_relationship in relationships::queries::(un)follow 2021-12-26 15:06:21 +00:00
silverpill
81a260e691 Don't require wallet address during registration 2021-12-24 17:52:52 +00:00
silverpill
c628885c9e Refactor users::queries module 2021-12-24 16:12:19 +00:00
silverpill
c13b110ca2 Allow linebreaks after mentions 2021-12-22 00:07:07 +00:00
silverpill
fae3f5bc2f Refactor mention_to_acct to return detailed actor address 2021-12-19 22:15:20 +00:00
silverpill
d31d315517 Use mention tag name instead of href when parsing incoming notes 2021-12-18 01:09:43 +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
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
a4dd06d6e9 Replace actor ID with actor URL in mentions, add microformats 2021-12-12 00:41:07 +00:00
silverpill
6c1126dc8a Remove target=_blank from mentions 2021-12-11 22:08:34 +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
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
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
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
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
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
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
22fa619a16 Make "to" property optional on Activity object 2021-11-21 13:48:38 +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
4f5930dcf1 Set post visibility to public by default 2021-11-18 21:55:22 +00:00
silverpill
a6f2f2f4f1 Fix bug in deletion queue processing 2021-11-18 11:37:17 +00:00
silverpill
c473070fd4 Configure linter and fix its warnings 2021-11-13 17:37:31 +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
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
aa1ef71857 Refactor some mastodon API modules 2021-11-07 13:37:36 +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