Commit Graph

1259 Commits

Author SHA1 Message Date
Alex Gleason 4d21dd05a8
Merge remote-tracking branch 'origin/main' into refactor-trends 2024-05-21 16:45:58 -05:00
Alex Gleason 101a16bc12
Index the Postgres FTS column 2024-05-21 16:30:48 -05:00
Alex Gleason 9ab38203df
getDescendants: filter out non-replies 2024-05-21 14:37:18 -05:00
Alex Gleason d4625fe60d Merge branch 'reply-root' into 'main'
Add root tags to replies

See merge request soapbox-pub/ditto!293
2024-05-21 19:30:47 +00:00
Alex Gleason fc325880d2
Add root tags to replies 2024-05-21 14:27:49 -05:00
Alex Gleason bf6dc22c5a
Fix imeta stripping so it doesn't remove a bunch of newlines 2024-05-21 14:05:48 -05:00
Alex Gleason 9873afab69
Remove old tags.test.ts 2024-05-21 13:37:24 -05:00
Alex Gleason 5e607f664e
Add tags test 2024-05-21 13:32:27 -05:00
Alex Gleason 9839b8138f
tags.ts -> utils/tags.ts 2024-05-21 13:08:08 -05:00
Alex Gleason f30aad11a5
Fix legacy quote posts 2024-05-21 13:04:23 -05:00
Alex Gleason 938e26e2a0
Remove webfinger and host-meta 2024-05-21 12:54:10 -05:00
Alex Gleason 8f393aa604
Remove ActivityPub actor endpoint, remove deps.ts 2024-05-21 12:51:19 -05:00
Alex Gleason d4a029b35b
sanitize-html -> isomorphic-dompurify 2024-05-21 12:44:54 -05:00
Alex Gleason 83e51ad67e
lodash -> entities 2024-05-21 12:21:35 -05:00
Alex Gleason 590da75cf2
Merge remote-tracking branch 'origin/main' into feat-persist-user-preference 2024-05-20 14:02:38 -05:00
Alex Gleason a961eabb0e Merge branch 'lnurl-fix' into 'main'
Fix crash parsing Lightning URL

Closes #139

See merge request soapbox-pub/ditto!286
2024-05-20 17:54:13 +00:00
Alex Gleason 839c95f9a9 Merge branch 'refactor-test' into 'main'
Refactor EventsDB test to use eventFixture()

Closes #135

