diff --git a/.github/workflows/auto-update.yml b/.github/workflows/auto-update.yml
index 7b5cb28b..a14948a0 100644
--- a/.github/workflows/auto-update.yml
+++ b/.github/workflows/auto-update.yml
@@ -4,6 +4,21 @@ on:
schedule:
- cron: '0 0 * * *'
jobs:
+ hd-plus_de:
+ runs-on: ubuntu-latest
+ steps:
+ - name: Checkout
+ uses: actions/checkout@v2.3.1
+ - name: Install Dependencies
+ run: npm install
+ - name: Run EPG Grabber
+ run: npx epg-grabber --config=sites/hd-plus.de.config.js
+ - name: Deploy to GitHub Pages
+ uses: JamesIves/github-pages-deploy-action@4.1.1
+ with:
+ branch: gh-pages
+ folder: .gh-pages
+ clean: false
astro_com_my:
runs-on: ubuntu-latest
steps:
diff --git a/README.md b/README.md
index b67d223e..a5e1df9e 100644
--- a/README.md
+++ b/README.md
@@ -23,6 +23,7 @@ To load a program guide, all you need to do is copy the link to one of the guide
🇨🇿 Czechia | https://iptv-org.github.io/epg/guides/m.tv.sms.cz.guide.xml |
🇸🇻 El Salvador | https://iptv-org.github.io/epg/guides/mi.tv.guide.xml |
🇫🇷 France | https://iptv-org.github.io/epg/guides/programme-tv.net.guide.xml |
+ 🇩🇪 Germany | https://iptv-org.github.io/epg/guides/hd-plus.de.guide.xml |
🇬🇷 Greece | https://iptv-org.github.io/epg/guides/cosmote.gr.guide.xml |
🇬🇹 Guatemala | https://iptv-org.github.io/epg/guides/mi.tv.guide.xml |
ðŸ‡ðŸ‡³ Honduras | https://iptv-org.github.io/epg/guides/mi.tv.guide.xml |
diff --git a/sites/hd-plus.de.channels.xml b/sites/hd-plus.de.channels.xml
new file mode 100755
index 00000000..52949c4b
--- /dev/null
+++ b/sites/hd-plus.de.channels.xml
@@ -0,0 +1,143 @@
+
+
+
+ 1-2-3.tv
+ 13th Street Deutschland
+ 3sat
+ a.tv
+ allgäu.tv
+ Anixe HD Serie
+ ARD-alpha
+ ARTE Deutsch
+ AstroTV
+ ATV
+ ATV2
+ AXN Deutschland
+ Bayerisches Fernsehen
+ Bibel TV
+ Bloomberg TV Europe
+ Boomerang Deutschland
+ Cartoon Network Deutschland
+ Channel 21
+ Comedy Central Deutschland
+ Das Erste
+ Deluxe Music
+ Deutsches Musik Fernsehen
+ Die Neue Zeit TV
+ Discovery Channel Deutschland
+ Disney Channel Deutschland
+ Disney Junior Deutschland
+ DMAX Deutschland
+ Donau TV
+ E! Europe
+ Euronews Deutsch
+ Eurosport 1 Germany
+ EWTN auf Deutsch
+ Fox Deutschland
+ Franken Fernsehen
+ GoldStar TV
+ GoTV
+ Heimatkanal
+ History Deutschland
+ Hope Channel Deutsch
+ hr-fernsehen
+ HSE
+ HSE Extra
+ JML Direct TV
+ Junior
+ Juwelo
+ K-TV
+ Kabel Eins Classics
+ Kabel Eins Deutschland
+ KiKA
+ Kinowelt TV
+ L-TV
+ MDR Fernsehen
+ Motorvision TV
+ MTV Germany
+ MTV Hits Europe
+ MTV Live HD
+ MTV Music 24
+ Mühlviertel TV
+ münchen.tv
+ n-tv
+ National Geographic Deutschland
+ National Geographic Wild Deutschland
+ NDR Fernsehen
+ Nitro Deutschland
+ NPO 1
+ NPO 2
+ One
+ ORF 1
+ ORF 2
+ ORF III
+ ORF Sport +
+ Parlamentsfernsehen des Deutschen Bundestages
+ pearl.tv
+ Phoenix
+ ProSieben Deutschland
+ ProSieben Maxx Deutschland
+ Puls 4
+ QVC Deutschland
+ QVC Zwei
+ rbb Fernsehen
+ Regio TV
+ RFO
+ rheinmaintv
+ RiC
+ Romance TV Deutschland
+ RTL Crime Deutschland
+ RTL Deutschland
+ RTL Living Deutschland
+ RTL Passion Deutschland
+ RTL Zwei Deutschland
+ Sat.1 Deutschland
+ Sat.1 Emotions
+ Sat.1 Gold Deutschland
+ Servus TV Deutschland
+ Sixx Deutschland
+ Sky Atlantic
+ Sky Cinema
+ Sky Cinema +24
+ Sky Cinema Action
+ Sky Cinema Comedy
+ Sky Cinema Hits
+ Sky Cinema Nostalgie
+ Sky Krimi
+ Sky Sport 1
+ Sky Sport 2
+ Sky Sport Austria 1
+ Sky Sport Bundesliga 1
+ Sky Sport Bundesliga 2
+ Sky Sport Bundesliga 3
+ Sky Sport Bundesliga 4
+ Sky Sport News
+ sonnenklar.TV
+ Sport 1+
+ Sport1
+ Sportdigital
+ SR Fernsehen
+ SRF 1
+ SRF zwei
+ Stingray Classica
+ Super RTL Deutschland
+ SWR Fernsehen
+ Syfy Deutschland
+ Tagesschau24
+ Tele 5
+ TLC Germany
+ TNT Film
+ TNT Serie
+ TV Oberfranken
+ TVA Ostbayern
+ Universal TV Deutschland
+ VH1 Classic
+ Vox Deutschland
+ WDR Fernsehen
+ Welt
+ Welt der Wunder TV
+ ZDF
+ ZDFinfo
+ ZDFneo
+
+
\ No newline at end of file
diff --git a/sites/hd-plus.de.config.js b/sites/hd-plus.de.config.js
new file mode 100644
index 00000000..513678de
--- /dev/null
+++ b/sites/hd-plus.de.config.js
@@ -0,0 +1,51 @@
+const jsdom = require('jsdom')
+const { JSDOM } = jsdom
+const dayjs = require('dayjs')
+const utc = require('dayjs/plugin/utc')
+const customParseFormat = require('dayjs/plugin/customParseFormat')
+
+dayjs.extend(utc)
+dayjs.extend(customParseFormat)
+
+module.exports = {
+ lang: 'de',
+ site: 'hd-plus.de',
+ channels: 'hd-plus.de.channels.xml',
+ output: '.gh-pages/guides/hd-plus.de.guide.xml',
+ url({ date, channel }) {
+ const now = dayjs()
+ const day = now.diff(date, 'd')
+
+ return `https://www.hd-plus.de/epg/channel/${channel.site_id}?d=${day}`
+ },
+ logo({ content }) {
+ const dom = new JSDOM(content)
+ const img = dom.window.document.querySelector('header > img')
+
+ return img ? img.src : null
+ },
+ parser({ content }) {
+ const dom = new JSDOM(content)
+ const items = dom.window.document.querySelectorAll('table > tbody > tr')
+ let programs = []
+ items.forEach(item => {
+ const title = (item.querySelector('td:nth-child(1) > a') || { textContent: '' }).textContent
+ const fullDate = (item.querySelector('td:nth-child(2)') || { textContent: '' }).textContent
+ if (title && fullDate) {
+ const time = fullDate.split(' ').pop()
+ const start = dayjs.utc(time, 'HH:mm')
+
+ if (programs.length && !programs[programs.length - 1].stop) {
+ programs[programs.length - 1].stop = start
+ }
+
+ programs.push({
+ title,
+ start: start.toString()
+ })
+ }
+ })
+
+ return programs
+ }
+}