#!/usr/bin/env python # -*- coding: utf-8 -*- import sys, feedparser import setomail URL = 'http://rss.weather.yahoo.co.jp/rss/days/%(area)s.xml' LINE = '* %(date)s: %(weather)s %(temperature)s' ## def _get_titles(area): d = feedparser.parse(URL % locals()) l = [d.feed.title] + [entry.title for entry in d.entries] return l ## def _format_body(titles): l = [] for title in titles: spl = title.split() if len(spl) != 9: continue date, weather, temperature = spl[1], spl[4], spl[6] l.append(LINE % locals()) return '\n'.join(l) ## def _main(args): to_addrs, titles = [], [] for arg in args: if arg.count('@'): to_addrs.append(arg) elif arg.isdigit() and not titles: titles = _get_titles(arg) fr_addr = 'yahooweather@matatabi.homeip.net' subj = titles[0].split()[-1] body = _format_body(titles[1:]) for to_addr in to_addrs: setomail.send_mail(to_addr, fr_addr, subj, body) ## if __name__ == '__main__': _main(sys.argv[1:])