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
Beispiel #3
0
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
Beispiel #4
0
 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('{}')
Beispiel #5
0
 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('/')
Beispiel #6
0
def query_by_code(code):
    try:
        event = Event.get(Event.code == code)
        result = shortcuts.model_to_dict(event)
    except peewee.DoesNotExist:
        result = {}
    return result
Beispiel #7
0
 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')
Beispiel #8
0
    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')
Beispiel #10
0
def cast():
    req = request.values.to_dict()
    user = User(Event(req))

    modal = Modal('cast', req.get('trigger_id'), user)
    modal.open()
    return Response(), 200
Beispiel #11
0
 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('{}')
Beispiel #12
0
 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('{}')
Beispiel #13
0
 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('{}')
Beispiel #14
0
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)
Beispiel #17
0
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)
Beispiel #18
0
 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
Beispiel #19
0
 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
Beispiel #20
0
 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
Beispiel #21
0
    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
Beispiel #24
0
    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)
Beispiel #25
0
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))
Beispiel #26
0
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])
Beispiel #27
0
 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)
Beispiel #29
0
    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
        )
Beispiel #30
0
    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
Beispiel #31
0
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())
Beispiel #33
0
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)
Beispiel #35
0
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
Beispiel #36
0
 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
Beispiel #39
0
 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)))
Beispiel #40
0
 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)
Beispiel #41
0
 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,
     )
Beispiel #42
0
 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,
     )
Beispiel #43
0
 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,
     )
Beispiel #44
0
 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,
     )
Beispiel #45
0
 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")
Beispiel #48
0
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)
Beispiel #49
0
    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
Beispiel #50
0
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
Beispiel #51
0
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
Beispiel #52
0
    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")
Beispiel #53
0
 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)))