Commit Graph

1196 Commits

Author SHA1 Message Date
P. Reis cdb0d817ed fix: repost counter works when undo repost 2024-04-10 19:15:24 -03:00
P. Reis 9f24f35a21 refactor: cast pubkey as string 2024-04-09 20:32:27 -03:00
Alex Gleason a63dc8be4e Apply 2 suggestion(s) to 1 file(s) 2024-04-09 22:08:37 +00:00
P. Reis 7e8401688c feat: undo repost 2024-04-09 18:27:17 -03:00
P. Reis 11f668dc8c refactor(interfaces): resolve import specifier via the active import map 2024-04-09 15:08:07 -03:00
P. Reis dd307f5b3f fix: always update home timeline in realtime when reposting 2024-04-09 11:35:18 -03:00
Alex Gleason 06ca3706b8 Apply 1 suggestion(s) to 1 file(s) 2024-04-09 14:27:41 +00:00
P. Reis 846c8824d4 Merge branch 'main' into 'fix-find-event'
# Conflicts:
#   src/views/mastodon/statuses.ts
2024-04-08 18:46:11 +00:00
Alex Gleason 9bfed222da
unfurlCard: fix types 2024-04-08 11:38:59 -05:00
Alex Gleason 57b0224517
renderReblog: fix types 2024-04-08 11:34:21 -05:00
P. Reis 0da9d2e3f4 fix: find event and not pubkey in renderReblog 2024-04-08 13:28:30 -03:00
Alex Gleason 70a29a74fb Merge branch 'repost-feat' into 'main'
feat: repost functionality

