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

class LaTeX3ProjectNewslettersBridge extends BridgeAbstract
{
    const MAINTAINER = 'µKöff';
    const NAME = 'LaTeX3 Project Newsletters';
    const URI = 'https://www.latex-project.org';
    const DESCRIPTION = 'Newsletters by the LaTeX3 project team covering topics of interest in the area of
		LaTeX3/expl3 development. They appear in irregular intervals and are not necessarily tied to individual
		releases of the software (as the LaTeX3 kernel code is updated rather often).';

    public function collectData()
    {
        $html = getSimpleHTMLDOM(static::URI . '/news/latex3-news/');
        $newsContainer = $html->find('article tbody', 0);

        foreach ($newsContainer->find('tr') as $row) {
            $this->items[] = $this->collectArticle($row);
        }
    }

    private function collectArticle($element)
    {
        $item = [];
        $item['uri'] = static::URI . $element->find('td', 1)->find('a', 0)->href;
        $item['title'] = $element->find('td', 1)->find('a', 0)->plaintext;
        $item['timestamp'] = DateTime::createFromFormat('Y/m/d', $element->find('td', 0)->plaintext)->getTimestamp();
        $item['content'] = $element->find('td', 2)->plaintext;
        $item['author'] = 'LaTeX3 Project';
        return $item;
    }

    public function getIcon()
    {
        return self::URI . '/favicon.ico';
    }
}