def build_result_element(field_info, result): content = '' name = field_info[0] if not hasattr(result, name) and len(field_info) > 1: name = field_info[1] if hasattr(result, name): try: content = str(getattr(result, name, '')) except UnicodeEncodeError: content = getattr(result, name, '').encode('ascii', 'ignore') if name == "enddate": if custom_date_format(content) == 'Present': content = '' elif name == "description": if result_set.args.get('fulldesc', '') != '1': content = content[:300] elif name in ["eventrangestart", "eventrangeend"]: content = content.replace('T', ' ').strip('Z') return (name, content, None)
def add_result(self, result, result_set={}): """Add an item dict to the items array.""" #result is instance of SearchResult f1 = 1 first_zip = 1 item = {} for field_info in self.item_fields: name = field_info[0] if (result_set.is_hoc or result_set.is_rss) and name.lower( ) not in utils.unique_list(STANDARD_FIELDS + HOC_FIELDS): continue if result_set.is_exelis and name.lower() not in utils.unique_list( STANDARD_FIELDS + EXELIS_FIELDS): continue if result_set.is_cal and name.lower() not in CALENDAR_FIELDS: continue if (len(name) < 2) and result_set.is_hoc and result_set.is_cal: continue if (not result_set.is_hoc) and (not result_set.is_rss) and ( not result_set.is_cal ) and ( not result_set.is_exelis ) and (API_FIELD_NAMES_MAP.get(name, name) == "appropriateFors" or API_FIELD_NAMES_MAP.get(name, name) == "activityTypes" or API_FIELD_NAMES_MAP.get(name, name) == "categoryTags" or API_FIELD_NAMES_MAP.get(name, name) == "Distance" or API_FIELD_NAMES_MAP.get(name, name) == "sponsoringOrganizationUrl" or API_FIELD_NAMES_MAP.get( name, name) == "affiliateOrganizationName" or API_FIELD_NAMES_MAP.get( name, name) == "affiliateOrganizationUrl" or API_FIELD_NAMES_MAP.get(name, name) == "opportunityId" or API_FIELD_NAMES_MAP.get(name, name) == "opportunityType" or API_FIELD_NAMES_MAP.get(name, name) == "registerType" or API_FIELD_NAMES_MAP.get(name, name) == "occurrenceId" or API_FIELD_NAMES_MAP.get(name, name) == "occurrenceDuration" or API_FIELD_NAMES_MAP.get(name, name) == "eventId" or API_FIELD_NAMES_MAP.get(name, name) == "eventName" or API_FIELD_NAMES_MAP.get(name, name) == "frequencyURL" or API_FIELD_NAMES_MAP.get(name, name) == "frequency" or API_FIELD_NAMES_MAP.get(name, name) == "availabilityDays" or API_FIELD_NAMES_MAP.get(name, name) == "audienceTags" or API_FIELD_NAMES_MAP.get(name, name) == "volunteerHubOrganizationUrl" or API_FIELD_NAMES_MAP.get( name, name) == "volunteerHubOrganizationName" or API_FIELD_NAMES_MAP.get(name, name) == "volunteersNeeded" or API_FIELD_NAMES_MAP.get( name, name) == "affiliateOrganizationID" or API_FIELD_NAMES_MAP.get(name, name) == "rsvpCount" or API_FIELD_NAMES_MAP.get(name, name) == "sexrestrictedto" or API_FIELD_NAMES_MAP.get(name, name) == "eventName" or API_FIELD_NAMES_MAP.get(name, name) == "eventId" or API_FIELD_NAMES_MAP.get(name, name) == "scheduleType"): continue if (result_set.is_hoc or result_set.is_cal or result_set.is_exelis or result_set.is_rss) and (API_FIELD_NAMES_MAP.get( name, name) == "addrname1" or API_FIELD_NAMES_MAP.get( name, name) == "contactNoneNeeded"): continue if not hasattr(result, name): name = name.lower() if not hasattr(result, name) and len(field_info) > 1: name = field_info[1] if not hasattr(result, name): name = name.lower() content = getattr(result, name, '') #print name, '=', content, '<br>' if name.lower() == "enddate": if custom_date_format(content) == 'Present': content = '' elif name == "description": if result_set.args.get('fulldesc', '') != '1': content = content[:300] elif name in ["eventrangestart", "eventrangeend"]: content = content.replace('T', ' ').strip('Z') if isinstance(content, basestring): content = content.strip() # handle lists if isinstance(content, basestring) and content.find('\t') > 0: item[API_FIELD_NAMES_MAP.get(name, name)] = content.split('\t') elif API_FIELD_NAMES_MAP.get( name, name) in ARRAY_FIELDS and not isinstance(content, list): if content: item[API_FIELD_NAMES_MAP.get(name, name)] = [content] else: item[API_FIELD_NAMES_MAP.get(name, name)] = [] else: item[API_FIELD_NAMES_MAP.get(name, name)] = content self.items.append(item)
def add_result(self, result, result_set = {}): """Add an item dict to the items array.""" #result is instance of SearchResult f1 = 1 first_zip = 1 item = {} for field_info in self.item_fields: name = field_info[0] if (result_set.is_hoc or result_set.is_rss) and name.lower() not in utils.unique_list(STANDARD_FIELDS + HOC_FIELDS): continue if result_set.is_exelis and name.lower() not in utils.unique_list(STANDARD_FIELDS + EXELIS_FIELDS): continue if result_set.is_cal and name.lower() not in CALENDAR_FIELDS: continue if (len(name) < 2) and result_set.is_hoc and result_set.is_cal: continue if (not result_set.is_hoc) and (not result_set.is_rss) and (not result_set.is_cal) and (not result_set.is_exelis) and (API_FIELD_NAMES_MAP.get(name, name) == "appropriateFors" or API_FIELD_NAMES_MAP.get(name, name) == "activityTypes" or API_FIELD_NAMES_MAP.get(name, name) == "categoryTags" or API_FIELD_NAMES_MAP.get(name, name) == "Distance" or API_FIELD_NAMES_MAP.get(name, name) == "sponsoringOrganizationUrl" or API_FIELD_NAMES_MAP.get(name, name) == "affiliateOrganizationName" or API_FIELD_NAMES_MAP.get(name, name) == "affiliateOrganizationUrl" or API_FIELD_NAMES_MAP.get(name, name) == "opportunityId" or API_FIELD_NAMES_MAP.get(name, name) == "opportunityType" or API_FIELD_NAMES_MAP.get(name, name) == "registerType" or API_FIELD_NAMES_MAP.get(name, name) == "occurrenceId" or API_FIELD_NAMES_MAP.get(name, name) == "occurrenceDuration" or API_FIELD_NAMES_MAP.get(name, name) == "eventId" or API_FIELD_NAMES_MAP.get(name, name) == "eventName" or API_FIELD_NAMES_MAP.get(name, name) == "frequencyURL" or API_FIELD_NAMES_MAP.get(name, name) == "frequency" or API_FIELD_NAMES_MAP.get(name, name) == "availabilityDays" or API_FIELD_NAMES_MAP.get(name, name) == "audienceTags" or API_FIELD_NAMES_MAP.get(name, name) == "volunteerHubOrganizationUrl" or API_FIELD_NAMES_MAP.get(name, name) == "volunteerHubOrganizationName" or API_FIELD_NAMES_MAP.get(name, name) == "volunteersNeeded" or API_FIELD_NAMES_MAP.get(name, name) == "affiliateOrganizationID" or API_FIELD_NAMES_MAP.get(name, name) == "rsvpCount" or API_FIELD_NAMES_MAP.get(name, name) == "sexrestrictedto" or API_FIELD_NAMES_MAP.get(name, name) == "eventName" or API_FIELD_NAMES_MAP.get(name, name) == "eventId" or API_FIELD_NAMES_MAP.get(name, name) == "scheduleType"): continue if (result_set.is_hoc or result_set.is_cal or result_set.is_exelis or result_set.is_rss) and (API_FIELD_NAMES_MAP.get(name, name) == "addrname1" or API_FIELD_NAMES_MAP.get(name, name) == "contactNoneNeeded"): continue if not hasattr(result, name): name = name.lower() if not hasattr(result, name) and len(field_info) > 1: name = field_info[1] if not hasattr(result, name): name = name.lower() content = getattr(result, name, '') #print name, '=', content, '<br>' if name.lower() == "enddate": if custom_date_format(content) == 'Present': content = '' elif name == "description": if result_set.args.get('fulldesc', '') != '1': content = content[:300] elif name in ["eventrangestart", "eventrangeend"]: content = content.replace('T', ' ').strip('Z') if isinstance(content, basestring): content = content.strip() # handle lists if isinstance(content, basestring) and content.find('\t') > 0: item[API_FIELD_NAMES_MAP.get(name, name)] = content.split('\t') elif API_FIELD_NAMES_MAP.get(name, name) in ARRAY_FIELDS and not isinstance(content, list): if content: item[API_FIELD_NAMES_MAP.get(name, name)] = [content] else: item[API_FIELD_NAMES_MAP.get(name, name)] = [] else: item[API_FIELD_NAMES_MAP.get(name,name)] = content self.items.append(item)