Commit Graph

1196 Commits

Author SHA1 Message Date
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
P. Reis 86518dbac5 refactor(MuteListPolicy): shorthand private constructor 2024-05-10 14:34:48 -03:00
P. Reis ebeec2ccba test: MuteListPolicy with 100.00% code coverage 2024-05-10 11:26:15 -03:00
P. Reis 26dd4606ed test: UserStore with 100.00% code coverage 2024-05-10 10:35:04 -03:00
P. Reis 0c0465f131 refactor(UserStore): move mute logic to separate function & create isMuted() function 2024-05-10 10:31:34 -03:00
P. Reis c85f31f63f feat: create MuteListPolicy class 2024-05-10 10:19:15 -03:00
Alex Gleason afcf28b506 Merge branch 'admin-accounts-perform-action' into 'main'
Implement Mastodon API - perform action against an account

Closes #114

See merge request soapbox-pub/ditto!240
2024-05-09 16:46:54 +00:00
P. Reis 4fa6b96d15 refactor(admin action): mute account even if it doesn't have a kind 0 2024-05-09 13:44:05 -03:00
P. Reis 9e2225873d feat: implement action against an account
- Action of deactivating an account by muting it in the entire server
2024-05-08 20:12:55 -03:00
P. Reis e4952f0c21 feat: create updateListAdminEvent() & updateAdminEvent() 2024-05-08 20:12:20 -03:00
Alex Gleason e29fb28d78 Merge branch 'report-nits' into 'main'
Small reportController refactoring

See merge request soapbox-pub/ditto!238
2024-05-08 22:29:41 +00:00
Alex Gleason 64e49bca9d
EventsDB: fix postgres crash when there are no local users 2024-05-08 17:11:48 -05:00
Alex Gleason c7e8beebc6
renderReport: whoops, event.author -> event.reported_account 2024-05-08 15:06:33 -05:00
Alex Gleason 8530749192
reportController: hydrate the report itself to get the author 2024-05-08 15:03:58 -05:00
Alex Gleason f99958c40e
reportsController -> reportController 2024-05-08 14:59:30 -05:00
Alex Gleason a82af47c67
quote_repost -> quote 2024-05-08 14:53:33 -05:00
Alex Gleason b16d5b749e
Add a created_at, kind index for the global feed 2024-05-08 14:34:22 -05:00
Alex Gleason 6bc051c06b
EventsDB: avoid ORDER BY when querying replaceable events by author 2024-05-08 13:56:37 -05:00
Alex Gleason 43e8f2a698
Use a Kysely logger to log SQL regardless of the adapter used 2024-05-08 12:56:42 -05:00
Alex Gleason 5e1cfad5cc
Add PG_POOL_SIZE environment variable 2024-05-08 11:46:27 -05:00
Alex Gleason b6dd49e2ef Merge branch 'relationships-mute' into 'main'
Relationships: fix blocks and mutes being switched

See merge request soapbox-pub/ditto!232
2024-05-08 16:13:34 +00:00
Alex Gleason 7ad0e4d9e9
Relationships: fix blocks and mutes being switched 2024-05-08 10:41:05 -05:00
P. Reis e8b690e262 fix(admin resolve): create admin event instead of create normal event 2024-05-08 10:32:10 -03:00
P. Reis 57495dbd7a feat: implement report resolve 2024-05-07 20:49:42 -03:00
P. Reis 53a8871a54 refactor: change 'singleAdminReportsController' to 'adminReportController' 2024-05-07 11:29:49 -03:00
P. Reis 17706d3b20 feat: implement view single report 2024-05-07 10:19:08 -03:00
Alex Gleason 120003c5c8 Merge branch 'admin-reports-api' into 'main'
Return from renderReport() in case pubkey is undefined

