Arcadia用recipe

Calibreはrecipeを自前で用意することでwebサイトを自動で電子書籍に仕上げてくれる。

で、Arcadia用のrecipeを作ってみた。

# -*- coding: utf8 -*-

from calibre.web.feeds.recipes import BasicNewsRecipe
import re

class Arcadia_BBS_subscription(BasicNewsRecipe):
    u'Arcadiaの作品を読み込む'
    title = u'Arcadia作品'
    __author__ = 'Masahiro HASEGAWA'
    language = 'ja'
    encoding = 'utf8'
    timefmt = '[%Y/%m/%d]'
    remove_tags_before = dict(name='a', attrs={'name':'kiji'})
    no_stylesheets  = True

    sid_list = [] #適当な記事ID

    def parse_index(self):
        result = []
        for sid in self.sid_list:
            s_result = []
            soup = self.index_to_soup(
                'http://www.mai-net.net/bbs/sst/sst.php?act=dump&all=%d'
                % sid)
            sec = soup.findAll('a', attrs={'href':re.compile(r'.*?kiji')})
            for s in sec[:-2]:
                s_result.append(dict(title=s.string,
                    url="http://www.mai-net.net" + s['href'],
                    date=s.parent.parent.parent.findAll('td')[3].string[:-6],
                    description='', content=''))
            result.append((s_result[0]['title'], s_result))
        return result

いつものように、配布ライセンスはプロフィール参照。