forked from blallo/rss-bridge
6f24858124
This commit is a squash of all commits that fix coding styles for the new coding style policy. [ABCTabsBridge] Fix coding style [AcrimedBridge] Fix coding style [AllocineFRBridge] Fix coding style [AnimeUltimeBridge] Fix coding style [Arte7Bridge] Fix coding style [AskfmBridge] Fix coding style [BandcampBridge] Fix coding style [BastaBridge] Fix coding style [BlaguesDeMerdeBridge] Fix coding style [BooruprojectBridge] Fix coding style [CADBridge] Fix coding style [CNETBridge] Fix coding style [CastorusBridge] Fix coding style [CollegeDeFranceBridge] Fix coding style [CommonDreamsBridge] Fix coding style [CopieDoubleBridge] Fix coding style [CourrierInternationalBridge] Fix coding style [CpasbienBridge] Fix coding style [CryptomeBridge] Fix coding style [DailymotionBridge] Fix coding style [DanbooruBridge] Fix coding style [DansTonChatBridge] Fix coding style [DauphineLibereBridge] Fix coding style [DeveloppezDotComBridge] Fix coding style [DemoBridge] Fix coding style [DilbertBridge] Fix coding style [DuckDuckGoBridge] Fix coding style [DollbooruBridge] Fix coding style [EliteDangerousGalnetBridge] Fix coding style [ElsevierBridge] Fix coding style [EstCeQuonMetEnProdBridge] Fix coding style [EZTVBridge] Fix coding style [FacebookBridge] Fix coding style [FeedExpanderExampleBridge] Fix coding style [FB2Bridge] Fix coding style [FierPandaBridge] Fix coding style [FlickrBridge] Fix coding style [FootitoBridge] Fix coding style [FourchanBridge] Fix coding style [FuturaSciencesBridge] Fix coding style [GBAtempBridge] Fix coding style [GelbooruBridge] Fix coding style [GiphyBridge] Fix coding style [GithubIssueBridge] Fix coding style [GizmodoBridge] Fix coding style [GoComicsBridge] Fix coding style [GooglePlusPostBridge] Fix coding style [GoogleSearchBridge] Fix coding style [HDWallpapersBridge] Fix coding style [HentaiHavenBridge] Fix coding style [IdenticaBridge] Fix coding style [InstagramBridge] Fix coding style [IsoHuntBridge] Fix coding style [JapanExpoBridge] Fix coding style [KonachanBridge] Fix coding style [KoreusBridge] Fix coding style [KununuBridge] Fix coding style [LeBonCoinBridge] Fix coding style [LegifranceJOBBridge] Fix coding style [LeMondeInformatiqueBridge] Fix coding style [LesJoiesDuCodeBridge] Fix coding style [LichessBridge] Fix coding style [LinkedInCompanyBridge] Fix coding style [LolibooruBridge] Fix coding style [LWNprevBridge] Fix coding style [MangareaderBridge] Fix coding style [MilbooruBridge] Fix coding style [MixCloudBridge] Fix coding style [MoebooruBridge] Fix coding style [MondeDiploBridge] Fix coding style [MsnMondeBridge] Fix coding style [MspabooruBridge] Fix coding style [NasaApodBridge] Fix coding style [NeuviemeArtBridge] Fix coding style [NextgovBridge] Fix coding style [NextInpactBridge] Fix coding style [NiceMatinBridge] Fix coding style [NovelUpdatesBridge] Fix coding style [OpenClassroomsBridge] Fix coding style [ParuVenduImmoBridge] Fix coding style [PickyWallpapersBridge] Fix coding style [PinterestBridge] Fix coding style [PlanetLibreBridge] Fix coding style [ReadComicsBridge] Fix coding style [Releases3DSBridge] Fix coding style [ReporterreBridge] Fix coding style [RTBFBridge] Fix coding style [Rue89Bridge] Fix coding style [Rule34Bridge] Fix coding style [Rule34pahealBridge] Fix coding style [SafebooruBridge] Fix coding style [SakugabooruBridge] Fix coding style [ScmbBridge] Fix coding style [ScoopItBridge] Fix coding style [SensCritiqueBridge] Fix coding style [SexactuBridge] Fix coding style [ShanaprojectBridge] Fix coding style [Shimmie2Bridge] Fix coding style [SoundcloudBridge] Fix coding style [StripeAPIChangeLogBridge] Fix coding style [SuperbWallpapersBridge] Fix coding style [T411Bridge] Fix coding style [TagBoardBridge] Fix coding style [TbibBridge] Fix coding style [TheCodingLoveBridge] Fix coding style [TheHackerNewsBridge] Fix coding style [ThePirateBayBridge] Fix coding style [TheTVDBBridge] Fix coding style [Torrent9Bridge] Fix coding style [TwitterBridge] Fix coding style [UnsplashBridge] Fix coding style [ViadeoCompanyBridge] Fix coding style [VineBridge] Fix coding style [VkBridge] Fix coding style [WallpaperStopBridge] Fix coding style [WebfailBridge] Fix coding style [WeLiveSecurityBridge] Fix coding style [WhydBridge] Fix coding style [WikipediaBridge] Fix coding style [WordPressBridge] Fix coding style [WorldOfTanksBridge] Fix coding style [XbooruBridge] Fix coding style [YandereBridge] Fix coding style [YoutubeBridge] Fix coding style [ZDNetBridge] Fix coding style
100 lines
2.8 KiB
PHP
100 lines
2.8 KiB
PHP
<?php
|
|
class JapanExpoBridge extends BridgeAbstract {
|
|
|
|
const MAINTAINER = 'Ginko';
|
|
const NAME = 'Japan Expo Actualités';
|
|
const URI = 'http://www.japan-expo-paris.com/fr/actualites';
|
|
const CACHE_TIMEOUT = 14400; // 4h
|
|
const DESCRIPTION = 'Returns most recent entries from Japan Expo actualités.';
|
|
const PARAMETERS = array( array(
|
|
'mode' => array(
|
|
'name' => 'Show full contents',
|
|
'type' => 'checkbox',
|
|
)
|
|
));
|
|
|
|
public function collectData(){
|
|
|
|
function frenchPubDateToTimestamp($date_to_parse) {
|
|
return strtotime(
|
|
strtr(
|
|
strtolower(str_replace('Publié le ', '', $date_to_parse)),
|
|
array(
|
|
'janvier' => 'jan',
|
|
'février' => 'feb',
|
|
'mars' => 'march',
|
|
'avril' => 'apr',
|
|
'mai' => 'may',
|
|
'juin' => 'jun',
|
|
'juillet' => 'jul',
|
|
'août' => 'aug',
|
|
'septembre' => 'sep',
|
|
'octobre' => 'oct',
|
|
'novembre' => 'nov',
|
|
'décembre' => 'dec'
|
|
)
|
|
)
|
|
);
|
|
}
|
|
|
|
$convert_article_images = function($matches){
|
|
if(is_array($matches) && count($matches) > 1){
|
|
return '<img src="' . $matches[1] . '" />';
|
|
}
|
|
};
|
|
|
|
$html = getSimpleHTMLDOM(self::URI)
|
|
or returnServerError('Could not request JapanExpo: ' . self::URI);
|
|
$fullcontent = $this->getInput('mode');
|
|
$count = 0;
|
|
|
|
foreach($html->find('a._tile2') as $element){
|
|
|
|
$url = $element->href;
|
|
$thumbnail = 'http://s.japan-expo.com/katana/images/JES049/paris.png';
|
|
preg_match('/url\(([^)]+)\)/', $element->find('img.rspvimgset', 0)->style, $img_search_result);
|
|
|
|
if(count($img_search_result) >= 2)
|
|
$thumbnail = trim($img_search_result[1], "'");
|
|
|
|
if($fullcontent){
|
|
if($count >= 5){
|
|
break;
|
|
}
|
|
|
|
$article_html = getSimpleHTMLDOMCached('Could not request JapanExpo: ' . $url);
|
|
$header = $article_html->find('header.pageHeadBox', 0);
|
|
$timestamp = strtotime($header->find('time', 0)->datetime);
|
|
$title_html = $header->find('div.section', 0)->next_sibling();
|
|
$title = $title_html->plaintext;
|
|
$headings = $title_html->next_sibling()->outertext;
|
|
$article = $article_html->find('div.content', 0)->innertext;
|
|
$article = preg_replace_callback(
|
|
'/<img [^>]+ style="[^\(]+\(\'([^\']+)\'[^>]+>/i',
|
|
$convert_article_images,
|
|
$article);
|
|
|
|
$content = $headings . $article;
|
|
} else {
|
|
$date_text = $element->find('span.date', 0)->plaintext;
|
|
$timestamp = frenchPubDateToTimestamp($date_text);
|
|
$title = trim($element->find('span._title', 0)->plaintext);
|
|
$content = '<img src="'
|
|
. $thumbnail
|
|
. '"></img><br />'
|
|
. $date_text
|
|
. '<br /><a href="'
|
|
. $url
|
|
. '">Lire l\'article</a>';
|
|
}
|
|
|
|
$item = array();
|
|
$item['uri'] = $url;
|
|
$item['title'] = $title;
|
|
$item['timestamp'] = $timestamp;
|
|
$item['content'] = $content;
|
|
$this->items[] = $item;
|
|
$count++;
|
|
}
|
|
}
|
|
}
|