fedicrawl/application/src/Jobs/Feeds/refreshFeedsOnPage.ts

31 wiersze
1004 B
TypeScript
Czysty Zwykły widok Historia

2022-11-22 15:37:11 +00:00
import RobotsTxt from '../../Fediverse/RobotsTxt/RobotsTxt.js'
2021-12-23 14:14:06 +00:00
import { refreshOrAddFeed } from './refreshOrAddFeed'
import { FeedProvider } from '../../Fediverse/Providers/FeedProvider'
2022-09-14 19:16:04 +00:00
import Node from '../../Storage/Definitions/Node'
import Feed from '../../Storage/Definitions/Feed'
import { ElasticClient } from '../../Storage/ElasticClient'
2021-12-23 14:14:06 +00:00
2022-09-18 11:32:25 +00:00
export const refreshFeedsOnPage = async (
elastic: ElasticClient,
provider: FeedProvider,
node: Node,
2022-11-22 15:37:11 +00:00
page: number,
robotsTxt: RobotsTxt
2022-09-18 11:32:25 +00:00
): Promise<Feed[]> => {
2022-11-22 15:37:11 +00:00
const feedData = await provider.retrieveFeeds(node.domain, page, robotsTxt)
2022-11-22 16:01:25 +00:00
const indexableFeedData = feedData.filter(item => item.indexable)
2022-09-18 11:32:25 +00:00
console.info('Retrieved feeds', {
count: feedData.length,
2022-11-22 16:01:25 +00:00
indexableCount: indexableFeedData.length,
2022-09-18 11:32:25 +00:00
domain: node.domain,
provider: provider.getKey(),
page
})
return await Promise.all(
2022-11-22 16:01:25 +00:00
indexableFeedData.map(
2022-09-18 11:32:25 +00:00
async (feedDataItem) =>
await refreshOrAddFeed(elastic, node, feedDataItem)
)
)
2021-12-23 14:14:06 +00:00
}