See merge request soapbox-pub/ditto!133
2024-04-08 15:54:43 +00:00
Alex Gleason d7d52bbdee Apply 1 suggestion(s) to 1 file(s) 2024-04-08 15:53:08 +00:00
Alex Gleason 1f7a4664ec Apply 2 suggestion(s) to 2 file(s) 2024-04-08 15:49:35 +00:00
Alex Gleason 595d5a4117
Avoid EventDB.count for single row fetches 2024-04-08 10:43:26 -05:00
Alex Gleason 2fb2b2ce2a
SqliteWorker: log query parameters 2024-04-08 09:13:20 -05:00
Alex Gleason 4e999d0f39
SqliteWorker: only call perf functions when debugging is enabled 2024-04-08 08:51:04 -05:00
Alex Gleason 8185843f12
SqliteWorker: clear performance marks & measures 2024-04-08 08:37:37 -05:00
P. Reis d8a471272d feat: update home timeline in realtime when reposting 2024-04-07 20:37:54 -03:00
P. Reis 25b1e7229c fix: stop home timeline hanging/loading when no posts are available 2024-04-07 20:26:47 -03:00
Alex Gleason 0bac971818
Upgrade unfurl to v6.4.0 2024-04-06 21:44:17 -05:00
Alex Gleason 49c9b0eff9
renderAccount: add pleroma.is_local parameter 2024-04-06 21:12:48 -05:00
P. Reis 25fcd04d9f fix: deno fmt 2024-04-06 23:12:30 -03:00
P. Reis ba08958b30 feat: attempt to delete repost if original post is deleted 2024-04-06 22:32:39 -03:00
Alex Gleason 7860a0e3c2
Allow setting external URI on statuses 2024-04-06 19:36:12 -05:00
Alex Gleason b031224fe5
createStatusController: parse hashtags in text 2024-04-06 19:15:59 -05:00
Alex Gleason 7e7cf1df64
createStatusController: parse mentions in text 2024-04-06 18:51:37 -05:00
Alex Gleason 215d184808
accountSearchController: utilize the searchStore 2024-04-06 14:56:48 -05:00
Alex Gleason c0c586b364
Add last_updated_at column to pubkey_domains 2024-04-05 21:48:59 -05:00
P. Reis bd5899029e refactor: deno fmt 2024-04-05 19:52:29 -03:00
P. Reis 178a3c4d0e feat: repost functionality 2024-04-05 19:44:12 -03:00
Alex Gleason 55ba4a3a9b
Remove X-Nostr-Sign header support 2024-04-05 17:40:42 -05:00
Alex Gleason 4b2b658685
Fix type errors 2024-04-05 14:18:46 -05:00
P. Reis d688e64219 fix(queries): event deconstruct inside getEvent 2024-04-04 17:27:52 -03:00
P. Reis 2113c73f09 refactor: resolve import specifier via the active import map 2024-04-03 19:39:06 -03:00
P. Reis 152e06ce3c fix: event deconstruct inside getAuthor 2024-04-03 18:05:07 -03:00
Alex Gleason 5e834d2a6b
pipeline: remove broadcast function 2024-04-02 19:53:11 -05:00
Alex Gleason d577c51c74
PoolStore: don't publish to own relay 2024-04-02 19:36:40 -05:00
Alex Gleason 4e54589c09
Deliver API events to outbox relays 2024-04-02 18:29:26 -05:00
Alex Gleason 957a82ce51
hydrateEvents: handle hydrating users 2024-03-30 23:39:06 -05:00
Alex Gleason 21bec6b131
pipeline: call hydrateEvents from hydrateEvent 2024-03-30 23:38:48 -05:00
Alex Gleason c71d3f9d3c
renderAccount: stop calling findUser, rely on event hydration 2024-03-30 23:25:12 -05:00
Alex Gleason d103d0f1d6
Make Conf a static class, cache pubkey 2024-03-30 22:56:09 -05:00
Alex Gleason d9cbbe2074
/api/v1/relationships: requirePubkey 2024-03-30 18:32:54 -05:00
Alex Gleason a106218439
hydrateEvents: restore stats 2024-03-30 17:44:17 -05:00
Alex Gleason a3201f4f33
hydrateEvents: in -> of 2024-03-30 16:30:48 -05:00
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
Alex Gleason 43359f787b
web.ts -> api.ts 2024-01-01 17:03:32 -06:00
Alex Gleason 1620668d5a
debug: log events signed through the API 2024-01-01 17:02:09 -06:00
Alex Gleason 57d7f7ff40
Support `pinned` param in accountStatusesController 2024-01-01 16:30:11 -06:00
Alex Gleason 3341d6aedd
Add pinController, unpinController 2024-01-01 16:23:08 -06:00
Alex Gleason 9841d193eb
Ensure bookmarks are displayed reverse-chronologically 2024-01-01 14:51:04 -06:00
Alex Gleason 5f6715db46
Add unbookmarkController 2024-01-01 14:35:46 -06:00
Alex Gleason b98487196f
Set `bookmarked` property of statuses, optimize status querying, fix relationships wrong assumption 2024-01-01 14:31:45 -06:00
Alex Gleason 5af0e0992f
db/events: ensure local bookmarks get indexed 2024-01-01 14:21:05 -06:00
Alex Gleason c8e2707704
Add bookmarkController, refactor generic views 2024-01-01 14:07:39 -06:00
Alex Gleason 69a44f9d2b
Add bookmarkController 2024-01-01 13:45:07 -06:00
Alex Gleason 38241d011d
Add missing newline 2024-01-01 13:08:32 -06:00
Alex Gleason 3807ca175f
Add unblock and unfollow endpoints 2024-01-01 12:50:09 -06:00
Alex Gleason 5b7c3a1d5e
Support GET /api/v1/blocks 2024-01-01 12:44:50 -06:00
Alex Gleason 84eb4cec2e
Add blockController, fix bugs 2023-12-31 23:35:37 -06:00
Alex Gleason 6d1375ba59
Optimize the relationships controller, support block relationships 2023-12-31 22:56:21 -06:00
Alex Gleason 63fb934220
setTag -> addTag 2023-12-31 22:06:35 -06:00
Alex Gleason 8023cfa7b2
Use a cleaner API for updating lists 2023-12-31 22:01:57 -06:00
Alex Gleason e341ec7b36
db/events: respect the signal 2023-12-31 21:01:30 -06:00
Alex Gleason f665c5f825
Remove isFollowing util 2023-12-31 20:31:06 -06:00
Alex Gleason dc27ee05d4
Create `updateListEvent` helper function 2023-12-31 20:13:49 -06:00
Alex Gleason 335f7dc281
Add tags module 2023-12-31 14:05:55 -06:00
Alex Gleason e5c8f8c146
Bump the timeout a bit when fetching an individual status 2023-12-31 12:48:49 -06:00
Alex Gleason 8c52ae80e4
reqmeister: fix eventhandler memory leak, fix promise resolving too soon, respect the signal 2023-12-31 12:47:28 -06:00
Alex Gleason 952b3f0d66
Fix http logger 2023-12-31 12:47:00 -06:00
Alex Gleason e869651c63
users: remove duplicate debug call 2023-12-30 09:58:12 -06:00
Alex Gleason 79349124bc
Prevent duplicate usernames from being added 2023-12-30 09:57:33 -06:00
Alex Gleason 529bc11da1
Support replaceable events and parameterized replaceable events (delete old versions upon insert) 2023-12-29 23:21:05 -06:00
Alex Gleason 38238cc4a8
Fix db/events test, remove unnecessary AbortSignal from pipeline 2023-12-29 21:21:56 -06:00
Alex Gleason 3472428da8
relay: fix wrong function name 2023-12-29 21:12:57 -06:00
Alex Gleason f6a8ab570f
db/events: simplify it further 2023-12-29 21:08:59 -06:00
Alex Gleason b39902d322
Load local timeline a lot faster by using leftJoin instead of innerJoin, wow 2023-12-29 21:05:31 -06:00
Alex Gleason 9492b7654f
db/events: fix the `local` filter 2023-12-29 20:53:01 -06:00
Alex Gleason 358396fdac
Drop users table 2023-12-29 17:01:23 -06:00
Alex Gleason 13bf936088
Convert users to Events 2023-12-29 16:37:18 -06:00
Alex Gleason 4ce51014de
events.test: fix type error 2023-12-29 13:53:09 -06:00
Alex Gleason 56373c4ce3
Refactor memorelay as an EventStore 2023-12-29 13:35:57 -06:00
Alex Gleason ccfdbfeb8d
Rework client as EventStore 2023-12-29 13:22:51 -06:00
Alex Gleason e6c8d1dad9
Add an EventStore interface, refactor eventsDB 2023-12-29 13:12:16 -06:00
Alex Gleason 5ed2ecbabd
Remove mixer module 2023-12-29 12:43:59 -06:00
Alex Gleason e01383629e
unfurl: fix missing import, debug errors 2023-12-28 15:55:48 -06:00
Alex Gleason 69d93b7cab
Merge remote-tracking branch 'origin/main' into pool-worker 2023-12-28 14:22:51 -06:00
Alex Gleason 08da26b12a
reqmeister: accept `signal` 2023-12-28 13:41:04 -06:00
Alex Gleason 2d19ab207e
Add memorelay.test.ts 2023-12-28 13:36:50 -06:00
Alex Gleason 33eead2148
Add filter.test.ts 2023-12-28 13:26:41 -06:00
Alex Gleason b3c7e22052
memorelay: increase LRU limits 2023-12-28 12:15:24 -06:00
Alex Gleason da6738a405
db/events: debug getFilters -> REQ 2023-12-28 12:07:49 -06:00
Alex Gleason 2b1e97ee1b
queries: get author from memory when possible 2023-12-28 00:39:05 -06:00
Alex Gleason c2b25bc798
queries: refactor getEvent, getAuthor 2023-12-28 00:27:25 -06:00
Alex Gleason 96e6bd18b4
queries: pull from memorelay when applicable, optimize 2023-12-28 00:15:51 -06:00
Alex Gleason f75cd21159
queries: make getAuthor use memorelay 2023-12-27 23:55:42 -06:00
Alex Gleason d40b4a509e
pipeline: use memorelay for encounters 2023-12-27 23:36:01 -06:00
Alex Gleason acffdd7fb8
memorelay: insertEvent 2023-12-27 23:22:24 -06:00
Alex Gleason 5398042156
Add memorelay module 2023-12-27 22:49:35 -06:00
Alex Gleason 84a083bc7c
debug: stringify tags 2023-12-27 22:27:05 -06:00
Alex Gleason 8f07fe8a23
debug: improve logging with REQ 2023-12-27 22:02:32 -06:00
Alex Gleason 083496943a
debug: don't log http requests for /packs etc 2023-12-27 21:57:10 -06:00
Alex Gleason 8d312bdbea
note: don't console.error on bad link, fix `isLinkURL` function 2023-12-27 21:25:57 -06:00
Alex Gleason 4d05398be1
Debug client, pass timeout into reqmeister 2023-12-27 21:14:45 -06:00
Alex Gleason baf51230ba
debug: hono logger 2023-12-27 20:57:20 -06:00
Alex Gleason 7b9baef165
debug: streaming, simplify other logs 2023-12-27 20:39:38 -06:00
Alex Gleason 4e01e8e626
debug: more modules 2023-12-27 20:19:59 -06:00
Alex Gleason 2fc9988c06
reqmeister: middleware/cache, reqmeister, nip05, unfurl, refactor some code 2023-12-27 20:07:13 -06:00
Alex Gleason e121a8805e
debug: pool, db/events 2023-12-27 19:48:48 -06:00
Alex Gleason 52d39c7a56
debug: firehose, stats, sub 2023-12-27 19:35:06 -06:00
Alex Gleason 667d00bbd0
debug: fetch.worker, sqlite.worker 2023-12-27 16:59:06 -06:00
Alex Gleason 520c35db60
Add `debug` library, adapt pipeline to it 2023-12-27 16:21:58 -06:00
Alex Gleason 59b9593191
Stop automatically cleaning up events 2023-12-26 16:38:21 -06:00
Alex Gleason e5e737faae
Reqmeister: add a jsdoc 2023-12-26 16:23:24 -06:00
Alex Gleason ed107e49fd
Move new libs into deps.ts 2023-12-26 13:31:23 -06:00
Alex Gleason 62675218ce
pipeline: trackRelatedEvents -> fetchRelatedEvents 2023-12-26 13:27:48 -06:00
Alex Gleason 04925a580b
Reqmeister: timeout -> signal 2023-12-23 11:16:18 -06:00
Alex Gleason 17cef2f186
Merge remote-tracking branch 'origin/main' into threads 2023-12-22 22:56:12 -06:00
Alex Gleason ad0aaf97dd
Replace all timeouts with AbortSignal 2023-12-22 10:47:47 -06:00
Alex Gleason 6d6e3bcecc
Move console.info from firehose to pipeline 2023-12-22 10:24:14 -06:00
Alex Gleason 58b12ae462
client: fix wrong import of allRelays 2023-12-22 10:23:48 -06:00
Alex Gleason acc133e8e2
Make Reqmeister work 2023-12-21 19:10:42 -06:00
Alex Gleason 4a32fe2c37
Add basic Reqmeister module 2023-12-21 14:56:21 -06:00
Alex Gleason 3ae47ee865
NIP-11: fix pubkey field 2023-12-19 22:01:41 -06:00
Alex Gleason 26e64e781c
Add NIP-11 support 2023-12-19 21:15:41 -06:00
Alex Gleason b9e756de26
deps: remove Author from nostr-relaypool 2023-12-19 19:18:20 -06:00
Alex Gleason 107fe76fdf
Move the RelayPool to a worker thread 2023-12-17 14:55:59 -06:00
Alex Gleason b32eaca17d
deno fmt 2023-12-17 11:03:40 -06:00
Alex Gleason cdfb21caa6
Pool: log number of active relays to connect to 2023-12-17 11:00:04 -06:00
Alex Gleason 29d3b7bf89
db/events: remove author orderBy clause 2023-12-11 14:44:35 -06:00
Alex Gleason 862ff74d7b
relays: don't automatically add crawled relays 2023-12-10 17:56:51 -06:00
Alex Gleason ff278487e8
Sentry: decrease tracesSampleRate to 0.2 2023-12-10 17:55:07 -06:00
Alex Gleason a32b0e7066
stats: clean up prev usage 2023-12-10 17:48:21 -06:00
Alex Gleason 4f79b7ec29
stats: handle follow/following counts 2023-12-10 17:42:44 -06:00
Alex Gleason 2d3f12dc72
stats: firstE -> firstTaggedId 2023-12-10 16:32:43 -06:00
Alex Gleason a5369d9826
Ensure relations are loaded throughout the API where needed 2023-12-10 16:21:18 -06:00
Alex Gleason 733b8ba9c5
pubkey_stats --> author_stats 2023-12-10 16:04:52 -06:00
Alex Gleason 07dc07ab71
Simplify author_stats relation 2023-12-10 15:54:31 -06:00
Alex Gleason 5415656b4d
Make author_stats and event_stats two separate keys on an event 2023-12-10 15:40:05 -06:00
Alex Gleason a48c1e51e1
stats: fix queries getting stuck 2023-12-10 15:33:01 -06:00
Alex Gleason 6a92c5135d
db/events: support 'stats' relation 2023-12-10 15:02:19 -06:00
Alex Gleason 21b6a02ff3
views: avoid counting directly in the view, take from the event object if it has it 2023-12-10 14:27:15 -06:00
Alex Gleason 3147496d78
Merge remote-tracking branch 'origin/main' into stats 2023-12-10 14:05:14 -06:00
Alex Gleason 8b03d492a1
stats: add migration for stats tables 2023-12-10 14:04:26 -06:00
Alex Gleason 0f10a7c3a2
stats: refactor inReplyToId 2023-12-10 13:58:35 -06:00
Alex Gleason 7167553afe
stats: switch to a system based on diff tuples 2023-12-10 13:53:51 -06:00
Alex Gleason a8944dd7ea
stats: support multiple values 2023-12-10 13:12:35 -06:00
Alex Gleason eca923d7c8
stats: make the logic kind of make sense 2023-12-10 11:43:41 -06:00
Alex Gleason bababe56f3
stats: update note count 2023-12-10 11:10:11 -06:00
Alex Gleason 0724a2744f Merge branch 'event-relations' into 'main'
Event relations (authors)

