mirror of
https://github.com/RSS-Bridge/rss-bridge.git
synced 2024-11-27 03:50:42 +03:00
84 lines
2.7 KiB
PHP
84 lines
2.7 KiB
PHP
|
<?php
|
|||
|
class AlfaBankByBridge extends BridgeAbstract {
|
|||
|
|
|||
|
const MAINTAINER = 'lassana';
|
|||
|
const NAME = 'AlfaBank.by Новости';
|
|||
|
const URI = 'https://www.alfabank.by';
|
|||
|
const DESCRIPTION = 'Уведомления Alfa-Now — новости от Альфа-Банка';
|
|||
|
const CACHE_TIMEOUT = 3600; // 1 hour
|
|||
|
const PARAMETERS = array(
|
|||
|
'News' => array(
|
|||
|
'business' => array(
|
|||
|
'name' => 'Альфа Бизнес',
|
|||
|
'type' => 'list',
|
|||
|
'title' => 'В зависимости от выбора, возращает уведомления для" .
|
|||
|
" клиентов физ. лиц либо для клиентов-юридических лиц и ИП',
|
|||
|
'values' => array(
|
|||
|
'Новости' => 'news',
|
|||
|
'Новости бизнеса' => 'newsBusiness'
|
|||
|
),
|
|||
|
'defaultValue' => 'news'
|
|||
|
),
|
|||
|
'fullContent' => array(
|
|||
|
'name' => 'Включать содержимое',
|
|||
|
'type' => 'checkbox',
|
|||
|
'title' => 'Если выбрано, содержимое уведомлений вставляется в поток (работает медленно)'
|
|||
|
)
|
|||
|
)
|
|||
|
);
|
|||
|
|
|||
|
public function collectData() {
|
|||
|
$business = $this->getInput('business') == 'newsBusiness';
|
|||
|
$fullContent = $this->getInput('fullContent') == 'on';
|
|||
|
|
|||
|
$mainPageUrl = self::URI . '/about/articles/uvedomleniya/';
|
|||
|
if($business) {
|
|||
|
$mainPageUrl .= '?business=true';
|
|||
|
}
|
|||
|
$html = getSimpleHTMLDOM($mainPageUrl);
|
|||
|
$limit = 0;
|
|||
|
|
|||
|
foreach($html->find('a.notifications__item') as $element) {
|
|||
|
if($limit < 10) {
|
|||
|
$item = array();
|
|||
|
$item['uid'] = 'urn:sha1:' . hash('sha1', $element->getAttribute('data-notification-id'));
|
|||
|
$item['title'] = $element->find('div.item-title', 0)->innertext;
|
|||
|
$item['timestamp'] = DateTime::createFromFormat(
|
|||
|
'd M Y',
|
|||
|
$this->ruMonthsToEn($element->find('div.item-date', 0)->innertext)
|
|||
|
)->getTimestamp();
|
|||
|
|
|||
|
$itemUrl = self::URI . $element->href;
|
|||
|
if($business) {
|
|||
|
$itemUrl = str_replace('?business=true', '', $itemUrl);
|
|||
|
}
|
|||
|
$item['uri'] = $itemUrl;
|
|||
|
|
|||
|
if($fullContent) {
|
|||
|
$itemHtml = getSimpleHTMLDOM($itemUrl);
|
|||
|
if($itemHtml) {
|
|||
|
$item['content'] = $itemHtml->find('div.now-p__content-text', 0)->innertext;
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
$this->items[] = $item;
|
|||
|
$limit++;
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
public function getIcon() {
|
|||
|
return static::URI . '/local/images/favicon.ico';
|
|||
|
}
|
|||
|
|
|||
|
private function ruMonthsToEn($date) {
|
|||
|
$ruMonths = array(
|
|||
|
'Января', 'Февраля', 'Марта', 'Апреля', 'Мая', 'Июня',
|
|||
|
'Июля', 'Августа', 'Сентября', 'Октября', 'Ноября', 'Декабря' );
|
|||
|
$enMonths = array(
|
|||
|
'January', 'February', 'March', 'April', 'May', 'June',
|
|||
|
'July', 'August', 'September', 'October', 'November', 'December' );
|
|||
|
return str_replace($ruMonths, $enMonths, $date);
|
|||
|
}
|
|||
|
}
|