xExtensionTGLinkFixer/extension.php

53 lines
1.7 KiB
PHP

<?php
/**
* Name: Telegram Link Fixer
* Description: Rewrite the <link> from the feed with one extracted from <description>.
* Author: Your Name
* Version: 1.0
*/
class TelegramLinkFixerExtension extends Minz_Extension
{
/**
* Called automatically at extension load-time. Set up hooks here.
*/
public function init()
{
// Hook into FreshRSS just before each entry is saved to database:
$this->registerHook('entry_before_insert', array($this, 'fixLink'));
}
/**
* Our main function to rewrite the <link> from <description>.
*/
public static function fixLink($entry)
{
// Check if it's a telegram link
$link = $entry->link();
Minz_Log::debug('TelegramLinkFixer: Processing entry with link: ' . $link);
if (strpos($link, 't.me') === false) {
Minz_Log::debug('TelegramLinkFixer: Skipping - not a telegram link');
return; // skip if not a telegram link
}
$description = $entry->description();
if (empty($description)) {
Minz_Log::debug('TelegramLinkFixer: Skipping - empty description');
return;
}
// Look specifically for Telegraph links
if (preg_match('/<a[^>]*?href="(https:\/\/telegra\.ph\/[^"]+)"[^>]*>Telegraph<\/a>/i', $description, $matches)) {
$telegraphLink = $matches[1];
if (!empty($telegraphLink)) {
Minz_Log::debug('TelegramLinkFixer: Found Telegraph link: ' . $telegraphLink);
// $entry->setLink($telegraphLink);
}
} else {
Minz_Log::debug('TelegramLinkFixer: No Telegraph link found in description');
}
}
}