afvalwijzer 0.2.7
Getting the waste date and type for the Netherlands
License: MIT
Keywords: afval afvalwijzer garbage

Afvalwijzer library
===================

|PyPi Status| |Build Status| |Coverage Status| |Wheel Status| |Python versions|

This library is meant to interface with `mijnafvalwijzer <http://www.mijnafvalwijzer.nl/>`__.

It is meant as a *workaround* for the afvalwijzer app (used in the Netherlands) to be notified when to place the bin at the road.
Since this app delivers a poor functionality for notifications, and I needed a small project, I created this.

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

.. code:: bash

    pip install afvalwijzer

Uninstallation
--------------

.. code:: bash

    pip uninstall afvalwijzer

Usage
-----

.. code:: python

    >>> from Afvalwijzer import Afvalwijzer
    >>> zipcode = '3564KV'
    >>> number = '13'
    >>> garbage = Afvalwijzer(zipcode, number)

    >>> garbage.pickupdate
    'Vandaag'

    >>> garbage.wastetype
    'Groente-, Fruit- en Tuinafval'

    >>> garbage.garbage
    ('Vandaag', 'Groente-, Fruit- en Tuinafval')

    >>> garbage.pickupdates
    ['dinsdag 02 januari', 'dinsdag 02 januari']

    >>> garbage.wastetypes
    ['Groente-, Fruit- en Tuinafval', 'Kerstbomen']

The following function only returns true if the pickup date is the same as today.

.. code:: python

    >>> garbage.notify
    True

Below is shown how I use it to get notified using pushbullet.

.. code:: python

    from Afvalwijzer import Afvalwijzer
    from pushbullet import Pushbullet


    def notification(device=None):
        pb = Pushbullet(pushbulletapi)
        try:
            mydevice = pb.get_device(device)
        except:
            mydevice = None
        push = pb.push_note(
            "Container: {}".format(wastetype),
            "Container: {}\nDate: {}".format(wastetype, pickupdate),
            device=mydevice)


    zipcode = '3564KV'
    number = 13
    pushbulletapi = 'pushbullet_api_key'
    pushbulletdevice = 'LGE Nexus 5X'

    garbage = Afvalwijzer(zipcode, number)
    pickupdate, wastetype = garbage.garbage
    notify = garbage.notify
    if notify and pushbulletapi:
        notification(pushbulletdevice)

Cron job
--------
This script can now be set up as a cronjob on your server or alike.

.. code:: bash

    0 6 * * * cd /path/to/script/notify_garbage.py > /dev/null 2>&1

Caveat
------
* Output is provided in Dutch due to the main website. There is a button for English, but I haven't got it working (yet).

Contributors are most welcome
-----------------------------
* I'm still learning how to work with it all. Therefore feedback, advice, pull request etc. are most welcome.

.. |Wheel Status| image:: https://img.shields.io/pypi/wheel/afvalwijzer.svg
   :target: https://pypi.python.org/pypi/afvalwijzer
.. |Python versions| image:: https://img.shields.io/pypi/pyversions/afvalwijzer.svg
   :target: https://pypi.python.org/pypi/afvalwijzer
.. |PyPi Status| image:: https://img.shields.io/pypi/v/afvalwijzer.svg
   :target: https://pypi.python.org/pypi/afvalwijzer
.. |Build Status| image:: https://travis-ci.org/bambam82/afvalwijzer.svg?branch=master
   :target: https://travis-ci.org/bambam82/afvalwijzer
.. |Coverage Status| image:: https://coveralls.io/repos/github/bambam82/afvalwijzer/badge.svg?branch=master
   :target: https://coveralls.io/github/bambam82/afvalwijzer?branch=master



.. :changelog:

Release History
---------------

0.2.7 (2018-01-01)
++++++++++++++++++
- Verification added for zipcode value
- Test added for assert on the raise

0.2.6 (2017-12-31)
++++++++++++++++++
- Change the dates in 'HISTORY.rst' to the correct month
- Library also returns a list for multiple dates highlighted on the webpage

0.2.5 (2017-12-28)
++++++++++++++++++
- Improving the python packaging, following: `Python packaging <https://python-packaging.readthedocs.io>`__

0.2.4 (2017-12-27)
++++++++++++++++++
- Fixed rst issues; now showing correct html on pypi
- learned about ``python setup.py checkdocs``; require *pygments* and *collective.checkdocs*

0.2.1 (2017-12-26)
++++++++++++++++++
- Changing the way of working with '__version__'
- Changed versioning scheme
- Removed the datetime dependency
- Rewritten parts and tests to work with python 2.7 and 3.4+
- Rewritten Markdown to restructured text

0.2 (2017-12-25)
++++++++++++++++
- Status Beta
- Versioning in sync, setup reads it from the program
- History (this file) added
- Property decorators instead of traditional getters
- README improved

0.1 (2017-08-24)
++++++++++++++++
**Initial release**
- first working release
- py.tests
- travis-ci
- pypi
- hours of troubleshooting the 2 above