Skip to content

Commit 03684f8

Browse files
Merge pull request #10 from th0ma7/language-fix
zap2it: Add basic option for language handling
2 parents a59ec10 + 4e053fc commit 03684f8

File tree

1 file changed

+27
-14
lines changed

1 file changed

+27
-14
lines changed

zap2it-GuideScrape.py

Lines changed: 27 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
#!/usr/bin/env python3
12
"""
23
Forked from https://github.com/daniel-widrick/zap2it-GuideScraping
34
All credit goes to daniel-widrick.
@@ -40,17 +41,23 @@ def buildXMLProgram(event,channelId):
4041
xml = ""
4142
xml = xml + ' <programme start="' + buildXMLDate(event["startTime"]) + '" '
4243
xml = xml + 'stop="' + buildXMLDate(event["endTime"]) + '" channel="' + sanitizeData(channelId) + '">' + "\n"
43-
xml = xml + ' <title lang="en">' + sanitizeData(event["program"]["title"]) + '</title>' + "\n"
44+
xml = xml + ' <title lang="' + optLanguage + '">' + sanitizeData(event["program"]["title"]) + '</title>' + "\n"
4445
if event["program"]["episodeTitle"] is not None:
45-
xml = xml + ' <sub-title lang="en">' + sanitizeData(event["program"]["episodeTitle"]) + ' </sub-title>' + "\n"
46+
xml = xml + ' <sub-title lang="' + optLanguage + '">' + sanitizeData(event["program"]["episodeTitle"]) + ' </sub-title>' + "\n"
4647
if event["program"]["shortDesc"] is None:
4748
event["program"]["shortDesc"] = "Unavailable"
48-
xml = xml + ' <desc lang="en">' + html.escape(event["program"]["shortDesc"]) + '</desc>' + "\n"
49+
xml = xml + ' <desc lang="' + optLanguage + '">' + html.escape(event["program"]["shortDesc"]) + '</desc>' + "\n"
4950
xml = xml + ' <length units="minutes">' + sanitizeData(event["duration"]) + '</length>' + "\n"
5051
for category in event["filter"]:
5152
xml = xml + ' <category>' + sanitizeData(category.replace('filter-','')) + '</category>' + "\n"
5253
if event["thumbnail"] is not None:
53-
xml = xml + ' <thumbnail>http://zap2it.tmsimg.com/assets/' + event["thumbnail"] + '.jpg</thumbnail>' + "\n"
54+
xml = xml + ' <thumbnail>http://zap2it.tmsimg.com/assets/' + event["thumbnail"] + '.jpg</thumbnail>' + "\n"
55+
xml = xml + ' <icon src="http://zap2it.tmsimg.com/assets/' + event["thumbnail"] + '.jpg" />' + "\n"
56+
if event["rating"] is not None:
57+
xml = xml + ' <rating>' + "\n"
58+
xml = xml + ' <value>' + event["rating"] + '</value>' + "\n"
59+
xml = xml + ' </rating>' + "\n"
60+
xml = xml + ' <subtitles type="teletext" />' + "\n"
5461
season = "0"
5562
episode = "0"
5663
episodeid = ""
@@ -69,15 +76,17 @@ def buildXMLProgram(event,channelId):
6976
print("no season for:" + event["program"]["title"])
7077

7178
#print season + "." + episode
72-
if int(season) < 10:
73-
season = "0" + str(season)
74-
if int(episode) < 10:
75-
episode = "0" + str(episode)
76-
xml = xml + '<episode-num system="SxxExx">S' + season + "E" + episode + "</episode-num>"
79+
if ((int(season) != 0) and (int(episode) != 0)):
80+
if int(season) < 10:
81+
season = "0" + str(season)
82+
if int(episode) < 10:
83+
episode = "0" + str(episode)
84+
xml = xml + ' <episode-num system="SxxExx">S' + season + "E" + episode + "</episode-num>" + "\n"
85+
xml = xml + ' <episode-num system="common">S' + season + "E" + episode + "</episode-num>" + "\n"
7786

7887
showid = event["seriesId"].replace('SH','')
7988
episodeid = episodeid.replace('EP' + showid,'')
80-
xml = xml + '<episode-num system="dd_progid">EP' + sanitizeData(showid + '.' + episodeid) + '</episode-num>'
89+
xml = xml + ' <episode-num system="dd_progid">EP' + sanitizeData(showid + '.' + episodeid) + '</episode-num>' + "\n"
8190

8291
xml = xml + ' </programme>'+"\n"
8392
return xml
@@ -92,10 +101,11 @@ def buildXMLDate(inputDateString):
92101
#Add Paramter options for config file and guide file
93102
optConfigFile = './xap2itconfig.ini'
94103
optGuideFile = 'xmlguide.xmltv'
104+
optLanguage = 'en'
95105
try:
96-
opts, args = getopt.getopt(sys.argv[1:],"hi:o:",["ifile=","ofile="])
106+
opts, args = getopt.getopt(sys.argv[1:],"hi:o:l:",["ifile=","ofile=","language="])
97107
except getopt.GetoptError:
98-
print("zap2it-GuideScrape.py [-i <inputfile> ] [-o <outputfile>]")
108+
print("zap2it-GuideScrape.py [-i <inputfile> ] [-o <outputfile>] [-l <language>")
99109
sys.exit()
100110

101111
for opt, arg in opts:
@@ -106,6 +116,8 @@ def buildXMLDate(inputDateString):
106116
optConfigFile = arg
107117
elif opt in ("-o","--ofile"):
108118
optGuideFile = arg
119+
elif opt in ("-l","--language"):
120+
optLanguage = arg
109121

110122
print("Loading config: ", optConfigFile, " and outputting: ", optGuideFile)
111123

@@ -184,14 +196,15 @@ def buildXMLDate(inputDateString):
184196
addChannels = False
185197
closestTimestamp = closestTimestamp + (60*60*3)
186198

187-
guideXML = '<?xml version="1.0" encoding="ISO-8859-1"?>' + "\n"
199+
guideXML = '<?xml version="1.0" encoding="UTF-8"?>' + "\n"
200+
guideXML = guideXML + '<!DOCTYPE tv SYSTEM "xmltv.dtd">' + "\n"
188201

189202
guideXML = guideXML + '<tv source-info-url="http://tvlistings.zap2it.com/" source-info-name="zap2it.com" generator-info-name="zap2it-GuideScraping" generator-info-url="daniel@widrick.net">' + "\n"
190203

191204
guideXML = guideXML + channelXML
192205
guideXML = guideXML + programXML
193206

194-
guideXML = guideXML + "\n" + '</tv>'
207+
guideXML = guideXML + '</tv>' + "\n"
195208

196209
file = open(optGuideFile,"wb")
197210
file.write(guideXML.encode('utf8'))

0 commit comments

Comments
 (0)