def __init__(self): self.sr = SherpaRomeoSearch() self.error_messages = [] self.failed_tests = 0 self.passed_tests = 0
def sherpa_romeo_publisher_process(form, field, submit=False, fields=None): value = field.data or '' if value == "" or value.isspace(): return s = SherpaRomeoSearch() s.search_publisher(value) if s.error: field.add_message(s.error_message, state='info') conditions = s.parser.get_publishers(attribute='conditions') if conditions is not None and s.get_num_hits() == 1: conditions = conditions[0] else: conditions = [] if conditions != []: conditions_html = "<u>Conditions</u><br><ol>" if isinstance(conditions['condition'], str): conditions_html += "<li>" + conditions['condition'] + "</li>" else: for condition in conditions['condition']: conditions_html += "<li>" + condition + "</li>" copyright_links = s.parser.get_publishers(attribute='copyrightlinks') if copyright_links is not None and copyright_links != []: copyright_links = copyright_links[0] else: copyright_links = None if isinstance(copyright_links, list): copyright_links_html = "" for copyright_link in copyright_links['copyrightlink']: copyright_links_html += ('<a href="' + copyright_link['copyrightlinkurl'] + '">' + copyright_link['copyrightlinktext'] + "</a><br>") elif isinstance(copyright_links, dict): if isinstance(copyright_links['copyrightlink'], list): for copyright_link in copyright_links['copyrightlink']: copyright_links_html = ( '<a href="' + copyright_link['copyrightlinkurl'] + '">' + copyright_link['copyrightlinktext'] + "</a><br>") else: copyright_link = copyright_links['copyrightlink'] copyright_links_html = ('<a href="' + copyright_link['copyrightlinkurl'] + '">' + copyright_link['copyrightlinktext'] + "</a><br>") home_url = s.parser.get_publishers(attribute='homeurl') if home_url is not None and home_url != []: home_url = home_url[0] home_url = '<a href="' + home_url + '">' + home_url + "</a>" else: home_url = None info_html = "" if home_url is not None: info_html += "<p>" + home_url + "</p>" if conditions is not None: info_html += "<p>" + conditions_html + "</p>" if copyright_links is not None: info_html += "<p>" + copyright_links_html + "</p>" if info_html != "": field.add_message(info_html, state='info')