Commit graph

1106 commits

Author SHA1 Message Date
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
silverpill
c734f3575f Fix invalid ID of Accept(Follow) activity 2022-05-23 08:21:26 +00:00
silverpill
6863fba96e Refactor update_actor() function, remove unwrap() 2022-05-22 19:02:37 +00:00
silverpill
f2e61dd9a3 Add CLI command for re-fetching actors 2022-05-22 18:56:17 +00:00
silverpill
28ccd19c34 Verify actor ID after fetching
Request can be redirected so doing it before request is not reliable.
2022-05-22 18:27:03 +00:00
silverpill
61f0c5a546 Ignore Undo(Follow) if relationship doesn't exist 2022-05-22 16:31:58 +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
9a20c7891f Fix bug in create_activity_like() 2022-05-13 18:18:09 +00:00
silverpill
ee8b6c497d Replace actor ID in Mastodon API mentions with profile URL 2022-05-12 21:15:21 +00:00
silverpill
425a5d9331 Use "name" property if "content" is not available in get_note_content 2022-05-12 15:48:54 +00:00
silverpill
e2d2e2e5de Save post CID and attachment CID in a single database transaction 2022-05-12 14:53:43 +00:00
silverpill
6c675c11c4 Add default configuration file to debian package 2022-05-12 14:53:37 +00:00
silverpill
dad9640685 Set default EIP-4361 login message 2022-05-11 21:33:42 +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
b7849c8264 Check TX ID when saving token ID to database 2022-05-10 22:12:54 +00:00
silverpill
0268f6edc8 Save all post attachments to IPFS in make_permanent() 2022-05-10 20:22:23 +00:00
silverpill
75a4dec009 Update siwe-rs package to version 0.3.0 2022-05-09 19:58:42 +00:00
silverpill
d090363698 Refactor activity builders 2022-05-09 17:14:13 +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
f5b19f24c6 Change mutex log message level to debug 2022-05-06 19:55:28 +00:00
silverpill
e6e7e6f42a Refactor Status API views 2022-05-06 19:39:17 +00:00
silverpill
54c32c5f00 Add user actions to statuses in search results 2022-05-06 18:27:33 +00:00
silverpill
783c482e9e Process incoming activities sequentially
This is a quick fix for race conditions occuring during handling of inbox requests.
2022-05-05 16:53:53 +00:00
silverpill
ae4bfcf614 Add cargo feature for making production build 2022-05-04 22:06:12 +00:00
silverpill
e927ed83ff Don't read environment parameter from config file 2022-05-04 20:44:27 +00:00
silverpill
379116605f Make HTTP signature verification compatible with GoToSocial 2022-05-02 23:34:49 +00:00
silverpill
5c0e6b0b0c Rewrite fetch_profile to accept ActorAddress object 2022-05-02 23:34:45 +00:00
silverpill
b05a8b2757 Ignore forwarded Delete() activities 2022-05-02 20:57:39 +00:00
silverpill
260a3cedb2 Log request URL when profile fetcher fails 2022-05-02 20:45:42 +00:00
silverpill
75ef8bba7c Move import_post to fetcher::helpers module 2022-05-02 17:31:39 +00:00
silverpill
914fae8137 Move parts of import_post to inbox::create_note module 2022-05-02 16:43:13 +00:00
silverpill
787992265e Move Update(Person) activity handler to inbox::update_person module 2022-05-02 12:56:16 +00:00
silverpill
b9ae2f07e7 Rename fetch_attachment to fetch_file 2022-05-02 00:01:57 +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
7ed919a295 Set max size for names and values of extra fields 2022-04-30 16:03:41 +00:00
silverpill
8755177eed Convert incoming questions and pages into posts 2022-04-29 13:21:00 +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
b384dcd4d2 Allow Tag objects without name property 2022-04-27 10:39:26 +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
83fbbefaab Add test for get_local_actor() 2022-04-26 22:35:39 +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
356592bc71 Add views for generating address ownership proof 2022-04-26 19:56:26 +00:00
silverpill
e697461e70 Add function that performs address ownership verification 2022-04-26 19:32:08 +00:00
silverpill
fc60bb78f2 Implement ToString and FromStr traits for SignatureData 2022-04-26 19:32:02 +00:00
silverpill
bffe3bbe7d Don't hash initial message when making EIP-191 signature 2022-04-22 21:27:53 +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
536c7ecb21 Bump web3 to 0.18.0 2022-04-20 17:30:30 +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
0715b7d64f Use actor ID for href field in mention tag
Mastodon also does this in latest version.
2022-04-20 14:02:39 +00:00
silverpill
ffdda2ac51 Add recover_address() function
It can be used to recover ethereum address from signature.
2022-04-19 22:59:09 +00:00
silverpill
0d6807e5a2 Move address_to_string to ethereum::utils module 2022-04-16 22:32:50 +00:00
silverpill
c0837bbf77 Create Atom feeds for local users 2022-04-16 19:37:45 +00:00
silverpill
aa997e3a82 Make activity IDs deterministic 2022-04-14 18:33:18 +00:00
silverpill
0bc3c32fcd Allow value of "attachment" property to be an object 2022-04-14 15:58:29 +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
ec44fce526 Write warning to log when processing remote post of unexpected type 2022-04-13 19:00:27 +00:00
silverpill
513f10ab4f Write warning to log when encountering unexpected actor property type 2022-04-12 18:34:01 +00:00
silverpill
f914702de9 Allow duplicate labels in extra profile fields 2022-04-12 15:11:26 +00:00
silverpill
4a1b75969f Replace actix-rt with tokio in scheduler module 2022-04-12 12:39:32 +00:00
silverpill
541894f4df Update clap to stable version 2022-04-10 19:51:03 +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
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
bdce305b24 Change default PostgreSQL port 2022-03-09 20:41:56 +00:00
silverpill
ee7ae3cd4f Implement instance blocks 2022-02-23 23:38:43 +00:00
silverpill
0727b739ed Move HTTP signature verification to receive_activity() function 2022-02-23 23:38:00 +00:00
silverpill
bf27903ee9 Drop database connection before starting HTTP server 2022-02-23 21:33:56 +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
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
9bc8997fb5 Identify incoming followers-only posts 2022-02-18 17:57:11 +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
4e010f1698 Add profile data validation to get_or_import_profile_by_actor_id 2022-02-16 23:46:01 +00:00
silverpill
848de1d685 Set default tag type to Hashtag 2022-02-15 23:14:39 +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
e756bbacf4 Add tests for note visibility detection 2022-02-13 20:12:31 +00:00
silverpill
a5d3aa488b Require replies to non-public posts to have direct visibility 2022-02-13 18:16:59 +00:00
silverpill
79e7d960fb Log more details when processing non-public note 2022-02-13 16:42:01 +00:00
silverpill
226fc49b86 Allow non-standard wrap width when parsing public keys in PEM format 2022-02-13 15:44:28 +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
49dc82fb0a Add decoding error type to VerificationError enum 2022-02-11 20:40:36 +00:00
silverpill
75fa39718c Add http_cors_allowlist configuration option 2022-02-10 23:35:23 +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
bf2e38a397 Add User-Agent header to fetcher requests 2022-02-08 19:51:40 +00:00
silverpill
f1fd0af6bc Remove blockchain_contract_name property from instance info 2022-02-08 18:32:54 +00:00
silverpill
0a2a145807 Optimize database queries in can_view_post() 2022-02-08 18:25:48 +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
a63da82b85 Allow cross-origin requests from localhost in production environment
https://codeberg.org/silverpill/mitra/issues/5
2022-02-08 13:16:46 +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
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
a095ea7061 Add periodic task that monitors subscription events 2022-02-05 23:52:56 +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
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
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
dfc9902092 Move get_nft_contract function to ethereum::contracts module
Preparing for more contracts.
2022-01-30 17:47:07 +00:00
silverpill
c4a0f12555 Keep "pre" and "code" tags when cleaning post content 2022-01-28 00:42:36 +00:00
silverpill
fd0c7edb59 Retrieve event ABI from Contract instance in process_events() 2022-01-28 00:42:36 +00:00
silverpill
a3f20149cf Remove actual ethereum contracts and use interfaces instead 2022-01-28 00:42:36 +00:00
silverpill
237185bb14 Move functions for creating ethereum signatures to ethereum::signatures module 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
8e53214830 Fix parsing of mentions of local users 2022-01-21 12:34:41 +00:00
silverpill
269318da76 Accept Note attachments of type Image 2022-01-17 11:28:44 +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
aea6db5acb Try to find actor by href when parsing mention tags 2022-01-14 00:16:54 +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
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
de37f606e3 Skip Note attachments with type other than Document 2022-01-08 21:23:21 +00:00
silverpill
d4ab05ce1f Treat all notes that aren't public-addressed as direct messages 2022-01-08 19:24:23 +00:00
silverpill
f0d021853a Refactor timeline and thread queries
Added tests for home timeline query.
2022-01-08 14:56:38 +00:00
silverpill
f8bb82d6cb Set correct primary and secondary audience for direct messages 2022-01-07 22:28:34 +00:00
silverpill
3ff4c79f0d Add macro for building SQL queries 2022-01-07 22:12:31 +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
011951c129 Set up tests for database queries 2022-01-06 14:31:29 +00:00
silverpill
040934da2d Don't create database conn pool when running mitractl 2022-01-06 11:28:07 +00:00
silverpill
81d60656e6 Set correct primary audience for Update(Person) activities 2022-01-04 21:55:35 +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
7a373831fe Set correct primary and secondary audience for outgoing Create(Note) activities 2022-01-04 21:01:45 +00:00
silverpill
c7ee5d94ce Write signer ID to log if actor ID and signer ID do not match 2022-01-04 14:42:03 +00:00
silverpill
5dc07c3742 Verify object ID when processing Update(Person) activity 2022-01-03 23:45:18 +00:00
silverpill
d045df4232 Verify post/reaction author when processing Delete() and Undo() activities
Activity sender and the author must be the same.
2022-01-03 23:38:31 +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
d4964878f2 Return error if actor and request signer do not match 2022-01-03 19:34:01 +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
d46165f397 Process Follow() activity even if relationship already exists 2022-01-02 23:50:37 +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
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
5b0a9ff931 Enable strict HTTP signature verification in inbox 2021-12-31 19:43:05 +00:00
silverpill
452894c224 Ignore Delete(Note) if post is not found in database 2021-12-30 14:45:31 +00:00
silverpill
b2f341445b Skip signature verification when processing Delete(Person) activities 2021-12-29 20:54:36 +00:00
silverpill
580ba6dfba Make actor and object endpoints compatible with Mastodon fetcher 2021-12-29 18:36:50 +00:00
silverpill
f9fca604a9 Make media_type property on Attachment type optional 2021-12-29 15:07:19 +00:00
silverpill
e71bb9585a Refactor utils::files module 2021-12-29 14:34:23 +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
2db43df631 Ignore Delete(Person) activities 2021-12-28 01:28:28 +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
690edddbc1 Add "algorithm" parameter to HTTP signature 2021-12-27 15:28:05 +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
51aea90158 Ignore Undo() if object is not found in database 2021-12-26 14:17:58 +00:00
silverpill
74a89f6fe9 Ignore Like(Note) if reaction already exists in database 2021-12-25 21:45:42 +00:00
silverpill
34b8d05f8b Ignore mention in incoming activity if profile is inaccessible 2021-12-25 16:17:39 +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
c628885c9e Refactor users::queries module 2021-12-24 16:12:19 +00:00
silverpill
dc281f821f Allow attributedTo to be array of values
Initial support for PeerTube.
2021-12-24 15:13:33 +00:00
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
silverpill
f6e9c082e2 Implement Oauth 2.0 token service 2021-10-05 00:00:14 +00:00
silverpill
b1776b9520 Move invite code generator to users::utils module 2021-10-02 16:32:57 +00:00
silverpill
aa826fd57f Update reply counts when deleting profile 2021-09-29 12:12:45 +00:00
silverpill
c41cb16d23 Unpin and remove orphaned IPFS objects from local node 2021-09-29 12:06:19 +00:00
silverpill
90aac4d162 Stop waiting for token after 10 minutes 2021-09-29 01:03:47 +00:00
silverpill
f87284b07c Remember CIDs of media attachments after adding them to IPFS 2021-09-28 21:58:43 +00:00
silverpill
def4ac69dc Make delete-profile command update counters and clean files 2021-09-26 17:32:25 +00:00
silverpill
7fbd889946 Verify owner of attachments when creating post 2021-09-26 00:08:50 +00:00
silverpill
283c426c49 Add delete-post CLI command 2021-09-26 00:08:44 +00:00
silverpill
c605185bb5 Keep number of direct replies in reply_count field 2021-09-25 11:29:41 +00:00
silverpill
520e5399aa Enable replies 2021-09-23 23:28:39 +00:00
silverpill
087a077f7d Make actor ID and object ID parsers more strict 2021-09-20 21:45:33 +00:00
silverpill
602e4ec229 Add handler for Reject(Follow) activity 2021-09-20 21:06:48 +00:00
silverpill
d2adda2034 Keep value source when editing extra fields 2021-09-17 14:43:02 +00:00
silverpill
7fad429a8c Save extra fields from remote actors 2021-09-17 12:48:13 +00:00
silverpill
6dec1a5da1 Add extra fields to actor profile 2021-09-16 20:14:48 +00:00
silverpill
fdef4b6e6a Initial commit 2021-09-14 12:24:05 +00:00