def post(self): uid = self.request.get("uid") email = self.request.get("email") title = self.request.get("title") access_key = self.request.get("access_key") access_secret = self.request.get("access_secret") recv = eval(self.request.get("recv")) start = self.request.get("start") count = self.request.get("count") total = self.request.get("total") doubanbot = DoubanRobot(key=DB_API_KEY, secret=DB_API_SECRET) doubanbot.login(access_key, access_secret) mail_list = doubanbot.get_mails(recv=recv, start=start, cnt=count, uid=uid, name=title) if not mail_list: if recv: # fetch send doumail self.add_fetch_task(uid, email, title, access_key, access_secret, False, 1, 35, 0, 0) return else: # fetch done. send backup to user's email mail_list = db.GqlQuery("SELECT * FROM Mail WHERE uid=:1 AND recv=:2", uid, True) recvmails = self.render_string("doumail.txt", {"mails":mail_list}) db.delete(mail_list) mail_list = db.GqlQuery("SELECT * FROM Mail WHERE uid=:1 AND recv=:2", uid, False) sendmails = self.render_string("doumail.txt", {"mails":mail_list}) db.delete(mail_list) mail.send_mail(sender=ADMIN_MAIL, to=email, subject="豆邮备份", body=""" 你的豆邮备份 """, attachments=[("收件箱.txt",recvmails),("发件箱.txt",sendmails)]) return self.add_fetch_task(uid, email, title, access_key, access_secret, recv, int(start)+int(count), count, int(total)+int(count), 60)