無茶苦茶適当なこと書くけど、 Web ページのデザインでプログラマを分類すると
という傾向があるという印象。
ゆっくりはっきり喋ってくれる英語ニュースの VOA News Special English は結構ありがたい存在なのだけど、問題が二つ。 VOA News は Podcast を使えるらしいのだけど、
というわけで、適当なものをでっちあげることにした。とりあえずこんな感じ。
#!/usr/bin/env python
import feedparser
import os
import urllib2
from htmllib import HTMLParser
from formatter import AbstractFormatter, NullWriter
def get_mp3_url(url):
parser = HTMLParser(AbstractFormatter(NullWriter()))
print 'getting %s ...' % (url)
text = urllib2.urlopen(url).read()
parser.feed(text)
for i in parser.anchorlist:
if i.endswith('.mp3'):
return i
return ''
def main():
try:
feed = feedparser.parse('http://www.voanews.com/specialenglish/customCF/RecentStoriesRSS.cfm?keyword=TopStories')
while 1:
for i, v in enumerate(feed.entries):
print '%2d: %s' % (i, v.title)
num = int(raw_input('enter entry\'s number> '))
if num == -1: break
url = get_mp3_url(feed.entries[num].link)
print url
os.system('mplayer %s' % (url))
return 0
except KeyboardInterrupt, e:
return -1
except Exception, e:
import traceback
traceback.print_exc()
return -1
if __name__ == '__main__':
import sys
sys.exit(main())
Feed Parser と MPlayer に依存してるので、事前にインストールしておくこと。というか Plagger でやれとの声が聞こえてきそうだけど、 Plagger なんぞ知らん。後は適当に改造すればトランススクリプトを表示させたりとか出来るようになるし、その場合 Tkinter で GUI フロントエンドを作るのも悪くなさそうだけど、今日はもうこれでいいや。
ところで VOA News って Last-Modified を出力してくれないのでこっちの方でキャッシュを持って負荷軽減が難しくなってる。一度 GET したら 12 時間の間はキャッシュを参照とかにした方がいいだろうな (そのぐらいの間隔でも大丈夫だろう)。
この怪文書はクリエイティブ・コモンズ・ライセンスの元でライセンスされています。引用した文章など Kuwata Chikara に著作権のないものについては、それらの著作権保持者に帰属します。