Commit graph

622 commits

Author SHA1 Message Date
silverpill
690a03946e Use Currency enum to refer to CAIP-2 namespaces instead of chain IDs 2022-08-29 15:12:18 +00:00
silverpill
8df8fd3c8c Add Monero to currencies enum 2022-08-29 12:12:26 +00:00
silverpill
ea4d15da48 Remove default_currency() method from config object
Preparing for multi-currency deployments.
2022-08-28 18:53:32 +00:00
silverpill
b3fb1c612c Rewrite /api/v1/subscriptions/enable handler to support more subscription types 2022-08-26 15:57:35 +00:00
silverpill
daaa0855a6 Use /api/v1/subscriptions prefix for subscription API methods 2022-08-25 19:16:46 +00:00
silverpill
742e731b95 Convert PaymentOption type into enum 2022-08-25 19:16:38 +00:00
silverpill
318d446dbd Add create-monero-wallet CLI command 2022-08-22 20:17:27 +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
f4d1e756d4 Fetch object referenced by quoteUrl property and create a link between posts 2022-08-21 23:45:49 +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
e51f5fa3bb Set limit on the size of remote media files 2022-08-18 22:57:58 +00:00
silverpill
4dc94ed39b Return validation error if upload size exceeds limit 2022-08-18 22:39:53 +00:00
silverpill
3b56b29785 Refactor utils::files and move upload helpers to mastodon_api::uploads module 2022-08-18 21:26:24 +00:00
silverpill
c546840787 Update actix crate 2022-08-18 18:05:18 +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
7a48563593 Return error if EIP-4361 is used together with password 2022-08-15 11:46:21 +00:00
silverpill
5497f50977 Move CLI subcommands to cli module 2022-08-13 11:54:14 +00:00
silverpill
29402f0113 Remove --dry-run parameter from delete-extraneous-posts command 2022-08-11 23:17:57 +00:00
silverpill
d2444826fc Prefer positional arguments in CLI commands 2022-08-11 23:12:07 +00:00
silverpill
dc7d533c42 Allow blockchain config to have sub-types 2022-08-10 11:57:35 +00:00
silverpill
c4e5438ac2 Parse chain ID into CAIP-2 ChainId type during blockchain config deserialization 2022-08-10 11:14:17 +00:00
silverpill
0e8943a24b Split config module into sub-modules 2022-08-09 22:31:59 +00:00
silverpill
a804d0e8bb Add "published" property to outgoing Announce(Note) activities 2022-08-08 17:51:46 +00:00
silverpill
fd632b4816 Use custom type for building Announce(Note) activity 2022-08-08 15:45:49 +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
450e47bcef Fix Access-Control-Expose-Headers header 2022-08-06 22:07:33 +00:00
silverpill
53ace3bf57 Add helper function for creating responses with pagination header 2022-08-06 22:05:48 +00:00
silverpill
acb139b0ee Add API method for searching profiles by DID 2022-08-04 20:23:40 +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
af0563759d Add CAIP-2 chain ID type 2022-08-04 15:38:26 +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
272ee9997b Don't return error after receiving Add() or Remove() with "featured" collection as target 2022-08-04 12:34:30 +00:00
silverpill
980d65fa5e Use exponential backoff when waiting for delivery retry 2022-08-04 12:34:25 +00:00
silverpill
eb5e6b969b Make subscribers part of primary audience of Note 2022-07-29 09:33:40 +00:00
silverpill
edc64bbbb2 Add tests for Delete(Note) activity builder 2022-07-29 09:31:15 +00:00
silverpill
a70c841955 Fix audience of private Delete(Note) activity 2022-07-28 23:50:27 +00:00
silverpill
aefed2479e Fix audience of private Undo(Like) activity 2022-07-28 22:42:43 +00:00
silverpill
ecc4afe568 Append object URL to post content if object type is not Note 2022-07-28 22:04:14 +00:00
silverpill
85d35f9733 Wait for required number of confirmations before processing block 2022-07-28 13:14:12 +00:00
silverpill
c47822ff53 Add tests for SyncState::get_scan_range method 2022-07-28 11:30:32 +00:00
silverpill
67c6b76bcb Refactor profile importers 2022-07-27 13:30:13 +00:00
silverpill
bc1b73dd24 Ignore error if profile re-fetching fails 2022-07-27 12:36:42 +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
cef026f89a Retry activity delivery on failure 2022-07-24 21:21:29 +00:00
silverpill
42cbe44357 Move functions for working with actor attachments to actors::attachments module 2022-07-23 22:03:09 +00:00
silverpill
a00b704cf4 Rename actor module to actors::types 2022-07-23 21:41:49 +00:00
silverpill
b185e1f391 Remove "capabilities" property from actor object 2022-07-23 20:26:40 +00:00
silverpill
5b0cfe1f6b Ignore errors when fetching avatar or banner of remote actor 2022-07-22 23:02:46 +00:00
silverpill
09b06c4fdb Allow to like private posts 2022-07-20 21:53:40 +00:00
silverpill
3a28219405 Read blockchain sync step and max reorg depth from config 2022-07-17 02:01:15 +00:00
silverpill
672ff5f0ac Handle incoming Add(Person) and Remove(Person) activities 2022-07-17 02:01:11 +00:00
silverpill
0a8e06995b Send Remove(Person) activity when subscription expires 2022-07-17 00:11:02 +00:00
silverpill
0f5a2edf7f Send AddPerson() activity when subscription payment is detected 2022-07-17 00:11:02 +00:00
silverpill
acdb51e6f4 Add builder for Add(Person) activity 2022-07-17 00:11:02 +00:00
silverpill
dcb5736d74 Use tokio::spawn instead of actix_rt::spawn 2022-07-17 00:03:43 +00:00
silverpill
fd4d56c82b Make deliverer accept any serializable object 2022-07-16 14:48:37 +00:00
silverpill
9a38fb25bf Move AP ID parsers to activitypub::identifiers module 2022-07-16 14:10:56 +00:00
silverpill
d2ba86315c Move AP ID helpers to activitypub::identifiers module 2022-07-16 01:49:48 +00:00
silverpill
34ecf56ccd Add actor collections enum 2022-07-15 23:53:31 +00:00
silverpill
75e4bfaaf7 Add tests for get_instance_actor() 2022-07-15 23:53:31 +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
85899e020f Set connect timeout to 30 secs in fetcher module 2022-07-14 17:47:18 +00:00
silverpill
9aa9130d05 Move audience helpers to activitypub::builders 2022-07-14 14:14:14 +00:00
silverpill
c9bbf7020e Move Undo(Announce) builder function to builders::undo_announce_note module 2022-07-14 10:57:17 +00:00
silverpill
623e7c9c49 Move Announce(Note) builder function to builders::announce_note module 2022-07-14 10:44:39 +00:00
silverpill
1c4e75b0d8 Move Undo(Like) builder function to builders::undo_like_note module 2022-07-14 09:52:46 +00:00
silverpill
7103de2519 Move Like() builder function to builders::like_note module 2022-07-14 09:50:34 +00:00
silverpill
4f2979f568 Add more tests for activity builders 2022-07-14 09:08:55 +00:00
silverpill
b89bd7e570 Move Accept(Follow) builder function to builders::accept_follow module 2022-07-14 08:14:24 +00:00
silverpill
d29e27b114 Move Follow() builder function to builders::follow module 2022-07-14 08:14:04 +00:00
silverpill
3bfb7dc9eb Add command for deleting orphaned files 2022-07-12 22:54:38 +00:00
silverpill
c9a71e0303 Check storage directory ownership at startup 2022-07-12 22:25:55 +00:00
silverpill
2bbe23cd89 Refactor "refetch-actor" command 2022-07-12 19:42:58 +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
48331382c3 Remove duplicate tags when processing remote posts 2022-07-10 20:58:28 +00:00
silverpill
74eca31a53 Log more details about file errors during fetching 2022-07-10 20:15:47 +00:00
silverpill
d831eb79e4 Add address() method to Actor type
Returns ActorAddress object.
2022-07-10 19:41:32 +00:00
silverpill
e0a1141552 Check actor ID after fetching 2022-07-10 13:14:41 +00:00
silverpill
803e73b4da Improve logging of mention parsing errors 2022-07-10 13:05:37 +00:00
silverpill
145622e805 Move fetch_profile_by_actor_id to fetcher::helpers module 2022-07-10 13:05:30 +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
2a626a1859 Replace fetch_profile() function with perform_webfinger_query() 2022-07-08 23:18:46 +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
2a22a0bedd Add exclude_replies query parameter to /accounts/:id/statuses API method 2022-07-07 14:56:01 +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
545dd6d92b Enable contract feature detection
Contracts updated to version 0.5.0.
2022-06-30 12:20:14 +00:00
silverpill
0f74175b29 Refactor scheduler module 2022-06-29 21:08:57 +00:00
silverpill
6615f372e2 Refactor load_abi to return ethabi::Contract type 2022-06-29 14:35:13 +00:00
silverpill
f8aaeb01a7 Update contracts to v0.4.0
configureSubscription() method signature has changed.
2022-06-28 18:28:40 +00:00
silverpill
2f532307a1 Switch to incremental blockchain synchronization 2022-06-25 11:59:03 +00:00
silverpill
b618c5b31f Use shared ContractSet object when verifing user during registration
Server will not start if blockchain configuration is invalid.
2022-06-23 22:03:51 +00:00
silverpill
6b06d6d18e Add mapping with additional blockchain info to instance API response 2022-06-22 21:38:04 +00:00
silverpill
6172d309bc Add task name to scheduler error messages 2022-06-21 17:41:16 +00:00
silverpill
d8972a9286 Add CLI command for updating current block 2022-06-21 15:28:19 +00:00
silverpill
3bad313d01 Run subscription checker task every 5 minutes 2022-06-20 21:04:30 +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
166a81ce6b Mention all recipients in subscribers-only posts 2022-06-15 12:42:15 +00:00
silverpill
fd7ef7b9c1 Move get_note_recipients() to builders::create_note module 2022-06-15 12:09:36 +00:00
silverpill
8d8227c349 Move Create(Note) builder function to builders::create_note module 2022-06-15 11:27:06 +00:00
silverpill
ab2aa5f197 Detect incoming subscriber-only posts 2022-06-14 23:49:20 +00:00
silverpill
0148343655 Use initial block number as lower bound when making log query 2022-06-14 21:31:42 +00:00
silverpill
91309e1a7b Don't return error when processing activity from blocked instance 2022-06-14 19:47:36 +00:00
silverpill
29ace97b0e Refactor process_nft_events function 2022-06-14 18:57:00 +00:00
silverpill
30f7f5d996 Initialize contract set in main() 2022-06-14 10:46:15 +00:00
silverpill
f700d79754 Ignore subscription event if sender changes their ethereum address in profile 2022-06-05 19:42:48 +00:00
silverpill
a526b507f3 Always log server errors 2022-06-02 20:04:36 +00:00
silverpill
669c581862 Send Delete(Person) activity when deleting local user 2022-06-02 16:28:40 +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
e82c6f31fb Move code for building Undo(Follow) activity to builders::undo_follow 2022-06-02 03:28:57 +00:00
silverpill
50986cd358 Move code for building Update(Person) activity to builders::update_person 2022-06-02 03:28:51 +00:00
silverpill
275e5ae5ca Send Delete(Note) acitivty when deleting post using CLI 2022-06-01 17:13:27 +00:00
silverpill
ff892b0826 Handle Delete(Person) activities 2022-06-01 17:13:13 +00:00
silverpill
a96d4fecfc Move Accept(Follow), Reject(Follow) and Undo() activity handlers to inbox module 2022-06-01 17:11:05 +00:00
silverpill
30da77dcf5 Move Follow() activity handler to inbox::follow module 2022-06-01 17:10:02 +00:00
silverpill
103a01f981 Move Like() activity handler to inbox::like module 2022-06-01 17:07:39 +00:00
silverpill
629ac7196b Move Announce() activity handler to inbox::announce module 2022-06-01 17:06:37 +00:00
silverpill
8bce89e6d1 Move Delete() activity handler to inbox::delete module 2022-06-01 17:05:09 +00:00
silverpill
30990c8af6 Define common return type for activity handlers 2022-06-01 17:03:29 +00:00
silverpill
1b1633d0b7 Rename activitypub::inbox module to handlers 2022-06-01 17:02:25 +00:00
silverpill
8407bbe842 Don't fetch signer when processing Delete(Person) activity 2022-05-30 20:21:21 +00:00
silverpill
c89ee4fd7b Accept Delete(Person) activities if HTTP signature is correct 2022-05-30 17:35:52 +00:00
silverpill
b95d409010 Add blockchain ID to instance API response 2022-05-28 22:43:38 +00:00
silverpill
4ffec71c24 Send notification when subscription payment is received 2022-05-28 19:00:24 +00:00
silverpill
c2c3ff1544 Verify chain ID on start 2022-05-28 00:04:21 +00:00
silverpill
14cb90224f Do not return error if activity type is not supported 2022-05-27 23:08:41 +00:00
silverpill
28fad8986c Limit number of profiles in search results 2022-05-27 22:11:16 +00:00
silverpill
f9689807e3 Expose login address via API only if it's verified 2022-05-27 21:58:18 +00:00
silverpill
b9722afebe Require verified wallet address when minting NFT 2022-05-27 21:58:13 +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
424859772a Add summary (bio) to local actor objects 2022-05-24 17:57:06 +00:00