Commit Graph

850 Commits

Author SHA1 Message Date
Alex Gleason 4dfd958718
hydrateEvents: refactor a separate hydrateAuthors function 2024-03-30 16:12:48 -05:00
Alex Gleason 2a032b7b7b
DELETE /api/v1/statuses/:id 2024-03-30 13:34:18 -05:00
Alex Gleason d4c94ba549
Remove DITTO_ENV config, make registrations always open 2024-03-29 11:51:32 -05:00
Alex Gleason a19f1aa6e8
NIP05 DRYer 2024-03-27 19:45:03 -05:00
Alex Gleason 435c69e6a8
nip05Cache: lookup local nip05 from direct database call 2024-03-27 18:39:50 -05:00
Alex Gleason 0cfef1cb59
sentry: tracesSampleRate 1.0 2024-03-27 18:22:50 -05:00
Alex Gleason 9842b1aedd
Remove username from user events 2024-03-27 18:11:07 -05:00
Alex Gleason 8baa9a16db
nostrController: serve names from labels 2024-03-27 15:10:13 -05:00
Alex Gleason 0fde577149
EventsDB: fix the tag queries bug, DVM: remove unnecessary conditional 2024-03-26 21:42:17 -05:00
Alex Gleason 29a63f262f
Log relay error, remove unnecessary DVM conditional 2024-03-26 21:10:59 -05:00
Alex Gleason 940fc7a305
Add DVM module, process domain name requests 2024-03-26 19:28:13 -05:00
Alex Gleason e1bc55fcf4
updateCredentialsController: withSource true 2024-03-25 12:35:57 -05:00
Alex Gleason 4dd527474c
renderAccount: return the unverified nip05 raw value 2024-03-25 12:32:15 -05:00
Alex Gleason 75c277e7e8
updateCredentials: allow setting nip05 through the API, remove restrictions on update_credentials 2024-03-24 16:42:19 -05:00
Alex Gleason cfc2f02104
EventsDB: expandFilters, greatly speed up domain timelines
Fixes: https://gitlab.com/soapbox-pub/ditto/-/issues/80
2024-03-22 17:55:22 -05:00
Alex Gleason c3adafa860
EventsDB: use a subquery instead of a join 2024-03-21 19:22:40 -05:00
Alex Gleason 8bed0c17be
paginationSchema: don't set a default for `until` 2024-03-21 19:22:25 -05:00
Alex Gleason ccffe3abea
streaming.ts: remove unused import of getAuthor 2024-03-20 13:49:44 -05:00
Alex Gleason 25a4384587
Hydrate event author in pipeline to relieve streaming API 2024-03-20 13:49:02 -05:00
Alex Gleason 07ebb490d2
Make streaming by domain work 2024-03-20 13:42:59 -05:00
Alex Gleason b4c05c4ba3
publicTimelineController: support remote timelines 2024-03-20 13:23:55 -05:00
Alex Gleason f2db6c50b8
pubkey_domains `domain` cannot be null 2024-03-20 13:21:34 -05:00
Alex Gleason a8b5888e6d
pipeline: get nip05 domain correctly 2024-03-20 13:20:12 -05:00
Alex Gleason b2bc46ac57
Removed DittoFilter usages I missed earlier 2024-03-20 12:01:38 -05:00
Alex Gleason dcd0728b19
EventsDB: fix domain test 2024-03-20 11:56:30 -05:00
Alex Gleason ad2261a37e
Move accountLookup function into a separate module (to prevent circular dependencies) 2024-03-20 11:55:21 -05:00
Alex Gleason c8b378ad10
Remove DittoFilter, use search instead of local 2024-03-20 11:34:04 -05:00
Alex Gleason d17d4c846f
EventsDB: allow searching by domain 2024-03-19 22:53:06 -05:00
Alex Gleason 245cb43771
EventsDB: parse nip50 extensions 2024-03-19 22:46:54 -05:00
Alex Gleason e2cc6132be
Track pubkey domains 2024-03-19 17:45:19 -05:00
Alex Gleason d9056f66c6
SearchStore: switch to nspec NRelay1 2024-03-17 15:44:49 -05:00
Alex Gleason 2a0cba55e6
streamingController: allow to connect without authorization 2024-03-16 16:44:25 -05:00
Alex Gleason 648c32986b
pipeline: remove awkward registerUser flow 2024-03-16 15:07:45 -05:00
Alex Gleason 04cdbd11c9
purifyEvent: function signature 2024-03-16 13:19:39 -05:00
Alex Gleason 09369a0122
hydrateEvent -> purifyEvent (it sounds cooler) 2024-03-16 13:19:11 -05:00
Alex Gleason 0df4ac7331
pipeline: let the people post 2024-03-16 13:16:35 -05:00
Alex Gleason 3c8b5be783
pipeline: fix hydrateEvent 2024-03-12 17:09:22 -05:00
Alex Gleason b867f6c33c
accounts: nostr.npub -> nostr.pubkey 2024-03-12 16:32:43 -05:00
Alex Gleason 45e1762b50
pipeline: handle registrations 2024-03-12 16:10:19 -05:00
Alex Gleason 0bcf81e438
Use nostr-wasm 2024-03-12 14:36:10 -05:00
Alex Gleason 8b9566d79b
Remove relations filters, switch some stuff to use optimizer (requires bravery) 2024-03-06 12:55:02 -06:00
Alex Gleason 1499f9b417
Try hydrating timelines in a separate query instead of using relations 2024-03-05 14:26:38 -06:00
Alex Gleason 7eaa652ae9
Fix EventsDB tests 2024-03-02 21:46:23 -06:00
Alex Gleason 2972cb4b6d
Add event stats indexes 2024-03-02 21:20:43 -06:00
Alex Gleason e4f53b3936
Soft-delete events 2024-03-02 21:11:45 -06:00
Alex Gleason 96b5ecc435
Fix dropIndex calls 2024-03-02 19:23:28 -06:00
Alex Gleason 19adb3ab44
Use composite index for tags 2024-03-02 19:21:48 -06:00
Alex Gleason 9c4301e791
getConfigs: wrap in try-catch 2024-03-02 18:08:37 -06:00
Alex Gleason dffa70e2fe
Add missing index on kind-pubkey-created_at 2024-03-02 17:57:43 -06:00
Alex Gleason dc57415df3
SqliteWorker: log amount of time each query takes 2024-03-02 17:40:29 -06:00
Alex Gleason c24e1f42a6
Make Pleroma config more resilient to corrupted events 2024-02-22 11:39:11 -06:00
Alex Gleason f853801461
EventsDB: index 1985 label tags 2024-02-21 15:51:48 -06:00
Alex Gleason 641d2872d8
Actually, revert anything Alby would sign to nip04 since Alby doesn't support nip44 yet 2024-02-21 14:50:26 -06:00
Alex Gleason d5d642b10b
Switch all nip04 calls to nip44 2024-02-21 14:39:05 -06:00
Alex Gleason be3f1104db
getAndRenderAccount: render account from pubkey if not found 2024-02-19 14:20:00 -06:00
Alex Gleason fe6dd01b68
Add ditto.is_registered property to Account 2024-02-18 10:41:18 -06:00
Alex Gleason 7a38cfbc40
Remove Sentry from SqliteWorker
It seems to be destroying CPU performance?
2024-02-17 14:34:38 -06:00
Alex Gleason 491c3f5125
Catch client.query calls 2024-02-14 15:25:25 -06:00
Alex Gleason 8d6f8e7d8d
Add npub to Account entity 2024-02-13 20:23:33 -06:00
Alex Gleason ca31341e04
Fix double await 2024-02-12 13:43:03 -06:00
Alex Gleason 2b9b005250
Remove nip04 from deps.ts 2024-02-12 12:03:19 -06:00
Alex Gleason 5961b28c36
Remove crypo.ts, call AdminSigner instead 2024-02-12 12:01:35 -06:00
Alex Gleason 59d53c4a2f
Add APISigner and AdminSigner classes, implement NostrSigner interface 2024-02-12 11:52:05 -06:00
Alex Gleason 1e3f637358
verifySignatureWorker -> verifyEventWorker 2024-02-12 11:42:25 -06:00
Alex Gleason dbff3fee9a
Upgrade nostr-tools to v2.1.5 2024-02-12 11:40:17 -06:00
Alex Gleason cb80770fc7
Upgrade NSpec, update `count` interface 2024-02-12 10:48:26 -06:00
Alex Gleason 676bd04229
Switch to my fork of nostr-relaypool 2024-02-02 16:49:47 -06:00
Alex Gleason e9d29075eb
pipeline: catch error on broadcast 2024-02-02 14:51:22 -06:00
Alex Gleason 7b7cd8b15c
autoReconnect!! 2024-02-02 14:49:27 -06:00
Alex Gleason ae6c0e712b
NLib -> NSpec 2024-02-01 14:42:45 -06:00
Alex Gleason 427d75751a
assert -> with 2024-01-31 16:45:50 -06:00
Alex Gleason 62e227a181
Switch debug-js to stickynotes 2024-01-31 16:24:09 -06:00
Alex Gleason 7a8fb1ba6e
Upgrade LRUCache and NLib 2024-01-25 15:48:05 -06:00
Alex Gleason 57e9534552
Zaps: dehydrate event before passing into LNURL callback 2024-01-24 15:47:19 -06:00
Alex Gleason b4735d1dd3
cleanEvent -> dehydrateEvent 2024-01-24 15:46:45 -06:00
Alex Gleason 0fc8143889
Get rid of unnecessary memorelay module, replace with NCache 2024-01-23 17:50:33 -06:00
Alex Gleason 2369030ff0
Upgrade NLib, remove unnecessary generics 2024-01-23 17:18:44 -06:00
Alex Gleason 5b24b7ad39
Pass Request signal down from API controllers 2024-01-23 15:58:59 -06:00
Alex Gleason 77f2e2d940
pipeline: pass signals all the way down 2024-01-23 14:35:35 -06:00
Alex Gleason c6062874bd
Implement NStore interface from NLib 2024-01-23 14:06:51 -06:00
Alex Gleason 67a52c3b7d
Clean event before publishing 2024-01-23 12:15:48 -06:00
Alex Gleason 0b6874bb44
EventsDB: normalize the event to only NIP-01 event properties 2024-01-23 12:12:34 -06:00
Alex Gleason aaf01462c1
Update code to use new DittoEvent and DittoFilter. Event -> NostrEvent 2024-01-23 12:07:22 -06:00
Alex Gleason f58c2098f0
Add DittoEvent and DittoFilter dedicated interface modules 2024-01-23 11:17:31 -06:00
Alex Gleason b971b5274d
Remove UserData type, hydrate the event instead 2024-01-23 10:56:17 -06:00
Alex Gleason 240b7d6a14
Index P tag of zap receipts 2024-01-22 15:39:02 -06:00
Alex Gleason 8494bd5f67
pipeline: pass signal down to everything that accepts it 2024-01-22 14:31:52 -06:00
Alex Gleason c5e7b3bf0c
pipeline: clean up zaps function 2024-01-22 14:24:37 -06:00
Alex Gleason 13c50c71bd
Cache the LNURL response 2024-01-22 12:42:39 -06:00
Alex Gleason d73fa7a311
Start simplifying LNURL code with NLib 2024-01-22 12:35:30 -06:00
Alex Gleason 0a1b6cdf4f
Merge remote-tracking branch 'origin/main' into zaps 2024-01-22 12:00:55 -06:00
Alex Gleason fc3934fa90
fetchWorker: wait for the worker to be ready before using it 2024-01-22 11:55:34 -06:00
Alex Gleason dc6a6ccb5f
fetch.test: don't sleep at the beginning? I'm really confused why it's not working 2024-01-22 11:48:52 -06:00
Alex Gleason 4bec5f6f78
Try using httpbin in tests, cuz CI runner is hanging on example.com 2024-01-22 11:45:22 -06:00
Alex Gleason 8eccdafa64
Improve the NIP-05 cache 2024-01-21 20:22:11 -06:00
Alex Gleason 9a039bd021
firehose: ingest zap receipts 2024-01-17 11:54:28 -06:00
Alex Gleason b5a1220159
Publish NWC event from pipeline 2024-01-16 18:11:19 -06:00
Alex Gleason 40d3a46c16
pipeline: use fetchWorker properly for zaps, pass signal 2024-01-15 17:56:03 -06:00
Alex Gleason 24d1ff4aec
lnurl: increase default limit to 2000 2024-01-15 17:46:23 -06:00
Alex Gleason 455459bea7
pipeline: process zap requests by local users 2024-01-15 17:14:08 -06:00
Alex Gleason 826a244f47
Add status zap endpoint, publish zap request to pipeline 2024-01-15 16:43:56 -06:00
Alex Gleason 786d9914af
Add LNURL utils 2024-01-15 16:20:10 -06:00
Alex Gleason e16e81da86
Add a CLI task to publish events as the Ditto admin 2024-01-15 12:40:39 -06:00
Alex Gleason 58c2c8eb7f
EventsDB: index badges in FTS 2024-01-13 18:18:56 -06:00
Alex Gleason 8b3aee7e48 Merge branch 'admin-delete' into 'main'
Let admins delete events

