aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGertjan van den Burg <gertjanvandenburg@gmail.com>2020-11-05 23:57:10 +0000
committerGertjan van den Burg <gertjanvandenburg@gmail.com>2020-11-05 23:57:10 +0000
commita3ca9808a1d0c53ac6259bae6effb45e857c0be2 (patch)
tree4828a572aa250ab14c657ec3b85f44d3b09db231
parentFix link in readme (diff)
downloadpaper2remarkable-a3ca9808a1d0c53ac6259bae6effb45e857c0be2.tar.gz
paper2remarkable-a3ca9808a1d0c53ac6259bae6effb45e857c0be2.zip
Fixes for new NeurIPS site
-rw-r--r--paper2remarkable/providers/neurips.py34
-rw-r--r--tests/test_providers.py4
-rw-r--r--tests/test_ui.py4
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,