# HG changeset patch # User Peter Sanchez # Date 1593032165 25200 # Wed Jun 24 13:56:05 2020 -0700 # Node ID 7634d32c4e4b951906029e4d172fa3bf63a1ff94 # Parent 29dfccbf3d624553077f16250831b8d738bb4ce0 Updating for 4.0.9 support diff --git a/README.md b/README.md new file mode 100644 --- /dev/null +++ b/README.md @@ -0,0 +1,136 @@ +sendypy [![nlshield](https://img.shields.io/badge/100%25-Netlandish-blue.svg?style=square-flat)](http://www.netlandish.com) +---- + +Simple module to interface with the Sendy API () + +**Version:** 4.0.9 + +**Author:** Peter Sanchez () - () + +Dependencies +============ + +- It was written for Python 3.6+ +- Depends on the requests module + +**NOTE:** + +- **Version 4.0.5** we're changing the version to match the version of + Sendy that this is most recently updated for. When Sendy introduces + changes that require a lib update, we will update the version to + match the Sendy version. +- **Version 0.2** now requires `api_key` varaible for all API calls. + This is a required change to the functionality of Sendy as of + version 4.0.4. This is a potentially breaking code change. Please + update your code to always provide the API key before upgrading to + sendypy v0.2. +- **Version 0.1.3b** adds the new "title" variable to the + `create_campaign` API call. It effects the default ordering of + variables in the call. If you're upgrading from a previous version + please ensure that you account for the new ordering of variables. + This new variable was added in Sendy v2.1.2.6 + +Installation +============ + +PIP: + + pip install sendypy + +Basic Manual Install: + + $ python setup.py build + $ sudo python setup.py install + +Alternative Install (Manually): + +Place sendy directory in your Python path. Either in your Python +installs site-packages directory or set your \$PYTHONPATH environment +variable to include a directory where the impersonate directory lives. + +Use +=== + +All the variables and response values are described in the [Sendy API +docs](https://sendy.co/api) + +Usage is simple : + + from sendy.api import SendyAPI + api = SendyAPI( + host='https://your-sendy-install.com/sendy/', + api_key='YOUR_API_KEY', + ) + +You can also provide the optional `debug` variable (defaults to False). +This will print debug into to stdout when sending a request to your +Sendy install. + +**Subscribe** : + + api.subscribe('list_id_here', 'email@address.com', 'optional first name', custom_field_1='value', custom_field_2='value', ...) + +*Optional fields* + +- `country`: User's 2 letter country code. +- `ipaddress`: User's IP address. +- `referrer`: The URL where the user signed up from. +- `gdpr`: If you're signing up EU users in a GDPR compliant manner. +- `hp`: Include this 'honeypot' field to prevent spambots. + + + + data = {"gdpr": True, "ipaddress": "127.0.0.1", "country": "US"} + + api.subscribe(list_id, email, **data) + +**Unsubscribe** : + + api.unsubscribe('list_id_here', 'email@address.com') + +**Delete** : + + api.delete('list_id_here', 'email@address.com') + +**Subscription Status** : + + api.subscription_status('list_id_here', 'email@address.com') + +**Subscriber Count** : + + api.subscriber_count('list_id_here') + +**Create Campaign** : + + api.create_campaign( + from_name='Your Name', + from_email='Your Sender Email', + reply_to='Your Reply-to Email', + title='Your Email Title', + subject='Your Email Subject', + plain_text='Plain Text Email Body', + html_text='HTML Email Body', + list_ids='list_id_1,list_id_2,list_id_3', + brand_id='your brand id', + query_string='Your query string', + send_campaign=0, #default's to 0, use 1 to send email right away + segment_ids='segment_id_1,segment_id_2', + exclude_list_ids='list_id_1,list_id_2,list_id_3', + exclude_segments_ids='segment_id_1,segment_id_2', + ) + +Copyright & Warranty +==================== + +All documentation, libraries, and sample code are Copyright 2016 +Netlandish Inc., Peter Sanchez <>. The +library and sample code are made available to you under the terms of the +BSD license which is contained in the included file, BSD-LICENSE. + +Commercial Support +------------------ + +This software, and lots of other software like it, has been built in +support of many of Netlandish's own projects, and the projects of our +clients. We would love to help you on your next project so get in touch +by dropping us a note at . diff --git a/README.rst b/README.rst --- a/README.rst +++ b/README.rst @@ -5,7 +5,7 @@ sendypy |nlshield| ============================== :Info: Simple module to interface with the Sendy API (https://sendy.co/api) -:Version: 4.0.5 +:Version: 4.0.9 :Author: Peter Sanchez (http://www.petersanchez.com) - (http://www.netlandish.com) Dependencies @@ -103,6 +103,9 @@ brand_id='your brand id', query_string='Your query string', send_campaign=0, #default's to 0, use 1 to send email right away + segment_ids='segment_id_1,segment_id_2', + exclude_list_ids='list_id_1,list_id_2,list_id_3', + exclude_segments_ids='segment_id_1,segment_id_2', ) diff --git a/sendy/__init__.py b/sendy/__init__.py --- a/sendy/__init__.py +++ b/sendy/__init__.py @@ -1,6 +1,6 @@ name = 'sendypy' -VERSION = (4, 0, 5, 'final', 0) +VERSION = (4, 0, 9, 'final', 0) def get_version(): diff --git a/sendy/api.py b/sendy/api.py --- a/sendy/api.py +++ b/sendy/api.py @@ -74,6 +74,9 @@ "brand_id", "query_string", "send_campaign", + "segment_ids", + "exclude_list_ids", + "exclude_segments_ids", ], success_message=["Campaign created", "Campaign created and now sending"], method="POST", diff --git a/setup.py b/setup.py --- a/setup.py +++ b/setup.py @@ -5,7 +5,7 @@ if os.path.exists("README.rst"): long_description = open("README.rst", "r").read() else: - long_description = "See https://hg.code.netlandish.com/~netlandish/sendypy" + long_description = "See https://code.netlandish.com/~netlandish/sendypy" setup( @@ -15,7 +15,7 @@ description="Python Interface for the Sendy API", author="Netlandish Inc.", author_email="hello@netlandish.com", - url="https://hg.code.netlandish.com/~netlandish/sendypy", + url="https://code.netlandish.com/~netlandish/sendypy", long_description=long_description, platforms=["any"], install_requires=["requests>=2.19.1"],