{ "info": { "author": "Martin Sikora", "author_email": "martin.sikora.ahoj@gmail.com", "bugtrack_url": null, "classifiers": [ "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3.2", "Programming Language :: Python :: 3.3", "Programming Language :: Python :: 3.4", "Topic :: Games/Entertainment", "Topic :: Multimedia :: Graphics", "Topic :: Utilities" ], "description": "# Minecraft Dynmap Time Machine\n\nPython CLI script in that downloads tiles from a Minecraft's Dynmap plugin HTTP server and composes one image in extremely large resolution suitable for print.\n\n![Scaled down image](https://raw.githubusercontent.com/martinsik/minecraft-dynmap-timemachine/master/doc/majncraft.3320.crop.png)\n\nThis is a scaled down and croped image form original `20736 x 13824px`. You can also [download full size 389 MB image](https://www.dropbox.com/s/hhq6jbuxyu6fmr0/majncraft.20736.full.png?dl=0). See example bellow.\n\nList of all parameter is as follows:\n\n $ dynmap-timemachine.py -h\n usage: dynmap-timemachine.py [-h] [--list-worlds] [--list-maps] [-t [THRESHOLD]] [-q] [-v]\n base_url [world] [map] [center] [boundary_size] [zoom] [dest]\n \n positional arguments:\n base_url Dynamp server URL\n world world name, use --list-worlds to list available worlds\n map map name, use --list-maps to list available maps\n center minecraft cooridnates, use format: [x,y,z]\n boundary_size size in tiles, use format: [h,v]\n zoom zoom level, 0 = maximum zoom\n dest output file name or directory\n \n optional arguments:\n -h, --help show this help message and exit\n --list-worlds list available worlds from this Dynmap server and exit\n --list-maps list available maps for this world and exit\n -t [THRESHOLD], --threshold [THRESHOLD]\n threshold for timelapse images\n -q, --quiet\n -v, --verbose\n\n## Installation\n\nMost easily install using `pip`:\n\n $ pip install dynmap_timemachine\n\n## 1. Example - capture one large image\n\nLet's say we want to download a `20736x13824`px map (286 Mpx image) from [map.majncraft.cz](http://map.majncraft.cz/) at Minecraft position `[3300,65,-2630]`.\n\n\n1. **First see what worlds are available and what's the name of the world that we want**\n\n ```\n $ dynmap-timemachine.py --list-worlds http://map.majncraft.cz/\n world - Sv\u011bt Majncraft | Overworld\n world_space - Vesm\u00edr | Space\n world_nether - Nether Reloaded\n ```\n\n We want the first world on the list called simply `world`.\n\n2. **Then list all maps avaialble for this world**\n\n ```\n $ dynmap-timemachine.py --list-worlds http://map.majncraft.cz/ world\n surface - Prostorov\u00e1 - Den\n surface_night - Prostorov\u00e1 - Noc\n populated - Os\u00eddlen\u00ed sv\u011bta - prostorov\u00e9\n flat - Ploch\u00e1 - Den\n populated_flat - Os\u00eddlen\u00ed sv\u011bta - ploch\u00e9\n ```\n \n This lists flat, isometric, cave and all other types of maps together. Map names depend on Dynmap's configuration. We want the first one called `surface` which is an isometric map.\n \n3. **Make a test image with Minecraft's coordinates**\n\n Check your coordinates on Dynmap or simply walk in Minecraft at the position that you want to capture and press F3 to see what are your Minecraft's coordinates. Then make a test image to make sure that the position captured by `minecraft-dynmap-timelapse` is correct:\n \n ```\n $ dynmap-timemachine.py http://map.majncraft.cz/ world surface \\\n [3300,65,-2630] [3,2] 0 majncraft.test.png\n ```\n \n Used parameters:\n \n - `http://map.majncraft.cz/` - Dynmap's HTTP server URL\n - `world` - World name\n - `surface` - Map name\n - `[3300,65,-2630]` - Minecraft coordiantes that will be automatically converted to tile names\n - `[3,2]` - Number of tiles I want to download in each direction from specified coordinates. That's two to the left and right, two to the top and bottom. This will actually download 6x4 grid where each tile is 128x128 pixels. In total this image will be 768x512 pixels\n - `0` - Zoom level. 0 means maximum zoom in. Number of zoom levels depend's on Dynamp's configuration\n - `majncraft.test.png` - Output file name\n \n This should generate a 768x512 image:\n \n ![Preview from 6x4 grid](https://raw.githubusercontent.com/martinsik/minecraft-dynmap-timemachine/master/doc/majncraft.3320.test.png)\n \n4. **Make a full size image in 20736x13824 resolution (162x108 tiles)**\n \n Finally, we can make the full size image:\n \n ```\n $ dynmap-timemachine.py -v http://map.majncraft.cz/ world surface \\\n [3300,65,-2630] [81,54] 0 majncraft.3320.full.png\n ```\n \n This takes a while because in total it needs to download `81 * 2 * 54 * 2 = 17496` tiles. The final image has 389 MB.\n \n ![The final image scaled down to 728px width](https://raw.githubusercontent.com/martinsik/minecraft-dynmap-timemachine/master/doc/majncraft.3320.thumb.png)\n \n You can download the [full 20736x13824 size image for this example (389 MB)](https://www.dropbox.com/s/hhq6jbuxyu6fmr0/majncraft.20736.full.png?dl=0) or a different, [smaller 16384x10240 image (168 MB)](https://www.dropbox.com/s/c6zzpv2cd26x76g/majncraft.16384.png?dl=0) if you just want to see what it looks like in full resolution.\n \n## 2. Example - create timelapse video\n\nAnother use case is creating timelapse animations from multiple images captured from a Dynmap.\n \nUsage is the same as capturing a single image but this time the last argument is not an output file name but it's a directory for timelapse images instead. File names are generated automatically. The script captures an image from Dynmap and then compares it with the last image in the directory. Only if these two are significantly different (by default 1% of pixels; you can change it with `-t|--threshold`) it saves the new image.\n \nYou can ideally schedule to run this script every few minutes when you're building something and it'll genereate series of images capturing your progress named by the time they were captured.\n \n 1. **Create a directory for timelapse images**\n \n ```\n $ mkdir images\n ```\n \n 2. **Run `dynmap-timemachine.py` periodically (eg. with `cron`)** \n \n ```\n $ dynmap-timemachine.py -v http://map.majncraft.cz/ world surface \\\n [3300,65,-2630] [4,3] 0 images/\n ```\n \n Note that this image should be relatively small because we want it to capture the map at this particular moment. That's why it can't take hours like the previous example.", "description_content_type": null, "docs_url": null, "download_url": "UNKNOWN", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/martinsik/minecraft-dynmap-timemachine", "keywords": null, "license": "MIT", "maintainer": null, "maintainer_email": null, "name": "dynmap_timemachine", "package_url": "https://pypi.org/project/dynmap_timemachine/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/dynmap_timemachine/", "project_urls": { "Download": "UNKNOWN", "Homepage": "https://github.com/martinsik/minecraft-dynmap-timemachine" }, "release_url": "https://pypi.org/project/dynmap_timemachine/0.9.5/", "requires_dist": null, "requires_python": null, "summary": "Create extremely large images from Minecraft server's Dynmap plugin.", "version": "0.9.5" }, "last_serial": 1818587, "releases": { "0.9.2": [ { "comment_text": "", "digests": { "md5": "1c0b818fad0fdb35ff2c13b69dc1c6f9", "sha256": "d13f29d2fd38fc788df416ec651294c55d679023993f44fc6048f859a9f2ca0b" }, "downloads": -1, "filename": "dynmap_timemachine-0.9.2.tar.gz", "has_sig": false, "md5_digest": "1c0b818fad0fdb35ff2c13b69dc1c6f9", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9387, "upload_time": "2015-07-27T10:08:13", "url": "https://files.pythonhosted.org/packages/ce/1c/ea0a6067678a99170ae592e0969b6c604e2effc43e759a4ab55d155a56be/dynmap_timemachine-0.9.2.tar.gz" } ], "0.9.3": [ { "comment_text": "", "digests": { "md5": "f4dd67f175909bf189d68efceb10467d", "sha256": "76e33c112cbeee1fe04cacb7ebf90fb4c9f74ad41d037b82c68571a2bc63b130" }, "downloads": -1, "filename": "dynmap_timemachine-0.9.3.tar.gz", "has_sig": false, "md5_digest": "f4dd67f175909bf189d68efceb10467d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9392, "upload_time": "2015-07-27T10:26:49", "url": "https://files.pythonhosted.org/packages/45/e6/25cfa59e611d62b4a78f2e076bc65dbc936bedfe9d805a61460ea0ca7e9e/dynmap_timemachine-0.9.3.tar.gz" } ], "0.9.4": [ { "comment_text": "", "digests": { "md5": "411fadc9a0fab9763cbabb0a175562ba", "sha256": "ad91de6b3213d317383be6437f5aff51247871a41e663f1a21d47aee1c42a297" }, "downloads": -1, "filename": "dynmap_timemachine-0.9.4.macosx-10.10-x86_64.exe", "has_sig": false, "md5_digest": "411fadc9a0fab9763cbabb0a175562ba", "packagetype": "bdist_wininst", "python_version": "any", "requires_python": null, "size": 65163, "upload_time": "2015-11-16T11:15:26", "url": "https://files.pythonhosted.org/packages/43/fe/5c269aec7afcff097f5cc5094c8c6006030898064bd6c608e240f26867b8/dynmap_timemachine-0.9.4.macosx-10.10-x86_64.exe" }, { "comment_text": "", "digests": { "md5": "69fb1d1a5f75588aa3794f8c14218a38", "sha256": "78fbf44759c821662d59b971756a4c13738cc757d23c5b5783ef1f7f51d58822" }, "downloads": -1, "filename": "dynmap_timemachine-0.9.4.tar.gz", "has_sig": false, "md5_digest": "69fb1d1a5f75588aa3794f8c14218a38", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5818, "upload_time": "2015-11-16T11:15:20", "url": "https://files.pythonhosted.org/packages/9d/af/88613eddf9e82bb005660eb57eba32ec4043ec2c4086a0db580aafd7b440/dynmap_timemachine-0.9.4.tar.gz" } ], "0.9.5": [ { "comment_text": "", "digests": { "md5": "d61313a0ff36f020aa0c71c4cfac654e", "sha256": "b451992eee30cb135ab83da7ecb8de7e169352481e05a3c84ab6ec866e8fc0b0" }, "downloads": -1, "filename": "dynmap_timemachine-0.9.5.macosx-10.10-x86_64.exe", "has_sig": false, "md5_digest": "d61313a0ff36f020aa0c71c4cfac654e", "packagetype": "bdist_wininst", "python_version": "any", "requires_python": null, "size": 69458, "upload_time": "2015-11-16T11:30:52", "url": "https://files.pythonhosted.org/packages/2f/f8/7ff5ef9a14cf94cf3a2ecb7583d85da3843a2972e7abe08a192a844945fc/dynmap_timemachine-0.9.5.macosx-10.10-x86_64.exe" }, { "comment_text": "", "digests": { "md5": "c1f82bf9c86e33f970ea9f0f151cc8bd", "sha256": "2fb280c33df82d707fd44438c1aa5d92105437181c1bf530c32281a9fb02f20b" }, "downloads": -1, "filename": "dynmap_timemachine-0.9.5.tar.gz", "has_sig": false, "md5_digest": "c1f82bf9c86e33f970ea9f0f151cc8bd", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8857, "upload_time": "2015-11-16T11:30:39", "url": "https://files.pythonhosted.org/packages/50/5b/eff67f2d340922865321bd261007e7ddfc74b6bb2121ebb6c1cddc3ccbc7/dynmap_timemachine-0.9.5.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "d61313a0ff36f020aa0c71c4cfac654e", "sha256": "b451992eee30cb135ab83da7ecb8de7e169352481e05a3c84ab6ec866e8fc0b0" }, "downloads": -1, "filename": "dynmap_timemachine-0.9.5.macosx-10.10-x86_64.exe", "has_sig": false, "md5_digest": "d61313a0ff36f020aa0c71c4cfac654e", "packagetype": "bdist_wininst", "python_version": "any", "requires_python": null, "size": 69458, "upload_time": "2015-11-16T11:30:52", "url": "https://files.pythonhosted.org/packages/2f/f8/7ff5ef9a14cf94cf3a2ecb7583d85da3843a2972e7abe08a192a844945fc/dynmap_timemachine-0.9.5.macosx-10.10-x86_64.exe" }, { "comment_text": "", "digests": { "md5": "c1f82bf9c86e33f970ea9f0f151cc8bd", "sha256": "2fb280c33df82d707fd44438c1aa5d92105437181c1bf530c32281a9fb02f20b" }, "downloads": -1, "filename": "dynmap_timemachine-0.9.5.tar.gz", "has_sig": false, "md5_digest": "c1f82bf9c86e33f970ea9f0f151cc8bd", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8857, "upload_time": "2015-11-16T11:30:39", "url": "https://files.pythonhosted.org/packages/50/5b/eff67f2d340922865321bd261007e7ddfc74b6bb2121ebb6c1cddc3ccbc7/dynmap_timemachine-0.9.5.tar.gz" } ] }