def send(sms_to, sms_body, **kwargs): """ Site: http://iqsms.ru/ API: http://iqsms.ru/api/ """ headers = { "User-Agent": "DBMail/%s" % get_version(), 'Authorization': 'Basic %s' % b64encode("%s:%s" % (settings.IQSMS_API_LOGIN, settings.IQSMS_API_PASSWORD)).decode("ascii") } kwargs.update({ 'phone': sms_to, 'text': from_unicode(sms_body), 'sender': kwargs.pop('sms_from', settings.IQSMS_FROM) }) http = HTTPConnection(kwargs.pop("api_url", "gate.iqsms.ru")) http.request("GET", "/send/?" + urlencode(kwargs), headers=headers) response = http.getresponse() if response.status != 200: raise IQSMSError(response.reason) body = response.read().strip() if '=accepted' not in body: raise IQSMSError(body) return int(body.split('=')[0])
def send(sms_to, sms_body, **kwargs): """ Site: http://iqsms.ru/ API: http://iqsms.ru/api/ """ headers = { "User-Agent": "DBMail/%s" % get_version(), 'Authorization': 'Basic %s' % b64encode( "%s:%s" % ( settings.IQSMS_API_LOGIN, settings.IQSMS_API_PASSWORD )).decode("ascii") } kwargs.update({ 'phone': sms_to, 'text': from_unicode(sms_body), 'sender': kwargs.pop('sms_from', settings.IQSMS_FROM) }) http = HTTPConnection(kwargs.pop("api_url", "gate.iqsms.ru")) http.request("GET", "/send/?" + urlencode(kwargs), headers=headers) response = http.getresponse() if response.status != 200: raise IQSMSError(response.reason) body = response.read().strip() if '=accepted' not in body: raise IQSMSError(body) return int(body.split('=')[0])
def send(sms_to, sms_body, **kwargs): """ Site: http://smsaero.ru/ API: http://smsaero.ru/api/ """ headers = { "User-Agent": "DBMail/%s" % get_version(), } kwargs.update({ 'user': settings.SMSAERO_LOGIN, 'password': settings.SMSAERO_MD5_PASSWORD, 'from': kwargs.pop('sms_from', settings.SMSAERO_FROM), 'to': sms_to.replace('+', ''), 'text': from_unicode(sms_body) }) http = HTTPConnection(kwargs.pop("api_url", "gate.smsaero.ru")) http.request("GET", "/send/?" + urlencode(kwargs), headers=headers) response = http.getresponse() if response.status != 200: raise AeroSmsError(response.reason) body = response.read().strip() if '=accepted' not in body: raise AeroSmsError(body) return int(body.split('=')[0])
def send(sms_to, sms_body, **kwargs): """ Site: https://www.twilio.com/ API: https://www.twilio.com/docs/api/rest/sending-messages """ headers = { "Content-type": "application/x-www-form-urlencoded", "User-Agent": "DBMail/%s" % get_version(), 'Authorization': 'Basic %s' % b64encode("%s:%s" % (settings.TWILIO_ACCOUNT_SID, settings.TWILIO_AUTH_TOKEN)).decode("ascii") } kwargs.update({ 'From': kwargs.pop('sms_from', settings.TWILIO_FROM), 'To': sms_to, 'Body': from_unicode(sms_body) }) http = HTTPSConnection(kwargs.pop("api_url", "api.twilio.com")) http.request("POST", "/2010-04-01/Accounts/%s/Messages.json" % settings.TWILIO_ACCOUNT_SID, headers=headers, body=urlencode(kwargs)) response = http.getresponse() if response.status != 201: raise TwilioSmsError(response.reason) return loads(response.read()).get('sid')
def send(token, title, **kwargs): """ Site: https://boxcar.io/ API: http://help.boxcar.io/knowledgebase/topics/48115-boxcar-api Desc: Best app for system administrators """ headers = { "Content-type": "application/x-www-form-urlencoded", "User-Agent": "DBMail/%s" % get_version(), } data = { "user_credentials": token, "notification[title]": from_unicode(title), "notification[sound]": "notifier-2" } for k, v in kwargs.items(): data['notification[%s]' % k] = from_unicode(v) http = HTTPSConnection(kwargs.pop("api_url", "new.boxcar.io")) http.request( "POST", "/api/notifications", headers=headers, body=urlencode(data)) response = http.getresponse() if response.status != 201: raise BoxcarError(response.reason) return True
def _insert_mailer_identification_head(self): if not ADD_HEADER: return headers = self._kwargs.pop('headers', {}) headers.update( {'X-Mailer-Wrapper': 'django-db-mailer ver %s' % get_version()}) self._kwargs['headers'] = headers
def send(sms_to, sms_body, **kwargs): """ Site: https://www.twilio.com/ API: https://www.twilio.com/docs/api/rest/sending-messages """ headers = { "Content-type": "application/x-www-form-urlencoded", "User-Agent": "DBMail/%s" % get_version(), 'Authorization': 'Basic %s' % b64encode( "%s:%s" % ( settings.TWILIO_ACCOUNT_SID, settings.TWILIO_AUTH_TOKEN )).decode("ascii") } kwargs.update({ 'From': kwargs.pop('sms_from', settings.TWILIO_FROM), 'To': sms_to, 'Body': from_unicode(sms_body) }) http = HTTPSConnection(kwargs.pop("api_url", "api.twilio.com")) http.request( "POST", "/2010-04-01/Accounts/%s/Messages.json" % settings.TWILIO_ACCOUNT_SID, headers=headers, body=urlencode(kwargs)) response = http.getresponse() if response.status != 201: raise TwilioSmsError(response.reason) return loads(response.read()).get('sid')
def _insert_mailer_identification_head(self): if not ADD_HEADER: return headers = self._kwargs.pop('headers', {}) headers.update( {'X-Mailer-Wrapper': 'django-db-mailer ver %s' % get_version()}) self._kwargs['headers'] = headers
def send(channel, message, **kwargs): """ Site: https://slack.com API: https://api.slack.com Desc: real-time messaging """ headers = { "Content-type": "application/x-www-form-urlencoded", "User-Agent": "DBMail/%s" % get_version(), } username = from_unicode(kwargs.pop("username", settings.SLACK_USERNAME)) hook_url = from_unicode(kwargs.pop("hook_url", settings.SLACK_HOOCK_URL)) channel = from_unicode(channel or settings.SLACK_CHANNEL) emoji = from_unicode(kwargs.pop("emoji", "")) message = from_unicode(message) data = { "channel": channel, "username": username, "text": message, "icon_emoji": emoji, } _data = kwargs.pop('data', None) if _data is not None: data.update(_data) up = urlparse(hook_url) http = HTTPSConnection(up.netloc) http.request( "POST", up.path, headers=headers, body=urlencode({"payload": dumps(data)})) response = http.getresponse() if response.status != 200: raise SlackError(response.reason) body = response.read() if body != "ok": raise SlackError(repr(body)) return True
def send(channel, message, **kwargs): """ Site: https://slack.com API: https://api.slack.com Desc: real-time messaging """ headers = { "Content-type": "application/x-www-form-urlencoded", "User-Agent": "DBMail/%s" % get_version(), } username = from_unicode(kwargs.pop("username", settings.SLACK_USERNAME)) hook_url = from_unicode(kwargs.pop("hook_url", settings.SLACK_HOOCK_URL)) channel = from_unicode(channel or settings.SLACK_CHANNEL) emoji = from_unicode(kwargs.pop("emoji", "")) message = from_unicode(message) data = { "channel": channel, "username": username, "text": message, "icon_emoji": emoji, } _data = kwargs.pop('data', None) if _data is not None: data.update(_data) up = urlparse(hook_url) http = HTTPSConnection(up.netloc) http.request("POST", up.path, headers=headers, body=urlencode({"payload": dumps(data)})) response = http.getresponse() if response.status != 200: raise SlackError(response.reason) body = response.read() if body != "ok": raise SlackError(repr(body)) return True
def send(api_key, description, **kwargs): """ Site: http://prowlapp.com API: http://prowlapp.com/api.php Desc: Best app for system administrators """ headers = { "User-Agent": "DBMail/%s" % get_version(), "Content-type": "application/x-www-form-urlencoded" } application = from_unicode(kwargs.pop("app", settings.PROWL_APP), 256) event = from_unicode(kwargs.pop("event", 'Alert'), 1024) description = from_unicode(description, 10000) data = { "apikey": api_key, "application": application, "event": event, "description": description, "priority": kwargs.pop("priority", 1) } provider_key = kwargs.pop("providerkey", None) url = kwargs.pop('url', None) if provider_key is not None: data["providerkey"] = provider_key if url is not None: data["url"] = url[0:512] http = HTTPSConnection(kwargs.pop("api_url", "api.prowlapp.com")) http.request("POST", "/publicapi/add", headers=headers, body=urlencode(data)) response = http.getresponse() if response.status != 200: raise ProwlError(response.reason) return True
def send(api_key, description, **kwargs): """ Site: http://prowlapp.com API: http://prowlapp.com/api.php Desc: Best app for system administrators """ headers = { "User-Agent": "DBMail/%s" % get_version(), "Content-type": "application/x-www-form-urlencoded" } application = from_unicode(kwargs.pop("app", settings.PROWL_APP), 256) event = from_unicode(kwargs.pop("event", 'Alert'), 1024) description = from_unicode(description, 10000) data = { "apikey": api_key, "application": application, "event": event, "description": description, "priority": kwargs.pop("priority", 1) } provider_key = kwargs.pop("providerkey", None) url = kwargs.pop('url', None) if provider_key is not None: data["providerkey"] = provider_key if url is not None: data["url"] = url[0:512] http = HTTPSConnection(kwargs.pop("api_url", "api.prowlapp.com")) http.request( "POST", "/publicapi/add", headers=headers, body=urlencode(data)) response = http.getresponse() if response.status != 200: raise ProwlError(response.reason) return True
def send(device_id, description, **kwargs): """ Site: http://parse.com API: https://www.parse.com/docs/push_guide#scheduled/REST Desc: Best app for system administrators """ headers = { "X-Parse-Application-Id": settings.PARSE_APP_ID, "X-Parse-REST-API-Key": settings.PARSE_API_KEY, "User-Agent": "DBMail/%s" % get_version(), "Content-type": "application/json", } data = { "where": { "user_id": device_id, }, "data": { "alert": description, "title": kwargs.pop("event") } } _data = kwargs.pop('data', None) if _data is not None: data.update(_data) http = HTTPSConnection(kwargs.pop("api_url", "api.parse.com")) http.request( "POST", "/1/push", headers=headers, body=dumps(data)) response = http.getresponse() if response.status != 200: raise ParseComError(response.reason) body = loads(response.read()) if body['error']: raise ParseComError(body['error']) return True
def send(user, message, **kwargs): """ Site: https://pushover.net/ API: https://pushover.net/api Desc: real-time notifications """ headers = { "Content-type": "application/x-www-form-urlencoded", "User-Agent": "DBMail/%s" % get_version(), } title = from_unicode(kwargs.pop("title", settings.PUSHOVER_APP)) message = from_unicode(message) data = { "token": settings.PUSHOVER_TOKEN, "user": user, "message": message, "title": title, "priority": kwargs.pop("priority", 0) } _data = kwargs.pop('data', None) if _data is not None: data.update(_data) http = HTTPSConnection(kwargs.pop("api_url", "api.pushover.net")) http.request( "POST", "/1/messages.json", headers=headers, body=urlencode(data)) response = http.getresponse() if response.status != 200: raise PushOverError(response.reason) body = loads(response.read()) if body.get('status') != 1: raise PushOverError(repr(body)) return True
def send(user, message, **kwargs): """ Site: https://pushover.net/ API: https://pushover.net/api Desc: real-time notifications """ headers = { "Content-type": "application/x-www-form-urlencoded", "User-Agent": "DBMail/%s" % get_version(), } title = from_unicode(kwargs.pop("title", settings.PUSHOVER_APP)) message = from_unicode(message) data = { "token": settings.PUSHOVER_TOKEN, "user": user, "message": message, "title": title, "priority": kwargs.pop("priority", 0) } _data = kwargs.pop('data', None) if _data is not None: data.update(_data) http = HTTPSConnection(kwargs.pop("api_url", "api.pushover.net")) http.request( "POST", "/1/messages.json", headers=headers, body=urlencode(data)) response = http.getresponse() if response.status != 200: raise PushOverError(response.reason) body = loads(response.read()) if body.get('status') != 1: raise PushOverError(repr(body)) return True
def send(sms_to, sms_body, **kwargs): """ Site: http://smsaero.ru/ API: http://smsaero.ru/api/ """ headers = { "User-Agent": "DBMail/%s" % get_version(), } kwargs.update({ 'user': settings.SMSAERO_LOGIN, 'password': settings.SMSAERO_MD5_PASSWORD, 'from': kwargs.pop('sms_from', settings.SMSAERO_FROM), 'to': sms_to.replace('+', ''), 'text': from_unicode(sms_body), 'answer': 'json', }) http = HTTPConnection(kwargs.pop("api_url", "gate.smsaero.ru")) http.request("GET", "/send/?" + urlencode(kwargs), headers=headers) response = http.getresponse() if response.status != 200: raise AeroSmsError(response.reason) read = response.read().decode(response.headers.get_content_charset()) data = json.loads(read) status = None if 'result' in data: status = data['result'] sms_id = None if 'id' in data: sms_id = data['id'] if sms_id and status == 'accepted': return True return False
def send(device_id, description, **kwargs): """ Site: http://parse.com API: https://www.parse.com/docs/push_guide#scheduled/REST Desc: Best app for system administrators """ headers = { "X-Parse-Application-Id": settings.PARSE_APP_ID, "X-Parse-REST-API-Key": settings.PARSE_API_KEY, "User-Agent": "DBMail/%s" % get_version(), "Content-type": "application/json", } data = { "where": { "user_id": device_id, }, "data": { "alert": description, "title": kwargs.pop("event") } } _data = kwargs.pop('data', None) if _data is not None: data.update(_data) http = HTTPSConnection(kwargs.pop("api_url", "api.parse.com")) http.request("POST", "/1/push", headers=headers, body=dumps(data)) response = http.getresponse() if response.status != 200: raise ParseComError(response.reason) body = loads(response.read()) if body['error']: raise ParseComError(body['error']) return True
'custom_undo_redo_levels': 10, } CKEDITOR_UPLOAD_PATH = os.path.join(MEDIA_ROOT, 'uploads') CKEDITOR_CONFIGS = { 'default': { 'toolbar': None, 'height': 300, 'width': '100%', 'allowedContent': True, }, } SUIT_CONFIG = { 'ADMIN_NAME': 'Django DB Mailer v.%s' % dbmail.get_version(), 'SEARCH_URL': '', 'MENU': ( {'app': 'dbmail', 'label': 'DBMailer', 'icon': 'icon-align-justify'}, ) } GRAPPELLI_ADMIN_TITLE = 'Django DB Mailer v.%s' % dbmail.get_version() GRAPPELLI_INDEX_DASHBOARD = 'demo.dashboard.DBMailerDashboard' EMAIL_BACKEND = 'django.core.mail.backends.console.EmailBackend' DEFAULT_FROM_EMAIL = 'Django <*****@*****.**>' if 'test' not in sys.argv: CACHES = {
from setuptools import setup, find_packages from dbmail import get_version setup( name='django-db-mailer', version=get_version(), description='Django module to easily send emails using ' 'django templates stored in a database.', keywords="django db mail email html text tts sms push templates mailer", long_description=open('README.rst').read(), author="GoTLiuM InSPiRiT", author_email='*****@*****.**', url='http://github.com/LPgenerator/django-db-mailer/', packages=find_packages(exclude=['demo']), package_data={'dbmail': [ 'locale/*/LC_MESSAGES/django.*', 'static/dbmail/admin/js/*.js', 'fixtures/*.json', ]}, include_package_data=True, install_requires=[ 'setuptools', ], zip_safe=False, classifiers=[ 'Development Status :: 5 - Production/Stable', 'Environment :: Web Environment', 'Framework :: Django', 'Intended Audience :: Developers', 'License :: OSI Approved :: GNU General Public License (GPL)',
# The encoding of source files. #source_encoding = 'utf-8-sig' # The master toctree document. master_doc = 'index' # General information about the project. project = u'django-db-mailer' copyright = u'2014, ' # The version info for the project you're documenting, acts as replacement for # |version| and |release|, also used in various other places throughout the # built documents. # # The short X.Y version. version = get_version() # The full version, including alpha/beta/rc tags. release = get_version() # The language for content autogenerated by Sphinx. Refer to documentation # for a list of supported languages. #language = None # There are two options for replacing |today|: either, you set today to some # non-false value, then it is used: #today = '' # Else, today_fmt is used as the format for a strftime call. #today_fmt = '%B %d, %Y' # List of patterns, relative to source directory, that match files and # directories to ignore when looking for source files.
'custom_undo_redo_levels': 10, } CKEDITOR_UPLOAD_PATH = os.path.join(MEDIA_ROOT, 'uploads') CKEDITOR_CONFIGS = { 'default': { 'toolbar': None, 'height': 300, 'width': '100%', 'allowedContent': True, }, } SUIT_CONFIG = { 'ADMIN_NAME': 'Django DB Mailer v.%s' % dbmail.get_version(), 'SEARCH_URL': '', 'MENU': ( {'app': 'dbmail', 'label': 'DBMailer', 'icon': 'icon-align-justify'}, ) } GRAPPELLI_ADMIN_TITLE = 'Django DB Mailer v.%s' % dbmail.get_version() GRAPPELLI_INDEX_DASHBOARD = 'demo.dashboard.DBMailerDashboard' EMAIL_BACKEND = 'django.core.mail.backends.console.EmailBackend' DEFAULT_FROM_EMAIL = 'Django <*****@*****.**>' if 'test' not in sys.argv: CACHES = {
from setuptools import setup, find_packages from dbmail import get_version setup( name='django-db-mailer', version=get_version(), description='Django module to easily send emails using ' 'django templates stored in a database.', keywords="django db mail email html text tts sms push templates mailer", long_description=open('README.rst', mode='r', encoding='utf-8').read(), author="GoTLiuM InSPiRiT", author_email='*****@*****.**', url='http://github.com/LPgenerator/django-db-mailer/', packages=find_packages(exclude=['demo']), package_data={ 'dbmail': [ 'locale/*/LC_MESSAGES/django.*', 'static/dbmail/admin/js/*.js', 'fixtures/*.json', ] }, include_package_data=True, install_requires=[ 'setuptools', 'Django>1.9,<=2.1.5', 'twilio==6.31.1', 'django-push-notifications==2.0.0', 'djangorestframework>=3.6.3', ], zip_safe=False, classifiers=[