[](https://coveralls.io/github/makinacorpus/screamshot?branch=master&service=github)
[](https://screamshot.readthedocs.io/en/latest/?badge=latest)
# Screamshot
Python library to capture screenshots of web applications
## Good practices
* 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.
* A branch resolves a specific issue.
* Please write exhaustive tests. The coverage must not decrease.
* Please merge the master branch into yours, run the tests and checks and correct all errors and warnings before pushing your code.
* When you think you have finished you can make a pull request.
## Testing and checks
### To start the tests and checks
#### The first time
1. Install **docker** and **docker-compose**.
2. Run: `docker-compose build`, to create all the required images.
3. To start the verification, run: `docker-compose up`.
#### When it is already setup
You just need to run `docker-compose up`.
#### To clean up
* If you want to stop containers and remove containers, networks, volumes, and images created by up command, run: `docker-compose down`.
* If you want to delete all the images, run: `docker rmi -f $(docker images -q)`.
### To write new tests
* You must use the `unittest` package
* You must put your test file in the **tests** folder
* You must name your test file using the following next pattern: **test_*.py**
#### Local server
A server with a web page can be used at the following address: <http://server:5000/index.html> and <http://server:5000/other.html>
## Usage
### Documentation
The documentation is accessible [here](https://screamshot.readthedocs.io/en/latest/), on readthedocs.
### Exemple with django
The server must be launched using --nothreading and --noreload as argument.
```
# views.py in a Django project
from django.http import HttpResponse
import asyncio
from screamshot import generate_bytes_img_prom
def home(request):
loop = asyncio.get_event_loop()
future = asyncio.Future()
asyncio.ensure_future(
generate_bytes_img_prom('https://www.google.fr', future))
loop.run_until_complete(future)
return HttpResponse(future.result(), content_type='image')
```
Or using the already wrapped function
```
# views.py in a Django project
from django.http import HttpResponse
from screamshot import generate_bytes_img__django_wrap
def home(request):
img = generate_bytes_img__django_wrap('https://www.google.fr')
return HttpResponse(img, content_type='image')
```
#### Using Gunicorn
With [Gunicorn](https://gunicorn.org/) there isn't the thread related problems so we don't need to use the --nothreading and --noreload arguments.
CHANGELOG
=========
0.0.1
===
Initialization of Screamshot library
1. __init__ file:
* __author__
* __version__
* __all__
2. core file:
* A `ScreenShot` object with three methods:
* `load`, loads a web page
* `screamshot`, takes a screenshot of a loaded page
* `load_and_screamshot`, loads a web page and takes a screenshot
0.1.0
===
There is no more `ScreenShot` object just a function named `generate_bytes_img` which
takes some parameters and returns a binary `bytes` object.
0.1.1
===
`generate_bytes_img` is no more a sync function and `generate_bytes_img_prom` has been added
`generate_bytes_img_prom` uses the `asyncio.Future` object
0.1.2
===
A test and verification tool using Docker is now available
0.1.3
===
Add two commands:
* `browser-manager`
* `screamshot`
0.1.4
===
Add two functions:
* `serialize`
* `deserialize`
0.1.5
===
Add `generate_bytes_img_django_wrap` function
Metadata
Release files for screamshot 0.1.5
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| screamshot-0.1.5.tar.gz | 9.5 kB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| screamshot-0.1.5-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 28.7 kB
Release files / screamshot-0.1.5.tar.gz
| Download URL | screamshot-0.1.5.tar.gz |
|---|---|
| Size | 9.5 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
e61e9cc0814089bdeef652d66305610c55292a68319a3dac9a7e4a47721e5172
|
|
BLAKE2b-256 checksum How to use checksums |
1c67648271bc01c008e9cb15235d7d18316bb75088d31b0de20b08a2a1d339ff
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/1.13.0 pkginfo/1.5.0.1 requests/2.21.0 setuptools/41.0.0 requests-toolbelt/0.9.1 tqdm/4.31.1 CPython/2.7.15+
|
Release files / screamshot-0.1.5-py3-none-any.whl
| Download URL | screamshot-0.1.5-py3-none-any.whl |
|---|---|
| Size | 19.2 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
7bb942cf573349ee387eb58c4bce437e05e0d3ab325ac1a2372363dc23739b40
|
|
BLAKE2b-256 checksum How to use checksums |
08755624fe9776d00ee7f0398b38ca078cb559a583e990248739f63baf381d9a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/1.13.0 pkginfo/1.5.0.1 requests/2.21.0 setuptools/41.0.0 requests-toolbelt/0.9.1 tqdm/4.31.1 CPython/2.7.15+
|
Security for screamshot 0.1.5
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.