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