Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # Write Program
- buf = {}
- def writeProgram(programdata):
- global buf
- ChannelId = programdata['channelId']
- startTime = programdata['startTime']
- endTime = programdata['endTime']
- programName = escape(programdata['programName']).strip()
- subprogramName = escape(programdata['subprogramName']).strip()
- matches = re.match('(.*) \(?(\d+부)\)?', unescape(programName.encode('utf-8', 'ignore')))
- if not(matches is None):
- programName = escape(matches.group(1)).strip();
- subprogramName = escape(matches.group(2)) + ' ' + subprogramName
- subprogramName = subprogramName.strip()
- if programName is None:
- programName = subprogramName
- actors = escape(programdata['actors'])
- producers = escape(programdata['producers'])
- category = escape(programdata['category'])
- episode = programdata['episode']
- if episode:
- try:
- episode_ns = int(episode) - 1
- episode_ns = '0'+ '.' + str(episode_ns) + '.' + '0' + '/' + '0'
- except ValueError as ex:
- episode_ns = int(episode.split(',', 1)[0]) - 1
- episode_ns = '0'+ '.' + str(episode_ns) + '.' + '0' + '/' + '0'
- episode_on = episode
- else:
- episode_ns = ''
- episode_on = ''
- rebroadcast = programdata['rebroadcast']
- if episode and addepisode == 'y': programName = programName + ' ('+ str(episode) + '회)'
- if rebroadcast == True and addrebroadcast == 'y' : programName = programName + ' (재)'
- if programdata['rating'] == 0 :
- rating = '전체 관람가'
- else :
- rating = '%s세 이상 관람가' % (programdata['rating'])
- if addverbose == 'y':
- desc = programName
- if subprogramName : desc = desc + '\n부제 : ' + subprogramName
- if rebroadcast == True and addrebroadcast == 'y' : desc = desc + '\n방송 : 재방송'
- if episode : desc = desc + '\n회차 : ' + str(episode) + '회'
- if category : desc = desc + '\n장르 : ' + category
- if actors : desc = desc + '\n출연 : ' + actors.strip()
- if producers : desc = desc + '\n제작 : ' + producers.strip()
- desc = desc + '\n등급 : ' + rating
- else:
- desc =''
- if programdata['desc'] : desc = desc + '\n' + escape(programdata['desc'])
- desc = re.sub(' +',' ', desc)
- contentTypeDict={'교양':'Arts / Culture (without music)', '만화':'Cartoons / Puppets', '교육':'Education / Science / Factual topics', '취미':'Leisure hobbies', '드라마':'Movie / Drama', '영화':'Movie / Drama', '음악':'Music / Ballet / Dance', '뉴스':'News / Current affairs', '다큐':'Documentary', '라이프':'Documentary', '시사/다큐':'Documentary', '연예':'Show / Game show', '스포츠':'Sports', '홈쇼핑':'Advertisement / Shopping'}
- contentType = ''
- for key, value in contentTypeDict.iteritems():
- if key in category:
- contentType = value
- try:
- splitProgram = buf['ChannelId'] == ChannelId and programName != '' and buf['programName'] == programName and buf['episode'] == episode
- except KeyError:
- splitProgram = False
- if splitProgram:
- buf['endTime'] = endTime
- buf['subprogramName'] = ''
- return
- elif buf:
- printBuffer()
- buf = {
- 'startTime': startTime,
- 'endTime': endTime,
- 'ChannelId': ChannelId,
- 'programName': programName,
- 'subprogramName': subprogramName,
- 'desc': desc,
- 'actors': actors,
- 'producers': producers,
- 'category': category,
- 'contentType': contentType,
- 'episode': episode,
- 'episode_ns': episode_ns,
- 'episode_on': episode_on,
- 'rebroadcast': rebroadcast,
- 'rating': rating,
- }
- def printBuffer():
- if not buf:
- return
- print(' <programme start="%s +0900" stop="%s +0900" channel="%s">' % (buf['startTime'], buf['endTime'], buf['ChannelId']))
- print(' <title lang="kr">%s</title>' % (buf['programName']))
- if buf['subprogramName']:
- print(' <sub-title lang="kr">%s</sub-title>' % (buf['subprogramName']))
- if addverbose == 'y':
- print(' <desc lang="kr">%s</desc>' % (buf['desc']))
- if buf['actors'] or buf['producers']:
- print(' <credits>')
- if buf['actors']:
- for actor in buf['actors'].split(','):
- if actor.strip(): print(' <actor>%s</actor>' % (actor.strip()))
- if buf['producers']:
- for producer in buf['producers'].split(','):
- if producer.strip(): print(' <producer>%s</producer>' % (producer).strip())
- print(' </credits>')
- if buf['category']: print(' <category lang="kr">%s</category>' % (buf['category']))
- if buf['contentType']: print(' <category lang="en">%s</category>' % (buf['contentType']))
- if buf['episode'] and addxmltvns == 'y': print(' <episode-num system="xmltv_ns">%s</episode-num>' % (buf['episode_ns']))
- if buf['episode'] and addxmltvns != 'y': print(' <episode-num system="onscreen">%s</episode-num>' % (buf['episode_on']))
- if buf['rebroadcast']: print(' <previously-shown />')
- if buf['rating']:
- print(' <rating system="KMRB">')
- print(' <value>%s</value>' % (buf['rating']))
- print(' </rating>')
- print(' </programme>')
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement