aboutsummaryrefslogtreecommitdiff
path: root/bridges/FinanzflussBridge.php
blob: f255fb597f8079d6b93fd0f7e2d644b65f35b17a (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
<?php

class FinanzflussBridge extends BridgeAbstract
{
    const MAINTAINER = 'Tone866';
    const NAME = 'finanzfluss Bridge';
    const URI = 'https://www.finanzfluss.de/blog';
    const CACHE_TIMEOUT = 1800; // 30min
    const DESCRIPTION = 'Feed for finanzfluss';
    const LIMIT = 10;

    public function collectData()
    {
        $baseurl = 'https://www.finanzfluss.de';
        $dom = getSimpleHTMLDOM('https://www.finanzfluss.de/blog');
        foreach ($dom->find('.preview-card') as $li) {
            $a = $li->find('a', 0);
            $title = $a->find('.title', 0);
            $url = $baseurl . $a->href;

            //get article
            $domarticle = getSimpleHTMLDOM($url);
            $content = $domarticle->find('div.content', 0);

            //get header-image and set absolute src
            $headerimage = $domarticle->find('div.article-header-image', 0);
            $headerimageimg = $headerimage->find('img[src]', 0);
            $src = $headerimageimg->src;
            $headerimageimg->src = $baseurl . $src;
            $headerimageimg->srcset = $baseurl . $src;

            //set absolute src for all img
            foreach ($content->find('img[src]') as $img) {
                $src = $img->src;
                $img->src = $baseurl . $src;
                $img->srcset = $baseurl . $src;
            }

            //remove unwanted stuff
            foreach ($content->find('div.newsletter-signup') as $element) {
                $element->remove();
            }

            //get author
            $author = $domarticle->find('div.author-name', 0);

            $this->items[] = [
                'title' => $title->plaintext,
                'uri' => $url,
                'content' => $headerimage . '<br />' . $content,
                'author' => $author->plaintext
            ];
        }
    }
}