From ecd8a3ced6a5065fdda1df8fe4c72175c4a7a942 Mon Sep 17 00:00:00 2001 From: HackerNCoder Date: Mon, 27 Sep 2021 02:18:20 +0000 Subject: [PATCH] Add email sending --- relaystatus.py | 23 +++++++++++++++++------ 1 file changed, 17 insertions(+), 6 deletions(-) diff --git a/relaystatus.py b/relaystatus.py index ec304be..eddd282 100644 --- a/relaystatus.py +++ b/relaystatus.py @@ -1,7 +1,9 @@ import requests import os +import datetime import json import jsondiff as jd +import smtplib from jsondiff import diff old_file = "onionoo_details" @@ -15,20 +17,29 @@ old_text = json.loads(old_text)["relays"] diff1 = diff(old_text, relays, syntax='symmetric') +status = """From: relay status +To: relaystatus@lists.encryptionin.space +Subject: Relay Status """ + datetime.datetime.now(datetime.utc).strftime('%Y-%m-%d %H') + """\n\n""" + for new_relay in diff1[jd.insert]: exit = "no" if new_relay[1]["exit_policy"][0] != "reject *:*": exit = "yes" - print("New relay: \"" + new_relay[1]["nickname"], "\", fingerpint: " + new_relay[1]["fingerprint"] + ", potential exit: " + exit + ", effective family size: " + str(len(new_relay[1]["effective_family"]))) + status = status + "New relay: \"" + new_relay[1]["nickname"], "\", fingerpint: " + new_relay[1]["fingerprint"] + ", potential exit: " + exit + ", effective family size: " + str(len(new_relay[1]["effective_family"])) + "\n" for updated_relay in diff1: if updated_relay != jd.insert and updated_relay != jd.delete: if "flags" in diff1[updated_relay]: - relay = old_text[updated_relay] - new_flags = "" - for flag in diff1[updated_relay]["flags"][jd.insert]: - new_flags = new_flags+flag[1]+"," - print("\"" + relay["nickname"] + "\" (" + relay["fingerprint"] + ") got new flag(s): \"" + new_flags + "\"") + if "Exit" in diff1[updated_relay]["flags"][jd.insert]: + relay = old_text[updated_relay] + new_flags = "" + for flag in diff1[updated_relay]["flags"][jd.insert]: + new_flags = new_flags+flag[1]+"," + status = status + "\"" + relay["nickname"] + "\" (" + relay["fingerprint"] + ") got new flag(s): \"" + new_flags + "\"\n" with open(old_file, "w") as output: output.write(r.text) + +try: + smtp = smptlib.SMTP('localhost') + smtp.sendmail('relaystatus@encryptionin.space', ['relaystatus@lists.encryptionin.space'],)