forked from Archives/Athou_commafeed
add a setting to mark entries of a feed as read after a number of days (#2041)
This commit is contained in:
@@ -30,6 +30,7 @@ export interface Subscription {
|
|||||||
filter?: string
|
filter?: string
|
||||||
filterLegacy?: string
|
filterLegacy?: string
|
||||||
pushNotificationsEnabled: boolean
|
pushNotificationsEnabled: boolean
|
||||||
|
autoMarkAsReadAfterDays?: number
|
||||||
}
|
}
|
||||||
|
|
||||||
export interface Category {
|
export interface Category {
|
||||||
@@ -112,6 +113,7 @@ export interface FeedModificationRequest {
|
|||||||
position?: number
|
position?: number
|
||||||
filter?: string
|
filter?: string
|
||||||
pushNotificationsEnabled: boolean
|
pushNotificationsEnabled: boolean
|
||||||
|
autoMarkAsReadAfterDays?: number
|
||||||
}
|
}
|
||||||
|
|
||||||
export interface GetEntriesRequest {
|
export interface GetEntriesRequest {
|
||||||
|
|||||||
@@ -134,6 +134,10 @@ msgstr "هل أنت متأكد أنك تريد إلغاء الاشتراك من
|
|||||||
msgid "Asc"
|
msgid "Asc"
|
||||||
msgstr "تصاعدي"
|
msgstr "تصاعدي"
|
||||||
|
|
||||||
|
#: src/pages/app/FeedDetailsPage.tsx
|
||||||
|
msgid "Auto-mark as read"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: src/components/content/add/Subscribe.tsx
|
#: src/components/content/add/Subscribe.tsx
|
||||||
msgid "Back"
|
msgid "Back"
|
||||||
msgstr "العودة"
|
msgstr "العودة"
|
||||||
@@ -282,6 +286,10 @@ msgstr ""
|
|||||||
msgid "Date created"
|
msgid "Date created"
|
||||||
msgstr "تاريخ الإنشاء"
|
msgstr "تاريخ الإنشاء"
|
||||||
|
|
||||||
|
#: src/pages/app/FeedDetailsPage.tsx
|
||||||
|
msgid "days"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: src/pages/app/CategoryDetailsPage.tsx
|
#: src/pages/app/CategoryDetailsPage.tsx
|
||||||
msgid "Delete"
|
msgid "Delete"
|
||||||
msgstr "حذف"
|
msgstr "حذف"
|
||||||
@@ -600,6 +608,10 @@ msgstr "وضع علامة كمقروء"
|
|||||||
msgid "Mark as read up to here"
|
msgid "Mark as read up to here"
|
||||||
msgstr "وضع علامة كمقروءة حتى هنا"
|
msgstr "وضع علامة كمقروءة حتى هنا"
|
||||||
|
|
||||||
|
#: src/pages/app/FeedDetailsPage.tsx
|
||||||
|
msgid "Mark entries in this feed as read after this number of days. Leave empty to disable."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: src/components/header/ProfileMenu.tsx
|
#: src/components/header/ProfileMenu.tsx
|
||||||
msgid "Metrics"
|
msgid "Metrics"
|
||||||
msgstr "المقاييس"
|
msgstr "المقاييس"
|
||||||
|
|||||||
@@ -134,6 +134,10 @@ msgstr "Esteu segur que voleu cancel·lar la subscripció a <0>{feedName}</0>?"
|
|||||||
msgid "Asc"
|
msgid "Asc"
|
||||||
msgstr "Asc"
|
msgstr "Asc"
|
||||||
|
|
||||||
|
#: src/pages/app/FeedDetailsPage.tsx
|
||||||
|
msgid "Auto-mark as read"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: src/components/content/add/Subscribe.tsx
|
#: src/components/content/add/Subscribe.tsx
|
||||||
msgid "Back"
|
msgid "Back"
|
||||||
msgstr "Enrere"
|
msgstr "Enrere"
|
||||||
@@ -282,6 +286,10 @@ msgstr "Fosc"
|
|||||||
msgid "Date created"
|
msgid "Date created"
|
||||||
msgstr "Data de creació"
|
msgstr "Data de creació"
|
||||||
|
|
||||||
|
#: src/pages/app/FeedDetailsPage.tsx
|
||||||
|
msgid "days"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: src/pages/app/CategoryDetailsPage.tsx
|
#: src/pages/app/CategoryDetailsPage.tsx
|
||||||
msgid "Delete"
|
msgid "Delete"
|
||||||
msgstr "Eliminar"
|
msgstr "Eliminar"
|
||||||
@@ -600,6 +608,10 @@ msgstr "Marca com a llegit"
|
|||||||
msgid "Mark as read up to here"
|
msgid "Mark as read up to here"
|
||||||
msgstr "Marca com a llegit fins aquí"
|
msgstr "Marca com a llegit fins aquí"
|
||||||
|
|
||||||
|
#: src/pages/app/FeedDetailsPage.tsx
|
||||||
|
msgid "Mark entries in this feed as read after this number of days. Leave empty to disable."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: src/components/header/ProfileMenu.tsx
|
#: src/components/header/ProfileMenu.tsx
|
||||||
msgid "Metrics"
|
msgid "Metrics"
|
||||||
msgstr "mètriques"
|
msgstr "mètriques"
|
||||||
|
|||||||
@@ -134,6 +134,10 @@ msgstr "Opravdu se chcete odhlásit z odběru <0>{feedName}</0>?"
|
|||||||
msgid "Asc"
|
msgid "Asc"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/pages/app/FeedDetailsPage.tsx
|
||||||
|
msgid "Auto-mark as read"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: src/components/content/add/Subscribe.tsx
|
#: src/components/content/add/Subscribe.tsx
|
||||||
msgid "Back"
|
msgid "Back"
|
||||||
msgstr "Zpět"
|
msgstr "Zpět"
|
||||||
@@ -282,6 +286,10 @@ msgstr ""
|
|||||||
msgid "Date created"
|
msgid "Date created"
|
||||||
msgstr "Datum vytvoření"
|
msgstr "Datum vytvoření"
|
||||||
|
|
||||||
|
#: src/pages/app/FeedDetailsPage.tsx
|
||||||
|
msgid "days"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: src/pages/app/CategoryDetailsPage.tsx
|
#: src/pages/app/CategoryDetailsPage.tsx
|
||||||
msgid "Delete"
|
msgid "Delete"
|
||||||
msgstr "Smazat"
|
msgstr "Smazat"
|
||||||
@@ -600,6 +608,10 @@ msgstr "Označit jako přečtené"
|
|||||||
msgid "Mark as read up to here"
|
msgid "Mark as read up to here"
|
||||||
msgstr "Označit jako přečtené až sem"
|
msgstr "Označit jako přečtené až sem"
|
||||||
|
|
||||||
|
#: src/pages/app/FeedDetailsPage.tsx
|
||||||
|
msgid "Mark entries in this feed as read after this number of days. Leave empty to disable."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: src/components/header/ProfileMenu.tsx
|
#: src/components/header/ProfileMenu.tsx
|
||||||
msgid "Metrics"
|
msgid "Metrics"
|
||||||
msgstr "Metriky"
|
msgstr "Metriky"
|
||||||
|
|||||||
@@ -134,6 +134,10 @@ msgstr "Ydych chi'n siŵr eich bod am ddad-danysgrifio o <0>{feedName}</0>?"
|
|||||||
msgid "Asc"
|
msgid "Asc"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/pages/app/FeedDetailsPage.tsx
|
||||||
|
msgid "Auto-mark as read"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: src/components/content/add/Subscribe.tsx
|
#: src/components/content/add/Subscribe.tsx
|
||||||
msgid "Back"
|
msgid "Back"
|
||||||
msgstr "Yn ôl"
|
msgstr "Yn ôl"
|
||||||
@@ -282,6 +286,10 @@ msgstr ""
|
|||||||
msgid "Date created"
|
msgid "Date created"
|
||||||
msgstr "Dyddiad creu"
|
msgstr "Dyddiad creu"
|
||||||
|
|
||||||
|
#: src/pages/app/FeedDetailsPage.tsx
|
||||||
|
msgid "days"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: src/pages/app/CategoryDetailsPage.tsx
|
#: src/pages/app/CategoryDetailsPage.tsx
|
||||||
msgid "Delete"
|
msgid "Delete"
|
||||||
msgstr "Dileu"
|
msgstr "Dileu"
|
||||||
@@ -600,6 +608,10 @@ msgstr "Marciwch ei fod wedi'i ddarllen"
|
|||||||
msgid "Mark as read up to here"
|
msgid "Mark as read up to here"
|
||||||
msgstr "Marciwch fel y darllenwyd hyd yma"
|
msgstr "Marciwch fel y darllenwyd hyd yma"
|
||||||
|
|
||||||
|
#: src/pages/app/FeedDetailsPage.tsx
|
||||||
|
msgid "Mark entries in this feed as read after this number of days. Leave empty to disable."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: src/components/header/ProfileMenu.tsx
|
#: src/components/header/ProfileMenu.tsx
|
||||||
msgid "Metrics"
|
msgid "Metrics"
|
||||||
msgstr "metrigau"
|
msgstr "metrigau"
|
||||||
|
|||||||
@@ -134,6 +134,10 @@ msgstr "Er du sikker på, at du vil afmelde <0>{feedName}</0>?"
|
|||||||
msgid "Asc"
|
msgid "Asc"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/pages/app/FeedDetailsPage.tsx
|
||||||
|
msgid "Auto-mark as read"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: src/components/content/add/Subscribe.tsx
|
#: src/components/content/add/Subscribe.tsx
|
||||||
msgid "Back"
|
msgid "Back"
|
||||||
msgstr "Tilbage"
|
msgstr "Tilbage"
|
||||||
@@ -282,6 +286,10 @@ msgstr ""
|
|||||||
msgid "Date created"
|
msgid "Date created"
|
||||||
msgstr "Dato oprettet"
|
msgstr "Dato oprettet"
|
||||||
|
|
||||||
|
#: src/pages/app/FeedDetailsPage.tsx
|
||||||
|
msgid "days"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: src/pages/app/CategoryDetailsPage.tsx
|
#: src/pages/app/CategoryDetailsPage.tsx
|
||||||
msgid "Delete"
|
msgid "Delete"
|
||||||
msgstr "Slet"
|
msgstr "Slet"
|
||||||
@@ -600,6 +608,10 @@ msgstr "Markér som læst"
|
|||||||
msgid "Mark as read up to here"
|
msgid "Mark as read up to here"
|
||||||
msgstr "Markér som læst indtil her"
|
msgstr "Markér som læst indtil her"
|
||||||
|
|
||||||
|
#: src/pages/app/FeedDetailsPage.tsx
|
||||||
|
msgid "Mark entries in this feed as read after this number of days. Leave empty to disable."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: src/components/header/ProfileMenu.tsx
|
#: src/components/header/ProfileMenu.tsx
|
||||||
msgid "Metrics"
|
msgid "Metrics"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|||||||
@@ -134,6 +134,10 @@ msgstr "Sind Sie sicher, dass Sie <0>{feedName}</0> abbestellen möchten?"
|
|||||||
msgid "Asc"
|
msgid "Asc"
|
||||||
msgstr "Aufsteigend"
|
msgstr "Aufsteigend"
|
||||||
|
|
||||||
|
#: src/pages/app/FeedDetailsPage.tsx
|
||||||
|
msgid "Auto-mark as read"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: src/components/content/add/Subscribe.tsx
|
#: src/components/content/add/Subscribe.tsx
|
||||||
msgid "Back"
|
msgid "Back"
|
||||||
msgstr "Zurück"
|
msgstr "Zurück"
|
||||||
@@ -282,6 +286,10 @@ msgstr "Dunkel"
|
|||||||
msgid "Date created"
|
msgid "Date created"
|
||||||
msgstr "Erstellungsdatum"
|
msgstr "Erstellungsdatum"
|
||||||
|
|
||||||
|
#: src/pages/app/FeedDetailsPage.tsx
|
||||||
|
msgid "days"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: src/pages/app/CategoryDetailsPage.tsx
|
#: src/pages/app/CategoryDetailsPage.tsx
|
||||||
msgid "Delete"
|
msgid "Delete"
|
||||||
msgstr "Löschen"
|
msgstr "Löschen"
|
||||||
@@ -600,6 +608,10 @@ msgstr "Als gelesen markieren"
|
|||||||
msgid "Mark as read up to here"
|
msgid "Mark as read up to here"
|
||||||
msgstr "Bis hierhin als gelesen markieren"
|
msgstr "Bis hierhin als gelesen markieren"
|
||||||
|
|
||||||
|
#: src/pages/app/FeedDetailsPage.tsx
|
||||||
|
msgid "Mark entries in this feed as read after this number of days. Leave empty to disable."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: src/components/header/ProfileMenu.tsx
|
#: src/components/header/ProfileMenu.tsx
|
||||||
msgid "Metrics"
|
msgid "Metrics"
|
||||||
msgstr "Metriken"
|
msgstr "Metriken"
|
||||||
|
|||||||
@@ -134,6 +134,10 @@ msgstr "Are you sure you want to unsubscribe from <0>{feedName}</0>?"
|
|||||||
msgid "Asc"
|
msgid "Asc"
|
||||||
msgstr "Asc"
|
msgstr "Asc"
|
||||||
|
|
||||||
|
#: src/pages/app/FeedDetailsPage.tsx
|
||||||
|
msgid "Auto-mark as read"
|
||||||
|
msgstr "Auto-mark as read"
|
||||||
|
|
||||||
#: src/components/content/add/Subscribe.tsx
|
#: src/components/content/add/Subscribe.tsx
|
||||||
msgid "Back"
|
msgid "Back"
|
||||||
msgstr "Back"
|
msgstr "Back"
|
||||||
@@ -282,6 +286,10 @@ msgstr "Dark"
|
|||||||
msgid "Date created"
|
msgid "Date created"
|
||||||
msgstr "Date created"
|
msgstr "Date created"
|
||||||
|
|
||||||
|
#: src/pages/app/FeedDetailsPage.tsx
|
||||||
|
msgid "days"
|
||||||
|
msgstr "days"
|
||||||
|
|
||||||
#: src/pages/app/CategoryDetailsPage.tsx
|
#: src/pages/app/CategoryDetailsPage.tsx
|
||||||
msgid "Delete"
|
msgid "Delete"
|
||||||
msgstr "Delete"
|
msgstr "Delete"
|
||||||
@@ -600,6 +608,10 @@ msgstr "Mark as read"
|
|||||||
msgid "Mark as read up to here"
|
msgid "Mark as read up to here"
|
||||||
msgstr "Mark as read up to here"
|
msgstr "Mark as read up to here"
|
||||||
|
|
||||||
|
#: src/pages/app/FeedDetailsPage.tsx
|
||||||
|
msgid "Mark entries in this feed as read after this number of days. Leave empty to disable."
|
||||||
|
msgstr "Mark entries in this feed as read after this number of days. Leave empty to disable."
|
||||||
|
|
||||||
#: src/components/header/ProfileMenu.tsx
|
#: src/components/header/ProfileMenu.tsx
|
||||||
msgid "Metrics"
|
msgid "Metrics"
|
||||||
msgstr "Metrics"
|
msgstr "Metrics"
|
||||||
|
|||||||
@@ -135,6 +135,10 @@ msgstr "¿Estás seguro de que deseas darte de baja de <0>{feedName}</0>?"
|
|||||||
msgid "Asc"
|
msgid "Asc"
|
||||||
msgstr "Asc"
|
msgstr "Asc"
|
||||||
|
|
||||||
|
#: src/pages/app/FeedDetailsPage.tsx
|
||||||
|
msgid "Auto-mark as read"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: src/components/content/add/Subscribe.tsx
|
#: src/components/content/add/Subscribe.tsx
|
||||||
msgid "Back"
|
msgid "Back"
|
||||||
msgstr "Atrás"
|
msgstr "Atrás"
|
||||||
@@ -283,6 +287,10 @@ msgstr "Oscuro"
|
|||||||
msgid "Date created"
|
msgid "Date created"
|
||||||
msgstr "Fecha de creación"
|
msgstr "Fecha de creación"
|
||||||
|
|
||||||
|
#: src/pages/app/FeedDetailsPage.tsx
|
||||||
|
msgid "days"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: src/pages/app/CategoryDetailsPage.tsx
|
#: src/pages/app/CategoryDetailsPage.tsx
|
||||||
msgid "Delete"
|
msgid "Delete"
|
||||||
msgstr "Borrar"
|
msgstr "Borrar"
|
||||||
@@ -601,6 +609,10 @@ msgstr "Marcar como leído"
|
|||||||
msgid "Mark as read up to here"
|
msgid "Mark as read up to here"
|
||||||
msgstr "Marcar como leído hasta aquí"
|
msgstr "Marcar como leído hasta aquí"
|
||||||
|
|
||||||
|
#: src/pages/app/FeedDetailsPage.tsx
|
||||||
|
msgid "Mark entries in this feed as read after this number of days. Leave empty to disable."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: src/components/header/ProfileMenu.tsx
|
#: src/components/header/ProfileMenu.tsx
|
||||||
msgid "Metrics"
|
msgid "Metrics"
|
||||||
msgstr "Métricas"
|
msgstr "Métricas"
|
||||||
|
|||||||
@@ -134,6 +134,10 @@ msgstr "آیا مطمئن هستید که می خواهید اشتراک <0>{fee
|
|||||||
msgid "Asc"
|
msgid "Asc"
|
||||||
msgstr "صعودی"
|
msgstr "صعودی"
|
||||||
|
|
||||||
|
#: src/pages/app/FeedDetailsPage.tsx
|
||||||
|
msgid "Auto-mark as read"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: src/components/content/add/Subscribe.tsx
|
#: src/components/content/add/Subscribe.tsx
|
||||||
msgid "Back"
|
msgid "Back"
|
||||||
msgstr "برگشت"
|
msgstr "برگشت"
|
||||||
@@ -282,6 +286,10 @@ msgstr ""
|
|||||||
msgid "Date created"
|
msgid "Date created"
|
||||||
msgstr "تاریخ ایجاد"
|
msgstr "تاریخ ایجاد"
|
||||||
|
|
||||||
|
#: src/pages/app/FeedDetailsPage.tsx
|
||||||
|
msgid "days"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: src/pages/app/CategoryDetailsPage.tsx
|
#: src/pages/app/CategoryDetailsPage.tsx
|
||||||
msgid "Delete"
|
msgid "Delete"
|
||||||
msgstr "حذف کنید"
|
msgstr "حذف کنید"
|
||||||
@@ -600,6 +608,10 @@ msgstr "علامت گذاری به عنوان خوانده شده"
|
|||||||
msgid "Mark as read up to here"
|
msgid "Mark as read up to here"
|
||||||
msgstr "تا اینجا به عنوان خوانده شده علامت بزنید"
|
msgstr "تا اینجا به عنوان خوانده شده علامت بزنید"
|
||||||
|
|
||||||
|
#: src/pages/app/FeedDetailsPage.tsx
|
||||||
|
msgid "Mark entries in this feed as read after this number of days. Leave empty to disable."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: src/components/header/ProfileMenu.tsx
|
#: src/components/header/ProfileMenu.tsx
|
||||||
msgid "Metrics"
|
msgid "Metrics"
|
||||||
msgstr "متریک"
|
msgstr "متریک"
|
||||||
|
|||||||
@@ -134,6 +134,10 @@ msgstr "Haluatko varmasti peruuttaa kohteen <0>{feedName}</0> tilauksen?"
|
|||||||
msgid "Asc"
|
msgid "Asc"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/pages/app/FeedDetailsPage.tsx
|
||||||
|
msgid "Auto-mark as read"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: src/components/content/add/Subscribe.tsx
|
#: src/components/content/add/Subscribe.tsx
|
||||||
msgid "Back"
|
msgid "Back"
|
||||||
msgstr "Takaisin"
|
msgstr "Takaisin"
|
||||||
@@ -282,6 +286,10 @@ msgstr ""
|
|||||||
msgid "Date created"
|
msgid "Date created"
|
||||||
msgstr "Luontipäivämäärä"
|
msgstr "Luontipäivämäärä"
|
||||||
|
|
||||||
|
#: src/pages/app/FeedDetailsPage.tsx
|
||||||
|
msgid "days"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: src/pages/app/CategoryDetailsPage.tsx
|
#: src/pages/app/CategoryDetailsPage.tsx
|
||||||
msgid "Delete"
|
msgid "Delete"
|
||||||
msgstr "Poista"
|
msgstr "Poista"
|
||||||
@@ -600,6 +608,10 @@ msgstr "Merkitse luetuksi"
|
|||||||
msgid "Mark as read up to here"
|
msgid "Mark as read up to here"
|
||||||
msgstr "Merkitse luetuksi tähän asti"
|
msgstr "Merkitse luetuksi tähän asti"
|
||||||
|
|
||||||
|
#: src/pages/app/FeedDetailsPage.tsx
|
||||||
|
msgid "Mark entries in this feed as read after this number of days. Leave empty to disable."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: src/components/header/ProfileMenu.tsx
|
#: src/components/header/ProfileMenu.tsx
|
||||||
msgid "Metrics"
|
msgid "Metrics"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|||||||
@@ -134,6 +134,10 @@ msgstr "Êtes-vous sûr de vouloir vous désabonner de <0>{feedName}</0> ?"
|
|||||||
msgid "Asc"
|
msgid "Asc"
|
||||||
msgstr "Ascendant"
|
msgstr "Ascendant"
|
||||||
|
|
||||||
|
#: src/pages/app/FeedDetailsPage.tsx
|
||||||
|
msgid "Auto-mark as read"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: src/components/content/add/Subscribe.tsx
|
#: src/components/content/add/Subscribe.tsx
|
||||||
msgid "Back"
|
msgid "Back"
|
||||||
msgstr "Retour"
|
msgstr "Retour"
|
||||||
@@ -282,6 +286,10 @@ msgstr "Foncé"
|
|||||||
msgid "Date created"
|
msgid "Date created"
|
||||||
msgstr "Date de création"
|
msgstr "Date de création"
|
||||||
|
|
||||||
|
#: src/pages/app/FeedDetailsPage.tsx
|
||||||
|
msgid "days"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: src/pages/app/CategoryDetailsPage.tsx
|
#: src/pages/app/CategoryDetailsPage.tsx
|
||||||
msgid "Delete"
|
msgid "Delete"
|
||||||
msgstr "Effacer"
|
msgstr "Effacer"
|
||||||
@@ -600,6 +608,10 @@ msgstr "Marquer comme lu"
|
|||||||
msgid "Mark as read up to here"
|
msgid "Mark as read up to here"
|
||||||
msgstr "Marquer comme lu jusqu'ici"
|
msgstr "Marquer comme lu jusqu'ici"
|
||||||
|
|
||||||
|
#: src/pages/app/FeedDetailsPage.tsx
|
||||||
|
msgid "Mark entries in this feed as read after this number of days. Leave empty to disable."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: src/components/header/ProfileMenu.tsx
|
#: src/components/header/ProfileMenu.tsx
|
||||||
msgid "Metrics"
|
msgid "Metrics"
|
||||||
msgstr "Métriques"
|
msgstr "Métriques"
|
||||||
|
|||||||
@@ -135,6 +135,10 @@ msgstr "Tes certeza de querer cancelar a subscrición a <0>{feedName}</0>?"
|
|||||||
msgid "Asc"
|
msgid "Asc"
|
||||||
msgstr "Asc"
|
msgstr "Asc"
|
||||||
|
|
||||||
|
#: src/pages/app/FeedDetailsPage.tsx
|
||||||
|
msgid "Auto-mark as read"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: src/components/content/add/Subscribe.tsx
|
#: src/components/content/add/Subscribe.tsx
|
||||||
msgid "Back"
|
msgid "Back"
|
||||||
msgstr "Volver"
|
msgstr "Volver"
|
||||||
@@ -283,6 +287,10 @@ msgstr "Escuro"
|
|||||||
msgid "Date created"
|
msgid "Date created"
|
||||||
msgstr "Data de creación"
|
msgstr "Data de creación"
|
||||||
|
|
||||||
|
#: src/pages/app/FeedDetailsPage.tsx
|
||||||
|
msgid "days"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: src/pages/app/CategoryDetailsPage.tsx
|
#: src/pages/app/CategoryDetailsPage.tsx
|
||||||
msgid "Delete"
|
msgid "Delete"
|
||||||
msgstr "Eliminar"
|
msgstr "Eliminar"
|
||||||
@@ -601,6 +609,10 @@ msgstr "Marcar como lido"
|
|||||||
msgid "Mark as read up to here"
|
msgid "Mark as read up to here"
|
||||||
msgstr "Marcar como lido ata aquí"
|
msgstr "Marcar como lido ata aquí"
|
||||||
|
|
||||||
|
#: src/pages/app/FeedDetailsPage.tsx
|
||||||
|
msgid "Mark entries in this feed as read after this number of days. Leave empty to disable."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: src/components/header/ProfileMenu.tsx
|
#: src/components/header/ProfileMenu.tsx
|
||||||
msgid "Metrics"
|
msgid "Metrics"
|
||||||
msgstr "Estatísticas"
|
msgstr "Estatísticas"
|
||||||
|
|||||||
@@ -134,6 +134,10 @@ msgstr "Biztosan le szeretne iratkozni a következőről: <0>{feedName}</0>?"
|
|||||||
msgid "Asc"
|
msgid "Asc"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/pages/app/FeedDetailsPage.tsx
|
||||||
|
msgid "Auto-mark as read"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: src/components/content/add/Subscribe.tsx
|
#: src/components/content/add/Subscribe.tsx
|
||||||
msgid "Back"
|
msgid "Back"
|
||||||
msgstr "Vissza"
|
msgstr "Vissza"
|
||||||
@@ -282,6 +286,10 @@ msgstr ""
|
|||||||
msgid "Date created"
|
msgid "Date created"
|
||||||
msgstr "Létrehozás dátuma"
|
msgstr "Létrehozás dátuma"
|
||||||
|
|
||||||
|
#: src/pages/app/FeedDetailsPage.tsx
|
||||||
|
msgid "days"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: src/pages/app/CategoryDetailsPage.tsx
|
#: src/pages/app/CategoryDetailsPage.tsx
|
||||||
msgid "Delete"
|
msgid "Delete"
|
||||||
msgstr "Törlés"
|
msgstr "Törlés"
|
||||||
@@ -600,6 +608,10 @@ msgstr "Megjelölés olvasottként"
|
|||||||
msgid "Mark as read up to here"
|
msgid "Mark as read up to here"
|
||||||
msgstr "Megjelölés idáig olvasottként"
|
msgstr "Megjelölés idáig olvasottként"
|
||||||
|
|
||||||
|
#: src/pages/app/FeedDetailsPage.tsx
|
||||||
|
msgid "Mark entries in this feed as read after this number of days. Leave empty to disable."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: src/components/header/ProfileMenu.tsx
|
#: src/components/header/ProfileMenu.tsx
|
||||||
msgid "Metrics"
|
msgid "Metrics"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|||||||
@@ -134,6 +134,10 @@ msgstr "Yakin ingin berhenti berlangganan <0>{feedName}</0>?"
|
|||||||
msgid "Asc"
|
msgid "Asc"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/pages/app/FeedDetailsPage.tsx
|
||||||
|
msgid "Auto-mark as read"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: src/components/content/add/Subscribe.tsx
|
#: src/components/content/add/Subscribe.tsx
|
||||||
msgid "Back"
|
msgid "Back"
|
||||||
msgstr "Kembali"
|
msgstr "Kembali"
|
||||||
@@ -282,6 +286,10 @@ msgstr ""
|
|||||||
msgid "Date created"
|
msgid "Date created"
|
||||||
msgstr "Tanggal dibuat"
|
msgstr "Tanggal dibuat"
|
||||||
|
|
||||||
|
#: src/pages/app/FeedDetailsPage.tsx
|
||||||
|
msgid "days"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: src/pages/app/CategoryDetailsPage.tsx
|
#: src/pages/app/CategoryDetailsPage.tsx
|
||||||
msgid "Delete"
|
msgid "Delete"
|
||||||
msgstr "Hapus"
|
msgstr "Hapus"
|
||||||
@@ -600,6 +608,10 @@ msgstr "Tandai sebagai telah dibaca"
|
|||||||
msgid "Mark as read up to here"
|
msgid "Mark as read up to here"
|
||||||
msgstr "Tandai sebagai telah dibaca sampai di sini"
|
msgstr "Tandai sebagai telah dibaca sampai di sini"
|
||||||
|
|
||||||
|
#: src/pages/app/FeedDetailsPage.tsx
|
||||||
|
msgid "Mark entries in this feed as read after this number of days. Leave empty to disable."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: src/components/header/ProfileMenu.tsx
|
#: src/components/header/ProfileMenu.tsx
|
||||||
msgid "Metrics"
|
msgid "Metrics"
|
||||||
msgstr "Metrik"
|
msgstr "Metrik"
|
||||||
|
|||||||
@@ -134,6 +134,10 @@ msgstr "Sei sicuro di voler annullare l'iscrizione a <0>{feedName}</0>?"
|
|||||||
msgid "Asc"
|
msgid "Asc"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/pages/app/FeedDetailsPage.tsx
|
||||||
|
msgid "Auto-mark as read"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: src/components/content/add/Subscribe.tsx
|
#: src/components/content/add/Subscribe.tsx
|
||||||
msgid "Back"
|
msgid "Back"
|
||||||
msgstr "Indietro"
|
msgstr "Indietro"
|
||||||
@@ -282,6 +286,10 @@ msgstr ""
|
|||||||
msgid "Date created"
|
msgid "Date created"
|
||||||
msgstr "Data di creazione"
|
msgstr "Data di creazione"
|
||||||
|
|
||||||
|
#: src/pages/app/FeedDetailsPage.tsx
|
||||||
|
msgid "days"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: src/pages/app/CategoryDetailsPage.tsx
|
#: src/pages/app/CategoryDetailsPage.tsx
|
||||||
msgid "Delete"
|
msgid "Delete"
|
||||||
msgstr "Elimina"
|
msgstr "Elimina"
|
||||||
@@ -600,6 +608,10 @@ msgstr "Contrassegna come letto"
|
|||||||
msgid "Mark as read up to here"
|
msgid "Mark as read up to here"
|
||||||
msgstr "Contrassegna come letto fino a qui"
|
msgstr "Contrassegna come letto fino a qui"
|
||||||
|
|
||||||
|
#: src/pages/app/FeedDetailsPage.tsx
|
||||||
|
msgid "Mark entries in this feed as read after this number of days. Leave empty to disable."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: src/components/header/ProfileMenu.tsx
|
#: src/components/header/ProfileMenu.tsx
|
||||||
msgid "Metrics"
|
msgid "Metrics"
|
||||||
msgstr "Metriche"
|
msgstr "Metriche"
|
||||||
|
|||||||
@@ -134,6 +134,10 @@ msgstr "<0>{feedName}</0> の登録を解除してもよろしいですか?"
|
|||||||
msgid "Asc"
|
msgid "Asc"
|
||||||
msgstr "昇順"
|
msgstr "昇順"
|
||||||
|
|
||||||
|
#: src/pages/app/FeedDetailsPage.tsx
|
||||||
|
msgid "Auto-mark as read"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: src/components/content/add/Subscribe.tsx
|
#: src/components/content/add/Subscribe.tsx
|
||||||
msgid "Back"
|
msgid "Back"
|
||||||
msgstr "戻る"
|
msgstr "戻る"
|
||||||
@@ -282,6 +286,10 @@ msgstr "ダーク"
|
|||||||
msgid "Date created"
|
msgid "Date created"
|
||||||
msgstr "作成日"
|
msgstr "作成日"
|
||||||
|
|
||||||
|
#: src/pages/app/FeedDetailsPage.tsx
|
||||||
|
msgid "days"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: src/pages/app/CategoryDetailsPage.tsx
|
#: src/pages/app/CategoryDetailsPage.tsx
|
||||||
msgid "Delete"
|
msgid "Delete"
|
||||||
msgstr "削除"
|
msgstr "削除"
|
||||||
@@ -600,6 +608,10 @@ msgstr "既読にする"
|
|||||||
msgid "Mark as read up to here"
|
msgid "Mark as read up to here"
|
||||||
msgstr "ここまで既読にする"
|
msgstr "ここまで既読にする"
|
||||||
|
|
||||||
|
#: src/pages/app/FeedDetailsPage.tsx
|
||||||
|
msgid "Mark entries in this feed as read after this number of days. Leave empty to disable."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: src/components/header/ProfileMenu.tsx
|
#: src/components/header/ProfileMenu.tsx
|
||||||
msgid "Metrics"
|
msgid "Metrics"
|
||||||
msgstr "メトリックス"
|
msgstr "メトリックス"
|
||||||
|
|||||||
@@ -134,6 +134,10 @@ msgstr "<0>{feedName}</0> 구독을 취소하시겠습니까?"
|
|||||||
msgid "Asc"
|
msgid "Asc"
|
||||||
msgstr "오름차순"
|
msgstr "오름차순"
|
||||||
|
|
||||||
|
#: src/pages/app/FeedDetailsPage.tsx
|
||||||
|
msgid "Auto-mark as read"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: src/components/content/add/Subscribe.tsx
|
#: src/components/content/add/Subscribe.tsx
|
||||||
msgid "Back"
|
msgid "Back"
|
||||||
msgstr "뒤로"
|
msgstr "뒤로"
|
||||||
@@ -282,6 +286,10 @@ msgstr ""
|
|||||||
msgid "Date created"
|
msgid "Date created"
|
||||||
msgstr "생성 날짜"
|
msgstr "생성 날짜"
|
||||||
|
|
||||||
|
#: src/pages/app/FeedDetailsPage.tsx
|
||||||
|
msgid "days"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: src/pages/app/CategoryDetailsPage.tsx
|
#: src/pages/app/CategoryDetailsPage.tsx
|
||||||
msgid "Delete"
|
msgid "Delete"
|
||||||
msgstr "삭제"
|
msgstr "삭제"
|
||||||
@@ -600,6 +608,10 @@ msgstr "읽은 상태로 표시"
|
|||||||
msgid "Mark as read up to here"
|
msgid "Mark as read up to here"
|
||||||
msgstr "여기까지 읽은 것으로 표시"
|
msgstr "여기까지 읽은 것으로 표시"
|
||||||
|
|
||||||
|
#: src/pages/app/FeedDetailsPage.tsx
|
||||||
|
msgid "Mark entries in this feed as read after this number of days. Leave empty to disable."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: src/components/header/ProfileMenu.tsx
|
#: src/components/header/ProfileMenu.tsx
|
||||||
msgid "Metrics"
|
msgid "Metrics"
|
||||||
msgstr "메트릭스"
|
msgstr "메트릭스"
|
||||||
|
|||||||
@@ -134,6 +134,10 @@ msgstr "Adakah anda pasti mahu berhenti melanggan <0>{feedName}</0>?"
|
|||||||
msgid "Asc"
|
msgid "Asc"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/pages/app/FeedDetailsPage.tsx
|
||||||
|
msgid "Auto-mark as read"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: src/components/content/add/Subscribe.tsx
|
#: src/components/content/add/Subscribe.tsx
|
||||||
msgid "Back"
|
msgid "Back"
|
||||||
msgstr "Kembali"
|
msgstr "Kembali"
|
||||||
@@ -282,6 +286,10 @@ msgstr ""
|
|||||||
msgid "Date created"
|
msgid "Date created"
|
||||||
msgstr "Tarikh dibuat"
|
msgstr "Tarikh dibuat"
|
||||||
|
|
||||||
|
#: src/pages/app/FeedDetailsPage.tsx
|
||||||
|
msgid "days"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: src/pages/app/CategoryDetailsPage.tsx
|
#: src/pages/app/CategoryDetailsPage.tsx
|
||||||
msgid "Delete"
|
msgid "Delete"
|
||||||
msgstr "Padam"
|
msgstr "Padam"
|
||||||
@@ -600,6 +608,10 @@ msgstr "Tandakan sebagai dibaca"
|
|||||||
msgid "Mark as read up to here"
|
msgid "Mark as read up to here"
|
||||||
msgstr "Tandai sebagai dibaca sehingga di sini"
|
msgstr "Tandai sebagai dibaca sehingga di sini"
|
||||||
|
|
||||||
|
#: src/pages/app/FeedDetailsPage.tsx
|
||||||
|
msgid "Mark entries in this feed as read after this number of days. Leave empty to disable."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: src/components/header/ProfileMenu.tsx
|
#: src/components/header/ProfileMenu.tsx
|
||||||
msgid "Metrics"
|
msgid "Metrics"
|
||||||
msgstr "Metrik"
|
msgstr "Metrik"
|
||||||
|
|||||||
@@ -134,6 +134,10 @@ msgstr "Er du sikker på at du vil avslutte abonnementet på <0>{feedName}</0>?"
|
|||||||
msgid "Asc"
|
msgid "Asc"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/pages/app/FeedDetailsPage.tsx
|
||||||
|
msgid "Auto-mark as read"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: src/components/content/add/Subscribe.tsx
|
#: src/components/content/add/Subscribe.tsx
|
||||||
msgid "Back"
|
msgid "Back"
|
||||||
msgstr "Tilbake"
|
msgstr "Tilbake"
|
||||||
@@ -282,6 +286,10 @@ msgstr ""
|
|||||||
msgid "Date created"
|
msgid "Date created"
|
||||||
msgstr "Dato opprettet"
|
msgstr "Dato opprettet"
|
||||||
|
|
||||||
|
#: src/pages/app/FeedDetailsPage.tsx
|
||||||
|
msgid "days"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: src/pages/app/CategoryDetailsPage.tsx
|
#: src/pages/app/CategoryDetailsPage.tsx
|
||||||
msgid "Delete"
|
msgid "Delete"
|
||||||
msgstr "Slett"
|
msgstr "Slett"
|
||||||
@@ -600,6 +608,10 @@ msgstr "Merk som lest"
|
|||||||
msgid "Mark as read up to here"
|
msgid "Mark as read up to here"
|
||||||
msgstr "Merk som lest frem til her"
|
msgstr "Merk som lest frem til her"
|
||||||
|
|
||||||
|
#: src/pages/app/FeedDetailsPage.tsx
|
||||||
|
msgid "Mark entries in this feed as read after this number of days. Leave empty to disable."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: src/components/header/ProfileMenu.tsx
|
#: src/components/header/ProfileMenu.tsx
|
||||||
msgid "Metrics"
|
msgid "Metrics"
|
||||||
msgstr "Beregninger"
|
msgstr "Beregninger"
|
||||||
|
|||||||
@@ -134,6 +134,10 @@ msgstr "Weet je zeker dat je je wilt afmelden voor <0>{feedName}</0>?"
|
|||||||
msgid "Asc"
|
msgid "Asc"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/pages/app/FeedDetailsPage.tsx
|
||||||
|
msgid "Auto-mark as read"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: src/components/content/add/Subscribe.tsx
|
#: src/components/content/add/Subscribe.tsx
|
||||||
msgid "Back"
|
msgid "Back"
|
||||||
msgstr "Terug"
|
msgstr "Terug"
|
||||||
@@ -282,6 +286,10 @@ msgstr ""
|
|||||||
msgid "Date created"
|
msgid "Date created"
|
||||||
msgstr "Datum gemaakt"
|
msgstr "Datum gemaakt"
|
||||||
|
|
||||||
|
#: src/pages/app/FeedDetailsPage.tsx
|
||||||
|
msgid "days"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: src/pages/app/CategoryDetailsPage.tsx
|
#: src/pages/app/CategoryDetailsPage.tsx
|
||||||
msgid "Delete"
|
msgid "Delete"
|
||||||
msgstr "Verwijderen"
|
msgstr "Verwijderen"
|
||||||
@@ -600,6 +608,10 @@ msgstr "Markeren als gelezen"
|
|||||||
msgid "Mark as read up to here"
|
msgid "Mark as read up to here"
|
||||||
msgstr "Markeer als gelezen tot hier"
|
msgstr "Markeer als gelezen tot hier"
|
||||||
|
|
||||||
|
#: src/pages/app/FeedDetailsPage.tsx
|
||||||
|
msgid "Mark entries in this feed as read after this number of days. Leave empty to disable."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: src/components/header/ProfileMenu.tsx
|
#: src/components/header/ProfileMenu.tsx
|
||||||
msgid "Metrics"
|
msgid "Metrics"
|
||||||
msgstr "Metrieken"
|
msgstr "Metrieken"
|
||||||
|
|||||||
@@ -134,6 +134,10 @@ msgstr "Er du sikker på at du vil avslutte abonnementet på <0>{feedName}</0>?"
|
|||||||
msgid "Asc"
|
msgid "Asc"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/pages/app/FeedDetailsPage.tsx
|
||||||
|
msgid "Auto-mark as read"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: src/components/content/add/Subscribe.tsx
|
#: src/components/content/add/Subscribe.tsx
|
||||||
msgid "Back"
|
msgid "Back"
|
||||||
msgstr "Tilbake"
|
msgstr "Tilbake"
|
||||||
@@ -282,6 +286,10 @@ msgstr ""
|
|||||||
msgid "Date created"
|
msgid "Date created"
|
||||||
msgstr "Dato opprettet"
|
msgstr "Dato opprettet"
|
||||||
|
|
||||||
|
#: src/pages/app/FeedDetailsPage.tsx
|
||||||
|
msgid "days"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: src/pages/app/CategoryDetailsPage.tsx
|
#: src/pages/app/CategoryDetailsPage.tsx
|
||||||
msgid "Delete"
|
msgid "Delete"
|
||||||
msgstr "Slett"
|
msgstr "Slett"
|
||||||
@@ -600,6 +608,10 @@ msgstr "Merk som lest"
|
|||||||
msgid "Mark as read up to here"
|
msgid "Mark as read up to here"
|
||||||
msgstr "Merk som lest frem til her"
|
msgstr "Merk som lest frem til her"
|
||||||
|
|
||||||
|
#: src/pages/app/FeedDetailsPage.tsx
|
||||||
|
msgid "Mark entries in this feed as read after this number of days. Leave empty to disable."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: src/components/header/ProfileMenu.tsx
|
#: src/components/header/ProfileMenu.tsx
|
||||||
msgid "Metrics"
|
msgid "Metrics"
|
||||||
msgstr "Beregninger"
|
msgstr "Beregninger"
|
||||||
|
|||||||
@@ -134,6 +134,10 @@ msgstr "Czy na pewno chcesz zrezygnować z subskrypcji <0>{feedName}</0>?"
|
|||||||
msgid "Asc"
|
msgid "Asc"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/pages/app/FeedDetailsPage.tsx
|
||||||
|
msgid "Auto-mark as read"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: src/components/content/add/Subscribe.tsx
|
#: src/components/content/add/Subscribe.tsx
|
||||||
msgid "Back"
|
msgid "Back"
|
||||||
msgstr "Powrót"
|
msgstr "Powrót"
|
||||||
@@ -282,6 +286,10 @@ msgstr ""
|
|||||||
msgid "Date created"
|
msgid "Date created"
|
||||||
msgstr "Data utworzenia"
|
msgstr "Data utworzenia"
|
||||||
|
|
||||||
|
#: src/pages/app/FeedDetailsPage.tsx
|
||||||
|
msgid "days"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: src/pages/app/CategoryDetailsPage.tsx
|
#: src/pages/app/CategoryDetailsPage.tsx
|
||||||
msgid "Delete"
|
msgid "Delete"
|
||||||
msgstr "Usuń"
|
msgstr "Usuń"
|
||||||
@@ -600,6 +608,10 @@ msgstr "Oznacz jako przeczytane"
|
|||||||
msgid "Mark as read up to here"
|
msgid "Mark as read up to here"
|
||||||
msgstr "Oznacz jako przeczytane do tej pory"
|
msgstr "Oznacz jako przeczytane do tej pory"
|
||||||
|
|
||||||
|
#: src/pages/app/FeedDetailsPage.tsx
|
||||||
|
msgid "Mark entries in this feed as read after this number of days. Leave empty to disable."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: src/components/header/ProfileMenu.tsx
|
#: src/components/header/ProfileMenu.tsx
|
||||||
msgid "Metrics"
|
msgid "Metrics"
|
||||||
msgstr "Metryki"
|
msgstr "Metryki"
|
||||||
|
|||||||
@@ -134,6 +134,10 @@ msgstr "Tem certeza de que deseja cancelar a inscrição em <0>{feedName}</0>?"
|
|||||||
msgid "Asc"
|
msgid "Asc"
|
||||||
msgstr "Asc"
|
msgstr "Asc"
|
||||||
|
|
||||||
|
#: src/pages/app/FeedDetailsPage.tsx
|
||||||
|
msgid "Auto-mark as read"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: src/components/content/add/Subscribe.tsx
|
#: src/components/content/add/Subscribe.tsx
|
||||||
msgid "Back"
|
msgid "Back"
|
||||||
msgstr "Voltar"
|
msgstr "Voltar"
|
||||||
@@ -282,6 +286,10 @@ msgstr "Escuro"
|
|||||||
msgid "Date created"
|
msgid "Date created"
|
||||||
msgstr "Data de criação"
|
msgstr "Data de criação"
|
||||||
|
|
||||||
|
#: src/pages/app/FeedDetailsPage.tsx
|
||||||
|
msgid "days"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: src/pages/app/CategoryDetailsPage.tsx
|
#: src/pages/app/CategoryDetailsPage.tsx
|
||||||
msgid "Delete"
|
msgid "Delete"
|
||||||
msgstr "Excluir"
|
msgstr "Excluir"
|
||||||
@@ -600,6 +608,10 @@ msgstr "Marcar como lido"
|
|||||||
msgid "Mark as read up to here"
|
msgid "Mark as read up to here"
|
||||||
msgstr "Marcar como lido até aqui"
|
msgstr "Marcar como lido até aqui"
|
||||||
|
|
||||||
|
#: src/pages/app/FeedDetailsPage.tsx
|
||||||
|
msgid "Mark entries in this feed as read after this number of days. Leave empty to disable."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: src/components/header/ProfileMenu.tsx
|
#: src/components/header/ProfileMenu.tsx
|
||||||
msgid "Metrics"
|
msgid "Metrics"
|
||||||
msgstr "Métricas"
|
msgstr "Métricas"
|
||||||
|
|||||||
@@ -134,6 +134,10 @@ msgstr "Вы уверены, что хотите отказаться от по
|
|||||||
msgid "Asc"
|
msgid "Asc"
|
||||||
msgstr "По возрастанию"
|
msgstr "По возрастанию"
|
||||||
|
|
||||||
|
#: src/pages/app/FeedDetailsPage.tsx
|
||||||
|
msgid "Auto-mark as read"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: src/components/content/add/Subscribe.tsx
|
#: src/components/content/add/Subscribe.tsx
|
||||||
msgid "Back"
|
msgid "Back"
|
||||||
msgstr "Назад"
|
msgstr "Назад"
|
||||||
@@ -282,6 +286,10 @@ msgstr "Темная"
|
|||||||
msgid "Date created"
|
msgid "Date created"
|
||||||
msgstr "Дата создания"
|
msgstr "Дата создания"
|
||||||
|
|
||||||
|
#: src/pages/app/FeedDetailsPage.tsx
|
||||||
|
msgid "days"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: src/pages/app/CategoryDetailsPage.tsx
|
#: src/pages/app/CategoryDetailsPage.tsx
|
||||||
msgid "Delete"
|
msgid "Delete"
|
||||||
msgstr "Удалить"
|
msgstr "Удалить"
|
||||||
@@ -600,6 +608,10 @@ msgstr "Отметить как прочитанное"
|
|||||||
msgid "Mark as read up to here"
|
msgid "Mark as read up to here"
|
||||||
msgstr "Отметить как прочитанное до этого места"
|
msgstr "Отметить как прочитанное до этого места"
|
||||||
|
|
||||||
|
#: src/pages/app/FeedDetailsPage.tsx
|
||||||
|
msgid "Mark entries in this feed as read after this number of days. Leave empty to disable."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: src/components/header/ProfileMenu.tsx
|
#: src/components/header/ProfileMenu.tsx
|
||||||
msgid "Metrics"
|
msgid "Metrics"
|
||||||
msgstr "Метрики"
|
msgstr "Метрики"
|
||||||
|
|||||||
@@ -134,6 +134,10 @@ msgstr "Naozaj chcete zrušiť odber kanála <0>{feedName}</0>?"
|
|||||||
msgid "Asc"
|
msgid "Asc"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/pages/app/FeedDetailsPage.tsx
|
||||||
|
msgid "Auto-mark as read"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: src/components/content/add/Subscribe.tsx
|
#: src/components/content/add/Subscribe.tsx
|
||||||
msgid "Back"
|
msgid "Back"
|
||||||
msgstr "Späť"
|
msgstr "Späť"
|
||||||
@@ -282,6 +286,10 @@ msgstr ""
|
|||||||
msgid "Date created"
|
msgid "Date created"
|
||||||
msgstr "Dátum vytvorenia"
|
msgstr "Dátum vytvorenia"
|
||||||
|
|
||||||
|
#: src/pages/app/FeedDetailsPage.tsx
|
||||||
|
msgid "days"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: src/pages/app/CategoryDetailsPage.tsx
|
#: src/pages/app/CategoryDetailsPage.tsx
|
||||||
msgid "Delete"
|
msgid "Delete"
|
||||||
msgstr "Vymazať"
|
msgstr "Vymazať"
|
||||||
@@ -600,6 +608,10 @@ msgstr "Označiť ako prečítané"
|
|||||||
msgid "Mark as read up to here"
|
msgid "Mark as read up to here"
|
||||||
msgstr "Označiť ako prečítané až sem"
|
msgstr "Označiť ako prečítané až sem"
|
||||||
|
|
||||||
|
#: src/pages/app/FeedDetailsPage.tsx
|
||||||
|
msgid "Mark entries in this feed as read after this number of days. Leave empty to disable."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: src/components/header/ProfileMenu.tsx
|
#: src/components/header/ProfileMenu.tsx
|
||||||
msgid "Metrics"
|
msgid "Metrics"
|
||||||
msgstr "Metriky"
|
msgstr "Metriky"
|
||||||
|
|||||||
@@ -134,6 +134,10 @@ msgstr "Är du säker på att du vill avsluta prenumerationen på <0>{feedName}<
|
|||||||
msgid "Asc"
|
msgid "Asc"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/pages/app/FeedDetailsPage.tsx
|
||||||
|
msgid "Auto-mark as read"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: src/components/content/add/Subscribe.tsx
|
#: src/components/content/add/Subscribe.tsx
|
||||||
msgid "Back"
|
msgid "Back"
|
||||||
msgstr "Tillbaka"
|
msgstr "Tillbaka"
|
||||||
@@ -282,6 +286,10 @@ msgstr ""
|
|||||||
msgid "Date created"
|
msgid "Date created"
|
||||||
msgstr "Datum skapat"
|
msgstr "Datum skapat"
|
||||||
|
|
||||||
|
#: src/pages/app/FeedDetailsPage.tsx
|
||||||
|
msgid "days"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: src/pages/app/CategoryDetailsPage.tsx
|
#: src/pages/app/CategoryDetailsPage.tsx
|
||||||
msgid "Delete"
|
msgid "Delete"
|
||||||
msgstr "Ta bort"
|
msgstr "Ta bort"
|
||||||
@@ -600,6 +608,10 @@ msgstr "Markera som läst"
|
|||||||
msgid "Mark as read up to here"
|
msgid "Mark as read up to here"
|
||||||
msgstr "Markera som läst hit"
|
msgstr "Markera som läst hit"
|
||||||
|
|
||||||
|
#: src/pages/app/FeedDetailsPage.tsx
|
||||||
|
msgid "Mark entries in this feed as read after this number of days. Leave empty to disable."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: src/components/header/ProfileMenu.tsx
|
#: src/components/header/ProfileMenu.tsx
|
||||||
msgid "Metrics"
|
msgid "Metrics"
|
||||||
msgstr "Mätverk"
|
msgstr "Mätverk"
|
||||||
|
|||||||
@@ -134,6 +134,10 @@ msgstr "<0>{feedName}</0> aboneliğinden çıkmak istediğinizden emin misiniz?"
|
|||||||
msgid "Asc"
|
msgid "Asc"
|
||||||
msgstr "Artan"
|
msgstr "Artan"
|
||||||
|
|
||||||
|
#: src/pages/app/FeedDetailsPage.tsx
|
||||||
|
msgid "Auto-mark as read"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: src/components/content/add/Subscribe.tsx
|
#: src/components/content/add/Subscribe.tsx
|
||||||
msgid "Back"
|
msgid "Back"
|
||||||
msgstr "Geri"
|
msgstr "Geri"
|
||||||
@@ -282,6 +286,10 @@ msgstr ""
|
|||||||
msgid "Date created"
|
msgid "Date created"
|
||||||
msgstr "Oluşturulma tarihi"
|
msgstr "Oluşturulma tarihi"
|
||||||
|
|
||||||
|
#: src/pages/app/FeedDetailsPage.tsx
|
||||||
|
msgid "days"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: src/pages/app/CategoryDetailsPage.tsx
|
#: src/pages/app/CategoryDetailsPage.tsx
|
||||||
msgid "Delete"
|
msgid "Delete"
|
||||||
msgstr "Sil"
|
msgstr "Sil"
|
||||||
@@ -600,6 +608,10 @@ msgstr "Okundu olarak işaretle"
|
|||||||
msgid "Mark as read up to here"
|
msgid "Mark as read up to here"
|
||||||
msgstr "Buraya kadar okundu olarak işaretle"
|
msgstr "Buraya kadar okundu olarak işaretle"
|
||||||
|
|
||||||
|
#: src/pages/app/FeedDetailsPage.tsx
|
||||||
|
msgid "Mark entries in this feed as read after this number of days. Leave empty to disable."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: src/components/header/ProfileMenu.tsx
|
#: src/components/header/ProfileMenu.tsx
|
||||||
msgid "Metrics"
|
msgid "Metrics"
|
||||||
msgstr "Metrikler"
|
msgstr "Metrikler"
|
||||||
|
|||||||
@@ -134,6 +134,10 @@ msgstr "您确定要退订 <0>{feedName}</0> 吗?"
|
|||||||
msgid "Asc"
|
msgid "Asc"
|
||||||
msgstr "升序"
|
msgstr "升序"
|
||||||
|
|
||||||
|
#: src/pages/app/FeedDetailsPage.tsx
|
||||||
|
msgid "Auto-mark as read"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: src/components/content/add/Subscribe.tsx
|
#: src/components/content/add/Subscribe.tsx
|
||||||
msgid "Back"
|
msgid "Back"
|
||||||
msgstr "返回"
|
msgstr "返回"
|
||||||
@@ -282,6 +286,10 @@ msgstr "暗黑"
|
|||||||
msgid "Date created"
|
msgid "Date created"
|
||||||
msgstr "创建日期"
|
msgstr "创建日期"
|
||||||
|
|
||||||
|
#: src/pages/app/FeedDetailsPage.tsx
|
||||||
|
msgid "days"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: src/pages/app/CategoryDetailsPage.tsx
|
#: src/pages/app/CategoryDetailsPage.tsx
|
||||||
msgid "Delete"
|
msgid "Delete"
|
||||||
msgstr "删除"
|
msgstr "删除"
|
||||||
@@ -600,6 +608,10 @@ msgstr "标记为已读"
|
|||||||
msgid "Mark as read up to here"
|
msgid "Mark as read up to here"
|
||||||
msgstr "标记为已读到这里"
|
msgstr "标记为已读到这里"
|
||||||
|
|
||||||
|
#: src/pages/app/FeedDetailsPage.tsx
|
||||||
|
msgid "Mark entries in this feed as read after this number of days. Leave empty to disable."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: src/components/header/ProfileMenu.tsx
|
#: src/components/header/ProfileMenu.tsx
|
||||||
msgid "Metrics"
|
msgid "Metrics"
|
||||||
msgstr "指标"
|
msgstr "指标"
|
||||||
|
|||||||
@@ -1,3 +1,5 @@
|
|||||||
|
import { msg } from "@lingui/core/macro"
|
||||||
|
import { useLingui } from "@lingui/react"
|
||||||
import { Trans } from "@lingui/react/macro"
|
import { Trans } from "@lingui/react/macro"
|
||||||
import {
|
import {
|
||||||
Anchor,
|
Anchor,
|
||||||
@@ -38,6 +40,7 @@ export function FeedDetailsPage() {
|
|||||||
if (!id) throw new Error("id required")
|
if (!id) throw new Error("id required")
|
||||||
|
|
||||||
const apiKey = useAppSelector(state => state.user.profile?.apiKey)
|
const apiKey = useAppSelector(state => state.user.profile?.apiKey)
|
||||||
|
const { _ } = useLingui()
|
||||||
const dispatch = useAppDispatch()
|
const dispatch = useAppDispatch()
|
||||||
const query = useAsync(async () => await client.feed.get(id), [id])
|
const query = useAsync(async () => await client.feed.get(id), [id])
|
||||||
const feed = query.result?.data
|
const feed = query.result?.data
|
||||||
@@ -144,6 +147,14 @@ export function FeedDetailsPage() {
|
|||||||
<CategorySelect label={<Trans>Category</Trans>} {...form.getInputProps("categoryId")} clearable />
|
<CategorySelect label={<Trans>Category</Trans>} {...form.getInputProps("categoryId")} clearable />
|
||||||
<NumberInput label={<Trans>Position</Trans>} {...form.getInputProps("position")} required min={0} />
|
<NumberInput label={<Trans>Position</Trans>} {...form.getInputProps("position")} required min={0} />
|
||||||
<ReceivePushNotificationsChechbox {...form.getInputProps("pushNotificationsEnabled", { type: "checkbox" })} />
|
<ReceivePushNotificationsChechbox {...form.getInputProps("pushNotificationsEnabled", { type: "checkbox" })} />
|
||||||
|
<NumberInput
|
||||||
|
label={<Trans>Auto-mark as read</Trans>}
|
||||||
|
description={<Trans>Mark entries in this feed as read after this number of days. Leave empty to disable.</Trans>}
|
||||||
|
suffix={` ${_(msg`days`)}`}
|
||||||
|
{...form.getInputProps("autoMarkAsReadAfterDays")}
|
||||||
|
min={1}
|
||||||
|
max={3650}
|
||||||
|
/>
|
||||||
<Input.Wrapper
|
<Input.Wrapper
|
||||||
label={<Trans>Filtering expression</Trans>}
|
label={<Trans>Filtering expression</Trans>}
|
||||||
description={
|
description={
|
||||||
|
|||||||
@@ -18,15 +18,19 @@ import com.commafeed.backend.model.FeedEntry;
|
|||||||
import com.commafeed.backend.model.FeedEntryStatus;
|
import com.commafeed.backend.model.FeedEntryStatus;
|
||||||
import com.commafeed.backend.model.FeedEntryTag;
|
import com.commafeed.backend.model.FeedEntryTag;
|
||||||
import com.commafeed.backend.model.FeedSubscription;
|
import com.commafeed.backend.model.FeedSubscription;
|
||||||
|
import com.commafeed.backend.model.QFeed;
|
||||||
import com.commafeed.backend.model.QFeedEntry;
|
import com.commafeed.backend.model.QFeedEntry;
|
||||||
import com.commafeed.backend.model.QFeedEntryContent;
|
import com.commafeed.backend.model.QFeedEntryContent;
|
||||||
import com.commafeed.backend.model.QFeedEntryStatus;
|
import com.commafeed.backend.model.QFeedEntryStatus;
|
||||||
import com.commafeed.backend.model.QFeedEntryTag;
|
import com.commafeed.backend.model.QFeedEntryTag;
|
||||||
|
import com.commafeed.backend.model.QFeedSubscription;
|
||||||
import com.commafeed.backend.model.User;
|
import com.commafeed.backend.model.User;
|
||||||
import com.commafeed.backend.model.UserSettings.ReadingOrder;
|
import com.commafeed.backend.model.UserSettings.ReadingOrder;
|
||||||
import com.commafeed.frontend.model.UnreadCount;
|
import com.commafeed.frontend.model.UnreadCount;
|
||||||
import com.querydsl.core.BooleanBuilder;
|
import com.querydsl.core.BooleanBuilder;
|
||||||
import com.querydsl.core.Tuple;
|
import com.querydsl.core.Tuple;
|
||||||
|
import com.querydsl.core.types.dsl.Expressions;
|
||||||
|
import com.querydsl.core.types.dsl.NumberExpression;
|
||||||
import com.querydsl.jpa.impl.JPAQuery;
|
import com.querydsl.jpa.impl.JPAQuery;
|
||||||
|
|
||||||
@Singleton
|
@Singleton
|
||||||
@@ -34,8 +38,10 @@ public class FeedEntryStatusDAO extends GenericDAO<FeedEntryStatus> {
|
|||||||
|
|
||||||
private static final QFeedEntryStatus STATUS = QFeedEntryStatus.feedEntryStatus;
|
private static final QFeedEntryStatus STATUS = QFeedEntryStatus.feedEntryStatus;
|
||||||
private static final QFeedEntry ENTRY = QFeedEntry.feedEntry;
|
private static final QFeedEntry ENTRY = QFeedEntry.feedEntry;
|
||||||
|
private static final QFeed FEED = QFeed.feed;
|
||||||
private static final QFeedEntryContent CONTENT = QFeedEntryContent.feedEntryContent;
|
private static final QFeedEntryContent CONTENT = QFeedEntryContent.feedEntryContent;
|
||||||
private static final QFeedEntryTag TAG = QFeedEntryTag.feedEntryTag;
|
private static final QFeedEntryTag TAG = QFeedEntryTag.feedEntryTag;
|
||||||
|
private static final QFeedSubscription SUBSCRIPTION = QFeedSubscription.feedSubscription;
|
||||||
|
|
||||||
private final FeedEntryTagDAO feedEntryTagDAO;
|
private final FeedEntryTagDAO feedEntryTagDAO;
|
||||||
private final CommaFeedConfiguration config;
|
private final CommaFeedConfiguration config;
|
||||||
@@ -232,4 +238,58 @@ public class FeedEntryStatusDAO extends GenericDAO<FeedEntryStatus> {
|
|||||||
return deleteQuery(STATUS).where(STATUS.id.in(ids)).execute();
|
return deleteQuery(STATUS).where(STATUS.id.in(ids)).execute();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public long autoMarkAsRead(int limit) {
|
||||||
|
Instant now = Instant.now();
|
||||||
|
|
||||||
|
BooleanBuilder where = new BooleanBuilder();
|
||||||
|
where.and(SUBSCRIPTION.autoMarkAsReadAfterDays.isNotNull());
|
||||||
|
where.and(SUBSCRIPTION.autoMarkAsReadAfterDays.gt(0));
|
||||||
|
|
||||||
|
NumberExpression<Integer> daysDiff = Expressions.numberTemplate(Integer.class, "TIMESTAMPDIFF(DAY, {0}, {1})", ENTRY.published,
|
||||||
|
now);
|
||||||
|
where.and(daysDiff.goe(SUBSCRIPTION.autoMarkAsReadAfterDays));
|
||||||
|
|
||||||
|
where.and(buildUnreadPredicate());
|
||||||
|
|
||||||
|
List<Tuple> tuples = query().select(ENTRY, STATUS, SUBSCRIPTION)
|
||||||
|
.from(ENTRY)
|
||||||
|
.join(ENTRY.feed, FEED)
|
||||||
|
.join(SUBSCRIPTION)
|
||||||
|
.on(SUBSCRIPTION.feed.eq(FEED))
|
||||||
|
.leftJoin(ENTRY.statuses, STATUS)
|
||||||
|
.on(STATUS.subscription.eq(SUBSCRIPTION))
|
||||||
|
.where(where)
|
||||||
|
.limit(limit)
|
||||||
|
.fetch();
|
||||||
|
|
||||||
|
long updated = 0;
|
||||||
|
|
||||||
|
// Update existing statuses
|
||||||
|
List<Long> statusIdsToUpdate = tuples.stream()
|
||||||
|
.map(t -> t.get(STATUS))
|
||||||
|
.filter(s -> s != null && s.getId() != null)
|
||||||
|
.map(FeedEntryStatus::getId)
|
||||||
|
.distinct()
|
||||||
|
.toList();
|
||||||
|
|
||||||
|
if (!statusIdsToUpdate.isEmpty()) {
|
||||||
|
updated += updateQuery(STATUS).where(STATUS.id.in(statusIdsToUpdate)).set(STATUS.read, true).execute();
|
||||||
|
}
|
||||||
|
|
||||||
|
// Insert new statuses for entries without existing status
|
||||||
|
for (Tuple tuple : tuples) {
|
||||||
|
FeedEntryStatus status = tuple.get(STATUS);
|
||||||
|
if (status == null || status.getId() == null) {
|
||||||
|
FeedEntry entry = tuple.get(ENTRY);
|
||||||
|
FeedSubscription sub = tuple.get(SUBSCRIPTION);
|
||||||
|
FeedEntryStatus newStatus = new FeedEntryStatus(sub.getUser(), sub, entry);
|
||||||
|
newStatus.setRead(true);
|
||||||
|
persist(newStatus);
|
||||||
|
updated++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return updated;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -49,4 +49,7 @@ public class FeedSubscription extends AbstractModel {
|
|||||||
@Column(name = "push_notifications_enabled")
|
@Column(name = "push_notifications_enabled")
|
||||||
private boolean pushNotificationsEnabled;
|
private boolean pushNotificationsEnabled;
|
||||||
|
|
||||||
|
@Column(name = "auto_mark_as_read_after_days")
|
||||||
|
private Integer autoMarkAsReadAfterDays;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -133,4 +133,16 @@ public class DatabaseCleaningService {
|
|||||||
} while (deleted != 0);
|
} while (deleted != 0);
|
||||||
log.info("cleanup done: {} old read statuses deleted", total);
|
log.info("cleanup done: {} old read statuses deleted", total);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void autoMarkAsRead() {
|
||||||
|
log.info("marking entries as read based on autoMarkAsReadAfterDays");
|
||||||
|
long total = 0;
|
||||||
|
long marked;
|
||||||
|
do {
|
||||||
|
marked = unitOfWork.call(() -> feedEntryStatusDAO.autoMarkAsRead(batchSize));
|
||||||
|
total += marked;
|
||||||
|
log.debug("marked {} entries as read", total);
|
||||||
|
} while (marked != 0);
|
||||||
|
log.info("cleanup done: marked {} entries as read", total);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,37 @@
|
|||||||
|
package com.commafeed.backend.task;
|
||||||
|
|
||||||
|
import java.util.concurrent.TimeUnit;
|
||||||
|
|
||||||
|
import jakarta.inject.Singleton;
|
||||||
|
|
||||||
|
import com.commafeed.backend.service.db.DatabaseCleaningService;
|
||||||
|
|
||||||
|
import lombok.RequiredArgsConstructor;
|
||||||
|
|
||||||
|
@RequiredArgsConstructor
|
||||||
|
@Singleton
|
||||||
|
public class AutoMarkAsReadTask extends ScheduledTask {
|
||||||
|
|
||||||
|
private final DatabaseCleaningService cleaner;
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void run() {
|
||||||
|
cleaner.autoMarkAsRead();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public long getInitialDelay() {
|
||||||
|
return 25;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public long getPeriod() {
|
||||||
|
return 60;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public TimeUnit getTimeUnit() {
|
||||||
|
return TimeUnit.MINUTES;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -68,6 +68,9 @@ public class Subscription implements Serializable {
|
|||||||
@Schema(description = "whether to send push notifications for new entries of this feed", required = true)
|
@Schema(description = "whether to send push notifications for new entries of this feed", required = true)
|
||||||
private boolean pushNotificationsEnabled;
|
private boolean pushNotificationsEnabled;
|
||||||
|
|
||||||
|
@Schema(description = "automatically mark entries as read after this many days (null to disable)")
|
||||||
|
private Integer autoMarkAsReadAfterDays;
|
||||||
|
|
||||||
public static Subscription build(FeedSubscription subscription, UnreadCount unreadCount) {
|
public static Subscription build(FeedSubscription subscription, UnreadCount unreadCount) {
|
||||||
FeedCategory category = subscription.getCategory();
|
FeedCategory category = subscription.getCategory();
|
||||||
Feed feed = subscription.getFeed();
|
Feed feed = subscription.getFeed();
|
||||||
@@ -89,6 +92,7 @@ public class Subscription implements Serializable {
|
|||||||
sub.setFilter(subscription.getFilter());
|
sub.setFilter(subscription.getFilter());
|
||||||
sub.setFilterLegacy(subscription.getFilterLegacy());
|
sub.setFilterLegacy(subscription.getFilterLegacy());
|
||||||
sub.setPushNotificationsEnabled(subscription.isPushNotificationsEnabled());
|
sub.setPushNotificationsEnabled(subscription.isPushNotificationsEnabled());
|
||||||
|
sub.setAutoMarkAsReadAfterDays(subscription.getAutoMarkAsReadAfterDays());
|
||||||
return sub;
|
return sub;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -34,4 +34,7 @@ public class FeedModificationRequest implements Serializable {
|
|||||||
@Schema(description = "whether to send push notifications for new entries of this feed")
|
@Schema(description = "whether to send push notifications for new entries of this feed")
|
||||||
private boolean pushNotificationsEnabled;
|
private boolean pushNotificationsEnabled;
|
||||||
|
|
||||||
|
@Schema(description = "automatically mark entries as read after this many days (null to disable)")
|
||||||
|
private Integer autoMarkAsReadAfterDays;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -437,6 +437,7 @@ public class FeedREST {
|
|||||||
}
|
}
|
||||||
|
|
||||||
subscription.setPushNotificationsEnabled(req.isPushNotificationsEnabled());
|
subscription.setPushNotificationsEnabled(req.isPushNotificationsEnabled());
|
||||||
|
subscription.setAutoMarkAsReadAfterDays(req.getAutoMarkAsReadAfterDays());
|
||||||
|
|
||||||
if (StringUtils.isNotBlank(req.getName())) {
|
if (StringUtils.isNotBlank(req.getName())) {
|
||||||
subscription.setTitle(req.getName());
|
subscription.setTitle(req.getName());
|
||||||
|
|||||||
@@ -32,5 +32,15 @@
|
|||||||
</addColumn>
|
</addColumn>
|
||||||
</changeSet>
|
</changeSet>
|
||||||
|
|
||||||
</databaseChangeLog>
|
<changeSet id="add-auto-mark-as-read-after-days" author="athou">
|
||||||
|
<addColumn tableName="FEEDSUBSCRIPTIONS">
|
||||||
|
<column name="auto_mark_as_read_after_days" type="INT">
|
||||||
|
<constraints nullable="true" />
|
||||||
|
</column>
|
||||||
|
</addColumn>
|
||||||
|
<createIndex indexName="feedsubscriptions_automark_index" tableName="FEEDSUBSCRIPTIONS">
|
||||||
|
<column name="auto_mark_as_read_after_days" />
|
||||||
|
</createIndex>
|
||||||
|
</changeSet>
|
||||||
|
|
||||||
|
</databaseChangeLog>
|
||||||
|
|||||||
@@ -15,6 +15,7 @@ import com.commafeed.TestConstants;
|
|||||||
import com.commafeed.backend.service.db.DatabaseCleaningService;
|
import com.commafeed.backend.service.db.DatabaseCleaningService;
|
||||||
import com.commafeed.frontend.model.Entries;
|
import com.commafeed.frontend.model.Entries;
|
||||||
import com.commafeed.frontend.model.Entry;
|
import com.commafeed.frontend.model.Entry;
|
||||||
|
import com.commafeed.frontend.model.request.FeedModificationRequest;
|
||||||
import com.commafeed.frontend.model.request.StarRequest;
|
import com.commafeed.frontend.model.request.StarRequest;
|
||||||
import com.commafeed.frontend.resource.CategoryREST;
|
import com.commafeed.frontend.resource.CategoryREST;
|
||||||
import com.commafeed.integration.BaseIT;
|
import com.commafeed.integration.BaseIT;
|
||||||
@@ -182,4 +183,30 @@ class DatabaseCleaningIT extends BaseIT {
|
|||||||
Assertions.assertEquals(0, entriesAfter.getEntries().size());
|
Assertions.assertEquals(0, entriesAfter.getEntries().size());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Nested
|
||||||
|
class AutoMarkAsRead {
|
||||||
|
@Test
|
||||||
|
void entriesAreMarkedAsReadAfterSpecifiedDays() {
|
||||||
|
// Subscribe to feed
|
||||||
|
Long subscriptionId = subscribeAndWaitForEntries(getFeedUrl());
|
||||||
|
|
||||||
|
// verify we have 2 unread entries
|
||||||
|
Entries entries = getFeedEntries(subscriptionId);
|
||||||
|
Assertions.assertEquals(2, entries.getEntries().stream().filter(e -> !e.isRead()).count());
|
||||||
|
|
||||||
|
// set auto-mark as read
|
||||||
|
FeedModificationRequest req = new FeedModificationRequest();
|
||||||
|
req.setId(subscriptionId);
|
||||||
|
req.setAutoMarkAsReadAfterDays(1);
|
||||||
|
RestAssured.given().body(req).contentType(ContentType.JSON).post("rest/feed/modify").then().statusCode(200);
|
||||||
|
|
||||||
|
// run auto-mark as read
|
||||||
|
databaseCleaningService.autoMarkAsRead();
|
||||||
|
|
||||||
|
// verify all entries are now read
|
||||||
|
entries = getFeedEntries(subscriptionId);
|
||||||
|
Assertions.assertEquals(0, entries.getEntries().stream().filter(e -> !e.isRead()).count());
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user