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
William Casarin
de63e96664
v1.6-3 changelog
...
A few longform fixes
2023-07-11 12:59:09 -07:00
William Casarin
7f9371d85f
v1.6 (3)
2023-07-11 12:58:15 -07:00
William Casarin
de4e8e5748
Only show longform preview in notifications
...
Changelog-Fixed: Show longform previews in notifications instead of the entire post
2023-07-11 12:56:30 -07:00
William Casarin
ad6a1962bb
Scroll to top of event instead of bottom
...
This is pretty important for longform events
Changelog-Changed: Start at top when reading longform events
2023-07-11 12:55:54 -07:00
William Casarin
828e417726
Allow reposting and quote reposting multiple times
...
Changelog-Changed: Allow reposting and quote reposting multiple times
2023-07-11 12:28:38 -07:00
William Casarin
d2374aa6ec
I broked dms. i fixed.
2023-07-11 12:28:38 -07:00
William Casarin
495859e07f
Fix various padding issues related to longform posts
...
1. Make a proper threaded EventShell variant
2. Fix padding everywhere
Changelog-Fixed: Fix padding on longform events
2023-07-11 12:17:59 -07:00
William Casarin
d96ea593a5
search: allow searching longform articles by hashtag
2023-07-11 12:17:22 -07:00
William Casarin
7514a741c0
docs: make note to replace old bech32 parser
2023-07-11 12:17:09 -07:00
William Casarin
dc7b0004bc
Hide action bar in longform quote reposts
...
Changelog-Fixed: Fix action bar appearing on quoted longform previews
2023-07-11 10:26:29 -07:00
William Casarin
8e33d5f6b9
v1.6-2 changelog
2023-07-11 09:22:39 -07:00
William Casarin
db2ec0a00a
Fix npub mention bugs, fix slowness when parsing large posts
...
Switch the post parser to use the same code as the content parser. This
was causing many issues, including performance issues.
Changelog-Fixed: Fix lag when creating large posts
Changelog-Fixed: Fix npub mentions failing to parse in some cases
Changelog-Added: Add r tag when mentioning a url
Changelog-Removed: Remove old @ and & hex key mentions
2023-07-11 09:15:13 -07:00
William Casarin
031c7823ae
refactor: move hashtag tests to their own file
2023-07-11 07:21:16 -07:00
William Casarin
aae97c5cb7
git: add .mailmap file
...
This ensures that author emails are correct when using various git tools
2023-07-11 06:39:05 -07:00
William Casarin
45d9121ed7
fix project issues
2023-07-10 20:56:52 -07:00
William Casarin
e299389866
Add initial longform note support
...
Changelog-Added: Add initial longform note support
2023-07-10 18:29:18 -07:00
William Casarin
374610a21a
artifacts: allow unseparated note artifacts
...
This is needed for longform events. Right now we treat unseparated note
artifacts as a list of blocks, but we will likely need to render these
blocks into lists of attributed texts with image blocks inbetween.
2023-07-10 18:24:43 -07:00
William Casarin
4d995fd04c
Longform Notes
2023-07-10 17:39:13 -07:00
William Casarin
518886912c
refactor: carve out TextEvent body into EventShell
...
We'll need this for other event types
2023-07-10 17:39:13 -07:00
William Casarin
ab5eea330a
options: add no_mentions to event view options
...
We don't need mentions in longform previews so we'll need this
2023-07-10 17:39:13 -07:00
William Casarin
41de715067
query: add longform kind, add to home filter
2023-07-10 17:39:13 -07:00
William Casarin
6ca9bda01e
notes: count words in notes during artifact parsing
2023-07-10 17:39:13 -07:00
William Casarin
fe077fa5c2
reposts: don't always show text events in reposts
...
This will allow longform reposts to work properly
Changelog-Fixed: Don't always show text events in reposts
2023-07-10 17:39:13 -07:00
William Casarin
cb2380e218
docs: add git-contacts example
...
git-contacts is a great way to cc people who have touched the same hunk
of code before.
Signed-off-by: William Casarin <jb55@jb55.com >
2023-07-10 17:38:54 -07:00
William Casarin
e316d5d635
docs: move security.md to docs subdir
2023-07-10 16:37:45 -07:00
William Casarin
37a5abc9e3
gitignore: add tags
2023-07-10 16:35:43 -07:00
William Casarin
cf83ac1fe8
docs: add patch submission guidelines
2023-07-10 16:22:09 -07:00
William Casarin
acb4e6d17e
wasm: fix intptr warning
2023-07-10 11:14:03 -07:00
William Casarin
e957c3b703
wasm: fix clz64 warning
2023-07-10 11:14:03 -07:00
William Casarin
82fc4ff15e
wasm: comment out some unnused code for now
...
fixes some warnings
2023-07-10 11:14:03 -07:00
William Casarin
15d633a42f
project: update to recommend settings
2023-07-10 11:08:20 -07:00
William Casarin
7158f07bb1
Translate all the things
2023-07-10 08:20:28 -07:00
William Casarin
83ef50586a
zaps/refactor: use guard instead of if block
...
not a fan of unncessary nesting
2023-07-09 07:44:33 -07:00
William Casarin
87992f4bb9
Add RelayLog in developer mode
...
Changelog-Added: Add relay log in developer mode
2023-07-09 07:41:45 -07:00
William Casarin
13f98659a4
Prevent forged profile zap attacks
...
The fake note zap attack made me realize that there is a way to do fake
profile zaps using a similar technique. Since damus only checks the
first ptag if it is a profile zap, this means you could include multiple
ptags, the first one being the fake profile with the fake zapper, and
the second p tag as the real target.
This would allow a fake zapper to create a fake a zap, while the zap
notification would still appear for the second ptag because damus
listens for zap events via #p, and that would match the second ptag.
To fix this, ensure that zaps only have at most 1 ptag and 0 or 1 etag.
my CLN zapper checks this but if we don't check this here as well then
we run into fake zap issues.
Changelog-Fixed: Fix potential fake profile zap attacks
Cc: Tony Giorgio <tonygiorgio@protonmail.com >
Cc: benthecarman <benthecarman@live.com >
Cc: Vitor Pamplona <vitor@vitorpamplona.com >
2023-07-08 22:10:34 -07:00
William Casarin
f5ba909784
zaps: move pubkey check into standalone function
2023-07-08 22:09:30 -07:00
William Casarin
6031fe0847
Fix fake note zaps with forged p-tags
...
This fixes a zap issue where someone could send a fake zap with a zapper
that doesn't match the user's nostrPubkey zapper. This is possible
because damus looks up the zapper via the ptag on note zaps.
Fix this by first looking up the cached event's ptag instead. This
prevents zappers from trying to trick Damus into picking the wrong
zapper.
Fixes : #1357
Changelog-Fixed: Fix issue where malicious zappers can send fake zaps to another user's posts
Reported-by: benthecarman <benthecarman@live.com >
Cc: Tony Giorgio <tonygiorgio@protonmail.com >
2023-07-08 21:22:58 -07:00
William Casarin
1be2a9e1b1
ui: remove invalid zap text
2023-07-08 20:47:11 -07:00
William Casarin
0c736a18a9
docs: annotate might be causing issues for some people
...
suhail was having trouble when this option was enabled. let's remove it
just in case.
2023-07-07 09:25:33 -07:00
William Casarin
6dfda93ff9
Fix Invalid Zap bug in reposts
...
Changelog-Fixed: Fix Invalid Zap bug in reposts
2023-07-04 13:48:49 -07:00
William Casarin
ea50f9214a
Switch to navigation stack in BuilderEventView
2023-07-04 13:48:49 -07:00
William Casarin
6c8cf8421c
zaps: make zap setting private
2023-07-04 13:47:44 -07:00
William Casarin
19217f47a4
v1.6 changelog
2023-07-04 12:21:12 -07:00
William Casarin
3451e7d88f
v1.6
2023-07-04 12:18:33 -07:00
William Casarin
b5ea1e011e
Revert "profile: make profile loading more lightweight for now"
...
Changelog-Fixed: Load more content on profile view
2023-07-04 11:51:07 -07:00
William Casarin
a04a401292
nscript: load script view
...
This allows you to open and run scripts for testing purposes, but only
from external links such as nostr:nscript...
2023-07-04 11:48:27 -07:00
William Casarin
3d0448a929
smaller nostrscript
2023-07-03 17:10:57 -07:00
William Casarin
30e33a01c1
nostrscript: add a helper function
2023-07-03 16:59:50 -07:00
William Casarin
a6cbf50def
settings: record bool option keys
...
so that NostrScripts know which bool settings can be set
2023-07-03 16:28:25 -07:00
William Casarin
97f10e865f
NostrScript
...
NostrScript is a WebAssembly implementation that interacts with Damus.
It enables dynamic scripting that can be used to power custom list views,
enabling pluggable algorithms.
The web has JavaScript, Damus has NostrScript. NostrScripts can be
written in any language that compiles to WASM.
This commit adds a WASM interpreter I've written as a mostly-single C
file for portability and embeddability. In the future we could
JIT-compile these for optimal performance if NostrScripts get large and
complicated. For now an interpreter is simple enough for algorithm list
view plugins.
Changelog-Added: Add initial NostrScript implementation
Signed-off-by: William Casarin <jb55@jb55.com >
2023-07-03 14:31:38 -07:00
William Casarin
7d49d3d9f1
refactor: make guard statement a bit more readible
...
It's a bit confusing to guard on a negative boolean expression
2023-07-03 12:48:25 -07:00
William Casarin
6a9b3cad20
Merge remote-tracking branch 'github/translations'
2023-07-02 13:34:04 -07:00
William Casarin
e5bd52b1f6
New paid email patch policy
2023-07-02 13:15:24 -07:00
William Casarin
f702733654
nav: remove environmentObjects
...
environment objects are implicit arguments that cannot be checked by the
compiler. They are a common source of crashes. Use a main
NavigationCoordinator in DamusState for the core app, and pass in other
coordinators in the account setup view for the parts of the app that
don't have a DamusState.
2023-06-30 09:59:58 -07:00
William Casarin
5bac6405b9
validation: make sure to run on a detached task
...
so we don't do sig validation on the main thread accidentally
2023-06-30 06:42:56 -07:00
William Casarin
3e3b689647
readme: include new mailing lists
2023-06-29 07:45:50 -07:00
William Casarin
62f052daa5
nozaps: fix zap button in freedom edition
2023-06-28 21:16:56 +02:00
William Casarin
abcff3b928
profile: allow post button on every profile and prefill user tag
...
Changelog-Added: Add post button to profile pages
2023-06-28 17:40:27 +02:00
William Casarin
c8f18958a2
refactor: cleanup processFocusedWordForMention
2023-06-28 17:09:08 +02:00
William Casarin
3b07a207c4
post: extract createUserTag so it can be re-used
2023-06-28 16:26:59 +02:00
William Casarin
d9a06e69ae
misc: remove some dead code
2023-06-28 16:25:04 +02:00
William Casarin
82c53e43e5
v1.5 (8)
2023-06-27 06:30:50 +02:00
William Casarin
3e274a820a
nozaps: restore zap button with zap info, just make it not clickable
2023-06-27 06:04:36 +02:00
William Casarin
1a0282fe21
Revert "nozaps: don't pull thread zaps in nozaps mode"
...
This reverts commit 6003a3c6f8 .
2023-06-27 05:59:59 +02:00