Hi all,

I've written most of the new weather's backend a.k.a the notification scripts that run hourly(LowBandwidth, Nodedown) and daily(Welcome, Tshirt) as cron jobs and this is how they essentially operate:
1. Fetch and parse required documents from Onionoo.
2. Filter out required relays(e.g 'running', 'stable' flagged for welcome email).
3. For each filtered relay:
  3.a. For each notification type:
      3.a.a. Query the corresponding subscription model to get subscribers' info.
      3.a.b. Collect the email(to, from, subject, content) to be sent.
4. Send out the collected mass email.
5. Delete old entries and/or update the django models.

I happened to make some changes the onionoo-wrapper module in this process by modifying the response objects, utilities etc. The current version with all the changes is available at https://github.com/lucyd/tor-weather/tree/backend. After fixing a couple of issues, I setup the vagrant+puppet environment that was previously configured(#11417). I tested out the notification scripts and although the daily script is working fine, the hourly script is giving a couple of errors for now. I plan on fixing these pretty soon and testing the overall weather to make sure everything's working fine.

Cheers,
Sreenatha