職場でオープンソース版「Fastladder」を入れて使っている。
最近、最も保守的だと言われている知財の部署からエラー報告や、要望とかがちょくちょく寄せられるようになってきて、おー結構普及したなぁと延べ人数数えたら7割超えてた。Fastladderの前に一年くらい違うRSSリーダー使ってから3年半くらいかかってここまで来た感じ(RSSごときで3年もかかんのか?なんて思うんだけど、一般的に製薬業界はITリテラシー低いですね。なんでだろうかね?)。
地道な啓蒙活動に付き合って講習会を手伝ってくれたK君とかN君とか、別のサイトで普及活動に励んでくれたA君に感謝しないとな。
さて、登録されてるフィードの内容見てるとPubmedとWIPOのPatentscopeが多いが、知財のヒトからエラー報告として挙げられた内容の中に400件くらいエントリのあるフィード(WIPO)を新規登録できないってのがあった。
研究者はプロジェクトの内容で検索かけるのだけど、知財のヒトは会社毎の検索式を追いかけたりするらしい。例えばPA/TAKEDA PHARMACEUTICALなんて検索かけると700件以上ヒットして、その検索式をRSSにすると500件のエントリが含まれるRSSが出力される。これがfastladderだと新規登録で弾かれる。ちなみに研究者の検索する状況ではそんな多量のエントリーの含まれるフィードは出てこなかったりするので今まで問題にならなかったみたい。
ソース見てないからわかんないんだけど、fastladderの未読記事のmax200件にしてるからそれで引っかかってんのかなぁと
んだよWIPOのRSSはmax指定できないの?->できないっぽい
とりあえず、feedのエントリ数を減らすような中継かませばいいんじゃないかと、休日を利用してササッと書いてみた。
import feedparser
import feedgenerator
from time import mktime
from datetime import datetime
MAX_ENTRIES = 10
wipo_url = "http://www.wipo.int/pctdb/en/rss.jsp?C=1&QUERY="
query = "(FP%2FPA%2FTAKEDA+AND+FP%2FPHARMACEUTICAL)"
d = feedparser.parse(wipo_url+query)
feed = feedgenerator.Rss201rev2Feed(
title = d.feed.title,
link = d.feed.link,
feed_url = d.url,
description = d.channel.description
)
for entry in d.entries[:MAX_ENTRIES]:
feed.add_item(
title = entry.title,
link = entry.link,
description = entry.description,
pubdate = datetime.fromtimestamp(mktime(entry.updated_parsed))
)
print feed.writeString('utf-8')
あとは、CGIかFlaskで動かせばOKでしょう。
pubdateのとこで若干はまったけどsofのパワーで解決。
今は、イントラQAサイトを定着させるのにちょっと力を入れてる。