コード例 #1
0
ファイル: reprocess_mail.py プロジェクト: nanotone/spoked
import pymongo

import pipeline
import user

db = pymongo.Connection().spoked
user.db = db

for track in db.tracks.find({'userid': None}):
	userid = user.userid_from_sender(track['sender'])
	if userid:
		track['userid'] = userid
		track_result = pipeline.pipeline(track['_id'], db)
		print track_result
		db.users.update({'_id': userid}, {'$inc': {'total_duration': track_result['duration']}})
		db.tracks.save(track)
		print track['sender'], userid
コード例 #2
0
ファイル: fetch_mail.py プロジェクト: nanotone/spoked
	unseen_mailids = set(yes.list_msgs(attachment=True)) - seen_mailids

	for mailid in unseen_mailids:
		print "Fetching message", mailid
		msg = yes.get_msg(mailid)
		sender = gmail.parse_sender(msg['From'])
		if sender[0] == '*****@*****.**':
			text = gmail.get_first_text(msg)
			match = re.search(r'([^<>]+)uses MotionX-GPS', text)
			if match:
				sender = ('', match.group(1).strip())

		gpx = gmail.get_attachment(msg, 'gpx')
		mail_time = time.mktime(email.utils.parsedate(msg['Date']))

		userid = user.userid_from_sender(sender)
		doc = {'mailid': mailid, 'time': mail_time, 'sender': sender, 'gpx_complete': False,
		       'userid': userid}
		db.tracks.update({'mailid': mailid}, doc, upsert=True)

		track_id = db.tracks.find_one({'mailid': mailid})['_id']
		gpx_path = 'data/gpx/%s.gpx' % track_id

		with open(gpx_path, 'w') as f:
			f.write(gpx.get_payload(decode=True))

		#kmz = gmail.get_attachment_by_ext(msg, 'kmz')
		#with open('%d.kmz' % mailid, 'w') as f:
		#	f.write(kmz.get_payload(decode=True))

		track_result = pipeline.pipeline(track_id, db)