Exemplo n.º 1
0
        def success(result):
            events = result['events_html']

            # Catch bad results
            if (len(events) <= 0):
                return
            else:
                # Set up list of newsfeed events
                self.pets_newsfeed = []

            # Used for collapsing sequential events that are identical
            prev_type = None;
            prev_string = None;

            for event in events:
                # Extract the data from the event
                date = event['event_date']
                type = event['event_type']

                # Get the string for the event
                strings = pets.newsfeed_strings[type]
                obj = strings['primary'](event)

                # Create the array of substitutable sprintf params
                params = []

                switch = {'pet_link'    : lambda *a: params.append(format_link(event['pet_id'], event['pet_display_name'])),
                          'owner_link'  : lambda *a: params.append(format_link(event['owner_id'], event['owner_display_name'])),
                          'target_link' : lambda *a: params.append(format_link(self.pets_pet['user_id'], self.pets_pet['display_name']))}

                for param in obj['params']:
                    # Emulate switch statement
                    if param in switch:
                        switch[param]()
                    elif param in ['purchase_price', 'setfree_price', 'earned_amount', 'profit_amount']:
                        params.append(format_cash(event[param]))
                    elif param in ['bonus_price', 'bonus_amount']:
                        params.append(format_bonus(event[param]))
                    elif param == 'achievement_name':
                        params.append(pets.achievement_strings[event['achievement_type']])
                    elif param == 'gender':
                        params.append('himself' if event[param] == 'M' else 'herself')

                string = obj['string'] % tuple(params)

                if prev_type == type and prev_string == string:
                    last_event = self.pets_newsfeed[len(self.pets_newsfeed) - 1]
                    last_event['numTimes'] += 1
                    last_event['time'] = TU.format_event_time(date)
                else:
                    self.pets_newsfeed.append({'event_type' : type,
                                               'string'     : string,
                                               'numTimes'   : 1,
                                               'time'       : TU.format_event_time(date)})
                prev_type = type
                prev_string = string

            callback.success() # S3
Exemplo n.º 2
0
        def success(result):
            events = result['data'][0]

            # Catch bad results
            if (len(events) <= 0):
                return
            else:
                # Set up list of newsfeed events
                self.elections_newsfeed = []

            # Used for collapsing sequential events that are identical
            prev_type = None;
            prev_string = None;

            for event in events:
                # Extract the data from the event
                data = event['data']
                date = event['date']
                type = event['type']

                # Get the string for this event
                strings = elections.newsfeed_strings[type]
                obj = strings['primary']

                # Create the array of substitutable sprintf params
                params = []

                switch = {'project_title' : lambda *a: params.append(data['project']['title']),
                          'target_name'   : lambda *a: params.append('<a href="%s">%s</a>' % (data['target']['elections_link'], data['target']['name'])),
                          'displayname'   : lambda *a: params.append('<a href="%s">%s</a>' % (self.elections_candidate['elections_link'], self.candidate['name'])),
                          'issue_title'   : lambda *a: params.append(data['issue']['title']),
                          'issue_vote'    : lambda *a: params.append(data['issue']['pro'] if data['vote'] else data['issue']['con']),
                          'party'         : lambda *a: params.append(data['party_id'])}

                for param in obj['params']:
                    # Emulate switch statement
                    if param in switch:
                        switch[param]()
                    if param in ['votes', 'fame', 'funds', 'collaborators', 'party_line']:
                        params.append(data[param])

                string = obj['string'] % tuple(params)

                if prev_type == type and prev_string == string:
                    last_event = self.elections_newsfeed[len(self.elections_newsfeed) - 1]
                    last_event['numTimes'] += 1;
                    last_event['time'] = TU.format_event_time(date)
                else:
                    self.elections_newsfeed.append({'feed_type'  : 'candidate',
                                                    'event_type' : type,
                                                    'string'     : string,
                                                    'numTimes'   : 1,
                                                    'time'       : TU.format_event_time(date)})
                prev_type = type
                prev_string = string

            callback.success() # S3