Skip to content

Commit be6458d

Browse files
committed
feat(api): adapt to Miniflux 2.2.8, add support for auto-saving content with update_content parameter
1 parent 6830fd5 commit be6458d

14 files changed

+58
-12
lines changed

README.md

+2
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,8 @@ Read in other languages: [Deutsch](docs/README.de-DE.md), [Español](docs/README
66

77
ReactFlux is a third-party web frontend for [Miniflux](https://github.com/miniflux/v2), aimed at providing a more user-friendly reading experience.
88

9+
Supported Miniflux versions: 2.1.4 and higher.
10+
911
Key features include:
1012

1113
- Modern interface design

docs/README.de-DE.md

+2
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,8 @@ In anderen Sprachen lesen: [English](../README.md), [Español](README.es-ES.md),
66

77
ReactFlux ist ein Drittanbieter-Web-Frontend für [Miniflux](https://github.com/miniflux/v2), das ein benutzerfreundlicheres Leseerlebnis bieten soll.
88

9+
Unterstützte Miniflux-Versionen: 2.1.4 und höher.
10+
911
Die wichtigsten Merkmale sind:
1012

1113
- Modernes Oberflächendesign

docs/README.es-ES.md

+2
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,8 @@ Lea este texto en otros idiomas: [Deutsch](README.de-DE.md), [English](../README
66

77
ReactFlux es una interfaz web de terceros para [Miniflux](https://github.com/miniflux/v2), cuyo objetivo es proporcionar una experiencia de lectura más fácil de usar.
88

9+
Versiones de Miniflux compatibles: 2.1.4 y superiores.
10+
911
Las funcionalidades clave incluyen:
1012

1113
- Diseño de interfaz moderna

docs/README.fr-FR.md

+2
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,8 @@ Lire dans d'autres langues : [Deutsch](README.de-DE.md), [English](../README.md)
66

77
ReactFlux est une interface web tierce pour [Miniflux](https://github.com/miniflux/v2), visant à offrir une expérience de lecture plus conviviale.
88

9+
Versions Miniflux prises en charge : 2.1.4 et supérieures.
10+
911
Les fonctionnalités principales incluent :
1012

1113
- Design d'interface moderne

docs/README.zh-CN.md

+2
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,8 @@
66

77
ReactFlux 是 [Miniflux](https://github.com/miniflux/v2) 的第三方 Web 前端,旨在提供更加友好的阅读体验。
88

9+
支持的 Miniflux 版本:2.1.4 及更高版本。
10+
911
主要特性包括:
1012

1113
- 现代化的界面设计

src/apis/entries.js

+5-2
Original file line numberDiff line numberDiff line change
@@ -13,8 +13,11 @@ export const updateEntriesStatus = async (entryIds, newStatus) =>
1313
export const toggleEntryStarred = async (entryId) =>
1414
apiClient.put(`/v1/entries/${entryId}/bookmark`)
1515

16-
export const getOriginalContent = async (entryId) =>
17-
apiClient.get(`/v1/entries/${entryId}/fetch-content`)
16+
export const getOriginalContent = async (entryId) => {
17+
const { updateContentOnFetch } = getSettings("updateContentOnFetch")
18+
const queryParams = updateContentOnFetch ? "?update_content=true" : ""
19+
return apiClient.get(`/v1/entries/${entryId}/fetch-content${queryParams}`)
20+
}
1821

1922
export const saveToThirdPartyServices = async (entryId) =>
2023
apiClient.raw(`/v1/entries/${entryId}/save`, { method: "POST" })

src/components/Settings/General.jsx

+20
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,9 @@ import SettingItem from "./SettingItem"
55

66
import { polyglotState } from "@/hooks/useLanguage"
77
import useScreenWidth from "@/hooks/useScreenWidth"
8+
import { dataState } from "@/store/dataState"
89
import { settingsState, updateSettings } from "@/store/settingsState"
10+
import compareVersions from "@/utils/version"
911

1012
const languageOptions = [
1113
{ label: "Deutsch", value: "de-DE" },
@@ -16,6 +18,7 @@ const languageOptions = [
1618
]
1719

1820
const General = () => {
21+
const { version } = useStore(dataState)
1922
const {
2023
enableSwipeGesture,
2124
homePage,
@@ -26,6 +29,7 @@ const General = () => {
2629
pageSize,
2730
removeDuplicates,
2831
swipeSensitivity,
32+
updateContentOnFetch,
2933
} = useStore(settingsState)
3034
const { polyglot } = useStore(polyglotState)
3135
const { isBelowMedium } = useScreenWidth()
@@ -190,6 +194,22 @@ const General = () => {
190194
/>
191195
</SettingItem>
192196

197+
{compareVersions(version, "2.2.8") >= 0 && (
198+
<>
199+
<Divider />
200+
201+
<SettingItem
202+
description={polyglot.t("settings.update_content_on_fetch_description")}
203+
title={polyglot.t("settings.update_content_on_fetch_label")}
204+
>
205+
<Switch
206+
checked={updateContentOnFetch}
207+
onChange={(value) => updateSettings({ updateContentOnFetch: value })}
208+
/>
209+
</SettingItem>
210+
</>
211+
)}
212+
193213
{isBelowMedium && (
194214
<>
195215
<Divider />

src/hooks/useEntryActions.js

+3-1
Original file line numberDiff line numberDiff line change
@@ -143,7 +143,9 @@ const useEntryActions = () => {
143143
try {
144144
const response = await getOriginalContent(activeContent.id)
145145
Message.success(polyglot.t("actions.fetched_content_success"))
146-
setActiveContent({ ...activeContent, content: response.content })
146+
const newContent = response.content
147+
const newReadingTime = response.reading_time ?? activeContent.reading_time
148+
setActiveContent({ ...activeContent, content: newContent, readingTime: newReadingTime })
147149
} catch (error) {
148150
console.error("Failed to fetch content: ", error)
149151
Message.error(polyglot.t("actions.fetched_content_error"))

src/locales/de-DE.json

+4-2
Original file line numberDiff line numberDiff line change
@@ -225,8 +225,10 @@
225225
"mark_read_on_view": "Ansehen",
226226
"enable_swipe_gesture_description": "Swipe-Geste nach links und rechts zum Wechseln von Artikeln aktivieren",
227227
"enable_swipe_gesture_label": "Swipe-Geste aktivieren",
228-
"swipe_sensitivity_description": "Swipe-Geste-Empfindlichkeit anpassen",
229-
"swipe_sensitivity_label": "Swipe-Geste-Empfindlichkeit"
228+
"swipe_sensitivity_description": "Empfindlichkeit der Wischgesten anpassen",
229+
"swipe_sensitivity_label": "Wischempfindlichkeit",
230+
"update_content_on_fetch_label": "Abgerufene Inhalte automatisch speichern",
231+
"update_content_on_fetch_description": "Abgerufene Inhalte automatisch aktualisieren und in der Datenbank speichern"
230232
},
231233
"appearance": {
232234
"theme_color_label": "Themenfarbe",

src/locales/en-US.json

+4-2
Original file line numberDiff line numberDiff line change
@@ -225,8 +225,10 @@
225225
"mark_read_on_view": "View",
226226
"enable_swipe_gesture_description": "Enable swipe gesture to switch articles",
227227
"enable_swipe_gesture_label": "Enable swipe gesture",
228-
"swipe_sensitivity_description": "Adjust swipe gesture sensitivity",
229-
"swipe_sensitivity_label": "Swipe sensitivity"
228+
"swipe_sensitivity_description": "Adjust the sensitivity of swipe gestures",
229+
"swipe_sensitivity_label": "Swipe sensitivity",
230+
"update_content_on_fetch_label": "Auto-save fetched content",
231+
"update_content_on_fetch_description": "Automatically update and save fetched content to database"
230232
},
231233
"appearance": {
232234
"theme_color_label": "Theme color",

src/locales/es-ES.json

+4-2
Original file line numberDiff line numberDiff line change
@@ -225,8 +225,10 @@
225225
"mark_read_on_view": "Ver",
226226
"enable_swipe_gesture_description": "Habilitar gesto de deslizamiento para cambiar artículos",
227227
"enable_swipe_gesture_label": "Habilitar gesto de deslizamiento",
228-
"swipe_sensitivity_description": "Ajustar la sensibilidad del gesto de deslizamiento",
229-
"swipe_sensitivity_label": "Sensibilidad del deslizamiento"
228+
"swipe_sensitivity_description": "Ajustar la sensibilidad de los gestos de deslizamiento",
229+
"swipe_sensitivity_label": "Sensibilidad de deslizamiento",
230+
"update_content_on_fetch_label": "Guardar automáticamente el contenido obtenido",
231+
"update_content_on_fetch_description": "Actualizar y guardar automáticamente el contenido obtenido en la base de datos"
230232
},
231233
"appearance": {
232234
"theme_color_label": "Color del tema",

src/locales/fr-FR.json

+4-2
Original file line numberDiff line numberDiff line change
@@ -225,8 +225,10 @@
225225
"mark_read_on_view": "Voir",
226226
"enable_swipe_gesture_description": "Activer le geste de balayage pour changer d'article",
227227
"enable_swipe_gesture_label": "Activer le geste de balayage",
228-
"swipe_sensitivity_description": "Ajuster la sensibilité du geste de balayage",
229-
"swipe_sensitivity_label": "Sensibilité du balayage"
228+
"swipe_sensitivity_description": "Ajuster la sensibilité des gestes de balayage",
229+
"swipe_sensitivity_label": "Sensibilité du balayage",
230+
"update_content_on_fetch_label": "Enregistrer automatiquement le contenu récupéré",
231+
"update_content_on_fetch_description": "Mettre à jour et enregistrer automatiquement le contenu récupéré dans la base de données"
230232
},
231233
"appearance": {
232234
"theme_color_label": "Couleur du thème",

src/locales/zh-CN.json

+3-1
Original file line numberDiff line numberDiff line change
@@ -226,7 +226,9 @@
226226
"enable_swipe_gesture_description": "启用左右滑动手势来切换文章",
227227
"enable_swipe_gesture_label": "启用滑动手势",
228228
"swipe_sensitivity_description": "调整滑动手势的灵敏度",
229-
"swipe_sensitivity_label": "滑动灵敏度"
229+
"swipe_sensitivity_label": "滑动灵敏度",
230+
"update_content_on_fetch_label": "获取原文时自动保存",
231+
"update_content_on_fetch_description": "获取原文时自动更新并保存到数据库"
230232
},
231233
"appearance": {
232234
"theme_color_label": "主题颜色",

src/store/settingsState.js

+1
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@ const defaultValue = {
2727
themeColor: "Blue",
2828
themeMode: "system",
2929
titleAlignment: "center",
30+
updateContentOnFetch: false,
3031
}
3132

3233
export const settingsState = persistentAtom("settings", defaultValue, {

0 commit comments

Comments
 (0)