Commit Graph

346 Commits

Author SHA1 Message Date
Mike Dilger
6876c12c2c Delete events locally (not terribly useful, they flow back in from relays pretty quickly) 2024-01-09 11:01:38 +13:00
Mike Dilger
df107f5479 Apply spam filter to the decrypted Rumor inside Giftwraps 2024-01-09 09:45:54 +13:00
Mike Dilger
e68216d450 cargo fmt 2024-01-09 09:45:35 +13:00
Mike Dilger
2a04fc24f4 Update nostr-types (nip-44) 2024-01-09 09:05:09 +13:00
Mike Dilger
115eece5c9 Only show Load More on the feeds were we support it 2024-01-08 11:47:39 +13:00
Mike Dilger
9681760fe7 Load more support for Person feeds 2024-01-08 11:47:39 +13:00
Mike Dilger
7944d92132 Load More: sync time between feed and minions; Depend on which feed 2024-01-08 11:47:39 +13:00
Mike Dilger
0457c186c4 Change feed chunk defaults and range in ui slider 2024-01-08 11:47:39 +13:00
Mike Dilger
f3855f5c39 Overlord loading of one more feed chunk 2024-01-08 11:47:39 +13:00
Mike Dilger
122124f666 feed: record general feed start, allowing us to back it up 2024-01-08 11:47:39 +13:00
Mike Dilger
a8e911db93 minion TempSubscribeGeneralFeedChunk 2024-01-08 11:47:39 +13:00
Mike Dilger
8bc20c474a cargo fmt 2024-01-08 11:47:28 +13:00
Mike Dilger
2784903082 Don't fetch person feed from ALL of their relays; fetch most things from num-relay-per-person +1 2024-01-08 11:45:04 +13:00
Mike Dilger
8d5b2d837a Don't include giftwrap in non-dm filters 2024-01-08 11:37:36 +13:00
Mike Dilger
3432d0117a Surreptitiously subscribe to relay lists when subscribing to metadata 2024-01-08 09:04:45 +13:00
Mike Dilger
3cbacba0be When viewing a particular person feed, subscribe on their OUTBOX relays: 2024-01-08 08:55:02 +13:00
Mike Dilger
63648b3bc0 Fix person-feed mismatch (since in minion vs limit=25 in filter) 2024-01-08 08:42:09 +13:00
Mike Dilger
7107e2ae25 0.10.0-unstable 2024-01-02 07:56:37 +13:00
Mike Dilger
f55db808c9 cargo fmt 2023-12-29 22:39:43 +13:00
Mike Dilger
42eb336ff2 Fix multiple FetchMentions per relay 2023-12-29 22:39:07 +13:00
Mike Dilger
82254bb125 storage: deallocate_person_list: first clear the list 2023-12-28 10:11:22 +13:00
Mike Dilger
db78e749c1 Merge remote-tracking branch 'remotes/bushmann/fix/support-pubkey-only-mode-on-lists' into unstable 2023-12-26 11:17:54 +13:00
Mike Dilger
0e6d7ff8bc Import person lists when not logged in, even though we have to ignore encrypted content 2023-12-26 11:11:42 +13:00
Bu5hm4nn
e5400a9b7c Pubkey-only mode: Support pulling contact list and rename "setup your identity" to the more clear "setup your private-key" 2023-12-22 11:27:59 -06:00
Mike Dilger
ffee452155 FIX: signer missing save public key along one path 2023-12-22 17:35:10 +13:00
Mike Dilger
242bcd01c1 FIXES to following people:
Following someone requires a complex series of actions which were not consistent:

1) Add them to a list in storage
2) Invalidate their notes in the UI (so they rerender showing the person as followed)
3) Add them to the relay picker
4) Refresh relay picker scores
5) Pick relays again
6) Start a temp subscription to fetch their relay list
7) When their relay list comes in, after processing it, repeat steps 3-5.

GLOBALS.people.follow() now handles this more uniformily, and other parts of the code
should call that.

process.rs() handles step 7.
2023-12-22 11:23:10 +13:00
Mike Dilger
94a04e4d98 After processing an event that changes person-relay information, refresh scores and pick relays 2023-12-22 11:08:11 +13:00
Mike Dilger
590cf7c614 FIX: signer saving of key-related changes made more consistent 2023-12-21 17:04:45 +13:00
Mike Dilger
0361854379 When initializing a new LMDB, apply some necessary data migrations 2023-12-21 16:49:43 +13:00
Mike Dilger
db45a619ac ui: startup login screen reworked 2023-12-21 10:10:41 +13:00
Mike Dilger
f295e3509f Make 'hide mutes entirely' true by default 2023-12-21 08:18:20 +13:00
Mike Dilger
582e77e757 storage: fix m23 desc 2023-12-20 16:28:06 +13:00
Mike Dilger
eb5c4ab69d storage: m23: recount lists 2023-12-20 16:10:49 +13:00
Mike Dilger
466473a438 Fixes to person list counting 2023-12-20 15:22:22 +13:00
Mike Dilger
8cb89ae9d6 Fix: publishing contact list 2023-12-19 18:33:57 +13:00
Mike Dilger
cc9e203f7d Revert "Only fetch mentions on our read relays"
This reverts commit 91490e5cbf.
2023-12-19 12:35:18 +13:00
Mike Dilger
2f4890a496 storage: migration 22: PersonListMetadata3 to include len; usage of new metadata.len 2023-12-18 11:09:14 +13:00
Mike Dilger
fc7f13e3a5 storage: migration fixes (m19 was stuck) 2023-12-15 18:05:18 +13:00
Mike Dilger
14ee1c468f storage: set_all_people_in_list_to_private 2023-12-15 10:31:58 +13:00
Mike Dilger
d2fd0c72bc fix merge in of person list: merge in title, force all private if list is private 2023-12-15 10:31:58 +13:00
Mike Dilger
65eb0be5f2 Honor PersonListMetadata.private when writing person list events 2023-12-15 10:31:58 +13:00
Mike Dilger
919df71128 fix a comment 2023-12-15 10:30:44 +13:00
Mike Dilger
909dc9f53a storage: trim now unused person_lists_metadata1 functions 2023-12-14 12:58:53 +13:00
Mike Dilger
1e76212c77 storage: Switch to person_lists_metadata2 2023-12-14 12:58:47 +13:00
Mike Dilger
2708bf3579 storage: migration 21: PersonListMetadata2 2023-12-14 12:56:36 +13:00
Mike Dilger
937276bc0f storage: PersonListMetadata2 defined 2023-12-14 12:54:56 +13:00
Mike Dilger
5d86331be8 fix: When publishing a FollowSet, include the 'title' tag 2023-12-14 09:05:07 +13:00
Mike Dilger
e39131c635 cargo fmt 2023-12-14 07:47:56 +13:00
Mike Dilger
fc7a9ecf6f Check for deletes via 'a' tag (entire parameterized group before created_at) 2023-12-14 07:47:14 +13:00
Mike Dilger
91490e5cbf Only fetch mentions on our read relays 2023-12-13 17:06:53 +13:00
Mike Dilger
4232fbb415 Downgrade a fetcher log 2023-12-11 08:33:20 +13:00
Mike Dilger
c33700c91b Cork metadata and subscribe to it only after previous subscriptions complete 2023-12-11 08:28:21 +13:00
Mike Dilger
cc0b138f0e minions: extend periodic resubscribe timer to 3 seconds 2023-12-11 08:11:58 +13:00
Mike Dilger
3246e96690 minions: Handle CLOSED better; cork and retry subscriptions as needed 2023-12-11 08:11:53 +13:00
Mike Dilger
9863c8c428 minions: remember if we are waiting for auth 2023-12-11 08:08:51 +13:00
Mike Dilger
75409ee132 minions: get_events() to use subscribe() like everyone else 2023-12-11 08:04:37 +13:00
Mike Dilger
27cdd60492 minions: split subscribe() into subscribe() and send_subscription() 2023-12-11 08:02:31 +13:00
Mike Dilger
386972d658 minions: downgrade most log error messages to warn 2023-12-11 07:59:20 +13:00
Mike Dilger
406dd37cb2 minion: move authenticate() to it's own function 2023-12-11 07:58:04 +13:00
Mike Dilger
2b96ddf27a Remove a temporary comment 2023-12-09 08:29:27 +13:00
Mike Dilger
b44b3fb6bc storage: migration 20 2023-12-09 08:21:03 +13:00
Mike Dilger
3faaa3ff73 cargo fmt && clippy 2023-12-08 16:04:20 +13:00
Mike Dilger
70492bb7d1 When a new list arrives, populate from it (only require manual if list already exists) 2023-12-08 15:48:21 +13:00
Mike Dilger
3e276803aa redo start_long_lived_subscriptions after the wizard completes so people don't need to restart 2023-12-08 13:40:14 +13:00
Mike Dilger
b6e19360b9 Fix for list titles imported from events being blank 2023-12-08 13:23:13 +13:00
Mike Dilger
2503d46bc8 Fix: write-transaction deadlock 2023-12-08 13:23:13 +13:00
Mike Dilger
7f6f05625f storage: migration19, switch to new person list metadata 2023-12-08 13:23:13 +13:00
Mike Dilger
58940679e9 storage: db_person_list_metadata database, with functions 2023-12-08 13:23:13 +13:00
Mike Dilger
345c4655cc define PersonListMetadata 2023-12-08 13:23:13 +13:00
Mike Dilger
6d30f925c5 FIX: Allocate person list BEFORE updating person list last event data (else it wont find new list) 2023-12-07 09:40:02 +13:00
Mike Dilger
24387d1f19 Preserve tags better when generating lists 2023-12-07 08:41:27 +13:00
Mike Dilger
ff83ec86e7 Do not try to decrypt empty contents; Also allow merging personlist w/o login if it has no contents 2023-12-05 12:11:01 +13:00
Mike Dilger
75236a734a Always give some sort of feedback if updating a person list fails 2023-12-05 11:29:40 +13:00
Mike Dilger
2490f55651 Fix: update person list last edit times 2023-12-05 11:20:18 +13:00
Mike Dilger
22aecfb8e8 Improve logic for when to fetch metadata 2023-12-05 10:39:27 +13:00
Mike Dilger
5ab6ddac53 Shorten the fetcher_metadata_looptime_ms default from 3 seconds to 1.75 seconds 2023-12-05 10:25:02 +13:00
Mike Dilger
1bc943cd6e When subscribing to EncryptedDirectMessaages, include a #p tag of the user (so relays can check it) 2023-12-04 14:45:59 +13:00
Mike Dilger
0afacb2ac4 Follow someone on a list; retire FollowNew page (but keep menus for follow/mute) 2023-12-04 11:45:32 +13:00
Mike Dilger
7b97349b00 Fix people needing relay lists to include all people lists, not just Followed 2023-12-04 11:10:49 +13:00
Mike Dilger
1da3257af8 Setting to login at startup; If not a migration, allows skipping. 2023-12-04 10:13:06 +13:00
Mike Dilger
784b4a796d Fix personlist overwrite/merge not working, which fixes date update 2023-12-04 09:45:20 +13:00
Mike Dilger
ef51ac6a3c Preserve unused mute tags from prior event when generating MuteList events 2023-12-04 09:28:10 +13:00
Mike Dilger
50032b9499 Storage::get_deletions() now handles multiple deletions of the same event 2023-12-03 14:22:14 +13:00
Mike Dilger
6eedc22aa7 FIX: lib DeletePersonList 2023-12-03 11:00:44 +13:00
Mike Dilger
0747d53429 comment 2023-12-03 11:00:44 +13:00
Mike Dilger
c4abf207dd Update enabled_event_kinds() 2023-12-03 11:00:44 +13:00
Mike Dilger
4d8ecd706c FIX: do not delete from relationships when deleting an event 2023-12-03 11:00:44 +13:00
Mike Dilger
ea8eb06070 UI screen to wait for data migration 2023-12-03 11:00:44 +13:00
Mike Dilger
cd36343f97 Subscribe to the user's FollowSets events on their outbox 2023-12-03 11:00:37 +13:00
Mike Dilger
358a04c612 lib: DeletePersonList (locally, and events at relays) 2023-12-03 09:42:20 +13:00
Mike Dilger
2b9462c748 process: ignore incoming events that are already deleted 2023-12-03 09:42:20 +13:00
Mike Dilger
bf9fe1ae97 fmt m18 2023-12-03 08:32:44 +13:00
Mike Dilger
2017aa45bd storage: migrate 18 - set flag to rebuild relationships
Also we modified m17 to just set the flag too, so it doesn't rebuild twice
2023-12-03 08:32:44 +13:00
Mike Dilger
1fb851e0c9 Only wait for login on startup if we need to rebuild relationships; then rebuild them 2023-12-03 08:32:44 +13:00
Mike Dilger
9c400a37ca Wait for login on startup 2023-12-03 08:32:44 +13:00
Mike Dilger
82eea24f51 storage: flag: rebuild_relationships_needed 2023-12-03 08:07:30 +13:00
Mike Dilger
96819fb21e storage: cleanup: def_flag!() macro 2023-12-03 08:07:30 +13:00
Mike Dilger
756ed3218e Storage::rebuild_relationships 2023-12-03 08:07:30 +13:00
Mike Dilger
f4bda3a777 Rework processing of relationships 2023-12-03 07:53:25 +13:00
Mike Dilger
ba2dce3cb2 Strip some old relationship database code (keep what is needed for migrations) 2023-12-03 07:53:25 +13:00
Mike Dilger
9f761b8a18 Switch code to use new relationship databases 2023-12-03 07:53:25 +13:00
Mike Dilger
8e42db1c1b storage: define two new database: relationships_by_id, relationships_by_addr 2023-12-03 07:53:25 +13:00
Mike Dilger
e939bf17ad Define RelationshipById, RelationshipByAddr 2023-12-03 07:53:25 +13:00
Mike Dilger
71e9e5d1f7 Simplify: if overlord loop exited, shutting down was already set 2023-12-03 07:51:06 +13:00
Mike Dilger
2a73e634fe Rename Signer::load_from_settings() 2023-12-03 07:51:06 +13:00
Mike Dilger
a0ffd4b573 Respec of get_people_in_list() 2023-12-03 07:51:06 +13:00
Mike Dilger
5cdaa91c8b comment 2023-12-02 13:31:49 +13:00
Mike Dilger
b7406dfba1 Version Relationship type 2023-12-02 13:31:37 +13:00
Mike Dilger
f0a7e61871 Clarifying comments about db_relationships 2023-12-02 13:31:25 +13:00
Mike Dilger
28fd479eab Update for nostr-types update 2023-12-02 13:27:14 +13:00
Mike Dilger
29a71c5c6f update nostr-types (EventKind) 2023-12-02 13:26:02 +13:00
Mike Dilger
eda3ad104c update for nostr-types: minimally at least log the closed message 2023-12-02 07:18:00 +13:00
Mike Dilger
4358c1ed4e update nostr-types (CLOSED message) 2023-12-02 07:17:56 +13:00
Mike Dilger
d130415a11 Default to rust-tls with native root certificates (esp so .onion sites can use TLS) 2023-12-02 07:17:49 +13:00
Mike Dilger
4905b0aeab Change how gossip-lib and gossip-bin interact: hide more details in gossip-lib 2023-11-30 11:10:08 +13:00
Mike Dilger
f55e208461 storage: when deleting events, delete as much associated data as we can 2023-11-30 11:10:08 +13:00
Mike Dilger
b6dad193d6 bugfix: deleting from event_seen_on_relay 2023-11-30 10:15:10 +13:00
Mike Dilger
12d5f27c24 Update nostr-types 2023-11-29 18:10:24 +13:00
Mike Dilger
7f19fa1349 Delete events to actually delete local events that are not feed-displayable (PITA to do otherwise) 2023-11-29 16:38:19 +13:00
Mike Dilger
8a6ac3e8aa Updates for nostr-types update 2023-11-29 16:27:20 +13:00
Mike Dilger
483fc45089 Update nostr-types (event.deletes() breaking change) 2023-11-29 16:25:58 +13:00
Mike Dilger
1fc1b81f8d Unify some person list handling 2023-11-29 16:25:21 +13:00
Mike Dilger
34d0efdcae minor var rename 2023-11-27 20:42:01 +13:00
Mike Dilger
c5b4400f76 PersonList::from_number() and PersonList::rename() 2023-11-27 20:42:01 +13:00
Mike Dilger
7587cb16a2 Fix: empty lists were showing everybody 2023-11-27 11:20:46 +13:00
Mike Dilger
200db849ad Turn feeds menu into an openable menu with all feeds 2023-11-27 10:58:19 +13:00
Mike Dilger
9ebd28bf22 cargo clippy 2023-11-27 09:35:47 +13:00
Mike Dilger
18404a5057 Do not add the user to every feed anymore 2023-11-27 09:34:03 +13:00
Mike Dilger
51a0412cf4 cargo update (bump heed to 0.20.0-alpha.6) 2023-11-23 16:20:49 +13:00
Mike Dilger
6f86208bba cargo fmt 2023-11-23 16:17:36 +13:00
Mike Dilger
6f6f191173 storage: migration 17 - reindex event relationships, including new reprel 2023-11-20 08:21:36 +13:00
Mike Dilger
360ef81c4a storage: when computing relationships of events, compute reprel too 2023-11-20 08:10:03 +13:00
Mike Dilger
b5b568a9f8 Add 'a' tag to replies to replaceable events 2023-11-20 08:09:54 +13:00
Mike Dilger
243c40f92c cargo fmt 2023-11-20 08:09:41 +13:00
Mike Dilger
f5e470824e Storage.get_replies() to include both 'e' and 'a' tag replies 2023-11-20 08:09:01 +13:00
Mike Dilger
351cfd6bc4 storage: Start of reprel database 2023-11-20 08:07:42 +13:00
Mike Dilger
e19840f814 fix m16 2023-11-18 17:05:29 +13:00
Mike Dilger
133c8204f7 Fix triggers (put outside of write trans) 2023-11-18 12:04:28 +13:00
Mike Dilger
c93cba0ec6 fix events1/events2 to use versioned Event 2023-11-18 11:56:20 +13:00
Mike Dilger
42e6a38403 Renumber migrations by their ending state number, not their starting state number 2023-11-18 11:45:28 +13:00
Mike Dilger
203e9aa08f storage: Rewrite ALL migrations, break into separate files, fix version issues 2023-11-18 11:39:54 +13:00
Mike Dilger
53a8bb4efe storage: migration 15: migrate to EventV2 2023-11-18 10:03:17 +13:00
Mike Dilger
17636851ed Remove pub visibility of storage migration functions 2023-11-18 08:47:31 +13:00
Mike Dilger
0634ce80c9 storage: define events2 database 2023-11-18 08:47:15 +13:00
Mike Dilger
e94f40952a Update for nostr-types changes 2023-11-18 08:43:04 +13:00
Mike Dilger
3b1223a106 [breaking] update nostr-types for TagV2, EventV2, and others 2023-11-18 08:42:41 +13:00
Mike Dilger
f22c74741a Update for nostr-types [some code is not yet right] 2023-11-18 07:47:19 +13:00
Mike Dilger
fa1e283199 [breaking] update nostr-types: EventReference and rework of replies() and mentions() 2023-11-18 07:35:44 +13:00
Mike Dilger
eb407b731c Merge remote-tracking branch 'bushmann/feature/tagging' into unstable 2023-11-17 10:35:56 +13:00
Mike Dilger
d51f4852e1 cargo fmt 2023-11-16 09:31:22 +13:00