Skip to content

Commit

Permalink
feat(eztv-provider): Added eztv provider
Browse files Browse the repository at this point in the history
  • Loading branch information
TriPSs committed Oct 16, 2020
1 parent 9cd71ea commit 4bb11c6
Show file tree
Hide file tree
Showing 9 changed files with 160 additions and 0 deletions.
1 change: 1 addition & 0 deletions libs/scraper/eztv-provider/.eslintrc
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
{ "extends": "../../../.eslintrc", "rules": {}, "ignorePatterns": ["!**/*"] }
14 changes: 14 additions & 0 deletions libs/scraper/eztv-provider/jest.config.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
module.exports = {
name: 'scraper-eztv-provider',
preset: '../../../jest.config.js',
globals: {
'ts-jest': {
tsConfig: '<rootDir>/tsconfig.spec.json',
},
},
transform: {
'^.+\\.[tj]sx?$': 'ts-jest',
},
moduleFileExtensions: ['ts', 'tsx', 'js', 'jsx'],
coverageDirectory: '../../../coverage/libs/scraper/eztv-provider',
};
23 changes: 23 additions & 0 deletions libs/scraper/eztv-provider/src/eztv-provider.interfaces.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
export interface YtsTorrent {

title: string

imdb_code: string

year: string

language: string

torrents: [{
hash: string

peers: number

quality: string

seeds: number

size_bytes: number
}]

}
10 changes: 10 additions & 0 deletions libs/scraper/eztv-provider/src/eztv-provider.module.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
import { Module } from '@nestjs/common'

import { EztvProviderService } from './yts-provider.service'

@Module({
providers: [EztvProviderService],
exports: [EztvProviderService]
})
export class EztvProviderModule {
}
70 changes: 70 additions & 0 deletions libs/scraper/eztv-provider/src/eztv-provider.service.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,70 @@
import { Injectable, Logger } from '@nestjs/common'
import { BaseProvider, ScrapedItem, ScraperProviderConfig, ShowType } from '@pct-org/scraper/base-provider'
import * as Eztv from '@pct-org/eztv-api'
import * as pMap from 'p-map'

@Injectable()
export class EztvProviderService extends BaseProvider {

name = 'EZTV'

maxWebRequests = 2

logger = new Logger(this.name)

configs: ScraperProviderConfig[] = [{
contentType: ShowType
}]

api

constructor() {
super()

this.api = new Eztv()
}

protected async scrapeConfig(config: ScraperProviderConfig): Promise<void> {
this.setConfig(config)

const contents: ScrapedItem[] = await this.api.getAll()

this.logger.log(`${this.name}: Found ${contents.length} ${this.contentType}s.`)

await pMap(
contents,
async (content) => {
const isInBlacklist = await this.isItemBlackListed(content)

// Only get data for this item if it's not in the blacklist
if (!isInBlacklist) {
try {
// Get full show data
const show: ScrapedItem = this.api.getShowData(content)

// Enhance and import the show
await this.enhanceAndImport(show)

} catch (err) {
const errorMessage = err.message || err

this.logger.error(`BaseProvider.scrapeConfig`, err)

// Log the content so it can be better debugged from logs
if (errorMessage.includes('Could not find any data with slug')) {
this.logger.error(JSON.stringify(content))
}
}
}
},
{
concurrency: this.maxWebRequests
}
)
}

extractContent({ torrent, regex, lang }: { torrent: any; regex: any; lang: any }): undefined {
return undefined
}

}
3 changes: 3 additions & 0 deletions libs/scraper/eztv-provider/src/index.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
export * from './eztv-provider.module'
export * from './eztv-provider.service'

13 changes: 13 additions & 0 deletions libs/scraper/eztv-provider/tsconfig.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
{
"extends": "../../../tsconfig.base.json",
"files": [],
"include": [],
"references": [
{
"path": "./tsconfig.lib.json"
},
{
"path": "./tsconfig.spec.json"
}
]
}
11 changes: 11 additions & 0 deletions libs/scraper/eztv-provider/tsconfig.lib.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
{
"extends": "./tsconfig.json",
"compilerOptions": {
"module": "commonjs",
"outDir": "../../../dist/out-tsc",
"declaration": true,
"types": ["node"]
},
"exclude": ["**/*.spec.ts"],
"include": ["**/*.ts"]
}
15 changes: 15 additions & 0 deletions libs/scraper/eztv-provider/tsconfig.spec.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
{
"extends": "./tsconfig.json",
"compilerOptions": {
"outDir": "../../../dist/out-tsc",
"module": "commonjs",
"types": ["jest", "node"]
},
"include": [
"**/*.spec.ts",
"**/*.spec.tsx",
"**/*.spec.js",
"**/*.spec.jsx",
"**/*.d.ts"
]
}

0 comments on commit 4bb11c6

Please sign in to comment.