See merge request soapbox-pub/ditto!285
2024-05-20 17:51:52 +00:00
Alex Gleason 6861dc1d57
Fix crash parsing Lightning URL
Fixes https://gitlab.com/soapbox-pub/ditto/-/issues/139
2024-05-20 12:49:01 -05:00
P. Reis 98fd4babce test(EventsDB): use eventFixture() 2024-05-20 14:46:53 -03:00
Alex Gleason 7b099ee565
EventsDB: don't index the user's bio for kind 0 events 2024-05-20 11:39:44 -05:00
Alex Gleason 6f6e87525e
Remove DittoUploader interface in favor of NUploader 2024-05-19 15:57:04 -05:00
Alex Gleason 0541287f0e
Replace our NostrBuildUploader with the one from Nostrify 2024-05-19 15:43:46 -05:00
Alex Gleason f0b247130f
Add support for Blossom uploader 2024-05-19 15:42:45 -05:00
Siddharth Singh 29eb87dab3
format 2024-05-20 00:14:29 +05:30
Siddharth Singh 949697d80a
fix type error caused by trends refactor 2024-05-20 00:11:29 +05:30
Siddharth Singh f19629600d
rewrite trendsworker with kysely and deno cron, format changes 2024-05-20 00:05:03 +05:30
Alex Gleason 9754e29603
accountSearchController: respect the `limit` param 2024-05-19 11:45:42 -05:00
Alex Gleason 540bd058a2
Fix NIP-27 mentions 2024-05-19 11:33:59 -05:00
Alex Gleason 7f5179efca
renderAttachment: guess mime from url 2024-05-19 09:13:53 -05:00
Alex Gleason 5523c3fc0e
verifyCredentials: wait up to 5 seconds 2024-05-18 23:02:59 -05:00
Alex Gleason acef173ac4
Do things the boilerplatey way just for consistency 2024-05-18 22:15:33 -05:00
Alex Gleason 24659d8edb
IPFSUploader: make schema private 2024-05-18 22:11:54 -05:00
Alex Gleason 6542d6a777
Move uploader.ts to utils, make it kind of like api.ts 2024-05-18 22:04:43 -05:00
Alex Gleason 82c03dcb56
Rewrite all the uploaders 2024-05-18 22:00:24 -05:00
Alex Gleason 6090c4a6d9
Make Uploaders return NIP-94 tags 2024-05-18 18:23:04 -05:00
Alex Gleason e5595d34be
Strip imeta links from the end of the content 2024-05-18 17:15:27 -05:00
Alex Gleason 353111051a
Use dimensions from nostr.build 2024-05-18 16:53:17 -05:00
Alex Gleason ce49c500ae
renderStatus: fix duplicated attachments 2024-05-18 16:47:47 -05:00
Alex Gleason c89be75e5b
Add a nostr.build uploader 2024-05-18 16:22:24 -05:00
Alex Gleason cbf0bc3594
Fix note test 2024-05-18 15:46:28 -05:00
Alex Gleason c8b999a1f7
imeta: don't get attachment ID from a tag 2024-05-18 15:36:17 -05:00
Alex Gleason b1b341d3b8
Insert media URL into text 2024-05-18 15:29:12 -05:00
Alex Gleason 91ea4577f1
Filter out attachments with no url 2024-05-18 14:58:48 -05:00
Alex Gleason e7d350a0e3
Fix uploading by URL 2024-05-18 14:54:10 -05:00
Alex Gleason 611a94bdcf
Fix uploading (almost) 2024-05-18 14:32:50 -05:00
Alex Gleason 7d34b9401e
Support imeta tags 2024-05-18 13:22:20 -05:00
Alex Gleason c8f9483795
Add note.test.ts 2024-05-18 11:56:22 -05:00
Alex Gleason 942260aa54
note.ts -> utils/note.ts 2024-05-18 11:53:33 -05:00
Alex Gleason 5997ff0fff
Create utils/media.ts, move some code from note.ts there 2024-05-18 11:52:33 -05:00
Alex Gleason f97064afb4
Remove dependency on npm:mime, switch to @std/media-types 2024-05-18 11:35:29 -05:00
Alex Gleason 6ac4c072a6
Fix crash decoding url 2024-05-18 08:20:43 -05:00
Alex Gleason 3e93b42251
stats: add a debug call 2024-05-18 08:13:37 -05:00
Alex Gleason f9a0055e78
stats: add a Semaphore when refreshing author stats 2024-05-17 19:00:56 -05:00
Alex Gleason 23a366081f
stats: maybe refresh stats when updating 2024-05-17 18:42:45 -05:00
Alex Gleason bf479d0162
Move refreshAuthorStatsDebounced to stats.ts 2024-05-17 18:26:55 -05:00
Alex Gleason 5c2e3450a9
Refresh author stats: less naive way 2024-05-17 17:50:30 -05:00
Alex Gleason ae9516b445
refreshAuthorStats: return the stats 2024-05-17 16:23:38 -05:00
Alex Gleason a39910fa98
Add a function to recalculate author stats 2024-05-17 13:18:23 -05:00
Alex Gleason 1a32150f3d Merge branch 'nonzero-stats' into 'main'
Never let stats be less than 0

See merge request soapbox-pub/ditto!272
2024-05-17 16:42:12 +00:00
Alex Gleason 251500fba1
Never let stats be less than 0 2024-05-17 11:39:21 -05:00
Alex Gleason 80e487817e Merge branch 'fix-followers-and-following-when-no-kind-0' into 'main'
Render followers & following list when the accounts do not have a kind 0

Closes #134

