Files

45 lines
1.2 KiB
TypeScript

/**
* API Response Parsers
*/
import type { Episode } from '@/lib/types';
/**
* Parse episode URL string into structured array
*/
export function parseEpisodes(playUrl: string): Episode[] {
if (!playUrl) return [];
try {
// Format: "Episode1$url1#Episode2$url2#..."
const episodes = playUrl.split('#').filter(Boolean);
return episodes.map((episode, index) => {
const parts = episode.split('$');
let name: string, url: string;
if (parts.length > 1) {
name = parts[0];
url = parts[1];
} else {
// If no '$' separator, treat the whole thing as the URL
url = parts[0];
name = `第 ${index + 1} 集`;
}
// Clean up URL: remove double slashes but keep protocol (http:// or https://)
const cleanUrl = (url || '').replace(/([^:])\/\//g, '$1/');
return {
name: name || `第 ${index + 1} 集`,
url: cleanUrl,
index,
};
});
} catch (error) {
console.error('Failed to parse episodes:', error);
return [];
}
}