See merge request soapbox-pub/ditto!99
2024-01-12 01:33:31 +00:00
Alex Gleason e3631104a6
pipeline: fix admin event deletion 2024-01-11 19:11:04 -06:00
Alex Gleason c4920ccb2e
pipeline: let the admin pubkey delete anything with kind 5's 2024-01-11 19:05:34 -06:00
Alex Gleason 31a6d0305f
Add admin status deletion endpoint 2024-01-11 18:47:26 -06:00
Alex Gleason a08e698f29
unfurl: improve failure debug 2024-01-11 18:09:59 -06:00
Alex Gleason db3ee13baa
Implement Pleroma config GET controller 2024-01-08 18:01:24 -06:00
Alex Gleason 8c972dbabd
Actually implement Pleroma's configs API correctly (wow!) 2024-01-08 17:34:07 -06:00
Alex Gleason 15810c1935
Configure server from the kind 0 event of the admin user 2024-01-08 16:53:46 -06:00
Alex Gleason 937ae1eab6
Refactor EventStore to use a more Set-like interface 2024-01-08 15:18:01 -06:00
Alex Gleason f8a0698c3a
Reqmeister: encounter -> storeEvent 2024-01-07 16:37:06 -06:00
Alex Gleason a10108e109
Move client to a PoolStore storage class 2024-01-07 15:15:20 -06:00
Alex Gleason 20928cdf82
Reqmeister: pass client as an opt 2024-01-07 14:58:17 -06:00
Alex Gleason ae44c08a2a
Move Reqmeister to a dedicated storage class 2024-01-07 14:54:33 -06:00
Alex Gleason 5d91c4b507
EventsDB: normalizeFilters 2024-01-05 18:06:51 -06:00
Alex Gleason 957b224453
adminAccountsController: support pagination, probably 2024-01-05 17:11:32 -06:00
Alex Gleason e1a95b2319
adminAccountsController: fix hydrating accounts 2024-01-05 16:33:05 -06:00
Alex Gleason 46b7185f7b
adminAccountsController: bail if querying by unsupported params 2024-01-05 16:05:18 -06:00
Alex Gleason 5bd03bdcaa
Support admin accounts endpoint (first pass) 2024-01-05 15:35:55 -06:00
Alex Gleason 714391b807
SearchStore: only use the external search if the socket is open 2024-01-05 12:09:12 -06:00
Alex Gleason 89af83c660
search: fix abort signals 2024-01-04 02:09:23 -06:00
Alex Gleason 412f71599a
Add hydrator module to hydrate relationships on events 2024-01-04 01:44:56 -06:00
Alex Gleason d170eb6d8e
SearchStorage: make author relations work 2024-01-04 00:52:55 -06:00
Alex Gleason 6d80b43335
SearchStore: bail early for empty filters 2024-01-04 00:23:37 -06:00
Alex Gleason 2595f1aadf
SearchStorage: try fetching authors 2024-01-04 00:20:22 -06:00
Alex Gleason ee7347df10
SearchStore works! 2024-01-04 00:07:57 -06:00
Alex Gleason 9c0a16ebcd
client: use EventSet, normalizeFilters 2024-01-03 22:20:30 -06:00
Alex Gleason b71124cc30
EventSet: event2 -> target 2024-01-03 22:15:20 -06:00
Alex Gleason 96dd635661
@/store.ts -> @/storages/types.ts 2024-01-03 22:02:34 -06:00
Alex Gleason b3e4b79439
Delete db/events.ts, db/memorelay.ts, move to @/storages.ts 2024-01-03 21:56:41 -06:00
Alex Gleason a4bc951eee
Add `supportedNips` to all storages 2024-01-03 21:39:54 -06:00
Alex Gleason 8ab0fefbf2
Memorelay: use EventSet data structure 2024-01-03 21:19:44 -06:00
Alex Gleason 384bb729b4
EventsDB: fix `this` binding of usersQuery 2024-01-03 20:59:46 -06:00
Alex Gleason 939eeae25a
Add Optimizer storage with EventSet 2024-01-03 20:22:02 -06:00
Alex Gleason 48ce1ba6c9
Memorelay: do some premature optimizations 2024-01-03 18:51:14 -06:00
Alex Gleason c235fa6123
Memorelay: normalize filters 2024-01-03 18:15:28 -06:00
Alex Gleason 5bffffe07b
Add a function to calculate the intrinsic limit of a filter 2024-01-03 17:20:29 -06:00
Alex Gleason 80e6147927
Make reqmeister a storage 2024-01-03 15:28:03 -06:00
Alex Gleason b5c23cf23f
Move EventsDB into storages 2024-01-03 14:45:56 -06:00
Alex Gleason cfe44876af
Memorelay: add supportedNips property 2024-01-03 14:06:13 -06:00
Alex Gleason f667ba3c69
Memorelay: reimplement by just looping events with matchFilters 2024-01-03 13:55:22 -06:00
Alex Gleason a1dad3a0c5
Memorelay: #events -> #cache 2024-01-03 12:54:38 -06:00
Alex Gleason 24c405b9b9
Add Memorelay storages module 2024-01-03 12:54:07 -06:00
Alex Gleason 792e47f0f7
renderStatus: fix repost and reaction events being switched 2024-01-01 18:39:22 -06:00
Alex Gleason 462b5b095c
debug: add debug to queries 2024-01-01 18:06:10 -06:00
Alex Gleason 777ac39ec7
debug: improve output for nip05 2024-01-01 17:47:15 -06:00
Alex Gleason d13b7435a7
debug: minimize socket close output 2024-01-01 17:30:01 -06:00