Use welshman summarize instead of flotilla having its own copy
This commit is contained in:
parent
9c5110d5c1
commit
9b0d8a5533
3 changed files with 9 additions and 49 deletions
|
|
@ -83,7 +83,7 @@
|
|||
"@vite-pwa/assets-generator": "^1.0.2",
|
||||
"@vite-pwa/sveltekit": "^1.1.0",
|
||||
"@welshman/app": "^0.10.3",
|
||||
"@welshman/content": "^0.10.3",
|
||||
"@welshman/content": "^0.10.5",
|
||||
"@welshman/domain": "^0.10.3",
|
||||
"@welshman/editor": "^0.10.3",
|
||||
"@welshman/feeds": "^0.10.3",
|
||||
|
|
|
|||
BIN
pnpm-lock.yaml
BIN
pnpm-lock.yaml
Binary file not shown.
|
|
@ -1,54 +1,15 @@
|
|||
import {ParsedType, isImage, parse} from "@welshman/content"
|
||||
import type {Parsed} from "@welshman/content"
|
||||
import {ParsedType, parse, renderAsText, summarize} from "@welshman/content"
|
||||
import type {Parsed, SummaryName} from "@welshman/content"
|
||||
import type {TrustedEvent} from "@welshman/util"
|
||||
import {profiles} from "@app/core"
|
||||
|
||||
// Welshman's text renderer resolves an entity or a link to the string it links to, so anything
|
||||
// reading a message as text rather than rendering it as components gets a hundred characters of
|
||||
// bech32 where a quote was. Everything that is not prose is named instead.
|
||||
export const renderNode = (parsed: Parsed): string => {
|
||||
switch (parsed.type) {
|
||||
case ParsedType.Address:
|
||||
return "another post"
|
||||
case ParsedType.Cashu:
|
||||
return "a cashu token"
|
||||
case ParsedType.Code:
|
||||
return parsed.value
|
||||
case ParsedType.Command:
|
||||
return parsed.raw
|
||||
case ParsedType.Ellipsis:
|
||||
return "…"
|
||||
case ParsedType.Email:
|
||||
return parsed.value
|
||||
case ParsedType.Emoji:
|
||||
return parsed.value.name
|
||||
case ParsedType.Event:
|
||||
return "another message"
|
||||
case ParsedType.Invoice:
|
||||
return "a lightning invoice"
|
||||
case ParsedType.Link: {
|
||||
const {host} = parsed.value.url
|
||||
const summaryName: SummaryName = parsed =>
|
||||
parsed.type === ParsedType.Profile ? profiles.get().display(parsed.value.pubkey).get() : undefined
|
||||
|
||||
return isImage(parsed) ? "an image" : `a link to ${host}`
|
||||
}
|
||||
case ParsedType.LinkGrid:
|
||||
return "some images"
|
||||
case ParsedType.Newline:
|
||||
return parsed.value
|
||||
case ParsedType.Profile:
|
||||
return profiles.get().display(parsed.value.pubkey).get()
|
||||
case ParsedType.Room:
|
||||
return parsed.value.room
|
||||
case ParsedType.Text:
|
||||
return parsed.value
|
||||
case ParsedType.Topic:
|
||||
return parsed.value
|
||||
}
|
||||
}
|
||||
const renderSummary = (parsed: Parsed[]) =>
|
||||
renderAsText(summarize(parsed, summaryName)).toString().trim()
|
||||
|
||||
export const renderNodes = (parsed: Parsed[]) => parsed.map(renderNode).join("")
|
||||
|
||||
export const renderEventAsText = (event: TrustedEvent) => renderNodes(parse(event)).trim()
|
||||
export const renderEventAsText = (event: TrustedEvent) => renderSummary(parse(event))
|
||||
|
||||
const splitLines = (parsed: Parsed[]) => {
|
||||
const lines: Parsed[][] = [[]]
|
||||
|
|
@ -71,7 +32,6 @@ const hasProse = (line: Parsed[]) =>
|
|||
// nothing about the reply. The first line carrying words of its own is what the message is about.
|
||||
export const renderEventAsSummary = (event: TrustedEvent) => {
|
||||
const lines = splitLines(parse(event))
|
||||
const line = lines.find(hasProse) || lines[0] || []
|
||||
|
||||
return renderNodes(line).trim()
|
||||
return renderSummary(lines.find(hasProse) || lines[0] || [])
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue