Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/cweiske/phancap
Web service to create website screenshots. Mirror of http://git.cweiske.de/phancap.git
https://github.com/cweiske/phancap
Last synced: 29 days ago
JSON representation
Web service to create website screenshots. Mirror of http://git.cweiske.de/phancap.git
- Host: GitHub
- URL: https://github.com/cweiske/phancap
- Owner: cweiske
- License: agpl-3.0
- Created: 2014-03-30T12:03:22.000Z (over 10 years ago)
- Default Branch: master
- Last Pushed: 2016-07-12T19:03:03.000Z (over 8 years ago)
- Last Synced: 2024-08-07T17:30:34.903Z (3 months ago)
- Language: PHP
- Homepage:
- Size: 98.6 KB
- Stars: 37
- Watchers: 9
- Forks: 2
- Open Issues: 1
-
Metadata Files:
- Readme: README.rst
- Changelog: ChangeLog
- License: LICENSE
Awesome Lists containing this project
README
************************************
phancap - website screenshot service
************************************Web service (API) to create website screenshots.
Self-hosted and written in PHP. Caching included.
*phancap* is useful for:
- Show screenshots for websites in your bookmarking application
- Archive a HTML page as PDF for later viewing.. contents::
========
Features
========* Configurable browser size
* Configurable screenshot size
* Clip and full page rendering (full height)
* JPG, PNG and PDF output (PDFs are searchable)
* Authentication
* Can run on a normal web server without GUI. See dependencies_.
* Generated images get meta data embedded:* URL of captured page
* Capture settings.. note::
*phancap* does not rely on a "real" browser.
Currently ``cutycapt`` is utilized, which uses a pretty bare webkit to render
the pages.
Do not expect pixel-for-pixel identical rendering as your desktop browser.===============
Getting started
===============Basic setup
===========
#. Download the ``.phar`` file and put it onto your web server
#. Open the phar file in your browserIf you only see text beginning with `` 'secret1',
'user2' => 'secret2',
)The signature algorithm is as follows:
#. Parameters ``atimestamp`` (current unix timestamp) and
``atoken`` (username) have to be added to the URL parameters#. URL parameters are normalized as described in
`OAuth Parameters Normalization`__:#. Sort parameters list by name
#. Name and value are `raw-url-encoded`__
#. Name and value are concatenated with ``=`` as separator
#. The resulting strings are concatenated with ``&`` as separator#. URL parameter string is used together with the secret key
to create a `HMAC-SHA1`__ digest#. Digest is appended to the URL as ``asignature``
__ http://tools.ietf.org/html/rfc5849#section-3.4.1.3.2
__ http://tools.ietf.org/html/rfc5849#section-3.6
__ http://tools.ietf.org/html/rfc5849#section-3.4.2Example
=======.. note::
The ``docs/`` directory contains an example PHP client implementation.
We want to create a screenshot of ``http://example.org/`` in size 400x300,
using the browser size of 1024x768::http://example.org/phancap/get.php?swidth=400&sheight=300&url=http%3A%2F%2Fexample.org%2F&bwidth=1024&bheight=768
Phancap's config file contains::
$access = array(
'user' => 'secret'
);Our parameters are thus:
============== =====
Name Value
============== =====
``swidth`` ``400``
``sheight`` ``300``
``url`` ``http://example.org/``
``bwidth`` ``1024``
``bheight`` ``768``
============== =====At first, we need to add parameters ``atimestamp`` and ``atoken``.
``atimestamp`` is the current unix timestamp.
``atoken`` is our user name: ``user``.Now the parameter list is sorted:
============== =====
Name Value
============== =====
``atimestamp`` ``1396353987``
``atoken`` ``user``
``bheight`` ``768``
``bwidth`` ``1024``
``sheight`` ``300``
``swidth`` ``400``
``url`` ``http://example.org/``
============== =====The parameters are raw-url-encoded. The only value that changes is the url,
it becomes ``http%3A%2F%2Fexample.org%2F``.Concatenating the name/value pairs leads to the following string::
atimestamp=1396353987&atoken=user&bheight=768&bwidth=1024&sheight=300&swidth=400&url=http%3A%2F%2Fexample.org%2F
Creating the HMAC digest with sha1, the calculated string and our key
``secret`` gives us the following string::9a12eac5ff859f9306eaaf5a18b9a931fe10b89d
This is the signature; it gets appended to the URL as ``asignature`` parameter.
============
Dependencies
============
- External tools:- `cutycapt `_
- `exiftool `_
- `imagemagick's `_ ``convert``
- ``xvfb-run``- Libraries (already included in the ``.phar``):
- PEAR's ``System.php``
=============
About phancap
=============License
=======
``phancap`` is licensed under the `AGPL v3`__ or later.__ http://www.gnu.org/licenses/agpl.html
Homepage
========
Web site
http://cweiske.de/phancap.htmSource code
http://git.cweiske.de/phancap.gitMirror: https://github.com/cweiske/phancap
Author
======
Written by Christian Weiske, [email protected]============
Alternatives
============
All of those are open source:* http://code.google.com/p/browsershots/ (python)
* https://github.com/gre/screenshot-webservice (scala)===========
Development
===========Releasing a new version
=======================#. Update ``ChangeLog``
#. Change version number in ``build.xml``
#. Run ``phing``
#. Deploy the new files in ``dist/``
#. Tag the new version in git