재방송, 회차정보 옵션 추가
This commit is contained in:
		
							parent
							
								
									b4546caf06
								
							
						
					
					
						commit
						3b6709872b
					
				
							
								
								
									
										28
									
								
								epg2xml.py
									
									
									
									
									
								
							
							
						
						
									
										28
									
								
								epg2xml.py
									
									
									
									
									
								
							@ -16,10 +16,12 @@ import argparse
 | 
				
			|||||||
reload(sys)
 | 
					reload(sys)
 | 
				
			||||||
sys.setdefaultencoding('utf-8')
 | 
					sys.setdefaultencoding('utf-8')
 | 
				
			||||||
 | 
					
 | 
				
			||||||
__version__ = '1.1.1'
 | 
					__version__ = '1.1.2'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Set My Configuration
 | 
					# Set My Configuration
 | 
				
			||||||
default_icon_url = '' # TV channel icon url (ex : http://www.example.com/Channels)
 | 
					default_icon_url = '' # TV channel icon url (ex : http://www.example.com/Channels)
 | 
				
			||||||
 | 
					default_rebroadcast = 'y' # 제목에 재방송 정보 출력
 | 
				
			||||||
 | 
					default_episode = 'n' # 제목에 회차정보 출력
 | 
				
			||||||
default_verbose = 'n' # 자세한 epg 데이터 출력
 | 
					default_verbose = 'n' # 자세한 epg 데이터 출력
 | 
				
			||||||
default_fetch_limit = 2 # epg 데이터 가져오는 기간
 | 
					default_fetch_limit = 2 # epg 데이터 가져오는 기간
 | 
				
			||||||
default_xml_filename = 'xmltv.xml' # epg 저장시 기본 저장 이름 (ex: /home/tvheadend/xmltv.xml)
 | 
					default_xml_filename = 'xmltv.xml' # epg 저장시 기본 저장 이름 (ex: /home/tvheadend/xmltv.xml)
 | 
				
			||||||
@ -41,7 +43,6 @@ JSON_SYNTAX_ERROR = 'Channel.json 파일 형식이 잘못되었습니다.'
 | 
				
			|||||||
def getEpg():
 | 
					def getEpg():
 | 
				
			||||||
    Channelfile = os.path.dirname(os.path.abspath(__file__)) + '/Channel.json'
 | 
					    Channelfile = os.path.dirname(os.path.abspath(__file__)) + '/Channel.json'
 | 
				
			||||||
    ChannelInfos = []
 | 
					    ChannelInfos = []
 | 
				
			||||||
    SiteEPG = [] #For epg.co.kr
 | 
					 | 
				
			||||||
    try:
 | 
					    try:
 | 
				
			||||||
        with open(Channelfile) as f: # Read Channel Information file
 | 
					        with open(Channelfile) as f: # Read Channel Information file
 | 
				
			||||||
            Channeldatas = json.load(f)
 | 
					            Channeldatas = json.load(f)
 | 
				
			||||||
@ -81,7 +82,7 @@ def getEpg():
 | 
				
			|||||||
        ChannelName =  ChannelInfo[1]
 | 
					        ChannelName =  ChannelInfo[1]
 | 
				
			||||||
        ChannelSource =  ChannelInfo[2]
 | 
					        ChannelSource =  ChannelInfo[2]
 | 
				
			||||||
        ChannelServiceId =  ChannelInfo[3]
 | 
					        ChannelServiceId =  ChannelInfo[3]
 | 
				
			||||||
        if(debug) : printLog(ChannelName + ' 채널 EPG 데이터 가져오고 있습니다')
 | 
					        if(debug) : printLog(ChannelName + ' 채널 EPG 데이터를 가져오고 있습니다')
 | 
				
			||||||
        if ChannelSource == 'EPG':
 | 
					        if ChannelSource == 'EPG':
 | 
				
			||||||
            GetEPGFromEPG(ChannelInfo)
 | 
					            GetEPGFromEPG(ChannelInfo)
 | 
				
			||||||
        elif ChannelSource == 'KT':
 | 
					        elif ChannelSource == 'KT':
 | 
				
			||||||
@ -437,7 +438,8 @@ def writeProgram(programdata):
 | 
				
			|||||||
    category = escape(programdata['category'])
 | 
					    category = escape(programdata['category'])
 | 
				
			||||||
    episode = programdata['episode']
 | 
					    episode = programdata['episode']
 | 
				
			||||||
    rebroadcast = programdata['rebroadcast']
 | 
					    rebroadcast = programdata['rebroadcast']
 | 
				
			||||||
    if rebroadcast == True: programName = programName + ' (재방송)'
 | 
						if addpeiosde  == 'y': programName = programName + '('+ episode + ')'
 | 
				
			||||||
 | 
					    if rebroadcast  == True and addrebrocast == 'y' : programName = programName + ' (재)'
 | 
				
			||||||
    if programdata['rating'] == 0 :
 | 
					    if programdata['rating'] == 0 :
 | 
				
			||||||
        rating = '전체 관람가'
 | 
					        rating = '전체 관람가'
 | 
				
			||||||
    else :
 | 
					    else :
 | 
				
			||||||
