{"id":18709118,"url":"https://github.com/jojoee/wordcookies","last_synced_at":"2025-04-12T10:35:04.968Z","repository":{"id":62589374,"uuid":"292154784","full_name":"jojoee/wordcookies","owner":"jojoee","description":"Word Cookies helper/solver/answers","archived":false,"fork":false,"pushed_at":"2023-11-08T00:50:08.000Z","size":72,"stargazers_count":3,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2024-10-12T23:42:42.655Z","etag":null,"topics":["word","word-cookies"],"latest_commit_sha":null,"homepage":"https://wordcookies.jojoee.com/","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/jojoee.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null}},"created_at":"2020-09-02T02:10:01.000Z","updated_at":"2023-06-11T04:24:17.000Z","dependencies_parsed_at":"2023-11-08T06:20:56.995Z","dependency_job_id":"6510577f-0890-4e7d-9487-0992b6b1fd45","html_url":"https://github.com/jojoee/wordcookies","commit_stats":null,"previous_names":[],"tags_count":5,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jojoee%2Fwordcookies","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jojoee%2Fwordcookies/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jojoee%2Fwordcookies/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jojoee%2Fwordcookies/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jojoee","download_url":"https://codeload.github.com/jojoee/wordcookies/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":223512327,"owners_count":17157736,"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":["word","word-cookies"],"created_at":"2024-11-07T12:26:21.886Z","updated_at":"2024-11-07T12:26:22.613Z","avatar_url":"https://github.com/jojoee.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Word Cookies\n\nWord Cookies helper\n\n![continuous integration](https://github.com/jojoee/wordcookies/workflows/continuous%20integration/badge.svg?branch=master)\n[![PyPI version fury.io](https://badge.fury.io/py/wordcookies.svg)](https://pypi.python.org/pypi/wordcookies/)\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)\n[![codecov](https://codecov.io/gh/jojoee/wordcookies/branch/master/graph/badge.svg)](https://codecov.io/gh/jojoee/wordcookies)\n\n[![Docker Stars](https://img.shields.io/docker/stars/jojoee/wordcookies.svg?style=flat-square)](https://hub.docker.com/r/jojoee/wordcookies/)\n[![Docker Pulls](https://img.shields.io/docker/pulls/jojoee/wordcookies.svg?style=flat-square)](https://hub.docker.com/r/jojoee/wordcookies/)\n[![Image](https://images.microbadger.com/badges/image/jojoee/wordcookies.svg)](http://microbadger.com/images/jojoee/wordcookies)\n\n## Demo\n\n![Demo](https://raw.githack.com/jojoee/wordcookies/master/demo.png)\n![Demo](https://i.imgur.com/xAMDvMM.gif)\n\n## Usage\n\n### Library\n\n[Install](https://github.com/jojoee/wordcookies#installation) the package then\n\n```python\nfrom wordcookies import game\nfrom pprint import pprint\n\nword = \"word\"\nchars = game.clean(word)\nanswers = game.get_possible_answers(chars)\ng = game.group(answers)\npprint(g, width=120)\n\n\"\"\"\n{2: ['do', 'dr', 'dw', 'od', 'or', 'ow', 'rd', 'ro', 'rw', 'wd', 'wo', 'wr'],\n 3: ['dor', 'dow', 'ord', 'owd', 'owr', 'rod', 'row', 'rwd', 'wod', 'wro'],\n 4: ['drow', 'word']}\n\"\"\"\n```\n\n### CLI\n\n[Install](https://github.com/jojoee/wordcookies#installation) the package then\n\n```bash\npython -m wordcookies cli\npython -m wordcookies cli --word=\"word\"\npython -m wordcookies cli --word=\"word\" --exit\n```\n\n### Web (Docker)\n\nInstall [Docker](https://docs.docker.com/get-docker/) then run the [jojoee/wordcookies](https://hub.docker.com/repository/docker/jojoee/wordcookies/) Docker image by the command below\n\n```bash\ndocker run -p 8082:9001 --name ctn_wordcookies jojoee/wordcookies\ncurl localhost:8082\n```\n\n### Web (Docker Compose)\n\nInstall [Docker](https://docs.docker.com/get-docker/) and [Docker Compose](https://docs.docker.com/compose/install/) then\n\n```bash\ncd ./web\ndocker-compose -f docker-compose.yaml up\n```\n\n## Installation\n\n```\npip install wordcookies\n\n# or\ngit clone https://github.com/jojoee/wordcookies\ncd wordcookies\npython setup.py install\n```\n\n## Features\n\n- [x] [demo] Add cli demo gif\n- [x] [demo] Add web demo gif\n- [x] [ci] setup continuous integration\n- [x] [cd] setup continuous delivery\n- [x] [pypi] Deploy to https://pypi.org/project/wordcookies/\n- [ ] [test] Add more test\n- [x] [cli] add Usage section\n- [ ] [web][docker] use Python base image instead of current\n- [ ] [web][docker] generate dict while building a Docker image\n- [x] [web] add web version\n- [x] [web][docker] add Docker support\n- [x] [web][cache] with file and Redis\n- [ ] [web][cache] pre-caching most common word\n- [x] [web] enhance UI\n- [x] [dict] using nltk data is not good enough, so need to combine with \"ahmadly/WordCookiesCheat\" (you can try with beginner level, some word is missing)\n- [ ] [web] add e2e test\n- [ ] [web] compress data when saving into Redis\n\n## Development\n\n```bash\nconda -V\nconda deactivate\nconda remove --name wordcookies --all\nconda create --name wordcookies python=3.7.5\nconda activate wordcookies\npython -V\npip list\n\n# lib, dev\npip install -r requirements.txt\nPYTHONPATH=\"$PWD\" python wordcookies/cli.py\npip freeze \u003e requirements.txt\n\n# lib, test\nconda remove --name wordcookies_test --all\nconda create --name wordcookies_test python=3.7.5\nconda activate wordcookies_test\npip install -r requirements.txt\npython -m flake8 --ignore=E501 wordcookies tests\npython -m pytest tests --cov=./ --cov-report=xml\npip install .\npython -m wordcookies cli\npython -m wordcookies cli --word=\"word\"\npython -m wordcookies cli --word=\"word\" --exit\n\n# lib, test pypi\npip install twine # package for publishing\npython setup.py sdist bdist_wheel # build the package\n\n# web\ncd ./web\nconda remove --name wordcookies_web --all\nconda create --name wordcookies_web python=3.7.5\nconda activate wordcookies_web\npip install -r requirements.txt\nuvicorn main:app --reload --port 9002 # dev + hot reload\nuvicorn main:app --port 9002 \u0026 # dev\npython main.py # run on prod\n\n# web, util\nlsof -i -n -P | grep 9002\ndocker run -p 6379:6379 --name ctn_redis -d redis:6.0.8\n\n# web, Cocker\ncd ./web\ndocker build -f Dockerfile -t jojoee/wordcookies:dev .\ndocker run -p 8082:9001 --name ctn_wordcookies jojoee/wordcookies:dev\ndocker run -p 8082:9001 --name ctn_wordcookies jojoee/wordcookies\ndocker start ctn_wordcookies\nhttp://localhost:8082/healthcheck\nhttp://localhost:8082/404\n\n# web, Docker Compose\ndocker-compose -f docker-compose.yaml up\ndocker-compose -f docker-compose.dev.yaml up --build\ndocker-compose -f docker-compose.dev.yaml up\n```\n\n## Reference\n- [Word Cookies!®](https://play.google.com/store/apps/details?id=com.bitmango.go.wordcookies\u0026hl=en)\n- [Word Cookies!®](https://itunes.apple.com/us/app/word-cookies/id1153883316?mt=8)\n- https://github.com/ahmadly/WordCookiesCheat\n- Data for building word dictionary\n  - https://www.nltk.org/nltk_data/\n  - https://github.com/ahmadly/WordCookiesCheat\n  - https://www.nltk.org/data.html\n  - https://github.com/dwyl/english-words\n  - https://stackoverflow.com/questions/2213607/how-to-get-english-language-word-database\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjojoee%2Fwordcookies","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjojoee%2Fwordcookies","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjojoee%2Fwordcookies/lists"}