def test_show_event(self): event = Event() event.put() path = "/events/" + str(event.key().id()) response = self.testapp.get(path) self.assertEqual(200, response.status_int)
def prepare_event_list(events: str) -> dict: """ Organize events by proposal_id and create a Event object per proposal_id :param events: list of events, see examples at (test/input/*) :return: {"80921e5f-4307-4623-9ddb-5bf826a31dd7": Proposal()} """ events_dict = {} event_list = [] for event in events.split("\n")[1:]: event_values = event.split(",") proposal_id = event_values[4] if proposal_id in events_dict.keys(): events_dict[proposal_id].events.append(event) else: events_dict[proposal_id] = Event(pid=proposal_id, events=[event]) for event in events_dict: event_list.append(events_dict[event]) return event_list
def eventHistory(): req = request.values.to_dict() trigger = req.get('trigger_id') user = User(Event(req)) modal = Modal('event_history', trigger, user) modal.open() return Response(), 200
def post(self, id): current_user_id = self.current_user_id event = Event.mc_get(id) txt = self.get_argument('txt', '') if event and event.can_admin(current_user_id) and txt: po_event_notice_new(current_user_id, id, txt) self.finish('{}')
def _event(self, id): o = Event.mc_get(id) if o and o.state > EVENT_STATE_RM: if o.zsite_id == self.zsite_id: return o return self.redirect(link(o.zsite_id)+self.request.path) return self.redirect('/')
def query_by_code(code): try: event = Event.get(Event.code == code) result = shortcuts.model_to_dict(event) except peewee.DoesNotExist: result = {} return result
def get(self, id): event = Event.mc_get(id) if event.id and event.zsite_id == self.current_user_id: if event.cid == EVENT_STATE_INIT: return self.redirect('/po/event/%s'%id) return self.render(event=event) self.redirect('/po/event')
def get(self, id): user_id = self.current_user_id po = self._po(user_id, id) if po is None: return po_zsite_id = po.zsite_id if po_zsite_id and po_zsite_id != self.zsite_id: return self.redirect( '%s/po/edit/%s'%(link(po_zsite_id), id) ) cid = po.cid if cid == CID_EVENT_FEEDBACK: self.event = Event.mc_get(po.rid) if cid == CID_NOTE: template = 'ctrl/zsite/po/note.htm' else: template = 'ctrl/zsite/po/po.htm' self.render( template, po=po, cid=po.cid, pic_list=pic_list_edit(user_id, id) )
def get(self, *args): event = Event.get_by_id(long(args[0])) if event: event.delete() self.redirect('/events')
def cast(): req = request.values.to_dict() user = User(Event(req)) modal = Modal('cast', req.get('trigger_id'), user) modal.open() return Response(), 200
def post(self, id): current_user_id = self.current_user_id event = Event.mc_get(id) txt = self.get_argument('txt', '') if event and event.can_admin(current_user_id) and txt: event_kill(current_user_id, event, txt) self.finish('{}')
def save_invite(): content = request.get_json(force=True) event_id = Event.find_by_name(content.get('event_name')).id Invite.send_invite(event_id, content.get('user_email')) return jsonify({"invite": "sent"})
def test3(): print("Test 3:") michael = User("Michael", Schedule()) michael.schedule.add_course( Course("CSCI140", EventTime(("Mon", "Wed", "Fri"), 1200, 1400), "GOL")) print(michael.schedule.courses["CSCI140"].time.in_time(1300)) # True michael.schedule.add_event(Event("Skate", EventTime(("Mon"), 1800, 1900))) print(michael)
def test_edit_event(self): event = Event(name="Event", description="Description1", location="Lisbon", date="2013-04-28", time="13:00", linkFacebook="http://www.facebook.com") event.put() ident = event.key().id() params = { 'name': "New event", 'description': "Description2", 'location': "Porto", 'date': "2013-04-28", 'time': "22:00", 'facebook_link': "http://www.google.com" } path = "/events/edit/" + str(event.key().id()) response = self.testapp.post(path, params) event = Event.get_by_id(ident) self.assertEqual(1, Event.all().count()) self.assertEqual(302, response.status_int) self.assertEqual("New event", event.name) self.assertEqual("Description2", event.description) self.assertEqual("Porto", event.location) self.assertEqual("2013-04-28", event.date) self.assertEqual("22:00", event.time) self.assertEqual("http://www.google.com", event.linkFacebook)
def list_companies(): event_id = request.args.get('event_id') Event.add_visitor(event_id) companies = Company.get_companies_sp_list(event_id) active_companies = [] for company in companies: if Event.find(event_id).subscriptable: if Payment.check_for_payment(event_id, company.id): active_companies.append(company.to_dict()) else: active_companies.append(company.to_dict()) print(active_companies) return jsonify(active_companies)
def post(self): args = event_parser.parse_args() newEvent = Event( tag = args.tag, name = args.name, description = args.description, venue = Venue.query.get_by_name(args.venue["name"]), time = args.time, date = args.date, image = args.image, gests = map(lambda gest: gest["username"], args.gests), requirement = map(lambda req: Requirement(name=req["name"],quantity=req["quantity"]), args.requirement), capacity = args.capacity, visibility = Visibility.query.get(args.visibility), owner = currentUser() ) newEvent.save() log.info("Crea un Evento con: {'tag':'%s'}" % newEvent.tag) return newEvent, 201
def display_one_event(self, date, time): """method to dislay one event """ sql = "SELECT * FROM events WHERE date = %s AND time = %s;" self.db.initialize_connection() self.db.cursor.execute(sql, (date, time)) event = self.db.cursor.fetchone() self.db.close_connection() if event: return Event(event) return False
def show_events(self, date): """method to display all the events of the day """ sql = "SELECT * FROM events WHERE date = %s;" self.db.initialize_connection() self.db.cursor.execute(sql, (date, )) events = self.db.cursor.fetchall() self.db.close_connection() for key, value in enumerate(events): events[key] = Event(value) return events
def post(current_user, self): new_event = Event(title=api.payload['title'], date=api.payload['date'], location=api.payload['location'], price=api.payload['price'], complete=False, user_id=current_user.id) db.session.add(new_event) db.session.commit() return new_event, 201
def test_new_event(self): params = { 'name': "Event", 'description': "Description", 'local': "Lisbon", 'date': "2013-04-27", 'time': "21:00", 'facebook_link': "http://www.facebook.com" } response = self.testapp.post('/events/new', params) self.assertEqual(1, Event.all().count())
def event_weekly(begin): mail = weekly_mail_pop() event_list = Event.where(state=EVENT_STATE_BEGIN).where('id>%s', begin) if event_list: last_id = event_list[-1].id event_li = event_city_list(event_list) for i in ormiter(Zsite, 'cid=%s and state>=%s' % (CID_USER, ZSITE_STATE_ACTIVE)): event_weekly_mail(i, event_li, mail) #print i.id #sys.stdout.flush() time.sleep(0.01) return last_id
def get(self, id=0): user_id = self.current_user_id if id: event = Event.mc_get(id) if not event or event.zsite_id != self.current_user_id: return self.redirect('/po/event') return po_event_edit_get(self, event) default_event = last_event_by_zsite_id(user_id) return self.render(errtip=Errtip(), default_event=default_event)
def get_events(): time = request.args.get('time') before = request.args.get('before') == 'true' try: date = datetime.datetime.fromtimestamp(float(time) / 1000.0) except OSError: date = datetime.datetime.min filter_include = request.args.get('include') == "true" tag_ids = [ Tag.get_tag(tag).id for tag in json.loads(request.args.get('tags')) ] filter_query = fn.EXISTS(TagToEvent.select().where( TagToEvent.tag.in_(tag_ids) & (TagToEvent.event == Event.id))) if not filter_include: filter_query = ~filter_query n = 100 if any(tag_ids): if before: query = Event.select().where((Event.time < date) & filter_query).order_by( Event.time.desc())[:n] else: query = Event.select().where((Event.time > date) & filter_query).order_by( Event.time)[:n] else: if before: query = Event.select().where(Event.time < date).order_by( Event.time.desc())[:n] else: query = Event.select().where(Event.time > date).order_by( Event.time)[:n] result = [to_dict(event) for event in query] if before: result = reversed(result) return jsonify(list(result))
def list(): req = request.values.to_dict() trigger = req.get('trigger_id') user = User(Event(req)) text = request.form.get('text') words = text.split() if words[0].lower() == 'list': modal = Modal('bot_list', trigger, user) modal.open() return Response(), 200 if words[0].lower() == 'configure': return botConfigure(words[1], words[2], words[3])
def create(cls, event_lookup_id, content, **__): event = Event.lookup(event_lookup_id, override_auth=True) command = DB.questions.insert(dict( e_id=event['id'], flagged=False, flag_note=[], content=content, score=0, upvotes=0, downvotes=0, comment_count=0, )).returning(*DB.questions.columns) return r2d(DB.ex(command).fetchone())
def test_new_event(self): params = { 'name': "Event", 'description': "Descrição", 'location': "Lisbon", 'date': "2013-04-27", 'time': "21:00", 'facebook_link': "http://www.facebook.com" } self.testapp.post('/events/new', params) results = Event.all().fetch(1, 0) event = results[0] self.assertEqual(1, Event.all().count()) self.assertEqual("Event", event.name) self.assertEqual(u"Descrição", event.description) self.assertEqual("Lisbon", event.location) self.assertEqual("2013-04-27", event.date) self.assertEqual("21:00", event.time) self.assertEqual("http://www.facebook.com", event.linkFacebook)
def get(self, id): po = self.po(id) if po is None: return zsite_id = self.zsite_id user_id = self.current_user_id can_admin = po.can_admin(user_id) can_view = po.can_view(user_id) if can_view and user_id: self.mark() cid = po.cid if cid == CID_PRODUCT: return self.redirect(po.user.link) if cid == CID_EVENT: zsite_tag_id = tag_name = None event = Event.mc_get(id) if event.state <= EVENT_STATE_TO_REVIEW: tag_link = '/event/to_review' else: tag_link = '/event' elif cid == CID_EVENT_NOTICE: zsite_tag_id = tag_name = None tag_link = '/%s'%po.rid else: zsite_tag_id, tag_name = zsite_tag_id_tag_name_by_po_id(po.user_id, id) if zsite_tag_id: tag_link = '/tag/%s' % zsite_tag_id else: tag_link = '/po/cid/%s'%cid prev_id, next_id = po_prev_next( po, zsite_tag_id ) buzz_reply_hide(user_id,po.id) return self.render( self.template, po=po, can_admin=can_admin, can_view=can_view, zsite_tag_id=zsite_tag_id, prev_id=prev_id, next_id=next_id, tag_name=tag_name, tag_link=tag_link )
def register_event(self, start, end, event_type_id, apartment_id): try: start = datetime.datetime.strptime(start, '%Y-%m-%d %H:%M') end = datetime.datetime.strptime(end, '%Y-%m-%d %H:%M') event = Event(start_datetime=start, end_datetime=end, event_type_id=event_type_id, apartment_id=apartment_id) db.session.add(event) db.session.commit() return event.id except exc.IntegrityError: db.session.rollback() return None
def event_weekly(begin): mail = weekly_mail_pop() event_list = Event.where(state=EVENT_STATE_BEGIN).where('id>%s', begin) if event_list: last_id = event_list[-1].id event_li = event_city_list(event_list) for i in ormiter( Zsite, 'cid=%s and state>=%s' % (CID_USER, ZSITE_STATE_ACTIVE)): event_weekly_mail(i, event_li, mail) #print i.id #sys.stdout.flush() time.sleep(0.01) return last_id
def test_delete_event(self): event = Event() event.put() self.assertEqual(1, Event.all().count()) path = "/events/delete/" + str(event.key().id()) response = self.testapp.get(path) self.assertEqual(0, Event.all().count())
def sync_media_file(): while True: cur_hour = int(time.strftime('%H')) if cur_hour >= syncconfig.start_at and cur_hour < syncconfig.stop_at: try: event = yield dbutil.do( Event.select().where((Event.syncfinish != 1) | (Event.syncfinish >> None)). order_by(+Event.createtime).get) logging.info('开始处理活动[#{0}] 的media文件'.format(event.code)) if event.mediaids: all = json.loads(event.mediaids) logging.debug('all ' + str(all)) if event.syncstatus: uploaded = json.loads(event.syncstatus) else: uploaded = [] if event.imgurls: img_urls = json.loads(event.imgurls) else: img_urls = {} to_upload = list(set(all) - set(uploaded)) logging.info('待处理media文件清单' + str(to_upload)) results = yield [ wxutil.process_temp_resource(media_id) for media_id in to_upload ] for i in range(0, len(results)): if results[i] is not None: uploaded.append(to_upload[i]) img_urls[to_upload[i]] = results[i] event.syncstatus = json.dumps(uploaded, ensure_ascii=False) event.imgurls = json.dumps(img_urls, ensure_ascii=False) logging.info('已完成media文件清单:' + str(uploaded)) if set(all) == set(uploaded): logging.info('活动[#{0}] 所有media文件已完成'.format( event.code)) else: logging.info('mediaids不存在,没有media文件需要同步') event.syncfinish = 1 yield dbutil.do(event.save) except DoesNotExist: logging.info('无待同步media文件, sleep...') yield gen.sleep(60 * 10) except Exception as e: logging.exception('同步media文件发生异常:{0}, 退出...'.format(str(e))) break else: yield gen.sleep(60 * 10)
def get(self, ident): event = Event.get_by_id(long(ident)) self.response.headers['Content-Type'] = 'application/json' eventData = { "name": event.name, "description": event.description, "location": event.location, "date": event.date.strftime('%d-%m-%Y'), "time": event.time, "facebook_link": event.linkFacebook, "image": base64.b64encode(str(event.image)) } jsonEventData = json.dumps(eventData) self.response.write(jsonEventData)
def query_fulltext_code(code): pinyin = Pinyin() initials = [] for letter in pinyin.get_initials(code, splitter=' ').lower().split(' '): if letter.isalpha(): initials.append(letter * 4) logging.debug(initials) analysed_code = pinyin.get_pinyin(code, splitter=u' ') + ' ' + ' '.join(initials) logging.debug(analysed_code) clause = "MATCH(`codepinyin`, `codepinyininitials`) AGAINST (%s)" query = yield dbutil.do(Event.select(SQL('*, ' + clause + ' AS similarity', analysed_code)).where( SQL(clause, analysed_code)).limit(4).dicts) events = [event for event in query] logging.debug(events) return events
def post(self): try: data = json.loads(self.request.body.decode()) logging.debug(data) # 默认查询第一页 page_number = data.get('page_number', 1) # 默认每页显示4条数据 items_per_page = data.get('items_per_page', 4) query = yield dbutil.do( Event.select().order_by(-Event.createtime).paginate( page_number, items_per_page).dicts) result = [event for event in query] self.write(Response(status=1, msg='ok', result=result).json()) except Exception as e: self.write(Response(msg='sorry,亲,活动查询失败').json()) logging.exception('CreateEventHandler error: {0}'.format(str(e)))
def post(self, ident): event = Event.get_by_id(long(ident)) event.name = self.request.get("name") event.description = self.request.get("description") event.local = self.request.get("local") event.date = self.request.get("date") event.time = self.request.get("time") event.link_facebook = self.request.get("facebook_link") event.eventTag = "default-tag" event.author = "default" if self.request.get("image"): event.image = db.Blob(images.resize(self.request.get("image"), 300)) db.put(event) self.redirect("/events")
def getEvent(ident): event = Event.get_by_id(long(ident)) jsonEventInfo = {} jsonEventInfo['name'] = str(event.name) jsonEventInfo['description'] = str(event.description) jsonEventInfo['local'] = str(event.local) jsonEventInfo['date'] = str(event.date) jsonEventInfo['time'] = str(event.time) jsonEventInfo['facebook_link'] = str(event.linkFacebook) jsonEventInfo['image_key'] = str(event.imageKey) jsonEventInfo['author'] = str(event.author) jsonEventInfo['image_link'] = '/events/images/' + str(ident) event = jsonEventInfo return event
def save_half_inning(self, inning): at_bats = inning.findall('atbat') for at_bat in at_bats: attrib = at_bat.attrib event = Event() event.pitcher = int(attrib['pitcher']) event.batter = int(attrib['batter']) event.description = attrib['des'] event.event = attrib['event'] event.game_id = self.game_id self.collection.add_event(event)
def get(self, state, n=1): state = int(state) qs = Event.where(state=state) total = qs.count() page, limit, offset = page_limit_offset( '/event/%s-%%s' % state, total, n, PAGE_LIMIT, ) li = qs.order_by('id desc')[offset: offset + limit] Po.mc_bind(li, 'po', 'id') self.render( stat=state, li=li, page=page, )
def get(self, state, n=1): state = int(state) qs = Event.where(state=state) total = qs.count() page, limit, offset = page_limit_offset( '/event/%s-%%s' % state, total, n, PAGE_LIMIT, ) li = qs.order_by('id desc')[offset:offset + limit] Po.mc_bind(li, 'po', 'id') self.render( stat=state, li=li, page=page, )
def get(self, n=1): qs = Event.where() total = qs.count() page, limit, offset = page_limit_offset( '/event-%s', total, n, PAGE_LIMIT, ) li = qs.order_by('id desc')[offset:offset + limit] Po.mc_bind(li, 'po', 'id') self.render( 'god/event/event_page.htm', stat=0, li=li, page=page, )
def get(self, n=1): qs = Event.where() total = qs.count() page, limit, offset = page_limit_offset( '/event-%s', total, n, PAGE_LIMIT, ) li = qs.order_by('id desc')[offset: offset + limit] Po.mc_bind(li, 'po', 'id') self.render( 'god/event/event_page.htm', stat=0, li=li, page=page, )
def post(self): try: data = json.loads(self.request.body.decode()) code = data['eventcode'] openid = data['openid'] star = None try: star = yield dbutil.do( Star.select().where((Star.eventcode == code) & (Star.openid == openid)).get) except: pass if star: if star.status == 1: # 已经关注 raise RuntimeError else: # 已经取消关注 star.status = 1 star.updatetime = datetime.datetime.now() else: # 首次关注 results = yield [ dbutil.do( Event.select( Event.id, Event.code).where(Event.code == code).get), dbutil.do( User.select( User.id, User.openid).where(User.openid == openid).get) ] event = results[0] user = results[1] star = Star(eventid=event.get_id(), eventcode=event.code, userid=user.get_id(), openid=user.openid, createtime=datetime.datetime.now(), status=1) yield dbutil.do(star.save) self.write(Response(status=1, msg='ok', result={}).json()) except RuntimeError as e: self.write(Response(msg='sorry,亲,用户已经关注该活动').json()) logging.exception('StarEventHandler error: {0}'.format(str(e))) except Exception as e: self.write(Response(msg='sorry,亲,关注活动失败').json()) logging.exception('StarEventHandler error: {0}'.format(str(e)))
def getEvent(ident): event = Event.get_by_id(long(ident)) jsonEventInfo = {} jsonEventInfo['name'] = event.name jsonEventInfo['description'] = event.description jsonEventInfo['location'] = event.location jsonEventInfo['date'] = event.date.strftime('%Y-%m-%d') jsonEventInfo['time'] = event.time jsonEventInfo['facebook_link'] = event.linkFacebook jsonEventInfo['image_key'] = event.imageKey jsonEventInfo['author'] = event.author if event.image: jsonEventInfo['image_link'] = '/events/images/' + str(ident) event = jsonEventInfo return event
def post(self, ident): event = Event.get_by_id(long(ident)) date_string = self.request.get("date") event.name = self.request.get("name") event.description = self.request.get("description") event.location = self.request.get("location") event.date = datetime.strptime(date_string, '%Y-%m-%d').date() event.time = self.request.get("time") event.linkFacebook = self.request.get("facebook_link") event.eventTag = "default-tag" event.author = "default" if self.request.get("image"): event.image = db.Blob(images.resize(self.request.get("image"), 600)) db.put(event) self.redirect("/events")
def sync_media_file(): while True: cur_hour = int(time.strftime('%H')) if cur_hour >= syncconfig.start_at and cur_hour < syncconfig.stop_at: try: event = yield dbutil.do(Event.select().where( (Event.syncfinish != 1) | (Event.syncfinish >> None)).order_by(+Event.createtime).get) logging.info('开始处理活动[#{0}] 的media文件'.format(event.code)) if event.mediaids: all = json.loads(event.mediaids) logging.debug('all ' + str(all)) if event.syncstatus: uploaded = json.loads(event.syncstatus) else: uploaded = [] if event.imgurls: img_urls = json.loads(event.imgurls) else: img_urls = {} to_upload = list(set(all) - set(uploaded)) logging.info('待处理media文件清单' + str(to_upload)) results = yield [wxutil.process_temp_resource(media_id) for media_id in to_upload] for i in range(0, len(results)): if results[i] is not None: uploaded.append(to_upload[i]) img_urls[to_upload[i]] = results[i] event.syncstatus = json.dumps(uploaded, ensure_ascii=False) event.imgurls = json.dumps(img_urls, ensure_ascii=False) logging.info('已完成media文件清单:' + str(uploaded)) if set(all) == set(uploaded): logging.info('活动[#{0}] 所有media文件已完成'.format(event.code)) else: logging.info('mediaids不存在,没有media文件需要同步') event.syncfinish = 1 yield dbutil.do(event.save) except DoesNotExist: logging.info('无待同步media文件, sleep...') yield gen.sleep(60 * 10) except Exception as e: logging.exception('同步media文件发生异常:{0}, 退出...'.format(str(e))) break else: yield gen.sleep(60 * 10)
def _event(self, event_id): self.event_id = event_id self.event = event = Event.mc_get(event_id) current_user_id = self.current_user_id if not event: return self.redirect('/') if event.state < EVENT_STATE_NOW: return self.redirect(event.link) state = event_joiner_state( event_id, current_user_id ) if state < EVENT_JOIN_STATE_YES: return self.redirect(event.link) return event
def data_to_list_class(data, to_class): list_answer = [] for el in data: if to_class == "user": list_answer.append(User(data=el)) elif to_class == "lesson": list_answer.append(Lesson(data=el)) elif to_class == "teacher": list_answer.append(Teacher(data=el)) elif to_class == "event": list_answer.append(Event(data=el)) elif to_class == "faculty": list_answer.append(Faculty(data=el)) elif to_class == "session": list_answer.append(Session(data=el)) elif to_class == "qualification": list_answer.append(Qualification(data=el)) return list_answer
def chaos(): #home for chaos management req = request.values.to_dict() trigger = req.get('trigger_id') user = User(Event(req)) if not req.get('text'): #Manage Personal Chaos Settings modal = Modal('chaos', trigger, user) modal.open() elif req.get('text') == 'admin': #Manage Overall Chaos modal = Modal('chaos_admin', trigger, user) modal.open() elif req.get('text') == 'users': modal = Modal('profile', trigger, user) modal.open() return Response(), 200
def index(self): now = datetime.datetime.now() # up and coming fixtures user = users.get_current_user() comments = Comment.all() comments.order("-commented_at") self.comments = comments.fetch(10) # profile = models.Profile.load(user) # profile = web.getuserprofile(self) events = Event.all() events.order("-event_start") self.events = events.fetch(10) categorys = db.GqlQuery("SELECT * FROM Category ORDER BY type ASC") # sorted all sports self.categorys = categorys.fetch(10) # leagues = None # teams = None totalusers = db.GqlQuery("SELECT * FROM Profile") # total profiles totalusercount = totalusers.count() topusers = db.GqlQuery("SELECT * FROM Profile")
def post(self): try: data = json.loads(self.request.body.decode()) code = data['eventcode'] openid = data['openid'] star = None try: star = yield dbutil.do(Star.select().where( (Star.eventcode == code) & (Star.openid == openid) ).get) except: pass if star: if star.status == 1: # 已经关注 raise RuntimeError else: # 已经取消关注 star.status = 1 star.updatetime = datetime.datetime.now() else: # 首次关注 results = yield [ dbutil.do(Event.select(Event.id, Event.code).where(Event.code == code).get), dbutil.do(User.select(User.id, User.openid).where(User.openid == openid).get) ] event = results[0] user = results[1] star = Star( eventid=event.get_id(), eventcode=event.code, userid=user.get_id(), openid=user.openid, createtime=datetime.datetime.now(), status=1 ) yield dbutil.do(star.save) self.write(Response(status=1, msg='ok', result={}).json()) except RuntimeError as e: self.write(Response(msg='sorry,亲,用户已经关注该活动').json()) logging.exception('StarEventHandler error: {0}'.format(str(e))) except Exception as e: self.write(Response(msg='sorry,亲,关注活动失败').json()) logging.exception('StarEventHandler error: {0}'.format(str(e)))