12345678910111213141516171819202122232425 |
- import { parseAtomFeed } from './atom';
- import { parseRSSFeed } from './rss';
- export async function fetchFeedText(url: string) {
- const rsp = await fetch(url);
- const txt = await rsp.text();
- return txt;
- }
- export function isAtomFeed(txt: string) {
- const domParser = new DOMParser();
- const doc = domParser.parseFromString(txt, 'text/xml');
- return doc.querySelector('feed') !== null;
- }
- export function getProperty(node: Element, property: string): string {
- const propNode = node.querySelector(property);
- return propNode?.textContent ?? '';
- }
- export async function loadFeed(url: string) {
- const res = await fetchFeedText(url);
- const parsedFeed = isAtomFeed(res) ? parseAtomFeed(res) : parseRSSFeed(res);
- return parsedFeed;
- }
|