Scraping Service and types
This commit is contained in:
@ -1,5 +1,5 @@
|
|||||||
import { IFeedRepository } from '../repositories/FeedRepository';
|
import { IFeedRepository } from '../repositories/FeedRepository.js';
|
||||||
import { IFeed } from '../types/Feed';
|
import { IFeed } from '../types/Feed.js';
|
||||||
|
|
||||||
export class ScrapingService {
|
export class ScrapingService {
|
||||||
constructor(private feedRepository: IFeedRepository) {}
|
constructor(private feedRepository: IFeedRepository) {}
|
||||||
|
36
src/types/NewspaperTypes.ts
Normal file
36
src/types/NewspaperTypes.ts
Normal file
@ -0,0 +1,36 @@
|
|||||||
|
import { NewsSource } from './Feed.js';
|
||||||
|
import { IFeed } from './Feed.js';
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Interfaz para definir la configuración de extracción de un periódico
|
||||||
|
*/
|
||||||
|
export interface NewspaperConfig {
|
||||||
|
name: string;
|
||||||
|
source: NewsSource;
|
||||||
|
baseUrl: string;
|
||||||
|
frontPageUrl: string;
|
||||||
|
selectors: NewsSelectors;
|
||||||
|
enabled: boolean;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Selectores CSS para extraer elementos específicos de cada periódico
|
||||||
|
*/
|
||||||
|
export interface NewsSelectors {
|
||||||
|
articleLinks: string;
|
||||||
|
titleSelector?: string;
|
||||||
|
descriptionSelector?: string;
|
||||||
|
dateSelector?: string;
|
||||||
|
imageSelector?: string;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Resultado del proceso de scraping
|
||||||
|
*/
|
||||||
|
export interface ScrapingResult {
|
||||||
|
success: number;
|
||||||
|
failed: number;
|
||||||
|
duplicates: number;
|
||||||
|
items: (IFeed | null)[];
|
||||||
|
errors: string[];
|
||||||
|
}
|
Reference in New Issue
Block a user