{ "info": { "author": "Maxime Courtet & F\u00e9lix Cloup", "author_email": "", "bugtrack_url": null, "classifiers": [ "License :: OSI Approved :: BSD License", "Natural Language :: English", "Operating System :: OS Independent", "Programming Language :: Python", "Programming Language :: Python :: 3.6" ], "description": "[![Build Status](https://travis-ci.org/makinacorpus/screamshot.svg?branch=master)](https://travis-ci.org/makinacorpus/screamshot)\n[![Coverage Status](https://coveralls.io/repos/github/makinacorpus/screamshot/badge.svg?branch=master&service=github)](https://coveralls.io/github/makinacorpus/screamshot?branch=master&service=github)\n[![Documentation Status](https://readthedocs.org/projects/screamshot/badge/?version=latest)](https://screamshot.readthedocs.io/en/latest/?badge=latest)\n[![PyPI version](https://badge.fury.io/py/screamshot.svg)](https://badge.fury.io/py/screamshot)\n![Python version](https://img.shields.io/badge/Python-3.6-blue.svg?style=flat&logo=appveyor)\n# Screamshot\nPython library to capture screenshots of web applications\n\n## Good practices\n\n* Any code addition must be done in your own branch. You can name it `fl/what_this_branch_brings` where 'f' is the first letter of your first name and 'l' the first letter of your last name.\n* A branch resolves a specific issue.\n* Please write exhaustive tests. The coverage must not decrease.\n* Please merge the master branch into yours, run the tests and checks and correct all errors and warnings before pushing your code.\n* When you think you have finished you can make a pull request.\n\n## Testing and checks\n### To start the tests and checks\n#### The first time\n\n1. Install **docker** and **docker-compose**.\n2. Run: `docker-compose build`, to create all the required images.\n3. To start the verification, run: `docker-compose up`.\n\n#### When it is already setup\n\nYou just need to run `docker-compose up`.\n\n#### To clean up\n\n* If you want to stop containers and remove containers, networks, volumes, and images created by up command, run: `docker-compose down`.\n* If you want to delete all the images, run: `docker rmi -f $(docker images -q)`.\n\n### To write new tests\n\n* You must use the `unittest` package\n* You must put your test file in the **tests** folder\n* You must name your test file using the following next pattern: **test_*.py**\n\n#### Local server\n\nA server with a web page can be used at the following address: and \n\n## Usage\n### Documentation\n\nThe documentation is accessible [here](https://screamshot.readthedocs.io/en/latest/), on readthedocs.\n\n\n### Exemple with django\n\nThe server must be launched using --nothreading and --noreload as argument.\n```\n# views.py in a Django project\nfrom django.http import HttpResponse\n\nimport asyncio\n\nfrom screamshot import generate_bytes_img_prom\n\ndef home(request):\n loop = asyncio.get_event_loop()\n future = asyncio.Future()\n\n asyncio.ensure_future(\n generate_bytes_img_prom('https://www.google.fr', future))\n loop.run_until_complete(future)\n\n return HttpResponse(future.result(), content_type='image')\n``` \nOr using the already wrapped function\n```\n# views.py in a Django project\nfrom django.http import HttpResponse\n\nfrom screamshot import generate_bytes_img__django_wrap\n\ndef home(request):\n img = generate_bytes_img__django_wrap('https://www.google.fr')\n return HttpResponse(img, content_type='image')\n``` \n\n\n#### Using Gunicorn\n\nWith [Gunicorn](https://gunicorn.org/) there isn't the thread related problems so we don't need to use the --nothreading and --noreload arguments.\n\n\nCHANGELOG\n=========\n\n0.0.1\n===\n\nInitialization of Screamshot library\n1. __init__ file:\n * __author__\n * __version__\n * __all__\n2. core file:\n * A `ScreenShot` object with three methods:\n * `load`, loads a web page\n * `screamshot`, takes a screenshot of a loaded page\n * `load_and_screamshot`, loads a web page and takes a screenshot\n\n0.1.0\n===\n\n* There is no more `ScreenShot` object just a function named `generate_bytes_img` which\ntakes some parameters and returns a binary `bytes` object.\n\n0.1.1\n===\n\n* `generate_bytes_img` is no more a sync function and `generate_bytes_img_prom` has been added\n* `generate_bytes_img_prom` uses the `asyncio.Future` object\n\n0.1.2\n===\n\n* A test and verification tool using Docker is now available\n\n0.1.3\n===\n\n* Add `browser-manager` script\n* Add `screamshot` script\n\n0.1.4\n===\n\n* Add `serialize` function\n* Add `deserialize` function\n\n0.1.5\n===\n\n* Add `generate_bytes_img_django_wrap` function\n\n0.1.6\n===\n\n* Module is now available\n\n0.1.7\n===\n\n* The browser endpoint is saved in the temporary directory\n\n0.1.8\n===\n\n* `serialize` function returns a `dict` object\n* `deserialize` takes a `dict` object\n\n0.1.9\n===\n\n* Remove serializer functions\n* Add a bytes_to_img function\n\n0.1.10\n===\n* ``generate_bytes_img_django_wrap`` is renamed ``generate_bytes_img_wrap``\n* Error are handled\n\n0.1.11\n===\n* ``bytes_to_png`` is renamed ``bytes_to_file``\n* ``bytes_to_file`` supports type choice\n\n0.1.12\n===\n* You can now fetch http headers from another page with ``get_token``\n* And store these headers in the local storage\n\n\n", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/makinacorpus/screamshot", "keywords": "", "license": "", "maintainer": "", "maintainer_email": "", "name": "screamshot", "package_url": "https://pypi.org/project/screamshot/", "platform": "", "project_url": "https://pypi.org/project/screamshot/", "project_urls": { "Homepage": "https://github.com/makinacorpus/screamshot" }, "release_url": "https://pypi.org/project/screamshot/0.1.12/", "requires_dist": [ "pyppeteer (==0.0.25)", "requests (==2.21.0)" ], "requires_python": "", "summary": "Python library to capture screenshots of web applications or pages", "version": "0.1.12" }, "last_serial": 5400610, "releases": { "0.1.10": [ { "comment_text": "", "digests": { "md5": "7d1fe0bd5fc06c3ac8090bcbf5d4d66c", "sha256": "c557a08fd1a44c9d3d8da5db2bee4a45f7b584949a6170a3e0d00cf2ef2c5473" }, "downloads": -1, "filename": "screamshot-0.1.10-py3.7.egg", "has_sig": false, "md5_digest": "7d1fe0bd5fc06c3ac8090bcbf5d4d66c", "packagetype": "bdist_egg", "python_version": "3.7", "requires_python": null, "size": 10656, "upload_time": "2019-05-07T12:40:36", "url": "https://files.pythonhosted.org/packages/13/d1/62289bc5e3c21795f1ddc33bae7d7d1d98951c06f9012516e6c8284a7249/screamshot-0.1.10-py3.7.egg" }, { "comment_text": "", "digests": { "md5": "ad03ea31c3cb511ef56d627b4cf32356", "sha256": "4b7aff2bbec532abdb157eb84671ff634f07f83cadba0cb87d16f64dc56ef323" }, "downloads": -1, "filename": "screamshot-0.1.10-py3-none-any.whl", "has_sig": false, "md5_digest": "ad03ea31c3cb511ef56d627b4cf32356", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 11961, "upload_time": "2019-05-07T12:40:34", "url": "https://files.pythonhosted.org/packages/91/9d/a1f00184c05dcd19f9d5a8a3dd8fa6cd52347aa18698e0dddcf2c38130bb/screamshot-0.1.10-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "25eb242e278a843d81f4ec06be53a699", "sha256": "0ebb9a3c1e44b8c11ab9b267aed093a479709ad6e2a493a3146fab66eb27e273" }, "downloads": -1, "filename": "screamshot-0.1.10.tar.gz", "has_sig": false, "md5_digest": "25eb242e278a843d81f4ec06be53a699", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9969, "upload_time": "2019-05-07T12:40:37", "url": "https://files.pythonhosted.org/packages/32/f4/de04e19d56f9c4b005776719a322612195820c6d2837128708978eb5dad0/screamshot-0.1.10.tar.gz" } ], "0.1.11": [ { "comment_text": "", "digests": { "md5": "58d9be7b307f391381f3d3a4c8d6a81a", "sha256": "d174c69dcb7b50761b5fb9598e5f7e4e137a5c40e6385aa2d5c722bc7f9408a4" }, "downloads": -1, "filename": "screamshot-0.1.11-py3-none-any.whl", "has_sig": false, "md5_digest": "58d9be7b307f391381f3d3a4c8d6a81a", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 19143, "upload_time": "2019-05-07T14:32:29", "url": "https://files.pythonhosted.org/packages/5e/30/6adb1095ca001bc8a05aa09b710a8c91dfa78dc730eb662ad4521f161b59/screamshot-0.1.11-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "98709b06e480f0388ca1c11888fa29a8", "sha256": "826160cc5a679cb554e2ab901f6ff83b8d3f093388e715b87ec8ae8a4ad2baf1" }, "downloads": -1, "filename": "screamshot-0.1.11.tar.gz", "has_sig": false, "md5_digest": "98709b06e480f0388ca1c11888fa29a8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10060, "upload_time": "2019-05-07T14:32:32", "url": "https://files.pythonhosted.org/packages/35/3e/094255d332b70e249edcd816bd1fe0dee4bba2a0f08d2a6ad19a3a53c587/screamshot-0.1.11.tar.gz" } ], "0.1.12": [ { "comment_text": "", "digests": { "md5": "70f7cc913482e92a996d02b41f415e94", "sha256": "b058803b2a2ba84211c0bada47638070e1e9738f07f1190867f96af0bf4c4b54" }, "downloads": -1, "filename": "screamshot-0.1.12-py3-none-any.whl", "has_sig": false, "md5_digest": "70f7cc913482e92a996d02b41f415e94", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 19738, "upload_time": "2019-06-14T13:34:57", "url": "https://files.pythonhosted.org/packages/20/59/7f7bf2666b0f31a585af7df2e60e6c252cb6503e7a48366218d2c22e2013/screamshot-0.1.12-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "da1e5a46219e466b5bdd2f16fc16c249", "sha256": "18eb7dc3870515ca6cdbfedc4ffb699eca8747381eeafcd5780dc61fe31228bc" }, "downloads": -1, "filename": "screamshot-0.1.12.tar.gz", "has_sig": false, "md5_digest": "da1e5a46219e466b5bdd2f16fc16c249", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10678, "upload_time": "2019-06-14T13:34:59", "url": "https://files.pythonhosted.org/packages/81/bd/6ac31bac93952d3ef5f52c7fbfda9becf49397a56e9673170e7fa5eeed59/screamshot-0.1.12.tar.gz" } ], "0.1.5": [ { "comment_text": "", "digests": { "md5": "e1295a3aebc96e136758c73d1e497ce9", "sha256": "7bb942cf573349ee387eb58c4bce437e05e0d3ab325ac1a2372363dc23739b40" }, "downloads": -1, "filename": "screamshot-0.1.5-py3-none-any.whl", "has_sig": false, "md5_digest": "e1295a3aebc96e136758c73d1e497ce9", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 19227, "upload_time": "2019-04-30T15:50:26", "url": "https://files.pythonhosted.org/packages/08/75/5624fe9776d00ee7f0398b38ca078cb559a583e990248739f63baf381d9a/screamshot-0.1.5-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "13428666e18f014bdf2bc8ee2dbd6700", "sha256": "e61e9cc0814089bdeef652d66305610c55292a68319a3dac9a7e4a47721e5172" }, "downloads": -1, "filename": "screamshot-0.1.5.tar.gz", "has_sig": false, "md5_digest": "13428666e18f014bdf2bc8ee2dbd6700", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9454, "upload_time": "2019-04-30T15:50:41", "url": "https://files.pythonhosted.org/packages/1c/67/648271bc01c008e9cb15235d7d18316bb75088d31b0de20b08a2a1d339ff/screamshot-0.1.5.tar.gz" } ], "0.1.6": [ { "comment_text": "", "digests": { "md5": "c2cc666fb6ee68cf36aa12b89c81362a", "sha256": "d7139519e025b81c7e88ad0a09c02c1061a88a4cab981649638d65bcba1737ee" }, "downloads": -1, "filename": "screamshot-0.1.6-py3-none-any.whl", "has_sig": false, "md5_digest": "c2cc666fb6ee68cf36aa12b89c81362a", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 11720, "upload_time": "2019-05-02T10:20:39", "url": "https://files.pythonhosted.org/packages/64/0e/e485c89817f3068b23a997b6dc3c0bde56473df7fb378691e1f4f8e03909/screamshot-0.1.6-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "96c9944fce6634caf936ab272ef2d6f1", "sha256": "8c0a45bcc3cc8d438c3430fb39c0102d90a3de47d2fea69b3485cb8024dff549" }, "downloads": -1, "filename": "screamshot-0.1.6.tar.gz", "has_sig": false, "md5_digest": "96c9944fce6634caf936ab272ef2d6f1", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9649, "upload_time": "2019-05-02T10:20:40", "url": "https://files.pythonhosted.org/packages/70/64/2a0a345cd5e14c3f19f6b40263853e146175c40b0b74dd8286140801d028/screamshot-0.1.6.tar.gz" } ], "0.1.7": [ { "comment_text": "", "digests": { "md5": "b646c3752b58597886a6d464b069b335", "sha256": "fdb8726a44e45a7a7306f5307beb7e0d0863fe850ab7156753f0538bff5d88bd" }, "downloads": -1, "filename": "screamshot-0.1.7-py3-none-any.whl", "has_sig": false, "md5_digest": "b646c3752b58597886a6d464b069b335", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 11793, "upload_time": "2019-05-02T11:42:13", "url": "https://files.pythonhosted.org/packages/2b/36/42ba5a06d2eb5e3eda5db0f6d18967bc4184fd9e017567cf6db1c4ced188/screamshot-0.1.7-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "70230bc4b35d41260ebf9b2c7f26b1cf", "sha256": "4314eb5006235d35962d769961f7ac23d3c3a2cf1c1eeb7a13baf56564dd328e" }, "downloads": -1, "filename": "screamshot-0.1.7.tar.gz", "has_sig": false, "md5_digest": "70230bc4b35d41260ebf9b2c7f26b1cf", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9744, "upload_time": "2019-05-02T11:42:16", "url": "https://files.pythonhosted.org/packages/aa/4f/6cccc78d9b2f54fd991b2edd352cae3f12b8e4572da791ab3b10bc39bd6a/screamshot-0.1.7.tar.gz" } ], "0.1.8": [ { "comment_text": "", "digests": { "md5": "5706ca485b437a78e702f2b313ce6ec4", "sha256": "129690c6a7c28493d9595e2dcd3b775cc66a0a676af768e6568a45845b765464" }, "downloads": -1, "filename": "screamshot-0.1.8-py3-none-any.whl", "has_sig": false, "md5_digest": "5706ca485b437a78e702f2b313ce6ec4", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 11804, "upload_time": "2019-05-02T14:05:21", "url": "https://files.pythonhosted.org/packages/e6/4a/e390df7358ec3f12b81227e3f24d0f71deb858905dbd018741e3b58615d2/screamshot-0.1.8-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "8214a75e62c6088b8f8b0693d577c4bf", "sha256": "a1e992a174a1632963cec10d9864bab637b99caacfc88a97e82e069ce0a021f2" }, "downloads": -1, "filename": "screamshot-0.1.8.tar.gz", "has_sig": false, "md5_digest": "8214a75e62c6088b8f8b0693d577c4bf", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9805, "upload_time": "2019-05-02T14:05:22", "url": "https://files.pythonhosted.org/packages/6b/56/6be366df4eaf02f17a19321e6b00b452b4351df2f486b3b7774f1f042e5f/screamshot-0.1.8.tar.gz" } ], "0.1.9": [ { "comment_text": "", "digests": { "md5": "b8e3c59d9e93f2321f809e7cbb47cfb8", "sha256": "39514a6df3b1991d57b9fc8ecdbbcc2b06a034a261d596006c959b759239388b" }, "downloads": -1, "filename": "screamshot-0.1.9-py3.6.egg", "has_sig": false, "md5_digest": "b8e3c59d9e93f2321f809e7cbb47cfb8", "packagetype": "bdist_egg", "python_version": "3.6", "requires_python": null, "size": 16615, "upload_time": "2019-05-07T14:32:35", "url": "https://files.pythonhosted.org/packages/1b/1d/eb14b2abd8f2eeb5ff5646cdbc037f97e4235caa71e54cef799a1cebd9d0/screamshot-0.1.9-py3.6.egg" }, { "comment_text": "", "digests": { "md5": "8dd24b0255a9f47b7b3a7413e262bdf0", "sha256": "3bd84ae91a1253df39fbbef4d61cb4ba31921bde799a20f9a9eb7d516bc99325" }, "downloads": -1, "filename": "screamshot-0.1.9-py3.7.egg", "has_sig": false, "md5_digest": "8dd24b0255a9f47b7b3a7413e262bdf0", "packagetype": "bdist_egg", "python_version": "3.7", "requires_python": null, "size": 10588, "upload_time": "2019-05-06T10:14:33", "url": "https://files.pythonhosted.org/packages/a3/1e/96ce9b3f8982b75acb30800b5740f7642fcda94e953f12374b7277b0c507/screamshot-0.1.9-py3.7.egg" }, { "comment_text": "", "digests": { "md5": "04bb630500cf952b0cb59fe3c90a5e2a", "sha256": "1595ed1983a43e4bfe5fc9a438bdf07c030d56c82463408f9eba375f7f977370" }, "downloads": -1, "filename": "screamshot-0.1.9-py3-none-any.whl", "has_sig": false, "md5_digest": "04bb630500cf952b0cb59fe3c90a5e2a", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 11823, "upload_time": "2019-05-06T10:14:32", "url": "https://files.pythonhosted.org/packages/34/bc/416f8b7dd0f8cb7273f7779dd151b9079af0412f67613736930be971918c/screamshot-0.1.9-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "90aadcbfb266060dcf9e2ebf3545689f", "sha256": "d0255e3751a54a5ff3af952583bd82cca1c3e6cd9bc57a474c4c0f6773f7fd4c" }, "downloads": -1, "filename": "screamshot-0.1.9.tar.gz", "has_sig": false, "md5_digest": "90aadcbfb266060dcf9e2ebf3545689f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9624, "upload_time": "2019-05-06T10:14:35", "url": "https://files.pythonhosted.org/packages/c9/59/bd9f114ea3890bf1cd48a66496c4c4e57ab4788dd75af2bb6894e42fd62d/screamshot-0.1.9.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "70f7cc913482e92a996d02b41f415e94", "sha256": "b058803b2a2ba84211c0bada47638070e1e9738f07f1190867f96af0bf4c4b54" }, "downloads": -1, "filename": "screamshot-0.1.12-py3-none-any.whl", "has_sig": false, "md5_digest": "70f7cc913482e92a996d02b41f415e94", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 19738, "upload_time": "2019-06-14T13:34:57", "url": "https://files.pythonhosted.org/packages/20/59/7f7bf2666b0f31a585af7df2e60e6c252cb6503e7a48366218d2c22e2013/screamshot-0.1.12-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "da1e5a46219e466b5bdd2f16fc16c249", "sha256": "18eb7dc3870515ca6cdbfedc4ffb699eca8747381eeafcd5780dc61fe31228bc" }, "downloads": -1, "filename": "screamshot-0.1.12.tar.gz", "has_sig": false, "md5_digest": "da1e5a46219e466b5bdd2f16fc16c249", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10678, "upload_time": "2019-06-14T13:34:59", "url": "https://files.pythonhosted.org/packages/81/bd/6ac31bac93952d3ef5f52c7fbfda9becf49397a56e9673170e7fa5eeed59/screamshot-0.1.12.tar.gz" } ] }