William Casarin
709aab549b
nav: fix nav crashes and buggyness
...
just use the hashable for equality
Changelog-Fixed: Fix nav crashing and buggyness
2023-08-01 21:53:05 -07:00
William Casarin
15ab9f7135
scroll: allow any hashable target
2023-08-01 21:52:23 -07:00
William Casarin
d4aa8a5602
config: show git hash in version info
...
This will be useful for sanity checks and bisecting
2023-08-01 09:29:09 -07:00
William Casarin
a9b4cfd424
home: debounce last notified
...
Calling UserDefaults fast in a loop is not good
2023-07-31 05:38:19 -07:00
William Casarin
2b99f94d13
profiledb: disable database lookups for now
...
This is causing extremely bad lag in the UI
2023-07-31 05:38:19 -07:00
William Casarin
66e204eb91
notifications: don't do expensive id calculation
2023-07-31 05:38:19 -07:00
William Casarin
7040235605
refactor: add Pubkey, Privkey, NoteId string aliases
...
This is a non-behavioral change in preparation for the actual switchover
from Strings to Ids. The purpose of this kit is to reduce the size of
the switchover commit which is going to be very large.
2023-07-31 05:38:19 -07:00
William Casarin
f9d21ef901
test: rename test_event to test_note
2023-07-31 05:38:19 -07:00
William Casarin
a08d0a5a19
ndb: more id transition helpers
2023-07-31 04:08:07 -07:00
William Casarin
ff20cc4767
tests: enable code coverage
2023-07-31 03:25:50 -07:00
William Casarin
aacb336002
Update Translations
2023-07-30 11:57:18 -07:00
William Casarin
b40c595a7c
notify: switch over to new typesafe notifications
2023-07-30 11:02:44 -07:00
William Casarin
80063af19a
notify: add typesafe notifications
2023-07-30 11:02:44 -07:00
William Casarin
df3b94a1fc
notify: add typesafe notify class
2023-07-30 11:02:44 -07:00
William Casarin
06a66a3709
add some type aliases to make the ndb move more incremental
2023-07-30 10:52:02 -07:00
William Casarin
1463ce5e3a
profile: don't notify on notice
...
this is just a waste of cpu at this point and could cause main thread
blocking issues
2023-07-30 10:52:02 -07:00
William Casarin
593d0e2abe
ndb: sync up a few remaining NdbNote tag differences
2023-07-25 16:22:25 -07:00
William Casarin
2f8aa29e92
ndb: make NostrEvents immutable
...
Since we can't mutate NdbNotes, let's update the existing codebase to
generate and sign ids on NostrEvent constructions. This will allow us to
match NdbNote's constructor
2023-07-25 15:34:05 -07:00
William Casarin
e3c04465fc
ndb: move to uint32 for kind and created_at
2023-07-25 15:24:26 -07:00
William Casarin
54d40f7ffd
ndb: move hexchar into header
...
since it's used in a few places
2023-07-25 15:23:36 -07:00
William Casarin
2053033b25
ndb: make note equatble
...
We need this for the switchover
2023-07-24 13:09:27 -07:00
William Casarin
45801f3e6c
ndb: rename NostrEvent to NostrEventOld
...
This facilitates the switch to NdbNote by allowing us to switch back and
forth to fix things.
2023-07-24 13:08:55 -07:00
William Casarin
2d44f2744b
ndb: switch to computed property for tags
...
this will allows us to change less code on the switchover
2023-07-24 13:08:18 -07:00
William Casarin
04e408bfea
ndb: implement a few more event things
...
We're basically done. Time to try the switch-over
2023-07-24 12:41:12 -07:00
William Casarin
b3c87bdc07
test: remove unused var
2023-07-24 12:40:04 -07:00
William Casarin
b5dd90b36a
notes: generalize event_is_reply a bit
...
so that it works with NdbNote as well
2023-07-24 12:39:55 -07:00
William Casarin
6fa9149939
ndb: avoid double constructor on References
2023-07-24 11:05:18 -07:00
William Casarin
1e9e4a7f3a
ndb: implement eventref building from ndb notes
2023-07-24 10:55:34 -07:00
William Casarin
c8e236b6d5
ndb/test: add more test coverage on char iter
2023-07-23 12:21:36 -07:00
William Casarin
e8d0f1db8d
test: fix some ndb test warnings
2023-07-23 12:12:42 -07:00
William Casarin
99b5dc94cb
ndb: copy over perf improvements
2023-07-23 12:11:08 -07:00
William Casarin
e34351ca37
ndb: fix iterators, pack id tags, more tests
2023-07-23 11:55:36 -07:00
William Casarin
1a33d639ed
test: remove some unused perf tests
2023-07-23 11:54:58 -07:00
William Casarin
5c1043b4e5
ndb: add cchar constructors to AsciiCharacter
...
This will be used for the cchar iterator
2023-07-23 11:54:07 -07:00
William Casarin
23b5763a6b
git: ignore perf baselines
...
this is system-dependent
2023-07-23 11:50:02 -07:00
William Casarin
dd65209a20
Revert "ndb: remove TagIterators and just use sequences"
...
This reverts commit f0d07c3663 .
2023-07-23 10:56:12 -07:00
William Casarin
f0d07c3663
ndb: remove TagIterators and just use sequences
...
Still learning...
2023-07-22 21:12:53 -07:00
William Casarin
b3119fa41e
test: small test fix
2023-07-22 17:23:11 -07:00
William Casarin
7ec8da6c73
ndb: start implementing existing NostrEvent functionality
...
We eventually want to switch over to NdbNote instead of NostrEvent. To
facilitate this, the plan is to eventually make NostrEvent an alias of
NdbNote. For this to work, let's make sure the NostrEvent extensions are
implemented on NdbNote.
We will likely switch away from string properties as well, but for now
we will try to emulate as much as possible to make sure everything is
working first.
2023-07-22 17:19:47 -07:00
William Casarin
9e659c49b5
ndb/test: add a few more tests
2023-07-22 17:19:47 -07:00
William Casarin
c72666b352
ndb: add subscript and count for TagsSequence
...
These are helpful
2023-07-22 17:19:47 -07:00
William Casarin
1854e10486
mentions: add ndb mention parser
2023-07-22 17:19:47 -07:00
William Casarin
58e2fb40ef
iter: make safer by using NdbNote instead of unsafe pointers
...
If we have an owned note, we could lose track of the lifetime and then
crash. Let's make sure we always have an NdbNote instead
2023-07-22 17:19:47 -07:00
William Casarin
af7ea7024f
misc: don't immediately hex encode event commitment
...
keep it separate for now, since we're moving to more low level. We
probably won't even use this, but this is cleaner logicwise anyway.
2023-07-22 17:19:47 -07:00
William Casarin
0263c11a94
ndb: add content and owned_size
2023-07-22 17:19:47 -07:00
William Casarin
6d43754e71
ndb: add pubkey to NdbNote
2023-07-22 17:19:47 -07:00
William Casarin
4da23390f8
ndb: update lib
2023-07-22 17:19:47 -07:00
William Casarin
c74993366b
move copyndb to the right folder
2023-07-22 17:19:47 -07:00
William Casarin
ad0e1f28b7
test: fix build and tests
2023-07-21 15:26:03 -07:00
William Casarin
61051ee853
nostrdb: add initial swift integration
2023-07-21 15:02:01 -07:00
William Casarin
dc7826c4e5
c: add nostrdb c lib
2023-07-21 15:02:01 -07:00
William Casarin
4eee715bcd
c: add jsmn json parser
...
This is used by the nostrdb lib. Let's add it here.
This doesn't unescape things, so we'll still need to do that manually.
2023-07-21 14:56:24 -07:00
William Casarin
08bea16be0
c: add new cursor util
...
this is used by nostrdb as well. so add it here ahead of time.
2023-07-21 14:55:54 -07:00
William Casarin
8f04b12a90
c: add copy nostrdb devtool
2023-07-21 14:55:54 -07:00
William Casarin
9cfed9f3aa
c: update protoverse_cursor to jb55_cursor
...
Will be using this in the new db implementation
2023-07-21 14:39:21 -07:00
William Casarin
123ca3b802
test: add my contact list for as json parsing test data
2023-07-21 14:39:21 -07:00
William Casarin
5e7b1f4ff3
event: separate logic from data using extensions
...
I'm not a huge fan of this pattern but it's getting messy in here
2023-07-21 14:39:11 -07:00
William Casarin
11b9062865
test: fix some warnings
2023-07-19 10:04:25 -07:00
William Casarin
5c5b55bf67
v1.6 (7) changelog
2023-07-17 14:39:27 -07:00
William Casarin
dd6c082a8e
v1.6 (7)
2023-07-17 14:35:54 -07:00
William Casarin
2a4ee6c48c
zaps: don't spam lnurls when validate zaps
...
lnurls.lookup_or_fetch not fetched lnurl1dp68gurn8ghj7um9dej8xct5wvhxcmmv9uh8wetvdskkkmn0wahz7mrww4excup0df3r2dg3mj444
fetching static payreq lnurl1dp68gurn8ghj7um9dej8xct5wvhxcmmv9uh8wetvdskkkmn0wahz7mrww4excup0df3r2dg3mj444
lnurls.lookup_or_fetch already fetching lnurl1dp68gurn8ghj7um9dej8xct5wvhxcmmv9uh8wetvdskkkmn0wahz7mrww4excup0df3r2dg3mj444
lnurls.lookup_or_fetch already fetching lnurl1dp68gurn8ghj7um9dej8xct5wvhxcmmv9uh8wetvdskkkmn0wahz7mrww4excup0df3r2dg3mj444
lnurls.lookup_or_fetch already fetching lnurl1dp68gurn8ghj7um9dej8xct5wvhxcmmv9uh8wetvdskkkmn0wahz7mrww4excup0df3r2dg3mj444
lnurls.lookup_or_fetch already fetching lnurl1dp68gurn8ghj7um9dej8xct5wvhxcmmv9uh8wetvdskkkmn0wahz7mrww4excup0df3r2dg3mj444
Changelog-Fixed: Don't spam lnurls when validating zaps
2023-07-17 14:12:41 -07:00
William Casarin
fa520d48d3
zap: remove unnecessary main thread dispatches when zapping
2023-07-17 14:11:23 -07:00
William Casarin
160b293359
performance: don't spam nip05 validation on startup
...
Since we don't show these on events anymore, we don't need to spam nip05
validation. We can just check when we go to the profile page
Changelog-Fixed: Eliminate nostr address validation bandwidth on startup
2023-07-17 13:25:56 -07:00
William Casarin
7d17b9b476
nip05: hide nip05 username if it matches the username
2023-07-17 13:25:56 -07:00
William Casarin
d04f1c6867
login: allow user to login to deleted profile
...
If they every change their mind.
Changelog-Fixed: Allow user to login to deleted profile
2023-07-17 13:25:56 -07:00
William Casarin
5c87dd5bbb
nip05: remove clickable option
...
they're always clickable now
2023-07-17 13:25:56 -07:00
William Casarin
12febf9671
view: extract ProfileEditButton to its own file
...
profile view file is getting cray cray
2023-07-17 13:25:56 -07:00
William Casarin
4033ad66ba
test: fix crash in ci
2023-07-17 13:25:56 -07:00
William Casarin
2c0296cce3
project: bump deployment target
...
not sure how this is different than the previous setting that was
updated.
Cc: Bryan Montz <bryanmontz@me.com >
2023-07-17 13:25:56 -07:00
William Casarin
080aaf2d1b
nip05: show username and support _ usernames
...
Changelog-Added: Show nostr address username and support abbreviated _ usernames
2023-07-17 11:01:57 -07:00
William Casarin
0e55b08b6c
Revert removing nip05 badges on profiles
...
Changelog-Added: Re-add nip05 badges to profiles
This partially reverts commit 7ae7584135 .
2023-07-17 10:52:20 -07:00
William Casarin
ff70cb7ebf
posting: don't prepad user tag if its a newline
...
This fixes one more edgecase with the tag prepend logic.
2023-07-17 10:45:05 -07:00
William Casarin
fe82134a75
posting: switch to new tested composition logic
...
This switches to the new post composition logic in the post view. It
adds a space at the begging of a mention if it is needed.
We still need to make the state in these view more pure so we can test
more of the posting logic like cursor positions after posting, etc.
Changelog-Added: Add space when tagging users in posts if needed
Changelog-Fixed: Fix issue where typing cc@bob would produce brokenb ccnostr:bob mention
2023-07-17 10:25:09 -07:00
William Casarin
60a0c21272
test: add post composition tests
...
This adds post composition tests so that we can avoid composition bugs.
This still does not capture all of the dynamics of post composition,
because it ignores much of the mutable cursor position and related state
when editing posts.
We will need to make post editing more pure and less mutable in the
future to get test coverage on those.
2023-07-17 10:25:09 -07:00
William Casarin
8242ca27d2
profile: make constructor args optional
...
This makes it easier to create one-off profiles for testing. eg:
Profile(name: "jb55")
2023-07-17 10:25:09 -07:00
William Casarin
c7baa153af
posting: add some functions for appending mention tags
...
These are easy-to-test functions for appending user tags to attributed
strings. We will use these in the next couple of commits to replace the
existing buggy functionality.
2023-07-17 10:25:09 -07:00
William Casarin
ff654c4e11
test: add text attribute testing function
...
This will be used for testing attributed strings
2023-07-17 10:25:09 -07:00
William Casarin
deaf5f042a
search: refactor appendUserTag to make logic more clear
...
ocd mostly
2023-07-17 10:25:09 -07:00
William Casarin
4f56ff3dfb
longform: add padding under words count
...
Changelog-Added: Added padding under word count on longform account
2023-07-17 10:25:09 -07:00
William Casarin
fd59407171
test: fix old markdown tests
2023-07-17 10:25:09 -07:00
William Casarin
9b759247ee
v1.6 (6) changelog
2023-07-16 15:34:40 -07:00
William Casarin
cd7998b69d
v1.6 (6)
2023-07-16 15:33:00 -07:00
William Casarin
bd4c29604f
Fix broken markdown renderer
...
This switches away from the old markdown renderer to the new one at
https://github.com/damus-io/swift-markdown-ui
Changelog-Fixed: Fix broken markdown renderer
2023-07-16 15:27:24 -07:00
William Casarin
bf1175f22c
markdown: add some helpers for counting markdown words
...
Will use this in the new word counter
2023-07-16 15:27:06 -07:00
William Casarin
064888f78d
markdown: use a real-world longform preview
2023-07-16 15:26:31 -07:00
William Casarin
fc640b85ed
add swift-markdown-ui
...
We will be using this lib which is much better than the builtin
framework for markdown rendering. We use a modified version that removes
html tag rendering which looks horrible.
2023-07-16 15:25:09 -07:00
William Casarin
d5766253cf
build: fix unused variable warning
2023-07-16 15:24:06 -07:00
William Casarin
571ed39d52
Fixed issue where hashtags were leaking in DMs
...
Now we never add any tags to DMs, we only add the p tag of the user
you're talking to.
Changelog-Fixed: Fixed issue where hashtags were leaking in DMs
2023-07-16 15:24:06 -07:00
William Casarin
1135c19fea
test: add setting property tests
...
Some initial UserSettingsStore property tests
2023-07-16 13:05:18 -07:00
William Casarin
77331644cb
Fix issue with emojis next to hashtags and urls
...
Treat utf8 bytes next to hashtags and urls as boundary conditions
Changelog-Fixed: Fix issue with emojis next to hashtags and urls
2023-07-16 11:46:23 -07:00
William Casarin
8d14fdffb5
content: add utf8 char at url left boundary test
2023-07-16 11:46:23 -07:00
William Casarin
0c95071de7
project: rename parse_mentions to parse_note_content
...
This is more accurate
2023-07-16 11:46:23 -07:00
William Casarin
da78a217a3
docs: clarify the section on using -v2,v3, etc
...
Some patches are still not getting sent with version information. Let's
clarify that in the contribution docs.
Cc: dev@damus.io
2023-07-16 10:05:57 -07:00
William Casarin
f53b824122
docs: patch changelogs when submitting patches
...
This adds a section on creating patch changelogs when submitting
patches. It helps reviewers know what changed between many different
versions of a patch
2023-07-16 09:44:27 -07:00
William Casarin
16c86c1d1c
update bad commit mailmap
2023-07-14 22:25:19 -07:00
William Casarin
7ae7584135
ui: remove nip05 badge on events
...
Changelog-Changed: Remove nip05 on events
2023-07-14 17:31:28 -07:00
William Casarin
139be9eef2
Fix nostr: mention prefix bugs
...
The zero-width space was causing parsing issues. Not sure why we need
this so I just removed it.
Changelog-Fixed: Fix nostr:nostr:... bugs
2023-07-14 17:28:24 -07:00
William Casarin
72a060c7b3
nip05: rename nip05 to Nostr Address in search
...
Forgot this one
2023-07-14 17:05:01 -07:00
William Casarin
9db81fd6b8
views: refactor post_changed in PostView
...
Use some helper functions instead of the full switch
2023-07-14 15:54:17 -07:00
William Casarin
f08efd7e30
nip05: rename nip05 verification to nostr address
...
nip05 identifiers and nip05 verification is too confusing, and also
wrong. Let's use the "nostr address" terminology.
Suggested-by: Derek Ross
Suggested-by: Semisol <hi@semisol.dev >
Changelog-Changed: Rename NIP05 to "nostr address"
2023-07-14 13:26:10 -07:00