{"id":24917994,"url":"https://github.com/jlgingrich/nytgametools","last_synced_at":"2025-03-28T08:28:50.591Z","repository":{"id":275324224,"uuid":"905403380","full_name":"jlgingrich/NYTGameTools","owner":"jlgingrich","description":"An F# API for various NYT word games","archived":false,"fork":false,"pushed_at":"2025-02-17T17:25:17.000Z","size":24,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-02-17T18:33:52.416Z","etag":null,"topics":["api","fsharp","nytimes"],"latest_commit_sha":null,"homepage":"https://www.nytimes.com/crosswords","language":"F#","has_issues":false,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/jlgingrich.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-12-18T18:52:57.000Z","updated_at":"2025-02-17T17:25:21.000Z","dependencies_parsed_at":"2025-02-01T18:19:09.956Z","dependency_job_id":"cfa7ef2a-5f64-401c-8a22-6598fa9a699a","html_url":"https://github.com/jlgingrich/NYTGameTools","commit_stats":null,"previous_names":["jlgingrich/nytgametools"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jlgingrich%2FNYTGameTools","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jlgingrich%2FNYTGameTools/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jlgingrich%2FNYTGameTools/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jlgingrich%2FNYTGameTools/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jlgingrich","download_url":"https://codeload.github.com/jlgingrich/NYTGameTools/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245994301,"owners_count":20706750,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["api","fsharp","nytimes"],"created_at":"2025-02-02T09:17:16.829Z","updated_at":"2025-03-28T08:28:50.581Z","avatar_url":"https://github.com/jlgingrich.png","language":"F#","funding_links":[],"categories":[],"sub_categories":[],"readme":"# NYTGameTools\n\nAn F# API for various NYT word games. Comes with a script that generates a Markdown report with the current day's solutions.\n\n## Example\n\n```fsharp\n#load \"NYTG.fsx\"\nopen NYTG\n\nopen System\n\nlet printGame (res: Result\u003cWordle.Game,'a\u003e) =\n    let game = res |\u003e Result.assertOk\n    printfn\n        \"Wordle %s\\nBy %s\\nSolution: '%s'\\n\"\n        (game.Info.PrintDate.ToShortDateString())\n        game.Info.Editor\n        game.Solution\n\n// Run on 12/31/2024\nWordle.getCurrentGame ()\n|\u003e printGame\n\nDateTime.Parse \"12/30/2024\"\n|\u003e Wordle.getGame\n|\u003e printGame\n```\n\n```text\nWordle 12/31/2024\nBy Tracy Bennett\nSolution: 'lemur'\n\nWordle 12/30/2024\nBy Tracy Bennett\nSolution: 'stare'\n```\n\n## How to use\n\nEach supported game is defined in a module that has these methods. Of these, you probably want `getCurrentGame` or, if the game supports it, `getGame`.\n\n- `getRaw`: Gets a raw unparsed JSON string description of the puzzle from NYT. Usually contains unneccessary data that are ignored when parsed.\n- `parse`: Parses the raw JSON string into a structured type that better represents the actual puzzle information and is easier to work with in F#.\n- `getCurrentGame`: Gets a description of the puzzle for the system's current date. All games provide this.\n- `getGame`: Gets a description of the puzzle on a specific date. Not all games currently provide this due to technical limitations.\n\n## Supported Games\n\n- **Connections**\n- **Connections: Sports Edition**\n- **Letter Boxed**\n  - `getGame` not supported.\n- **Spelling Bee**\n  - `getGame` not supported.\n- **Strands**\n- **Sudoko**\n  - `getGame` not supported.\n- **The Crossword**\n  - `getGame` not supported.\n- **The Mini**\n  - `getGame` not supported.\n- **Wordle**\n\n## Unsupported Games\n\n- **Tiles**\n  - Not word-based.\n  - Appears to generate puzzles on demand rather than fetch premade puzzles.\n\n## Future plans\n\n- Figure out how to access archived games for the following:\n  - Letter Boxed\n  - Spelling Bee\n  - The Crossword\n  - The Mini\n  - Sudoku (if it has them)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjlgingrich%2Fnytgametools","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjlgingrich%2Fnytgametools","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjlgingrich%2Fnytgametools/lists"}