@ -458,7 +460,7 @@ def writeProgram(programdata):
 | 
				
			|||||||
    for key, value in contentTypeDict.iteritems():
 | 
					    for key, value in contentTypeDict.iteritems():
 | 
				
			||||||
        if category.startswith(key):
 | 
					        if category.startswith(key):
 | 
				
			||||||
            contentType = value
 | 
					            contentType = value
 | 
				
			||||||
    if(endTime) :
 | 
					    if endTime :
 | 
				
			||||||
        print('  <programme start="%s +0900" stop="%s +0900" channel="%s">' % (startTime, endTime, ChannelId))
 | 
					        print('  <programme start="%s +0900" stop="%s +0900" channel="%s">' % (startTime, endTime, ChannelId))
 | 
				
			||||||
    else :
 | 
					    else :
 | 
				
			||||||
        print('  <programme start="%s +0900" channel="%s">' % (startTime, ChannelId))
 | 
					        print('  <programme start="%s +0900" channel="%s">' % (startTime, ChannelId))
 | 
				
			||||||
@ -492,7 +494,7 @@ def printLog(*args):
 | 
				
			|||||||
    print(*args, file=sys.stderr)
 | 
					    print(*args, file=sys.stderr)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
def printError(*args):
 | 
					def printError(*args):
 | 
				
			||||||
    print("Error:", *args, file=sys.stderr)
 | 
					    print("Error : ", *args, file=sys.stderr)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
parser = argparse.ArgumentParser(description = 'EPG 정보를 출력하는 방법을 선택한다')
 | 
					parser = argparse.ArgumentParser(description = 'EPG 정보를 출력하는 방법을 선택한다')
 | 
				
			||||||
argu1 = parser.add_argument_group(description = 'IPTV 선택')
 | 
					argu1 = parser.add_argument_group(description = 'IPTV 선택')
 | 
				
			||||||
@ -505,6 +507,8 @@ argu2.add_argument('-s', '--socket', metavar = default_xml_socket, nargs = '?',
 | 
				
			|||||||
argu3 = parser.add_argument_group('추가옵션')
 | 
					argu3 = parser.add_argument_group('추가옵션')
 | 
				
			||||||
argu3.add_argument('-l', '--limit', dest = 'limit', type = int, metavar = "1-7", choices = range(1,8), help = 'EPG 정보를 가져올 기간, 기본값: '+ str(default_fetch_limit), default = default_fetch_limit)
 | 
					argu3.add_argument('-l', '--limit', dest = 'limit', type = int, metavar = "1-7", choices = range(1,8), help = 'EPG 정보를 가져올 기간, 기본값: '+ str(default_fetch_limit), default = default_fetch_limit)
 | 
				
			||||||
argu3.add_argument('--icon', dest = 'icon', metavar = "http://www.example.com/icon", help = '채널 아이콘 URL, 기본값: '+ default_icon_url, default = default_icon_url)
 | 
					argu3.add_argument('--icon', dest = 'icon', metavar = "http://www.example.com/icon", help = '채널 아이콘 URL, 기본값: '+ default_icon_url, default = default_icon_url)
 | 
				
			||||||
 | 
					argu3.add_argument('--rebroadecast', dest = 'rebroadecast', metavar = 'y, n', choices = 'yn', help = '제목에 재방송 정보 출력', default = default_rebroadecast)
 | 
				
			||||||
 | 
					argu3.add_argument('--episode', dest = 'episode', metavar = 'y, n', choices = 'yn', help = '제목에 회차 정보 출력', default = default_episode)
 | 
				
			||||||
argu3.add_argument('--verbose', dest = 'verbose', metavar = 'y, n', choices = 'yn', help = 'EPG 정보 추가 출력', default = default_verbose)
 | 
					argu3.add_argument('--verbose', dest = 'verbose', metavar = 'y, n', choices = 'yn', help = 'EPG 정보 추가 출력', default = default_verbose)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
args = parser.parse_args()
 | 
					args = parser.parse_args()
 | 
				
			||||||
@ -525,6 +529,17 @@ if args.icon:
 | 
				
			|||||||
else:
 | 
					else:
 | 
				
			||||||
    IconUrl = default_icon_url
 | 
					    IconUrl = default_icon_url
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					if args.rebroadecast:
 | 
				
			||||||
 | 
					    addrebroadecast = args.rebroadecast
 | 
				
			||||||
 | 
					else:
 | 
				
			||||||
 | 
					    addrebroadecast = default_rebroadecast
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					if args.episode:
 | 
				
			||||||
 | 
					    addepisode = args.episode
 | 
				
			||||||
 | 
					else:
 | 
				
			||||||
 | 
					    addepisode = default_episode
 | 
				
			||||||
 | 
					
 | 
				
			||||||
if args.verbose:
 | 
					if args.verbose:
 | 
				
			||||||
    verbose = args.verbose
 | 
					    verbose = args.verbose
 | 
				
			||||||
else:
 | 
					else:
 | 
				
			||||||
@ -543,4 +558,3 @@ elif args.socket:
 | 
				
			|||||||
        sys.exit()
 | 
					        sys.exit()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
getEpg()
 | 
					getEpg()
 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user