mirror of
https://github.com/profullstack/logicsrc.git
synced 2026-08-14 23:07:29 +00:00
Add feed discovery plugin
This commit is contained in:
parent
e47616bf9d
commit
5cfeea6b57
37 changed files with 2432 additions and 5 deletions
47
plugins/feed-discovery/src/index.ts
Normal file
47
plugins/feed-discovery/src/index.ts
Normal file
|
|
@ -0,0 +1,47 @@
|
|||
import type { PluginDefinition } from "@logicsrc/plugin-core";
|
||||
import { readFeedDiscoveryConfig } from "./config.js";
|
||||
import { discoverFeeds } from "./discovery.js";
|
||||
import { feedDiscoveryManifest } from "./manifest.js";
|
||||
import { probeSite } from "./probe-site.js";
|
||||
import { providerManifests } from "./providers/index.js";
|
||||
import { validateFeed } from "./validate-feed.js";
|
||||
|
||||
export const feedDiscoveryPlugin: PluginDefinition = {
|
||||
manifest: feedDiscoveryManifest,
|
||||
configDefaults: {
|
||||
enabled: true,
|
||||
cache_ttl_seconds: "${LOGICSRC_FEEDS_CACHE_TTL_SECONDS}",
|
||||
max_providers: "${LOGICSRC_FEEDS_MAX_PROVIDERS}",
|
||||
max_probes: "${LOGICSRC_FEEDS_MAX_PROBES}",
|
||||
request_timeout_ms: "${LOGICSRC_FEEDS_REQUEST_TIMEOUT_MS}",
|
||||
user_agent: "${LOGICSRC_FEEDS_USER_AGENT}"
|
||||
},
|
||||
routes: [
|
||||
{ method: "GET", path: "/api/feeds/discover", capability: "feeds.discover" },
|
||||
{ method: "GET", path: "/api/feeds/providers", capability: "feeds.providers.list" },
|
||||
{ method: "GET", path: "/rss/discover/:keyword.xml", capability: "feeds.export.rss" }
|
||||
],
|
||||
permissions: ["feeds:discover", "feeds:validate", "feeds:probe", "feeds:export"],
|
||||
tuiPanels: [{ id: "feed-discovery-status", title: "Feed Discovery" }]
|
||||
};
|
||||
|
||||
export function listFeedProviders() {
|
||||
return providerManifests(readFeedDiscoveryConfig());
|
||||
}
|
||||
|
||||
export { discoverFeeds, feedDiscoveryManifest, probeSite, readFeedDiscoveryConfig, validateFeed };
|
||||
export type {
|
||||
DiscoveredFeed,
|
||||
FeedDiscoveryConfig,
|
||||
FeedDiscoveryProvider,
|
||||
FeedDiscoveryQuery,
|
||||
FeedDiscoveryResponse,
|
||||
FeedKind,
|
||||
FeedOutputFormat,
|
||||
FeedProviderManifest,
|
||||
FeedSampleItem,
|
||||
ProbeResult,
|
||||
ValidationResult
|
||||
} from "./types.js";
|
||||
export { renderAtom, renderDiscoveryOutput, renderJsonFeed, renderOpml, renderRss } from "./output/index.js";
|
||||
export { createDefaultFeedProviders, providerManifests } from "./providers/index.js";
|
||||
Loading…
Add table
Add a link
Reference in a new issue