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
William Casarin
fb2a69acd8
project: fix test fixtures
2023-07-14 13:07:52 -07:00
William Casarin
4830a6f3b7
Run actions on pushes to the ci branch
2023-07-14 09:34:29 -07:00
William Casarin
9879c78e41
build 5 because I broked something
2023-07-13 15:43:21 -07:00
William Casarin
05e73a3711
actually subscribe to likes. oops
2023-07-13 11:43:52 -07:00
William Casarin
731fdb108b
build: fix a few warnings and errors
2023-07-13 11:17:00 -07:00
William Casarin
2f3737c2b5
v1.6-4 changelog
2023-07-13 11:14:29 -07:00
William Casarin
e36747a81a
v1.6 (4)
2023-07-13 11:13:50 -07:00
William Casarin
505ce0bd39
Add the ability to follow hashtags
...
Changelog-Added: Add the ability to follow hashtags
2023-07-13 11:10:53 -07:00
William Casarin
31fa63debf
home: hide users and hashtags from home timeline when you unfollow
...
Add the ability to resubscribe to home filters so that it will be
updated when you follow and unfollow people
Changelog-Fixed: Hide users and hashtags from home timeline when you unfollow
2023-07-13 11:08:09 -07:00
William Casarin
122655bea3
home: separate home filters
...
we will want to resubscribe to these, so pull them out
2023-07-13 11:08:09 -07:00
William Casarin
9a714943fd
contacts: get followed hashtags function
...
todo: cache these
2023-07-13 11:08:09 -07:00
William Casarin
17df2972d9
ui: add follow hashtag ui on search view
2023-07-13 11:08:04 -07:00
William Casarin
bebaffd247
contacts: unify following logic
...
We are about to add hashtag following, so let's prepare handle_follow
for this. Generalize pubkey following to ReferenceId follows in the
handle_{follow,unfollow} functions.
We also split out the notification part into its own function.
2023-07-13 09:32:42 -07:00
William Casarin
0fae54a98d
components: make GradientButtonStyle padding configurable
...
There is too much padding on the follow hashtag button so we need to fix
that
2023-07-13 09:04:55 -07:00
William Casarin
90818c12e8
components: create PinkGradientView and use PinkGradient directly
...
Still need to do this for the other gradients as well but this is fine
for now.
2023-07-13 09:04:55 -07:00
William Casarin
1136808afa
contacts: generalize following to allow any reference
...
I noticed we are not using the PostBox when following new users. Not
good! This is probably why following users sometimes does not work.
Changelog-Fixed: Fixed a bug where following a user might not work due to poor connectivity
2023-07-13 09:04:55 -07:00
William Casarin
b7d139ffb3
refid: add .t helper
...
This is used for quickly creating hashtag refs
2023-07-13 09:04:55 -07:00
William Casarin
7fc270725f
test: add newline mention test
...
This is currently passing but it shouldn't be. This is because we are
not testing the build_post function directly. We will do this soon.
2023-07-13 07:32:27 -07:00
William Casarin
7b73a54de5
test: switch to test data file
...
We only added the file before, let's actually use it now
2023-07-13 07:32:27 -07:00
William Casarin
c0f9b0a8c0
views: allow embeddable views at top of timeline
...
This allows you to put stuff at the top of a timeline inside the scroll
view. We could also remove the scrollview from the timeline
eventually... but this works for now.
2023-07-13 06:56:23 -07:00
William Casarin
7123b225a1
search: make model an ObjservedObject
...
This should not be a state object because the data is passed in
elsewhere
2023-07-13 06:56:23 -07:00
William Casarin
b6f25a85f8
Fix nip05 badge icon
2023-07-13 06:56:23 -07:00
William Casarin
7046fe0d4f
ui: add DamusBackground helper
...
We will be using this in more places
2023-07-13 06:56:23 -07:00
William Casarin
201e9a427f
post: extract build_post from post view
...
I need to test this function because there is a bug with nostr: mentions
2023-07-13 06:56:23 -07:00
William Casarin
6481f96488
add bech32_pubkey_decode
...
I need this for a test
2023-07-13 06:56:23 -07:00
William Casarin
3845d32074
test: add test data file
...
We can organize test data in here
2023-07-13 06:56:23 -07:00
William Casarin
c1c33518ea
don't follow jb55 by default
...
This was funny initially but it confuses people.
Changelog-Removed: Remove following Damus Will by default
2023-07-12 14:42:23 -07:00
William Casarin
f2cf30a728
Scroll to top for longform events only
...
Fixes: ad6a1962 ("Scroll to top of event instead of bottom")
2023-07-12 08:23:53 -07:00
William Casarin
69922b1d77
Remove LoadMoreButton
...
Was an old unused thing
2023-07-12 08:21:44 -07:00
William Casarin
7343fcd399
Allow longform content to be long
...
Changelog-Changed: Remove note size restriction for longform events
2023-07-12 05:38:48 -07:00