#!/usr/bin/env python
# -*- coding: utf-8 -*-
import sys, urllib, smtplib, BeautifulSoup
NORMALMSG = u'現在、平常通り運転しています。'
AREAS = {'tohoku': u'東北エリア', 'kanto': u'関東エリア', 'shinetsu': u'信越エリア'}
TRAININFO = 'http://traininfo.jreast.co.jp/train_info/%s.aspx'
FROMADDR = 'jreastcheck@your.domain'
def get_url(a):
if a in AREAS.keys():
return TRAININFO % a, AREAS[a]
else:
sys.exit('AREA must be in %s.' % ', '.join(AREAS.keys()))
def get_msg(u):
f = urllib.urlopen(u)
p = f.read()
f.close()
soup = BeautifulSoup.BeautifulSoup(p)
msgs = soup.findAll('font', {'class': 'px12', 'size': '3'})
o = []
for m in msgs:
if m.string:
o.append(m.string.strip())
msg = u' '.join(o)
return msg.replace(' ', '')
def send_mail(addrs, a, m):
for addr in addrs:
msg = u'From: ' + FROMADDR + '\r\n'
msg += u'To: ' + addr + '\r\n'
msg += u'Subject: ' + a + u'の運行情報\r\n\r\n'
msg += m
server = smtplib.SMTP('localhost')
server.sendmail(FROMADDR, addr, msg.encode('iso-2022-jp', 'ignore'))
server.quit()
def _main():
if len(sys.argv) < 3:
sys.exit('Usage: jreastcheck.py AREA ADDR1 ADDR2 ...')
url, area = _get_url(sys.argv[1])
addrs = sys.argv[2:]
msg = _get_msg(url)
if msg == NORMALMSG:
sys.exit()
_send_mail(addrs, area, msg)
if __name__ == '__main__':
_main()