# coding: utf-8

INDEX_URL = "http://lunapark.co.kr/zb41pl7/bbs/zboard.php?id=diary01"

from BeautifulSoup import BeautifulSoup
import urllib
import re
import sys; reload(sys)

import datetime
import PyRSS2Gen

sys.setdefaultencoding('utf-8')

index_page = urllib.urlopen(INDEX_URL)
soup = BeautifulSoup(index_page)

base_url = '/'.join(index_page.url.split('/')[:-1]) + '/'
rss_items = []
for link in soup('a', {'onclick':re.compile('hidden_write')})[-10:]:
    date_string = link.attrMap["onclick"].split("'")[-4]
    y = int(date_string[0:4])
    m = int(date_string[4:6])
    d = int(date_string[6:8])
    href = base_url + link.attrMap["onclick"].split("'")[-2]

    body_soup = BeautifulSoup(urllib.urlopen(href))
    descr = body_soup("img", {'src':re.compile('diary01')})[0].prettify()

    rss_item = PyRSS2Gen.RSSItem(
            author = "lunaparker@hanmail.net",
            title = date_string,
            link = href,
            description = descr.replace('src="', 'src="'+base_url),
            guid = PyRSS2Gen.Guid(link.get('href')),
            pubDate = datetime.datetime(y, m, d))
    rss_items.append(rss_item)
rss_items.reverse()

rss = PyRSS2Gen.RSS2(
        title = soup.title.renderContents() or "Luna's Diary",
        link = INDEX_URL,
        description = "",
        lastBuildDate = datetime.datetime.now(),
        items = rss_items)

rss.write_xml(open("diary.xml", "w"), "UTF-8")
