This switches to the profiling crate for compatible
profiling between rust libraries.
To enable:
$ cargo build --release --features puffin
Feel free to experiment with other profiling backends
as well! Would be great to get tracy working.
- Upgrade `nostrdb` to v0.6.1 with relay metadata support
- Switch to `nostr::RelayUrl` for typed relay URLs
- Use `process_event_with()` to pass relay info during ingestion
- Update `Relay`, `RelayPool`, and unknown ID logic accordingly
This enables richer indexing with relay provenance in events.
Signed-off-by: William Casarin <jb55@jb55.com>
expose a new virtual_keyboard_height function under notedeck::platform::android
which gets the current height of the virtual keyboard. We can use this
to tranlate the view out of the way
Signed-off-by: William Casarin <jb55@jb55.com>
This reverts commit cec49c83bd.
Revert "update NoteContentsDriller to NoteContext"
This reverts commit 65bd6a65f9.
Revert "introduce the driller"
This reverts commit 95d618e7fe.
kernelkind (20):
use bincode
update ehttp to 0.5.0
introduce UrlMimes
use mime_guess
add SupportedMimeType
rename ImageCache -> MediaCache
Use TexturedImage in MediaCache
render MediaCache method
move MediaCache rendering to render_media_cache call
support multiple media cache files
introduce Images
render Images method
migrate to using Images instead of MediaCache directly
URL mime hosted completeness
handle UrlCache io
introduce gif animation
handle gif state
integrate gifs
use SupportedMimeType for media_upload
render gif in PostView
- Introduced a new "no_media" boolean in ColumnsArgs to capture the
--no-media flag.
- Updated NoteOptions to include a setting for hiding media, configured
from parsed arguments.
- Refactored Damus to consolidate note options (textmode, scramble, and
no-media) into a single NoteOptions field.
- Modified navigation UI rendering to pass the unified note_options.
This change allows users to disable media display via the --no-media flag.
Signed-off-by: William Casarin <jb55@jb55.com>
This commit introduces a new scramble option to help reduce distractions
during development by scrambling text using rot13. When enabled via the
new `--scramble` flag, text displayed in various views is transformed,
making it easier to focus on layout and behavior without reading the
actual content.
App & Args Updates
- Added a `scramble: bool` field to the main application state (in `app.rs`).
- Extended argument parsing (in `args.rs`) to recognize the `--scramble` flag.
NoteOptions Enhancement
- Introduced a new bit flag `scramble_text` in `NoteOptions` with
corresponding setter/getter methods.
UI Adjustments
- Propagated the scramble flag through note rendering functions across
navigation, timeline, and note view modules.
- Updated several UI components (e.g., in `nav.rs`, `route.rs`, and
`contents.rs`) to accept and apply the new note options.
Rot13 Implementation
- Implemented a helper function (`rot13`) to scramble text
conditionally when the scramble option is enabled.
This feature is intended for development builds only, offering a way to
obscure text content during UI tweaks and testing.
Signed-off-by: William Casarin <jb55@jb55.com>
Ken Sedgwick (4):
drive-by compiler warning fixes
improve debug logging, comments, and variable names for clarity
explicitly activate and deactivate account relay list subs
explicitly activate and deactivate account muted list subs
This is a fairly large rewrite which unifies our threads, timelines and
profiles. Now all timelines have a MultiSubscriber, and can be added
and removed to columns just like Threads and Profiles.
Signed-off-by: William Casarin <jb55@jb55.com>
This reduces the number of things we have to update in our token parser
and serializer. For payloads, we we have to handle the payload cases
different, but we now have a structure that can deal with that
efficiently.
Signed-off-by: William Casarin <jb55@jb55.com>
In an attempt to make our deck serializer more localized,
comprehensible, and less error-prone, we introduce a new parser
combinator based around string tokens.
This replaces the Selection-based intermediary types so that we have a
more direct serialization style.
This function creates filters for the base our first algo in Damus:
Called "last N note per pubkey". I don't have a better name for it.
This function generates a query in the form:
[
{"authors": ["author_a"], "limit": 1, "kinds": [1]
, {"authors": ["author_b"], "limit": 1, "kinds": [1]
, {"authors": ["author_c"], "limit": 1, "kinds": [1]
, {"authors": ["author_c"], "limit": 1, "kinds": [1]
...
]
Due to an unfortunate restriction currently in nostrdb and strfry, we
can only do about 16 to 20 of these at any given time. I have made
this limit configurable in strfry[1]. I just need to do the same in
nostrdb now.
[1] https://github.com/hoytech/strfry/pull/133
Changelog-Added: Add last_n_per_pubkey_from_tags algo function
From guythatsits:
> Not sure if this is helpful but the reason it isn't installing in any
of the debian based is the libc6 dependency(requires 2.39, these are
both on 2.35). Looks like popos alpha apparently includes the updated
library. Had the same issue on just a barebone debian system as well.
By default, GitHub Actions uses the latest Ubuntu runner (e.g.,
ubuntu-latest), which has glibc 2.39+. Instead, we can explicitly use
ubuntu-20.04, which has glibc 2.31.
Reported-by: guythatsits
Fixes: https://github.com/damus-io/notedeck/issues/706
Changelog-Fixed: Fixed issue running binary on older debian distros
Signed-off-by: William Casarin <jb55@jb55.com>
This reduces code duplication, and makes the border a bit cleaner
so that it blends into the panel color
Signed-off-by: William Casarin <jb55@jb55.com>
This actually has no behavioral change, but is more
logically correct if we ever end up updating these functions
Signed-off-by: William Casarin <jb55@jb55.com>