aboutsummaryrefslogtreecommitdiff
path: root/bridges/GroupBundNaturschutzBridge.php
blob: 2aa78578165af0bd30fdb131e8de8a9f59bbb601 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
<?php

class GroupBundNaturschutzBridge extends XPathAbstract
{
    const NAME = 'BUND Naturschutz in Bayern e.V. - Kreisgruppen';
    const URI = 'https://www.bund-naturschutz.de/ueber-uns/organisation/kreisgruppen-ortsgruppen';
    const DESCRIPTION = 'Returns the latest news from specified BUND Naturschutz in Bayern e.V. local group (Germany)';
    const MAINTAINER = 'dweipert';

    const PARAMETERS = [
        [
            'group' => [
                'name' => 'Group',
                'type' => 'list',
                'values' => [
                    // 'Aichach-Friedberg' => 'bn-aic.de', # non-uniform page
                    'Altötting' => 'altoetting',
                    'Amberg-Sulzbach' => 'amberg-sulzbach',
                    'Ansbach' => 'ansbach',
                    'Aschaffenburg' => 'aschaffenburg',
                    'Augsburg' => 'augsburg',
                    'Bad Kissingen' => 'bad-kissingen',
                    'Bad Tölz' => 'bad-toelz',
                    'Bamberg' => 'bamberg',
                    'Bayreuth' => 'bayreuth', # single entry # different layout
                    'Berchtesgadener Land' => 'berchtesgadener-land',
                    'Cham' => 'cham',
                    // 'Coburg' => 'coburg', # no real entries # different layout
                    'Dachau' => 'dachau',
                    'Deggendorf' => 'Deggendorf',
                    'Dillingen' => 'dillingen',
                    'Dingolfing-Landau' => 'dingolfing-landau',
                    'Donau-Ries' => 'donauries',
                    'Ebersberg' => 'ebersberg',
                    'Eichstätt' => 'eichstaett', # single entry since 2020
                    'Erding' => 'erding',
                    'Erlangen' => 'erlangen',
                    'Forchheim' => 'forchheim',
                    'Freising' => 'freising',
                    'Freyung-Grafenau' => 'freyung-grafenau',
                    'Fürstenfeldbruck' => 'fuerstenfeldbruck',
                    'Fürth-Land' => 'fuerth-land',
                    'Fürth-Stadt' => 'fuerth',
                    'Garmisch-Partenkirchen' => 'garmisch-partenkirchen',
                    'Günzburg' => 'guenzburg',
                    'Hassberge' => 'hassberge',
                    'Höchstadt-Herzogenaurach' => 'hoechstadt-herzogenaurach',
                    // 'Hof' => 'kreisgruppehof.bund-naturschutz.com', # non-uniform page
                    'Ingolstadt' => 'ingolstadt',
                    'Kelheim' => 'kelheim',
                    'Kempten' => 'kempten',
                    'Kitzingen' => 'kitzingen',
                    'Kronach' => 'kronach',
                    'Kulmbach' => 'kulmbach',
                    'Landsberg' => 'landsberg',
                    'Landshut' => 'landshut',
                    'Lichtenfeld' => 'lichtenfels',
                    'Lindau' => 'lindau',
                    'Main-Spessart' => 'main-spessart',
                    'Memmingen-Unterallgäu' => 'memmingen-unterallgaeu',
                    'Miesbach' => 'miesbach',
                    'Miltenberg' => 'miltenberg',
                    'Mühldorf am Inn' => 'muehldorf',
                    // 'München' => 'bn-muenchen.de', # non-uniform page
                    'Neu-Ulm' => 'neu-ulm',
                    'Neuburg-Schrobenhausen' => 'neuburg-schrobenhausen',
                    'Neumarkt' => 'neumarkt',
                    'Neustadt/Aisch-Bad Windsheim' => 'neustadt-aisch',
                    'Neustadt/Waldnaab-Weiden' => 'neustadt-weiden',
                    'Nürnberg Stadt' => 'nuernberg-stadt',
                    'Nürnberger Land' => 'nuernberger-land',
                    'Ostallgäu-Kaufbeuren' => 'Ostallgäu-Kaufbeuren',
                    'Passau' => 'passau',
                    'Pfaffenhofen/Ilm' => 'pfaffenhofen',
                    'Regen' => 'regen',
                    'Regensburg' => 'regensburg',
                    'Rhön-Grabfeld' => 'rhoen-grabfeld',
                    'Rosenheim' => 'rosenheim',
                    'Roth' => 'roth',
                    'Rottal-Inn' => 'rottal-inn',
                    'Schwabach' => 'schwabach',
                    'Schwandorf' => 'schwandorf',
                    'Schweinfurt' => 'schweinfurt',
                    'Starnberg' => 'starnberg',
                    'Straubing-Bogen' => 'straubing',
                    'Tirschenreuth' => 'tirschenreuth',
                    'Traunstein' => 'traunstein',
                    'Weilheim-Schongau' => 'weilheim-schongau',
                    'Weißenburg-Gunzenhausen' => 'weissenburg-gunzenhausen',
                    'Wunsiedel' => 'wunsiedel',
                    'Würzburg' => 'wuerzburg',
                ],
            ],
        ],
    ];

    const XPATH_EXPRESSION_ITEM = '//div[@itemtype="http://schema.org/Article"]';
    const XPATH_EXPRESSION_ITEM_TITLE = './/*[@itemprop="headline"]';
    const XPATH_EXPRESSION_ITEM_CONTENT = './/*[@itemprop="description"]/text()';
    const XPATH_EXPRESSION_ITEM_URI = './/a/@href';
    const XPATH_EXPRESSION_ITEM_TIMESTAMP = './/*[@itemprop="datePublished"]/@datetime';
    const XPATH_EXPRESSION_ITEM_ENCLOSURES = './/img/@src';

    protected function getSourceUrl()
    {
        return 'https://' . $this->getInput('group') . '.bund-naturschutz.de/aktuelles';
    }
}