Skip to content

Commit

Permalink
chore: add animecomplet crawler
Browse files Browse the repository at this point in the history
  • Loading branch information
AXeL-dev committed Mar 4, 2022
1 parent 05a80bb commit 6804a23
Show file tree
Hide file tree
Showing 3 changed files with 60 additions and 3 deletions.
2 changes: 2 additions & 0 deletions src/app/crawlers/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,7 @@ import { WacVostfrCrawler } from './vostfr/wacvostfr.crawler';
import { ElevenAnimCrawler } from './vostfr/11anim.crawler';
import { VostAnimezCrawler } from './vostfr/vostanimez.crawler';
import { JetAnimesCrawler } from './vostfr/jetanimes.crawler';
import { AnimeCompletCrawler } from './vostfr/animecomplet.crawler';

const crawlersList = {
vostfr: [
Expand All @@ -44,6 +45,7 @@ const crawlersList = {
VoirAnimeOrgCrawler,
VostAnimezCrawler,
JetAnimesCrawler,
AnimeCompletCrawler,
ElevenAnimCrawler,
MavAnimesCrawler,
AnimeResistanceCrawler,
Expand Down
58 changes: 58 additions & 0 deletions src/app/crawlers/vostfr/animecomplet.crawler.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
import { LatestEpisodesCrawler } from '../abstract/latest-episodes.crawler';
import { ScraperService } from '../../services/scraper.service';
import { Episode } from '../../models/episode';
import { Observable } from 'rxjs';
import { frenchMonths } from 'src/app/helpers/date.helper';

export class AnimeCompletCrawler extends LatestEpisodesCrawler {
constructor(private scraper: ScraperService) {
super('AnimeComplet', 'https://animecomplet.me');
this.filters = {
...this.filters,
title: (text: string) => {
return text.replace(/vostfr/i, '').trim();
},
number: (text: string) => {
const num = text.match(/Episode (\d+)/i);
return num?.length ? +num[1] : 1;
},
subtitles: (text: string) => {
const sub = text.match(/Episode (?:\d+) (\w+)$/i);
return sub?.length ? sub[1].toLowerCase() : 'vostfr';
},
date: (text: string) => {
let date = text.toLowerCase();
date = date
.replace(
new RegExp('(' + Object.keys(frenchMonths).join('|') + ')', 'g'),
(month) => frenchMonths[month]
)
.trim();
date = date.split(' ').reverse().join('-');
return new Date(date)?.getTime();
},
};
}

_getLatestEpisodes(): Observable<Episode[]> {
return this.scraper.scrape(
`${this.baseUrl}`,
'ul.recent-posts > li',
{
anime: {
title: '.post-content .meta-category > a | title',
cover: '.post-thumb img@src | concatUrl',
},
number: '.post-content > h2 > a | number',
streamLinks: [
{
url: '.post-content > h2 > a@href',
lang: '.post-content > h2 > a | subtitles',
},
],
releaseDate: '.post-content .meta-date | date',
},
this.filters
);
}
}
3 changes: 0 additions & 3 deletions src/app/crawlers/vostfr/jetanimes.crawler.ts
Original file line number Diff line number Diff line change
Expand Up @@ -9,9 +9,6 @@ export class JetAnimesCrawler extends LatestEpisodesCrawler {
super('JetAnimes', 'https://www.jetanimes.com');
this.filters = {
...this.filters,
title: (text: string) => {
return text;
},
number: (text: string) => {
const num = text.match(/E(\d+)/i);
return num?.length ? +num[1] : 1;
Expand Down

0 comments on commit 6804a23

Please sign in to comment.