Skip to content

Commit cdb0b1d

Browse files
authored
Merge pull request #821 from flairNLP/fix-SeznamZpravy
Add `V1_1` for `SeznamZpravy`
2 parents 925990e + 261afdd commit cdb0b1d

File tree

4 files changed

+184
-3
lines changed

4 files changed

+184
-3
lines changed

src/fundus/publishers/cz/seznamzpravy.py

Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,13 +17,18 @@
1717

1818
class SeznamZpravyParser(ParserProxy):
1919
class V1(BaseParser):
20+
VALID_UNTIL = datetime.date(2025, 8, 1) # This date is an estimate, since our logs don't date
21+
# back far enough to accurately determine and it is unclear from archives.
22+
2023
_paragraph_selector = XPath(
2124
"//div[contains(@class,'mol-rich-content--for-article')]/div[contains(@class,'speakable')]/p"
2225
)
2326
_summary_selector = XPath("//div/p[contains(@class, 'speakable') and @*[contains(., 'ogm-article-perex')]]")
2427
_subheadline_selector = XPath("//div[contains(@class,'mol-rich-content--for-article')]/h2")
2528
_author_substitution_pattern: Pattern[str] = re.compile(r"Seznam Zprávy")
2629

30+
_bloat_topics = ["BLUE", "RED"]
31+
2732
@attribute
2833
def body(self) -> Optional[ArticleBody]:
2934
return extract_article_body_with_selector(
@@ -39,7 +44,11 @@ def publishing_date(self) -> Optional[datetime.datetime]:
3944

4045
@attribute
4146
def topics(self) -> List[str]:
42-
return generic_topic_parsing(self.precomputed.ld.bf_search("keywords"))
47+
return [
48+
topic
49+
for topic in generic_topic_parsing(self.precomputed.ld.bf_search("keywords"))
50+
if topic not in self._bloat_topics
51+
]
4352

4453
@attribute
4554
def title(self) -> Optional[str]:
@@ -62,3 +71,12 @@ def images(self) -> List[Image]:
6271
author_selector=XPath("./ancestor::figure//span[@*[contains(., 'atm-media-item-image-caption')]]"),
6372
relative_urls=True,
6473
)
74+
75+
class V1_1(V1):
76+
VALID_UNTIL = datetime.date.today()
77+
78+
_paragraph_selector = XPath("//div[@class='h_f7 h_bZ h_bZ']/div/p/span[@class='atm-text-decorator' and text()]")
79+
_subheadline_selector = XPath(
80+
"//div[@class='h_f7 h_bZ h_bZ']/div/p/span[@class='atm-text-decorator']/span | "
81+
"//div[@class='h_f7 h_bZ h_bZ']/h2"
82+
)

tests/resources/parser/test_data/cz/SeznamZpravy.json

