EPG(Electronic Program Guide) 방송 편성표를 어떻게 하면 쉽게 볼 수 있을까 하다가,
- xml을 xslt를 이용해 html로 변환
- RSS형태로 publishing
을 생각하다가 iCal에서 사용하는 ics 형태로 하면 iCal이 알아서 다 표현도 해줄것이고,
- MacOSX에서는 iCal에서 구독 하면 되고
- iCal과 동기되는 iPod Touch/iPhone에서도 볼수 있고
- Windows Vista도 ics를 지원하는 캘린더가 기본 포함 되었고,
아마 Outlook도 지원할것이고
- Google Calender도 같은 ics를 구독하면 언제 어디서나 볼수 있고
그래서 EPG 데이터를 ICS 포맷으로 변환하면 멋지겠다는 생각이 들었다.
방송사 별로 ICS를 생성하고 각 방송사 별로 ICS는 최대한 추려서 다음과 같이 쓰기로 했다.
BEGIN:VCALENDAR
PRODID:-//TTA//EPG DATA//KO
VERSION:2.0
CALSCALE:GREGORIAN
METHOD:PUBLISH
X-WR-TIMEZONE:Asia/Seoul
X-WR-CALNAME:MBC
BEGIN:VEVENT
DTSTART:20090131T223500
DTEND:20090131T235500
UID:MBC20090131T223500
CLASS:PUBLIC
DESCRIPTION:장르 : 연예/오락-토크쇼
출연 : 윤종신,김국진,김구라,김성주,신정환,이하늘,박미선
연출 : 여운혁,김유곤
SUMMARY:명랑 히어로
TRANSP:OPAQUE
END:VEVENT
END:VCALENDAR
ruby로 만든 ics를 iCal에서 읽어보니
결과는 일단 성공…

대충 상상했던 EPG형태로 보여주기는 하나, 실생활에 편히 쓸만큼 보기 편한거 같지는 않다.
그리고, 당장 쓰기에는 또 다른 문제가 좀 있다.
- 주기적으로 책임감 있게 변환 script를 돌려줄 서버가 필요하고,
- CalDAV로 iCal에서 쓰려면 WebDAV 호스팅이 되어야 하는데, 그렇지 아니하고,
- ics로 변환해서 그냥 web에 두고 google calendar에서 구독하면 그걸 다시 iCal에서 불러올 수 있다.
그래서 google calendar에서 읽어보니 한글이 깨진다…
(분명 UTF-8으로 저장되어 있는데, KSX1001을 UTF-8으로 읽었을때 처럼 깨진다..)
OTL 일단 오늘은 여기까지…..