source names are unique

This commit is contained in:
root
2025-09-15 09:26:41 +05:00
parent 95c09289d6
commit 47f22b9c03
2 changed files with 37 additions and 28 deletions
+37 -27
View File
@@ -605,15 +605,18 @@ async function checkRssFeeds() {
try {
const response = await fetch('/api/health/rss');
const result = await response.json();
if (result.success) {
const data = result.data;
console.log('Общий статус:', data.overallStatus);
console.log('Доступные ленты:', data.accessibleFeeds);
console.log('Недоступные ленты:', data.unaccessibleFeeds);
// Показать рекомендации для недоступных лент
if (data.recommendations && Object.keys(data.recommendations).length > 0) {
if (
data.recommendations &&
Object.keys(data.recommendations).length > 0
) {
console.log('Рекомендации по альтернативным URL:');
Object.entries(data.recommendations).forEach(([source, url]) => {
console.log(`${source}: ${url}`);
@@ -632,14 +635,14 @@ function RssStatusWidget() {
useEffect(() => {
fetch('/api/health/rss')
.then(res => res.json())
.then(data => {
.then((res) => res.json())
.then((data) => {
if (data.success) {
setRssStatus(data.data);
}
setLoading(false);
})
.catch(err => {
.catch((err) => {
console.error('Ошибка загрузки статуса RSS:', err);
setLoading(false);
});
@@ -648,28 +651,35 @@ function RssStatusWidget() {
if (loading) return <div>Загрузка...</div>;
return (
<div className="rss-status">
<div className='rss-status'>
<h3>Статус RSS-лент</h3>
<div className={`status ${rssStatus.overallStatus.toLowerCase()}`}>
{rssStatus.overallStatus === 'UP' ? '✅ Все ленты доступны' :
rssStatus.overallStatus === 'DEGRADED' ? '⚠️ Некоторые ленты недоступны' :
'❌ Ленты недоступны'}
{rssStatus.overallStatus === 'UP'
? '✅ Все ленты доступны'
: rssStatus.overallStatus === 'DEGRADED'
? '⚠️ Некоторые ленты недоступны'
: '❌ Ленты недоступны'}
</div>
<div className="feeds-list">
{Object.entries(rssStatus.accessibilityResults).map(([source, isAccessible]) => (
<div key={source} className={`feed-item ${isAccessible ? 'accessible' : 'inaccessible'}`}>
<span className="source">{source}</span>
<span className="status">
{isAccessible ? '✅' : '❌'}
</span>
{!isAccessible && rssStatus.recommendations[source] && (
<div className="recommendation">
Рекомендация: {rssStatus.recommendations[source]}
</div>
)}
</div>
))}
<div className='feeds-list'>
{Object.entries(rssStatus.accessibilityResults).map(
([source, isAccessible]) => (
<div
key={source}
className={`feed-item ${
isAccessible ? 'accessible' : 'inaccessible'
}`}
>
<span className='source'>{source}</span>
<span className='status'>{isAccessible ? '✅' : '❌'}</span>
{!isAccessible && rssStatus.recommendations[source] && (
<div className='recommendation'>
Рекомендация: {rssStatus.recommendations[source]}
</div>
)}
</div>
)
)}
</div>
</div>
);
@@ -867,8 +877,8 @@ function NewsFilter({ onFilterChange }) {
// Загружаем список источников при монтировании компонента
fetch('/api/items/sources')
.then((res) => res.json())
.then((data) => {
if (data.success) {
.then((data) => {
if (data.success) {
setSources(data.data);
}
})
@@ -47,7 +47,6 @@ public interface MarketItemRepository extends MongoRepository<MarketItem, String
/**
* Получить все уникальные названия источников
*/
@Query(value = "{}", fields = "{'sourceName': 1}")
List<String> findDistinctSourceNames();
/**