thisisparker / xword-dl

⬛⬜⬛ Command line tool to scrape crosswords from online solvers and save them as .puz files ⬛⬜⬛
MIT License
147 stars 32 forks source link

add downloader for Mc Kinsey crosswords #76

Closed iNtEgraIR2021 closed 1 year ago

iNtEgraIR2021 commented 2 years ago

Hi @thisisparker

As mentioned in #63 I struggled to add a downloader for crosswords published (every Tuesday) by Mc Kinsey.

I finally managed to do so. Hope you might have the time to test this. xword-dl mck should work.

Regards,

Petra

iNtEgraIR2021 commented 2 years ago

off-topic

I also recently discovered the source used by the crosswords published by major German news outlet 'Der Spiegel' (The mirror -> in English)[^1]

They use json data available at this endpoint: https://spiele.spiegel.de/games/spiegel_Crosswords/js/data/levels/c003/YYYY-MM-DD_9x9.json?_=1.13.11 (replace 'YYYY-MM-DD' with e.g. '2022-11-19'). The schema seems to be similar to the one used by 'Raetselzentrale'.

Unfortunately I won't be able to dig any deeper into this any time soon. However I'd like to pass on my insights for future readers.

click to expand ```json { "id": 10436, "crosswords": { "no": "010436", "difficulty": 3, "created": "2022-10-13", "start": "2022-11-19", "partner": "spiegel.de", "cols": 9, "rows": 9, "clues": [ { "id": 1, "col": 0, "row": 0, "s": [ 0, 1 ], "e": [ 8, 1 ], "t": "Hobby-\nheim-\nwerkerin" }, { "id": 2, "col": 0, "row": 2, "s": [ 1, 2 ], "e": [ 7, 2 ], "t": "zum Ab-\nschluss\ngebracht" }, { "id": 3, "col": 0, "row": 3, "s": [ 1, 3 ], "e": [ 3, 3 ], "t": "stehendes\nBinnen-\ngewässer" }, { "id": 4, "col": 0, "row": 4, "s": [ 1, 4 ], "e": [ 2, 4 ], "t": "span.\nmännl.\nArtikel" }, { "id": 5, "col": 0, "row": 6, "s": [ 0, 5 ], "e": [ 2, 5 ], "t": "der Bund\nfürs\nLeben" }, { "id": 6, "col": 0, "row": 8, "s": [ 0, 7 ], "e": [ 4, 7 ], "t": "polynes.\nInsel-\ngruppe" }, { "id": 7, "col": 1, "row": 0, "s": [ 1, 1 ], "e": [ 1, 8 ], "t": "im Voraus\nzu er-\nkennen" }, { "id": 8, "col": 2, "row": 0, "s": [ 2, 1 ], "e": [ 2, 5 ], "t": "das Un-\nsterbliche" }, { "id": 9, "col": 2, "row": 6, "s": [ 3, 6 ], "e": [ 8, 6 ], "t": "altägypt.\nKönigs-\ntitel" }, { "id": 10, "col": 2, "row": 8, "s": [ 3, 8 ], "e": [ 8, 8 ], "t": "Braten-\nteller" }, { "id": 11, "col": 3, "row": 0, "s": [ 3, 1 ], "e": [ 3, 3 ], "t": "aromati-\nsches\nGetränk" }, { "id": 12, "col": 3, "row": 4, "s": [ 4, 4 ], "e": [ 6, 4 ], "t": "Platz-\ndeckchen" }, { "id": 13, "col": 3, "row": 5, "s": [ 3, 6 ], "e": [ 3, 8 ], "t": "Unterhal-\ntungs-\nmusik\n(Kw.)" }, { "id": 14, "col": 4, "row": 0, "s": [ 4, 1 ], "e": [ 4, 2 ], "t": "Kfz-\nZeichen:\nLübben" }, { "id": 15, "col": 4, "row": 3, "s": [ 4, 4 ], "e": [ 4, 8 ], "t": "Halstuch" }, { "id": 16, "col": 5, "row": 0, "s": [ 5, 1 ], "e": [ 5, 2 ], "t": "Kfz-\nZeichen:\nErding" }, { "id": 17, "col": 5, "row": 3, "s": [ 6, 3 ], "e": [ 8, 3 ], "t": "Schüler-\ngrad\n(Budo)" }, { "id": 18, "col": 5, "row": 5, "s": [ 6, 5 ], "e": [ 8, 5 ], "t": "häufig,\nviele\nMale" }, { "id": 19, "col": 5, "row": 7, "s": [ 6, 7 ], "e": [ 8, 7 ], "t": "Teil\neines\nBühnen-\nstücks" }, { "id": 20, "col": 6, "row": 0, "s": [ 6, 1 ], "e": [ 6, 8 ], "t": "Schul-\nleitung" }, { "id": 21, "col": 7, "row": 4, "s": [ 7, 5 ], "e": [ 7, 8 ], "t": "nachweis-\nbare\nTatsache" }, { "id": 22, "col": 8, "row": 0, "s": [ 7, 0 ], "e": [ 7, 3 ], "t": "Innen-\nstadt" }, { "id": 23, "col": 8, "row": 2, "s": [ 8, 3 ], "e": [ 8, 8 ], "t": "Zombies" } ], "solutions": [ { "id": 1, "col": 7, "row": 0 }, { "id": 2, "col": 2, "row": 4 }, { "id": 3, "col": 5, "row": 8 }, { "id": 4, "col": 4, "row": 2 }, { "id": 5, "col": 4, "row": 5 }, { "id": 6, "col": 1, "row": 5 }, { "id": 7, "col": 5, "row": 4 }, { "id": 8, "col": 7, "row": 5 } ], "solved": [ [ "", "", "", "", "", "", "", "C", "" ], [ "B", "A", "S", "T", "L", "E", "R", "I", "N" ], [ "", "B", "E", "E", "N", "D", "E", "T", "" ], [ "", "S", "E", "E", "", "", "K", "Y", "U" ], [ "", "E", "L", "", "S", "E", "T", "", "N" ], [ "E", "H", "E", "", "C", "", "O", "F", "T" ], [ "", "B", "", "P", "H", "A", "R", "A", "O" ], [ "S", "A", "M", "O", "A", "", "A", "K", "T" ], [ "", "R", "", "P", "L", "A", "T", "T", "E" ] ], "letters": [], "import_file_date": "2022-09-29", "import_file_time": "21:32:22:0", "import_file_name": "fcs/spiegel/2022-10-13/03491bis03582_spiegel_9x9/crossword_03508_raetsel4u_kr3m_spiegel_9x9_d4_DE.fcs", "converted_file_date": "2022-10-13", "converted_file_time": "09:38:31:0", "licensed_for": "spiegel.de", "words": 23, "solution_word": "CLANCHEF", "empty_fields": 0, "double_challenges": 0, "converter_version": "0.0.9", "supplier": "raetsel4u" } } ```

[^1]: also see here: https://en.wikipedia.org/wiki/Der_Spiegel

iNtEgraIR2021 commented 1 year ago

Thanks for your feedback @thisisparker 👍🏼 I tried to apply everything.