def post(self): user = users.get_current_user() if user: pass else: self.redirect(users.create_login_url(self.request.uri)) msg_job_queue_name= DEFAULT_MESSAGING_JOB_NAME msg_job = MessagingJob(parent=messagingJob_key(msg_job_queue_name)) msg_job.owner = users.get_current_user() msg_job.note = self.request.get('content') if self.request.get('date_type') == 'lunar': try: msg_job.date = LunarDate(int(self.request.get('year')), int(self.request.get('month')), int(self.request.get('day'))).toSolarDate() except ValueError: self.redirect('/?msg=invalid_date') return else: try: msg_job.date = date(int(self.request.get('year')), int(self.request.get('month')), int(self.request.get('day'))) LunarDate.fromSolarDate(msg_job.date.year, msg_job.date.month, msg_job.date.day).toSolarDate() except ValueError: self.redirect('/?msg=invalid_date') return lunarDate=LunarDate.fromSolarDate(msg_job.date.year,msg_job.date.month,msg_job.date.day) msg_job.lunar_month = lunarDate.month msg_job.lunar_day = lunarDate.day base_messaging_jobs_query = MessagingJob.query( ancestor=messagingJob_key(DEFAULT_MESSAGING_JOB_NAME)) messaging_jobs_query_by_user = base_messaging_jobs_query.filter( MessagingJob.owner == user) if messaging_jobs_query_by_user.count() >= MAX_ENTRIES_PER_USER: self.redirect('/?msg=exceed_user_quota') return messaging_jobs_query_by_date = base_messaging_jobs_query.filter( MessagingJob.lunar_month == msg_job.lunar_month).filter( MessagingJob.lunar_day == msg_job.lunar_day) if messaging_jobs_query_by_date.count() >= MAX_ENTRIES_PER_DAY: self.redirect('/?msg=exceed_daily_quota') return msg_job.put() self.redirect('/')