mirror of
https://github.com/iptv-org/epg.git
synced 2025-05-09 16:40:07 -04:00
Merge pull request #2409 from Animenosekai/master
Adding the `s.mxtv.jp` and `www.skyperfectv.co.jp` sites and mapping IDs for `tvguide.myjcom.jp`
This commit is contained in:
commit
7610f7b9f5
10 changed files with 513 additions and 15 deletions
28
sites/s.mxtv.jp/README.md
Normal file
28
sites/s.mxtv.jp/README.md
Normal file
|
@ -0,0 +1,28 @@
|
||||||
|
# s.mxtv.jp
|
||||||
|
|
||||||
|
<https://s.mxtv.jp>
|
||||||
|
|
||||||
|
## Index
|
||||||
|
|
||||||
|
- [Index](#index)
|
||||||
|
- [Download the guide](#download-the-guide)
|
||||||
|
- [Update channel list](#update-channel-list)
|
||||||
|
- [Test](#test)
|
||||||
|
|
||||||
|
## Download the guide
|
||||||
|
|
||||||
|
```sh
|
||||||
|
npm run grab -- --site=s.mxtv.jp
|
||||||
|
```
|
||||||
|
|
||||||
|
## Update channel list
|
||||||
|
|
||||||
|
```sh
|
||||||
|
npm run channels:parse -- --config=./sites/s.mxtv.jp/s.mxtv.jp.config.js --output=./sites/s.mxtv.jp/s.mxtv.jp.channels.xml
|
||||||
|
```
|
||||||
|
|
||||||
|
## Test
|
||||||
|
|
||||||
|
```sh
|
||||||
|
npm test -- s.mxtv.jp
|
||||||
|
```
|
5
sites/s.mxtv.jp/s.mxtv.jp.channels.xml
Normal file
5
sites/s.mxtv.jp/s.mxtv.jp.channels.xml
Normal file
|
@ -0,0 +1,5 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<channels>
|
||||||
|
<channel site="s.mxtv.jp" lang="ja" xmltv_id="TokyoMX1.jp" site_id="1">Tokyo MX1</channel>
|
||||||
|
<channel site="s.mxtv.jp" lang="ja" xmltv_id="TokyoMX2.jp" site_id="2">Tokyo MX2</channel>
|
||||||
|
</channels>
|
81
sites/s.mxtv.jp/s.mxtv.jp.config.js
Normal file
81
sites/s.mxtv.jp/s.mxtv.jp.config.js
Normal file
|
@ -0,0 +1,81 @@
|
||||||
|
const dayjs = require('dayjs')
|
||||||
|
const duration = require("dayjs/plugin/duration")
|
||||||
|
const utc = require('dayjs/plugin/utc')
|
||||||
|
const timezone = require('dayjs/plugin/timezone')
|
||||||
|
const customParseFormat = require('dayjs/plugin/customParseFormat')
|
||||||
|
|
||||||
|
dayjs.extend(utc)
|
||||||
|
dayjs.extend(timezone)
|
||||||
|
dayjs.extend(customParseFormat)
|
||||||
|
dayjs.extend(duration)
|
||||||
|
|
||||||
|
module.exports = {
|
||||||
|
site: 's.mxtv.jp',
|
||||||
|
days: 1,
|
||||||
|
lang: 'ja',
|
||||||
|
url: function ({ date, channel }) {
|
||||||
|
const id = `SV${channel.site_id}EPG${date.format('YYYYMMDD')}`
|
||||||
|
return `https://s.mxtv.jp/bangumi_file/json01/${id}.json`
|
||||||
|
},
|
||||||
|
parser: function ({ content }) {
|
||||||
|
let programs = []
|
||||||
|
const items = parseItems(content)
|
||||||
|
items.forEach(item => {
|
||||||
|
programs.push({
|
||||||
|
title: item.Event_name,
|
||||||
|
description: item.Event_text,
|
||||||
|
category: parseCategory(item),
|
||||||
|
image: parseImage(item),
|
||||||
|
start: parseStart(item),
|
||||||
|
stop: parseStop(item)
|
||||||
|
})
|
||||||
|
})
|
||||||
|
return programs
|
||||||
|
},
|
||||||
|
channels() {
|
||||||
|
return [
|
||||||
|
{
|
||||||
|
lang: 'ja',
|
||||||
|
site_id: '1',
|
||||||
|
name: 'Tokyo MX1',
|
||||||
|
xmltv_id: 'TokyoMX1.jp'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
lang: 'ja',
|
||||||
|
site_id: '2',
|
||||||
|
name: 'Tokyo MX2',
|
||||||
|
xmltv_id: 'TokyoMX2.jp'
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function parseImage(item) {
|
||||||
|
// Should return a string if we can output an image URL
|
||||||
|
// Might be done with `https://s.mxtv.jp/bangumi/link/weblinkU.csv?1722421896752` ?
|
||||||
|
return null
|
||||||
|
}
|
||||||
|
|
||||||
|
function parseCategory(item) {
|
||||||
|
// Should return a string if we can determine the category
|
||||||
|
// Might be done with `https://s.mxtv.jp/index_set/csv/ranking_bangumi_allU.csv` ?
|
||||||
|
return null
|
||||||
|
}
|
||||||
|
|
||||||
|
function parseStart(item) {
|
||||||
|
return dayjs.tz(item.Start_time.toString(), 'YYYY年MM月DD日HH時mm分ss秒', 'Asia/Tokyo')
|
||||||
|
}
|
||||||
|
|
||||||
|
function parseStop(item) {
|
||||||
|
// Add the duration to the start time
|
||||||
|
const durationDate = dayjs(item.Duration, 'HH:mm:ss');
|
||||||
|
return parseStart(item).add(dayjs.duration({
|
||||||
|
hours: durationDate.hour(),
|
||||||
|
minutes: durationDate.minute(),
|
||||||
|
seconds: durationDate.second()
|
||||||
|
}))
|
||||||
|
}
|
||||||
|
|
||||||
|
function parseItems(content) {
|
||||||
|
return JSON.parse(content) || []
|
||||||
|
}
|
47
sites/s.mxtv.jp/s.mxtv.jp.test.js
Normal file
47
sites/s.mxtv.jp/s.mxtv.jp.test.js
Normal file
|
@ -0,0 +1,47 @@
|
||||||
|
const { parser, url } = require('./s.mxtv.jp.config.js')
|
||||||
|
const dayjs = require('dayjs')
|
||||||
|
const utc = require('dayjs/plugin/utc')
|
||||||
|
const customParseFormat = require('dayjs/plugin/customParseFormat')
|
||||||
|
dayjs.extend(customParseFormat)
|
||||||
|
dayjs.extend(utc)
|
||||||
|
|
||||||
|
const date = dayjs.utc('2024-08-01', 'YYYY-MM-DD').startOf('d')
|
||||||
|
const channel = {
|
||||||
|
site_id: '2',
|
||||||
|
name: 'Tokyo MX2',
|
||||||
|
xmltv_id: 'TokyoMX2.jp'
|
||||||
|
}
|
||||||
|
const content = `[{ "Event_id": "0x6a57", "Start_time": "2024年07月27日05時00分00秒", "Duration": "01:00:00", "Event_name": "ヒーリングタイム&ヘッドラインニュース", "Event_text": "ねこの足跡", "Component": "480i 16:9 パンベクトルなし", "Sound": "ステレオ", "Event_detail": ""}]`
|
||||||
|
|
||||||
|
it('can generate valid url', () => {
|
||||||
|
const result = url({ date, channel })
|
||||||
|
expect(result).toBe('https://s.mxtv.jp/bangumi_file/json01/SV2EPG20240801.json')
|
||||||
|
})
|
||||||
|
|
||||||
|
it('can parse response', () => {
|
||||||
|
const result = parser({ date, channel, content }).map(p => {
|
||||||
|
p.start = p.start.toJSON()
|
||||||
|
p.stop = p.stop.toJSON()
|
||||||
|
return p
|
||||||
|
})
|
||||||
|
|
||||||
|
expect(result).toMatchObject([
|
||||||
|
{
|
||||||
|
start: '2024-07-26T20:00:00.000Z', // UTC time
|
||||||
|
stop: '2024-07-26T21:00:00.000Z', // UTC
|
||||||
|
title: 'ヒーリングタイム&ヘッドラインニュース',
|
||||||
|
description: 'ねこの足跡',
|
||||||
|
image: null,
|
||||||
|
category: null
|
||||||
|
}
|
||||||
|
])
|
||||||
|
})
|
||||||
|
|
||||||
|
it('can handle empty guide', () => {
|
||||||
|
const result = parser({
|
||||||
|
date,
|
||||||
|
channel,
|
||||||
|
content: '[]'
|
||||||
|
})
|
||||||
|
expect(result).toMatchObject([])
|
||||||
|
})
|
28
sites/skyperfectv.co.jp/README.md
Normal file
28
sites/skyperfectv.co.jp/README.md
Normal file
|
@ -0,0 +1,28 @@
|
||||||
|
# skyperfectv.co.jp
|
||||||
|
|
||||||
|
<https://www.skyperfectv.co.jp>
|
||||||
|
|
||||||
|
## Index
|
||||||
|
|
||||||
|
- [Index](#index)
|
||||||
|
- [Download the guide](#download-the-guide)
|
||||||
|
- [Update channel list](#update-channel-list)
|
||||||
|
- [Test](#test)
|
||||||
|
|
||||||
|
## Download the guide
|
||||||
|
|
||||||
|
```sh
|
||||||
|
npm run grab -- --site=skyperfectv.co.jp
|
||||||
|
```
|
||||||
|
|
||||||
|
## Update channel list
|
||||||
|
|
||||||
|
```sh
|
||||||
|
npm run channels:parse -- --config=./sites/skyperfectv.co.jp/skyperfectv.co.jp.config.js --output=./sites/skyperfectv.co.jp/skyperfectv.co.jp.channels.xml
|
||||||
|
```
|
||||||
|
|
||||||
|
## Test
|
||||||
|
|
||||||
|
```sh
|
||||||
|
npm test -- skyperfectv.co.jp
|
||||||
|
```
|
140
sites/skyperfectv.co.jp/skyperfectv.co.jp.channels.xml
Normal file
140
sites/skyperfectv.co.jp/skyperfectv.co.jp.channels.xml
Normal file
|
@ -0,0 +1,140 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<channels>
|
||||||
|
<channel site="skyperfectv.co.jp" lang="ja" xmltv_id="WOWOWCinema.jp" site_id="basic_BS193">WOWOWシネマ</channel>
|
||||||
|
<channel site="skyperfectv.co.jp" lang="ja" xmltv_id="StarChannel1.jp" site_id="basic_BS200">スターチャンネル</channel>
|
||||||
|
<channel site="skyperfectv.co.jp" lang="ja" xmltv_id="WOWOWPlus.jp" site_id="basic_BS252">WOWOWプラス 映画・ドラマ・スポーツ・音楽</channel>
|
||||||
|
<channel site="skyperfectv.co.jp" lang="ja" xmltv_id="NihonEigaSenmonChannel.jp" site_id="basic_BS255">日本映画専門チャンネル</channel>
|
||||||
|
<channel site="skyperfectv.co.jp" lang="ja" xmltv_id="ToeiChannel.jp" site_id="basic_CS218">東映チャンネル</channel>
|
||||||
|
<channel site="skyperfectv.co.jp" lang="ja" xmltv_id="EiseiGekijo.jp" site_id="basic_CS219">衛星劇場</channel>
|
||||||
|
<channel site="skyperfectv.co.jp" lang="ja" xmltv_id="ChannelNECO.jp" site_id="basic_CS223">映画・チャンネルNECO</channel>
|
||||||
|
<channel site="skyperfectv.co.jp" lang="ja" xmltv_id="TheCinema.jp" site_id="basic_CS227">ザ・シネマ</channel>
|
||||||
|
<channel site="skyperfectv.co.jp" lang="ja" xmltv_id="MoviePlus.jp" site_id="basic_CS240">ムービープラス</channel>
|
||||||
|
<channel site="skyperfectv.co.jp" lang="ja" xmltv_id="JSPORTS1.jp" site_id="basic_BS242">J SPORTS 1</channel>
|
||||||
|
<channel site="skyperfectv.co.jp" lang="ja" xmltv_id="JSPORTS2.jp" site_id="basic_BS243">J SPORTS 2</channel>
|
||||||
|
<channel site="skyperfectv.co.jp" lang="ja" xmltv_id="JSPORTS3.jp" site_id="basic_BS244">J SPORTS 3</channel>
|
||||||
|
<channel site="skyperfectv.co.jp" lang="ja" xmltv_id="JSPORTS4.jp" site_id="basic_BS245">J SPORTS 4</channel>
|
||||||
|
<channel site="skyperfectv.co.jp" lang="ja" xmltv_id="SkyA.jp" site_id="basic_CS250">スカイA</channel>
|
||||||
|
<channel site="skyperfectv.co.jp" lang="ja" xmltv_id="GAORASPORTS.jp" site_id="basic_CS254">GAORA SPORTS</channel>
|
||||||
|
<channel site="skyperfectv.co.jp" lang="ja" xmltv_id="NitteleGPlus.jp" site_id="basic_CS257">日テレジータス</channel>
|
||||||
|
<channel site="skyperfectv.co.jp" lang="ja" xmltv_id="GolfNetwork.jp" site_id="basic_CS262">ゴルフネットワーク</channel>
|
||||||
|
<channel site="skyperfectv.co.jp" lang="ja" xmltv_id="SportsLivePlus.jp" site_id="basic_CS800">スポーツライブ+</channel>
|
||||||
|
<channel site="skyperfectv.co.jp" lang="ja" xmltv_id="WOWOWPrime.jp" site_id="basic_BS191">WOWOWプライム</channel>
|
||||||
|
<channel site="skyperfectv.co.jp" lang="ja" xmltv_id="WOWOWLive.jp" site_id="basic_BS192">WOWOWライブ</channel>
|
||||||
|
<channel site="skyperfectv.co.jp" lang="ja" xmltv_id="DisneyChannel.jp" site_id="basic_BS256">ディズニー・チャンネル</channel>
|
||||||
|
<channel site="skyperfectv.co.jp" lang="ja" xmltv_id="TBSChannel1.jp" site_id="basic_CS296">TBSチャンネル1 最新ドラマ・音楽・映画</channel>
|
||||||
|
<channel site="skyperfectv.co.jp" lang="ja" xmltv_id="TBSChannel2.jp" site_id="basic_CS297">TBSチャンネル2 名作ドラマ・スポーツ・アニメ</channel>
|
||||||
|
<channel site="skyperfectv.co.jp" lang="ja" xmltv_id="TVAsahiChannel1.jp" site_id="basic_CS298">テレ朝チャンネル1</channel>
|
||||||
|
<channel site="skyperfectv.co.jp" lang="ja" xmltv_id="TVAsahiChannel2.jp" site_id="basic_CS299">テレ朝チャンネル2</channel>
|
||||||
|
<channel site="skyperfectv.co.jp" lang="ja" xmltv_id="NipponTVPlus.jp" site_id="basic_CS300">日テレプラス ドラマ・アニメ・音楽ライブ</channel>
|
||||||
|
<channel site="skyperfectv.co.jp" lang="ja" xmltv_id="EntermeiTele.jp" site_id="basic_CS301">エンタメ~テレ☆シネドラバラエティ</channel>
|
||||||
|
<channel site="skyperfectv.co.jp" lang="ja" xmltv_id="ChannelGinga.jp" site_id="basic_CS305">チャンネル銀河 歴史ドラマ・サスペンス・日本のうた</channel>
|
||||||
|
<channel site="skyperfectv.co.jp" lang="ja" xmltv_id="FujiTVONE.jp" site_id="basic_CS307">フジテレビONE スポーツ・バラエティ</channel>
|
||||||
|
<channel site="skyperfectv.co.jp" lang="ja" xmltv_id="FujiTVTWO.jp" site_id="basic_CS308">フジテレビTWO ドラマ・アニメ</channel>
|
||||||
|
<channel site="skyperfectv.co.jp" lang="ja" xmltv_id="FujiTVNEXT.jp" site_id="basic_CS309">フジテレビNEXT ライブ・プレミアム</channel>
|
||||||
|
<channel site="skyperfectv.co.jp" lang="ja" xmltv_id="Sukachan1.jp" site_id="basic_CS801">スカチャン1</channel>
|
||||||
|
<channel site="skyperfectv.co.jp" lang="ja" xmltv_id="SpaceShowerTVPlus.jp" site_id="basic_CS321">100%ヒッツ!スペースシャワーTV プラス</channel>
|
||||||
|
<channel site="skyperfectv.co.jp" lang="ja" xmltv_id="SpaceShowerTV.jp" site_id="basic_CS322">音楽・ライブ! スペースシャワーTV</channel>
|
||||||
|
<channel site="skyperfectv.co.jp" lang="ja" xmltv_id="MTV.jp" site_id="basic_CS323">MTV</channel>
|
||||||
|
<channel site="skyperfectv.co.jp" lang="ja" xmltv_id="MusicAir.jp" site_id="basic_CS324">ミュージック・エア</channel>
|
||||||
|
<channel site="skyperfectv.co.jp" lang="ja" xmltv_id="MUSICONTV.jp" site_id="basic_CS325">MUSIC ON! TV(エムオン!)</channel>
|
||||||
|
<channel site="skyperfectv.co.jp" lang="ja" xmltv_id="KayoPops.jp" site_id="basic_CS329">歌謡ポップスチャンネル</channel>
|
||||||
|
<channel site="skyperfectv.co.jp" lang="ja" xmltv_id="SuperDramaTV.jp" site_id="basic_CS310">スーパー!ドラマTV #海外ドラマ☆エンタメ</channel>
|
||||||
|
<channel site="skyperfectv.co.jp" lang="ja" xmltv_id="ActionChannel.jp" site_id="basic_CS311">アクションチャンネル</channel>
|
||||||
|
<channel site="skyperfectv.co.jp" lang="ja" xmltv_id="Dlife.jp" site_id="basic_CS312">Dlife</channel>
|
||||||
|
<channel site="skyperfectv.co.jp" lang="ja" xmltv_id="LaLaTV.jp" site_id="basic_CS314">女性チャンネル♪LaLa TV</channel>
|
||||||
|
<channel site="skyperfectv.co.jp" lang="ja" xmltv_id="MysteryChannel.jp" site_id="basic_CS316">ミステリーチャンネル</channel>
|
||||||
|
<channel site="skyperfectv.co.jp" lang="ja" xmltv_id="KBSWorldJapan.jp" site_id="basic_CS317">KBS World 韓流専門チャンネル</channel>
|
||||||
|
<channel site="skyperfectv.co.jp" lang="ja" xmltv_id="MnetJapan.jp" site_id="basic_CS318">Mnet</channel>
|
||||||
|
<channel site="skyperfectv.co.jp" lang="ja" xmltv_id="TAKARAZUKASKYSTAGE.jp" site_id="basic_CS290">TAKARAZUKA SKY STAGE</channel>
|
||||||
|
<channel site="skyperfectv.co.jp" lang="ja" xmltv_id="JidaigekiSenmonChannel.jp" site_id="basic_CS292">時代劇専門チャンネル</channel>
|
||||||
|
<channel site="skyperfectv.co.jp" lang="ja" xmltv_id="FamilyGekijyo.jp" site_id="basic_CS293">ファミリー劇場</channel>
|
||||||
|
<channel site="skyperfectv.co.jp" lang="ja" xmltv_id="HomeDramaChannel.jp" site_id="basic_CS294">ホームドラマチャンネル 韓流・時代劇・国内ドラマ</channel>
|
||||||
|
<channel site="skyperfectv.co.jp" lang="ja" xmltv_id="MONDOTV.jp" site_id="basic_CS295">MONDO TV</channel>
|
||||||
|
<channel site="skyperfectv.co.jp" lang="ja" xmltv_id="Animax.in" site_id="basic_BS236">アニマックス</channel>
|
||||||
|
<channel site="skyperfectv.co.jp" lang="ja" xmltv_id="KidsStation.jp" site_id="basic_CS330">キッズステーション テレビアニメ・劇場版・OVA</channel>
|
||||||
|
<channel site="skyperfectv.co.jp" lang="ja" xmltv_id="CartoonNetwork.jp" site_id="basic_CS331">カートゥーン ネットワーク 海外アニメ国内アニメ</channel>
|
||||||
|
<channel site="skyperfectv.co.jp" lang="ja" xmltv_id="ATX.jp" site_id="basic_CS333">アニメシアターX(AT-X)</channel>
|
||||||
|
<channel site="skyperfectv.co.jp" lang="ja" xmltv_id="DiscoveryChannel.jp" site_id="basic_CS340">ディスカバリーチャンネル</channel>
|
||||||
|
<channel site="skyperfectv.co.jp" lang="ja" xmltv_id="AnimalPlanet.jp" site_id="basic_CS341">アニマルプラネット</channel>
|
||||||
|
<channel site="skyperfectv.co.jp" lang="ja" xmltv_id="History.jp" site_id="basic_CS342">ヒストリーチャンネル 日本・世界の歴史&エンタメ</channel>
|
||||||
|
<channel site="skyperfectv.co.jp" lang="ja" xmltv_id="NationalGeographic.jp" site_id="basic_CS343">ナショナル ジオグラフィック</channel>
|
||||||
|
<channel site="skyperfectv.co.jp" lang="ja" xmltv_id="NTVNEWS24.jp" site_id="basic_CS349">日テレNEWS24</channel>
|
||||||
|
<channel site="skyperfectv.co.jp" lang="ja" xmltv_id="TBSNewsCS.jp" site_id="basic_CS351">TBS NEWS</channel>
|
||||||
|
<channel site="skyperfectv.co.jp" lang="ja" xmltv_id="BBCNewsAsiaPacific.uk" site_id="basic_CS353">BBCニュース</channel>
|
||||||
|
<channel site="skyperfectv.co.jp" lang="ja" xmltv_id="CNNj.jp" site_id="basic_CS354">CNNj</channel>
|
||||||
|
<channel site="skyperfectv.co.jp" lang="ja" xmltv_id="FishingVision.jp" site_id="basic_BS251">BS釣りビジョン</channel>
|
||||||
|
<channel site="skyperfectv.co.jp" lang="ja" xmltv_id="DisneyJunior.jp" site_id="basic_CS339">ディズニージュニア</channel>
|
||||||
|
<channel site="skyperfectv.co.jp" lang="ja" xmltv_id="IgoShogiChannel.jp" site_id="basic_CS363">囲碁・将棋チャンネル</channel>
|
||||||
|
<channel site="skyperfectv.co.jp" lang="ja" xmltv_id="GreenChannel.jp" site_id="basic_BS234">グリーンチャンネル</channel>
|
||||||
|
<channel site="skyperfectv.co.jp" lang="ja" xmltv_id="ShopChannel.jp" site_id="basic_CS055">ショップチャンネル</channel>
|
||||||
|
<channel site="skyperfectv.co.jp" lang="ja" xmltv_id="QVC.jp" site_id="basic_CS161">QVC(キューヴィーシー)</channel>
|
||||||
|
<channel site="skyperfectv.co.jp" lang="ja" xmltv_id="Wowow4K.jp" site_id="basic_4KBS191">WOWOW 4K</channel>
|
||||||
|
<channel site="skyperfectv.co.jp" lang="ja" xmltv_id="VParadise.jp" site_id="premium_635">V☆パラダイス</channel>
|
||||||
|
<channel site="skyperfectv.co.jp" lang="ja" xmltv_id="ExcitingGrandPrix.jp" site_id="premium_636">エキサイティング・グランプリ</channel>
|
||||||
|
<channel site="skyperfectv.co.jp" lang="ja" xmltv_id="SportsLivePlus.jp" site_id="premium_584">スポーツライブ+ 2</channel>
|
||||||
|
<channel site="skyperfectv.co.jp" lang="ja" xmltv_id="FIGHTINGTVSamurai.jp" site_id="premium_600">FIGHTING TV サムライ</channel>
|
||||||
|
<channel site="skyperfectv.co.jp" lang="ja" xmltv_id="ShigekiStrong.jp" site_id="premium_609">刺激ストロングチャンネル</channel>
|
||||||
|
<channel site="skyperfectv.co.jp" lang="ja" xmltv_id="DanceChannel.jp" site_id="premium_665">ダンスチャンネル by エンタメ~テレ</channel>
|
||||||
|
<channel site="skyperfectv.co.jp" lang="ja" xmltv_id="Sukachan5.jp" site_id="premium_585">スカチャン5</channel>
|
||||||
|
<channel site="skyperfectv.co.jp" lang="ja" xmltv_id="Sukachan6.jp" site_id="premium_586">スカチャン6</channel>
|
||||||
|
<channel site="skyperfectv.co.jp" lang="ja" xmltv_id="Sukachan7.jp" site_id="premium_587">スカチャン7</channel>
|
||||||
|
<channel site="skyperfectv.co.jp" lang="ja" xmltv_id="Sukachan8.jp" site_id="premium_588">スカチャン8</channel>
|
||||||
|
<channel site="skyperfectv.co.jp" lang="ja" xmltv_id="Sukachan9.jp" site_id="premium_589">スカチャン9</channel>
|
||||||
|
<channel site="skyperfectv.co.jp" lang="ja" xmltv_id="Sukachan10.jp" site_id="premium_590">スカチャン10</channel>
|
||||||
|
<channel site="skyperfectv.co.jp" lang="ja" xmltv_id="Sukachan11.jp" site_id="premium_591">スカチャン11</channel>
|
||||||
|
<channel site="skyperfectv.co.jp" lang="ja" xmltv_id="Sukachan12.jp" site_id="premium_592">スカチャン12</channel>
|
||||||
|
<channel site="skyperfectv.co.jp" lang="ja" xmltv_id="Sukachan13.jp" site_id="premium_593">スカチャン13</channel>
|
||||||
|
<channel site="skyperfectv.co.jp" lang="ja" xmltv_id="Sukachan14.jp" site_id="premium_594">スカチャン14</channel>
|
||||||
|
<channel site="skyperfectv.co.jp" lang="ja" xmltv_id="MusicJapanTV.jp" site_id="premium_639">ミュージック・ジャパンTV</channel>
|
||||||
|
<channel site="skyperfectv.co.jp" lang="ja" xmltv_id="MusicGraffitiTV.jp" site_id="premium_645">ミュージック・グラフィティTV</channel>
|
||||||
|
<channel site="skyperfectv.co.jp" lang="ja" xmltv_id="AsiaDramaticTV.jp" site_id="premium_655">アジアドラマチックTV(アジドラ)</channel>
|
||||||
|
<channel site="skyperfectv.co.jp" lang="ja" xmltv_id="KNTV.jp" site_id="premium_657">KNTV</channel>
|
||||||
|
<channel site="skyperfectv.co.jp" lang="ja" xmltv_id="ParadiseTV.jp" site_id="premium_535">大人のイキヌキ!ヌーヴェルパラダイス</channel>
|
||||||
|
<channel site="skyperfectv.co.jp" lang="ja" xmltv_id="Pigoo.jp" site_id="premium_663">アイドル専門チャンネルPigoo</channel>
|
||||||
|
<channel site="skyperfectv.co.jp" lang="ja" xmltv_id="SORAWeatherChannel.jp" site_id="premium_560">SORA―お天気チャンネル―</channel>
|
||||||
|
<channel site="skyperfectv.co.jp" lang="ja" xmltv_id="CNN.us" site_id="premium_567">CNN U.S.</channel>
|
||||||
|
<channel site="skyperfectv.co.jp" lang="ja" xmltv_id="DAIFUchannel.cn" site_id="premium_568">中国テレビ★大富チャンネル</channel>
|
||||||
|
<channel site="skyperfectv.co.jp" lang="ja" xmltv_id="NikkeiCNBC.jp" site_id="premium_570">日経CNBC</channel>
|
||||||
|
<channel site="skyperfectv.co.jp" lang="ja" xmltv_id="BetterLifeChannel.jp" site_id="premium_529">ベターライフチャンネル</channel>
|
||||||
|
<channel site="skyperfectv.co.jp" lang="ja" xmltv_id="PachinkoPachisloTV.jp" site_id="premium_536">パチンコ★パチスロTV!</channel>
|
||||||
|
<channel site="skyperfectv.co.jp" lang="ja" xmltv_id="SITE777TV.jp" site_id="premium_537">パチ・スロ サイトセブンTV</channel>
|
||||||
|
<channel site="skyperfectv.co.jp" lang="ja" xmltv_id="FishingVision.jp" site_id="premium_540">釣りビジョンHD</channel>
|
||||||
|
<channel site="skyperfectv.co.jp" lang="ja" xmltv_id="YoseChannel.jp" site_id="premium_542">寄席チャンネル</channel>
|
||||||
|
<channel site="skyperfectv.co.jp" lang="ja" xmltv_id="TABIChannel.jp" site_id="premium_544">旅チャンネル</channel>
|
||||||
|
<channel site="skyperfectv.co.jp" lang="ja" xmltv_id="TetsudoChannel.jp" site_id="premium_546">鉄道チャンネル</channel>
|
||||||
|
<channel site="skyperfectv.co.jp" lang="ja" xmltv_id="SouthernKantoRegionalHorseRacingChannel.jp" site_id="premium_678">南関東地方競馬チャンネル</channel>
|
||||||
|
<channel site="skyperfectv.co.jp" lang="ja" xmltv_id="JLC680.jp" site_id="premium_680">JLC680</channel>
|
||||||
|
<channel site="skyperfectv.co.jp" lang="ja" xmltv_id="JLC681.jp" site_id="premium_681">JLC681</channel>
|
||||||
|
<channel site="skyperfectv.co.jp" lang="ja" xmltv_id="JLC682.jp" site_id="premium_682">JLC682</channel>
|
||||||
|
<channel site="skyperfectv.co.jp" lang="ja" xmltv_id="JLC683.jp" site_id="premium_683">JLC683</channel>
|
||||||
|
<channel site="skyperfectv.co.jp" lang="ja" xmltv_id="JLC684.jp" site_id="premium_684">JLC684</channel>
|
||||||
|
<channel site="skyperfectv.co.jp" lang="ja" xmltv_id="GreenChannel2.jp" site_id="premium_689">グリーンチャンネル2</channel>
|
||||||
|
<channel site="skyperfectv.co.jp" lang="ja" xmltv_id="SpeedChannel690.jp" site_id="premium_690">SPEEDチャンネル(競輪ライブ) 690</channel>
|
||||||
|
<channel site="skyperfectv.co.jp" lang="ja" xmltv_id="SpeedChannel691.jp" site_id="premium_691">SPEEDチャンネル(競輪ライブ) 691</channel>
|
||||||
|
<channel site="skyperfectv.co.jp" lang="ja" xmltv_id="SpeedChannel692.jp" site_id="premium_692">SPEEDチャンネル(競輪ライブ) 692</channel>
|
||||||
|
<channel site="skyperfectv.co.jp" lang="ja" xmltv_id="SpeedChannel693.jp" site_id="premium_693">SPEEDチャンネル(競輪ライブ) 693</channel>
|
||||||
|
<channel site="skyperfectv.co.jp" lang="ja" xmltv_id="SpeedChannel694.jp" site_id="premium_694">SPEEDチャンネル(競輪ライブ) 694</channel>
|
||||||
|
<channel site="skyperfectv.co.jp" lang="ja" xmltv_id="SpeedPlusOne695.jp" site_id="premium_695">スピードプラスワン695</channel>
|
||||||
|
<channel site="skyperfectv.co.jp" lang="ja" xmltv_id="LocalHorseRacingNine701.jp" site_id="premium_701">地方競馬ナイン 701</channel>
|
||||||
|
<channel site="skyperfectv.co.jp" lang="ja" xmltv_id="LocalHorseRacingNine702.jp" site_id="premium_702">地方競馬ナイン 702</channel>
|
||||||
|
<channel site="skyperfectv.co.jp" lang="ja" xmltv_id="LocalHorseRacingNine703.jp" site_id="premium_703">地方競馬ナイン 703</channel>
|
||||||
|
<channel site="skyperfectv.co.jp" lang="ja" xmltv_id="PhoenixTelevision.jp" site_id="premium_518">フェニックステレビ(鳳凰衛視)</channel>
|
||||||
|
<channel site="skyperfectv.co.jp" lang="ja" xmltv_id="GSTV.jp" site_id="premium_527">ジュエリー☆GSTV</channel>
|
||||||
|
<channel site="skyperfectv.co.jp" lang="ja" xmltv_id="SelectShopping.jp" site_id="premium_528">セレクトショッピング</channel>
|
||||||
|
<channel site="skyperfectv.co.jp" lang="ja" xmltv_id="kmpChannel.jp" site_id="premium_942">kmpチャンネル</channel>
|
||||||
|
<channel site="skyperfectv.co.jp" lang="ja" xmltv_id="PlayboyChannel.jp" site_id="premium_943">プレイボーイ チャンネル</channel>
|
||||||
|
<channel site="skyperfectv.co.jp" lang="ja" xmltv_id="RainbowChannel.jp" site_id="premium_944">レインボーチャンネル</channel>
|
||||||
|
<channel site="skyperfectv.co.jp" lang="ja" xmltv_id="MidnightBlue.jp" site_id="premium_945">ミッドナイト・ブルー</channel>
|
||||||
|
<channel site="skyperfectv.co.jp" lang="ja" xmltv_id="ParadiseTV.jp" site_id="premium_946">パラダイステレビ</channel>
|
||||||
|
<channel site="skyperfectv.co.jp" lang="ja" xmltv_id="CherryBomb.jp" site_id="premium_947">チェリーボム</channel>
|
||||||
|
<channel site="skyperfectv.co.jp" lang="ja" xmltv_id="VENUS.jp" site_id="premium_957">VENUS</channel>
|
||||||
|
<channel site="skyperfectv.co.jp" lang="ja" xmltv_id="VanillaSkyChannel.jp" site_id="premium_958">バニラスカイチャンネル</channel>
|
||||||
|
<channel site="skyperfectv.co.jp" lang="ja" xmltv_id="Enter959.jp" site_id="premium_959">エンタ!959</channel>
|
||||||
|
<channel site="skyperfectv.co.jp" lang="ja" xmltv_id="Zaptv.jp" site_id="premium_960">Zaptv</channel>
|
||||||
|
<channel site="skyperfectv.co.jp" lang="ja" xmltv_id="DynamiteTV.jp" site_id="premium_963">ダイナマイトTV</channel>
|
||||||
|
<channel site="skyperfectv.co.jp" lang="ja" xmltv_id="AVKing.jp" site_id="premium_964">AV王</channel>
|
||||||
|
<channel site="skyperfectv.co.jp" lang="ja" xmltv_id="RedCherry.jp" site_id="premium_965">レッドチェリー</channel>
|
||||||
|
<channel site="skyperfectv.co.jp" lang="ja" xmltv_id="Splash.jp" site_id="premium_966">Splash</channel>
|
||||||
|
<channel site="skyperfectv.co.jp" lang="ja" xmltv_id="Flamingo.jp" site_id="premium_967">フラミンゴ</channel>
|
||||||
|
<channel site="skyperfectv.co.jp" lang="ja" xmltv_id="SkyPerfectPromo599.jp" site_id="premium_599">スカパー!プロモ599</channel>
|
||||||
|
</channels>
|
114
sites/skyperfectv.co.jp/skyperfectv.co.jp.config.js
Normal file
114
sites/skyperfectv.co.jp/skyperfectv.co.jp.config.js
Normal file
|
@ -0,0 +1,114 @@
|
||||||
|
const axios = require('axios')
|
||||||
|
const dayjs = require('dayjs')
|
||||||
|
const cheerio = require('cheerio')
|
||||||
|
const duration = require('dayjs/plugin/duration')
|
||||||
|
const utc = require('dayjs/plugin/utc')
|
||||||
|
const timezone = require('dayjs/plugin/timezone')
|
||||||
|
const customParseFormat = require('dayjs/plugin/customParseFormat')
|
||||||
|
|
||||||
|
dayjs.extend(utc)
|
||||||
|
dayjs.extend(timezone)
|
||||||
|
dayjs.extend(customParseFormat)
|
||||||
|
dayjs.extend(duration)
|
||||||
|
|
||||||
|
const exported = {
|
||||||
|
site: 'skyperfectv.co.jp',
|
||||||
|
days: 1,
|
||||||
|
lang: 'ja',
|
||||||
|
url: function ({ date, channel }) {
|
||||||
|
let [type, ...code] = channel.site_id.split('_')
|
||||||
|
code = code.join('_')
|
||||||
|
return `https://www.skyperfectv.co.jp/program/schedule/${type}/channel:${code}/date:${date.format('YYMMDD')}`
|
||||||
|
},
|
||||||
|
logo: function ({ channel }) {
|
||||||
|
return `https://www.skyperfectv.co.jp/library/common/img/channel/icon/basic/m_${channel.site_id.toLowerCase()}.gif`
|
||||||
|
},
|
||||||
|
// Specific function that permits to gather NSFW channels (needs confirmation)
|
||||||
|
async fetchSchedule({ date, channel }) {
|
||||||
|
const url = exported.url({ date, channel })
|
||||||
|
const response = await axios.get(url, {
|
||||||
|
headers: {
|
||||||
|
'Cookie': 'adult_auth=true'
|
||||||
|
}
|
||||||
|
})
|
||||||
|
return response.data
|
||||||
|
},
|
||||||
|
parser({ content, date }) {
|
||||||
|
const $ = cheerio.load(content)
|
||||||
|
const programs = []
|
||||||
|
|
||||||
|
const sections = [
|
||||||
|
{ id: 'js-am', addition: 0 },
|
||||||
|
{ id: 'js-pm', addition: 0 },
|
||||||
|
{ id: 'js-md', addition: 1 }
|
||||||
|
]
|
||||||
|
|
||||||
|
sections.forEach(({ id, addition }) => {
|
||||||
|
$(`#${id} > td`).each((index, element) => {
|
||||||
|
// `td` is a column for a day
|
||||||
|
// the next `td` will be the next day
|
||||||
|
const today = date.add(index + addition, 'd').tz('Asia/Tokyo')
|
||||||
|
|
||||||
|
const parseTime = (timeString) => {
|
||||||
|
// timeString is in the format "HH:mm"
|
||||||
|
// replace `today` with the time from timeString
|
||||||
|
const [hour, minute] = timeString.split(':').map(Number)
|
||||||
|
return today.hour(hour).minute(minute)
|
||||||
|
}
|
||||||
|
|
||||||
|
const $element = $(element) // Wrap element with Cheerio
|
||||||
|
$element.find('.p-program__item').each((itemIndex, itemElement) => {
|
||||||
|
const $itemElement = $(itemElement) // Wrap itemElement with Cheerio
|
||||||
|
const [start, stop] = $itemElement.find('.p-program__range').first().text().split('〜').map(parseTime)
|
||||||
|
const title = $itemElement.find('.p-program__name').first().text()
|
||||||
|
const image = $itemElement.find('.js-program_thumbnail').first().attr('data-lazysrc')
|
||||||
|
programs.push({
|
||||||
|
title,
|
||||||
|
start,
|
||||||
|
stop,
|
||||||
|
image
|
||||||
|
})
|
||||||
|
})
|
||||||
|
})
|
||||||
|
})
|
||||||
|
|
||||||
|
return programs
|
||||||
|
},
|
||||||
|
async channels() {
|
||||||
|
const pageParser = (content, type) => {
|
||||||
|
// type: "basic" | "premium"
|
||||||
|
// Returns an array of channel objects
|
||||||
|
|
||||||
|
const $ = cheerio.load(content)
|
||||||
|
const channels = []
|
||||||
|
|
||||||
|
$('.p-channel').each((index, element) => {
|
||||||
|
const site_id = `${type}_${$(element).find('.p-channel__id').text()}`
|
||||||
|
const name = $(element).find('.p-channel__name').text()
|
||||||
|
channels.push({ site_id, name, lang: 'ja' })
|
||||||
|
})
|
||||||
|
|
||||||
|
return channels
|
||||||
|
}
|
||||||
|
|
||||||
|
const getChannels = async (type) => {
|
||||||
|
const response = await axios.get(`https://www.skyperfectv.co.jp/program/schedule/${type}/`, {
|
||||||
|
headers: {
|
||||||
|
'Cookie': 'adult_auth=true;'
|
||||||
|
}
|
||||||
|
})
|
||||||
|
return pageParser(response.data, type)
|
||||||
|
}
|
||||||
|
|
||||||
|
const fetchAllChannels = async () => {
|
||||||
|
const basicChannels = await getChannels('basic')
|
||||||
|
const premiumChannels = await getChannels('premium')
|
||||||
|
const results = [...basicChannels, ...premiumChannels]
|
||||||
|
return results
|
||||||
|
}
|
||||||
|
|
||||||
|
return await fetchAllChannels()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
module.exports = exported
|
53
sites/skyperfectv.co.jp/skyperfectv.co.jp.test.js
Normal file
53
sites/skyperfectv.co.jp/skyperfectv.co.jp.test.js
Normal file
File diff suppressed because one or more lines are too long
|
@ -75,7 +75,7 @@
|
||||||
<channel site="tvguide.myjcom.jp" lang="ja" xmltv_id="MusicAir.jp" site_id="120_161_65406">ミュージック・エア</channel>
|
<channel site="tvguide.myjcom.jp" lang="ja" xmltv_id="MusicAir.jp" site_id="120_161_65406">ミュージック・エア</channel>
|
||||||
<channel site="tvguide.myjcom.jp" lang="ja" xmltv_id="NationalGeographic.jp" site_id="120_142_65406">ナショナル ジオグラフィック</channel>
|
<channel site="tvguide.myjcom.jp" lang="ja" xmltv_id="NationalGeographic.jp" site_id="120_142_65406">ナショナル ジオグラフィック</channel>
|
||||||
<channel site="tvguide.myjcom.jp" lang="ja" xmltv_id="NHKBS1.jp" site_id="3_101_4">NHKBS1</channel>
|
<channel site="tvguide.myjcom.jp" lang="ja" xmltv_id="NHKBS1.jp" site_id="3_101_4">NHKBS1</channel>
|
||||||
<channel site="tvguide.myjcom.jp" lang="ja" xmltv_id="" site_id="3_101_11">NHK BS4K</channel>
|
<channel site="tvguide.myjcom.jp" lang="ja" xmltv_id="NHKBSP4K.jp" site_id="3_101_11">NHK BS4K</channel>
|
||||||
<channel site="tvguide.myjcom.jp" lang="ja" xmltv_id="NHKBSPremium.jp" site_id="3_103_4">NHKBSプレミアム</channel>
|
<channel site="tvguide.myjcom.jp" lang="ja" xmltv_id="NHKBSPremium.jp" site_id="3_103_4">NHKBSプレミアム</channel>
|
||||||
<channel site="tvguide.myjcom.jp" lang="ja" xmltv_id="NHKEducationalTV.jp" site_id="2_1032_32737">NHK東京 教育</channel>
|
<channel site="tvguide.myjcom.jp" lang="ja" xmltv_id="NHKEducationalTV.jp" site_id="2_1032_32737">NHK東京 教育</channel>
|
||||||
<channel site="tvguide.myjcom.jp" lang="ja" xmltv_id="NHKGeneralTV.jp" site_id="2_1024_32736">NHK東京 総合</channel>
|
<channel site="tvguide.myjcom.jp" lang="ja" xmltv_id="NHKGeneralTV.jp" site_id="2_1024_32736">NHK東京 総合</channel>
|
||||||
|
@ -120,20 +120,20 @@
|
||||||
<channel site="tvguide.myjcom.jp" lang="ja" xmltv_id="" site_id="120_033_65406">ご案内チャンネル</channel>
|
<channel site="tvguide.myjcom.jp" lang="ja" xmltv_id="" site_id="120_033_65406">ご案内チャンネル</channel>
|
||||||
<channel site="tvguide.myjcom.jp" lang="ja" xmltv_id="" site_id="120_034_65406">オンデマンドチャンネル290</channel>
|
<channel site="tvguide.myjcom.jp" lang="ja" xmltv_id="" site_id="120_034_65406">オンデマンドチャンネル290</channel>
|
||||||
<channel site="tvguide.myjcom.jp" lang="ja" xmltv_id="" site_id="120_039_65406">オンデマンドチャンネル440</channel>
|
<channel site="tvguide.myjcom.jp" lang="ja" xmltv_id="" site_id="120_039_65406">オンデマンドチャンネル440</channel>
|
||||||
<channel site="tvguide.myjcom.jp" lang="ja" xmltv_id="" site_id="120_129_65406">ショップチャンネル プラス</channel>
|
<channel site="tvguide.myjcom.jp" lang="ja" xmltv_id="ShopChannelPlus.jp" site_id="120_129_65406">ショップチャンネル プラス</channel>
|
||||||
<channel site="tvguide.myjcom.jp" lang="ja" xmltv_id="" site_id="120_150_65406">MTV HD</channel>
|
<channel site="tvguide.myjcom.jp" lang="ja" xmltv_id="MTV.jp" site_id="120_150_65406">MTV HD</channel>
|
||||||
<channel site="tvguide.myjcom.jp" lang="ja" xmltv_id="" site_id="120_153_65406">ミステリーチャンネル</channel>
|
<channel site="tvguide.myjcom.jp" lang="ja" xmltv_id="MysteryChannel.jp" site_id="120_153_65406">ミステリーチャンネル</channel>
|
||||||
<channel site="tvguide.myjcom.jp" lang="ja" xmltv_id="" site_id="120_156_65406">音楽・ライブ! スペースシャワーTV HD</channel>
|
<channel site="tvguide.myjcom.jp" lang="ja" xmltv_id="SpaceShowerTV.jp" site_id="120_156_65406">音楽・ライブ! スペースシャワーTV HD</channel>
|
||||||
<channel site="tvguide.myjcom.jp" lang="ja" xmltv_id="" site_id="120_160_65406">MONDOTV HD</channel>
|
<channel site="tvguide.myjcom.jp" lang="ja" xmltv_id="MONDOTV.jp" site_id="120_160_65406">MONDOTV HD</channel>
|
||||||
<channel site="tvguide.myjcom.jp" lang="ja" xmltv_id="" site_id="120_185_65406">日経CNBC</channel>
|
<channel site="tvguide.myjcom.jp" lang="ja" xmltv_id="NikkeiCNBC.jp" site_id="120_185_65406">日経CNBC</channel>
|
||||||
<channel site="tvguide.myjcom.jp" lang="ja" xmltv_id="" site_id="120_191_65406">パチンコ★パチスロTV!</channel>
|
<channel site="tvguide.myjcom.jp" lang="ja" xmltv_id="PachinkoPachisloTV.jp" site_id="120_191_65406">パチンコ★パチスロTV!</channel>
|
||||||
<channel site="tvguide.myjcom.jp" lang="ja" xmltv_id="" site_id="120_192_65406">ジュエリー☆GSTV</channel>
|
<channel site="tvguide.myjcom.jp" lang="ja" xmltv_id="GSTV.jp" site_id="120_192_65406">ジュエリー☆GSTV</channel>
|
||||||
<channel site="tvguide.myjcom.jp" lang="ja" xmltv_id="" site_id="120_412_65527">JSPORTS1 (4K)</channel>
|
<channel site="tvguide.myjcom.jp" lang="ja" xmltv_id="JSPORTS1.jp" site_id="120_412_65527">JSPORTS1 (4K)</channel>
|
||||||
<channel site="tvguide.myjcom.jp" lang="ja" xmltv_id="" site_id="120_413_65527">JSPORTS2 (4K)</channel>
|
<channel site="tvguide.myjcom.jp" lang="ja" xmltv_id="JSPORTS2.jp" site_id="120_413_65527">JSPORTS2 (4K)</channel>
|
||||||
<channel site="tvguide.myjcom.jp" lang="ja" xmltv_id="" site_id="120_414_65527">JSPORTS3 (4K)</channel>
|
<channel site="tvguide.myjcom.jp" lang="ja" xmltv_id="JSPORTS3.jp" site_id="120_414_65527">JSPORTS3 (4K)</channel>
|
||||||
<channel site="tvguide.myjcom.jp" lang="ja" xmltv_id="" site_id="120_415_65527">JSPORTS4 (4K)</channel>
|
<channel site="tvguide.myjcom.jp" lang="ja" xmltv_id="JSPORTS4.jp" site_id="120_415_65527">JSPORTS4 (4K)</channel>
|
||||||
<channel site="tvguide.myjcom.jp" lang="ja" xmltv_id="" site_id="120_416_65527">ショップチャンネル 4K</channel>
|
<channel site="tvguide.myjcom.jp" lang="ja" xmltv_id="ShopChannel.jp" site_id="120_416_65527">ショップチャンネル 4K</channel>
|
||||||
<channel site="tvguide.myjcom.jp" lang="ja" xmltv_id="" site_id="120_417_65527">4K QVC</channel>
|
<channel site="tvguide.myjcom.jp" lang="ja" xmltv_id="QVC.jp" site_id="120_417_65527">4K QVC</channel>
|
||||||
<channel site="tvguide.myjcom.jp" lang="ja" xmltv_id="NHKBSP4K.jp" site_id="5_101_11">NHK BSP4K</channel>
|
<channel site="tvguide.myjcom.jp" lang="ja" xmltv_id="NHKBSP4K.jp" site_id="5_101_11">NHK BSP4K</channel>
|
||||||
<channel site="tvguide.myjcom.jp" lang="ja" xmltv_id="NHKBS.jp" site_id="3_101_4">NHK BS</channel>
|
<channel site="tvguide.myjcom.jp" lang="ja" xmltv_id="NHKBS.jp" site_id="3_101_4">NHK BS</channel>
|
||||||
<channel site="tvguide.myjcom.jp" lang="ja" xmltv_id="MTV.jp" site_id="120_150_65406">MTV HD</channel>
|
<channel site="tvguide.myjcom.jp" lang="ja" xmltv_id="MTV.jp" site_id="120_150_65406">MTV HD</channel>
|
||||||
|
@ -149,4 +149,5 @@
|
||||||
<channel site="tvguide.myjcom.jp" lang="ja" xmltv_id="JOBRDTV.jp" site_id="2_42032_32102">KBS京都</channel>
|
<channel site="tvguide.myjcom.jp" lang="ja" xmltv_id="JOBRDTV.jp" site_id="2_42032_32102">KBS京都</channel>
|
||||||
<channel site="tvguide.myjcom.jp" lang="ja" xmltv_id="JOIXDTV.jp" site_id="2_2088_32725">読売テレビ</channel>
|
<channel site="tvguide.myjcom.jp" lang="ja" xmltv_id="JOIXDTV.jp" site_id="2_2088_32725">読売テレビ</channel>
|
||||||
<channel site="tvguide.myjcom.jp" lang="ja" xmltv_id="JOUHDTV.jp" site_id="2_43056_32086">サンテレビ</channel>
|
<channel site="tvguide.myjcom.jp" lang="ja" xmltv_id="JOUHDTV.jp" site_id="2_43056_32086">サンテレビ</channel>
|
||||||
|
<channel site="tvguide.myjcom.jp" lang="ja" xmltv_id="TSS.jp" site_id="2_47144_32021">TSS</channel>
|
||||||
</channels>
|
</channels>
|
||||||
|
|
|
@ -11,6 +11,7 @@ dayjs.extend(customParseFormat)
|
||||||
module.exports = {
|
module.exports = {
|
||||||
site: 'tvguide.myjcom.jp',
|
site: 'tvguide.myjcom.jp',
|
||||||
days: 2,
|
days: 2,
|
||||||
|
lang: 'ja',
|
||||||
url: function ({ date, channel }) {
|
url: function ({ date, channel }) {
|
||||||
const id = `${channel.site_id}_${date.format('YYYYMMDD')}`
|
const id = `${channel.site_id}_${date.format('YYYYMMDD')}`
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue