pub / kontra

Der linke Newsaggregator.
git clone src.jayvii.de/pub/kontra.git
Home | Log | Files | Exports | Refs | README | RSS

commit c4a0ba805c5375d1906d861423096f1165511d25
parent 67c2c138aa50461dcb8045bd1613a29a4fd70db3
Author: JayVii <jayvii[AT]posteo[DOT]de>
Date:   Wed,  2 Jul 2025 17:14:19 +0200

feat: rework categories system

Diffstat:
Mindex.php | 175+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++------
Mnews-sources.json | 1365++++++++++++++++++++++++++++++++++++++++++++++++++++---------------------------
Mtools/gen_categories.php | 170+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--------------
3 files changed, 1203 insertions(+), 507 deletions(-)

diff --git a/index.php b/index.php @@ -171,9 +171,11 @@ </p> <p> Kontra ist ein Archiv mit aktuell - <?php echo count($config["sources"]); ?> Nachrichtenquellen in - <?php echo count($config["categories"]); ?> unterschiedlichen - Kategorien, aus dem sich Nutzer:innen nach ihren Interssen + <?php echo count($config["sources"]); ?> Nachrichtenquellen über + <?php echo count($config["regions"]); ?> Regionen und + <?php echo count($config["languages"]); ?> Sprachen in + <?php echo count($config["topics"]); ?> unterschiedlichen + Themenbereichen, aus dem sich Nutzer:innen nach ihren Interessen eigene Feeds erzeugen können. Die hier herunterladbaren <a href="https://de.wikipedia.org/wiki/Outline_Processor_Markup_Language" target="_blank"> Nachrichten-Feed Dateien @@ -247,18 +249,105 @@ <!-- Category Buttons --> <details id="categories"> <summary>Kategorien</summary> - + + <h3>Regionen</h3> + <div class="row"> + + <!-- List all configured regions --> + <?php + foreach ($config["regions"] as $region) { + ?> + <button + onclick="filter_category('<?php echo $region["name"]; ?>');" + title="<?php echo $region["description"]; ?>" + > + <?php echo "#" . $region["name"]; ?> + </button> + <?php + } + foreach ($config["local"] as $region) { + ?> + <button + onclick="filter_category('<?php echo $region["name"]; ?>');" + title="<?php echo $region["description"]; ?>" + > + <?php echo "#" . $region["name"]; ?> + </button> + <?php + } + ?> + + </div> + + <h3>Sprachen</h3> + <div class="row"> + + <!-- List all configured regions --> + <?php + foreach ($config["languages"] as $language) { + ?> + <button + onclick="filter_category('<?php echo $language["name"]; ?>');" + title="<?php echo $language["description"]; ?>" + > + <?php echo "#" . $language["name"]; ?> + </button> + <?php + } + ?> + + </div> + + <h3>Zugriff</h3> + <div class="row"> + + <!-- List all configured regions --> + <?php + foreach ($config["access"] as $access) { + ?> + <button + onclick="filter_category('<?php echo $access["name"]; ?>');" + title="<?php echo $access["description"]; ?>" + > + <?php echo "#" . $access["name"]; ?> + </button> + <?php + } + ?> + + </div> + + <h3>Medium</h3> + <div class="row"> + + <!-- List all configured regions --> + <?php + foreach ($config["medium"] as $medium) { + ?> + <button + onclick="filter_category('<?php echo $medium["name"]; ?>');" + title="<?php echo $medium["description"]; ?>" + > + <?php echo "#" . $medium["name"]; ?> + </button> + <?php + } + ?> + + </div> + + <h3>Themen</h3> <div class="row"> - <!-- List all configured categories --> + <!-- List all configured regions --> <?php - foreach ($config["categories"] as $category) { + foreach ($config["topics"] as $topic) { ?> <button - onclick="filter_category('<?php echo $category["name"]; ?>');" - title="<?php echo $category["description"]; ?>" + onclick="filter_category('<?php echo $topic["name"]; ?>');" + title="<?php echo $topic["description"]; ?>" > - <?php echo "#" . $category["name"]; ?> + <?php echo "#" . $topic["name"]; ?> </button> <?php } @@ -310,11 +399,60 @@ <!-- Entry-Categories --> <div class="categories"> + <strong>Region:</strong> + <?php + foreach ($source["regions"] as $region) { + $catentry = $config["regions"][$region] + ?> + <mark title="<?php echo $catentry["description"];?>"> + <?php echo "#" . $catentry["name"]; ?> + </mark> + <?php + } + foreach ($source["local"] as $local) { + $catentry = $config["local"][$local] + ?> + <mark title="<?php echo $catentry["description"];?>"> + <?php echo "#" . $catentry["name"]; ?> + </mark> + <?php + } + ?> + </div> + + <div class="categories"> + <strong>Sprachen:</strong> + <?php + foreach ($source["languages"] as $language) { + $catentry = $config["languages"][$language] + ?> + <mark title="<?php echo $catentry["description"];?>"> + <?php echo "#" . $catentry["name"]; ?> + </mark> + <?php + } + ?> + </div> + + <div class="categories"> + <strong>Zugang:</strong> + <?php + foreach ($source["access"] as $access) { + $catentry = $config["access"][$access] + ?> + <mark title="<?php echo $catentry["description"];?>"> + <?php echo "#" . $catentry["name"]; ?> + </mark> + <?php + } + ?> + </div> + <div class="categories"> + <strong>Medium:</strong> <?php - /* List all categories of current entry */ - foreach ($source["categories"] as $category) { - $catentry = $config["categories"][$category] + foreach ($source["medium"] as $medium) { + $catentry = $config["medium"][$medium] ?> <mark title="<?php echo $catentry["description"];?>"> <?php echo "#" . $catentry["name"]; ?> @@ -322,7 +460,20 @@ <?php } ?> + </div> + <div class="categories"> + <strong>Themen:</strong> + <?php + foreach ($source["topics"] as $topic) { + $catentry = $config["topics"][$topic] + ?> + <mark title="<?php echo $catentry["description"];?>"> + <?php echo "#" . $catentry["name"]; ?> + </mark> + <?php + } + ?> </div> </article> diff --git a/news-sources.json b/news-sources.json @@ -5,9 +5,13 @@ "desc": "Überregionale deutsche Tageszeitung, die als grün-links und linksalternativ beschrieben wird. Innenpolitische Nachrichten aus dem Politikressort.", "web": "https://taz.de/Politik/Deutschland/!p4616/", "rss": "https://taz.de/Politik/Deutschland/!p4616;rss/", - "categories": [ - "keine_bezahlschranke", "deutsch", "täglich", "politik", "innenpolitik", - "deutschland", "überregional" + "regions": [ "deutschland" ], + "local": [], + "languages": [ "deutsch" ], + "access": [ "keine_bezahlschranke" ], + "medium": [ "tageszeitung" ], + "topics": [ + "politik", "innenpolitik" ] }, "taz-pol-eu": { @@ -15,9 +19,13 @@ "desc": "Überregionale deutsche Tageszeitung, die als grün-links und linksalternativ beschrieben wird. Europapolitische Nachrichten aus dem Politikressort.", "web": "https://taz.de/Politik/Europa/!p4617/", "rss": "https://taz.de/Politik/Europa/!p4617;rss/", - "categories": [ - "keine_bezahlschranke", "deutsch", "täglich", "politik", "europa", - "überregional" + "regions": [ "europa" ], + "local": [], + "languages": [ "deutsch" ], + "access": [ "keine_bezahlschranke" ], + "medium": [ "tageszeitung" ], + "topics": [ + "politik", "innenpolitik", "international" ] }, "taz-pol-us": { @@ -25,9 +33,13 @@ "desc": "Überregionale deutsche Tageszeitung, die als grün-links und linksalternativ beschrieben wird. Nachrichten aus dem Politikresort über Nord-, Mittel- und Südamerika", "web": "https://taz.de/Politik/Amerika/!p4618/", "rss": "https://taz.de/Politik/Amerika/!p4618;rss/", - "categories": [ - "keine_bezahlschranke", "deutsch", "täglich", "politik", "außenpolitik", - "usa", "amerika", "überregional" + "regions": [ "amerika", "usa" ], + "local": [], + "languages": [ "deutsch" ], + "access": [ "keine_bezahlschranke" ], + "medium": [ "tageszeitung" ], + "topics": [ + "international" ] }, "taz-pol-af": { @@ -35,9 +47,13 @@ "desc": "Überregionale deutsche Tageszeitung, die als grün-links und linksalternativ beschrieben wird. Nachrichten aus dem Politikressort über Afrika.", "web": "https://taz.de/Politik/Afrika/!p4621/", "rss": "https://taz.de/Politik/Afrika/!p4621;rss/", - "categories": [ - "keine_bezahlschranke", "deutsch", "täglich", "politik", "außenpolitik", - "afrika", "überregional" + "regions": [ "afrika" ], + "local": [], + "languages": [ "deutsch" ], + "access": [ "keine_bezahlschranke" ], + "medium": [ "tageszeitung" ], + "topics": [ + "international" ] }, "taz-pol-as": { @@ -45,9 +61,13 @@ "desc": "Überregionale deutsche Tageszeitung, die als grün-links und linksalternativ beschrieben wird. Nachrichten aus dem Politikressort über Asien.", "web": "https://taz.de/Politik/Asien/!p4619/", "rss": "https://taz.de/Politik/Asien/!p4619;rss/", - "categories": [ - "keine_bezahlschranke", "deutsch", "täglich", "politik", "außenpolitik", - "asien", "überregional" + "regions": [ "asien" ], + "local": [], + "languages": [ "deutsch" ], + "access": [ "keine_bezahlschranke" ], + "medium": [ "tageszeitung" ], + "topics": [ + "international" ] }, "taz-pol-no": { @@ -55,9 +75,13 @@ "desc": "Überregionale deutsche Tageszeitung, die als grün-links und linksalternativ beschrieben wird. Nachrichten aus dem Politikressort über Nahost.", "web": "https://taz.de/Politik/Nahost/!p4620/", "rss": "https://taz.de/Politik/Nahost/!p4620;rss/", - "categories": [ - "keine_bezahlschranke", "deutsch", "täglich", "politik", "außenpolitik", - "nahost", "überregional" + "regions": [ "nahost" ], + "local": [], + "languages": [ "deutsch" ], + "access": [ "keine_bezahlschranke" ], + "medium": [ "tageszeitung" ], + "topics": [ + "international" ] }, "taz-pol-net": { @@ -65,9 +89,13 @@ "desc": "Überregionale deutsche Tageszeitung, die als grün-links und linksalternativ beschrieben wird. Netzpolitische Nachrichten aus dem Politikressort.", "web": "https://taz.de/Politik/Netzpolitik/!p4622/", "rss": "https://taz.de/Politik/Netzpolitik/!p4622;rss/", - "categories": [ - "keine_bezahlschranke", "deutsch", "täglich", "politik", "netz", - "überregional" + "regions": [ "deutschland" ], + "local": [], + "languages": [ "deutsch" ], + "access": [ "keine_bezahlschranke" ], + "medium": [ "tageszeitung" ], + "topics": [ + "politik", "netz" ] }, "taz-eco-net": { @@ -75,9 +103,13 @@ "desc": "Überregionale deutsche Tageszeitung, die als grün-links und linksalternativ beschrieben wird. Netzökonomische Nachrichten aus dem Ökoressort.", "web": "https://taz.de/Oeko/Netzoekonomie/!p4627/", "rss": "https://taz.de/Oeko/Netzoekonomie/!p4627;rss/", - "categories": [ - "keine_bezahlschranke", "deutsch", "täglich", "wirtschaft", "netz", - "überregional" + "regions": [ "deutschland" ], + "local": [], + "languages": [ "deutsch" ], + "access": [ "keine_bezahlschranke" ], + "medium": [ "tageszeitung" ], + "topics": [ + "wirtschaft", "netz" ] }, "taz-cul-net": { @@ -85,9 +117,13 @@ "desc": "Überregionale deutsche Tageszeitung, die als grün-links und linksalternativ beschrieben wird. Netzkulturnachrichten aus dem Kulturressort.", "web": "https://taz.de/Kultur/Netzkultur/!p4631/", "rss": "https://taz.de/Kultur/Netzkultur/!p4631;rss/", - "categories": [ - "keine_bezahlschranke", "deutsch", "täglich", "kultur", "netz", - "überregional" + "regions": [ "deutschland" ], + "local": [], + "languages": [ "deutsch" ], + "access": [ "keine_bezahlschranke" ], + "medium": [ "tageszeitung" ], + "topics": [ + "kultur", "netz" ] }, "taz-ökonomie": { @@ -95,9 +131,13 @@ "desc": "Überregionale deutsche Tageszeitung, die als grün-links und linksalternativ beschrieben wird. Nachrichten aus dem Ökoressort zur Ökonomie.", "web": "https://taz.de/Oeko/Oekonomie/!p4623/", "rss": "https://taz.de/Oeko/Oekonomie/!p4623;rss/", - "categories": [ - "keine_bezahlschranke", "deutsch", "täglich", "wirtschaft", - "volkswirtschaft", "überregional" + "regions": [ "deutschland" ], + "local": [], + "languages": [ "deutsch" ], + "access": [ "keine_bezahlschranke" ], + "medium": [ "tageszeitung" ], + "topics": [ + "wirtschaft" ] }, "taz-ökologie": { @@ -105,8 +145,13 @@ "desc": "Überregionale deutsche Tageszeitung, die als grün-links und linksalternativ beschrieben wird. Nachrichten aus dem Ökoressort zur Ökologie.", "web": "https://taz.de/Oeko/Oekologie/!p4624/", "rss": "https://taz.de/Oeko/Oekologie/!p4624;rss/", - "categories": [ - "keine_bezahlschranke", "deutsch", "täglich", "umwelt", "überregional" + "regions": [ "deutschland" ], + "local": [], + "languages": [ "deutsch" ], + "access": [ "keine_bezahlschranke" ], + "medium": [ "tageszeitung" ], + "topics": [ + "umwelt" ] }, "taz-arbeit": { @@ -114,9 +159,13 @@ "desc": "Überregionale deutsche Tageszeitung, die als grün-links und linksalternativ beschrieben wird. Nachrichten aus dem Ökoressort zur Arbeit.", "web": "https://taz.de/Oeko/Arbeit/!p4629/", "rss": "https://taz.de/Oeko/Arbeit/!p4629;rss/", - "categories": [ - "keine_bezahlschranke", "deutsch", "täglich", "wirtschaft", "arbeit", - "überregional" + "regions": [ "deutschland" ], + "local": [], + "languages": [ "deutsch" ], + "access": [ "keine_bezahlschranke" ], + "medium": [ "tageszeitung" ], + "topics": [ + "arbeit" ] }, "taz-konsum": { @@ -124,9 +173,13 @@ "desc": "Überregionale deutsche Tageszeitung, die als grün-links und linksalternativ beschrieben wird. Nachrichten aus dem Ökoressort über Konsum.", "web": "https://taz.de/Oeko/Konsum/!p4625/", "rss": "https://taz.de/Oeko/Konsum/!p4625;rss/", - "categories": [ - "keine_bezahlschranke", "deutsch", "täglich", "wirtschaft", "konsum", - "überregional" + "regions": [ "deutschland" ], + "local": [], + "languages": [ "deutsch" ], + "access": [ "keine_bezahlschranke" ], + "medium": [ "tageszeitung" ], + "topics": [ + "wirtschaft" ] }, "taz-verkehr": { @@ -134,9 +187,13 @@ "desc": "Überregionale deutsche Tageszeitung, die als grün-links und linksalternativ beschrieben wird. Nachrichten aus dem Ökoressort zum Verkehr.", "web": "https://taz.de/Oeko/Verkehr/!p4628/", "rss": "https://taz.de/Oeko/Verkehr/!p4628;rss/", - "categories": [ - "keine_bezahlschranke", "deutsch", "täglich", "wirtschaft", "verkehr", - "überregional" + "regions": [ "deutschland" ], + "local": [], + "languages": [ "deutsch" ], + "access": [ "keine_bezahlschranke" ], + "medium": [ "tageszeitung" ], + "topics": [ + "umwelt" ] }, "taz-wissenschaft": { @@ -144,9 +201,13 @@ "desc": "Überregionale deutsche Tageszeitung, die als grün-links und linksalternativ beschrieben wird. Nachrichten aus dem Ökoressort zur Wissenschaft.", "web": "https://taz.de/Oeko/Wissenschaft/!p4636/", "rss": "https://taz.de/Oeko/Wissenschaft/!p4636;rss/", - "categories": [ - "keine_bezahlschranke", "deutsch", "täglich", "wissenschaft", - "überregional" + "regions": [ "deutschland" ], + "local": [], + "languages": [ "deutsch" ], + "access": [ "keine_bezahlschranke" ], + "medium": [ "tageszeitung" ], + "topics": [ + "wissenschaft" ] }, "taz-soc-alltag": { @@ -154,9 +215,13 @@ "desc": "Überregionale deutsche Tageszeitung, die als grün-links und linksalternativ beschrieben wird. Nachrichten aus dem Gesellschaftsressort zu Alltagsthemen.", "web": "https://taz.de/Gesellschaft/Alltag/!p4632/", "rss": "https://taz.de/Gesellschaft/Alltag/!p4632;rss/", - "categories": [ - "keine_bezahlschranke", "deutsch", "täglich", "gesellschaft", - "überregional" + "regions": [ "deutschland" ], + "local": [], + "languages": [ "deutsch" ], + "access": [ "keine_bezahlschranke" ], + "medium": [ "tageszeitung" ], + "topics": [ + "gesellschaft" ] }, "taz-soc-reportage": { @@ -164,19 +229,27 @@ "desc": "Überregionale deutsche Tageszeitung, die als grün-links und linksalternativ beschrieben wird. Reportagen und Recherchen aus dem Gesellschaftsressort.", "web": "https://taz.de/Gesellschaft/Reportage-und-Recherche/!p5265/", "rss": "https://taz.de/Gesellschaft/Reportage-und-Recherche/!p5265;rss/", - "categories": [ - "keine_bezahlschranke", "deutsch", "täglich", "gesellschaft", - "reportage", "überregional" + "regions": [ "deutschland" ], + "local": [], + "languages": [ "deutsch" ], + "access": [ "keine_bezahlschranke" ], + "medium": [ "tageszeitung" ], + "topics": [ + "investigativ" ] }, - "taz-soc-reportage": { + "taz-soc-debatte": { "title": "taz: Debatte", "desc": "Überregionale deutsche Tageszeitung, die als grün-links und linksalternativ beschrieben wird. Debatten aus dem Gesellschaftsressort.", "web": "https://taz.de/Gesellschaft/Debatte/!p4633/", "rss": "https://taz.de/Gesellschaft/Debatte/!p4633;rss/", - "categories": [ - "keine_bezahlschranke", "deutsch", "täglich", "gesellschaft", - "debatte", "überregional" + "regions": [ "deutschland" ], + "local": [], + "languages": [ "deutsch" ], + "access": [ "keine_bezahlschranke" ], + "medium": [ "tageszeitung" ], + "topics": [ + "debatte" ] }, "taz-soc-kolumne": { @@ -184,9 +257,13 @@ "desc": "Überregionale deutsche Tageszeitung, die als grün-links und linksalternativ beschrieben wird. Kolumnen aus dem Gesellschaftsressort.", "web": "https://taz.de/Gesellschaft/Kolumnen/!p4634/", "rss": "https://taz.de/Gesellschaft/Kolumnen/!p4634;rss/", - "categories": [ - "keine_bezahlschranke", "deutsch", "täglich", "gesellschaft", - "kolumne", "überregional" + "regions": [ "deutschland" ], + "local": [], + "languages": [ "deutsch" ], + "access": [ "keine_bezahlschranke" ], + "medium": [ "tageszeitung" ], + "topics": [ + "debatte" ] }, "taz-soc-medien": { @@ -194,9 +271,13 @@ "desc": "Überregionale deutsche Tageszeitung, die als grün-links und linksalternativ beschrieben wird. Nachrichten aus dem Gesellschaftsressort zu Medien.", "web": "https://taz.de/Gesellschaft/Medien/!p4630/", "rss": "https://taz.de/Gesellschaft/Medien/!p4630;rss/", - "categories": [ - "keine_bezahlschranke", "deutsch", "täglich", "gesellschaft", - "medien", "überregional" + "regions": [ "deutschland" ], + "local": [], + "languages": [ "deutsch" ], + "access": [ "keine_bezahlschranke" ], + "medium": [ "tageszeitung" ], + "topics": [ + "medien" ] }, "taz-soc-bildung": { @@ -204,9 +285,13 @@ "desc": "Überregionale deutsche Tageszeitung, die als grün-links und linksalternativ beschrieben wird. Nachrichten aus dem Gesellschaftsressort zur Bildung.", "web": "https://taz.de/Gesellschaft/Bildung/!p4635/", "rss": "https://taz.de/Gesellschaft/Bildung/!p4635;rss/", - "categories": [ - "keine_bezahlschranke", "deutsch", "täglich", "gesellschaft", - "politik", "bildung", "überregional" + "regions": [ "deutschland" ], + "local": [], + "languages": [ "deutsch" ], + "access": [ "keine_bezahlschranke" ], + "medium": [ "tageszeitung" ], + "topics": [ + "bildung" ] }, "taz-soc-gesundheit": { @@ -214,9 +299,13 @@ "desc": "Überregionale deutsche Tageszeitung, die als grün-links und linksalternativ beschrieben wird. Nachrichten aus dem Gesellschaftsressort zur Gesundheit.", "web": "https://taz.de/Gesellschaft/Gesundheit/!p4637/", "rss": "https://taz.de/Gesellschaft/Gesundheit/!p4637;rss/", - "categories": [ - "keine_bezahlschranke", "deutsch", "täglich", "gesellschaft", - "gesundheit", "überregional" + "regions": [ "deutschland" ], + "local": [], + "languages": [ "deutsch" ], + "access": [ "keine_bezahlschranke" ], + "medium": [ "tageszeitung" ], + "topics": [ + "gesundheit" ] }, "taz-soc-reise": { @@ -224,9 +313,13 @@ "desc": "Überregionale deutsche Tageszeitung, die als grün-links und linksalternativ beschrieben wird. Nachrichten aus dem Gesellschaftsressort zu Reisen und Tourismus.", "web": "https://taz.de/Gesellschaft/Reise/!p4638/", "rss": "https://taz.de/Gesellschaft/Reise/!p4638;rss/", - "categories": [ - "keine_bezahlschranke", "deutsch", "täglich", "gesellschaft", - "tourismus", "überregional" + "regions": [ "deutschland" ], + "local": [], + "languages": [ "deutsch" ], + "access": [ "keine_bezahlschranke" ], + "medium": [ "tageszeitung" ], + "topics": [ + "tourismus" ] }, "taz-cul-musik": { @@ -234,9 +327,13 @@ "desc": "Überregionale deutsche Tageszeitung, die als grün-links und linksalternativ beschrieben wird. Nachrichten und Musik-Rezessionen aus dem Kulturressort.", "web": "https://taz.de/Kultur/Musik/!p4640/", "rss": "https://taz.de/Kultur/Musik/!p4640;rss/", - "categories": [ - "keine_bezahlschranke", "deutsch", "täglich", "kultur", "musik", - "überregional" + "regions": [ "deutschland" ], + "local": [], + "languages": [ "deutsch" ], + "access": [ "keine_bezahlschranke" ], + "medium": [ "tageszeitung" ], + "topics": [ + "medien" ] }, "taz-cul-film": { @@ -244,9 +341,13 @@ "desc": "Überregionale deutsche Tageszeitung, die als grün-links und linksalternativ beschrieben wird. Nachrichten und Film-Rezessionen aus dem Kulturressort.", "web": "https://taz.de/Kultur/Film/!p4641/", "rss": "https://taz.de/Kultur/Film/!p4641;rss/", - "categories": [ - "keine_bezahlschranke", "deutsch", "täglich", "kultur", "filme", - "überregional" + "regions": [ "deutschland" ], + "local": [], + "languages": [ "deutsch" ], + "access": [ "keine_bezahlschranke" ], + "medium": [ "tageszeitung" ], + "topics": [ + "medien" ] }, "taz-cul-kunst": { @@ -254,9 +355,13 @@ "desc": "Überregionale deutsche Tageszeitung, die als grün-links und linksalternativ beschrieben wird. Nachrichten und Kunst-Rezessionen aus dem Kulturressort.", "web": "https://taz.de/Kultur/Kuenste/!p4642/", "rss": "https://taz.de/Kultur/Kuenste/!p4642;rss/", - "categories": [ - "keine_bezahlschranke", "deutsch", "täglich", "kultur", "kunst", - "überregional" + "regions": [ "deutschland" ], + "local": [], + "languages": [ "deutsch" ], + "access": [ "keine_bezahlschranke" ], + "medium": [ "tageszeitung" ], + "topics": [ + "medien" ] }, "taz-cul-buch": { @@ -264,9 +369,13 @@ "desc": "Überregionale deutsche Tageszeitung, die als grün-links und linksalternativ beschrieben wird. Nachrichten und Literatur-Rezessionen aus dem Kulturressort.", "web": "https://taz.de/Kultur/Buch/!p4643/", "rss": "https://taz.de/Kultur/Buch/!p4643;rss/", - "categories": [ - "keine_bezahlschranke", "deutsch", "täglich", "kultur", "bücher", - "überregional" + "regions": [ "deutschland" ], + "local": [], + "languages": [ "deutsch" ], + "access": [ "keine_bezahlschranke" ], + "medium": [ "tageszeitung" ], + "topics": [ + "medien" ] }, "taz-cul-sport": { @@ -274,8 +383,13 @@ "desc": "Überregionale deutsche Tageszeitung, die als grün-links und linksalternativ beschrieben wird. Nachrichten aus dem Sport-Ressort.", "web": "https://taz.de/Sport/!p4646/", "rss": "https://taz.de/Sport/!p4646;rss/", - "categories": [ - "keine_bezahlschranke", "deutsch", "täglich", "sport", "überregional" + "regions": [ "deutschland" ], + "local": [], + "languages": [ "deutsch" ], + "access": [ "keine_bezahlschranke" ], + "medium": [ "tageszeitung" ], + "topics": [ + "sport" ] }, "taz-loc-berlin": { @@ -283,8 +397,13 @@ "desc": "Überregionale deutsche Tageszeitung, die als grün-links und linksalternativ beschrieben wird. Lokales und Nachrichten rund um die Hauptstadt.", "web": "https://taz.de/Berlin/!p4649/", "rss": "https://taz.de/Berlin/!p4649;rss/", - "categories": [ - "keine_bezahlschranke", "deutsch", "täglich", "berlin" + "regions": [ "lokal" ], + "local": [ "berlin" ], + "languages": [ "deutsch" ], + "access": [ "keine_bezahlschranke" ], + "medium": [ "tageszeitung" ], + "topics": [ + "allgemein" ] }, "taz-loc-hamburg": { @@ -292,8 +411,13 @@ "desc": "Überregionale deutsche Tageszeitung, die als grün-links und linksalternativ beschrieben wird. Lokales und Nachrichten aus Hamburg.", "web": "https://taz.de/Nord/Hamburg/!p4651/", "rss": "https://taz.de/Nord/Hamburg/!p4651;rss/", - "categories": [ - "keine_bezahlschranke", "deutsch", "täglich", "hamburg" + "regions": [ "lokal" ], + "local": [ "hamburg" ], + "languages": [ "deutsch" ], + "access": [ "keine_bezahlschranke" ], + "medium": [ "tageszeitung" ], + "topics": [ + "allgemein" ] }, "taz-loc-bremen": { @@ -301,8 +425,13 @@ "desc": "Überregionale deutsche Tageszeitung, die als grün-links und linksalternativ beschrieben wird. Lokales und Nachrichten aus Bremen.", "web": "https://taz.de/Nord/Bremen/!p4652/", "rss": "https://taz.de/Nord/Bremen/!p4652;rss/", - "categories": [ - "keine_bezahlschranke", "deutsch", "täglich", "bremen" + "regions": [ "lokal" ], + "local": [ "bremen" ], + "languages": [ "deutsch" ], + "access": [ "keine_bezahlschranke" ], + "medium": [ "tageszeitung" ], + "topics": [ + "allgemein" ] }, "taz-loc-nord-cul": { @@ -310,8 +439,12 @@ "desc": "Überregionale deutsche Tageszeitung, die als grün-links und linksalternativ beschrieben wird. Kulturinformationen für Norddeutschland.", "web": "https://taz.de/Nord/Kultur/!p4653/", "rss": "https://taz.de/Nord/Kultur/!p4653;rss/", - "categories": [ - "keine_bezahlschranke", "deutsch", "täglich", "norddeutschland", + "regions": [ "lokal" ], + "local": [ "norddeutschland" ], + "languages": [ "deutsch" ], + "access": [ "keine_bezahlschranke" ], + "medium": [ "tageszeitung" ], + "topics": [ "kultur" ] }, @@ -320,8 +453,13 @@ "desc": "Überregionale deutsche Tageszeitung, die als grün-links und linksalternativ beschrieben wird. Satire und Humor.", "web": "https://taz.de/Wahrheit/!p4644/", "rss": "https://taz.de/Wahrheit/!p4644;rss/", - "categories": [ - "keine_bezahlschranke", "deutsch", "täglich", "satire", "überregional" + "regions": [ "deutschland" ], + "local": [], + "languages": [ "deutsch" ], + "access": [ "keine_bezahlschranke" ], + "medium": [ "tageszeitung" ], + "topics": [ + "satire" ] }, "taz-foc-klimawandel": { @@ -329,8 +467,13 @@ "desc": "Überregionale deutsche Tageszeitung, die als grün-links und linksalternativ beschrieben wird. Informationen zum Schwerpunktthema Klima-Wandel.", "web": "https://taz.de/Schwerpunkt-Klimawandel/!t5008262/", "rss": "https://taz.de/Schwerpunkt-Klimawandel/!t5008262;rss/", - "categories": [ - "keine_bezahlschranke", "deutsch", "täglich", "umwelt", "überregional" + "regions": [ "global" ], + "local": [], + "languages": [ "deutsch" ], + "access": [ "keine_bezahlschranke" ], + "medium": [ "tageszeitung" ], + "topics": [ + "umwelt" ] }, "taz-foc-nahost": { @@ -338,8 +481,13 @@ "desc": "Überregionale deutsche Tageszeitung, die als grün-links und linksalternativ beschrieben wird. Informationen zum Schwerpunktthema Nahostkonflikt.", "web": "https://taz.de/Schwerpunkt-Nahost-Konflikt/!t5007999/", "rss": "https://taz.de/Schwerpunkt-Nahost-Konflikt/!t5007999;rss/", - "categories": [ - "keine_bezahlschranke", "deutsch", "täglich", "nahost", "überregional" + "regions": [ "nahost" ], + "local": [], + "languages": [ "deutsch" ], + "access": [ "keine_bezahlschranke" ], + "medium": [ "tageszeitung" ], + "topics": [ + "politik" ] }, "taz-wochenkommentar": { @@ -347,9 +495,13 @@ "desc": "Überregionale deutsche Tageszeitung, die als grün-links und linksalternativ beschrieben wird. Kommentar der Woche.", "web": "https://taz.de/Wochenkommentar/!t5478515/", "rss": "https://taz.de/Wochenkommentar/!t5478515;rss/", - "categories": [ - "keine_bezahlschranke", "deutsch", "täglich", "kommentar", - "überregional" + "regions": [ "deutschland" ], + "local": [], + "languages": [ "deutsch" ], + "access": [ "keine_bezahlschranke" ], + "medium": [ "tageszeitung" ], + "topics": [ + "debatte" ] }, "taz-hausblog": { @@ -357,8 +509,13 @@ "desc": "Überregionale deutsche Tageszeitung, die als grün-links und linksalternativ beschrieben wird. Das Blog aus der und über die taz mit Einblicken, Kontroversen und aktuellen Entwicklungen.", "web": "https://blogs.taz.de/hausblog/", "rss": "https://blogs.taz.de/hausblog/blogfeed/", - "categories": [ - "keine_bezahlschranke", "deutsch", "täglich", "hinter_den_kulissen" + "regions": [ "deutschland" ], + "local": [], + "languages": [ "deutsch" ], + "access": [ "keine_bezahlschranke" ], + "medium": [ "tageszeitung" ], + "topics": [ + "hinter_den_kulissen" ] }, "nd-meinung": { @@ -366,9 +523,13 @@ "desc": "Überregionale Tageszeitung mit Leserschwerpunkt in Ostdeutschland und Selbstverständnis als sozialistisch. Meinungsartikel und Kommentare.", "web": "https://www.nd-aktuell.de/rubrik/meinung/", "rss": "https://www.nd-aktuell.de/rss/kommentare.xml", - "categories": [ - "keine_bezahlschranke", "deutsch", "täglich", "kommentar", - "überregional" + "regions": [ "deutschland" ], + "local": [], + "languages": [ "deutsch" ], + "access": [ "keine_bezahlschranke" ], + "medium": [ "tageszeitung" ], + "topics": [ + "debatte" ] }, "nd-pol": { @@ -376,8 +537,13 @@ "desc": "Überregionale Tageszeitung mit Leserschwerpunkt in Ostdeutschland und Selbstverständnis als sozialistisch. Nachrichten aus der Rubrik Politk.", "web": "https://www.nd-aktuell.de/rubrik/politik/", "rss": "https://www.nd-aktuell.de/rss/politik.xml", - "categories": [ - "keine_bezahlschranke", "deutsch", "täglich", "politik", "überregional" + "regions": [ "deutschland" ], + "local": [], + "languages": [ "deutsch" ], + "access": [ "keine_bezahlschranke" ], + "medium": [ "tageszeitung" ], + "topics": [ + "politik" ] }, "nd-eco": { @@ -385,9 +551,13 @@ "desc": "Überregionale Tageszeitung mit Leserschwerpunkt in Ostdeutschland und Selbstverständnis als sozialistisch. Nachrichten aus der Rubrik Wirtschaft und Umwelt.", "web": "https://www.nd-aktuell.de/rubrik/wirtschaft-umwelt", "rss": "https://www.nd-aktuell.de/rss/wirtschaft-umwelt.xml", - "categories": [ - "keine_bezahlschranke", "deutsch", "täglich", "wirtschaft", - "volkswirtschaft", "umwelt", "überregional" + "regions": [ "deutschland" ], + "local": [], + "languages": [ "deutsch" ], + "access": [ "keine_bezahlschranke" ], + "medium": [ "tageszeitung" ], + "topics": [ + "wirtschaft", "umwelt" ] }, "nd-loc-berlin": { @@ -395,8 +565,13 @@ "desc": "Überregionale Tageszeitung mit Leserschwerpunkt in Ostdeutschland und Selbstverständnis als sozialistisch. Lokales und Nachrichten rund um die Hauptstadt.", "web": "https://www.nd-aktuell.de/rubrik/Berlin/", "rss": "https://www.nd-aktuell.de/rss/berlin.xml", - "categories": [ - "keine_bezahlschranke", "deutsch", "täglich", "berlin" + "regions": [ "lokal" ], + "local": [ "berlin" ], + "languages": [ "deutsch" ], + "access": [ "keine_bezahlschranke" ], + "medium": [ "tageszeitung" ], + "topics": [ + "allgemein" ] }, "nd-loc-brandenburg": { @@ -404,8 +579,13 @@ "desc": "Überregionale Tageszeitung mit Leserschwerpunkt in Ostdeutschland und Selbstverständnis als sozialistisch. Lokales und Nachrichten aus Brandenburg.", "web": "https://www.nd-aktuell.de/rubrik/Brandenburg/", "rss": "https://www.nd-aktuell.de/rss/brandenburg.xml", - "categories": [ - "keine_bezahlschranke", "deutsch", "täglich", "brandenburg" + "regions": [ "lokal" ], + "local": [ "brandenburg" ], + "languages": [ "deutsch" ], + "access": [ "keine_bezahlschranke" ], + "medium": [ "tageszeitung" ], + "topics": [ + "allgemein" ] }, "nd-wissen": { @@ -413,8 +593,13 @@ "desc": "Überregionale Tageszeitung mit Leserschwerpunkt in Ostdeutschland und Selbstverständnis als sozialistisch. Nachrichten aus der Rubrik Wissen.", "web": "https://www.nd-aktuell.de/rubrik/wissen/", "rss": "https://www.nd-aktuell.de/rss/wissen.xml", - "categories": [ - "keine_bezahlschranke", "deutsch", "täglich", "kultur", "überregional" + "regions": [ "deutschland" ], + "local": [], + "languages": [ "deutsch" ], + "access": [ "keine_bezahlschranke" ], + "medium": [ "tageszeitung" ], + "topics": [ + "kultur" ] }, "nd-kultur": { @@ -422,9 +607,13 @@ "desc": "Überregionale Tageszeitung mit Leserschwerpunkt in Ostdeutschland und Selbstverständnis als sozialistisch. Nachrichten aus der Rubrik Kultur.", "web": "https://www.nd-aktuell.de/rubrik/kultur/", "rss": "https://www.nd-aktuell.de/rss/kultur.xml", - "categories": [ - "keine_bezahlschranke", "deutsch", "täglich", "debatte", "kultur", - "überregional" + "regions": [ "deutschland" ], + "local": [], + "languages": [ "deutsch" ], + "access": [ "keine_bezahlschranke" ], + "medium": [ "tageszeitung" ], + "topics": [ + "kultur" ] }, "nd-sport": { @@ -432,8 +621,13 @@ "desc": "Überregionale Tageszeitung mit Leserschwerpunkt in Ostdeutschland und Selbstverständnis als sozialistisch. Nachrichten aus der Rubrik Sport.", "web": "https://www.nd-aktuell.de/rubrik/sport/", "rss": "https://www.nd-aktuell.de/rss/sport.xml", - "categories": [ - "keine_bezahlschranke", "deutsch", "täglich", "sport", "überregional" + "regions": [ "deutschland" ], + "local": [], + "languages": [ "deutsch" ], + "access": [ "keine_bezahlschranke" ], + "medium": [ "tageszeitung" ], + "topics": [ + "sport" ] }, "nd-gesundheit": { @@ -441,9 +635,13 @@ "desc": "Überregionale Tageszeitung mit Leserschwerpunkt in Ostdeutschland und Selbstverständnis als sozialistisch. Nachrichten aus der Rubrik Gesundheit.", "web": "https://www.nd-aktuell.de/rubrik/gesund_leben/", "rss": "https://www.nd-aktuell.de/rss/gesund_leben.xml", - "categories": [ - "keine_bezahlschranke", "deutsch", "täglich", "gesellschaft", - "gesundheit", "überregional" + "regions": [ "deutschland" ], + "local": [], + "languages": [ "deutsch" ], + "access": [ "keine_bezahlschranke" ], + "medium": [ "tageszeitung" ], + "topics": [ + "gesundheit" ] }, "nd-reisen": { @@ -451,9 +649,13 @@ "desc": "Überregionale Tageszeitung mit Leserschwerpunkt in Ostdeutschland und Selbstverständnis als sozialistisch. Nachrichten aus der Rubrik Reisen und Tourismus.", "web": "https://www.nd-aktuell.de/rubrik/reise/", "rss": "https://www.nd-aktuell.de/rss/reise.xml", - "categories": [ - "keine_bezahlschranke", "deutsch", "täglich", "gesellschaft", - "tourismus", "überregional" + "regions": [ "deutschland" ], + "local": [], + "languages": [ "deutsch" ], + "access": [ "keine_bezahlschranke" ], + "medium": [ "tageszeitung" ], + "topics": [ + "tourismus" ] }, "nd-ratgeber": { @@ -461,9 +663,13 @@ "desc": "Überregionale Tageszeitung mit Leserschwerpunkt in Ostdeutschland und Selbstverständnis als sozialistisch. Ratgeber für den Alltag.", "web": "https://www.nd-aktuell.de/rubrik/ratgeber/", "rss": "https://www.nd-aktuell.de/rss/ratgeber.xml", - "categories": [ - "keine_bezahlschranke", "deutsch", "täglich", "gesellschaft", - "ratgeber", "überregional" + "regions": [ "deutschland" ], + "local": [], + "languages": [ "deutsch" ], + "access": [ "keine_bezahlschranke" ], + "medium": [ "tageszeitung" ], + "topics": [ + "ratgeber" ] }, "nd-commune": { @@ -471,9 +677,13 @@ "desc": "Überregionale Tageszeitung mit Leserschwerpunkt in Ostdeutschland und Selbstverständnis als sozialistisch. Hausmitteilungen und Leser:innenschaft.", "web": "https://www.nd-aktuell.de/rubrik/nd-commune/", "rss": "https://www.nd-aktuell.de/rss/nd-commune.xml", - "categories": [ - "keine_bezahlschranke", "deutsch", "täglich", "hinter_den_kulissen", - "überregional" + "regions": [ "deutschland" ], + "local": [], + "languages": [ "deutsch" ], + "access": [ "keine_bezahlschranke" ], + "medium": [ "tageszeitung" ], + "topics": [ + "hinter_den_kulissen" ] }, "nd-hausblog": { @@ -481,8 +691,13 @@ "desc": "Überregionale Tageszeitung mit Leserschwerpunkt in Ostdeutschland und Selbstverständnis als sozialistisch. Hausblog von nd.", "web": "https://www.nd-aktuell.de/rubrik/hausblog/", "rss": "https://www.nd-aktuell.de/rss/hausblog.xml", - "categories": [ - "keine_bezahlschranke", "deutsch", "täglich", "hinter_den_kulissen" + "regions": [ "deutschland" ], + "local": [], + "languages": [ "deutsch" ], + "access": [ "keine_bezahlschranke" ], + "medium": [ "tageszeitung" ], + "topics": [ + "hinter_den_kulissen" ] }, "jungleworld": { @@ -490,8 +705,13 @@ "desc": "Wochenzeitung mit der Selbstbezeichnung als undogmatisch links für kulturelle Gegentrends und linke Debatten.", "web": "https://jungle.world/", "rss": "https://jungle.world/rss.xml", - "categories": [ - "bezahlschranke", "deutsch", "wöchentlich", "allgemein", "überregional" + "regions": [ "deutschland" ], + "local": [], + "languages": [ "deutsch" ], + "access": [ "bezahlschranke" ], + "medium": [ "wochenzeitung" ], + "topics": [ + "allgemein" ] }, "freitag-pol": { @@ -499,8 +719,13 @@ "desc": "Linksliberale Wochenzeitung mit progressiver Position, die Debatten zwischen liberaler Gesellschaft und Gerechtigkeit führt. Nachrichten aus dem Politikressort.", "web": "https://www.freitag.de/politik", "rss": "https://www.freitag.de/politik/@@RSS", - "categories": [ - "bezahlschranke", "deutsch", "wöchentlich", "politik", "überregional" + "regions": [ "deutschland" ], + "local": [], + "languages": [ "deutsch" ], + "access": [ "bezahlschranke" ], + "medium": [ "wochenzeitung" ], + "topics": [ + "politik", "innenpolitik", "international" ] }, "freitag-eco": { @@ -508,9 +733,13 @@ "desc": "Linksliberale Wochenzeitung mit progressiver Position, die Debatten zwischen liberaler Gesellschaft und Gerechtigkeit führt. Nachrichten aus dem Wirtschaftsressort.", "web": "https://www.freitag.de/wirtschaft", "rss": "https://www.freitag.de/wirtschaft/@@RSS", - "categories": [ - "bezahlschranke", "deutsch", "wöchentlich", "wirtschaft", - "volkswirtschaft", "überregional" + "regions": [ "deutschland" ], + "local": [], + "languages": [ "deutsch" ], + "access": [ "bezahlschranke" ], + "medium": [ "wochenzeitung" ], + "topics": [ + "wirtschaft" ] }, "freitag-soc": { @@ -518,8 +747,13 @@ "desc": "Linksliberale Wochenzeitung mit progressiver Position, die Debatten zwischen liberaler Gesellschaft und Gerechtigkeit führt. Nahrichten aus dem Kulturressort.", "web": "https://www.freitag.de/kultur", "rss": "https://www.freitag.de/kultur/@@RSS", - "categories": [ - "bezahlschranke", "deutsch", "wöchentlich", "kultur", "überregional" + "regions": [ "deutschland" ], + "local": [], + "languages": [ "deutsch" ], + "access": [ "bezahlschranke" ], + "medium": [ "wochenzeitung" ], + "topics": [ + "kultur" ] }, "freitag-env": { @@ -527,8 +761,13 @@ "desc": "Linksliberale Wochenzeitung mit progressiver Position, die Debatten zwischen liberaler Gesellschaft und Gerechtigkeit führt. Nachrichten rund um grünes Wissen, Klima und Umwelt.", "web": "https://www.freitag.de/gruenes-wissen", "rss": "https://www.freitag.de/gruenes-wissen/@@RSS", - "categories": [ - "bezahlschranke", "deutsch", "wöchentlich", "umwelt", "überregional" + "regions": [ "deutschland" ], + "local": [], + "languages": [ "deutsch" ], + "access": [ "bezahlschranke" ], + "medium": [ "wochenzeitung" ], + "topics": [ + "umwelt" ] }, "freitag-debatte": { @@ -536,9 +775,13 @@ "desc": "Linksliberale Wochenzeitung mit progressiver Position, die Debatten zwischen liberaler Gesellschaft und Gerechtigkeit führt. Debattenbeiträge und Kommentare.", "web": "https://www.freitag.de/debatte", "rss": "https://www.freitag.de/debatte/@@RSS", - "categories": [ - "bezahlschranke", "deutsch", "wöchentlich", "gesellschaft", "debatte", - "überregional" + "regions": [ "deutschland" ], + "local": [], + "languages": [ "deutsch" ], + "access": [ "bezahlschranke" ], + "medium": [ "wochenzeitung" ], + "topics": [ + "debatte" ] }, "guardian-eu": { @@ -546,9 +789,13 @@ "desc": "Wichtigste britische linke Tageszeitung mit deutlichen linksliberalen Positionen für britische Bildungsbürger:innen. Nachrichten zur Europäischen Union.", "web": "https://www.theguardian.com/world/eu", "rss": "https://www.theguardian.com/world/eu/rss", - "categories": [ - "keine_bezahlschranke", "englisch", "täglich", "europa", - "überregional" + "regions": [ "europa" ], + "local": [], + "languages": [ "englisch" ], + "access": [ "bezahlschranke" ], + "medium": [ "tageszeitung" ], + "topics": [ + "allgemein", "international" ] }, "guardian-europe": { @@ -556,8 +803,13 @@ "desc": "Wichtigste britische linke Tageszeitung mit deutlichen linksliberalen Positionen für britische Bildungsbürger:innen. Nachrichten über Europa.", "web": "https://www.theguardian.com/world/europe-news", "rss": "https://www.theguardian.com/world/europe-news/rss", - "categories": [ - "keine_bezahlschranke", "englisch", "täglich", "europa", "überregional" + "regions": [ "europa" ], + "local": [], + "languages": [ "englisch" ], + "access": [ "bezahlschranke" ], + "medium": [ "tageszeitung" ], + "topics": [ + "allgemein", "international" ] }, "guardian-us": { @@ -565,9 +817,13 @@ "desc": "Wichtigste britische linke Tageszeitung mit deutlichen linksliberalen Positionen für britische Bildungsbürger:innen. Nachrichten über die Vereinigten Staaten von Amerika.", "web": "https://www.theguardian.com/world/us-news", "rss": "https://www.theguardian.com/world/us-news/rss", - "categories": [ - "keine_bezahlschranke", "englisch", "täglich", "amerika", "usa", - "überregional" + "regions": [ "amerika", "usa" ], + "local": [], + "languages": [ "englisch" ], + "access": [ "bezahlschranke" ], + "medium": [ "tageszeitung" ], + "topics": [ + "allgemein", "international" ] }, "guardian-americas": { @@ -575,8 +831,13 @@ "desc": "Wichtigste britische linke Tageszeitung mit deutlichen linksliberalen Positionen für britische Bildungsbürger:innen. Nachrichten über Nord-, Mittel- und Südamerika.", "web": "https://www.theguardian.com/world/americas", "rss": "https://www.theguardian.com/world/americas/rss", - "categories": [ - "keine_bezahlschranke", "englisch", "täglich", "amerika", "überregional" + "regions": [ "amerika" ], + "local": [], + "languages": [ "englisch" ], + "access": [ "bezahlschranke" ], + "medium": [ "tageszeitung" ], + "topics": [ + "allgemein", "international" ] }, "guardian-asia": { @@ -584,8 +845,13 @@ "desc": "Wichtigste britische linke Tageszeitung mit deutlichen linksliberalen Positionen für britische Bildungsbürger:innen. Nachrichten über Asien.", "web": "https://www.theguardian.com/world/asia", "rss": "https://www.theguardian.com/world/asia/rss", - "categories": [ - "keine_bezahlschranke", "englisch", "täglich", "asien", "überregional" + "regions": [ "asien" ], + "local": [], + "languages": [ "englisch" ], + "access": [ "bezahlschranke" ], + "medium": [ "tageszeitung" ], + "topics": [ + "allgemein", "international" ] }, "guardian-aus": { @@ -593,9 +859,13 @@ "desc": "Wichtigste britische linke Tageszeitung mit deutlichen linksliberalen Positionen für britische Bildungsbürger:innen. Nachrichten über Australien.", "web": "https://www.theguardian.com/world/australia-news", "rss": "https://www.theguardian.com/world/australia-news/rss", - "categories": [ - "keine_bezahlschranke", "englisch", "täglich", "australien", - "überregional" + "regions": [ "ozeanien" ], + "local": [], + "languages": [ "englisch" ], + "access": [ "bezahlschranke" ], + "medium": [ "tageszeitung" ], + "topics": [ + "allgemein", "international" ] }, "guardian-middleeast": { @@ -603,9 +873,13 @@ "desc": "Wichtigste britische linke Tageszeitung mit deutlichen linksliberalen Positionen für britische Bildungsbürger:innen. Nachrichten über den mittleren Osten und Nordafrika.", "web": "https://www.theguardian.com/world/middleeast", "rss": "https://www.theguardian.com/world/middleeast/rss", - "categories": [ - "keine_bezahlschranke", "englisch", "täglich", "nahost", "afrika", - "überregional" + "regions": [ "nahost" ], + "local": [], + "languages": [ "englisch" ], + "access": [ "bezahlschranke" ], + "medium": [ "tageszeitung" ], + "topics": [ + "allgemein", "international" ] }, "guardian-africa": { @@ -613,8 +887,13 @@ "desc": "Wichtigste britische linke Tageszeitung mit deutlichen linksliberalen Positionen für britische Bildungsbürger:innen. Nachrichten über Afrika.", "web": "https://www.theguardian.com/world/africa", "rss": "https://www.theguardian.com/world/africa/rss", - "categories": [ - "keine_bezahlschranke", "englisch", "täglich", "afrika", "überregional" + "regions": [ "afrika" ], + "local": [], + "languages": [ "englisch" ], + "access": [ "bezahlschranke" ], + "medium": [ "tageszeitung" ], + "topics": [ + "allgemein", "international" ] }, "guardian-books": { @@ -622,9 +901,13 @@ "desc": "Wichtigste britische linke Tageszeitung mit deutlichen linksliberalen Positionen für britische Bildungsbürger:innen. Buchrezessionen und Literatur.", "web": "https://www.theguardian.com/books", "rss": "https://www.theguardian.com/books/rss", - "categories": [ - "keine_bezahlschranke", "englisch", "täglich", "kultur", "überregional", - "bücher" + "regions": [ "global" ], + "local": [], + "languages": [ "englisch" ], + "access": [ "bezahlschranke" ], + "medium": [ "tageszeitung" ], + "topics": [ + "medien" ] }, "guardian-music": { @@ -632,9 +915,13 @@ "desc": "Wichtigste britische linke Tageszeitung mit deutlichen linksliberalen Positionen für britische Bildungsbürger:innen. Musikrezessionen und Nachrichten.", "web": "https://www.theguardian.com/music", "rss": "https://www.theguardian.com/music/rss", - "categories": [ - "keine_bezahlschranke", "englisch", "täglich", "kultur", "überregional", - "musik" + "regions": [ "global" ], + "local": [], + "languages": [ "englisch" ], + "access": [ "bezahlschranke" ], + "medium": [ "tageszeitung" ], + "topics": [ + "medien" ] }, "guardian-art": { @@ -642,9 +929,13 @@ "desc": "Wichtigste britische linke Tageszeitung mit deutlichen linksliberalen Positionen für britische Bildungsbürger:innen. Kunstrezessionen und Nachrichten.", "web": "https://www.theguardian.com/artanddesign", "rss": "https://www.theguardian.com/artanddesign/rss", - "categories": [ - "keine_bezahlschranke", "englisch", "täglich", "kultur", "überregional", - "kunst" + "regions": [ "global" ], + "local": [], + "languages": [ "englisch" ], + "access": [ "bezahlschranke" ], + "medium": [ "tageszeitung" ], + "topics": [ + "medien" ] }, "guardian-globaldev": { @@ -652,19 +943,13 @@ "desc": "Wichtigste britische linke Tageszeitung mit deutlichen linksliberalen Positionen für britische Bildungsbürger:innen. Internationale Nachrichten zur globalen Entwicklung.", "web": "https://www.theguardian.com/global-development", "rss": "https://www.theguardian.com/global-development/rss", - "categories": [ - "keine_bezahlschranke", "englisch", "täglich", "außenpolitik", - "überregional" - ] - }, - "sw-international": { - "title": "Socialist Worker: International", - "desc": "Sozialistische, trotzkistische Wochenzeitung der Socialist Workers Party. Internationale Nachrichten.", - "web": "https://socialistworker.co.uk/international/", - "rss": "https://socialistworker.co.uk/international/feed/", - "categories": [ - "keine_bezahlschranke", "englisch", "wöchentlich", "außenpolitik", - "überregional" + "regions": [ "global" ], + "local": [], + "languages": [ "englisch" ], + "access": [ "bezahlschranke" ], + "medium": [ "tageszeitung" ], + "topics": [ + "international" ] }, "sw-international": { @@ -672,9 +957,13 @@ "desc": "Sozialistische, trotzkistische Wochenzeitung der Socialist Workers Party. Internationale Nachrichten.", "web": "https://socialistworker.co.uk/international/", "rss": "https://socialistworker.co.uk/international/feed/", - "categories": [ - "keine_bezahlschranke", "englisch", "wöchentlich", "außenpolitik", - "überregional" + "regions": [ "global" ], + "local": [], + "languages": [ "englisch" ], + "access": [ "keine_bezahlschranke" ], + "medium": [ "wochenzeitung" ], + "topics": [ + "international" ] }, "sw-lgbt": { @@ -682,9 +971,13 @@ "desc": "Sozialistische, trotzkistische Wochenzeitung der Socialist Workers Party. Nachrichten zu Queer-Rechten.", "web": "https://socialistworker.co.uk/lgbt/", "rss": "https://socialistworker.co.uk/lgbt/feed/", - "categories": [ - "keine_bezahlschranke", "englisch", "wöchentlich", "gesellschaft", - "überregional" + "regions": [ "global" ], + "local": [], + "languages": [ "englisch" ], + "access": [ "keine_bezahlschranke" ], + "medium": [ "wochenzeitung" ], + "topics": [ + "gesellschaft" ] }, "sw-palestine": { @@ -692,9 +985,13 @@ "desc": "Sozialistische, trotzkistische Wochenzeitung der Socialist Workers Party. Nachrichten aus Palästina und dem mittleren Osten.", "web": "https://socialistworker.co.uk/palestine-2023/", "rss": "https://socialistworker.co.uk/palestine-2023/feed/", - "categories": [ - "keine_bezahlschranke", "englisch", "wöchentlich", "nahost", - "überregional" + "regions": [ "nahost" ], + "local": [], + "languages": [ "englisch" ], + "access": [ "keine_bezahlschranke" ], + "medium": [ "wochenzeitung" ], + "topics": [ + "politik" ] }, "sw-environment": { @@ -702,9 +999,13 @@ "desc": "Sozialistische, trotzkistische Wochenzeitung der Socialist Workers Party. Nachrichten zu Umwelt und Klima.", "web": "https://socialistworker.co.uk/environment/", "rss": "https://socialistworker.co.uk/environment/feed/", - "categories": [ - "keine_bezahlschranke", "englisch", "wöchentlich", "umwelt", - "überregional" + "regions": [ "global" ], + "local": [], + "languages": [ "englisch" ], + "access": [ "keine_bezahlschranke" ], + "medium": [ "wochenzeitung" ], + "topics": [ + "umwelt" ] }, "sw-indepth": { @@ -712,9 +1013,13 @@ "desc": "Sozialistische, trotzkistische Wochenzeitung der Socialist Workers Party. Kolumnen und Recherchen.", "web": "https://socialistworker.co.uk/in-depth/", "rss": "https://socialistworker.co.uk/in-depth/feed/", - "categories": [ - "keine_bezahlschranke", "englisch", "wöchentlich", "debatte", - "überregional" + "regions": [ "global" ], + "local": [], + "languages": [ "englisch" ], + "access": [ "keine_bezahlschranke" ], + "medium": [ "wochenzeitung" ], + "topics": [ + "investigativ" ] }, "sw-marxism": { @@ -722,9 +1027,13 @@ "desc": "Sozialistische, trotzkistische Wochenzeitung der Socialist Workers Party. Marxistische Analysen und Bildungsartikel.", "web": "https://socialistworker.co.uk/teach-yourself-marxism/", "rss": "https://socialistworker.co.uk/teach-yourself-marxism/feed/", - "categories": [ - "keine_bezahlschranke", "englisch", "wöchentlich", "debatte", "bildung", - "überregional" + "regions": [ "global" ], + "local": [], + "languages": [ "englisch" ], + "access": [ "keine_bezahlschranke" ], + "medium": [ "wochenzeitung" ], + "topics": [ + "debatte" ] }, "sw-culture": { @@ -732,9 +1041,13 @@ "desc": "Sozialistische, trotzkistische Wochenzeitung der Socialist Workers Party. Rezessionen und Kulturdebatten.", "web": "https://socialistworker.co.uk/reviews-and-culture/", "rss": "https://socialistworker.co.uk/reviews-and-culture/feed/", - "categories": [ - "keine_bezahlschranke", "englisch", "wöchentlich", "debatte", "kultur", - "überregional" + "regions": [ "global" ], + "local": [], + "languages": [ "englisch" ], + "access": [ "keine_bezahlschranke" ], + "medium": [ "wochenzeitung" ], + "topics": [ + "kultur" ] }, "lm-americas": { @@ -742,8 +1055,13 @@ "desc": "Internationale Fassung in English der französischen linksliberalen Zeitung, die zu den wichtigsten Meinungsblättern Frankreichs gehört. Nachrichten über Nord-, Mittel- und Südamerika.", "web": "https://www.lemonde.fr/en/americas/", "rss": "https://www.lemonde.fr/en/americas/rss_full.xml", - "categories": [ - "bezahlschranke", "englisch", "täglich", "amerika", "überregional" + "regions": [ "amerika" ], + "local": [], + "languages": [ "englisch" ], + "access": [ "bezahlschranke" ], + "medium": [ "wochenzeitung" ], + "topics": [ + "allgemein" ] }, "lm-europe": { @@ -751,8 +1069,13 @@ "desc": "Internationale Fassung in English der französischen linksliberalen Zeitung, die zu den wichtigsten Meinungsblättern Frankreichs gehört. Nachrichten über Europa.", "web": "https://www.lemonde.fr/en/europe/", "rss": "https://www.lemonde.fr/en/europe/rss_full.xml", - "categories": [ - "bezahlschranke", "englisch", "täglich", "europa", "überregional" + "regions": [ "europa" ], + "local": [], + "languages": [ "englisch" ], + "access": [ "bezahlschranke" ], + "medium": [ "wochenzeitung" ], + "topics": [ + "allgemein" ] }, "lm-eu": { @@ -760,8 +1083,13 @@ "desc": "Internationale Fassung in English der französischen linksliberalen Zeitung, die zu den wichtigsten Meinungsblättern Frankreichs gehört. Nachrichten über die Europäische Union.", "web": "https://www.lemonde.fr/en/european-union/", "rss": "https://www.lemonde.fr/en/european-union/rss_full.xml", - "categories": [ - "bezahlschranke", "englisch", "täglich", "europa", "überregional" + "regions": [ "europa" ], + "local": [], + "languages": [ "englisch" ], + "access": [ "bezahlschranke" ], + "medium": [ "wochenzeitung" ], + "topics": [ + "allgemein" ] }, "lm-middleeast": { @@ -769,8 +1097,13 @@ "desc": "Internationale Fassung in English der französischen linksliberalen Zeitung, die zu den wichtigsten Meinungsblättern Frankreichs gehört. Nachrichten über den mittleren Osten.", "web": "https://www.lemonde.fr/en/middle-east/", "rss": "https://www.lemonde.fr/en/middle-east/rss_full.xml", - "categories": [ - "bezahlschranke", "englisch", "täglich", "nahost", "überregional" + "regions": [ "nahost" ], + "local": [], + "languages": [ "englisch" ], + "access": [ "bezahlschranke" ], + "medium": [ "wochenzeitung" ], + "topics": [ + "allgemein" ] }, "lm-asia": { @@ -778,9 +1111,13 @@ "desc": "Internationale Fassung in English der französischen linksliberalen Zeitung, die zu den wichtigsten Meinungsblättern Frankreichs gehört. Nachrichten über Asien und die Pazifikregion", "web": "https://www.lemonde.fr/en/asia-and-pacific/", "rss": "https://www.lemonde.fr/en/asia-and-pacific/rss_full.xml", - "categories": [ - "bezahlschranke", "englisch", "täglich", "asien", "australien", - "überregional" + "regions": [ "asien" ], + "local": [], + "languages": [ "englisch" ], + "access": [ "bezahlschranke" ], + "medium": [ "wochenzeitung" ], + "topics": [ + "allgemein" ] }, "lm-editorial": { @@ -788,9 +1125,13 @@ "desc": "Internationale Fassung in English der französischen linksliberalen Zeitung, die zu den wichtigsten Meinungsblättern Frankreichs gehört. Meinungsartikel und Debatte.", "web": "https://www.lemonde.fr/en/editorial/", "rss": "https://www.lemonde.fr/en/editorial/rss_full.xml", - "categories": [ - "bezahlschranke", "englisch", "täglich", "gesellschaft", "debatte", - "überregional" + "regions": [ "global" ], + "local": [], + "languages": [ "englisch" ], + "access": [ "bezahlschranke" ], + "medium": [ "wochenzeitung" ], + "topics": [ + "debatte" ] }, "woz-international": { @@ -798,9 +1139,13 @@ "desc": "Genossenschaftlich organisierte schweizer linke Wochenzeitung in Deutsch. Internationale Nachrichten.", "web": "https://www.woz.ch/t/international", "rss": "https://www.woz.ch/t/international/feed", - "categories": [ - "keine_bezahlschranke", "deutsch", "wöchentlich", "allgemein", - "überregional" + "regions": [ "global" ], + "local": [], + "languages": [ "deutsch" ], + "access": [ "keine_bezahlschranke" ], + "medium": [ "wochenzeitung" ], + "topics": [ + "international" ] }, "woz-kultur": { @@ -808,9 +1153,13 @@ "desc": "Genossenschaftlich organisierte schweizer linke Wochenzeitung in Deutsch. Kultur und Wissenwertes.", "web": "https://www.woz.ch/t/kultur-wissen", "rss": "https://www.woz.ch/t/kultur-wissen/feed", - "categories": [ - "keine_bezahlschranke", "deutsch", "wöchentlich", "kultur", - "überregional" + "regions": [ "global" ], + "local": [], + "languages": [ "deutsch" ], + "access": [ "keine_bezahlschranke" ], + "medium": [ "wochenzeitung" ], + "topics": [ + "international" ] }, "woxx-interglobal": { @@ -818,9 +1167,13 @@ "desc": "Luxembourgische Wochenzeitung mit ökologisch-sozialer Ausrichtung. Meistens in deutscher Sprache, manchmal in Französisch oder Luxemburgisch. Internationale Nachrichten.", "web": "https://www.woxx.lu/category/interglobal/", "rss": "https://www.woxx.lu/category/interglobal/feed/", - "categories": [ - "keine_bezahlschranke", "deutsch", "französisch", "wöchentlich", - "allgemein", "überregional" + "regions": [ "global" ], + "local": [], + "languages": [ "deutsch", "französisch" ], + "access": [ "keine_bezahlschranke" ], + "medium": [ "wochenzeitung" ], + "topics": [ + "international" ] }, "mediapart": { @@ -828,9 +1181,13 @@ "desc": "Französische investigative Online-Zeitung, die Teil der Progressiven Internationale ist. Obwohl es eine Englische und Spanische Ausgabe gibt, sind die Artikel zur Zeit nur in französisch abrufbar.", "web": "https://www.mediapart.fr/", "rss": "https://www.mediapart.fr/articles/feed", - "categories": [ - "keine_bezahlschranke", "französisch", "täglich", "allgemein", - "überregional" + "regions": [ "global" ], + "local": [], + "languages": [ "französisch" ], + "access": [ "keine_bezahlschranke" ], + "medium": [ "online" ], + "topics": [ + "allgemein" ] }, "blaetter": { @@ -838,9 +1195,13 @@ "desc": "Fachzeitschrift mit Schwerpunkt auf deutsche Innen- und Außenpolitik. Gilt als einflussreiches Medium deutscher Linker.", "web": "https://www.blaetter.de", "rss": "https://www.blaetter.de/rss.xml", - "categories": [ - "keine_bezahlschranke", "deutsch", "magazin", "politik", "innenpolitik", - "außenpolitik", "überregional" + "regions": [ "deutschland", "global" ], + "local": [], + "languages": [ "deutsch" ], + "access": [ "keine_bezahlschranke" ], + "medium": [ "magazin" ], + "topics": [ + "international", "politik", "innenpolitik" ] }, "da-betrieb": { @@ -848,9 +1209,13 @@ "desc": "Gewerkschaftszeitung der anarchosyndikalistischen Gewerkschaftsföderation Freie Arbeiter*innen-Union (FAU). Nachrichten aus der Kategorie Betrieb und Gesellschaft.", "web": "https://direkteaktion.org/kategorie/betrieb-gesellschaft/", "rss": "https://direkteaktion.org/kategorie/betrieb-gesellschaft/feed/", - "categories": [ - "keine_bezahlschranke", "deutsch", "blog", "arbeit", "gesellschaft", - "überregional" + "regions": [ "deutschland" ], + "local": [], + "languages": [ "deutsch" ], + "access": [ "keine_bezahlschranke" ], + "medium": [ "online" ], + "topics": [ + "arbeit", "gesellschaft" ] }, "da-global": { @@ -858,9 +1223,13 @@ "desc": "Gewerkschaftszeitung der anarchosyndikalistischen Gewerkschaftsföderation Freie Arbeiter*innen-Union (FAU). Nachrichten aus der Kategorie Globales.", "web": "https://direkteaktion.org/kategorie/globales/", "rss": "https://direkteaktion.org/kategorie/globales/feed/", - "categories": [ - "keine_bezahlschranke", "deutsch", "blog", "international", - "überregional" + "regions": [ "global" ], + "local": [], + "languages": [ "deutsch" ], + "access": [ "keine_bezahlschranke" ], + "medium": [ "online" ], + "topics": [ + "allgemein" ] }, "da-kultur": { @@ -868,8 +1237,13 @@ "desc": "Gewerkschaftszeitung der anarchosyndikalistischen Gewerkschaftsföderation Freie Arbeiter*innen-Union (FAU). Nachrichten aus der Kategorie Kultur.", "web": "https://direkteaktion.org/kategorie/kultur/", "rss": "https://direkteaktion.org/kategorie/kultur/feed/", - "categories": [ - "keine_bezahlschranke", "deutsch", "blog", "kultur", "überregional" + "regions": [ "deutschland" ], + "local": [], + "languages": [ "deutsch" ], + "access": [ "keine_bezahlschranke" ], + "medium": [ "online" ], + "topics": [ + "kultur" ] }, "da-hintergrund": { @@ -877,9 +1251,13 @@ "desc": "Gewerkschaftszeitung der anarchosyndikalistischen Gewerkschaftsföderation Freie Arbeiter*innen-Union (FAU). Nachrichten aus der Kategorie Hintergrund.", "web": "https://direkteaktion.org/kategorie/hintergrund/", "rss": "https://direkteaktion.org/kategorie/hintergrund/feed/", - "categories": [ - "keine_bezahlschranke", "deutsch", "blog", "investigativ", - "überregional" + "regions": [ "deutschland" ], + "local": [], + "languages": [ "deutsch" ], + "access": [ "keine_bezahlschranke" ], + "medium": [ "online" ], + "topics": [ + "investigativ" ] }, "jacobin-de": { @@ -887,9 +1265,13 @@ "desc": "Wirtschafts-, Politik- und Kulturmagazin, mit Ausrichtung auf den demokratischen Sozialismus. Ursprünglich aus den Vereintigten Staaten von Amerika, im Brumaire-Verlag aus Berlin aber auch in Deutsch.", "web": "https://jacobin.de", "rss": "https://jacobin.de/rss.xml", - "categories": [ - "keine_bezahlschranke", "deutsch", "magazin", "allgemein", - "überregional" + "regions": [ "deutschland" ], + "local": [], + "languages": [ "deutsch" ], + "access": [ "keine_bezahlschranke" ], + "medium": [ "magazin" ], + "topics": [ + "allgemein" ] }, "jacobin-en": { @@ -897,9 +1279,13 @@ "desc": "US-Amerikanisches Wirtschafts-, Politik- und Kulturmagazin, mit Ausrichtung auf den demokratischen Sozialismus.", "web": "https://jacobin.com", "rss": "https://jacobin.de/feed/", - "categories": [ - "keine_bezahlschranke", "englisch", "magazin", "allgemein", - "überregional" + "regions": [ "usa" ], + "local": [], + "languages": [ "englisch" ], + "access": [ "keine_bezahlschranke" ], + "medium": [ "magazin" ], + "topics": [ + "allgemein" ] }, "tribune": { @@ -907,9 +1293,13 @@ "desc": "Britiches Politik- und Gesellschaftsmagazin, welches sich dem demokratischen Sozialismus verschreibt.", "web": "https://tribunemag.co.uk", "rss": "https://tribunemag.co.uk/feed/", - "categories": [ - "keine_bezahlschranke", "englisch", "magazin", "allgemein", "politik", - "überregional" + "regions": [ "europa" ], + "local": [], + "languages": [ "englisch" ], + "access": [ "keine_bezahlschranke" ], + "medium": [ "magazin" ], + "topics": [ + "allgemein" ] }, "surplus": { @@ -917,8 +1307,13 @@ "desc": "Deutsches Wirtschaftsmagazin, das sich um die Interessen der großen Mehrheit und nicht der Reichsten dreht. Mit Beiträgen von führenden linken Ökonom:innen weltweit.", "web": "https://www.surplusmagazin.de", "rss": "https://www.surplusmagazin.de/rss/", - "categories": [ - "bezahlschranke", "deutsch", "magazin", "wirtschaft", "überregional" + "regions": [ "deutschland" ], + "local": [], + "languages": [ "deutsch" ], + "access": [ "bezahlschranke" ], + "medium": [ "magazin" ], + "topics": [ + "wirtschaft" ] }, "missy-politik": { @@ -926,9 +1321,13 @@ "desc": "Deutsche Online- und Druckzeitschrift für Pop, Politik und Feminismus. Beiträge aus der Kategorie Politik und Protest.", "web": "https://missy-magazine.de/blog/category/politik-und-protest/", "rss": "https://missy-magazine.de/blog/category/politik-und-protest/feed/", - "categories": [ - "keine_bezahlschranke", "deutsch", "magazin", "politik", "gesellschaft", - "überregional" + "regions": [ "deutschland" ], + "local": [], + "languages": [ "deutsch" ], + "access": [ "keine_bezahlschranke" ], + "medium": [ "magazin" ], + "topics": [ + "politik", "gesellschaft" ] }, "missy-körper": { @@ -936,9 +1335,13 @@ "desc": "Deutsche Online- und Druckzeitschrift für Pop, Politik und Feminismus. Beiträge aus der Kategorie Körper und Sex.", "web": "https://missy-magazine.de/blog/category/koerper-und-sex/", "rss": "https://missy-magazine.de/blog/category/koerper-und-sex/feed/", - "categories": [ - "keine_bezahlschranke", "deutsch", "magazin", "gesellschaft", - "gesundheit", "ratgeber", "überregional" + "regions": [ "deutschland" ], + "local": [], + "languages": [ "deutsch" ], + "access": [ "keine_bezahlschranke" ], + "medium": [ "magazin" ], + "topics": [ + "ratgeber", "gesundheit" ] }, "missy-gesellschaft": { @@ -946,9 +1349,13 @@ "desc": "Deutsche Online- und Druckzeitschrift für Pop, Politik und Feminismus. Beiträge aus der Kategorie Kultur und Gesellschaft.", "web": "https://missy-magazine.de/blog/category/kultur-und-gesellschaft/", "rss": "https://missy-magazine.de/blog/category/kultur-und-gesellschaft/feed/", - "categories": [ - "keine_bezahlschranke", "deutsch", "magazin", "gesellschaft", "kultur", - "überregional" + "regions": [ "deutschland" ], + "local": [], + "languages": [ "deutsch" ], + "access": [ "keine_bezahlschranke" ], + "medium": [ "magazin" ], + "topics": [ + "kultur", "gesellschaft" ] }, "anschläge": { @@ -956,9 +1363,13 @@ "desc": "Feministisches monatliches Magazin aus Österreich.", "web": "https://anschlaege.at", "rss": "https://anschlaege.at/feed/", - "categories": [ - "keine_bezahlschranke", "deutsch", "magazin", "gesellschaft", - "allgemein", "überregional" + "regions": [ "global" ], + "local": [], + "languages": [ "deutsch" ], + "access": [ "keine_bezahlschranke" ], + "medium": [ "magazin" ], + "topics": [ + "debatte" ] }, "ak": { @@ -966,9 +1377,13 @@ "desc": "Monatszeitung für linke Debatte und Praxis als Nachfolgeveröffentlichung der Arbeitskampf Zeitung.", "web": "https://www.akweb.de", "rss": "https://www.akweb.de/feed/", - "categories": [ - "keine_bezahlschranke", "deutsch", "magazin", "politik", "allgemein", - "überregional" + "regions": [ "global" ], + "local": [], + "languages": [ "deutsch" ], + "access": [ "keine_bezahlschranke" ], + "medium": [ "monatszeitung" ], + "topics": [ + "debatte" ] }, "luxemburg": { @@ -976,9 +1391,13 @@ "desc": "Zeitschrift für Gesellschaftsanalyse und linke Praxis als Diskussionsorgan einer pluralen Linken", "web": "https://zeitschrift-luxemburg.de", "rss": "https://zeitschrift-luxemburg.de/rss.xml", - "categories": [ - "keine_bezahlschranke", "deutsch", "magazin", "politik", "gesellschaft", - "überregional" + "regions": [ "global" ], + "local": [], + "languages": [ "deutsch" ], + "access": [ "keine_bezahlschranke" ], + "medium": [ "magazin" ], + "topics": [ + "debatte" ] }, "rls": { @@ -986,9 +1405,13 @@ "desc": "Veröffentlichungen der parteinahen Stiftung der Partei Die Linke.", "web": "https://www.rosalux.de", "rss": "https://www.rosalux.de/rss.xml", - "categories": [ - "keine_bezahlschranke", "deutsch", "magazin", "politik", "gesellschaft", - "überregional" + "regions": [ "deutschland" ], + "local": [], + "languages": [ "deutsch" ], + "access": [ "keine_bezahlschranke" ], + "medium": [ "magazin" ], + "topics": [ + "debatte" ] }, "transform-europe": { @@ -996,9 +1419,13 @@ "desc": "Blog des Netzwerk linker politischer Organisationen und politische Stiftung der Partei der Europäischen Linken (EL).", "web": "https://transform-network.net/blog/", "rss": "https://transform-network.net/blog/feed/", - "categories": [ - "keine_bezahlschranke", "englisch", "blog", "politik", "gesellschaft", - "überregional" + "regions": [ "europa" ], + "local": [], + "languages": [ "englisch" ], + "access": [ "keine_bezahlschranke" ], + "medium": [ "magazin" ], + "topics": [ + "debatte" ] }, "hbs": { @@ -1006,9 +1433,13 @@ "desc": "Veröffentlichungen der parteinahen Stiftung der Partei Bündnis 90 / Die Grünen.", "web": "https://www.boell.de/de/", "rss": "https://www.boell.de/de/rss.xml", - "categories": [ - "keine_bezahlschranke", "englisch", "blog", "politik", "gesellschaft", - "überregional" + "regions": [ "deutschland" ], + "local": [], + "languages": [ "deutsch" ], + "access": [ "keine_bezahlschranke" ], + "medium": [ "magazin" ], + "topics": [ + "debatte" ] }, "nlr": { @@ -1016,9 +1447,13 @@ "desc": "Britische marxistische Zeitschrift, die als einflussreiche Publikation innerhalb der Neuen Linken gilt.", "web": "https://newleftreview.org", "rss": "https://newleftreview.org/feed/", - "categories": [ - "keine_bezahlschranke", "englisch", "magazin", "politik", - "gesellschaft", "überregional" + "regions": [ "global" ], + "local": [], + "languages": [ "englisch" ], + "access": [ "keine_bezahlschranke" ], + "medium": [ "magazin" ], + "topics": [ + "debatte" ] }, "mr": { @@ -1026,9 +1461,13 @@ "desc": "Marxistische monatliche Zeitschrift aus den Vereinigten Staaten von Amerika, unter Anderem bekannt für den Aufmacher 'Why Socialism?' der ersten Ausgabe von Albert Einstein in 1949.", "web": "https://monthlyreview.org", "rss": "https://monthlyreview.org/feed/", - "categories": [ - "keine_bezahlschranke", "englisch", "magazin", "politik", - "gesellschaft", "überregional" + "regions": [ "global" ], + "local": [], + "languages": [ "englisch" ], + "access": [ "keine_bezahlschranke" ], + "medium": [ "magazin" ], + "topics": [ + "debatte" ] }, "europablog": { @@ -1036,9 +1475,13 @@ "desc": "Linker Analyse- und Meinungsblog mit hohem journalistischem Selbstanspruch, der sich als kritisch-konstruktiv gegenüber der Europäischen Union versteht.", "web": "https://europa.blog/de/", "rss": "https://europa.blog/de/feed/", - "categories": [ - "keine_bezahlschranke", "deutsch", "blog", "politik", "europa", - "gesellschaft", "überregional" + "regions": [ "europa" ], + "local": [], + "languages": [ "deutsch" ], + "access": [ "keine_bezahlschranke" ], + "medium": [ "online" ], + "topics": [ + "debatte" ] }, "diezukunft": { @@ -1046,9 +1489,13 @@ "desc": "Debattenblog zu strategischen Positionen und Konzepten für eine anderes Europa une eine Europäische Union", "web": "https://www.die-zukunft.eu/", "rss": "https://www.die-zukunft.eu/feed/", - "categories": [ - "keine_bezahlschranke", "deutsch", "blog", "politik", "europa", - "überregional" + "regions": [ "europa" ], + "local": [], + "languages": [ "deutsch" ], + "access": [ "keine_bezahlschranke" ], + "medium": [ "online" ], + "topics": [ + "debatte" ] }, "netzpolitikorg": { @@ -1056,9 +1503,13 @@ "desc": "Nicht-kommerzielle deutsche Nachrichtenseite zu digitalen Freiheitsrechten, Netzpolitik, staatlicher Überwachung und Open-Source", "web": "https://netzpolitik.org/", "rss": "https://netzpolitik.org/feed/", - "categories": [ - "keine_bezahlschranke", "blog", "deutsch", "debatte", "gesellschaft", - "netz", "überregional" + "regions": [ "deutschland" ], + "local": [], + "languages": [ "deutsch" ], + "access": [ "keine_bezahlschranke" ], + "medium": [ "online" ], + "topics": [ + "netz" ] }, "intercept-pol": { @@ -1066,9 +1517,13 @@ "desc": "Amerikanische linke Non-Profit-Nachrichtenorganisation, die Online-Artikel in englischer und portugiesischer Sprache veröffentlicht. Nachrichten aus dem Politik Resort", "web": "https://theintercept.com/politics/", "rss": "https://theintercept.com/politics/feed/", - "categories": [ - "keine_bezahlschranke", "täglich", "englisch", "politik", "amerika", - "usa", "überregional" + "regions": [ "usa" ], + "local": [], + "languages": [ "englisch" ], + "access": [ "keine_bezahlschranke" ], + "medium": [ "online" ], + "topics": [ + "politik" ] }, "intercept-jus": { @@ -1076,9 +1531,13 @@ "desc": "Amerikanische linke Non-Profit-Nachrichtenorganisation, die Online-Artikel in englischer und portugiesischer Sprache veröffentlicht. Nachrichten aus dem Justiz Resort", "web": "https://theintercept.com/justice/", "rss": "https://theintercept.com/justice/feed/", - "categories": [ - "keine_bezahlschranke", "täglich", "englisch", "innenpolitik", - "politik", "amerika", "usa", "überregional" + "regions": [ "usa" ], + "local": [], + "languages": [ "englisch" ], + "access": [ "keine_bezahlschranke" ], + "medium": [ "online" ], + "topics": [ + "politik" ] }, "intercept-tech": { @@ -1086,9 +1545,13 @@ "desc": "Amerikanische linke Non-Profit-Nachrichtenorganisation, die Online-Artikel in englischer und portugiesischer Sprache veröffentlicht. Nachrichten aus dem Technik Resort", "web": "https://theintercept.com/technology/", "rss": "https://theintercept.com/technology/feed/", - "categories": [ - "keine_bezahlschranke", "täglich", "englisch", "netz", - "amerika", "usa", "überregional" + "regions": [ "usa" ], + "local": [], + "languages": [ "englisch" ], + "access": [ "keine_bezahlschranke" ], + "medium": [ "online" ], + "topics": [ + "netz" ] }, "intercept-inv": { @@ -1096,19 +1559,17 @@ "desc": "Amerikanische linke Non-Profit-Nachrichtenorganisation, die Online-Artikel in englischer und portugiesischer Sprache veröffentlicht. Investigative Reportagen", "web": "https://theintercept.com/special-investigations/", "rss": "https://theintercept.com/special-investigations/feed/", - "categories": [ - "keine_bezahlschranke", "täglich", "englisch", "investigativ", - "debatte", "amerika", "usa", "überregional" + "regions": [ "usa" ], + "local": [], + "languages": [ "englisch" ], + "access": [ "keine_bezahlschranke" ], + "medium": [ "online" ], + "topics": [ + "investigativ" ] } }, - "categories": { - "allgemein": { - "id": "allgemein", - "name": "Allgemein", - "description": "Informationen ohne weitere Kategorisierung" - }, - + "regions": { "afrika": { "id": "afrika", "name": "Afrika", @@ -1119,46 +1580,53 @@ "name": "Amerika", "description": "Nord-, Mittel- und Südamerika" }, - "arbeit": { - "id": "arbeit", - "name": "Arbeit", - "description": "Arbeit und Lohnbeschäftigung" - }, "asien": { "id": "asien", "name": "Asien", "description": "Asiatischer Kontinent" }, - "australien": { - "id": "australien", - "name": "Australien", - "description": "Astralien und Pazifik" + "deutschland": { + "id": "deutschland", + "name": "Deutschland", + "description": "Nachrichten über Deutschland" + }, + "europa": { + "id": "europa", + "name": "Europa", + "description": "Nachrichten über Europa und EU" + }, + "global": { + "id": "global", + "name": "Global", + "description": "Globale Nachrichten" + }, + "lokal": { + "id": "lokal", + "name": "Lokal", + "description": "Lokalnachrichten" }, - "außenpolitik": { - "id": "außenpolitik", - "name": "Außenpolitik", - "description": "Deutsche Außenpolitik" + "nahost": { + "id": "nahost", + "name": "Nahost", + "description": "Nachrichten aus der Nahostregion" + }, + "ozeanien": { + "id": "ozeanien", + "name": "Ozeanien", + "description": "Ozeanien, Astralien und Pazifik" }, + "usa": { + "id": "usa", + "name": "USA", + "description": "Vereinigte Staaten von Amerika" + } + }, + "local": { "berlin": { "id": "berlin", "name": "Berlin", "description": "Hauptstadt und Lokales aus Berlin" }, - "bezahlschranke": { - "id": "bezahlschranke", - "name": "Bezahlschranke", - "description": "Einige Artikel haben eine Bezahlschranke / Paywall" - }, - "bildung": { - "id": "bildung", - "name": "Bildung", - "description": "Bildung und Wissen" - }, - "blog": { - "id": "blog", - "name": "Blog", - "description": "Webblog" - }, "brandenburg": { "id": "brandenburg", "name": "Brandenburg", @@ -1169,45 +1637,98 @@ "name": "Bremen", "description": "Lokales aus Bremen und Bremerhaven" }, - "bücher": { - "id": "bücher", - "name": "Bücher", - "description": "Rezessionen und Buchbesprechung" - }, - "debatte": { - "id": "debatte", - "name": "Debatte", - "description": "Debatte aus Politik und Gesellschaft" + "hamburg": { + "id": "hamburg", + "name": "Hamburg", + "description": "Lokales aus Hamburg" }, + "norddeutschland": { + "id": "norddeutschland", + "name": "Norddeutschland", + "description": "Lokales aus Norddeutschland" + } + }, + "languages": { "deutsch": { "id": "deutsch", "name": "Deutsch", "description": "in deutscher Sprache" }, - "deutschland": { - "id": "deutschland", - "name": "Deutschland", - "description": "Nachrichten über Deutschland" - }, "englisch": { "id": "englisch", "name": "Englisch", "description": "in englischer Sprache" }, - "europa": { - "id": "europa", - "name": "Europa", - "description": "Nachrichten über Europa und EU" - }, - "filme": { - "id": "filme", - "name": "Filme", - "description": "Rezessionen und Filmbesprechung" - }, "französisch": { "id": "französisch", "name": "Französisch", "description": "in französischer Sprache" + } + }, + "access": { + "bezahlschranke": { + "id": "bezahlschranke", + "name": "Bezahlschranke", + "description": "Einige Artikel haben eine Bezahlschranke / Paywall" + }, + "keine_bezahlschranke": { + "id": "keine_bezahlschranke", + "name": "Kostenlos", + "description": "Alle Artikel sind kostenlos zugänglich" + } + }, + "medium": { + "magazin": { + "id": "magazin", + "name": "Magazin", + "description": "Web- und Printmagazin" + }, + "monatszeitung": { + "id": "monatszeitung", + "name": "Monatszeitung", + "description": "Monatszeitungen und monatliche Artikel" + }, + "online": { + "id": "online", + "name": "Online-Publikation", + "description": "Online-Zeitungen, Weblogs und Online-Publikationen" + }, + "tageszeitung": { + "id": "tageszeitung", + "name": "Tageszeitung", + "description": "Tageszeitungen und tägliche Artikel" + }, + "wochenzeitung": { + "id": "wochenzeitung", + "name": "Wochenzeitung", + "description": "Wochenzeitungen und wöchentliche Artikel" + } + }, + "topics": { + "allgemein": { + "id": "allgemein", + "name": "Allgemein", + "description": "Informationen ohne weitere Kategorisierung" + }, + "arbeit": { + "id": "arbeit", + "name": "Arbeit", + "description": "Arbeit und Lohnbeschäftigung" + }, + "international": { + "id": "international", + "name": "International", + "description": "Internationale Themen und Außenpolitik" + }, + "bildung": { + "id": "bildung", + "name": "Bildung", + "description": "Bildung und Wissen" + }, + "debatte": { + "id": "debatte", + "name": "Debatte", + "description": "Debatte aus Politik und Gesellschaft" }, "gesellschaft": { "id": "gesellschaft", @@ -1219,11 +1740,6 @@ "name": "Gesundheit", "description": "Gesundheit und Lebensstil" }, - "hamburg": { - "id": "hamburg", - "name": "Hamburg", - "description": "Lokales aus Hamburg" - }, "hinter_den_kulissen": { "id": "hinter_den_kulissen", "name": "Hausblogs", @@ -1234,76 +1750,26 @@ "name": "Innenpolitik", "description": "Deutsche Innenpolitik" }, - "international": { - "id": "international", - "name": "International", - "description": "Internationales und globale Meldungen" - }, "investigativ": { "id": "investigativ", "name": "Investigativ", "description": "Investigative Recherchen" }, - "keine_bezahlschranke": { - "id": "keine_bezahlschranke", - "name": "Kostenlos", - "description": "Alle Artikel sind kostenlos zugänglich" - }, - "kolumne": { - "id": "kolumne", - "name": "Kolumne", - "description": "Meinungsbeiträge" - }, - "kommentar": { - "id": "kommentar", - "name": "Kommentar", - "description": "Externe Meinungsbeiträge" - }, - "konsum": { - "id": "konsum", - "name": "Konsum", - "description": "Nachrichten für Verbraucher:innen" - }, "kultur": { "id": "kultur", "name": "Kultur", "description": "Kultur, Theater und mehr" }, - "kunst": { - "id": "kunst", - "name": "Kunst", - "description": "Rezessionen und Kunstbesprechung" - }, - "magazin": { - "id": "magazin", - "name": "Magazin", - "description": "Web- und Printmagazin" - }, "medien": { "id": "medien", "name": "Medien", - "description": "Rezessionen und Medienkritik" - }, - "musik": { - "id": "musik", - "name": "Musik", - "description": "Rezessionen und Musikbesprechung" - }, - "nahost": { - "id": "nahost", - "name": "Nahost", - "description": "Nachrichten aus der Nahostregion" + "description": "Rezessionen, Medienkritik, Kunst, Film und Musik" }, "netz": { "id": "netz", "name": "Netz", "description": "Netzpolitik, -ökonomie, -kultur und das Internet" }, - "norddeutschland": { - "id": "norddeutschland", - "name": "Norddeutschland", - "description": "Lokales aus Norddeutschland" - }, "politik": { "id": "politik", "name": "Politik", @@ -1329,51 +1795,20 @@ "name": "Tourismus", "description": "Reisen und Reisegebiete" }, - "täglich": { - "id": "täglich", - "name": "Tageszeitung", - "description": "Tageszeitungen und tägliche Artikel" - }, - "überregional": { - "id": "überregional", - "name": "Überregional", - "description": "Überregionale Nachrichten" - }, - "umwelt": { "id": "umwelt", "name": "Umwelt", - "description": "Klimawandel, Umwelt und Nachhaltigkeit" - }, - "usa": { - "id": "usa", - "name": "USA", - "description": "Vereinigte Staaten von Amerika" - }, - "verkehr": { - "id": "verkehr", - "name": "Verkehr", - "description": "Verkehrspolitik und Mobilitätstransformation" - }, - "volkswirtschaft": { - "id": "volkswirtschaft", - "name": "Volkswirtschaft", - "description": "Gesamtwirtschaft und Ökonomie" + "description": "Klimawandel, Umwelt, Nachhaltigkeit und Verkehr" }, "wirtschaft": { "id": "wirtschaft", "name": "Wirtschaft", - "description": "Betriebs- und Volkswirtschaft" + "description": "Betriebs-, Volkswirtschaft und Ökonomie" }, "wissenschaft": { "id": "wissenschaft", "name": "Wissenschaft", "description": "Wissenschaft und Forschung" - }, - "wöchentlich": { - "id": "wöchentlich", - "name": "Wochenzeitung", - "description": "Wochenzeitungen und wöchentliche Artikel" } } } diff --git a/tools/gen_categories.php b/tools/gen_categories.php @@ -10,56 +10,166 @@ $sources = json_decode( true ); -// extract categories from each news source and add it to a sorted array -$categories = array(); -foreach ($sources["sources"] as $source) { - foreach($source["categories"] as $category) { - array_push($categories, $category); +// Define function to count regions, locals, languages, accesses, medium, topics +function count_catgroies($type, $sources) { + + // extract categories from each news source and add it to a sorted array + $categories = array(); + foreach ($sources["sources"] as $source) { + foreach($source[$type] as $category) { + array_push($categories, $category); + } } -} -sort($categories); + sort($categories); -// Count each category value -$categories_count = array_count_values($categories); + // Count each category value + $categories_count = array_count_values($categories); -// extract categories definitions -$definitions = array(); -foreach ($sources["categories"] as $definition) { - array_push($definitions, $definition["id"]); -} -sort($definitions); + // extract categories definitions + $definitions = array(); + foreach ($sources[$type] as $definition) { + array_push($definitions, $definition["id"]); + } + sort($definitions); -// check how often each definition exists in the news sources categories -$definitions_count = array(); -foreach ($definitions as $definition) { - $search = "/^" . $definition . "$/"; - $definitions_count[$definition] = count(preg_grep($search, $categories)); -} + // check how often each definition exists in the news sources categories + $definitions_count = array(); + foreach ($definitions as $definition) { + $search = "/^" . $definition . "$/"; + $definitions_count[$definition] = count( + preg_grep($search, $categories) + ); + } + + // check how often each news sources categories exists in the definitions + $categories_exist = array(); + foreach ($categories as $category) { + $search = "/^" . $category . "$/"; + $categories_exist[$category] = count(preg_grep($search, $definitions)); + } + + return array( + "categories_count" => $categories_count, + "definitions_count" => $definitions_count, + "categories_exist" => $categories_exist + ); -// check how often each news sources categories exists in the definitions -$categories_exist = array(); -foreach ($categories as $category) { - $search = "/^" . $category . "$/"; - $categories_exist[$category] = count(preg_grep($search, $definitions)); } +// Generate output +$regions = count_catgroies("regions", $sources); +$local = count_catgroies("local", $sources); +$languages = count_catgroies("languages", $sources); +$access = count_catgroies("access", $sources); +$medium = count_catgroies("medium", $sources); +$topics = count_catgroies("topics", $sources); // Generate User output echo "####################" . PHP_EOL . "Category-Occurrence in News Sources:" . PHP_EOL; -print_r($categories_count); +print_r($regions["categories_count"]); +echo "####################" . PHP_EOL . + "Category-Occurrence in Definitions:" . PHP_EOL; +print_r($regions["definitions_count"]); +echo "####################" . PHP_EOL . + "Category-Occurrence in News Sources:" . PHP_EOL; +print_r($local["categories_count"]); +echo "####################" . PHP_EOL . + "Category-Occurrence in Definitions:" . PHP_EOL; +print_r($local["definitions_count"]); +echo "####################" . PHP_EOL . + "Category-Occurrence in News Sources:" . PHP_EOL; +print_r($languages["categories_count"]); +echo "####################" . PHP_EOL . + "Category-Occurrence in Definitions:" . PHP_EOL; +print_r($languages["definitions_count"]); +echo "####################" . PHP_EOL . + "Category-Occurrence in News Sources:" . PHP_EOL; +print_r($access["categories_count"]); +echo "####################" . PHP_EOL . + "Category-Occurrence in Definitions:" . PHP_EOL; +print_r($access["definitions_count"]); +echo "####################" . PHP_EOL . + "Category-Occurrence in News Sources:" . PHP_EOL; +print_r($medium["categories_count"]); echo "####################" . PHP_EOL . "Category-Occurrence in Definitions:" . PHP_EOL; -print_r($definitions_count); +print_r($medium["definitions_count"]); +echo "####################" . PHP_EOL . + "Category-Occurrence in News Sources:" . PHP_EOL; +print_r($topics["categories_count"]); +echo "####################" . PHP_EOL . + "Category-Occurrence in Definitions:" . PHP_EOL; +print_r($topics["definitions_count"]); // Warnings -$definitions_zeros = preg_grep("/^0$/", $definitions_count); +$definitions_zeros = preg_grep("/^0$/", $regions["definitions_count"]); +if (count($definitions_zeros) > 0) { + echo "####################" . PHP_EOL . + "WARNING: Some definitions are not used in the news sources:" . PHP_EOL; + print_r($definitions_zeros); +} +$categories_zeros = preg_grep("/^0$/", $regions["categories_exist"]); +if (count($categories_zeros) > 0) { + echo "####################" . PHP_EOL . + "WARNING: Some categories do not exist in the definitions:" . PHP_EOL; + print_r($categories_zeros); +} +$definitions_zeros = preg_grep("/^0$/", $local["definitions_count"]); +if (count($definitions_zeros) > 0) { + echo "####################" . PHP_EOL . + "WARNING: Some definitions are not used in the news sources:" . PHP_EOL; + print_r($definitions_zeros); +} +$categories_zeros = preg_grep("/^0$/", $local["categories_exist"]); +if (count($categories_zeros) > 0) { + echo "####################" . PHP_EOL . + "WARNING: Some categories do not exist in the definitions:" . PHP_EOL; + print_r($categories_zeros); +} +$definitions_zeros = preg_grep("/^0$/", $languages["definitions_count"]); +if (count($definitions_zeros) > 0) { + echo "####################" . PHP_EOL . + "WARNING: Some definitions are not used in the news sources:" . PHP_EOL; + print_r($definitions_zeros); +} +$categories_zeros = preg_grep("/^0$/", $languages["categories_exist"]); +if (count($categories_zeros) > 0) { + echo "####################" . PHP_EOL . + "WARNING: Some categories do not exist in the definitions:" . PHP_EOL; + print_r($categories_zeros); +} +$definitions_zeros = preg_grep("/^0$/", $access["definitions_count"]); +if (count($definitions_zeros) > 0) { + echo "####################" . PHP_EOL . + "WARNING: Some definitions are not used in the news sources:" . PHP_EOL; + print_r($definitions_zeros); +} +$categories_zeros = preg_grep("/^0$/", $access["categories_exist"]); +if (count($categories_zeros) > 0) { + echo "####################" . PHP_EOL . + "WARNING: Some categories do not exist in the definitions:" . PHP_EOL; + print_r($categories_zeros); +} +$definitions_zeros = preg_grep("/^0$/", $medium["definitions_count"]); +if (count($definitions_zeros) > 0) { + echo "####################" . PHP_EOL . + "WARNING: Some definitions are not used in the news sources:" . PHP_EOL; + print_r($definitions_zeros); +} +$categories_zeros = preg_grep("/^0$/", $medium["categories_exist"]); +if (count($categories_zeros) > 0) { + echo "####################" . PHP_EOL . + "WARNING: Some categories do not exist in the definitions:" . PHP_EOL; + print_r($categories_zeros); +} +$definitions_zeros = preg_grep("/^0$/", $topics["definitions_count"]); if (count($definitions_zeros) > 0) { echo "####################" . PHP_EOL . "WARNING: Some definitions are not used in the news sources:" . PHP_EOL; print_r($definitions_zeros); } -$categories_zeros = preg_grep("/^0$/", $categories_exist); +$categories_zeros = preg_grep("/^0$/", $topics["categories_exist"]); if (count($categories_zeros) > 0) { echo "####################" . PHP_EOL . "WARNING: Some categories do not exist in the definitions:" . PHP_EOL;