1234567891011121314151617181920212223242526272829303132333435363738394041424344 |
- import json
- import sys
- from itertools import imap
- from splinter import Browser
- from dirset import DirSet
- def read_pass_file(fname):
- with open(fname) as buf:
- user = buf.readline().strip()
- pwd = buf.readline().strip()
- return user, pwd
- def get_calls(user, password):
- with Browser('phantomjs') as b:
- b.visit('https://www.messagenet.com/')
- b.fill('userid', user)
- b.fill('password', password)
- b.find_by_css('#login button').click()
- b.visit('https://www.messagenet.com/voip/log/?chiamate=ricevute')
- rows = b.find_by_css('.log .statusKO')
- for r in rows:
- cells = r.find_by_tag('td')[1:3]
- yield tuple(imap(lambda c: c.value, cells))
- def save_calls(calls, datadir):
- s = DirSet(datadir)
- for call in imap(lambda t: '\t'.join(t), calls):
- if s.add(call): # wasn't existing before
- print 'NEW: %s' % call
- if __name__ == '__main__':
- conf = json.load(open('defaultconf.json'))
- if len(sys.argv) == 2:
- conf.update(json.load(open(sys.argv[1])))
- user, password = read_pass_file(conf['credfile'])
- calls = tuple(get_calls(user, password))
- save_calls(calls, conf['datadir'])
|