mirror of
https://github.com/iptv-org/epg.git
synced 2025-05-10 00:50:09 -04:00
Merge pull request #1703 from iptv-org/update-dsmart.com.tr
Update dsmart.com.tr
This commit is contained in:
commit
2e915ec51d
5 changed files with 75 additions and 54 deletions
1
sites/dsmart.com.tr/__data__/content.json
Normal file
1
sites/dsmart.com.tr/__data__/content.json
Normal file
File diff suppressed because one or more lines are too long
1
sites/dsmart.com.tr/__data__/no_content.json
Normal file
1
sites/dsmart.com.tr/__data__/no_content.json
Normal file
File diff suppressed because one or more lines are too long
|
@ -1,22 +1,25 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<site site="dsmart.com.tr">
|
<site site="dsmart.com.tr">
|
||||||
<channels>
|
<channels>
|
||||||
|
<channel lang="en" xmltv_id="ANews.tr" site_id="59638e5fcfef0b43f0fd31b5">A News</channel>
|
||||||
|
<channel lang="en" xmltv_id="BabyTV.uk" site_id="58d29bb0eefad3db9c6062b7">Baby TV Europe</channel>
|
||||||
|
<channel lang="en" xmltv_id="BBCWorldNewsEurope.uk" site_id="58d29bb0eefad3db9c6062c6">BBC World News Europe</channel>
|
||||||
|
<channel lang="en" xmltv_id="CNNInternationalEurope.us" site_id="58d29bb0eefad3db9c6062b8">CNN International Europe</channel>
|
||||||
|
<channel lang="en" xmltv_id="FashionTVEurope.fr" site_id="59dca3b2cfef0b4d80a47b77">FashionTV HD Europe</channel>
|
||||||
|
<channel lang="en" xmltv_id="NBATV.us" site_id="58d29bb0eefad3db9c60626e">NBA TV</channel>
|
||||||
|
<channel lang="en" xmltv_id="TraceUrban.fr" site_id="58d29bb0eefad3db9c6062c5">Trace Urban</channel>
|
||||||
<channel lang="tr" xmltv_id="24KitchenTurkey.tr" site_id="58d29bb0eefad3db9c60627b">24 Kitchen Türkiye</channel>
|
<channel lang="tr" xmltv_id="24KitchenTurkey.tr" site_id="58d29bb0eefad3db9c60627b">24 Kitchen Türkiye</channel>
|
||||||
<channel lang="tr" xmltv_id="24TV.tr" site_id="58d29bb0eefad3db9c60622e">24 TV</channel>
|
<channel lang="tr" xmltv_id="24TV.tr" site_id="58d29bb0eefad3db9c60622e">24 TV</channel>
|
||||||
<channel lang="tr" xmltv_id="360.tr" site_id="58d29bb0eefad3db9c606236">360</channel>
|
<channel lang="tr" xmltv_id="360.tr" site_id="58d29bb0eefad3db9c606236">360</channel>
|
||||||
<channel lang="tr" xmltv_id="AHaber.tr" site_id="58d29bb0eefad3db9c60625e">A Haber</channel>
|
<channel lang="tr" xmltv_id="AHaber.tr" site_id="58d29bb0eefad3db9c60625e">A Haber</channel>
|
||||||
<channel lang="tr" xmltv_id="ANews.tr" site_id="59638e5fcfef0b43f0fd31b5">A News</channel>
|
|
||||||
<channel lang="tr" xmltv_id="ASpor.tr" site_id="58d29bb0eefad3db9c6062b2">A Spor</channel>
|
<channel lang="tr" xmltv_id="ASpor.tr" site_id="58d29bb0eefad3db9c6062b2">A Spor</channel>
|
||||||
<channel lang="tr" xmltv_id="ATV.tr" site_id="58d29bb0eefad3db9c60625f">ATV Türkiye</channel>
|
<channel lang="tr" xmltv_id="ATV.tr" site_id="58d29bb0eefad3db9c60625f">ATV Türkiye</channel>
|
||||||
<channel lang="tr" xmltv_id="BabyTV.uk" site_id="58d29bb0eefad3db9c6062b7">Baby TV Europe</channel>
|
|
||||||
<channel lang="tr" xmltv_id="BBCEarthTurkey.tr" site_id="58d29bb0eefad3db9c6062bc">BBC Earth Türkiye</channel>
|
<channel lang="tr" xmltv_id="BBCEarthTurkey.tr" site_id="58d29bb0eefad3db9c6062bc">BBC Earth Türkiye</channel>
|
||||||
<channel lang="tr" xmltv_id="BBCWorldNewsEurope.uk" site_id="58d29bb0eefad3db9c6062c6">BBC World News Europe</channel>
|
|
||||||
<channel lang="tr" xmltv_id="BBNTurk.tr" site_id="5fd318b4cfef0b15932230d0">BBN Türk</channel>
|
<channel lang="tr" xmltv_id="BBNTurk.tr" site_id="5fd318b4cfef0b15932230d0">BBN Türk</channel>
|
||||||
<channel lang="tr" xmltv_id="BeyazTV.tr" site_id="58d29bb0eefad3db9c606298">Beyaz TV</channel>
|
<channel lang="tr" xmltv_id="BeyazTV.tr" site_id="58d29bb0eefad3db9c606298">Beyaz TV</channel>
|
||||||
<channel lang="tr" xmltv_id="BloombergHT.tr" site_id="58d29bb0eefad3db9c60623e">Bloomberg HT</channel>
|
<channel lang="tr" xmltv_id="BloombergHT.tr" site_id="58d29bb0eefad3db9c60623e">Bloomberg HT</channel>
|
||||||
<channel lang="tr" xmltv_id="BoomerangTurkey.tr" site_id="58d29bb0eefad3db9c6062b9">Boomerang Türkiye</channel>
|
<channel lang="tr" xmltv_id="BoomerangTurkey.tr" site_id="58d29bb0eefad3db9c6062b9">Boomerang Türkiye</channel>
|
||||||
<channel lang="tr" xmltv_id="CartoonNetworkTurkey.tr" site_id="58d29bb0eefad3db9c6062c8">Cartoon Network Türkiye</channel>
|
<channel lang="tr" xmltv_id="CartoonNetworkTurkey.tr" site_id="58d29bb0eefad3db9c6062c8">Cartoon Network Türkiye</channel>
|
||||||
<channel lang="tr" xmltv_id="CNNInternationalEurope.us" site_id="58d29bb0eefad3db9c6062b8">CNN International Europe</channel>
|
|
||||||
<channel lang="tr" xmltv_id="CNNTurk.tr" site_id="59dca1f3cfef0b4d80a47a5f">CNN Türk</channel>
|
<channel lang="tr" xmltv_id="CNNTurk.tr" site_id="59dca1f3cfef0b4d80a47a5f">CNN Türk</channel>
|
||||||
<channel lang="tr" xmltv_id="CocukSmart.tr" site_id="58d29bb0eefad3db9c6062b5">Çocuk Smart</channel>
|
<channel lang="tr" xmltv_id="CocukSmart.tr" site_id="58d29bb0eefad3db9c6062b5">Çocuk Smart</channel>
|
||||||
<channel lang="tr" xmltv_id="DaVinci.de" site_id="58d29bb0eefad3db9c6062b6">Da Vinci</channel>
|
<channel lang="tr" xmltv_id="DaVinci.de" site_id="58d29bb0eefad3db9c6062b6">Da Vinci</channel>
|
||||||
|
@ -31,7 +34,6 @@
|
||||||
<channel lang="tr" xmltv_id="EuroD.tr" site_id="59dcbfdccfef0b4d80a4974a">Euro D</channel>
|
<channel lang="tr" xmltv_id="EuroD.tr" site_id="59dcbfdccfef0b4d80a4974a">Euro D</channel>
|
||||||
<channel lang="tr" xmltv_id="Eurosport1.fr" site_id="58d29bb0eefad3db9c6062aa">Eurosport 1</channel>
|
<channel lang="tr" xmltv_id="Eurosport1.fr" site_id="58d29bb0eefad3db9c6062aa">Eurosport 1</channel>
|
||||||
<channel lang="tr" xmltv_id="Eurosport2.fr" site_id="58d29bb0eefad3db9c606281">Eurosport 2</channel>
|
<channel lang="tr" xmltv_id="Eurosport2.fr" site_id="58d29bb0eefad3db9c606281">Eurosport 2</channel>
|
||||||
<channel lang="tr" xmltv_id="FashionTVEurope.fr" site_id="59dca3b2cfef0b4d80a47b77">FashionTV HD Europe</channel>
|
|
||||||
<channel lang="tr" xmltv_id="FastFunBox.nl" site_id="58d29bb0eefad3db9c6062bf">Fast & FunBox HD</channel>
|
<channel lang="tr" xmltv_id="FastFunBox.nl" site_id="58d29bb0eefad3db9c6062bf">Fast & FunBox HD</channel>
|
||||||
<channel lang="tr" xmltv_id="FBTV.tr" site_id="58d29bb0eefad3db9c606235">FB TV</channel>
|
<channel lang="tr" xmltv_id="FBTV.tr" site_id="58d29bb0eefad3db9c606235">FB TV</channel>
|
||||||
<channel lang="tr" xmltv_id="FightBox.nl" site_id="58d29bb0eefad3db9c6062b4">FightBox HD</channel>
|
<channel lang="tr" xmltv_id="FightBox.nl" site_id="58d29bb0eefad3db9c6062b4">FightBox HD</channel>
|
||||||
|
@ -54,7 +56,6 @@
|
||||||
<channel lang="tr" xmltv_id="MovieSmartTurk.tr" site_id="58d29bb0eefad3db9c606299">MovieSmart Türk</channel>
|
<channel lang="tr" xmltv_id="MovieSmartTurk.tr" site_id="58d29bb0eefad3db9c606299">MovieSmart Türk</channel>
|
||||||
<channel lang="tr" xmltv_id="NationalGeographicTurkey.tr" site_id="58d29bb0eefad3db9c6062a4">National Geographic Türkiye</channel>
|
<channel lang="tr" xmltv_id="NationalGeographicTurkey.tr" site_id="58d29bb0eefad3db9c6062a4">National Geographic Türkiye</channel>
|
||||||
<channel lang="tr" xmltv_id="NationalGeographicWildTurkey.tr" site_id="58d29bb0eefad3db9c6062a5">National Geographic Wild Türkiye</channel>
|
<channel lang="tr" xmltv_id="NationalGeographicWildTurkey.tr" site_id="58d29bb0eefad3db9c6062a5">National Geographic Wild Türkiye</channel>
|
||||||
<channel lang="tr" xmltv_id="NBATV.us" site_id="58d29bb0eefad3db9c60626e">NBA TV</channel>
|
|
||||||
<channel lang="tr" xmltv_id="NTV.tr" site_id="58d29bb0eefad3db9c60623a">NTV</channel>
|
<channel lang="tr" xmltv_id="NTV.tr" site_id="58d29bb0eefad3db9c60623a">NTV</channel>
|
||||||
<channel lang="tr" xmltv_id="Number1Turk.tr" site_id="58d29bb0eefad3db9c606245">Number 1 Türk</channel>
|
<channel lang="tr" xmltv_id="Number1Turk.tr" site_id="58d29bb0eefad3db9c606245">Number 1 Türk</channel>
|
||||||
<channel lang="tr" xmltv_id="Number1TV.tr" site_id="58d29bb0eefad3db9c60623c">Number 1 TV</channel>
|
<channel lang="tr" xmltv_id="Number1TV.tr" site_id="58d29bb0eefad3db9c60623c">Number 1 TV</channel>
|
||||||
|
@ -82,7 +83,6 @@
|
||||||
<channel lang="tr" xmltv_id="TGRTHaber.tr" site_id="58d29bb0eefad3db9c60623d">TGRT Haber</channel>
|
<channel lang="tr" xmltv_id="TGRTHaber.tr" site_id="58d29bb0eefad3db9c60623d">TGRT Haber</channel>
|
||||||
<channel lang="tr" xmltv_id="TLCTurkey.tr" site_id="58d29bb0eefad3db9c606238">TLC Türkiye</channel>
|
<channel lang="tr" xmltv_id="TLCTurkey.tr" site_id="58d29bb0eefad3db9c606238">TLC Türkiye</channel>
|
||||||
<channel lang="tr" xmltv_id="TMB.tr" site_id="58d29bb0eefad3db9c606272">TMB</channel>
|
<channel lang="tr" xmltv_id="TMB.tr" site_id="58d29bb0eefad3db9c606272">TMB</channel>
|
||||||
<channel lang="tr" xmltv_id="TraceUrban.fr" site_id="58d29bb0eefad3db9c6062c5">Trace Urban</channel>
|
|
||||||
<channel lang="tr" xmltv_id="TRT1.tr" site_id="58d29bb0eefad3db9c606274">TRT 1</channel>
|
<channel lang="tr" xmltv_id="TRT1.tr" site_id="58d29bb0eefad3db9c606274">TRT 1</channel>
|
||||||
<channel lang="tr" xmltv_id="TRT2.tr" site_id="58d29bb0eefad3db9c606263">TRT 2</channel>
|
<channel lang="tr" xmltv_id="TRT2.tr" site_id="58d29bb0eefad3db9c606263">TRT 2</channel>
|
||||||
<channel lang="tr" xmltv_id="TRT3.tr" site_id="58d29bb0eefad3db9c606231">TRT 3</channel>
|
<channel lang="tr" xmltv_id="TRT3.tr" site_id="58d29bb0eefad3db9c606231">TRT 3</channel>
|
||||||
|
|
|
@ -1,7 +1,9 @@
|
||||||
const dayjs = require('dayjs')
|
const dayjs = require('dayjs')
|
||||||
const utc = require('dayjs/plugin/utc')
|
const utc = require('dayjs/plugin/utc')
|
||||||
|
const customParseFormat = require('dayjs/plugin/customParseFormat')
|
||||||
|
|
||||||
dayjs.extend(utc)
|
dayjs.extend(utc)
|
||||||
|
dayjs.extend(customParseFormat)
|
||||||
|
|
||||||
module.exports = {
|
module.exports = {
|
||||||
site: 'dsmart.com.tr',
|
site: 'dsmart.com.tr',
|
||||||
|
@ -16,23 +18,27 @@ module.exports = {
|
||||||
'YYYY-MM-DD'
|
'YYYY-MM-DD'
|
||||||
)}`
|
)}`
|
||||||
},
|
},
|
||||||
parser: function ({ content, channel, date }) {
|
parser: function ({ content, channel }) {
|
||||||
let offset = -1
|
let offset = -1
|
||||||
let programs = []
|
let programs = []
|
||||||
const items = parseItems(content, channel)
|
const items = parseItems(content, channel)
|
||||||
items.forEach(item => {
|
items.forEach((item, i) => {
|
||||||
let start = parseStart(item, date)
|
const prev = programs[programs.length - 1]
|
||||||
if (offset === -1 && start.hour() > 18) start = start.subtract(1, 'd')
|
let start
|
||||||
let stop = parseStop(item, date)
|
if (prev) {
|
||||||
if (offset === -1 && stop.hour() > 18) stop = stop.subtract(1, 'd')
|
start = parseStart(item, prev.stop)
|
||||||
if (start.hour() < 18 || stop.hour() < 18) offset = 0
|
} else {
|
||||||
|
start = parseStart(item, dayjs.utc(item.day))
|
||||||
|
}
|
||||||
|
let duration = parseDuration(item)
|
||||||
|
let stop = start.add(duration, 's')
|
||||||
|
|
||||||
programs.push({
|
programs.push({
|
||||||
title: item.program_name,
|
title: item.program_name,
|
||||||
category: item.genre,
|
category: item.genre,
|
||||||
description: item.description,
|
description: item.description.trim(),
|
||||||
start: start.toJSON(),
|
start,
|
||||||
stop: stop.toJSON()
|
stop
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|
||||||
|
@ -41,22 +47,21 @@ module.exports = {
|
||||||
}
|
}
|
||||||
|
|
||||||
function parseStart(item, date) {
|
function parseStart(item, date) {
|
||||||
return dayjs.utc(item.start_date).set('date', date.get('date'))
|
const time = dayjs.utc(item.start_date)
|
||||||
|
|
||||||
|
return dayjs.utc(`${date.format('YYYY-MM-DD')} ${time.format('HH:mm:ss')}`, 'YYYY-MM-DD HH:mm:ss')
|
||||||
}
|
}
|
||||||
|
|
||||||
function parseStop(item, date) {
|
function parseDuration(item) {
|
||||||
return dayjs.utc(item.end_date).set('date', date.get('date'))
|
const [_, H, mm, ss] = item.duration.match(/(\d+):(\d+):(\d+)$/)
|
||||||
}
|
|
||||||
|
|
||||||
function parseContent(content, channel) {
|
return parseInt(H) * 3600 + parseInt(mm) * 60 + parseInt(ss)
|
||||||
const data = JSON.parse(content)
|
|
||||||
if (!data || !data.data || !Array.isArray(data.data.channels)) return null
|
|
||||||
|
|
||||||
return data.data.channels.find(i => i._id == channel.site_id)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
function parseItems(content, channel) {
|
function parseItems(content, channel) {
|
||||||
const data = parseContent(content, channel)
|
const data = JSON.parse(content)
|
||||||
|
if (!data || !data.data || !Array.isArray(data.data.channels)) return null
|
||||||
|
const channelData = data.data.channels.find(i => i._id == channel.site_id)
|
||||||
|
|
||||||
return data ? data.schedule : []
|
return channelData && Array.isArray(channelData.schedule) ? channelData.schedule : []
|
||||||
}
|
}
|
||||||
|
|
|
@ -2,49 +2,63 @@
|
||||||
|
|
||||||
const { parser, url } = require('./dsmart.com.tr.config.js')
|
const { parser, url } = require('./dsmart.com.tr.config.js')
|
||||||
const dayjs = require('dayjs')
|
const dayjs = require('dayjs')
|
||||||
|
const fs = require('fs')
|
||||||
|
const path = require('path')
|
||||||
const utc = require('dayjs/plugin/utc')
|
const utc = require('dayjs/plugin/utc')
|
||||||
const customParseFormat = require('dayjs/plugin/customParseFormat')
|
const customParseFormat = require('dayjs/plugin/customParseFormat')
|
||||||
dayjs.extend(customParseFormat)
|
dayjs.extend(customParseFormat)
|
||||||
dayjs.extend(utc)
|
dayjs.extend(utc)
|
||||||
|
|
||||||
const date = dayjs.utc('2021-11-06', 'YYYY-MM-DD').startOf('d')
|
const date = dayjs.utc('2023-01-16', 'YYYY-MM-DD').startOf('d')
|
||||||
const channel = {
|
const channel = {
|
||||||
site_id: '58d29bb0eefad3db9c606290',
|
site_id: '5fe07d7acfef0b1593275751',
|
||||||
xmltv_id: 'MovieSmartPremium.tr'
|
xmltv_id: 'SinemaTV.tr'
|
||||||
}
|
}
|
||||||
const content = `{"meta": {"code": 200, "message": "OK"}, "data": {"total": 200, "channels": [{"rating": 3, "ch_id": 805, "logo": "59f97253cfef0b75f4723ded", "ch_no": 1, "is_hd": true, "genre": [1, 2], "packages": ["58cfc9c7e138237a591f9a61", "58cfc9c7e138237a591f9a62", "58cfc9c7e138237a591f9a5f", "58cfc9c7e138237a591f9a60"], "slug": "moviesmart-premium", "hd": true, "_id": "58d29bb0eefad3db9c606290", "order": 1, "channel_name": "MovieSmart Premium", "description": "", "schedule": [{"actor": "", "year": "2015", "id": "60488f69cfef0b15935d70d7", "subject": "Goosebumps: Canavarlar Firarda (Goosebumps) T\\u00fcr: Komedi - Macera Y\\u00f6netmen: Rob Letterman Oyuncular: Jack Black, Dylan Minnette, Odeya Rush", "audio_subtitles": 3, "start_date": "2021-11-03T21:15:00Z", "channel": "58d29bb0eefad3db9c606290", "description": "B\\u00fcy\\u00fck \\u015fehirden k\\u00fc\\u00e7\\u00fck bir kasabaya ta\\u015f\\u0131nd\\u0131\\u011f\\u0131 i\\u00e7in mutsuz olan Zach Cooper, ta\\u015f\\u0131nd\\u0131klar\\u0131 evin tam yan\\u0131ndaki evde ya\\u015fayan g\\u00fczel k\\u0131z Hannah ile kar\\u015f\\u0131la\\u015f\\u0131p, Champ ile de k\\u0131sa s\\u00fcrede arkada\\u015f olunca yeni bir hayat i\\u00e7in umutlan\\u0131r. Ancak Zach, Hannah'n\\u0131n gizemli babas\\u0131n\\u0131n Goosebumps kitaplar\\u0131n\\u0131n yazar\\u0131, R.L. Stine oldu\\u011funu \\u00f6\\u011frendi\\u011finde, olaylar\\u0131n normal gitmeyece\\u011fini anlar. (Dil:T\\u00fcrk\\u00e7e/Orijinal - Altyaz\\u0131:T\\u00fcrk\\u00e7e/\\u0130ngilizce)", "director": "", "end_date": "2021-11-03T23:55:00Z", "genre": "sinema/genel", "program_name": "Goosebumps: Canavarlar Firarda", "day": "2021-11-05T21:00:00Z", "episode": "", "screen_violence": 4, "_id": "6185a3f6cfef0b1593e44e63", "duration": "1:40:00"},{"actor": "", "year": "2015", "id": "60488f69cfef0b15935d70d7", "subject": "Goosebumps: Canavarlar Firarda (Goosebumps) T\\u00fcr: Komedi - Macera Y\\u00f6netmen: Rob Letterman Oyuncular: Jack Black, Dylan Minnette, Odeya Rush", "audio_subtitles": 3, "start_date": "2021-11-03T23:55:00Z", "channel": "58d29bb0eefad3db9c606290", "description": "B\\u00fcy\\u00fck \\u015fehirden k\\u00fc\\u00e7\\u00fck bir kasabaya ta\\u015f\\u0131nd\\u0131\\u011f\\u0131 i\\u00e7in mutsuz olan Zach Cooper, ta\\u015f\\u0131nd\\u0131klar\\u0131 evin tam yan\\u0131ndaki evde ya\\u015fayan g\\u00fczel k\\u0131z Hannah ile kar\\u015f\\u0131la\\u015f\\u0131p, Champ ile de k\\u0131sa s\\u00fcrede arkada\\u015f olunca yeni bir hayat i\\u00e7in umutlan\\u0131r. Ancak Zach, Hannah'n\\u0131n gizemli babas\\u0131n\\u0131n Goosebumps kitaplar\\u0131n\\u0131n yazar\\u0131, R.L. Stine oldu\\u011funu \\u00f6\\u011frendi\\u011finde, olaylar\\u0131n normal gitmeyece\\u011fini anlar. (Dil:T\\u00fcrk\\u00e7e/Orijinal - Altyaz\\u0131:T\\u00fcrk\\u00e7e/\\u0130ngilizce)", "director": "", "end_date": "2021-11-03T01:55:00Z", "genre": "sinema/genel", "program_name": "Goosebumps: Canavarlar Firarda", "day": "2021-11-05T21:00:00Z", "episode": "", "screen_violence": 4, "_id": "6185a3f6cfef0b1593e44e63", "duration": "1:40:00"}]}]}}`
|
|
||||||
|
|
||||||
it('can generate valid url', () => {
|
it('can generate valid url', () => {
|
||||||
expect(url({ date, channel })).toBe(
|
expect(url({ date, channel })).toBe(
|
||||||
'https://www.dsmart.com.tr/api/v1/public/epg/schedules?page=1&limit=500&day=2021-11-06'
|
'https://www.dsmart.com.tr/api/v1/public/epg/schedules?page=1&limit=500&day=2023-01-16'
|
||||||
)
|
)
|
||||||
})
|
})
|
||||||
|
|
||||||
it('can parse response', () => {
|
it('can parse response', () => {
|
||||||
const result = parser({ date, channel, content })
|
const content = fs.readFileSync(path.resolve(__dirname, '__data__/content.json'))
|
||||||
expect(result).toMatchObject([
|
const results = parser({ channel, content }).map(p => {
|
||||||
{
|
p.start = p.start.toJSON()
|
||||||
start: '2021-11-05T21:15:00.000Z',
|
p.stop = p.stop.toJSON()
|
||||||
stop: '2021-11-05T23:55:00.000Z',
|
return p
|
||||||
title: 'Goosebumps: Canavarlar Firarda',
|
})
|
||||||
category: 'sinema/genel',
|
|
||||||
description: `Büyük şehirden küçük bir kasabaya taşındığı için mutsuz olan Zach Cooper, taşındıkları evin tam yanındaki evde yaşayan güzel kız Hannah ile karşılaşıp, Champ ile de kısa sürede arkadaş olunca yeni bir hayat için umutlanır. Ancak Zach, Hannah'nın gizemli babasının Goosebumps kitaplarının yazarı, R.L. Stine olduğunu öğrendiğinde, olayların normal gitmeyeceğini anlar. (Dil:Türkçe/Orijinal - Altyazı:Türkçe/İngilizce)`
|
expect(results[0]).toMatchObject({
|
||||||
},
|
start: '2023-01-15T22:00:00.000Z',
|
||||||
{
|
stop: '2023-01-15T23:45:00.000Z',
|
||||||
start: '2021-11-05T23:55:00.000Z',
|
title: 'Bizi Ayıran Her Şey',
|
||||||
stop: '2021-11-06T01:55:00.000Z',
|
category: 'sinema/genel',
|
||||||
title: 'Goosebumps: Canavarlar Firarda',
|
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.`
|
||||||
category: 'sinema/genel',
|
})
|
||||||
description: `Büyük şehirden küçük bir kasabaya taşındığı için mutsuz olan Zach Cooper, taşındıkları evin tam yanındaki evde yaşayan güzel kız Hannah ile karşılaşıp, Champ ile de kısa sürede arkadaş olunca yeni bir hayat için umutlanır. Ancak Zach, Hannah'nın gizemli babasının Goosebumps kitaplarının yazarı, R.L. Stine olduğunu öğrendiğinde, olayların normal gitmeyeceğini anlar. (Dil:Türkçe/Orijinal - Altyazı:Türkçe/İngilizce)`
|
|
||||||
}
|
expect(results[1]).toMatchObject({
|
||||||
])
|
start: '2023-01-15T23:45:00.000Z',
|
||||||
|
stop: '2023-01-16T01:30:00.000Z',
|
||||||
|
title: 'Pixie',
|
||||||
|
category: 'sinema/genel',
|
||||||
|
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.`
|
||||||
|
})
|
||||||
|
|
||||||
|
expect(results[12]).toMatchObject({
|
||||||
|
start: '2023-01-16T20:30:00.000Z',
|
||||||
|
stop: '2023-01-16T22:30:00.000Z',
|
||||||
|
title: 'Seberg',
|
||||||
|
category: 'sinema/genel',
|
||||||
|
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.`
|
||||||
|
})
|
||||||
})
|
})
|
||||||
|
|
||||||
it('can handle empty guide', () => {
|
it('can handle empty guide', () => {
|
||||||
const result = parser({
|
const results = parser({
|
||||||
date,
|
|
||||||
channel,
|
channel,
|
||||||
content: `{"meta": {"code": 200, "message": "OK"}, "data": {"total": 200, "channels": []}}`
|
content: fs.readFileSync(path.resolve(__dirname, '__data__/no_content.json'))
|
||||||
})
|
})
|
||||||
expect(result).toMatchObject([])
|
|
||||||
|
expect(results).toMatchObject([])
|
||||||
})
|
})
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue