damus

nostr ios client
git clone git://jb55.com/damus
Log | Files | Refs | README | LICENSE

commit d39a3da3b728aa06ac96a2dec2f071050fa6e3f1
parent 40459e247ec5c9890629b87eb60960cf4db98a10
Author: Suhail Saqan <suhail.saqan@gmail.com>
Date:   Thu,  1 Jun 2023 14:49:56 -0500

util: add separate_images and separate_invoices

Diffstat:
Mdamus/Nostr/NostrEvent.swift | 23+++++++++++++++++++++++
Mdamus/Views/FollowingView.swift | 2+-
2 files changed, 24 insertions(+), 1 deletion(-)

diff --git a/damus/Nostr/NostrEvent.swift b/damus/Nostr/NostrEvent.swift @@ -949,6 +949,29 @@ func first_eref_mention(ev: NostrEvent, keypair: Keypair) -> Mention<NoteId>? { return nil } +func separate_images(ev: NostrEvent, keypair: Keypair) -> [MediaUrl]? { + let urlBlocks: [URL] = ev.blocks(keypair).blocks.reduce(into: []) { urls, block in + guard case .url(let url) = block else { + return + } + if classify_url(url).is_img != nil { + urls.append(url) + } + } + let mediaUrls = urlBlocks.map { MediaUrl.image($0) } + return mediaUrls.isEmpty ? nil : mediaUrls +} + +func separate_invoices(ev: NostrEvent, keypair: Keypair) -> [Invoice]? { + let invoiceBlocks: [Invoice] = ev.blocks(keypair).blocks.reduce(into: []) { invoices, block in + guard case .invoice(let invoice) = block else { + return + } + invoices.append(invoice) + } + return invoiceBlocks.isEmpty ? nil : invoiceBlocks +} + /** Transforms a `NostrEvent` of known kind `NostrKind.like`to a human-readable emoji. If the known kind is not a `NostrKind.like`, it will return `nil`. diff --git a/damus/Views/FollowingView.swift b/damus/Views/FollowingView.swift @@ -93,7 +93,7 @@ struct FollowingView: View { /* struct FollowingView_Previews: PreviewProvider { static var previews: some View { - FollowingView(contact: <#NostrEvent#>, damus_state: <#DamusState#>) + FollowingView(damus_state: test_damus_state, following: test_following_model) } } */