尚未添加RSS地址
宝塔任务配置、统计
RSS任务地址
定时任务监控
如果确定没有任务在运行,请等待或重启相关服务。
rssPageSize) ? max(1, intval($pluginConfig->rssPageSize)) : 20; // 获取RSS信息(支持分页和筛选) if ($showFavorites) { // 获取收藏列表 $feedsData = UrlNav_Plugin::getFavorites(0, $currentPage, $pageSize, $search); if ($feedsData['success']) { $feeds = $feedsData['data']; $totalFeeds = $feedsData['total']; $totalPages = $feedsData['totalPages']; } else { $feeds = []; $totalFeeds = 0; $totalPages = 0; } } else { // 获取正常RSS列表 $feedsData = UrlNav_Plugin::getAllRssFeeds($categoryId, $currentPage, $pageSize, $search, $starRating); $feeds = $feedsData['data']; $totalFeeds = $feedsData['total']; $totalPages = $feedsData['totalPages']; } // 获取有RSS的网址数量 $rssUrlCount = UrlNav_Plugin::getTotalUrlsWithRss(); // 获取所有分类 $categories = UrlNav_Plugin::getAllCategories(); // 获取所有星级(假设有0-3星级,0表示无星级) $allStarRatings = [ ['value' => 'all', 'label' => '全部星级'], ['value' => 'starred', 'label' => '有星级'], // 删除 'has',改为 'starred' ['value' => '0', 'label' => '无星级'], // 删除 'none',改为 '0' ['value' => '1', 'label' => '⭐'], ['value' => '2', 'label' => '⭐⭐ '], ['value' => '3', 'label' => '⭐⭐⭐'] ]; // 获取缓存统计信息 $cacheStats = UrlNav_Plugin::getCacheStats(); // 获取RSS定时任务统计 $rssCronStats = UrlNav_Plugin::getRssCronStats(); // 获取收藏统计 $favoriteStats = UrlNav_Plugin::getFavoriteStats(0); // 检查RSS定时任务锁 $rssLockFile = __DIR__ . '/db/rss_cron.lock'; $isRssLocked = false; $rssLockTime = ''; $rssLockDuration = 0; if (file_exists($rssLockFile)) { $rssLockTime = @filemtime($rssLockFile); if ($rssLockTime) { $isRssLocked = true; $rssLockDuration = time() - $rssLockTime; } } // 转换为北京时间函数(修复版) function convertToBeijingTime($datetime) { if (empty($datetime) || $datetime == '0000-00-00 00:00:00' || $datetime == '0000-00-00 00:00') { return ''; } try { // 创建DateTime对象 $date = new DateTime($datetime); // 如果已经是北京时间,直接返回 if ($date->getTimezone()->getName() == 'Asia/Shanghai') { return $date->format('Y-m-d H:i:s'); } // 转换为北京时间 $date->setTimezone(new DateTimeZone('Asia/Shanghai')); return $date->format('Y-m-d H:i:s'); } catch (Exception $e) { // 如果解析失败,尝试简单的时间转换 $timestamp = strtotime($datetime); if ($timestamp !== false) { // 服务器时间已经是北京时间,直接返回 return date('Y-m-d H:i:s', $timestamp); } return $datetime; } } // 格式化时间为易读格式(北京时间) function formatTimeAgo($datetime) { if (empty($datetime)) { return ''; } // 转换为北京时间的时间戳 $date = new DateTime($datetime); $date->setTimezone(new DateTimeZone('Asia/Shanghai')); $beijingTimestamp = $date->getTimestamp(); $currentTimestamp = time(); $diff = $currentTimestamp - $beijingTimestamp; if ($diff < 60) { return '刚刚'; } elseif ($diff < 3600) { $minutes = floor($diff / 60); return $minutes . '分钟前'; } elseif ($diff < 86400) { $hours = floor($diff / 3600); return $hours . '小时前'; } elseif ($diff < 2592000) { $days = floor($diff / 86400); return $days . '天前'; } elseif ($diff < 31536000) { $months = floor($diff / 2592000); return $months . '个月前'; } else { $years = floor($diff / 31536000); return $years . '年前'; } } // 获取北京时间显示 function formatBeijingDateTime($datetime, $format = 'Y-m-d H:i:s') { if (empty($datetime)) { return ''; } $date = new DateTime($datetime); $date->setTimezone(new DateTimeZone('Asia/Shanghai')); return $date->format($format); } // 简化时间显示 function formatSimpleTime($datetime) { return formatBeijingDateTime($datetime, 'm-d H:i'); } // 格式化统计时间(北京时间) function formatStatsTime($datetime) { if (empty($datetime)) { return '从未更新'; } $date = new DateTime($datetime); $date->setTimezone(new DateTimeZone('Asia/Shanghai')); return $date->format('Y-m-d H:i'); } // 获取RSS定时任务URL function getRssCronUrl() { global $pluginConfig, $options; $baseUrl = $options->siteUrl; if (substr($baseUrl, -1) == '/') { $baseUrl = substr($baseUrl, 0, -1); } return $baseUrl . '/urlnav-rss-cron?secret=' . urlencode($pluginConfig->rssCronSecret ?? ''); } // 文章内容摘要处理 function getArticleExcerpt($content, $length = 180) { if (empty($content)) { return ''; } // 移除HTML标签 $text = strip_tags($content); // 移除多余的空格和换行 $text = preg_replace('/\s+/', ' ', $text); $text = trim($text); // 截取指定长度 if (mb_strlen($text, 'UTF-8') > $length) { $text = mb_substr($text, 0, $length, 'UTF-8') . '...'; } return $text; } // 检查文章是否有完整内容 function hasFullContent($feed) { return !empty($feed['full_content']) && trim($feed['full_content']) !== ''; } ?>
正在刷新RSS信息,请稍候...
这可能需要一些时间,请耐心等待