Created
September 24, 2018 09:39
-
-
Save kamigerami/f5d3fd5d5274e8433c9257cfa1074067 to your computer and use it in GitHub Desktop.
get_json_from_firebase_and_send_email
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/usr/bin/env python | |
# -*- coding: utf-8 -*- | |
import urllib2 | |
import json | |
import smtplib | |
import datetime | |
from smtplib import SMTPException | |
from email.MIMEText import MIMEText | |
import string | |
today = datetime.date.today().strftime("%Y-%m-%d") | |
proxy = urllib2.ProxyHandler({'https': 'proxy:8080'}) | |
opener = urllib2.build_opener(proxy) | |
urllib2.install_opener(opener) | |
response = urllib2.urlopen('https://domain.firebaseio.com/events.json?print=pretty&orderBy="datum"&equalTo="' + today + '"') | |
data = json.load(response) | |
def sendMail(sendfrom, sendto, subject, msg, subtype='plain'): | |
usr_from = sendfrom | |
msg = MIMEText(msg, subtype, _charset='utf-8') | |
msg['Subject'] = subject | |
msg['To'] = ';'.join(sendto) | |
msg['From'] = sendfrom | |
try: | |
server = smtplib.SMTP() | |
server.connect('localhost', '25') | |
server.sendmail(sendfrom, sendto, msg.as_string()) | |
# ONLY for debug | |
# server.set_debuglevel(1) | |
# if exchange use STARTTLS auth, you need to uncomment next line | |
# server.starttls() | |
server.quit() | |
except SMTPException: | |
print "Error: unable to send email" | |
return; | |
def poststat(data): | |
put_data = json.dumps(data) | |
opener = urllib2.build_opener(urllib2.HTTPHandler, proxy) | |
request = urllib2.Request('https://domainbackup.firebaseio.com/events.json', data=put_data) | |
request.add_header('Content-Type', 'application/json') | |
request.get_method = lambda: 'PUT' | |
request_url = opener.open(request) | |
def getstat(data): | |
for v in data.itervalues(): | |
body = """ | |
samtal : | |
kvinna %(sk)s | |
man %(sm)s | |
prognos : | |
kvinna %(pk)s | |
man %(pm)s | |
""" % { 'sk': str(v['arende']['samtal']['kvinna']), | |
'sm': str(v['arende']['samtal']['man']), | |
'pk': str(v['arende']['prognos']['kvinna']), | |
'pm': str(v['arende']['prognos']['man']) } | |
plats = v['plats'].encode('utf-8') | |
epost = v['epost'].encode('utf-8') | |
subject = plats + " " + str(v['datum']) | |
sendto = ['email@domain.com', epost] | |
sendMail('email@domain.com', sendto, subject, body) | |
if len(data) != 0: | |
getstat(data) | |
poststat(data) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment