make send_emails into a proper script and add a few more widgets
This commit is contained in:
parent
6d7f648384
commit
e182dda381
@ -11,6 +11,8 @@ to manually register with sendgrid yourself, get an API key and put it in the fi
|
|||||||
|
|
||||||
import os
|
import os
|
||||||
import time
|
import time
|
||||||
|
import argparse
|
||||||
|
|
||||||
import numpy as np
|
import numpy as np
|
||||||
from sklearn import svm
|
from sklearn import svm
|
||||||
|
|
||||||
@ -161,15 +163,22 @@ def send_email(to, html):
|
|||||||
mail = Mail(from_email, to_email, subject, content)
|
mail = Mail(from_email, to_email, subject, content)
|
||||||
|
|
||||||
# hope for the best :)
|
# hope for the best :)
|
||||||
response = sg.client.mail.send.post(request_body=mail.get())
|
if not args.dry_run:
|
||||||
print(response.status_code)
|
response = sg.client.mail.send.post(request_body=mail.get())
|
||||||
|
print(response.status_code)
|
||||||
|
pass
|
||||||
|
|
||||||
# -----------------------------------------------------------------------------
|
# -----------------------------------------------------------------------------
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
|
|
||||||
TIME_DELTA = 3 # how recent papers are we recommending? in days
|
parser = argparse.ArgumentParser(description='Sends emails with recommendations')
|
||||||
NUM_RECCOMENDATIONS = 20 # how many papers to recommend?
|
parser.add_argument('-n', '--num-recommendations', type=int, default=20, help='number of recommendations to send per person')
|
||||||
|
parser.add_argument('-t', '--time-delta', type=int, default=3, help='how recent papers to recommended, in days')
|
||||||
|
parser.add_argument('-d', '--dry-run', type=int, default=0, help='if set to 1 do not actually send the emails')
|
||||||
|
parser.add_argument('-u', '--user', type=str, default='', help='restrict recommendations only to a single given user (used for debugging)')
|
||||||
|
args = parser.parse_args()
|
||||||
|
print(args)
|
||||||
|
|
||||||
tnow = time.time()
|
tnow = time.time()
|
||||||
tnow_str = time.strftime('%b %d', time.localtime(tnow)) # e.g. "Nov 27"
|
tnow_str = time.strftime('%b %d', time.localtime(tnow)) # e.g. "Nov 27"
|
||||||
@ -200,17 +209,20 @@ if __name__ == "__main__":
|
|||||||
if not email:
|
if not email:
|
||||||
print("skipping user %s, no email" % (user, ))
|
print("skipping user %s, no email" % (user, ))
|
||||||
continue
|
continue
|
||||||
|
if args.user and user != args.user:
|
||||||
|
print("skipping user %s, not %s" % (user, args.user))
|
||||||
|
continue
|
||||||
|
|
||||||
# calculate the recommendations
|
# calculate the recommendations
|
||||||
pids, scores = calculate_recommendation(tags, time_delta=TIME_DELTA)
|
pids, scores = calculate_recommendation(tags, time_delta=args.time_delta)
|
||||||
print("user %s has %d recommendations over last %d days" % (user, len(pids), TIME_DELTA))
|
print("user %s has %d recommendations over last %d days" % (user, len(pids), args.time_delta))
|
||||||
if len(pids) == 0:
|
if len(pids) == 0:
|
||||||
print("skipping the rest, no recommendations were produced")
|
print("skipping the rest, no recommendations were produced")
|
||||||
continue
|
continue
|
||||||
|
|
||||||
# render the html
|
# render the html
|
||||||
print("rendering top %d recommendations into a report..." % (NUM_RECCOMENDATIONS, ))
|
print("rendering top %d recommendations into a report..." % (args.num_recommendations, ))
|
||||||
html = render_recommendations(pids, scores, num_recommendations=NUM_RECCOMENDATIONS)
|
html = render_recommendations(pids, scores, num_recommendations=args.num_recommendations)
|
||||||
# temporarily for debugging write recommendations to disk for manual inspection
|
# temporarily for debugging write recommendations to disk for manual inspection
|
||||||
if os.path.isdir('recco'):
|
if os.path.isdir('recco'):
|
||||||
with open('recco/%s.html' % (user, ), 'w') as f:
|
with open('recco/%s.html' % (user, ), 'w') as f:
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user