Metadata-Version: 2.0
Name: pycookiecheat
Version: 0.4.0
Summary: Borrow cookies from your browser's authenticated session foruse in Python scripts.
Home-page: https://github.com/n8henrie/pycookiecheat
Author: Nathan Henrie
Author-email: nate@n8henrie.com
License: MIT
Keywords: pycookiecheat chrome cookies
Platform: UNKNOWN
Classifier: Natural Language :: English
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.5
Classifier: Programming Language :: Python :: 3.6
Requires-Dist: keyring (==10.3.2)
Requires-Dist: pycrypto (==2.6.1)
Provides-Extra: dev
Requires-Dist: flake8 (==3.3.0); extra == 'dev'
Requires-Dist: flake8-docstrings (==1.1.0); extra == 'dev'
Requires-Dist: flake8-import-order (==0.12); extra == 'dev'
Requires-Dist: mypy (==0.501); extra == 'dev'
Requires-Dist: pep8-naming (==0.4.1); extra == 'dev'
Requires-Dist: pylint (==1.7.1); extra == 'dev'
Requires-Dist: pypandoc (==1.3.3); extra == 'dev'
Requires-Dist: pytest (==3.0.7); extra == 'dev'
Requires-Dist: tox (==2.7.0); extra == 'dev'
Requires-Dist: twine (==1.8.1); extra == 'dev'
Requires-Dist: wheel (==0.29.0); extra == 'dev'

pycookiecheat
=============

|Build Status|

Borrow cookies from your browser's authenticated session for use in
Python scripts.

-  Free software: MIT
-  Documentation: http://n8h.me/HufI1w

Installation
------------

**NB:** Use ``pip`` and ``python`` instead of ``pip3`` and ``python3``
if you're still on Python 2.

-  ``pip3 install pycookiecheat``

Installation notes regarding alternative keyrings on Linux
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

See `#12 <https://github.com/n8henrie/pycookiecheat/issues/12>`__.
Chrome is now using a few different keyrings to store your
``Chrome Safe Storage`` password, instead of a hard-coded password.
Pycookiecheat doesn't work with most of these so far, and to be honest
my enthusiasm for adding support for ones I don't use is limited.
However, users have contributed code that seems to work with some of the
recent Ubuntu desktops. To get it working, you may have to
``sudo apt-get install libsecret-1-dev python-gi python3-gi``, and if
you're installing into a virtualenv (highly recommended), you need to
use the ``--system-site-packages`` flag to get access to the necessary
libraries.

Alternatively, some users have suggested running Chrome with the
``--password-store=basic`` or ``--use-mock-keychain`` flags.

Development Setup
~~~~~~~~~~~~~~~~~

1. ``git clone https://github.com/n8henrie/pycookiecheat.git``
2. ``cd pycookiecheat``
3. ``python3 -m venv venv``
4. ``venv/bin/pip install -e .[dev]``

Usage
-----

.. code:: python

    from pycookiecheat import chrome_cookies
    import requests

    url = 'http://example.com/fake.html'

    # Uses Chrome's default cookies filepath by default
    cookies = chrome_cookies(url)
    r = requests.get(url, cookies=cookies)

Use the ``cookie_file`` keyword-argument to specify a different filepath
for the cookies-file:
``chrome_cookies(url, cookie_file='/abspath/to/cookies')``

Keep in mind that pycookiecheat defaults to looking for cookies for
Chromium, not Google Chrome, so if you're using the latter, you'll need
to manually specify something like
``"/home/username/.config/google-chrome/Default/Cookies"`` as your
``cookie_file``.

Features
--------

-  Returns decrypted cookies from Google Chrome on OSX or Linux.

FAQ / Troubleshooting
---------------------

How about Windows?
~~~~~~~~~~~~~~~~~~

I don't use Windows or have a PC, so I won't be adding support myself.
Feel free to make a PR :)

I get an installation error with the ``cryptography`` module on OS X
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

(pycookiecheat <v0.4.0)

If you're getting `this
error <https://github.com/n8henrie/pycookiecheat/pull/11#issuecomment-221918807>`__
and using Homebrew, then you need to follow the instructions for
`Building cryptography on OS
X <https://cryptography.io/en/latest/installation/?highlight=cflags#building-cryptography-on-os-x>`__
and
``export LDFLAGS="-L$(brew --prefix openssl)/lib" CFLAGS="-I$(brew --prefix openssl)/include"``
and try again.

I get an installation error with the ``cryptography`` module on Linux (pycookiecheat <v0.4.0)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Please check the official cryptography docs. On some systems (e.g.
Ubuntu), you may need to do something like
``sudo apt-get install build-essential libssl-dev libffi-dev python-dev``
prior to installing with ``pip``.

How do I install the dev branch with pip?
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

-  ``pip install git+https://github.com/n8henrie/pycookiecheat@dev``

.. |Build Status| image:: https://travis-ci.org/n8henrie/pycookiecheat.svg?branch=master
   :target: https://travis-ci.org/n8henrie/pycookiecheat


`Changelog <https://keepachangelog.com>`__
==========================================

v0.3.4 :: 20170414
------------------

-  Add support for new Ubuntu keyring / libsecret
-  See https://github.com/n8henrie/pycookiecheat/issues/12 for details
-  Many thanks to @stat1c1c3au and @trideceth12 for contributions

0.3.0
-----

-  Use ```cryptography`` <https://cryptography.io/en/latest/>`__ instead
   of ``pycrypto`` (thanks to `Taik <https://github.com/Taik>`__!)
-  Seems to be `significantly
   faster <https://github.com/n8henrie/pycookiecheat/pull/11#issuecomment-221950400>`__
-  Works with PyPy >= 2.6.0 (no support for PyPy3 yet)

0.2.0
-----

-  Fix domain and subdomain matching
-  Make SQL query more secure by avoiding string formatting
-  Many thanks to `Brandon Rhodes <https://github.com/brandon-rhodes>`__
   for 24c4234 !

0.1.10
------

-  Read version to separate file so it can be imported in setup.py
-  Bugfix for python2 on linux

0.1.9
-----

-  Bugfix for python2 on linux

0.1.8
-----

-  Python2 support (thanks `dani14-96 <https://github.com/dani14-96>`__)

0.1.7
-----

-  Configurable cookies file (thanks
   `ankostis <https://github.com/ankostis>`__)

0.1.6
-----

-  OSError instead of Exception for wrong OS.
-  Moved testing requirements to tox and travis-ci files.

0.1.5
-----

-  Updated to work better with PyPI's lack of markdown support
-  Working on tox and travis-ci integration
-  Added a few basic tests that should pass if one has Chrome installed
   and has visited my site (n8henrie.com)
-  Added sys.exit(0) if cookie\_file not found so tests pass on
   travis-ci.

0.1.0 (2015-02-25)
------------------

-  First release on PyPI.

Prior changelog from Gist
-------------------------

-  20150221 v2.0.1: Now should find cookies for base domain and all
   subs.
-  20140518 v2.0: Now works with Chrome's new encrypted cookies.


