Exemplo n.º 1
0
 def __init__(self):
     self.sr = SherpaRomeoSearch()
     self.error_messages = []
     self.failed_tests = 0
     self.passed_tests = 0
Exemplo n.º 2
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')