{"id":15826294,"url":"https://github.com/danmindru/cncnet-map-downloader.js","last_synced_at":"2025-07-07T21:40:12.115Z","repository":{"id":35037352,"uuid":"192412229","full_name":"danmindru/cncnet-map-downloader.js","owner":"danmindru","description":"Downloads \u0026 unzips all cncnet maps for a given command and conquer game (i.e. Yuri's Revenge)","archived":false,"fork":false,"pushed_at":"2023-03-03T04:43:12.000Z","size":177,"stargazers_count":5,"open_issues_count":11,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-06-29T11:48:17.865Z","etag":null,"topics":["cli","cncnet","command-and-conquer","command-line-tool","linux","macos","redalert","redalert2","tiberian-dawn","tiberian-sun","windows","yuri","yurisrevenge"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"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/danmindru.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":"2019-06-17T20:13:46.000Z","updated_at":"2025-05-10T05:42:57.000Z","dependencies_parsed_at":"2024-10-26T14:09:03.032Z","dependency_job_id":"9ae2c8ea-cf39-411c-8ec4-186ce36cb117","html_url":"https://github.com/danmindru/cncnet-map-downloader.js","commit_stats":{"total_commits":65,"total_committers":5,"mean_commits":13.0,"dds":0.523076923076923,"last_synced_commit":"ebc9d4ca6b89277cdcd045513681c561ee5eeb68"},"previous_names":[],"tags_count":12,"template":false,"template_full_name":null,"purl":"pkg:github/danmindru/cncnet-map-downloader.js","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/danmindru%2Fcncnet-map-downloader.js","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/danmindru%2Fcncnet-map-downloader.js/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/danmindru%2Fcncnet-map-downloader.js/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/danmindru%2Fcncnet-map-downloader.js/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/danmindru","download_url":"https://codeload.github.com/danmindru/cncnet-map-downloader.js/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/danmindru%2Fcncnet-map-downloader.js/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":264149712,"owners_count":23564518,"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":["cli","cncnet","command-and-conquer","command-line-tool","linux","macos","redalert","redalert2","tiberian-dawn","tiberian-sun","windows","yuri","yurisrevenge"],"created_at":"2024-10-05T09:44:03.303Z","updated_at":"2025-07-07T21:40:12.090Z","avatar_url":"https://github.com/danmindru.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"[![npm](https://img.shields.io/npm/v/cncnet-map-downloader.js.svg)](https://www.npmjs.com/package/cncnet-map-downloader.js)\n\n# cncnet-map-downloader.js ⬇️💻\n\nDownloads all maps from [cncnet.org](https://cncnet.org) into a directory of your choice.\n\n### Usage\n\nGrab the latest binary release on [the release page](https://github.com/danmindru/cncnet-map-downloader.js/releases) 💽.\n\nDouble-click your favorite executable or run the executable through the command line. You will be guided through the options (see demo).\n\n- By default, it only downloads Yuri (yr) maps, but can be configured to download other types. See config below.\n- If the process is somehow killed, it will resume downloading maps that haven't been downloaded yet (skips previously downlaoded maps).\n- It sorts maps in directories by name (alpha numeric).\n- It checks for duplicate maps (size, id, sha).\n\n### Demo\n\n![cncnet-map-downloader linux](https://user-images.githubusercontent.com/1515742/88851006-6ed28980-d1ec-11ea-857e-e6e5b0ec0e2c.gif)\n\n| Windows preview                                                                                                                 | Mac preview                                                                                                                     |\n| ------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------- |\n| \u003cimg src=\"https://user-images.githubusercontent.com/1515742/88851026-75610100-d1ec-11ea-9a7f-5c1eaedc7ee8.gif\" width=\"500px\" /\u003e | \u003cimg src=\"https://user-images.githubusercontent.com/1515742/88851022-74c86a80-d1ec-11ea-95dd-7961906351c7.gif\" width=\"500px\" /\u003e |\n\n#### Build it yourself\n\nClone the repo, then run `npm install`. \u003cbr/\u003e\nYou can start a download with `npm run download`. Downloads can be configured in `package.json` under scripts.\n\n### Configuration\n\nYou can configure the downloader through enviornment variables.\n\n- `MAP_AGE` - the age of the map in months (default: not specified - will get all). Example: `12` will get maps that are 1 year old and newer.\n- `GAME_TYPE` - the type of maps to download (default: `yr`). Available: `ts`, `ra`, `d2`, `td`, `dta`.\n- `DESTINATION_DIR` - the location to download files (default: `cncnet-maps`).\n\n#### Configuration examples\n\n- Get all Yuri's Revenge / Red Alert 2 maps in a custom directory\n\n```bash\nDESTINATION_DIR=my-yuri-maps ./cncnet-map-downloader-js-x-x-x-macos\n```\n\n- Get all Red alert maps\n\n```bash\nGAME_TYPE=ra ./cncnet-map-downloader-js-x-x-x-macos\n```\n\n- Get all Tiberian Sun maps, not older than 1 year\n\n```bash\nGAME_TYPE=ts MAP_AGE=12 ./cncnet-map-downloader-js-x-x-x-macos\n```\n\n##### Dev config\n\n- `RUN_UNPACKAGED` - run the script in unpacked mode[1] (default: `false`; see `npm run download` in `package.json` for an example).\n- `DEBUG` - print additional debug info.\n\n\u003e [1] essentially, run the non-binary script. Requires node v12.9+ \u0026 `npm install`\n\n### About the method\n\nUses the cncnet search endpoint to retrieve all existing maps, then requests each map zip individually with a delay to be nice on the server.\n\nPreviously, scarping was considered, but not necessary at this point in time.\n\n### Debugging\n\nRun\n\n```\nDEBUG=true MAX_NUMBER_OF_MAPS=5 REQUEST_DELAY=5000 MAP_AGE=1 RUN_UNPACKAGED=true GAME_TYPE=yr DESTINATION_DIR=./cncnet-yuri-maps node --inspect-brk ./scripts/main.js\n```\n\nAnd open `chrome://inspect` to debug the node process.\n\n### Other art\n\nCheck out the [cncnet search](https://mapdb.cncnet.org/search/?game=yr\u0026search=), where you can search and download maps.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdanmindru%2Fcncnet-map-downloader.js","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdanmindru%2Fcncnet-map-downloader.js","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdanmindru%2Fcncnet-map-downloader.js/lists"}