示例#1
0
    def ask_local_lookup(self):
        start_time = time()

        evidence = None
        fulltext_url = self.url

        license = "unknown"
        if oa_local.is_open_via_doaj_issn(self.issns):
            license = oa_local.is_open_via_doaj_issn(self.issns)
            evidence = "oa journal (via issn in doaj)"
        elif oa_local.is_open_via_doaj_journal(self.journal):
            license = oa_local.is_open_via_doaj_journal(self.journal)
            evidence = "oa journal (via journal title in doaj)"
        elif oa_local.is_open_via_datacite_prefix(self.doi):
            evidence = "oa repository (via datacite prefix)"
        elif oa_local.is_open_via_doi_fragment(self.doi):
            evidence = "oa repository (via doi prefix)"
        elif oa_local.is_open_via_url_fragment(self.url):
            evidence = "oa repository (via url prefix)"
        elif oa_local.is_open_via_license_urls(self.crossref_license_urls):
            freetext_license = oa_local.is_open_via_license_urls(self.crossref_license_urls)
            license = oa_local.find_normalized_license(freetext_license)
            evidence = "hybrid journal (via crossref license url)"  # oa_color depends on this including the word "hybrid"

        if evidence:
            my_version = OpenVersion()
            my_version.metadata_url = fulltext_url
            my_version.license = license
            my_version.source = evidence
            my_version.doi = self.doi
            self.open_versions.append(my_version)
示例#2
0
文件: product.py 项目: gamochel/oadoi
    def set_local_lookup_oa(self):
        start_time = time()

        evidence = None
        fulltext_url = self.url

        license = "unknown"
        if oa_local.is_open_via_doaj_issn(self.issns):
            license = oa_local.is_open_via_doaj_issn(self.issns)
            evidence = "oa journal (via issn in doaj)"
        elif oa_local.is_open_via_doaj_journal(self.journal):
            license = oa_local.is_open_via_doaj_journal(self.journal)
            evidence = "oa journal (via journal title in doaj)"
        elif oa_local.is_open_via_datacite_prefix(self.doi):
            evidence = "oa repository (via datacite prefix)"
        elif oa_local.is_open_via_doi_fragment(self.doi):
            evidence = "oa repository (via doi prefix)"
        elif oa_local.is_open_via_url_fragment(self.url):
            evidence = "oa repository (via url prefix)"
        elif oa_local.is_open_via_license_urls(self.crossref_license_urls):
            freetext_license = oa_local.is_open_via_license_urls(self.crossref_license_urls)
            license = oa_local.find_normalized_license(freetext_license)
            evidence = "hybrid journal (via crossref license url)"  # oa_color depends on this including the word "hybrid"

        if evidence:
            self.fulltext_url = fulltext_url
            self.evidence = evidence
            self.license = license
        if self.fulltext_url and self.license and self.license != "unknown":
            self.response_done = True
示例#3
0
文件: product.py 项目: gamochel/oadoi
 def is_subscription_journal(self):
     if oa_local.is_open_via_doaj_issn(self.issns) \
         or oa_local.is_open_via_doaj_journal(self.journal) \
         or oa_local.is_open_via_datacite_prefix(self.doi) \
         or oa_local.is_open_via_doi_fragment(self.doi) \
         or oa_local.is_open_via_url_fragment(self.url):
             return False
     return True
示例#4
0
 def doi_resolver(self):
     if not self.doi:
         return None
     if oa_local.is_open_via_datacite_prefix(self.doi):
         return "datacite"
     if self.crossref_api_modified and not "error" in self.crossref_api_modified:
         return "crossref"
     return None
示例#5
0
文件: product.py 项目: gamochel/oadoi
 def doi_resolver(self):
     if not self.doi:
         return None
     if oa_local.is_open_via_datacite_prefix(self.doi):
         return "datacite"
     return "crossref"