diff options
| author | Gertjan van den Burg <gertjanvandenburg@gmail.com> | 2020-11-05 23:57:10 +0000 |
|---|---|---|
| committer | Gertjan van den Burg <gertjanvandenburg@gmail.com> | 2020-11-05 23:57:10 +0000 |
| commit | a3ca9808a1d0c53ac6259bae6effb45e857c0be2 (patch) | |
| tree | 4828a572aa250ab14c657ec3b85f44d3b09db231 | |
| parent | Fix link in readme (diff) | |
| download | paper2remarkable-a3ca9808a1d0c53ac6259bae6effb45e857c0be2.tar.gz paper2remarkable-a3ca9808a1d0c53ac6259bae6effb45e857c0be2.zip | |
Fixes for new NeurIPS site
| -rw-r--r-- | paper2remarkable/providers/neurips.py | 34 | ||||
| -rw-r--r-- | tests/test_providers.py | 4 | ||||
| -rw-r--r-- | tests/test_ui.py | 4 |
3 files changed, 37 insertions, 5 deletions
diff --git a/paper2remarkable/providers/neurips.py b/paper2remarkable/providers/neurips.py index d76202c..08e996f 100644 --- a/paper2remarkable/providers/neurips.py +++ b/paper2remarkable/providers/neurips.py @@ -19,7 +19,13 @@ class NeurIPSInformer(Informer): meta_date_key = "citation_publication_date" + def __init__(self, *args, **kwargs): + super().__init__(*args, **kwargs) + self.new_site = False + def _format_authors(self, soup_authors): + if self.new_site: + return super()._format_authors(soup_authors, sep=",", idx=0) return super()._format_authors(soup_authors, sep=" ", idx=-1) @@ -28,6 +34,11 @@ class NeurIPS(Provider): re_abs = "^https?://papers.n(eur)?ips.cc/paper/[\d\w\-]+$" re_pdf = "^https?://papers.n(eur)?ips.cc/paper/[\d\w\-]+.pdf$" + re_abs_2 = "https://papers.n(eur)?ips.cc/paper/\d{4}/hash/[0-9a-f]{32}-Abstract.html" + re_pdf_2 = ( + "https://papers.n(eur)?ips.cc/paper/\d{4}/file/[0-9a-f]{32}-Paper.pdf" + ) + def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) self.informer = NeurIPSInformer() @@ -40,11 +51,30 @@ class NeurIPS(Provider): elif re.match(self.re_pdf, url): abs_url = url.replace(".pdf", "") pdf_url = url + elif re.match(self.re_abs_2, url): + self.informer.new_site = True + abs_url = url + pdf_url = ( + url.replace("hash", "file") + .replace("Abstract", "Paper") + .replace(".html", ".pdf") + ) + elif re.match(self.re_pdf_2, url): + self.informer.new_site = True + pdf_url = url + abs_url = ( + url.replace("file", "hash") + .replace("Paper", "Abstract") + .replace(".pdf", ".html") + ) else: raise URLResolutionError("NeurIPS", url) return abs_url, pdf_url def validate(src): - return re.fullmatch(NeurIPS.re_abs, src) or re.fullmatch( - NeurIPS.re_pdf, src + return ( + re.fullmatch(NeurIPS.re_abs, src) + or re.fullmatch(NeurIPS.re_pdf, src) + or re.fullmatch(NeurIPS.re_abs_2, src) + or re.fullmatch(NeurIPS.re_pdf_2, src) ) diff --git a/tests/test_providers.py b/tests/test_providers.py index b8582fe..d6a2408 100644 --- a/tests/test_providers.py +++ b/tests/test_providers.py @@ -232,7 +232,7 @@ class TestProviders(unittest.TestCase): def test_neurips_1(self): prov = NeurIPS(upload=False, verbose=VERBOSE) url = "https://papers.nips.cc/paper/325-leaning-by-combining-memorization-and-gradient-descent.pdf" - exp = "Platt_-_Leaning_by_Combining_Memorization_and_Gradient_Descent_1991.pdf" + exp = "Platt_-_Leaning_by_Combining_Memorization_and_Gradient_Descent_1990.pdf" filename = prov.run(url) self.assertEqual(exp, os.path.basename(filename)) @@ -282,6 +282,8 @@ class TestProviders(unittest.TestCase): prov = TandFOnline(upload=False, verbose=VERBOSE) url = "https://www.tandfonline.com/doi/pdf/10.1080/03610918.2012.625790?scroll=top&needAccess=true" exp = "Huskova_Marusiakova_-_M-Procedures_for_Detection_of_Changes_for_Dependent_Observations_2012.pdf" + filename = prov.run(url) + self.assertEqual(exp, os.path.basename(filename)) def test_html_1(self): prov = HTML(upload=False, verbose=VERBOSE) diff --git a/tests/test_ui.py b/tests/test_ui.py index e485bfe..d36c5b3 100644 --- a/tests/test_ui.py +++ b/tests/test_ui.py @@ -149,12 +149,12 @@ class TestUI(unittest.TestCase): ( NeurIPS, "https://papers.nips.cc/paper/325-leaning-by-combining-memorization-and-gradient-descent.pdf", - "https://papers.nips.cc/paper/325-leaning-by-combining-memorization-and-gradient-descent.pdf", + "https://papers.nips.cc/paper/1990/file/89f0fd5c927d466d6ec9a21b9ac34ffa-Paper.pdf", ), ( NeurIPS, "https://papers.nips.cc/paper/7796-middle-out-decoding", - "https://papers.nips.cc/paper/7796-middle-out-decoding", + "https://papers.nips.cc/paper/2018/hash/0c215f194276000be6a6df6528067151-Abstract.html", ), ( NeurIPS, |
