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
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>
Thanks again to kernel and ken, as well as some new contributors:
kieran, daniel saxton for our alpha 2 release!
Added
=====
- Clicking a mention now opens profile page (William Casarin)
- Note previews when hovering reply descriptions (William Casarin)
- Media uploads (kernelkind)
- Profile editing (kernelkind)
- Add hashtags to posts (Daniel Saxton)
- Enhanced command-line interface for user interactions (Ken Sedgwick)
- Various Android updates and compatibility improvements (Ken Sedgwick, William Casarin)
- Debug features for user relay-list and mute list synchronization (Ken Sedgwick)
Changed
=======
- Add confirmation when deleting columns (kernelkind)
- Enhance Android build and performance (Ken Sedgwick)
- Image cache handling using sha256 hash (kieran)
- Introduction of decks_cache and improvements (kernelkind)
- Migrated to egui v0.29.1 (William Casarin)
- Only show column delete button when not navigating (William Casarin)
- Show profile pictures in column headers (William Casarin)
- Show usernames in user columns (William Casarin)
- Switch to only notes & replies on some tabs (William Casarin)
- Tombstone muted notes (Ken)
- Pointer interactions enhancements in UI (William Casarin)
- Persistent theme setup across sessions (kernelkind)
- Increased ping intervals for network performance (William Casarin)
- Nostrdb update for async support (Ken Sedgwick)
Fixed
=====
- Fix GIT_COMMIT_HASH compilation issue (William Casarin)
- Fix avatar alignment in profile previews (William Casarin)
- Fix broken quote repost hitbox (William Casarin)
- Fix crash when navigating in debug mode (William Casarin)
- Fix long delays when reconnecting (William Casarin)
- Fix repost button size (William Casarin)
- Fixed since kind filters (kernelkind)
- Clippy warnings resolved (Dimitris Apostolou)
Refactoring & Improvements
==========================
- Numerous internal structural improvements and modularization (William Casarin, Ken Sedgwick)
Signed-off-by: William Casarin <jb55@jb55.com>
People are spamming hashtags with AI CP. Let's disable this until we
at least have image blurring.
Alternatively we could only show the link for people you don't follow.
Signed-off-by: William Casarin <jb55@jb55.com>
kernelkind (8):
upload media button
get file binary
import base64
notedeck_columns: use sha2 & base64
use rfd for desktop file selection
add utils for uploading media
draft fields for media upload feat
ui: user can upload images
- Use the current selected account only to determine desired
relays. Previously the desired relay list was determined from the
union of all accounts.
- Update the relay configuration immediately when the user switches accounts.
- Delete relays from the account (instead of the relay pool
directly). This results in the relay being removed in the pool as
well, but is persisted correctly.