See merge request soapbox-pub/ditto!70
2023-12-08 01:47:24 +00:00
Alex Gleason de9fecaf65
Add a stats module (draft) 2023-12-07 18:49:10 -06:00
Alex Gleason c532f54ea6
Track queries with Sentry 2023-12-07 12:09:04 -06:00
Alex Gleason f50a78f978
db/events: don't return `author` unless it exists 2023-12-06 13:06:13 -06:00
Alex Gleason a6947441fc
renderStatus: don't fetch the author, expect it to be passed in 2023-12-06 12:04:24 -06:00
Alex Gleason 7d2813b214
extra --> relations, move it back to a filter option 2023-12-05 22:06:27 -06:00
Alex Gleason 22b1d730eb
with --> extra 2023-12-05 19:42:30 -06:00
Alex Gleason 8b4621ddfb
Merge remote-tracking branch 'origin/main' into with_authors 2023-12-05 19:18:53 -06:00
Alex Gleason a6bf5f47cd
db/events: fix `limit` not being applied correctly 2023-12-05 18:22:12 -06:00
Alex Gleason 2478545cd3
with_authors --> with: With[] 2023-12-05 17:27:52 -06:00
Alex Gleason e3d5b2ac4a
Move with_authors to GetFilterOpts instead of DittoFilter 2023-12-05 17:15:39 -06:00
Alex Gleason f9d3240fa8
with_author --> with_authors 2023-12-05 16:52:39 -06:00
Alex Gleason b3c749d266
db/events: add support for `with_author` filter 2023-12-05 16:40:45 -06:00
Alex Gleason 4b4639014b
Upgrade nostr-relaypool to v0.6.30, disable logging 2023-12-04 16:49:54 -06:00
Alex Gleason d569dfd5b5
Add TrendsWorker for tracking/querying trending tags with a Web Worker 2023-12-04 16:33:02 -06:00
Alex Gleason 86daef416f
Cache trending tags (with code copied from Mostr) 2023-12-04 13:19:20 -06:00
Alex Gleason bc3f4bc534
Add verifySignatureWorker 2023-12-03 16:55:34 -06:00
Alex Gleason a4e7c241d0
Rewrite SqliteWorker with Comlink 2023-12-03 14:58:35 -06:00
Alex Gleason 455752e656
SqliteWorker: use SQLite path from config 2023-12-02 13:18:35 -06:00
Alex Gleason 1ad7eeb961
deno fmt, deno lint 2023-12-01 19:28:33 -06:00
Alex Gleason 89b74217b6
Use the SqliteWorker with our new Kysely dialect 2023-12-01 18:15:39 -06:00
Alex Gleason 01839fbcbf
Upgrade kysely and kysely-deno-sqlite 2023-12-01 17:57:55 -06:00
Alex Gleason 01886059ab
Merge remote-tracking branch 'origin/main' into sqlite-worker 2023-11-29 15:11:21 -06:00
Alex Gleason 1232c5a838
fetchWorker: Array.from --> [...] 2023-11-29 13:04:22 -06:00
Alex Gleason 86749cc285
fetchWorker: return response as ArrayBuffer 2023-11-29 13:03:55 -06:00
Alex Gleason 99964c4d0e
fetchWorker: support POST'ing (and FormData) 2023-11-29 13:01:48 -06:00
Alex Gleason da3efaa5bc
fetchWorker: support RequestInit 2023-11-28 21:31:26 -06:00
Alex Gleason 3a85e3f8bf
Add fetchWorker for fetching off the main thread 2023-11-28 18:56:31 -06:00
Alex Gleason 595fb2cfc6
eventMatchesTemplate: let the event timestamp be greater than the template 2023-11-20 21:20:14 -06:00
Alex Gleason e55ddbd8e6
eventMatchesTemplate: drop `nonce` tags before comparison 2023-11-20 19:57:57 -06:00
Alex Gleason f4e334b5ff
Require POW on signup 2023-11-20 19:57:47 -06:00
Alex Gleason 3cdfbac4a1
Switch to sentry-deno 2023-11-20 19:25:39 -06:00
Alex Gleason 5b030c99c5
Upgrade Hono to v3.10.1 2023-11-20 12:42:18 -06:00
Alex Gleason c1bf326981
c.req.headers.get --> c.req.header, hono deprecation 2023-11-20 12:39:20 -06:00
Alex Gleason bedc8fdf91
Upgrade nostr-tools to v1.17.0 2023-11-20 12:36:06 -06:00
Alex Gleason 6868f39719
NIP-46: request target proof-of-work difficulty when signing events 2023-11-20 12:34:19 -06:00
Alex Gleason ae56d059b1
SqliteWorker: return query result instead of rows for query 2023-11-15 19:23:24 -06:00
Alex Gleason e601c43197
deno fmt 2023-11-15 17:09:53 -06:00
Alex Gleason 71e8d26195
SqliteWorker: wait until worker is ready 2023-11-15 17:09:30 -06:00
Alex Gleason 87980bbba1
Add an SqliteWorker 2023-11-15 16:24:03 -06:00
Alex Gleason 1b8a2d764c
Fix tests 2023-10-11 23:50:11 -05:00
Alex Gleason 079cdcf7d7
deno lint 2023-10-11 23:48:01 -05:00
Alex Gleason 9686469c28
Move PRAGMA utils to a separate file, log out PRAGMA values on start 2023-10-11 23:44:28 -05:00
Alex Gleason f35d38d83b
Refactor pragmas 2023-10-11 23:34:59 -05:00
Alex Gleason d63de0ad0b
Set SQLite PRAGMAs on start 2023-10-11 23:05:43 -05:00
Alex Gleason 149f8f6f04
Enable WAL mode on the database 2023-10-11 22:30:07 -05:00
Alex Gleason 5cb87a0fd9
db/events: fix catching UNIQUE violations 2023-10-11 16:24:10 -05:00
Alex Gleason 451b77d6c4
Switch main database to Deno SQLite3 2023-10-11 16:13:58 -05:00
Alex Gleason 9cd0a9bf22
Stop querying the pool 2023-10-09 13:17:02 -05:00
Alex Gleason 24cbc50c1b
mixer: stop querying relays 2023-10-09 13:15:02 -05:00
Alex Gleason 45d42f7ea4
Delete nostr-to-mastoapi.ts, add notifications.ts and relationships.ts 2023-10-06 15:40:34 -05:00
Alex Gleason d49c63bb1a
Move statuses view into its own file 2023-10-06 15:37:31 -05:00
Alex Gleason 0b77e7d888
Add views/mastodon/accounts.ts, views/mastodon/emojis.ts 2023-10-06 15:28:02 -05:00
Alex Gleason cb1141784e
views.ts: fix wrong import of toAccount 2023-10-06 15:19:27 -05:00
Alex Gleason 981d0ee693
views/attachment.ts -> views/mastodon/attachments.ts 2023-10-06 15:19:13 -05:00
Alex Gleason 180fdbd1c9
nostr-to-activitypub.ts --> activitypub/actor.ts 2023-10-06 15:09:01 -05:00
Alex Gleason 1662f616ef
Move unfurl code to a separate module 2023-10-06 15:05:22 -05:00
Alex Gleason db17f84937
Move emojiTagSchema into schemas/nostr.ts 2023-10-06 12:39:22 -05:00
Alex Gleason 9ca3ec08a3
Delete `transformers` directory, rename `views` 2023-10-06 12:02:24 -05:00
Alex Gleason a15e28e48f
Add Sentry hono middleware 2023-10-05 20:04:27 -05:00
Alex Gleason d646598879
Add Sentry integration 2023-10-05 16:08:12 -05:00
Alex Gleason 233f671326
Subscription: fix it with nostr-machina 2023-10-04 16:09:23 -05:00
Alex Gleason 0f9ff5bcaa
relay: fix querying by ids and authors 2023-09-11 19:45:27 -05:00
Alex Gleason 62ac9bffa3
accounts: set nip05 during update_credentials 2023-09-11 18:44:44 -05:00
Alex Gleason 93d8e0b22b
accounts: support updating avatar and banner 2023-09-11 18:02:17 -05:00
Alex Gleason d2760bc706
media: refactor upload code into a separate module 2023-09-11 17:49:38 -05:00
Alex Gleason 55d5197136
timelines: 3 seconds --> 1 second 2023-09-11 17:26:47 -05:00
Alex Gleason a44fb4c84f
Use default avatar and banner from repo, instead of linking out to image 2023-09-11 15:36:09 -05:00
Alex Gleason 737c9f0364
csp: load any media over https, not just local media 2023-09-11 15:16:26 -05:00
Alex Gleason 94671b6a98
s3: create the client instance from a function each time (so missing config doesn't crash it) 2023-09-11 14:42:29 -05:00
Alex Gleason ef96fa539a
Render status account from pubkey 2023-09-11 09:46:41 -05:00
Alex Gleason 31114b6094
accounts: return a blank account for verify_credentials if it isn't resolved 2023-09-11 09:08:15 -05:00
Alex Gleason 1b2f4d9a54
accounts: return token after registering account 2023-09-11 07:17:00 -05:00
Alex Gleason 10a804b60e
Remove POW requirement for now 2023-09-11 05:57:50 -05:00
Alex Gleason bacb872a18
Add /api not implemented controller 2023-09-11 04:55:15 -05:00
Alex Gleason a5bf09ed2b
Resolve any file in public/ 2023-09-11 04:14:08 -05:00
Alex Gleason 9cda8e3000
csp: use template literals to avoid escaping single quotes 2023-09-11 04:07:54 -05:00
Alex Gleason 4310bb7157
Add a CSP 2023-09-11 04:04:55 -05:00
Alex Gleason 8a9f8454bf
Serve a frontend through Ditto 2023-09-11 00:19:56 -05:00
Alex Gleason 82c4f0827e
Make registrations configurable by env 2023-09-10 23:44:30 -05:00
Alex Gleason 0adb6f5eba
Add messages to HTTPException's 2023-09-10 19:43:07 -05:00
Alex Gleason 75dd2652d2
app: remove unused account search fallback endpoint 2023-09-10 19:42:41 -05:00
Alex Gleason e3f11545b7
/api/v1/acccounts --> /api/v1/accounts 2023-09-10 19:23:50 -05:00
Alex Gleason 2d7398e9d1
nip98: fix pow check 2023-09-10 17:11:13 -05:00
Alex Gleason 607ef4b980
Make POW configurable, expose over the API 2023-09-10 15:38:49 -05:00
Alex Gleason 052c00821d
Enable registrations, require proof-of-work 2023-09-10 15:07:31 -05:00
Alex Gleason b9476ccbd6
pipeline: delete unattached-media rows when authoring an event 2023-09-09 22:27:37 -05:00
Alex Gleason 0d343fa190
db/unattached-media: refactor queries, DRY 2023-09-09 22:03:02 -05:00
Alex Gleason 43499f2dfd
media: add attachment view, unify types 2023-09-09 21:33:12 -05:00
Alex Gleason cf9a754b02
media: pukey --> pubkey, fix adding media tags to event 2023-09-09 20:12:47 -05:00
Alex Gleason 0b867afd8e
unattached-media: delete orphaned attachments after 15 minutes 2023-09-09 19:27:39 -05:00
Alex Gleason 46b9deffce
utils: add ipfs module 2023-09-09 19:13:42 -05:00
Alex Gleason e8053ba072
unattached-media: cid --> url 2023-09-09 18:12:54 -05:00
Alex Gleason c88b174d02
Add unattached_media table, insert one when uploading a file 2023-09-09 17:41:30 -05:00
Alex Gleason c6b20e68f6
db/events: refactor filterIndexableTags function 2023-09-09 16:24:53 -05:00
Alex Gleason f8b2efb484
db/events: refactor insertEvent into smaller functions 2023-09-09 16:08:30 -05:00
Alex Gleason 96ff31719e
db/events: pass EventData, index all media from local users 2023-09-09 15:48:03 -05:00
Alex Gleason d24318fd0d
db/events: index "media" tags, rearrange conditionals to optimize processing 2023-09-09 15:39:49 -05:00
Alex Gleason 6e139985ac
db/events: add a baseline 200 character limit to tag values 2023-09-09 15:31:43 -05:00
Alex Gleason fe08aaa2a3
db/events: use stricter tagConditions to not pollute the database 2023-09-09 15:29:17 -05:00
Alex Gleason b5a84627c8
statuses: enable posting with media attachments 2023-09-08 18:45:00 -05:00
Alex Gleason dcc9d05ee5
auth98: fix nsec flow 2023-09-08 18:29:26 -05:00
Alex Gleason 527e276340
Fix nip98 signing (validate proof), skip validating payload for media requests 2023-09-08 18:22:38 -05:00
Alex Gleason 969d8bfe7f
Add media endpoints, require nip98 proof to upload them 2023-09-08 17:00:07 -05:00
Alex Gleason 2c943872a8
media: enforce a filesize limit on uploads 2023-09-08 16:48:27 -05:00
Alex Gleason acc18adffb
media: return the appropriate Attachment type 2023-09-08 16:15:34 -05:00
Alex Gleason 8ae89462b7
Add a configUploader module to select the uploader based on config 2023-09-08 16:04:55 -05:00
Alex Gleason 34acc99000
Add a precheck file to throw when config is wrong 2023-09-08 15:48:00 -05:00
Alex Gleason 4f57ac0352
uploads: make uploader and media URL configurable 2023-09-08 15:20:57 -05:00
Alex Gleason 014b9f6d29
uploaders: allow deleting files by CID 2023-09-08 15:01:52 -05:00
Alex Gleason c40f10539d
ipfs: make API URL configurable, reorganize config 2023-09-07 19:22:28 -05:00
Alex Gleason c4af44d582
Move s3 to separate uploader module, add ipfs uploader 2023-09-07 16:59:05 -05:00
Alex Gleason 4622b52f78
mediaController: get cid, fix permissions, host on /ipfs 2023-09-06 22:10:28 -05:00
Alex Gleason 3fc60c78d2
Add a mediaController for s3 uploads 2023-09-06 17:55:46 -05:00
Alex Gleason 5f82f4f11b
client: use the same pool as the firehose 2023-09-06 01:18:07 -05:00
Alex Gleason 17c75e6761
Move pool to a separate module (to avoid importing firehose in tests) 2023-09-05 22:00:32 -05:00
Alex Gleason f2ccb5254e
cron: run cleanupEvents on startup 2023-09-05 21:52:16 -05:00
Alex Gleason a69b7f54f8
pipeline: broadcast deletions to all known relays 2023-09-05 21:45:30 -05:00
Alex Gleason e2b88d57d9
pipeline: process kind 5 deletion events 2023-09-05 21:24:59 -05:00
Alex Gleason 22ddc7b1a8
pipeline: remove unnecessary async keyword from trackHashtags 2023-09-05 20:35:58 -05:00
Alex Gleason 48195f02b3
pipeline: don't store event if a deletion for it exists 2023-09-05 20:31:34 -05:00
Alex Gleason 97a3478b1a
cron: change cleanupEvents to every 15 minutes 2023-09-05 17:48:50 -05:00
Alex Gleason a46381849f
db/events: delete FTS rows when deleting events 2023-09-05 17:25:54 -05:00
Alex Gleason a25d6c9755
db: pragma, enable fk constraints, enable autovacuum full 2023-09-05 17:25:14 -05:00
Alex Gleason 02049ed9d1
pipeline: fix isFresh comparison 2023-09-05 17:10:20 -05:00
Alex Gleason 5c02fd0773
db/relays: normalize url before inserting 2023-09-05 16:58:34 -05:00
Alex Gleason 2ff40c8fc5
db/events: rework tags, make event_id a FK to events again, drop value_2 and value_3 2023-09-05 16:55:16 -05:00
Alex Gleason 4708839fd6
db: improve output of migrations, exit on failure 2023-09-05 16:05:02 -05:00
Alex Gleason cdffe42cfd
db/events: delete tags during deleteFilters 2023-09-05 13:23:45 -05:00
Alex Gleason df17f62ecb
db/events: try fixing types in CI? 2023-09-05 12:31:59 -05:00
Alex Gleason aea07fd28a
db/events: fix type error 2023-09-04 22:16:43 -05:00
Alex Gleason 5d19c21f51
cron: delete old remote events every hour 2023-09-04 19:46:39 -05:00
Alex Gleason 08dd5fa4eb
db/events: fix `local: false` filter 2023-09-04 17:17:47 -05:00
Alex Gleason 8ec215402f
db/migrations: fix `down` in 003_events_admin to drop the new "admin" column, not the "relays" table (whoops) 2023-09-04 13:20:07 -05:00
Alex Gleason 25e023aaf2
db/users: add indexes on users.pubkey and users.username 2023-09-04 13:18:11 -05:00
Alex Gleason 561ae9532a
db/events: getFiltersQuery, break to multiple lines for readability 2023-09-04 13:04:20 -05:00
Alex Gleason 1f06035bf2
db/events: getFiltersQuery, improve variable names 2023-09-04 13:03:10 -05:00
Alex Gleason e377d7b3ce
events/db: add a deleteFilters function to delete all events from the local db matching the filters 2023-09-04 12:58:35 -05:00
Alex Gleason 5a3d112396
frontendConfigController: add a #d filter 2023-09-03 19:18:05 -05:00
Alex Gleason 7686371183
Implement frontend configurations 2023-09-03 18:49:45 -05:00
Alex Gleason 3c45a4a3aa
sign: simplify awaitSignedEvent (remove unnecessary conditional, rearrange error, fix crash) 2023-09-02 22:39:35 -05:00
Alex Gleason 93f06fd342
config: preserve query params in Conf.local 2023-09-02 22:38:21 -05:00
Alex Gleason b81091f5da
auth98: requireProof --> requireAdmin 2023-09-02 20:52:17 -05:00
Alex Gleason f7d74c97ca
db/users: add `admin` column 2023-09-02 20:52:02 -05:00
Alex Gleason c8a5da086e
sign: ensure the NIP-46 result matches the template 2023-09-02 20:09:28 -05:00
Alex Gleason 007565b513
eventSchema: ensure the event ID matches its hash 2023-09-02 19:40:28 -05:00
Alex Gleason 7595dfa2e5
auth98: make requireProof obtain the event over NIP-46 2023-09-02 19:33:13 -05:00
Alex Gleason c8d6389132
sign: refactor the unnecessarily complex awaitSignedEvent function 2023-09-02 18:56:42 -05:00
Alex Gleason 61f5acc937
nip98: add a dedicated nip98 module, refactor auth98.ts 2023-09-02 18:32:01 -05:00
Alex Gleason 4c41ce8c0a
@/nip05.ts --> @/utils/nip05.ts 2023-09-02 13:43:01 -05:00
Alex Gleason 4ff27ddc04
Add /api/v1/favourites 2023-09-01 13:14:27 -05:00