diff options
-rw-r--r-- | Cargo.lock | 4 | ||||
-rw-r--r-- | contrib/slashdot-replace-newlines.xslt | 24 | ||||
-rw-r--r-- | doc/configcommands.dsv | 2 | ||||
-rw-r--r-- | doc/internal/code-style.markdown | 2 | ||||
-rw-r--r-- | doc/newsboat.asciidoc | 19 | ||||
-rw-r--r-- | include/minifluxapi.h | 1 | ||||
-rw-r--r-- | include/minifluxurlreader.h | 3 | ||||
-rw-r--r-- | po/de.po | 36 | ||||
-rw-r--r-- | po/it.po | 36 | ||||
-rw-r--r-- | po/nl.po | 40 | ||||
-rw-r--r-- | po/pl.po | 39 | ||||
-rw-r--r-- | po/ru.po | 36 | ||||
-rw-r--r-- | po/tr.po | 41 | ||||
-rw-r--r-- | po/uk.po | 48 | ||||
-rw-r--r-- | po/zh.po | 34 | ||||
-rw-r--r-- | rust/regex-rs/Cargo.toml | 2 | ||||
-rw-r--r-- | src/configcontainer.cpp | 4 | ||||
-rw-r--r-- | src/controller.cpp | 3 | ||||
-rw-r--r-- | src/minifluxapi.cpp | 43 | ||||
-rw-r--r-- | src/minifluxurlreader.cpp | 18 |
20 files changed, 231 insertions, 204 deletions
@@ -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> + <!-- ' ' encodes a newline character (\n) --> + <xsl:value-of select="str:replace(node(), ' ', '<br>')"/> + </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; }; @@ -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" @@ -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" @@ -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" @@ -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" @@ -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" @@ -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" @@ -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" @@ -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()) { |