See merge request soapbox-pub/ditto!271
2024-05-17 14:28:50 +00:00
P. Reis 4cc1d13d44 fix: render followers & following list when no kind 0 2024-05-17 11:25:17 -03:00
P. Reis 2aee2e6bf6 fix(renderReblog): render account from pubkey if there is no kind 0 2024-05-17 09:45:19 -03:00
Siddharth Singh 83a7b1f231
create tags_usages kysely table 2024-05-17 14:46:20 +05:30
Alex Gleason 5aacbe7af5
Fix media uploads due to 'awaiting' a query builder instance 2024-05-16 18:53:04 -05:00
Alex Gleason 04980089b4 Merge branch 'pgfts' into 'main'
Upgrade Nostrify to v0.20.0, enable Postgres FTS

See merge request soapbox-pub/ditto!269
2024-05-16 22:24:21 +00:00
Alex Gleason baa6986880
EventsDB: enable fts conditionally based on DATABASE_URL 2024-05-16 15:48:22 -05:00
Alex Gleason 00d4bf2344
Upgrade Nostrify to v0.20.0, enable Postgres FTS 2024-05-16 15:42:32 -05:00
Alex Gleason cb2e8607fa Merge branch 'refactor-unreblog' into 'main'
Mastodon API (Unreblog) - Query with Storages.db()

See merge request soapbox-pub/ditto!266
2024-05-16 20:17:38 +00:00
Alex Gleason 031a3eac04
EventsDB.test: import order 2024-05-16 10:30:54 -05:00
Alex Gleason 4df2c7ba9c
Improve EventsDB error handling 2024-05-16 10:29:14 -05:00
Alex Gleason 2ede439005
Upgrade Nostrify to v0.19.1, fix phantom deletions 2024-05-16 09:29:53 -05:00
P. Reis e61cbecb3e refactor(unreblog): update error messages and query with Storages.db() 2024-05-16 10:38:30 -03:00
Alex Gleason 4b07f2a12a
Actually, set default LOCAL_DOMAIN based on PORT 2024-05-16 08:10:13 -05:00
Alex Gleason 0acde23c46
Port 8000 -> 4036 in all the places 2024-05-16 08:08:36 -05:00
Alex Gleason f14b64b003
Remove useless policy dir 2024-05-15 20:35:35 -05:00
Alex Gleason 0b6b62f3b3
policyWorker: import deno-safe-fetch 2024-05-15 20:27:54 -05:00
Alex Gleason 9e9ab40886
Run the custom policy in a worker for security 2024-05-15 20:19:49 -05:00
Alex Gleason 6a1b8b0943
policy: improve error handling 2024-05-15 19:30:20 -05:00
Alex Gleason 8a672c93ec
Debug custom policies with ditto:policy 2024-05-15 18:59:51 -05:00
Alex Gleason 8e68d13ff1
Let custom policy be configured with DITTO_POLICY 2024-05-15 18:49:55 -05:00
Alex Gleason 417bd64f4c
Use port 4036 by default 2024-05-15 17:09:12 -05:00
Alex Gleason 4d3a9c6e23
stats: fix kysely screaming that we're awaiting a builder instance 2024-05-15 10:09:31 -05:00
Alex Gleason 406baf8a1d
events-db -> EventsDB 2024-05-15 08:18:31 -05:00
Alex Gleason 7021b0d4fd
'null' -> null 2024-05-15 08:13:19 -05:00
Alex Gleason 171350a34d
Drop deleted_at column 2024-05-15 08:08:30 -05:00
Alex Gleason 137bd0dae0
adminAccountsController: fix type error with DittoEvent 2024-05-14 22:19:33 -05:00
Alex Gleason ae0ec7be7e
EventsDB: remove DittoEvent dependency 2024-05-14 21:29:04 -05:00
Alex Gleason 221c41fdfa
EventsDB: make it a simple wrapper around NDatabase 2024-05-14 21:23:25 -05:00
Alex Gleason 69108c0375
UnattachedMedia: point to new EventsDB tables 2024-05-14 20:58:29 -05:00
Alex Gleason b3985e740b
EventsDB: migrate tables to match NDatabase 2024-05-14 20:54:09 -05:00
Alex Gleason af9fb6aaa3
Sort imports of streaming.ts 2024-05-14 20:05:38 -05:00
P. Reis a1326dedcc fix(streaming): async storage 2024-05-14 21:53:50 -03:00
P. Reis 9e34838de8 Merge branch 'main' into fix-blocked-users-in-streaming
(((updating local branch)))
2024-05-14 21:51:53 -03:00
P. Reis 0383726663 fix(streaming): use policy instead of hand coding 2024-05-14 21:44:19 -03:00
Alex Gleason f163af55d8
Remove deps-test.ts 2024-05-14 19:19:57 -05:00
P. Reis 4d342dff4a fix(streaming): move get muted users logic before upgrading connection to web socket 2024-05-14 21:14:00 -03:00
Alex Gleason 2fd50261f9
streaming: actually hydrate with optimizer 2024-05-14 19:11:38 -05:00
Alex Gleason 477ee8b124
Fix hydrateEvents in streaming 2024-05-14 19:09:25 -05:00
Alex Gleason d3a7f0849f
deno lint 2024-05-14 19:02:15 -05:00
Alex Gleason b4d48218b8
Add missing nostr-relaypool import 2024-05-14 18:46:55 -05:00
Alex Gleason a4226a963f
Rework Kysely db to be async 2024-05-14 18:44:42 -05:00
Alex Gleason 68b5887ed0
Don't let your memes be dreams 2024-05-14 18:24:34 -05:00
Alex Gleason 08c9ee0670
Refactor client and firehose 2024-05-14 16:25:24 -05:00
Alex Gleason 3c706dc81b
Storages: make all methods async (total chaos and destruction) 2024-05-14 16:10:50 -05:00
Alex Gleason 7feecab723
stats: fix ambiguous column name error in Postgres? 2024-05-14 15:25:56 -05:00
Alex Gleason eef349f1e9
Update stats before storing event 2024-05-14 15:05:59 -05:00
Alex Gleason efa1c92044
Merge remote-tracking branch 'origin/main' into signer-middleware 2024-05-14 14:48:47 -05:00
Alex Gleason e53ea22274
Remove unused import 2024-05-14 14:48:37 -05:00
Alex Gleason f12bb4b643 Merge branch 'block-globally-muted-user-to-post' into 'main'
Do not allow deactivated accounts to post

