Commit Graph

52 Commits

Author SHA1 Message Date
William Casarin
bc8a8d4a74 perf: coordinate unknown id lookups
This is a huge improvement over what it was before. Now all unknown id
lookups are debounced and happen through a central coordinator. This
ensures there is no duplication between timelines.

Fixes: https://github.com/damus-io/notedeck/issues/279
Signed-off-by: William Casarin <jb55@jb55.com>
2024-09-02 17:38:18 -07:00
William Casarin
ad244d48c0 fetch contact lists
If we don't have a contact list, make sure to fetch one

Signed-off-by: William Casarin <jb55@jb55.com>
2024-09-02 16:22:29 -07:00
William Casarin
71259a8dd5 timeline: initial contact queries
This implements initial local contact queries. For testing you can
create contact list columns via:

Examples
--------

Make a contacts column from a specific npub:

	$ notedeck --column contacts:npub...

Use the current user's contacts:

	$ notedeck --column contacts --pub npub...

We also introduce a new ColumnKind enum which is used to describe the
column type.

Signed-off-by: William Casarin <jb55@jb55.com>
2024-08-30 08:59:48 -07:00
William Casarin
21fd57f2c5 nostrdb: bump version
Signed-off-by: William Casarin <jb55@jb55.com>
2024-08-30 07:17:56 -07:00
William Casarin
4ff30304e1 fix android build
Signed-off-by: William Casarin <jb55@jb55.com>
2024-08-21 07:48:56 +03:00
William Casarin
1f149aec3b fix clippy warnings
Signed-off-by: William Casarin <jb55@jb55.com>
2024-08-19 21:26:20 -07:00
William Casarin
973a7c780f thread: remote subscriptions working
Signed-off-by: William Casarin <jb55@jb55.com>
2024-08-19 21:22:58 -07:00
William Casarin
9328ef2dff remove duplicate filter types
only use nostrdb::Filter

Signed-off-by: William Casarin <jb55@jb55.com>
2024-08-19 21:12:32 -07:00
William Casarin
d43c46aaf4 nostr: fix parsing of OK events
Signed-off-by: William Casarin <jb55@jb55.com>
2024-07-31 13:51:24 -07:00
William Casarin
a36ce31fc7 pool: increase default reconnect time to 5 seconds
Signed-off-by: William Casarin <jb55@jb55.com>
2024-07-10 16:00:38 -07:00
William Casarin
4c490e1436 Merge 'impl linux credential storage' #115
From PR description:

See the test_basic() test in linux_key_storage.rs. I ran it successfully
on my MacOS machine and a linux VM. The BasicFileStorage impl just
stores each Keypair as a SerializableKeypair json object with the file
name as the public key hex in ~/.notedeck_credentials. The
SerializableKeypair uses the nip49 EncryptedSecretKey, but we just use
an empty string as the password for now.

The BasicFileStorage impl works in MacOS, but it only conditionally
compiles to linux for simplicity.

pub enum KeyStorageResponse<R> {
    Waiting,
    ReceivedResult(Result<R, KeyStorageError>),
}

This is used as a response so that it's possible for the storage impl to
be async, since secret_service is async. It seems that secret_service
would allow for a more robust linux key storage impl so I went ahead and
made the API compatible with an async impl.

* kernelkind (1):
      impl linux credential storage
2024-07-01 10:49:15 -07:00
William Casarin
a04df88ff6 initial note posting
Signed-off-by: William Casarin <jb55@jb55.com>
2024-07-01 06:49:12 -07:00
William Casarin
307b8af8f1 enostr: rename Event to Note
we will likely replace Note with nostrdb::Note in the future,
this just helps with that transition

Signed-off-by: William Casarin <jb55@jb55.com>
2024-07-01 06:38:08 -07:00
kernelkind
2a47a66bbb impl linux credential storage
Signed-off-by: kernelkind <kernelkind@gmail.com>
2024-06-28 15:27:46 -04:00
William Casarin
1458498131 initial post box view
Signed-off-by: William Casarin <jb55@jb55.com>
2024-06-17 16:21:46 -07:00
William Casarin
0dd33c90e7 initial navigation 2024-06-11 17:50:09 -07:00
William Casarin
ab08e678a9 filter: add default limit
This is just an opinionated default limit if we ever need it (we will)

Signed-off-by: William Casarin <jb55@jb55.com>
2024-05-31 09:24:52 +02:00
William Casarin
31b2b5c950 initial refactor in preparation for routing
Signed-off-by: William Casarin <jb55@jb55.com>
2024-05-28 15:09:01 -07:00
William Casarin
135a5c99ae Revert "deps: using tracing instead of log"
This reverts commit af92e326f6.
2024-05-23 16:10:07 -07:00
William Casarin
af92e326f6 deps: using tracing instead of log
also update some other deps