Lines changed: 161 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -170,8 +170,167 @@
170170
"Vyšetřování",
171171
"Zdravotní stav",
172172
"Kauzy",
173-
"Domácí",
174-
"RED"
173+
"Domácí"
174+
]
175+
},
176+
"V1_1": {
177+
"authors": [
178+
"Lucie Stuchlíková"
179+
],
180+
"body": {
181+
"summary": [
182+
"Datum jmenování Babišova kabinetu záleží na jediné věci – jak rychle se dokáže budoucí premiér domluvit na Hradě."
183+
],
184+
"sections": [
185+
{
186+
"headline": [],
187+
"paragraphs": [
188+
"Vláda Petra Fialy schválila na dnešním jednání svou demisi. Takto bude řídit zemi až do vzniku nového kabinetu.",
189+
"„Demisi předám dnes osobně panu prezidentovi v 16 hodin. Předpokládám, že naše vláda bude pověřena, abychom vládli v demisi do jmenování nového kabinetu. Uděláme všechno pro to, aby předání moci bylo plynulé,“ uvedl končící premiér Petr Fiala (ODS).",
190+
"„Převzali jsme zemi ve stavu, kdy byly finance v rozvratu. Museli jsme se vyrovnat s covidem, válkou na Ukrajině, energetickou krizí. Jsem přesvědčen, že jsme těmito zkouškami prošli se ctí. Republiku předáváme v mnohem lepší kondici, než v jaké jsme ji před čtyřmi lety přebírali,“ dodal Fiala.",
191+
"Rozhodnutí končící vláda přijala na prvním zasedání po ustavení nové Sněmovny. Jde o krok, který ústavně otevírá cestu ke vzniku dalšího kabinetu. O něm momentálně vyjednává Andrej Babiš a jeho hnutí ANO s SPD a Motoristy. Jaké budou další kroky?"
192+
]
193+
},
194+
{
195+
"headline": [
196+
"Na tahu je prezident, na Hrad dorazí Babiš"
197+
],
198+
"paragraphs": [
199+
"Podle ústavy je teď na tahu prezident Petr Pavel, který demisi vlády přijme. Mezitím nadále běží vyjednávání o novém kabinetu, kterým je pověřen Andrej Babiš.",
200+
"Pavel si od vznikající koalice vyžádal programové prohlášení, které už jeho kancelář obdržela prostřednictvím datové schránky. To Pavel označil za neobvyklé řešení. Ve středu 12. listopadu za hlavou státu na Pražský hrad zamíří Andrej Babiš, aby spolu dokument probrali. Prezident se bude chtít ujistit například o tom, že vznikající vláda ctí zakotvení České republiky v mezinárodních organizacích.",
201+
"Kromě toho chce Pavel řešit další otázku – jakým způsobem Babiš vyřeší svůj střet zájmů. Již dříve prezident řekl, že po předsedovi ANO chce, aby veřejně před jmenováním popsal způsob, jakým se chce jakožto vlastník Agrofertu tomuto problému vyhnout. Babiš zatím konkrétní řešení neřekl, ujišťuje ale, že se zachová podle zákona."
202+
]
203+
},
204+
{
205+
"headline": [
206+
"Pohovory s ministry"
207+
],
208+
"paragraphs": [
209+
"Babiš zatím neřekl, jestli na středeční schůzku rovnou ponese i návrh jmen ministrů svého vznikajícího kabinetu. Prezident již dopředu avizoval, že se bude chtít s budoucími šéfy resortů krátce sejít.",
210+
"Oficiálně zatím šéf ANO jména do vlády nekomentuje, o většině je ale již víceméně jasno. Otazníky se vznášejí nad nominací Filipa Turka na post ministra zahraničí. S jeho jmenováním má prezident podle svých dřívějších vyjádření problém.",
211+
"Ze zdrojů z hnutí ANO vyplývá, že Turka jako ministra zahraničí si nepřeje ani Babiš. Zároveň si ale nechce rozhněvat koaliční partnery. Jeho strategií tak pravděpodobně bude Turkovo jméno prezidentovi přinést – a nechat Pavla, ať tento problém vyřeší za něj."
212+
]
213+
},
214+
{
215+
"headline": [
216+
"Jmenování vlády"
217+
],
218+
"paragraphs": [
219+
"Podle ústavy jmenuje premiéra prezident a následně na jeho návrh jmenuje i další členy vlády. Přesné datum, kdy k tomu dojde, je v tuto chvíli nejasné. Bude to záležet na rychlosti, se kterou se Babiš dokáže dohodnout na Hradě. Šéf ANO chce mít kabinet jmenovaný v průběhu prosince.",
220+
"Zatím jednání o vzniku nové vlády časově oproti minulosti nevybočuje. Rychleji ostatně proces ani jít nemohl – nejdříve je potřeba, aby se ustavila Sněmovna, teprve poté může stávající vláda podat demisi."
221+
]
222+
},
223+
{
224+
"headline": [
225+
"Rychlost jmenování vlády",
226+
"Žádost o důvěru"
227+
],
228+
"paragraphs": [
229+
"Jakmile bude kabinet jmenován, má 30 dní na to, aby požádal Sněmovnu o důvěru. Hlasovat pro ni musí nadpoloviční většina poslanců z nejméně 67 přítomných.",
230+
"Pokud by vláda důvěru nedostala, pokračuje v demisi a prezident má druhý pokus jmenovat premiéra. Takto fungoval od prosince 2017 do června 2018 první kabinet Andreje Babiše.",
231+
"Pokud by ani druhý kabinet důvěru nezískal, jmenuje prezident premiéra podle návrhu šéfa Sněmovny. K takové situaci v Česku ještě nedošlo."
232+
]
233+
},
234+
{
235+
"headline": [
236+
"Schvalování rozpočtu"
237+
],
238+
"paragraphs": [
239+
"Souběžně se sestavováním nové vlády poběží jednání o rozpočtu na příští rok. Andrej Babiš už uvedl, že pokud odcházející vláda pošle do Sněmovny svůj návrh rozpočtu, dodrží jeho základní parametry včetně schodku.",
240+
"V tom případě by se mohla nová vláda vyhnout rozpočtovému provizoriu. Budoucí premiér vidí jako reálné, že by Sněmovna ve třetím čtení schválila zákon o státním rozpočtu 17. prosince.",
241+
"Jenže vláda zatím svůj návrh rozpočtu do Sněmovny neposlala a názor nezměnila ani na aktuálním zasedání. A to přesto, že premiér v demisi Petr Fiala uvedl, že chce co nejhladší předání moci.",
242+
"Podle končícího ministra financí Zbyňka Stanjury (ODS) jde o zástupný problém. „Naším zájmem je co nejrychlejší předání moci. Ale co brání tomu rychlému předání moci? Andrej Babiš nemá vyřešený střet zájmů. Zatím nevíme, kdo má být ministr financí, aby nová vláda mohla prosadit a schválit svůj rozpočet,“ řekl Stanjura.",
243+
"Podle Stanjury vláda o možnosti rozpočet zaslat do dolní parlamentní komory ve čtvrtek debatovala, ale pouze neformálně. „Potřebujeme ujištění, že nová vláda dodrží zákon o rozpočtové odpovědnosti,“ dodal Stanjura."
244+
]
245+
}
246+
]
247+
},
248+
"images": [
249+
{
250+
"versions": [
251+
{
252+
"url": "https://d39-a.sdn.cz/d_39/c_img_oe_A/nPSV1TXV2nCJGajFKFEiClwy/97e2.jpeg?fl=cro,0,213,4096,2304%7Cres,320,,1%7Cjpg,80,,1",
253+
"query_width": null,
254+
"size": {
255+
"width": 320,
256+
"height": 180
257+
},
258+
"type": "image/jpeg"
259+
},
260+
{
261+
"url": "https://d39-a.sdn.cz/d_39/c_img_oe_A/nPSV1TXV2nCJGajFKFEiClwy/97e2.jpeg?fl=cro,0,213,4096,2304%7Cres,480,,1%7Cjpg,80,,1",
262+
"query_width": null,
263+
"size": {
264+
"width": 480,
265+
"height": 270
266+
},
267+
"type": "image/jpeg"
268+
},
269+
{
270+
"url": "https://d39-a.sdn.cz/d_39/c_img_oe_A/nPSV1TXV2nCJGajFKFEiClwy/97e2.jpeg?fl=cro,0,213,4096,2304%7Cres,600,,1%7Cjpg,80,,1",
271+
"query_width": null,
272+
"size": {
273+
"width": 600,
274+
"height": 338
275+
},
276+
"type": "image/jpeg"
277+
},
278+
{
279+
"url": "https://d39-a.sdn.cz/d_39/c_img_oe_A/nPSV1TXV2nCJGajFKFEiClwy/97e2.jpeg?fl=cro,0,213,4096,2304%7Cres,722,,1%7Cjpg,80,,1",
280+
"query_width": null,
281+
"size": {
282+
"width": 722,
283+
"height": 406
284+
},
285+
"type": "image/jpeg"
286+
},
287+
{
288+
"url": "https://d39-a.sdn.cz/d_39/c_img_oe_A/nPSV1TXV2nCJGajFKFEiClwy/97e2.jpeg?fl=cro,0,213,4096,2304%7Cres,1024,,1%7Cjpg,80,,1",
289+
"query_width": null,
290+
"size": {
291+
"width": 1024,
292+
"height": 576
293+
},
294+
"type": "image/jpeg"
295+
},
296+
{
297+
"url": "https://d39-a.sdn.cz/d_39/c_img_oe_A/nPSV1TXV2nCJGajFKFEiClwy/97e2.jpeg?fl=cro,0,213,4096,2304%7Cres,1280,,1%7Cjpg,80,,1",
298+
"query_width": null,
299+
"size": {
300+
"width": 1280,
301+
"height": 720
302+
},
303+
"type": "image/jpeg"
304+
},
305+
{
306+
"url": "https://d39-a.sdn.cz/d_39/c_img_oe_A/nPSV1TXV2nCJGajFKFEiClwy/97e2.jpeg?fl=cro,0,213,4096,2304%7Cres,2560,,1%7Cjpg,80,,1",
307+
"query_width": null,
308+
"size": {
309+
"width": 2560,
310+
"height": 1440
311+
},
312+
"type": "image/jpeg"
313+
}
314+
],
315+
"is_cover": true,
316+
"description": null,
317+
"caption": "Premiér v demisi Petr Fiala.",
318+
"authors": [
319+
"Renata Matějková",
320+
"Seznam Zprávy"
321+
],
322+
"position": 552
323+
}
324+
],
325+
"publishing_date": "2025-11-06 11:43:08+00:00",
326+
"title": "Fialova vláda podá demisi. Jak rychle teď bude postupovat Babiš a Hrad",
327+
"topics": [
328+
"Vláda Petra Fialy",
329+
"Demise",
330+
"Andrej Babiš",
331+
"Petr Fiala",
332+
"Politika",
333+
"Domácí"
175334
]
176335
}
177336
}
Binary file not shown.

tests/resources/parser/test_data/cz/meta.info

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,5 +2,9 @@
22
"SeznamZpravy_2025_04_08.html.gz": {
33
"url": "https://www.seznamzpravy.cz/clanek/domaci-kauzy-hlavni-akter-dozimetru-prodava-vilu-rodina-se-zbavenim-prav-neuspela-272712",
44
"crawl_date": "2025-04-08 13:54:55.990399"
5+
},
6+
"SeznamZpravy_2025_11_06.html.gz": {
7+
"url": "https://www.seznamzpravy.cz/clanek/domaci-politika-fialova-vlada-podala-demisi-jak-rychle-ted-bude-postupovat-babis-a-hrad-290947",
8+
"crawl_date": "2025-11-06 13:14:02.275514"
59
}
610
}

0 commit comments

Comments
 (0)