Closes #118

See merge request soapbox-pub/ditto!245
2024-05-14 19:46:36 +00:00
Alex Gleason 46b5bbf841
Uppercase CustomPolicy 2024-05-14 14:39:48 -05:00
Alex Gleason ecfea827e1
Move RelayError into its own file, add helper methods 2024-05-14 14:38:38 -05:00
Alex Gleason 45b766af4d
Remove 'user' from AppContext 2024-05-14 14:24:48 -05:00
Alex Gleason a061c248bd
signerMiddleware: add debug log 2024-05-14 14:18:44 -05:00
Alex Gleason e5392f4d9e
Merge remote-tracking branch 'origin/main' into signer-middleware 2024-05-14 14:16:38 -05:00
Alex Gleason 2f938ae42e Merge branch 'hydrate-test-kind-1984' into 'main'
Hydrate test: code coverage in kind 1984 & refactor to import fixtures in a dynamic way

Closes #125

See merge request soapbox-pub/ditto!249
2024-05-14 17:49:19 +00:00
P. Reis b626d75262 fix(streaming): posts from blocked users does not show up in global tab 2024-05-14 14:22:37 -03:00
Alex Gleason cd2a35d951
ConnectSigner: make getPublicKey used the stored value instead of actually hitting the relay 2024-05-14 12:20:36 -05:00
Alex Gleason 03182f8a5a
ConnectSigner: implement getRelays, support nprofile auth again 2024-05-14 12:14:27 -05:00
Alex Gleason 084143c5c8
Rename all middleware to thingMiddleware 2024-05-14 12:07:54 -05:00
Alex Gleason 1accae2222
Add a ConnectSigner to wrap our default opts to NConnectSigner, add c.set('signer') calls to nip98 middleware 2024-05-14 12:04:31 -05:00
Alex Gleason c715827c81
c.get('pubkey') -> await c.get('signer')?.getPublicKey() 2024-05-14 11:57:03 -05:00
Alex Gleason c5fbe69b80
requirePubkey -> requireSigner 2024-05-14 11:42:53 -05:00
Alex Gleason 5a2b1b7de7
Destroy everything 2024-05-14 11:40:20 -05:00
Alex Gleason ee7864da8c
Add a signerMiddleware 2024-05-14 11:31:20 -05:00
P. Reis caaa7016f0 test(hydrate): refactor to import fixtures with 'eventFixture' function 2024-05-13 21:56:29 -03:00
Alex Gleason cc9d2efef9
Fix mentions 2024-05-13 18:50:20 -05:00
P. Reis 78137f373f test(hydrate): kind 1984 2024-05-13 20:22:27 -03:00
P. Reis 4029971407 fix(pipeline): load custom policy if available 2024-05-13 17:44:33 -03:00
Alex Gleason 6105e00c80
pipeline: add a placeholder for custom policy 2024-05-13 12:43:01 -05:00
Alex Gleason 9bff7a5086
Fix some issues in pipeline and utils/api.ts 2024-05-13 12:30:56 -05:00
Alex Gleason 2140b3fbb2
lookupPubkey: check the bech32 first 2024-05-13 11:21:17 -05:00
Alex Gleason dc8010a78e
getClientConnectUri: fix description value 2024-05-12 13:33:22 -05:00
Alex Gleason 3b0739f187
Add a getClientConnectUri function, add "Nostr Connect" link in the OAuth form 2024-05-12 13:12:46 -05:00
Alex Gleason bdfa6f8826
Add a getInstanceMetadata function to DRY a few controllers 2024-05-12 12:32:40 -05:00
Alex Gleason 928ae4ec22
oauthController: calculate the script hash on the fly so we can edit it 2024-05-12 10:56:27 -05:00
Alex Gleason 65034a4aae
Support Explicit Addressing 2024-05-11 14:34:02 -05:00
P. Reis 04968fefaa test(MuteListPolicy): update error msg 2024-05-11 14:02:24 -03:00
P. Reis fe66937bba feat: do not allow deactivated accounts to post 2024-05-11 12:04:44 -03:00
P. Reis 801e68c6c4 fix: add error prefix according to NIP-01 2024-05-11 12:03:41 -03:00
Alex Gleason d278fc980a Merge branch 'fix-reports-no-kind-0' into 'main'
renderAdminAccount - Get account from pubkey if there is no kind 0 in the database

