diff --git a/README.md b/README.md index 51117a2..1174e9b 100644 --- a/README.md +++ b/README.md @@ -19,7 +19,7 @@ Supported outlets: |*Guardian Weekend*|`grdw`|✔️||✔️| |*Los Angeles Times*|`lat`|✔️|✔️|| |*The McKinsey Crossword*|`mck`|✔️|✔️|✔️| -|*The Modern Crossword*|`mod`|✔️||✔️| +|*The Modern Crossword*|`mod`|✔️|✔️|✔️| |*New York Times*|`nyt`|✔️|✔️|✔️| |*New York Times Mini*|`nytm`|✔️|✔️|✔️| |*New York Times Variety*|`nytv`|✔️|✔️|✔️| diff --git a/xword_dl/downloader/puzzlesocietydownloader.py b/xword_dl/downloader/puzzlesocietydownloader.py index 6af69a3..fa1bfba 100644 --- a/xword_dl/downloader/puzzlesocietydownloader.py +++ b/xword_dl/downloader/puzzlesocietydownloader.py @@ -1,5 +1,6 @@ import datetime import json +import urllib import requests @@ -18,6 +19,13 @@ def init(self, **kwargs): @staticmethod def matches_url(url_components): return 'puzzlesociety.com' in url_components.netloc and 'modern-crossword' in url_components.path + + def find_by_date(self, dt): + url_format = dt.strftime('%Y/%m/%d') + guessed_url = urllib.parse.urljoin( + 'https://www.puzzlesociety.com/crossword-puzzles/modern-crossword/', + url_format) + return guessed_url def find_latest(self): return 'https://www.puzzlesociety.com/crossword-puzzles/modern-crossword' diff --git a/xword_dl/downloader/wsjdownloader.py b/xword_dl/downloader/wsjdownloader.py index b25cdff..911753b 100644 --- a/xword_dl/downloader/wsjdownloader.py +++ b/xword_dl/downloader/wsjdownloader.py @@ -51,7 +51,7 @@ def find_solver(self, url): return self.find_solver(puzzle_link) def fetch_data(self, solver_url): - data_url = solver_url.replace('index.html', 'data.json') + data_url = solver_url.rsplit('/', maxsplit=1)[0] + '/data.json' return requests.get(data_url, headers=self.headers).json()['data'] def parse_xword(self, xword_data): diff --git a/xword_dl/version b/xword_dl/version index ed55b06..aed7577 100644 --- a/xword_dl/version +++ b/xword_dl/version @@ -1 +1 @@ -2023.1.19 +2023.1.25