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
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