Commit Graph

609 Commits

Author SHA1 Message Date
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