Skip to content

Commit

Permalink
Merge branch 'master' into add-canadian-news-sources
Browse files Browse the repository at this point in the history
  • Loading branch information
MaxDall committed Sep 3, 2024
2 parents 823114a + 15865e0 commit dbb3566
Show file tree
Hide file tree
Showing 3 changed files with 15 additions and 12 deletions.
20 changes: 13 additions & 7 deletions src/fundus/publishers/de/krautreporter.py
Original file line number Diff line number Diff line change
@@ -1,19 +1,26 @@
import json
from datetime import datetime
from typing import List, Optional

from lxml.cssselect import CSSSelector
from lxml.etree import XPath

from fundus.parser import ArticleBody, BaseParser, ParserProxy, attribute, utility


class KrautreporterParser(ParserProxy):
class V1(BaseParser):
_summary_selector = CSSSelector("p.article-headers-standard__teaser")
_bloat_pattern: str = (
"^Redaktion:|^Dieser Artikel ist eine Übersetzung|^Übersetzung:|^Recherche:|^Schlussredaktion:"
)

_summary_selector = CSSSelector("p[data-test='article-teaser']")
_subheadline_selector = CSSSelector("div.article-markdown > h2")
_paragraph_selector = CSSSelector("div.article-markdown > p")
_json_ld_selector = CSSSelector('script[type="application/ld+json"]')
_topic_selector = CSSSelector("div.article-headers-shared-topic")
_paragraph_selector = XPath(
f"//div[contains(@class, 'article-markdown')] /p[not(re:test(string(), '{_bloat_pattern}'))]",
namespaces={"re": "http://exslt.org/regular-expressions"},
)

_topic_selector = XPath("string(//div[contains(@class, 'article-headers') and contains(@class, 'topic')])")

@attribute
def title(self) -> Optional[str]:
Expand Down Expand Up @@ -42,5 +49,4 @@ def publishing_date(self) -> Optional[datetime]:

@attribute
def topics(self) -> List[str]:
topic_element = self._topic_selector(self.precomputed.doc)[0]
return utility.generic_topic_parsing(topic_element.text_content())
return utility.generic_topic_parsing(self._topic_selector(self.precomputed.doc))
3 changes: 1 addition & 2 deletions src/fundus/scraping/url.py
Original file line number Diff line number Diff line change
Expand Up @@ -90,8 +90,7 @@ def __iter__(self) -> Iterator[str]:
logger.warning(f"Warning! Couldn't parse rss feed {self.url!r} because of {exception}")
return
else:
for url in (entry["link"] for entry in rss_feed["entries"]):
yield url
yield from filter(bool, (entry.get("link") for entry in rss_feed["entries"]))


@dataclass
Expand Down
4 changes: 1 addition & 3 deletions tests/resources/parser/test_data/de/Krautreporter.json
Original file line number Diff line number Diff line change
Expand Up @@ -180,9 +180,7 @@
"„Natürlich“, sagt sie nach einer kurzen Pause. Dann fährt sie ruhig fort: „Ich war und bin eine Linke, fest überzeugt von Koexistenz und Frieden. Frieden ist kein utopischer Traum. Wir haben keine Alternative. Ohne Frieden werden wir nicht überleben. Und Frieden bedeutet nicht, mit meinen Entführern in Khan Yunis Falafel zu essen, sondern die Abwesenheit von Krieg. Wenn dieser Krieg nichts grundlegend ändert, können wir tatsächlich unsere Sachen packen und diesen Ort verlassen.“",
"„Die widerwärtige Behauptung, dass der ganze Gazastreifen Hamas ist, ist schlicht falsch. Es war falsch von den Menschen dort, das, was passiert ist, zu unterstützen, aber auch in Israel haben die Menschen schon viele falsche Entscheidungen getroffen. Wir haben hier eine fürchterliche Regierung. Ein unwürdiger Premierminister wird immer wieder mit einer verstörenden Mehrheit gewählt. Und ja, ich denke über das nach, was in Gaza passiert. Ich fühle mit den Menschen, die dort leiden. Auf beiden Seiten gibt es Familien, die von Trauer und Verlust überwältigt werden, und meine Trauer ist nicht wichtiger als ihre. Krieg ist kein Selbstzweck, und für mich ist klar, dass dieser Krieg nur politischen Interessen dient. Es ist offensichtlich, dass die Regierung die Geiseln für ihr eigenes Überleben geopfert hat.“",
"Wirst du nach Nir Oz zurückkehren?",
"„Ich wünsche mir einen Tunnel von meinem Haus zu dem meiner Nachbarn, damit ich nicht allein bin, falls wieder etwas passiert“, sagt Liat mit einem Lachen. Aber sie weicht einer klaren Antwort aus. „Ich habe vor, zurückzukehren. Mein Sohn ist dort. Es hängt davon ab, welche Menschen noch zurückkommen. Einige Mitglieder unserer Gemeinschaft wollen nicht zurück. Aber ich möchte, dass es wieder ein Ort wird, an dem Leben möglich ist. Ein Ort, der Kontinuität und Erneuerung vereint. Ich liebe Nir Oz sehr, und ich will nicht, dass der siebte Oktober der einzige Tag bleibt, der es definiert. Dort ist auch meine Verbindung zu Aviv. Ohne zu zögern hat er sein Leben für diesen Ort gegeben.“",
"Dieser Artikel ist eine Übersetzung, im Original ist er in der israelischen Tageszeitung Haaretz erschienen.",
"Übersetzung: Tristan Oetker-Kast, Redaktion: Theresa Bäuerlein, Schlussredaktion: Lea Schönborn, Audioversion: Iris Hochberger und Christian Melchert"
"„Ich wünsche mir einen Tunnel von meinem Haus zu dem meiner Nachbarn, damit ich nicht allein bin, falls wieder etwas passiert“, sagt Liat mit einem Lachen. Aber sie weicht einer klaren Antwort aus. „Ich habe vor, zurückzukehren. Mein Sohn ist dort. Es hängt davon ab, welche Menschen noch zurückkommen. Einige Mitglieder unserer Gemeinschaft wollen nicht zurück. Aber ich möchte, dass es wieder ein Ort wird, an dem Leben möglich ist. Ein Ort, der Kontinuität und Erneuerung vereint. Ich liebe Nir Oz sehr, und ich will nicht, dass der siebte Oktober der einzige Tag bleibt, der es definiert. Dort ist auch meine Verbindung zu Aviv. Ohne zu zögern hat er sein Leben für diesen Ort gegeben.“"
]
}
]
Expand Down

0 comments on commit dbb3566

Please sign in to comment.