mirror of
https://gitlab.com/ifiction/ifhub-telegram.git
synced 2024-10-22 22:15:31 +00:00
63 lines
1.8 KiB
PHP
63 lines
1.8 KiB
PHP
<?php
|
|
require_once ("vendor/autoload.php");
|
|
use Symfony\Component\Yaml\Yaml;
|
|
|
|
$config = Yaml::parse(file_get_contents('config.yml'));
|
|
$lastrun = 0;
|
|
if (file_exists('.lastrun')) {
|
|
$lastrun = file_get_contents('.lastrun');
|
|
}
|
|
echo $lastrun;
|
|
|
|
function get_text($url) {
|
|
$curl = curl_init();
|
|
curl_setopt_array($curl, array(
|
|
CURLOPT_RETURNTRANSFER => 1,
|
|
CURLOPT_URL => $url,
|
|
));
|
|
$resp = curl_exec($curl);
|
|
curl_close($curl);
|
|
return $resp;
|
|
}
|
|
|
|
$string = get_text('https://ifhub.club/rss/new/');
|
|
$service = new \Sabre\Xml\Service();
|
|
$service->elementMap = [
|
|
'{}item' => function(\Sabre\Xml\Reader $reader) {
|
|
return \Sabre\Xml\Deserializer\keyValue($reader, '');
|
|
},
|
|
'{}channel' => function(\Sabre\Xml\Reader $reader) {
|
|
return \Sabre\Xml\Deserializer\repeatingElements($reader, '{}item');
|
|
},
|
|
];
|
|
$articles = $service->parse($string)[0]['value'];
|
|
unset($string);
|
|
$pandoc = new \Pandoc\Pandoc();
|
|
foreach ($articles as $article) {
|
|
if (strtotime($article['pubDate']) <= $lastrun) {
|
|
continue;
|
|
}
|
|
$title = $article['title'];
|
|
$link = $article['link'];
|
|
$description = $article['description'];
|
|
// $description = strip_tags($description);
|
|
$description = $pandoc->convert($description, "html", "markdown_github");
|
|
$description = "$title\n\n".$description;
|
|
$description .= ": $link";
|
|
|
|
if (!$config['DRY_RUN']) {
|
|
try {
|
|
$telegram = new Longman\TelegramBot\Telegram($config['API_KEY'], $config['BOT_NAME']);
|
|
$result = \Longman\TelegramBot\Request::sendMessage([
|
|
'chat_id' => $config['CHAT_ID'],
|
|
'text' => $description,
|
|
'parse_mode' => 'Markdown'
|
|
]);
|
|
} catch (Longman\TelegramBot\Exception\TelegramException $e) {
|
|
echo $e;
|
|
}
|
|
} else {
|
|
echo $description;
|
|
}
|
|
}
|
|
file_put_contents('.lastrun', time());
|