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
William Casarin
b2b687fb79
Revert "nozaps: hide zap total"
...
This reverts commit 57789de5cd .
2023-06-27 05:59:33 +02:00
William Casarin
94448a10bd
Revert "nozaps: hide zap details on notes for now"
...
This reverts commit b0d6d33573 .
2023-06-27 05:58:42 +02:00
William Casarin
66db4c5215
Revert "nozaps: don't show note zaps in notifications"
...
This reverts commit c5b0e539d8 .
2023-06-27 05:58:39 +02:00
William Casarin
1e2326cccf
v1.5 (7)
...
rip zap button
2023-06-27 05:35:53 +02:00
William Casarin
959f208e36
profile: make profile loading more lightweight for now
2023-06-27 05:31:22 +02:00
William Casarin
7d80985b06
nozaps: remove zap button on posts
2023-06-27 05:31:14 +02:00
William Casarin
40a51edafe
readme: patchstr bounties
2023-06-26 12:03:05 +02:00
William Casarin
6003a3c6f8
nozaps: don't pull thread zaps in nozaps mode
2023-06-26 11:20:11 +02:00
William Casarin
de84456a57
mediaurl: fix is_img returning true for videos
...
This makes the image preloader try to download videos... not good.
2023-06-25 09:38:46 +02:00
William Casarin
b70bf1f647
v1.5-6
2023-06-25 09:38:46 +02:00
William Casarin
3db77a16a0
Fix timeline from moving when you're scrolling
2023-06-24 17:39:24 +02:00
William Casarin
2256e2e625
v1.5-5 changelog
2023-06-24 08:39:51 +02:00
William Casarin
a641f972ff
v1.5-5
2023-06-24 08:38:02 +02:00
William Casarin
c5846008f2
fix weird quirk with universe toolbar filter button
2023-06-24 08:27:12 +02:00
William Casarin
62bf767be5
nozaps: fix some tests
2023-06-23 20:46:27 +02:00
William Casarin
c00746758e
nozaps: disable donation star unless you're on freedom edition
2023-06-23 20:46:27 +02:00
William Casarin
a89f90d7ee
nozaps: hide SupportDamus on appstore builds
2023-06-23 20:46:27 +02:00
William Casarin
07d0818ee8
nozaps: disable zap delay on appstore since we don't have 1-tap anymore
2023-06-23 20:46:27 +02:00
William Casarin
0ce7414488
nozaps: disable donation zaps on appstore
2023-06-23 20:46:27 +02:00
William Casarin
f090596067
nozaps: switch to global sheet when zapping
...
This fixes many popping bugs
Changelog-Fixed: Fix zap sheet popping
2023-06-23 20:46:27 +02:00
William Casarin
61b3ad2990
nozaps: update zap sheet style to make it clear its a user zap
2023-06-23 20:46:27 +02:00
William Casarin
8b24befaf7
nozaps: don't include zaps in thread replies
2023-06-23 20:46:27 +02:00
William Casarin
57789de5cd
nozaps: hide zap total
2023-06-23 20:46:27 +02:00
William Casarin
62c539afbf
nozaps: never show orange button
2023-06-23 20:46:27 +02:00
William Casarin
b53e6db96b
nozaps: show the user you are zapping in CustomizeZapView
...
This should make it clear that it's definitely not a note zap
2023-06-23 20:46:27 +02:00
William Casarin
b0d6d33573
nozaps: hide zap details on notes for now
2023-06-23 20:46:27 +02:00
William Casarin
c5b0e539d8
nozaps: don't show note zaps in notifications
...
apple sucks
2023-06-23 20:46:27 +02:00
William Casarin
601fa49a6e
nozaps: don't show top zaps or zap replies
...
We can't associate zaps with notes anymore
2023-06-23 20:46:27 +02:00
William Casarin
216029410b
nozaps: add nozaps setting
...
This will be used to restore functionality in the future
2023-06-23 20:46:27 +02:00
William Casarin
a5b2a5c8b9
tests: disable invalid tests
2023-06-23 20:46:27 +02:00
William Casarin
980394bf0b
Revert "ui: remove nip05 badge on events"
...
This reverts commit d205be3e0a .
2023-06-23 20:46:17 +02:00
William Casarin
ed73899e5b
Revert "Initial actionbar model refactor"
...
This reverts commit d0eb86dfa3 .
2023-06-23 12:04:54 +02:00
William Casarin
d0eb86dfa3
Initial actionbar model refactor
2023-06-23 11:53:53 +02:00
William Casarin
337c4de337
reduce ContentView redraws
...
Remove observability from the home model, and use inner models for
updating specific parts of the UI, such as notification dots on the tab
bar.
2023-06-23 11:51:51 +02:00
William Casarin
e885f38c54
refactor: switch CustomizeZapView to use a model
...
Changelog-Fixed: Fix CustomizeZapView from randomly disappearing
2023-06-23 11:51:51 +02:00
William Casarin
3dbdc42d8b
view/refactor: remove extra spacer
2023-06-23 11:46:42 +02:00
William Casarin
1389e50b8e
fix some warnings
2023-06-23 11:46:42 +02:00
William Casarin
092d84f499
eventholder: don't push view updates on queued events
2023-06-23 11:46:42 +02:00
William Casarin
c6a226fff8
Revert "ping: switch to async style"
...
This was causing crashes =/
2023-06-23 11:46:42 +02:00
William Casarin
e023d1e9cb
settings: turn off wallet selector by default
...
This is a bit confusing for new users
2023-06-23 11:46:42 +02:00
William Casarin
e6b8e39106
actionbar: rename accessibility label boosts to reposts
2023-06-23 11:46:42 +02:00
William Casarin
ced028755c
debug: InnerTimeline render counts
2023-06-23 11:46:42 +02:00
William Casarin
dabf737654
Merge remote-tracking branch 'github/translations'
2023-06-22 10:25:14 +02:00
William Casarin
72d141af61
wording: send a "message" with the zap, not "reply"
2023-06-22 10:23:56 +02:00
William Casarin
4d43e590e0
view: Add ZapUserView
...
This will be used to make it clear that we are zapping a user
2023-06-22 10:23:56 +02:00
William Casarin
c413589582
eventgroup: add is_note_zap
...
We'll need this to hide note zaps as per apple's insanely dumb
guidelines.
2023-06-22 10:23:56 +02:00
William Casarin
c218e0dcdd
refactor: use zap.is_anon instead of recomputing
...
I believe this code was written before we computed is_anon inside the
zap.
2023-06-22 10:23:56 +02:00
William Casarin
892765eaa5
UserView: Make spacer optional
...
We need this to center this view sometimes. We should look into removing
this in the future?
2023-06-22 10:23:56 +02:00
William Casarin
455f1f7e1f
view/refactor: remove redundant view structs
2023-06-22 10:23:56 +02:00
William Casarin
797762e7d2
view/refactor: move sheet handler in CustomizeZapView
2023-06-22 10:23:56 +02:00
William Casarin
a2866ff6b3
Merge remote-tracking branch 'github/translations'
2023-06-21 10:19:47 +02:00