Closes #122

See merge request soapbox-pub/ditto!243
2024-05-10 22:20:23 +00:00
Alex Gleason c017770760 ! -> ?. 2024-05-10 22:17:44 +00:00
P. Reis 323e425e8b fix(renderAdminReport): make sure reportedPubkey is not undefined 2024-05-10 19:05:15 -03:00
Alex Gleason d142ce618d Merge branch 'feat-create-mute-policy' into 'main'
Create MuteListPolicy

See merge request soapbox-pub/ditto!242
2024-05-10 21:35:13 +00:00
P. Reis 732cb45b1e test(UserStore): update with 100.00% code coverage 2024-05-10 18:20:00 -03:00
P. Reis 4fdf15761c refactor(UserStore): remove isMuted function 2024-05-10 18:18:55 -03:00
P. Reis 3970bb81f7 refactor(MuteListPolicy): simplify condition 2024-05-10 18:03:35 -03:00
P. Reis d3b7668a1e fix: create renderAdminAccountFromPubkey and use it if reported account doesn't have a kind 0 2024-05-10 16:51:07 -03:00
Alex Gleason 282612b53c
Add an eventFixture function to import fixtures in tests 2024-05-10 14:10:19 -05:00
P. Reis 4069ddc02c refactor(MuteListPolicy): human lint preference 2024-05-10 14:37:02 -03:00