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
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)