Commit graph

347 commits

Author SHA1 Message Date
silverpill 617ca19950 Allow user mentions without hostname 2022-10-08 22:14:42 +00:00
silverpill 5be7802bf1 Allow <p> tag in post content 2022-10-08 19:15:23 +00:00
silverpill 9cff428758 Improve mention and hashtag parsers
Don't rely on whitespace and newlines.
2022-10-07 22:51:05 +00:00
silverpill da9bd480fb Add linked posts to notifications 2022-10-06 23:44:00 +00:00
silverpill ea424b97a0 Allow <em> and <strong> tags in post content 2022-10-06 22:50:38 +00:00
silverpill 0548e6e72a Disallow <code> tags in bio 2022-10-06 22:50:38 +00:00
silverpill c7499cb0dc Fix creation date in reposts 2022-10-04 23:29:29 +00:00
silverpill 6fd0c16997 Add instance stats to object returned by /api/v1/instance 2022-10-04 21:18:55 +00:00
silverpill fa49e2b4c2 Remove acct field from ProfileCreateData struct 2022-10-04 21:18:55 +00:00
silverpill 5c56f831db Rewrite DbActorProfile.actor_address() to return ActorAddress object 2022-10-04 21:18:38 +00:00
silverpill a6c525f35d Add hostname column to actor_profile table and replace acct with generated column 2022-10-04 16:51:22 +00:00
silverpill 8b6aef2b7a Validate acct during profile creation 2022-10-04 00:31:21 +00:00
silverpill 429f530a71 Refactor ActorAddress type 2022-10-03 21:21:20 +00:00
silverpill cde324c07d Show only local profiles in profile directory 2022-10-02 21:23:16 +00:00
silverpill 93ebdfadd4 Restrict module visibility and remove dead code 2022-10-02 21:23:16 +00:00
silverpill 5b7979b9d4 Use add_related_posts helper in outbox and object views 2022-10-02 21:23:16 +00:00
silverpill 5862f49015 Remove Post.quote field and store linked posts in array 2022-10-02 21:23:16 +00:00
silverpill 81c590559e Use u16 when working with page size 2022-09-29 21:47:35 +00:00
silverpill f9465693a3 Allow remote posts without content 2022-09-29 15:37:26 +00:00
silverpill b53a1298a2 Limit number of attachments in remote posts 2022-09-27 23:40:24 +00:00
silverpill 0ce0cd15c3 Don't show subscribers-only posts if viewer is not mentioned 2022-09-27 22:18:58 +00:00
silverpill a8dae2a621 Enable hashtag search 2022-09-19 18:39:56 +00:00
silverpill a1ab21a702 Store requested payment amount for each invoice 2022-09-19 00:50:31 +00:00
silverpill 02408ae57a Allow user to change subscription settings 2022-09-15 20:50:31 +00:00
silverpill 7600efccb5 Add subscribers_count field to Account object 2022-09-13 19:15:58 +00:00
silverpill de80bd0b40 Populate "quote" field in reposted posts 2022-09-11 21:17:09 +00:00
silverpill 9f3b95c41d Mention all subscribers when creating subscribers-only post 2022-09-11 14:25:30 +00:00
silverpill 78b9fc7878 Create subscription relationship only if subscription is still active
This prevents spurious expiration notifications after withdrawals.
2022-09-08 09:53:32 +00:00
silverpill 79e161c131 Add reset-subscriptions CLI command 2022-09-07 20:23:54 +00:00
silverpill 86fe717a77 Add API method for checking invoice status 2022-09-07 10:48:40 +00:00
silverpill 383fc13059 Change invoice status to "timeout" after 30 minutes of inactivity 2022-09-06 22:32:32 +00:00
silverpill d2366589cf Truncate remote profile bio if it's too long 2022-09-04 11:45:56 +00:00
silverpill 64fb51e92a Update subscription state after processing invoice 2022-08-31 20:42:59 +00:00
silverpill 6b60e9a0da Add periodic task for monitoring Monero payments 2022-08-31 20:42:59 +00:00
silverpill cd09fe0801 Add API method for generating invoices 2022-08-31 20:42:58 +00:00
silverpill 084e0064be Create invoice table 2022-08-31 20:42:58 +00:00
silverpill 423eec0a2c Add MoneroSubscription payment option 2022-08-31 20:42:57 +00:00
silverpill 2eb7ec2f64 Add chain ID column to subscription table
Set chain ID to "eip155:31337" for existing entries.
2022-08-31 20:42:56 +00:00
silverpill 2ed8d44001 Add expires_at field to object returned by subscribers API endpoint 2022-08-31 20:42:56 +00:00
silverpill c5c3911de6 Require chain ID field in payment options of ethereum type 2022-08-29 22:28:34 +00:00
silverpill 8df8fd3c8c Add Monero to currencies enum 2022-08-29 12:12:26 +00:00
silverpill b3fb1c612c Rewrite /api/v1/subscriptions/enable handler to support more subscription types 2022-08-26 15:57:35 +00:00
silverpill 742e731b95 Convert PaymentOption type into enum 2022-08-25 19:16:38 +00:00
silverpill 5e97debebb Add "quote" property to Status object and treat first link as a quote 2022-08-22 12:13:40 +00:00
silverpill d9def75b32 Create post_link table to store links between posts 2022-08-21 22:36:31 +00:00
silverpill fcf7db97cb Rename posts::tags module to posts::hashtags 2022-08-21 21:35:12 +00:00
silverpill ee0095ce53 Perform consistency checks on reposts in Post::new() 2022-08-21 18:11:49 +00:00
silverpill 9d501ac7f6 Update chrono and regex crates 2022-08-17 19:09:15 +00:00
silverpill e2f8408b1e Search for subscription recipient by DID instead of login address 2022-08-15 22:02:11 +00:00
silverpill 5f24af4dbf Allow users of password auth to create identity proofs 2022-08-15 20:16:34 +00:00
silverpill a80c11b99c Allow users of password auth to use subscriptions 2022-08-15 20:16:03 +00:00
silverpill 596871e6e3 Rewrite wallet address validator to work with non-ethereum addresses 2022-08-15 15:45:21 +00:00
silverpill 1721eb4a88 Add API method for listing incoming subscriptions 2022-08-08 01:13:52 +00:00
silverpill bdcdb06c51 Add pagination headers to followers/following API responses 2022-08-07 18:27:28 +00:00
silverpill 21df4fa35c Support search by DID 2022-08-04 18:33:17 +00:00
silverpill 46526fd4be Add currency() method to DidPkh type 2022-08-04 15:44:48 +00:00
silverpill 3c8c0c7163 Move currencies module to utils 2022-08-04 12:34:31 +00:00
silverpill ce694cb88c Allow brackets around hashtags and mentions 2022-08-04 12:34:30 +00:00
silverpill 1061220ee1 Reset subscriptions if update-current-block command is called with --reset-db parameter 2022-07-25 21:39:06 +00:00
silverpill 33a711b91c Attach subscription page link to actor object 2022-07-25 21:39:06 +00:00
silverpill 1554780b35 Add API method for adding subscription as payment option 2022-07-25 21:38:58 +00:00
silverpill e573ecb27b Add payment_options field to actor profile 2022-07-25 17:44:36 +00:00
silverpill a00b704cf4 Rename actor module to actors::types 2022-07-23 21:41:49 +00:00
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