See merge request soapbox-pub/ditto!224
2024-05-06 18:06:53 +00:00
P. Reis 8d7621fbaf fix: return in case pubkey is undefined 2024-05-06 14:40:56 -03:00
Alex Gleason a3e54fdff4
DittoPostgres: use pool size for number of CPU cores 2024-05-06 11:44:33 -05:00
P. Reis 24068d12d0 refactor(reports): rename variables and remove type assertion 2024-05-06 11:47:05 -03:00
P. Reis 394599734f fix(reports): put notes in tag & only let comment in event.content 2024-05-05 15:45:24 -03:00
P. Reis 7890504add refactor: view info about all reports 2024-05-05 14:20:13 -03:00
P. Reis d903a2d0fb Merge branch 'main' into admin-reports-api
Update local branch & solve conflicts in hydrate.ts
2024-05-04 20:23:16 -03:00
P. Reis 14802dd38a feat(hydrate): create gatherTargetAccounts() & gatherReportedStatuses() 2024-05-04 20:18:36 -03:00
P. Reis 4d5d4868ce feat: create renderAdminReport() func 2024-05-04 20:14:39 -03:00
P. Reis 8a7f0892d7 fix: check if event is not undefined in renderAdminAccount 2024-05-04 20:12:34 -03:00
P. Reis b8df95408b feat: add target_account & reported_statuses to DittoEvent type 2024-05-04 20:11:29 -03:00
P. Reis af7b83cf8a feat: create /api/v1/admin/reports endpoint & controller 2024-05-04 20:10:18 -03:00
P. Reis b57188943f feat: renderAdminAccount() supports both kind 0 & kind 30361 2024-05-04 16:29:31 -03:00
Alex Gleason 3770d8a0dd
UnattachedMedia: return early when querying nothing 2024-05-04 13:14:03 -05:00
P. Reis f08211e2a1 refactor(admin-accounts): resolve import specifier via the active import map 2024-05-04 10:29:08 -03:00
Alex Gleason 0a3be0da58
Notifications: fix Favourites and EmojiReacts not being displayed 2024-05-03 21:22:53 -05:00
Alex Gleason e25372313b
suggestions: fix profile lookup, limit to 20 items for now 2024-05-03 18:32:35 -05:00
Alex Gleason 4ee4266843
instance: add 'v2_suggestions' to features 2024-05-03 18:28:07 -05:00
Alex Gleason cfb0d3f04c Merge branch 'suggestions' into 'main'
Start suggestions API

See merge request soapbox-pub/ditto!218
2024-05-03 23:24:53 +00:00
Alex Gleason 0f3fbbcb28
Start suggestions API 2024-05-03 18:21:40 -05:00
Alex Gleason 5001567b00
Streaming: temporarily remove UserStore (allow blocked posts through) 2024-05-03 17:20:35 -05:00
Alex Gleason 7efd5c1822
Clean up "not implemented" endpoints 2024-05-03 17:09:20 -05:00
Alex Gleason a2c5b5e61d
Markers: only allow 'home' and 'notifications' markers 2024-05-03 16:20:07 -05:00
Alex Gleason 8e178338b7
Implement Markers API 2024-05-03 16:17:36 -05:00
Alex Gleason 2b2499849f
pipeline: fix reqmeister crash, probably 2024-05-03 13:52:11 -05:00
Alex Gleason e9c5ef89ff
Reqmeister: improve API and fetching logic (untested) 2024-05-03 13:33:50 -05:00
Alex Gleason 6b20104327
filter: use getFilterLimit from nostr-tools 2024-05-03 13:26:26 -05:00
Alex Gleason 091392088f
PoolStore: simplify req 2024-05-03 13:25:18 -05:00
Alex Gleason 705e8e7c31
PoolStore: implement NRelay 2024-05-03 13:23:00 -05:00
Alex Gleason 2ee668d562 Merge branch 'feat-create-reports' into 'main'
Create user reports through kind 1984

Closes #97

See merge request soapbox-pub/ditto!210
2024-05-03 14:25:22 +00:00
P. Reis f2f0aa8741 fix(accountLookup): fix user not found by using 'accountFromPubkey' 2024-05-03 09:52:25 -03:00
P. Reis ca5433bcc7 refactor(reports): update code according to code review in MR 210 2024-05-02 20:21:58 -03:00
Alex Gleason 09c596c9e4
Add back block controllers, but 422 them 2024-05-02 15:34:17 -05:00
Alex Gleason 4c71dec6ce
Rename blocks to mutes in the API 2024-05-02 15:26:46 -05:00
Alex Gleason b219a21a2a Merge branch 'notifications-167' into 'main'
Notifications: render notifications for kinds 1, 6, and 7 events

See merge request soapbox-pub/ditto!211
2024-05-02 20:21:35 +00:00
Alex Gleason ec7b3f8350
followController: manually set `following: true` in the response 2024-05-02 15:02:05 -05:00
Alex Gleason 220f16feb8
Notifications: render notifications for kinds 1, 6, and 7 events 2024-05-02 14:36:28 -05:00
P. Reis 226c356646 feat: create mastodon response for reports 2024-05-02 16:03:59 -03:00