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