From 4e36c2217a135c011e39fb2395f98c358a0eb181 Mon Sep 17 00:00:00 2001 From: albert Date: Tue, 29 Jul 2025 13:08:00 +0200 Subject: [PATCH] update readme --- README.md | 41 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) diff --git a/README.md b/README.md index 0bcf545..a0fe357 100644 --- a/README.md +++ b/README.md @@ -117,3 +117,44 @@ EXPOSE 3000 CMD ["node", "dist/index.js"] ``` + + +### Scraper OOP + +#### Entrypoint +- `scraper.ts` - Application entry point that initializes the scraping system + +#### Core Services +- `ScrapingScheduler.ts` - Orchestrates scraping cycles and timing +- `ContentScrapingService.ts` - Handles web content scraping logic +- `FeedReaderService.ts` - Manages newspaper extraction +- `ScrapingService.ts` - Base scraping functionality + +#### Utilities +- `WebScraper.ts` - HTML parsing and data extraction utility +- `logger.ts` - Logging utility + +#### Extractors +- `BaseNewspaperExtractor.ts` - clase Abstract Base +- `ElPaisExtractor.ts` - especificación / extractor para El País +- `ElMundoExtractor.ts` - especificación / extractor para El Mundo +- `NewspaperExtractorFactory.ts` - clase Factory para crear extractors + +#### Types & Interfaces +- `Feed.ts` - tipos y interfaces +- `NewspaperTypes.ts` - configuración de las interfaces +- `FeedRepository.ts` - abstracción interfaz de la base de datos + +## Propiedades de OOP + +- He intentado seguir las propiedades de OOP. Ejemplo: + - separación de responsabilidades: con las capas de abstracción, y servicios dedicados + - Factory de los extractors en NewspaperExtractorFactory, básicamente, patrón de diseño que nos ayuda a crear objetos de una clase específica, basados en ciertos parámetros, y así lo adaptamos a nuestros periodicos favoritos. + - Herencia, desde BaseNewspaperExtractor a los extractors. + - Utils, para tener DRY y poder usarlo desde diferentes classes. + - He intentando poner tests donde sea necesario, y de forma que tenga sentido. + + +Obviamente cualquier propuesta está siempre abierta a debate y a mejoras. +En mi caso, y dentro de las limitaciones, he intentado seguir las instrucciones y ver como lo podemos adaptar. +Seguramente con más tiempo se puede simplificar más sin perder funcionalidades. \ No newline at end of file