summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Cargo.lock4
-rw-r--r--contrib/slashdot-replace-newlines.xslt24
-rw-r--r--doc/configcommands.dsv2
-rw-r--r--doc/internal/code-style.markdown2
-rw-r--r--doc/newsboat.asciidoc19
-rw-r--r--include/minifluxapi.h1
-rw-r--r--include/minifluxurlreader.h3
-rw-r--r--po/de.po36
-rw-r--r--po/it.po36
-rw-r--r--po/nl.po40
-rw-r--r--po/pl.po39
-rw-r--r--po/ru.po36
-rw-r--r--po/tr.po41
-rw-r--r--po/uk.po48
-rw-r--r--po/zh.po34
-rw-r--r--rust/regex-rs/Cargo.toml2
-rw-r--r--src/configcontainer.cpp4
-rw-r--r--src/controller.cpp3
-rw-r--r--src/minifluxapi.cpp43
-rw-r--r--src/minifluxurlreader.cpp18
20 files changed, 231 insertions, 204 deletions
diff --git a/Cargo.lock b/Cargo.lock
index a75eebc5..1ef127f2 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -79,9 +79,9 @@ checksum = "349f9b6a179ed607305526ca489b34ad0a41aed5f7980fa90eb03160b69598fb"
[[package]]
name = "bitflags"
-version = "2.4.2"
+version = "2.5.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ed570934406eb16438a4e976b1b4500774099c13b8cb96eec99f620f05090ddf"
+checksum = "cf4b9d6a944f767f8e5e0db018570623c85f3d925ac718db4e06d0187adb21c1"
[[package]]
name = "block"
diff --git a/contrib/slashdot-replace-newlines.xslt b/contrib/slashdot-replace-newlines.xslt
new file mode 100644
index 00000000..a458bb7c
--- /dev/null
+++ b/contrib/slashdot-replace-newlines.xslt
@@ -0,0 +1,24 @@
+<!--
+Replaces newline characters in description field of Slashdot's RDF/RSS feed with html linebreaks (`<br>`)
+Uses xsltproc (part of libxslt)
+
+Can be used with a filter url, for example:
+"filter:xsltproc /usr/share/doc/newsboat/contrib/slashdot-replace-newlines.xslt -:https://rss.slashdot.org/Slashdot/slashdotMain"
+-->
+<xsl:stylesheet version="1.0"
+ xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ xmlns:str="http://exslt.org/strings"
+ xmlns:purl="http://purl.org/rss/1.0/">
+ <xsl:template match="node()|@*">
+ <xsl:copy>
+ <xsl:apply-templates select="node()|@*"/>
+ </xsl:copy>
+ </xsl:template>
+
+ <xsl:template match="purl:description">
+ <xsl:copy>
+ <!-- '&#10;' encodes a newline character (\n) -->
+ <xsl:value-of select="str:replace(node(), '&#10;', '&lt;br&gt;')"/>
+ </xsl:copy>
+ </xsl:template>
+</xsl:stylesheet>
diff --git a/doc/configcommands.dsv b/doc/configcommands.dsv
index 609b1c34..07efa712 100644
--- a/doc/configcommands.dsv
+++ b/doc/configcommands.dsv
@@ -84,11 +84,13 @@ mark-as-read-on-hover||[yes/no]||no||If set to `yes`, then all articles that get
max-browser-tabs||<number>||10||Set the maximum number of articles to open in a browser when using the <<open-all-unread-in-browser,`open-all-unread-in-browser`>> or <<open-all-unread-in-browser-and-mark-read,`open-all-unread-in-browser-and-mark-read`>> commands.||max-browser-tabs 4
max-download-speed||<number>||0||If set to a number greater than 0, the download speed per download is set to that limit (in KB/s).||max-download-speed 50
max-items||<number>||0||Set the maximum number of articles a feed can contain. When the threshold is crossed, old articles are dropped. If the number is set to 0, then all articles are kept.||max-items 100
+miniflux-flag-star||<flag>||""||If set and Miniflux support is used, then all articles that are flagged with the specified flag are being "starred" in Miniflux and appear in the list of "Starred items".||miniflux-flag-star "b"
miniflux-login||<username>||""||Sets the username for use with Miniflux.||miniflux-login "admin"
miniflux-min-items||<number>||100||This variable sets the number of articles that are loaded from Miniflux per feed.||miniflux-min-items 20
miniflux-password||<password>||""||Configures the password for use with Miniflux. Double quotes and backslashes within it <<#_using_double_quotes,should be escaped>>.||miniflux-password "here_goesAquote:\""
miniflux-passwordeval||<command>||""||A more secure alternative to the above, is providing your password from an external command that is evaluated during login. This can be used to read your password from a gpg encrypted file or your system keyring.||miniflux-passwordeval "gpg --decrypt ~/.newsboat/miniflux-password.gpg"
miniflux-passwordfile||<path>||""||Another alternative, by storing your plaintext password elsewhere in your system.||miniflux-passwordfile "~/.newsboat/miniflux-pw.txt"
+miniflux-show-special-feeds||[yes/no]||yes||If set and Miniflux support is used, then a "Starred items" feed (containing your starred/favourited articles) appears in your subscription list.||miniflux-show-special-feeds "no"
miniflux-token||<API Token>||""||Sets the API Token for use with Miniflux.||miniflux-token "E-uTqU8r55KucuHz26tJbXfrZVRndwY_mZAsEfcC8Bg="
miniflux-tokeneval||<command>||""||A more secure alternative to the above, is providing your API token from an external command that is evaluated during login. This can be used to read your token from a gpg encrypted file or your system keyring.||miniflux-tokeneval "gpg --decrypt ~/.newsboat/miniflux-token.gpg"
miniflux-tokenfile||<API Token>||""||Another alternative, by storing your plaintext token elsewhere in your system.||miniflux-tokenfile "~/.newsboat/miniflux-token.txt"
diff --git a/doc/internal/code-style.markdown b/doc/internal/code-style.markdown
index 65508fe9..f65eca0a 100644
--- a/doc/internal/code-style.markdown
+++ b/doc/internal/code-style.markdown
@@ -23,6 +23,8 @@ Guidelines that could be easily automated, have been. Please install:
You can then run `make fmt` to format both C++ and Rust code.
+Note: If you are running into issues running `make fmt` locally, there is a lightweight Docker container available you can use to format. Instructions are in the [Docker file](../../docker/code-formatting-tools.dockerfile).
+
[editorconfig]: https://editorconfig.org/ "EditorConfig"
[astyle]: http://astyle.sourceforge.net/ "Artistic Style"
diff --git a/doc/newsboat.asciidoc b/doc/newsboat.asciidoc
index 8d1cb0c5..47d9a4b4 100644
--- a/doc/newsboat.asciidoc
+++ b/doc/newsboat.asciidoc
@@ -684,8 +684,23 @@ It is also possible to specify an API token instead of the username/password com
See also <<miniflux-tokenfile,`miniflux-tokenfile`>>, and
<<miniflux-tokeneval,`miniflux-tokeneval`>>.
-Unlike with other backends, Miniflux's starring/bookmarking feature is not
-currently supported in Newsboat.
+In addition, Miniflux provides the ability to "star"
+articles. Starred articles are basically bookmarks. Newsboat allows the
+use of this feature by mapping its powerful "flags" to the "star"/"unstar"
+operations.
+
+In order to use this mapping, all you need to do is to configure the flags
+that shall be used:
+
+ miniflux-flag-star "a"
+
+After that, use these flags when you edit flags for an article, and these
+articles will be starred.
+
+By default a "Starred Items" feed is included in the feed list. This can be
+removed with:
+
+ miniflux-show-special-feeds "no"
Miniflux categories are converted into Newsboat tags. You can select and filter
feeds by tags; see <<_tagging>> and <<_filter_language>> for details.
diff --git a/include/minifluxapi.h b/include/minifluxapi.h
index 26da26c8..b8ae681b 100644
--- a/include/minifluxapi.h
+++ b/include/minifluxapi.h
@@ -43,6 +43,7 @@ private:
bool update_articles(const std::vector<std::string> guids,
nlohmann::json& args);
bool update_article(const std::string& guid, nlohmann::json& args);
+ bool star_article(const std::string& guid, bool star);
std::string auth_info;
std::string auth_token;
std::string server;
diff --git a/include/minifluxurlreader.h b/include/minifluxurlreader.h
index 2d86f901..232892ed 100644
--- a/include/minifluxurlreader.h
+++ b/include/minifluxurlreader.h
@@ -9,12 +9,13 @@ class RemoteApi;
class MinifluxUrlReader : public UrlReader {
public:
- MinifluxUrlReader(const std::string& url_file, RemoteApi* a);
+ MinifluxUrlReader(ConfigContainer* c, const std::string& url_file, RemoteApi* a);
~MinifluxUrlReader() override;
nonstd::optional<utils::ReadTextFileError> reload() override;
std::string get_source() override;
private:
+ ConfigContainer* cfg;
std::string file;
RemoteApi* api;
};
diff --git a/po/de.po b/po/de.po
index a37eccea..b1fa6a45 100644
--- a/po/de.po
+++ b/po/de.po
@@ -5,7 +5,7 @@ msgstr ""
"Project-Id-Version: newsboat 0.3\n"
"Report-Msgid-Bugs-To: https://github.com/newsboat/newsboat/issues\n"
"POT-Creation-Date: 2024-03-11 22:45+0300\n"
-"PO-Revision-Date: 2023-12-11 21:45+0100\n"
+"PO-Revision-Date: 2024-03-12 20:15+0100\n"
"Last-Translator: Lysander Trischler <github@lyse.isobeef.org>\n"
"Language-Team: Andreas Krennmair <ak@newsbeuter.org>, Simon Nagl "
"<simonnagl@aim.com>, Lysander Trischler <github@lyse.isobeef.org>\n"
@@ -75,27 +75,24 @@ msgid "<queuefile>"
msgstr "<warteschlangendatei>"
#: newsboat.cpp:72
-#, fuzzy
msgid "use <queuefile> as podcast queue file"
-msgstr "<warteschlangendatei> als Warteschlangendatei verwenden"
+msgstr "<warteschlangendatei> als Podcast-Warteschlangendatei verwenden"
#: newsboat.cpp:77
-#, fuzzy
msgid "<searchfile>"
-msgstr "<cachedatei>"
+msgstr "<suchdatei>"
#: newsboat.cpp:78
msgid "save the input history of the search to <searchfile>"
-msgstr ""
+msgstr "Historie der Sucheingaben in <suchdatei> speichern"
#: newsboat.cpp:83
-#, fuzzy
msgid "<cmdlinefile>"
-msgstr "<cachedatei>"
+msgstr "<kommandozeilendatei>"
#: newsboat.cpp:84
msgid "save the input history of the command line to <cmdlinefile>"
-msgstr ""
+msgstr "Historie der Kommandozeileneingaben in <kommandozeilendatei> speichern"
# Es wird ein SQLite-VACUUM-Befehl ausgeführt.
#: newsboat.cpp:86
@@ -176,18 +173,17 @@ msgstr "Zwischenspeicher"
#. i18n: This is printed out by --help before the path to the queue file
#: newsboat.cpp:154
msgid "podcast queue"
-msgstr ""
+msgstr "Podcast-Warteschlange"
#. i18n: This is printed out by --help before the path to the search history file
#: newsboat.cpp:156
-#, fuzzy
msgid "search history"
-msgstr "Suche nach: "
+msgstr "Suchhistorie"
#. i18n: This is printed out by --help before the path to the cmdline history file
#: newsboat.cpp:158
msgid "command line history"
-msgstr ""
+msgstr "Kommandozeilenhistorie"
#: newsboat.cpp:176 src/pbcontroller.cpp:407
msgid ""
@@ -432,13 +428,12 @@ msgid "%s is inaccessible and can't be created\n"
msgstr "Die Datei %s kann weder gelesen noch erstellt werden\n"
#: src/controller.cpp:299
-#, fuzzy
msgid ""
"ERROR: You must set `feedbin-login` and one of `feedbin-password`, `feedbin-"
"passwordfile` or `feedbin-passwordeval` to use Feedbin\n"
msgstr ""
-"Fehler: Sie müssen „freshrss-login“ und entweder „freshrss-password“, "
-"„freshrss-passwordfile“ oder „freshrss-passwordeval“ setzen, um FreshRSS "
+"Fehler: Sie müssen „feedbin-login“ und entweder „feedbin-password“, "
+"„feedbin-passwordfile“ oder „feedbin-passwordeval“ setzen, um Feedbin "
"verwenden zu können\n"
#: src/controller.cpp:311
@@ -545,12 +540,11 @@ msgstr ""
"konfiguriert. Bitte tun Sie das und probieren Sie es erneut."
#: src/controller.cpp:437
-#, fuzzy
msgid ""
"It looks like you haven't configured any feeds in your Feedbin account. "
"Please do so, and try again."
msgstr ""
-"Es sieht so aus als hätten Sie keine Feeds in Ihrem Miniflux-Konto "
+"Es sieht so aus als hätten Sie keine Feeds in Ihrem Feedbin-Konto "
"konfiguriert. Bitte tun Sie das und probieren Sie es erneut."
#: src/controller.cpp:442
@@ -1808,14 +1802,12 @@ msgid "use <queuefile> as queue file"
msgstr "<warteschlangendatei> als Warteschlangendatei verwenden"
#: src/pbcontroller.cpp:368
-#, fuzzy
msgid "<lockfile>"
-msgstr "<logdatei>"
+msgstr "<sperrdatei>"
#: src/pbcontroller.cpp:369
-#, fuzzy
msgid "use <lockfile> as lock file"
-msgstr "Logs nach <logdatei> schreiben"
+msgstr "<sperrdatei> als Sperrdatei verwenden"
#: src/pbcontroller.cpp:371
msgid "start download on startup"
diff --git a/po/it.po b/po/it.po
index c174f8e4..66e4ab13 100644
--- a/po/it.po
+++ b/po/it.po
@@ -5,7 +5,7 @@ msgstr ""
"Project-Id-Version: newsboat 2.1\n"
"Report-Msgid-Bugs-To: https://github.com/newsboat/newsboat/issues\n"
"POT-Creation-Date: 2024-03-11 22:45+0300\n"
-"PO-Revision-Date: 2023-12-15 08:12+0100\n"
+"PO-Revision-Date: 2024-03-17 09:12+0100\n"
"Last-Translator: Mauro Scomparin <scompo@gmail.com>\n"
"Language-Team: Claudio M. Alessi <somppy@gmail.com>, Leandro Noferini "
"<leandro@noferini.org>, Mauro Scomparin <scompo@gmail.com>\n"
@@ -76,27 +76,24 @@ msgid "<queuefile>"
msgstr "<queuefile>"
#: newsboat.cpp:72
-#, fuzzy
msgid "use <queuefile> as podcast queue file"
-msgstr "usa <queuefile> come file cache"
+msgstr "usa <queuefile> come file per coda podcast"
#: newsboat.cpp:77
-#, fuzzy
msgid "<searchfile>"
-msgstr "<cachefile>"
+msgstr "<searchfile>"
#: newsboat.cpp:78
msgid "save the input history of the search to <searchfile>"
-msgstr ""
+msgstr "salva la storia dell'input della ricerca in <searchfile>"
#: newsboat.cpp:83
-#, fuzzy
msgid "<cmdlinefile>"
-msgstr "<cachefile>"
+msgstr "<cmdlinefile>"
#: newsboat.cpp:84
msgid "save the input history of the command line to <cmdlinefile>"
-msgstr ""
+msgstr "salva la storia dell'input della linea di comando in <cmdlinefile>"
#: newsboat.cpp:86
msgid "compact the cache"
@@ -177,18 +174,17 @@ msgstr "cache"
#. i18n: This is printed out by --help before the path to the queue file
#: newsboat.cpp:154
msgid "podcast queue"
-msgstr ""
+msgstr "coda podcast"
#. i18n: This is printed out by --help before the path to the search history file
#: newsboat.cpp:156
-#, fuzzy
msgid "search history"
-msgstr "Ricerca: "
+msgstr "storia ricerca"
#. i18n: This is printed out by --help before the path to the cmdline history file
#: newsboat.cpp:158
msgid "command line history"
-msgstr ""
+msgstr "storia linea di comando"
#: newsboat.cpp:176 src/pbcontroller.cpp:407
msgid ""
@@ -432,13 +428,12 @@ msgid "%s is inaccessible and can't be created\n"
msgstr "%s è inaccessibile e non può essere creato\n"
#: src/controller.cpp:299
-#, fuzzy
msgid ""
"ERROR: You must set `feedbin-login` and one of `feedbin-password`, `feedbin-"
"passwordfile` or `feedbin-passwordeval` to use Feedbin\n"
msgstr ""
-"ERRORE: Devi impostare `freshrss-login` e una tra `freshrss-password`, "
-"`freshrss-passwordfile` o `freshrss-passwordeval` per usare FreshRSS\n"
+"ERRORE: Devi impostare `feedbin-login` e una tra `feedbin-password`, "
+"`feedbin-passwordfile` o `feedbin-passwordeval` per usare Feedbin\n"
#: src/controller.cpp:311
msgid "ERROR: You must set `freshrss-url` to use FreshRSS\n"
@@ -540,12 +535,11 @@ msgstr ""
"favore, fallo e riprova."
#: src/controller.cpp:437
-#, fuzzy
msgid ""
"It looks like you haven't configured any feeds in your Feedbin account. "
"Please do so, and try again."
msgstr ""
-"Sembra che tu non abbia configurato alcun feed nel tuo account Miniflux. Per "
+"Sembra che tu non abbia configurato alcun feed nel tuo account Feedbin. Per "
"favore, fallo e riprova."
#: src/controller.cpp:442
@@ -1799,14 +1793,12 @@ msgid "use <queuefile> as queue file"
msgstr "usa <queuefile> come file cache"
#: src/pbcontroller.cpp:368
-#, fuzzy
msgid "<lockfile>"
-msgstr "<logfile>"
+msgstr "<lockfile>"
#: src/pbcontroller.cpp:369
-#, fuzzy
msgid "use <lockfile> as lock file"
-msgstr "usa <logfile> come log file di output"
+msgstr "usa <lockfile> come file di blocco"
#: src/pbcontroller.cpp:371
msgid "start download on startup"
diff --git a/po/nl.po b/po/nl.po
index ae72630e..51ca92f0 100644
--- a/po/nl.po
+++ b/po/nl.po
@@ -6,7 +6,7 @@ msgstr ""
"Project-Id-Version: newsboat 2.7\n"
"Report-Msgid-Bugs-To: https://github.com/newsboat/newsboat/issues\n"
"POT-Creation-Date: 2024-03-11 22:45+0300\n"
-"PO-Revision-Date: 2023-12-16 12:38+0100\n"
+"PO-Revision-Date: 2024-03-17 17:52+0100\n"
"Last-Translator: Dennis van der Schagt <dennisschagt@gmail.com>\n"
"Language-Team: Dutch <vertalen@vrijschrift.org>, Erwin Poeze <donnut@outlook."
"com>, Dennis van der Schagt <dennisschagt@gmail.com>\n"
@@ -15,7 +15,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-"X-Generator: Poedit 3.4.1\n"
+"X-Generator: Poedit 3.4.2\n"
#: newsboat.cpp:31
#, c-format
@@ -77,27 +77,24 @@ msgid "<queuefile>"
msgstr "<bestand>"
#: newsboat.cpp:72
-#, fuzzy
msgid "use <queuefile> as podcast queue file"
-msgstr "gebruik <bestand> als downloadlijst"
+msgstr "gebruik <wachtrij-bestand> als podcast wachtrij bestand"
#: newsboat.cpp:77
-#, fuzzy
msgid "<searchfile>"
-msgstr "<bestand>"
+msgstr "<zoekopdrachten-bestand>"
#: newsboat.cpp:78
msgid "save the input history of the search to <searchfile>"
-msgstr ""
+msgstr "zoekgeschiedenis opslaan in <zoekopdrachten-bestand>"
#: newsboat.cpp:83
-#, fuzzy
msgid "<cmdlinefile>"
-msgstr "<bestand>"
+msgstr "<opdrachtregel-bestand>"
#: newsboat.cpp:84
msgid "save the input history of the command line to <cmdlinefile>"
-msgstr ""
+msgstr "opdrachtregel geschiedenis opslaan in <opdrachtregel-bestand>"
#: newsboat.cpp:86
msgid "compact the cache"
@@ -178,18 +175,17 @@ msgstr "cache"
#. i18n: This is printed out by --help before the path to the queue file
#: newsboat.cpp:154
msgid "podcast queue"
-msgstr ""
+msgstr "podcast wachtrij"
#. i18n: This is printed out by --help before the path to the search history file
#: newsboat.cpp:156
-#, fuzzy
msgid "search history"
-msgstr "Zoeken naar: "
+msgstr "zoekgeschiedenis"
#. i18n: This is printed out by --help before the path to the cmdline history file
#: newsboat.cpp:158
msgid "command line history"
-msgstr ""
+msgstr "opdrachtregel geschiedenis"
#: newsboat.cpp:176 src/pbcontroller.cpp:407
msgid ""
@@ -435,14 +431,13 @@ msgid "%s is inaccessible and can't be created\n"
msgstr "%s is niet toegangelijk en kan ook niet aangemaakt worden\n"
#: src/controller.cpp:299
-#, fuzzy
msgid ""
"ERROR: You must set `feedbin-login` and one of `feedbin-password`, `feedbin-"
"passwordfile` or `feedbin-passwordeval` to use Feedbin\n"
msgstr ""
-"FOUT: Configureer `freshrss-login` en één van de volgende opties (`freshrss-"
-"password`, `freshrss-passwordfile` or `freshrss-passwordeval`) om FreshRSS "
-"te gebruiken\n"
+"FOUT: Configureer `feedbin-login` en één van de volgende opties (`feedbin-"
+"password`, `feedbin-passwordfile` or `feedbin-passwordeval`) om Feedbin te "
+"gebruiken\n"
#: src/controller.cpp:311
msgid "ERROR: You must set `freshrss-url` to use FreshRSS\n"
@@ -549,12 +544,11 @@ msgstr ""
"account. Configureer enkele feeds en probeer dan opnieuw."
#: src/controller.cpp:437
-#, fuzzy
msgid ""
"It looks like you haven't configured any feeds in your Feedbin account. "
"Please do so, and try again."
msgstr ""
-"Het lijkt erop dat u nog geen feeds geconfigureerd hebt in uw Miniflux-"
+"Het lijkt erop dat u nog geen feeds geconfigureerd hebt in uw Feedbin-"
"account. Configureer enkele feeds en probeer dan opnieuw."
#: src/controller.cpp:442
@@ -1807,14 +1801,12 @@ msgid "use <queuefile> as queue file"
msgstr "gebruik <bestand> als downloadlijst"
#: src/pbcontroller.cpp:368
-#, fuzzy
msgid "<lockfile>"
-msgstr "<bestand>"
+msgstr "<lock-bestand>"
#: src/pbcontroller.cpp:369
-#, fuzzy
msgid "use <lockfile> as lock file"
-msgstr "<bestand> als logbestand gebruiken"
+msgstr "<lock-bestand> als lock bestand gebruiken"
#: src/pbcontroller.cpp:371
msgid "start download on startup"
diff --git a/po/pl.po b/po/pl.po
index 90671d10..1754be25 100644
--- a/po/pl.po
+++ b/po/pl.po
@@ -6,7 +6,7 @@ msgstr ""
"Project-Id-Version: newsboat 2.5\n"
"Report-Msgid-Bugs-To: https://github.com/newsboat/newsboat/issues\n"
"POT-Creation-Date: 2024-03-11 22:45+0300\n"
-"PO-Revision-Date: 2023-12-11 20:10+0100\n"
+"PO-Revision-Date: 2024-03-11 23:26+0100\n"
"Last-Translator: Michal Siemek <carnophage@dobramama.pl>\n"
"Language-Team: Polish <pl@li.org>\n"
"Language: pl\n"
@@ -15,7 +15,7 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 "
"|| n%100>14) ? 1 : 2);\n"
-"X-Generator: Poedit 3.4.1\n"
+"X-Generator: Poedit 3.4.2\n"
#: newsboat.cpp:31
#, c-format
@@ -77,27 +77,24 @@ msgid "<queuefile>"
msgstr "<plik kolejki>"
#: newsboat.cpp:72
-#, fuzzy
msgid "use <queuefile> as podcast queue file"
-msgstr "użyj <plik kolejki> jako pliku kolejki"
+msgstr "użyj <plik kolejki> jako pliku kolejki podkastów"
#: newsboat.cpp:77
-#, fuzzy
msgid "<searchfile>"
-msgstr "<plik pamięci podręcznej>"
+msgstr "<plik wyszukiwania>"
#: newsboat.cpp:78
msgid "save the input history of the search to <searchfile>"
-msgstr ""
+msgstr "zapisz historię wyszukiwania do <plik wyszukiwania>"
#: newsboat.cpp:83
-#, fuzzy
msgid "<cmdlinefile>"
-msgstr "<plik pamięci podręcznej>"
+msgstr "<plik wiersza poleceń>"
#: newsboat.cpp:84
msgid "save the input history of the command line to <cmdlinefile>"
-msgstr ""
+msgstr "zapisz historię poleceń do <plik wiersza poleceń>"
#: newsboat.cpp:86
msgid "compact the cache"
@@ -177,18 +174,17 @@ msgstr "plik pamięci podręcznej"
#. i18n: This is printed out by --help before the path to the queue file
#: newsboat.cpp:154
msgid "podcast queue"
-msgstr ""
+msgstr "kolejka podkastów"
#. i18n: This is printed out by --help before the path to the search history file
#: newsboat.cpp:156
-#, fuzzy
msgid "search history"
-msgstr "Szukaj: "
+msgstr "historia wyszukiwania"
#. i18n: This is printed out by --help before the path to the cmdline history file
#: newsboat.cpp:158
msgid "command line history"
-msgstr ""
+msgstr "historia wiersza poleceń"
#: newsboat.cpp:176 src/pbcontroller.cpp:407
msgid ""
@@ -432,14 +428,12 @@ msgid "%s is inaccessible and can't be created\n"
msgstr "%s jest niedostępny i nie może zostać utworzony\n"
#: src/controller.cpp:299
-#, fuzzy
msgid ""
"ERROR: You must set `feedbin-login` and one of `feedbin-password`, `feedbin-"
"passwordfile` or `feedbin-passwordeval` to use Feedbin\n"
msgstr ""
-"BŁĄD: Musisz ustawić `freshrss-login` oraz jeden z `freshrss-password`, "
-"`freshrss-passwordfile` lub `freshrss-passwordeval` aby korzystać z "
-"FreshRSS\n"
+"BŁĄD: Musisz ustawić `feedbin-login` oraz jeden z `feedbin-password`, "
+"`feedbin-passwordfile` lub `feedbin-passwordeval` aby korzystać z Feedbin\n"
#: src/controller.cpp:311
msgid "ERROR: You must set `freshrss-url` to use FreshRSS\n"
@@ -542,13 +536,12 @@ msgstr ""
"Miniflux. Wykonaj to proszę i spróbuj ponownie."
#: src/controller.cpp:437
-#, fuzzy
msgid ""
"It looks like you haven't configured any feeds in your Feedbin account. "
"Please do so, and try again."
msgstr ""
"Wygląda na to, że nie skonfigurowałeś żadnych kanałów na swoim koncie "
-"Miniflux. Wykonaj to proszę i spróbuj ponownie."
+"Feedbin. Wykonaj to proszę i spróbuj ponownie."
#: src/controller.cpp:442
msgid ""
@@ -1806,14 +1799,12 @@ msgid "use <queuefile> as queue file"
msgstr "użyj <plik kolejki> jako pliku kolejki"
#: src/pbcontroller.cpp:368
-#, fuzzy
msgid "<lockfile>"
-msgstr "<plik z logami>"
+msgstr "<plik blokady>"
#: src/pbcontroller.cpp:369
-#, fuzzy
msgid "use <lockfile> as lock file"
-msgstr "użyj <plik z logami> jako wyjściowy plik z logami"
+msgstr "użyj <plik blokady> jako pliku blokady"
#: src/pbcontroller.cpp:371
msgid "start download on startup"
diff --git a/po/ru.po b/po/ru.po
index 54e70b5c..e2dc564a 100644
--- a/po/ru.po
+++ b/po/ru.po
@@ -6,7 +6,7 @@ msgstr ""
"Project-Id-Version: newsboat 2.11\n"
"Report-Msgid-Bugs-To: https://github.com/newsboat/newsboat/issues\n"
"POT-Creation-Date: 2024-03-11 22:45+0300\n"
-"PO-Revision-Date: 2023-12-13 21:13+0300\n"
+"PO-Revision-Date: 2024-03-21 21:40+0300\n"
"Last-Translator: Alexander Batischev <eual.jp@gmail.com>\n"
"Language-Team: Konstantin Shakhnov <kastian@mail.ru>, Alexander Batischev "
"<eual.jp@gmail.com>\n"
@@ -79,27 +79,24 @@ msgid "<queuefile>"
msgstr "<файл очереди>"
#: newsboat.cpp:72
-#, fuzzy
msgid "use <queuefile> as podcast queue file"
-msgstr "использовать <файл очереди> как файл очереди"
+msgstr "использовать <файл очереди> как файл очереди подкастов"
#: newsboat.cpp:77
-#, fuzzy
msgid "<searchfile>"
-msgstr "<файл кэша>"
+msgstr "<файл поиска>"
#: newsboat.cpp:78
msgid "save the input history of the search to <searchfile>"
-msgstr ""
+msgstr "сохранять историю поиска в <файл поиска>"
#: newsboat.cpp:83
-#, fuzzy
msgid "<cmdlinefile>"
-msgstr "<файл кэша>"
+msgstr "<файл командной строки>"
#: newsboat.cpp:84
msgid "save the input history of the command line to <cmdlinefile>"
-msgstr ""
+msgstr "сохранять историю ввода командной строки в <файл командной строки>"
#: newsboat.cpp:86
msgid "compact the cache"
@@ -181,18 +178,17 @@ msgstr "кэш лент"
#. i18n: This is printed out by --help before the path to the queue file
#: newsboat.cpp:154
msgid "podcast queue"
-msgstr ""
+msgstr "очередь подкастов"
#. i18n: This is printed out by --help before the path to the search history file
#: newsboat.cpp:156
-#, fuzzy
msgid "search history"
-msgstr "Искать: "
+msgstr "история поиска"
#. i18n: This is printed out by --help before the path to the cmdline history file
#: newsboat.cpp:158
msgid "command line history"
-msgstr ""
+msgstr "история командной строки"
#: newsboat.cpp:176 src/pbcontroller.cpp:407
msgid ""
@@ -436,13 +432,12 @@ msgid "%s is inaccessible and can't be created\n"
msgstr "%s недоступен и не может быть создан\n"
#: src/controller.cpp:299
-#, fuzzy
msgid ""
"ERROR: You must set `feedbin-login` and one of `feedbin-password`, `feedbin-"
"passwordfile` or `feedbin-passwordeval` to use Feedbin\n"
msgstr ""
-"Ошибка: Для использования FreshRSS нужно задать `freshrss-login` и одно из: "
-"`freshrss-password`, `freshrss-passwordfile`, `freshrss-passwordeval`\n"
+"Ошибка: Для использования Feedbin нужно задать `feedbin-login` и одно из: "
+"`feedbin-password`, `feedbin-passwordfile`, `feedbin-passwordeval`\n"
#: src/controller.cpp:311
msgid "ERROR: You must set `freshrss-url` to use FreshRSS\n"
@@ -544,13 +539,12 @@ msgstr ""
"Miniflux. Сделайте это и попробуйте еще раз."
#: src/controller.cpp:437
-#, fuzzy
msgid ""
"It looks like you haven't configured any feeds in your Feedbin account. "
"Please do so, and try again."
msgstr ""
"Похоже что вы не настроили ни одной ленты новостей в своей учётной записи в "
-"Miniflux. Сделайте это и попробуйте еще раз."
+"Feedbin. Сделайте это и попробуйте еще раз."
#: src/controller.cpp:442
msgid ""
@@ -1803,14 +1797,12 @@ msgid "use <queuefile> as queue file"
msgstr "использовать <файл очереди> как файл очереди"
#: src/pbcontroller.cpp:368
-#, fuzzy
msgid "<lockfile>"
-msgstr "<файл журнала>"
+msgstr "<файл блокировки>"
#: src/pbcontroller.cpp:369
-#, fuzzy
msgid "use <lockfile> as lock file"
-msgstr "использовать <файл журнала> как файл вывода для журнала"
+msgstr "использовать <файл блокировки> как файл блокировки доступа к кэшу"
#: src/pbcontroller.cpp:371
msgid "start download on startup"
diff --git a/po/tr.po b/po/tr.po
index 69c3196b..34f846c2 100644
--- a/po/tr.po
+++ b/po/tr.po
@@ -1,12 +1,12 @@
# H. Gökhan SARI <hsa2@difuzyon.net>, 2008
-# Emir SARI <emir_sari@icloud.com>, 2020-2023
+# Emir SARI <emir_sari@icloud.com>, 2020-2024
#
msgid ""
msgstr ""
"Project-Id-Version: newsboat\n"
"Report-Msgid-Bugs-To: https://github.com/newsboat/newsboat/issues\n"
"POT-Creation-Date: 2024-03-11 22:45+0300\n"
-"PO-Revision-Date: 2023-09-14 23:00+0300\n"
+"PO-Revision-Date: 2024-03-12 15:00+0300\n"
"Last-Translator: Emir SARI <emir_sari@icloud.com>\n"
"Language-Team: https://github.com/bitigchi/newsboat\n"
"Language: tr\n"
@@ -76,27 +76,24 @@ msgid "<queuefile>"
msgstr "<kuyruk-dosyası>"
#: newsboat.cpp:72
-#, fuzzy
msgid "use <queuefile> as podcast queue file"
-msgstr "<kuyruk-dosyası>'nı kuyruk dosyası olarak kullan"
+msgstr "<kuyruk-dosyası>'nı pod yayını kuyruk dosyası olarak kullan"
#: newsboat.cpp:77
-#, fuzzy
msgid "<searchfile>"
-msgstr "<önbellek-dosyası>"
+msgstr "<arama-dosyası>"
#: newsboat.cpp:78
msgid "save the input history of the search to <searchfile>"
-msgstr ""
+msgstr "arama girdisi geçmişini <arama-dosyası>'na kaydet"
#: newsboat.cpp:83
-#, fuzzy
msgid "<cmdlinefile>"
-msgstr "<önbellek-dosyası>"
+msgstr "<komut-satırı-dosyası>"
#: newsboat.cpp:84
msgid "save the input history of the command line to <cmdlinefile>"
-msgstr ""
+msgstr "komut satırın girdisi geçmişini <komut-satırı--dosyası>'na kaydet"
#: newsboat.cpp:86
msgid "compact the cache"
@@ -176,18 +173,17 @@ msgstr "önbellek"
#. i18n: This is printed out by --help before the path to the queue file
#: newsboat.cpp:154
msgid "podcast queue"
-msgstr ""
+msgstr "pod yayını kuyruğu"
#. i18n: This is printed out by --help before the path to the search history file
#: newsboat.cpp:156
-#, fuzzy
msgid "search history"
-msgstr "Ara: "
+msgstr "arama geçmişi"
#. i18n: This is printed out by --help before the path to the cmdline history file
#: newsboat.cpp:158
msgid "command line history"
-msgstr ""
+msgstr "komut satırı geçmişi"
#: newsboat.cpp:176 src/pbcontroller.cpp:407
msgid ""
@@ -431,13 +427,12 @@ msgid "%s is inaccessible and can't be created\n"
msgstr "%s erişilemiyor ve oluşturulamaz\n"
#: src/controller.cpp:299
-#, fuzzy
msgid ""
"ERROR: You must set `feedbin-login` and one of `feedbin-password`, `feedbin-"
"passwordfile` or `feedbin-passwordeval` to use Feedbin\n"
msgstr ""
-"HATA: FreshRSS'i kullanmak için `freshrss-login` ve `freshrss-password` veya "
-"`freshrss-passwordfile` veya `freshrss-passwordeval` seçeneklerinden biri "
+"HATA: Feedbin'i kullanmak için `feedbin-login` ve `feedbin-password` veya "
+"`feedbin-passwordfile` veya `feedbin-passwordeval` seçeneklerinden biri "
"ayarlı olmalıdır\n"
#: src/controller.cpp:311
@@ -541,12 +536,11 @@ msgstr ""
"Lütfen bir tane ayarlayıp yeniden deneyin."
#: src/controller.cpp:437
-#, fuzzy
msgid ""
"It looks like you haven't configured any feeds in your Feedbin account. "
"Please do so, and try again."
msgstr ""
-"Görünüşe göre Miniflux hesabınızda herhangi bir besleme ayarlamamışsınız. "
+"Görünüşe göre Feedbin hesabınızda herhangi bir besleme ayarlamamışsınız. "
"Lütfen bir tane ayarlayıp yeniden deneyin."
#: src/controller.cpp:442
@@ -1725,9 +1719,8 @@ msgid "`%s' is not a valid key command"
msgstr "'%s', geçerli bir düğme komutu değil"
#: src/keymap.cpp:984
-#, fuzzy
msgid "failed to parse binding"
-msgstr "Tarayıcı başlatılamadı"
+msgstr "bağıntı ayrıştırılamadı"
#: src/keymap.cpp:1016
#, c-format
@@ -1799,14 +1792,12 @@ msgid "use <queuefile> as queue file"
msgstr "<kuyruk-dosyası>'nı kuyruk dosyası olarak kullan"
#: src/pbcontroller.cpp:368
-#, fuzzy
msgid "<lockfile>"
-msgstr "<günlük-dosyası>"
+msgstr "<kilit-dosyası>"
#: src/pbcontroller.cpp:369
-#, fuzzy
msgid "use <lockfile> as lock file"
-msgstr "<günlük-dosyası>'nı çıktı kaydı için kullan"
+msgstr "<kilit-dosyası>'nı kilit dosyası olarak kullan"
#: src/pbcontroller.cpp:371
msgid "start download on startup"
diff --git a/po/uk.po b/po/uk.po
index 6b4dcee8..b86d13c0 100644
--- a/po/uk.po
+++ b/po/uk.po
@@ -6,7 +6,7 @@ msgstr ""
"Project-Id-Version: newsboat 2.11\n"
"Report-Msgid-Bugs-To: https://github.com/newsboat/newsboat/issues\n"
"POT-Creation-Date: 2024-03-11 22:45+0300\n"
-"PO-Revision-Date: 2023-12-13 21:14+0300\n"
+"PO-Revision-Date: 2024-03-21 21:46+0300\n"
"Last-Translator: Alexander Batischev <eual.jp@gmail.com>\n"
"Language-Team: Ivan Kovnatsky <sevenfourk@gmail.com>, Alexander Batischev "
"<eual.jp@gmail.com>\n"
@@ -78,27 +78,24 @@ msgid "<queuefile>"
msgstr "<файл черги>"
#: newsboat.cpp:72
-#, fuzzy
msgid "use <queuefile> as podcast queue file"
-msgstr "використовувати <файл черги> як файл черги"
+msgstr "використовувати <файл черги> як файл черги подкастів"
#: newsboat.cpp:77
-#, fuzzy
msgid "<searchfile>"
-msgstr "<файлкешу>"
+msgstr "<файл пошуку>"
#: newsboat.cpp:78
msgid "save the input history of the search to <searchfile>"
-msgstr ""
+msgstr "зберігати історію пошуку до <файлу пошуку>"
#: newsboat.cpp:83
-#, fuzzy
msgid "<cmdlinefile>"
-msgstr "<файлкешу>"
+msgstr "<файл історії команд>"
#: newsboat.cpp:84
msgid "save the input history of the command line to <cmdlinefile>"
-msgstr ""
+msgstr "зберігати історію вводу команд до <файлу історії команд>"
#: newsboat.cpp:86
msgid "compact the cache"
@@ -179,18 +176,17 @@ msgstr "кеш"
#. i18n: This is printed out by --help before the path to the queue file
#: newsboat.cpp:154
msgid "podcast queue"
-msgstr ""
+msgstr "черга подкастів"
#. i18n: This is printed out by --help before the path to the search history file
#: newsboat.cpp:156
-#, fuzzy
msgid "search history"
-msgstr "Шукати: "
+msgstr "історія пошку"
#. i18n: This is printed out by --help before the path to the cmdline history file
#: newsboat.cpp:158
msgid "command line history"
-msgstr ""
+msgstr "історія команд"
#: newsboat.cpp:176 src/pbcontroller.cpp:407
msgid ""
@@ -435,13 +431,12 @@ msgid "%s is inaccessible and can't be created\n"
msgstr "%s недоступний і не може бути створеним\n"
#: src/controller.cpp:299
-#, fuzzy
msgid ""
"ERROR: You must set `feedbin-login` and one of `feedbin-password`, `feedbin-"
"passwordfile` or `feedbin-passwordeval` to use Feedbin\n"
msgstr ""
-"Помилка: для використання FreshRSS потрібно задати `freshrss-login` та одне "
-"із: `freshrss-password`, `freshrss-passwordfile` чи `freshrss-passwordeval`\n"
+"Помилка: для використання Feedbin потрібно задати `feedbin-login` та одне "
+"із: `feedbin-password`, `feedbin-passwordfile` чи `feedbin-passwordeval`\n"
#: src/controller.cpp:311
msgid "ERROR: You must set `freshrss-url` to use FreshRSS\n"
@@ -509,7 +504,7 @@ msgid ""
"It looks like you haven't configured any feeds in your The Old Reader "
"account. Please do so, and try again."
msgstr ""
-"Схоже не те, що ви не налаштували ні одної теми у аккаунті The Old Reader."
+"Схоже на те, що ви не налаштували ні одної теми у аккаунті The Old Reader."
"Будь ласка, зробіть це і спробуйте знову."
#: src/controller.cpp:417
@@ -517,7 +512,7 @@ msgid ""
"It looks like you haven't configured any feeds in your Tiny Tiny RSS "
"account. Please do so, and try again."
msgstr ""
-"Схоже не те, що ви не налаштували ні одної теми у аккаунті Tiny Tiny RSS."
+"Схоже на те, що ви не налаштували ні одної теми у аккаунті Tiny Tiny RSS."
"Будь ласка, зробіть це і спробуйте знову."
#: src/controller.cpp:422
@@ -525,7 +520,7 @@ msgid ""
"It looks like you haven't configured any feeds in your NewsBlur account. "
"Please do so, and try again."
msgstr ""
-"Схоже не те, що ви не налаштували ні одної теми у аккаунті NewsBlur.Будь "
+"Схоже на те, що ви не налаштували ні одної теми у аккаунті NewsBlur.Будь "
"ласка, зробіть це і спробуйте знову."
#: src/controller.cpp:427
@@ -533,7 +528,7 @@ msgid ""
"It looks like you haven't configured any feeds in your Inoreader account. "
"Please do so, and try again."
msgstr ""
-"Схоже не те, що ви не налаштували ні одної теми у аккаунті Inoreader.Будь "
+"Схоже на те, що ви не налаштували ні одної теми у аккаунті Inoreader.Будь "
"ласка, зробіть це і спробуйте знову."
#: src/controller.cpp:432
@@ -541,16 +536,15 @@ msgid ""
"It looks like you haven't configured any feeds in your Miniflux account. "
"Please do so, and try again."
msgstr ""
-"Схоже не те, що ви не налаштували ні одної теми у аккаунті Miniflux.Будь "
+"Схоже на те, що ви не налаштували ні одної теми у аккаунті Miniflux.Будь "
"ласка, зробіть це і спробуйте знову."
#: src/controller.cpp:437
-#, fuzzy
msgid ""
"It looks like you haven't configured any feeds in your Feedbin account. "
"Please do so, and try again."
msgstr ""
-"Схоже не те, що ви не налаштували ні одної теми у аккаунті Miniflux.Будь "
+"Схоже на те, що ви не налаштували ні одної теми у аккаунті Feedbin.Будь "
"ласка, зробіть це і спробуйте знову."
#: src/controller.cpp:442
@@ -558,7 +552,7 @@ msgid ""
"It looks like you haven't configured any feeds in your Owncloud/Nextcloud "
"account. Please do so, and try again."
msgstr ""
-"Схоже не те, що ви не налаштували ні одної теми у аккаунті Owncloud/"
+"Схоже на те, що ви не налаштували ні одної теми у аккаунті Owncloud/"
"Nextcloud. Будь ласка, зробіть це і спробуйте знову."
#: src/controller.cpp:455
@@ -1803,14 +1797,12 @@ msgid "use <queuefile> as queue file"
msgstr "використовувати <файл черги> як файл черги"
#: src/pbcontroller.cpp:368
-#, fuzzy
msgid "<lockfile>"
-msgstr "<файллогу>"
+msgstr "<блокуючий файл>"
#: src/pbcontroller.cpp:369
-#, fuzzy
msgid "use <lockfile> as lock file"
-msgstr "використовуйте <файллогу> як вихідний файл логу"
+msgstr "використовувати <блокуючий файл> для блокування кешу"
#: src/pbcontroller.cpp:371
msgid "start download on startup"
diff --git a/po/zh.po b/po/zh.po
index 68d6a17e..d291e06b 100644
--- a/po/zh.po
+++ b/po/zh.po
@@ -3,7 +3,7 @@ msgstr ""
"Project-Id-Version: newsboat 0.7\n"
"Report-Msgid-Bugs-To: https://github.com/newsboat/newsboat/issues\n"
"POT-Creation-Date: 2024-03-11 22:45+0300\n"
-"PO-Revision-Date: 2023-12-28 15:00+0800\n"
+"PO-Revision-Date: 2024-03-12 10:45+0800\n"
"Last-Translator: Yuhan Wang <cookiepieqaq@gmail.com>\n"
"Language-Team: josh yu <joshyupeng@gmail.com>, Yuhan Wang "
"<cookiepieqaq@gmail.com>\n"
@@ -74,27 +74,24 @@ msgid "<queuefile>"
msgstr "<队列文件>"
#: newsboat.cpp:72
-#, fuzzy
msgid "use <queuefile> as podcast queue file"
msgstr "使用<队列文件>作为保存播客队列的文件"
#: newsboat.cpp:77
-#, fuzzy
msgid "<searchfile>"
-msgstr "<缓存文件>"
+msgstr "<搜索历史文件>"
#: newsboat.cpp:78
msgid "save the input history of the search to <searchfile>"
-msgstr ""
+msgstr "将搜索历史保存到<搜索历史文件>"
#: newsboat.cpp:83
-#, fuzzy
msgid "<cmdlinefile>"
-msgstr "<缓存文件>"
+msgstr "<命令行历史文件>"
#: newsboat.cpp:84
msgid "save the input history of the command line to <cmdlinefile>"
-msgstr ""
+msgstr "将命令行输入历史保存到<命令行历史文件>"
#: newsboat.cpp:86
msgid "compact the cache"
@@ -174,18 +171,17 @@ msgstr "缓存文件"
#. i18n: This is printed out by --help before the path to the queue file
#: newsboat.cpp:154
msgid "podcast queue"
-msgstr ""
+msgstr "播客队列"
#. i18n: This is printed out by --help before the path to the search history file
#: newsboat.cpp:156
-#, fuzzy
msgid "search history"
-msgstr "查找:"
+msgstr "搜索历史"
#. i18n: This is printed out by --help before the path to the cmdline history file
#: newsboat.cpp:158
msgid "command line history"
-msgstr ""
+msgstr "命令行输入历史"
#: newsboat.cpp:176 src/pbcontroller.cpp:407
msgid ""
@@ -423,13 +419,12 @@ msgid "%s is inaccessible and can't be created\n"
msgstr "不能访问或创建 %s\n"
#: src/controller.cpp:299
-#, fuzzy
msgid ""
"ERROR: You must set `feedbin-login` and one of `feedbin-password`, `feedbin-"
"passwordfile` or `feedbin-passwordeval` to use Feedbin\n"
msgstr ""
-"错误:你必须设置`freshrss-login`和一个`freshrss-password`、`freshrss-"
-"passwordfile`或`freshrss-passwordeval`后才能使用 FreshRSS\n"
+"错误:你必须设置`feedbin-login`和一个`feedbin-password`、`feedbin-"
+"passwordfile`或`feedbin-passwordeval`后才能使用 Feedbin\n"
#: src/controller.cpp:311
msgid "ERROR: You must set `freshrss-url` to use FreshRSS\n"
@@ -525,12 +520,11 @@ msgstr ""
"看起来你还没有在 Miniflux 账户里配置任何种子。请先配置种子,然后再尝试一下。"
#: src/controller.cpp:437
-#, fuzzy
msgid ""
"It looks like you haven't configured any feeds in your Feedbin account. "
"Please do so, and try again."
msgstr ""
-"看起来你还没有在 Miniflux 账户里配置任何种子。请先配置种子,然后再尝试一下。"
+"看起来你还没有在 Feedbin 账户里配置任何种子。请先配置种子,然后再尝试一下。"
#: src/controller.cpp:442
msgid ""
@@ -1773,14 +1767,12 @@ msgid "use <queuefile> as queue file"
msgstr "使用<队列文件>作为保存播客队列的文件"
#: src/pbcontroller.cpp:368
-#, fuzzy
msgid "<lockfile>"
-msgstr "<日志文件>"
+msgstr "<锁文件>"
#: src/pbcontroller.cpp:369
-#, fuzzy
msgid "use <lockfile> as lock file"
-msgstr "使用<日志文件>作为记录日志的文件"
+msgstr "使用<锁文件>作为锁文件"
#: src/pbcontroller.cpp:371
msgid "start download on startup"
diff --git a/rust/regex-rs/Cargo.toml b/rust/regex-rs/Cargo.toml
index b2a4c377..98a09c3b 100644
--- a/rust/regex-rs/Cargo.toml
+++ b/rust/regex-rs/Cargo.toml
@@ -10,6 +10,6 @@ license = "MIT"
[dependencies]
strprintf = { path="../strprintf" }
-bitflags = "2.4"
+bitflags = "2.5"
libc = ">=0.2.69"
gettext-rs = "0.7.0"
diff --git a/src/configcontainer.cpp b/src/configcontainer.cpp
index 93420416..6e27cd2c 100644
--- a/src/configcontainer.cpp
+++ b/src/configcontainer.cpp
@@ -267,11 +267,15 @@ ConfigContainer::ConfigContainer()
{"ocnews-passwordeval", ConfigData("", ConfigDataType::STR)},
{"ocnews-flag-star", ConfigData("", ConfigDataType::STR)},
{"ocnews-url", ConfigData("", ConfigDataType::STR)},
+ {"miniflux-flag-star", ConfigData("", ConfigDataType::STR)},
{"miniflux-login", ConfigData("", ConfigDataType::STR)},
{"miniflux-min-items", ConfigData("100", ConfigDataType::INT)},
{"miniflux-password", ConfigData("", ConfigDataType::STR)},
{"miniflux-passwordfile", ConfigData("", ConfigDataType::PATH)},
{"miniflux-passwordeval", ConfigData("", ConfigDataType::STR)},
+ {
+ "miniflux-show-special-feeds",
+ ConfigData("yes", ConfigDataType::BOOL)},
{"miniflux-token", ConfigData("", ConfigDataType::STR)},
{"miniflux-tokenfile", ConfigData("", ConfigDataType::PATH)},
{"miniflux-tokeneval", ConfigData("", ConfigDataType::STR)},
diff --git a/src/controller.cpp b/src/controller.cpp
index b77bab7b..f0d90d25 100644
--- a/src/controller.cpp
+++ b/src/controller.cpp
@@ -357,7 +357,7 @@ int Controller::run(const CliArgsParser& args)
}
api = new MinifluxApi(cfg);
- urlcfg = new MinifluxUrlReader(configpaths.url_file(), api);
+ urlcfg = new MinifluxUrlReader(&cfg, configpaths.url_file(), api);
} else if (type == "inoreader") {
const auto all_set = !cfg.get_configvalue("inoreader-app-id").empty()
&& !cfg.get_configvalue("inoreader-app-key").empty();
@@ -507,7 +507,6 @@ int Controller::run(const CliArgsParser& args)
return EXIT_SUCCESS;
}
-
// if configured, we fill all query feeds with some data; no need to
// sort it, it will be refilled when actually opening it.
if (cfg.get_configvalue_as_bool("prepopulate-query-feeds")) {
diff --git a/src/minifluxapi.cpp b/src/minifluxapi.cpp
index 89458611..b21df56e 100644
--- a/src/minifluxapi.cpp
+++ b/src/minifluxapi.cpp
@@ -139,11 +139,41 @@ bool MinifluxApi::mark_article_read(const std::string& guid, bool read)
return true;
}
-bool MinifluxApi::update_article_flags(const std::string& /* oldflags */,
- const std::string& /* newflags */,
- const std::string& /* guid */)
+bool MinifluxApi::star_article(const std::string& guid, bool star)
{
- return false;
+ std::string getstate;
+ getstate = strprintf::fmt(
+ "/v1/entries/%s",
+ guid);
+ const json status = run_op(getstate, json(), HTTPMethod::GET);
+ bool current_star = status["starred"];
+
+ if (star != current_star) {
+ std::string putcontent;
+ putcontent = strprintf::fmt(
+ "/v1/entries/%s/bookmark",
+ guid);
+ const json content = run_op(putcontent, json(), HTTPMethod::PUT);
+ return content.is_null();
+ } else {
+ return true;
+ }
+}
+
+bool MinifluxApi::update_article_flags(const std::string& oldflags,
+ const std::string& newflags,
+ const std::string& guid )
+{
+ std::string star_flag = cfg.get_configvalue("miniflux-flag-star");
+ bool success = true;
+
+ if (star_flag.length() > 0) {
+ update_flag(oldflags, newflags, star_flag[0], [&](bool added) {
+ success = star_article(guid, added);
+ });
+ }
+
+ return success;
}
rsspp::Feed MinifluxApi::fetch_feed(const std::string& id)
@@ -158,7 +188,9 @@ rsspp::Feed MinifluxApi::fetch_feed(const std::string& id, CurlHandle& cached_ha
feed.rss_version = rsspp::Feed::MINIFLUX_JSON;
const std::string query =
- strprintf::fmt("/v1/feeds/%s/entries?order=published_at&direction=desc&limit=%u",
+ id == "starred" ?
+ "/v1/entries?starred=true"
+ : strprintf::fmt("/v1/feeds/%s/entries?order=published_at&direction=desc&limit=%u",
id,
cfg.get_configvalue_as_int("miniflux-min-items"));
@@ -268,7 +300,6 @@ json MinifluxApi::run_op(const std::string& path,
const std::string result = utils::retrieve_url(
url, easyhandle, cfg, auth_info, body, method);
-
LOG(Level::DEBUG,
"MinifluxApi::run_op(%s %s,...): body=%s reply = %s",
utils::http_method_str(method),
diff --git a/src/minifluxurlreader.cpp b/src/minifluxurlreader.cpp
index cc5bda5f..bfd26ebc 100644
--- a/src/minifluxurlreader.cpp
+++ b/src/minifluxurlreader.cpp
@@ -1,5 +1,6 @@
#include "minifluxurlreader.h"
+#include "configcontainer.h"
#include "fileurlreader.h"
#include "logger.h"
#include "remoteapi.h"
@@ -7,8 +8,11 @@
namespace newsboat {
-MinifluxUrlReader::MinifluxUrlReader(const std::string& url_file, RemoteApi* a)
- : file(url_file)
+MinifluxUrlReader::MinifluxUrlReader(ConfigContainer* c,
+ const std::string& url_file,
+ RemoteApi* a)
+ : cfg(c)
+ , file(url_file)
, api(a)
{
}
@@ -21,6 +25,16 @@ nonstd::optional<utils::ReadTextFileError> MinifluxUrlReader::reload()
tags.clear();
alltags.clear();
+ if (cfg->get_configvalue_as_bool("miniflux-show-special-feeds")) {
+ std::vector<std::string> tmptags;
+ const std::string star_url = "starred";
+ urls.push_back(star_url);
+ std::string star_tag = std::string("~") + _("Starred items");
+ tmptags.push_back(star_tag);
+ alltags.insert(star_tag);
+ tags[star_url] = tmptags;
+ }
+
FileUrlReader ur(file);
const auto error_message = ur.reload();
if (error_message.has_value()) {