Ejemplo n.º 1
0
    def _build_dict(self):
        data = {}
        data['notification_type'] = NotificationType.type_names[self._type]
        data['message_data'] = {}
        data['message_data']['event_key'] = self.event.key_name
        data['message_data']['event_name'] = self.event.name
        data['message_data']['match_key'] = self.match.key_name
        data['message_data']['team_keys'] = self.match.team_key_names

        if self.match.time:
            data['message_data']['scheduled_time'] = calendar.timegm(
                self.match.time.utctimetuple())
        else:
            data['message_data']['scheduled_time'] = None

        if self.match.predicted_time:
            data['message_data']['predicted_time'] = calendar.timegm(
                self.match.predicted_time.utctimetuple())
        else:
            data['message_data']['predicted_time'] = None

        current_webcasts = self.event.current_webcasts
        WebcastOnlineHelper.add_online_status(current_webcasts)
        online_webcasts = filter(lambda x: x.get('status', '') != 'offline',
                                 current_webcasts if current_webcasts else [])
        if online_webcasts:
            data['message_data']['webcast'] = online_webcasts[0]
        else:
            data['message_data']['webcast'] = None

        return data
Ejemplo n.º 2
0
    def _update_live_events_helper(cls):
        week_events = EventHelper.getWeekEvents()
        events_by_key = {}
        live_events = []
        for event in week_events:
            if event.now:
                event._webcast = event.current_webcasts  # Only show current webcasts
                for webcast in event.webcast:
                    WebcastOnlineHelper.add_online_status_async(webcast)
                events_by_key[event.key.id()] = event
            if event.within_a_day:
                live_events.append(event)

        # To get Champ events to show up before they are actually going on
        forced_live_events = Sitevar.get_or_insert(
            'forced_live_events',
            values_json=json.dumps([]))
        for event in ndb.get_multi([ndb.Key('Event', ekey) for ekey in forced_live_events.contents]):
            if event.webcast:
                for webcast in event.webcast:
                    WebcastOnlineHelper.add_online_status_async(webcast)
            events_by_key[event.key.id()] = event

        # # Add in the Fake TBA BlueZone event (watch for circular imports)
        # from helpers.bluezone_helper import BlueZoneHelper
        # bluezone_event = BlueZoneHelper.update_bluezone(live_events)
        # if bluezone_event:
        #     for webcast in bluezone_event.webcast:
        #         WebcastOnlineHelper.add_online_status_async(webcast)
        #     events_by_key[bluezone_event.key_name] = bluezone_event

        return events_by_key
    def _build_dict(self):
        data = {}
        data['message_type'] = NotificationType.type_names[self._type]
        data['message_data'] = {}
        data['message_data']['event_key'] = self.event.key_name
        data['message_data']['event_name'] = self.event.name
        data['message_data']['match_key'] = self.match.key_name
        data['message_data']['team_keys'] = self.match.team_key_names

        if self.match.time:
            data['message_data']['scheduled_time'] = calendar.timegm(self.match.time.utctimetuple())
        else:
            data['message_data']['scheduled_time'] = None

        if self.match.predicted_time:
            data['message_data']['predicted_time'] = calendar.timegm(self.match.predicted_time.utctimetuple())
        else:
            data['message_data']['predicted_time'] = None

        current_webcasts = self.event.current_webcasts
        WebcastOnlineHelper.add_online_status(current_webcasts)
        online_webcasts = filter(lambda x: x.get('status', '') != 'offline', current_webcasts if current_webcasts else [])
        if online_webcasts:
            data['message_data']['webcast'] = online_webcasts[0]
        else:
            data['message_data']['webcast'] = None

        return data
Ejemplo n.º 4
0
    def online_webcasts(self):
        current_webcasts = self.current_webcasts

        from helpers.webcast_online_helper import WebcastOnlineHelper
        WebcastOnlineHelper.add_online_status(current_webcasts)

        return filter(lambda x: x.get('status', '') != 'offline',
                      current_webcasts if current_webcasts else [])
Ejemplo n.º 5
0
    def update_event(cls, event):
        WebcastOnlineHelper.add_online_status(event.webcast)

        converted_event = EventConverter.convert(event, 3)
        deferred.defer(
            cls._patch_data,
            'live_events/{}'.format(event.key_name),
            json.dumps({key: converted_event[key] for key in ['key', 'name', 'short_name', 'webcasts']}),
            _queue="firebase")
Ejemplo n.º 6
0
 def webcast_status(self):
     WebcastOnlineHelper.add_online_status(self.current_webcasts)
     overall_status = 'offline'
     for webcast in self.current_webcasts:
         status = webcast.get('status')
         if status == 'online':
             overall_status = 'online'
             break
         elif status == 'unknown':
             overall_status = 'unknown'
     return overall_status
Ejemplo n.º 7
0
 def webcast_status(self):
     WebcastOnlineHelper.add_online_status(self.current_webcasts)
     overall_status = 'offline'
     for webcast in self.current_webcasts:
         status = webcast.get('status')
         if status == 'online':
             overall_status = 'online'
             break
         elif status == 'unknown':
             overall_status = 'unknown'
     return overall_status
Ejemplo n.º 8
0
    def get_special_webcasts(cls):  # TODO: Break this out of FirebasePusher 2017-03-01 -fangeugene
        special_webcasts_temp = Sitevar.get_by_id('gameday.special_webcasts')
        if special_webcasts_temp:
            special_webcasts_temp = special_webcasts_temp.contents.get('webcasts', [])
        else:
            special_webcasts_temp = []

        special_webcasts = []
        for webcast in special_webcasts_temp:
            WebcastOnlineHelper.add_online_status_async(webcast)
            special_webcasts.append(webcast)

        return special_webcasts
Ejemplo n.º 9
0
    def _update_live_events_helper(cls):
        week_events = EventHelper.getWeekEvents()
        events_by_key = {}
        live_events = []
        for event in week_events:
            if event.now:
                event._webcast = event.current_webcasts  # Only show current webcasts
                for webcast in event.webcast:
                    WebcastOnlineHelper.add_online_status_async(webcast)
                events_by_key[event.key.id()] = event
            if event.within_a_day:
                live_events.append(event)

        # Add in the Fake TBA BlueZone event (watch for circular imports)
        from helpers.bluezone_helper import BlueZoneHelper
        bluezone_event = BlueZoneHelper.update_bluezone(live_events)
        if bluezone_event:
            for webcast in bluezone_event.webcast:
                WebcastOnlineHelper.add_online_status_async(webcast)
            events_by_key[bluezone_event.key_name] = bluezone_event

        return events_by_key