Merge pull request #3889 from RSSNext/sync/main-to-dev-20250609
Sync main branch to dev branch
This commit is contained in:
commit
2dc9daabb5
|
|
@ -0,0 +1,23 @@
|
|||
# What's New in v0.2.1
|
||||
|
||||
## Shiny new things
|
||||
|
||||
- Video playback is now supported in both the entry list and entry view (#3798 #3816)
|
||||
- AI summaries can be rendered in Markdown (bf7193d)
|
||||
|
||||
## Improvements
|
||||
|
||||
- Gradually rolling out an experimental unified local database for mobile and desktop (#3809)
|
||||
- Added a “Mark as read” option to the long-press menu in lists (7c4b896)
|
||||
- RSSHub routes list now shows popularity scores and sorts by them (9c3457a)
|
||||
- Polished the RSSHub route detail page and added “Top Feeds” (6a51c8f)
|
||||
- Feed-subscription page now displays feed analytics (2c27d91)
|
||||
- Trending list now shows subscriber counts (bdb6802)
|
||||
- AI will skip summarising extra-short articles to avoid trivial summaries (63388b4)
|
||||
|
||||
## No longer broken
|
||||
|
||||
- AI-summary component now correctly spans full width (2612f9)
|
||||
- Fixed icon-colour issues in dark mode (c7be63b)
|
||||
- Fixed misaligned icons (75c9f80)
|
||||
- Fixed occasional transparency on the bottom navigation bar (#3867)
|
||||
|
|
@ -32,7 +32,7 @@
|
|||
<key>CFBundlePackageType</key>
|
||||
<string>$(PRODUCT_BUNDLE_PACKAGE_TYPE)</string>
|
||||
<key>CFBundleShortVersionString</key>
|
||||
<string>0.2.0</string>
|
||||
<string>0.2.1</string>
|
||||
<key>CFBundleSignature</key>
|
||||
<string>????</string>
|
||||
<key>CFBundleURLTypes</key>
|
||||
|
|
@ -52,7 +52,7 @@
|
|||
</dict>
|
||||
</array>
|
||||
<key>CFBundleVersion</key>
|
||||
<string>108</string>
|
||||
<string>109</string>
|
||||
<key>ITSAppUsesNonExemptEncryption</key>
|
||||
<false/>
|
||||
<key>LSApplicationCategoryType</key>
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
{
|
||||
"name": "@follow/mobile",
|
||||
"version": "0.2.0",
|
||||
"version": "0.2.1",
|
||||
"private": true,
|
||||
"main": "src/main.tsx",
|
||||
"scripts": {
|
||||
|
|
|
|||
|
|
@ -129,7 +129,7 @@ export const RecommendationTab: TabComponent<{
|
|||
const discoverLanguage = useUISettingKey("discoverLanguage")
|
||||
|
||||
const { data, isLoading } = useQuery({
|
||||
queryKey: ["rsshub-popular", "cache", tab.value],
|
||||
queryKey: ["rsshub-popular", "cache", tab.value, discoverLanguage],
|
||||
queryFn: () =>
|
||||
fetchRsshubPopular(tab.value, LanguageMap[discoverLanguage]).then((res) => res.data),
|
||||
staleTime: 1000 * 60 * 60 * 24, // 1 day
|
||||
|
|
|
|||
|
|
@ -1,10 +1,11 @@
|
|||
import { parseHtml } from "@follow/components/ui/markdown/parse-html.ts"
|
||||
import { useEntry } from "@follow/store/entry/hooks"
|
||||
import { SummaryGeneratingStatus } from "@follow/store/summary/enum"
|
||||
import { usePrefetchSummary, useSummary } from "@follow/store/summary/hooks"
|
||||
import { useSummaryStore } from "@follow/store/summary/store"
|
||||
import { useAtomValue } from "jotai"
|
||||
import type { FC } from "react"
|
||||
import { useMemo } from "react"
|
||||
import { useCallback, useMemo } from "react"
|
||||
import { Text } from "react-native"
|
||||
|
||||
import { useActionLanguage, useGeneralSettingKey } from "@/src/atoms/settings/general"
|
||||
|
|
@ -21,14 +22,30 @@ export const EntryAISummary: FC<{
|
|||
const showReadability = useAtomValue(ctx.showReadabilityAtom)
|
||||
const showAISummaryOnce = useAtomValue(ctx.showAISummaryAtom)
|
||||
const showAISummary = useGeneralSettingKey("summary") || showAISummaryOnce
|
||||
const entryReadabilityContent = useEntry(entryId, (state) => state.readabilityContent)
|
||||
const entry = useEntry(
|
||||
entryId,
|
||||
useCallback(
|
||||
(state) => {
|
||||
const content = showReadability ? state.readabilityContent : state.content
|
||||
const target =
|
||||
showReadability && state.readabilityContent ? "readabilityContent" : "content"
|
||||
const textLength = content ? parseHtml(content).toText().length : 0
|
||||
|
||||
return {
|
||||
target,
|
||||
isShortContent: textLength < 100,
|
||||
} as const
|
||||
},
|
||||
[showReadability],
|
||||
),
|
||||
)
|
||||
const summary = useSummary(entryId)
|
||||
const actionLanguage = useActionLanguage()
|
||||
usePrefetchSummary({
|
||||
entryId,
|
||||
target: showReadability && entryReadabilityContent ? "readabilityContent" : "content",
|
||||
target: entry?.target || "content",
|
||||
actionLanguage,
|
||||
enabled: showAISummary,
|
||||
enabled: showAISummary && !entry?.isShortContent,
|
||||
})
|
||||
const summaryToShow = useMemo(() => {
|
||||
const maybeMarkdown = showReadability
|
||||
|
|
|
|||
Loading…
Reference in New Issue