Signed-off-by: William Casarin <jb55@jb55.com>
2024-05-23 11:16:43 -07:00
kernelkind
95f8623c41 migrate AccountManagementView to enostr Keypair
Signed-off-by: kernelkind <kernelkind@gmail.com>
Signed-off-by: William Casarin <jb55@jb55.com>
2024-05-14 14:39:05 -07:00
kernelkind
e04c8821d5 Add keypair & update pubkey
Keypair & FullKeypair match structs in damus ios

Signed-off-by: kernelkind <kernelkind@gmail.com>
Signed-off-by: William Casarin <jb55@jb55.com>
2024-05-08 14:14:37 -07:00
kernelkind
b8177459ab use nostr in enostr
Signed-off-by: kernelkind <kernelkind@gmail.com>
Signed-off-by: William Casarin <jb55@jb55.com>
2024-05-08 14:14:37 -07:00
William Casarin
f4d496012b log relay subscriptions
Signed-off-by: William Casarin <jb55@jb55.com>
2024-04-29 14:06:20 -07:00
kernelkind
5ee415c1b4 enostr: expose RelayStatus
Signed-off-by: kernelkind <kernelkind@gmail.com>
Signed-off-by: William Casarin <jb55@jb55.com>
2024-04-19 14:13:11 -07:00
William Casarin
d4ccf7435f get all missing ids from all timelines
before we were only fetching missing profiles from the first timeline,
update the logic to pull both missing authors and ids from all timelines

Signed-off-by: William Casarin <jb55@jb55.com>
2024-04-12 18:52:32 -07:00
William Casarin
6222a7db63 Fix all warnings
Signed-off-by: William Casarin <jb55@jb55.com>
2024-04-01 10:19:47 -07:00
William Casarin
2936012308 filters: fix hashtag filters
We might need to move to something a bit more generic that works
for all generic tag filters.
2024-03-22 10:23:41 +01:00
William Casarin
4ea82cd332 debug: fix annoying decode error message
Signed-off-by: William Casarin <jb55@jb55.com>
2024-02-16 11:39:22 -08:00
William Casarin
7dcfde7109 enable passing queries via argument
Signed-off-by: William Casarin <jb55@jb55.com>
2024-02-12 01:06:59 -08:00
William Casarin
3e96f815b1 apply cargo warning suggested fixes
Signed-off-by: William Casarin <jb55@jb55.com>
2024-02-10 16:19:31 -08:00
William Casarin
9feb6465c0 enostr: remove nostr crate for now
Signed-off-by: William Casarin <jb55@jb55.com>
2024-02-10 16:14:45 -08:00
William Casarin
f323fe7379 LOCAL RELAY MODEL IS WORKING
Signed-off-by: William Casarin <jb55@jb55.com>
2024-02-09 16:59:49 -08:00
William Casarin
74ce87049d local nostrdb subscriptions working
Signed-off-by: William Casarin <jb55@jb55.com>
2024-02-07 15:18:23 -08:00
William Casarin
9a9bb13e08 enostr: use data instead of strings in Pubkey and EventId
Signed-off-by: William Casarin <jb55@jb55.com>
2024-02-07 12:02:13 -08:00
William Casarin
6c2c352e6f enostr: update deps
Signed-off-by: William Casarin <jb55@jb55.com>
2024-02-07 12:01:58 -08:00
William Casarin
f46797ea10 net: geometric backoff connection retries on disconnects 2023-12-24 14:24:22 -08:00
William Casarin
09cd8ff379 pool: implement keepalive pinging
To prevent us from disconnecting, introduce keepalive pinging. In the
event loop we check if any relays need a refresh ping.
2023-12-24 12:34:17 -08:00
William Casarin
dd7093288b relay: add ping method
we will use this to ping relays
2023-12-24 12:34:17 -08:00
William Casarin
2526f8001c make sure it's still working on android 2023-07-09 12:17:54 -07:00
William Casarin
ad8bc9e6c3 enostr: add initial note code 2023-07-06 19:38:49 -07:00
William Casarin
684bc5f913 eventid: asref implementation 2023-07-06 19:36:12 -07:00
William Casarin
80c06e4ec4 pool: fix some warnings when targeting wasm 2023-07-06 19:35:45 -07:00
William Casarin
ba973cbe1b bump deps in prep for profiling changes 2023-07-06 19:35:21 -07:00
William Casarin
672f95749a Revert "json: deserialize note ids into bytes"
This reverts commit 1ba597fc0a.
2023-07-06 17:50:20 -07:00
William Casarin
1ba597fc0a json: deserialize note ids into bytes 2023-07-06 17:09:39 -07:00
William Casarin
44fd75167e add From<&str> for Pubkey 2023-06-28 21:30:02 +02:00
William Casarin
48af3dde9d many improvements 2022-12-12 14:33:37 -08:00
William Casarin
e629402d11 initial real data rendering working 2022-12-11 18:56:41 -08:00
William Casarin
98adb82e56 receiving initial messages! 2022-12-11 18:34:43 -08:00