2023-02-04 01:31:26 +03:00
// npm run channels:parse -- --config=./sites/dsmart.com.tr/dsmart.com.tr.config.js --output=./sites/dsmart.com.tr/dsmart.com.tr.channels.xml
2023-10-02 06:35:33 +03:00
// npm run grab -- --site=dsmart.com.tr
2021-11-06 17:59:29 +03:00
2022-02-01 04:53:20 +03:00
const { parser , url } = require ( './dsmart.com.tr.config.js' )
2021-11-06 17:59:29 +03:00
const dayjs = require ( 'dayjs' )
2023-01-15 21:24:33 +03:00
const fs = require ( 'fs' )
const path = require ( 'path' )
2021-11-06 17:59:29 +03:00
const utc = require ( 'dayjs/plugin/utc' )
const customParseFormat = require ( 'dayjs/plugin/customParseFormat' )
dayjs . extend ( customParseFormat )
dayjs . extend ( utc )
2023-01-15 21:24:33 +03:00
const date = dayjs . utc ( '2023-01-16' , 'YYYY-MM-DD' ) . startOf ( 'd' )
2021-11-06 17:59:29 +03:00
const channel = {
2023-02-04 01:31:26 +03:00
site _id : '3#5fe07d7acfef0b1593275751' ,
2023-01-15 21:24:33 +03:00
xmltv _id : 'SinemaTV.tr'
2021-11-06 17:59:29 +03:00
}
it ( 'can generate valid url' , ( ) => {
2021-11-11 16:37:38 +03:00
expect ( url ( { date , channel } ) ) . toBe (
2023-02-04 01:31:26 +03:00
'https://www.dsmart.com.tr/api/v1/public/epg/schedules?page=3&limit=1&day=2023-01-16'
2021-11-06 17:59:29 +03:00
)
} )
2021-11-06 18:01:09 +03:00
it ( 'can parse response' , ( ) => {
2023-01-15 21:24:33 +03:00
const content = fs . readFileSync ( path . resolve ( _ _dirname , '__data__/content.json' ) )
const results = parser ( { channel , content } ) . map ( p => {
p . start = p . start . toJSON ( )
p . stop = p . stop . toJSON ( )
return p
} )
expect ( results [ 0 ] ) . toMatchObject ( {
start : '2023-01-15T22:00:00.000Z' ,
stop : '2023-01-15T23:45:00.000Z' ,
title : 'Bizi Ayı ran Her Şey' ,
category : 'sinema/genel' ,
2023-10-02 06:35:33 +03:00
description :
'Issı zlı ğı n ortası nda yer alan orta sı nı f bir evde bir anne kı z yaşamaktadı r. Çevrelerindeki taşları insanlarla yaşadı kları çatı şmalar, anne-kı zı n hayatı nı olumsuz yönde etkilemektedir. Kı zı nı n ansı zı n ortadan kaybolması , bu çatı şmaları n seviyesini artı racak ve anne, kı zı nı bulmak için her türlü yola başvuracaktı r.'
2023-01-15 21:24:33 +03:00
} )
expect ( results [ 1 ] ) . toMatchObject ( {
start : '2023-01-15T23:45:00.000Z' ,
stop : '2023-01-16T01:30:00.000Z' ,
title : 'Pixie' ,
category : 'sinema/genel' ,
2023-10-02 06:35:33 +03:00
description :
'Annesinin intikamı nı almak isteyen Pixie, dahiyane bir soygun planlar. Fakat işler planladı ğı gibi gitmeyince kendini İrlanda’ nı n vahşi gangsterleri tarafı ndan kovalanan iki adamla birlikte kaçarken bulur.'
2023-01-15 21:24:33 +03:00
} )
expect ( results [ 12 ] ) . toMatchObject ( {
start : '2023-01-16T20:30:00.000Z' ,
stop : '2023-01-16T22:30:00.000Z' ,
title : 'Seberg' ,
category : 'sinema/genel' ,
2023-10-02 06:35:33 +03:00
description :
'Başrolünde ünlü yı ldı z Kristen Stewart’ ı n yer aldı ğı politik gerilim, 1960’ ları n sonunda insan hakları aktivisti Hakim Jamal ile yaşadı ğı politik ve romantik ilişki sebebiyle FBI tarafı ndan hedef alı nan, Fransı z Yeni Dalgası ’ nı n sevilen yüzü ve Serseri Aşı klar’ ı n yı ldı zı Jean Seberg’ ün çarpı cı hikayesini anlatı yor.'
2023-01-15 21:24:33 +03:00
} )
2021-11-06 17:59:29 +03:00
} )
it ( 'can handle empty guide' , ( ) => {
2023-01-15 21:24:33 +03:00
const results = parser ( {
2021-11-06 17:59:29 +03:00
channel ,
2023-01-15 21:24:33 +03:00
content : fs . readFileSync ( path . resolve ( _ _dirname , '__data__/no_content.json' ) )
2021-11-06 17:59:29 +03:00
} )
2023-01-15 21:24:33 +03:00
expect ( results ) . toMatchObject ( [ ] )
2021-11-06 17:59:29 +03:00
} )