summaryrefslogtreecommitdiff
path: root/support
diff options
context:
space:
mode:
authorLoui Chang <louipc.ist@gmail.com>2008-06-09 12:15:16 -0400
committerCallan Barrett <wizzomafizzo@gmail.com>2008-06-10 04:25:07 +0800
commitcceb66476ea0ee98f18d3f3c4a459226736f2736 (patch)
tree2180ed10a9bd7698258db675410022d1222e7c94 /support
parent4cc9d9926dabb69e68997ef738e7ccb604a29a9b (diff)
Add version, username and description to daily new package email.
Add some variables to make it more configurable. Do some general clean up on the script. Signed-off-by: Loui Chang <louipc.ist@gmail.com> Signed-off-by: Callan Barrett <wizzomafizzo@gmail.com>
Diffstat (limited to 'support')
-rwxr-xr-xsupport/scripts/newpackage-notify84
1 files changed, 49 insertions, 35 deletions
diff --git a/support/scripts/newpackage-notify b/support/scripts/newpackage-notify
index 24a996f..73e960a 100755
--- a/support/scripts/newpackage-notify
+++ b/support/scripts/newpackage-notify
@@ -1,5 +1,4 @@
#!/usr/bin/python -O
-# $Id$
# This program is intended to be run as a once-a-day cronjob, it
# sends a batched email containing the names of all new pacakges in
# the AUR, added within the last 24 hours, to those who have requested
@@ -11,76 +10,91 @@ import MySQLdb, MySQLdb.connections
import ConfigParser
from time import time
-#some options
-SENDMAIL="/usr/sbin/sendmail"
+# Some options
+SENDMAIL = "/usr/sbin/sendmail"
+SITE = "aur.archlinux.org"
+FROM = "aur-notify@archlinux.org"
+REPLYTO = "nobody@archlinux.org"
-#Copied and pasted from tupkg updater:
-###########################################################
-# Deal with configuration
-###########################################################
+# Deal with configuration.
-conffile = '/home/aur/tupkgs.conf'
+conffile = 'tupkgs.conf'
if not os.path.isfile(conffile):
- print "Error: cannot access config file ("+conffile+")"
+ print "Error: cannot access config file (%s)" % conffile
sys.exit(1)
config = ConfigParser.ConfigParser()
config.read(conffile)
-############################################################
-############################################################
-# Step 1, figure out the unix time 24 hours ago
-starttime = time() - 24*60*60
+# Step 1. Figure out the unix time 24 hours ago.
+starttime = time() - 24 * 60 * 60
+
+# Step 2. Do all the mysql mucking.
+dbconnection = MySQLdb.connect(host=config.get('mysql', 'host'),
+ user=config.get('mysql', 'username'),
+ passwd=config.get('mysql', 'password'),
+ db=config.get('mysql', 'db'))
-############################################################
-# Step 2, do all the mysql mucking
-dbconnection = MySQLdb.connect(host=config.get('mysql', 'host'), user=config.get('mysql', 'username'), passwd=config.get('mysql', 'password'), db=config.get('mysql', 'db'))
q = dbconnection.cursor()
-q.execute("SELECT Packages.Name, Packages.ID FROM Packages WHERE Packages.SubmittedTS >= %d AND Packages.DummyPkg = 0"%starttime)
+q.execute("SELECT Packages.Name, Packages.Version, Packages.ID, "
+ "Packages.Description, Users.Username FROM Packages, Users "
+ "WHERE SubmittedTS >= %d AND DummyPkg = 0 AND "
+ "Packages.SubmitterUID = Users.ID" % starttime)
+
packages = q.fetchall()
-q.execute("SELECT Users.Email FROM Users WHERE Users.NewPkgNotify = 1")
+q.execute("SELECT Users.Email FROM Users WHERE Users.NewPkgNotify = 1")
emails = q.fetchall()
-###########################################################
-# Step 3, generate the message, depending on what we found
+# Step 3. Generate the message, depending on what we found.
-#generate the headers to say where it is going
+# Generate the headers to say where it is going.
message = "To: \nBcc: "
emails_list=[]
+
for i in emails:
emails_list.append(i[0])
+
message = message + (", ".join(emails_list))
-#where it came from + other headers
-message = message + "\nReply-to: nobody@archlinux.org\nFrom: aur-notify@archlinux.org\nX-Mailer: Python\nX-MimeOLE: Produced by AUR\n"
+# E-mail headers
+message = ("%s\nReply-to: %s\n"
+ "From: %s\nX-Mailer: Python\n"
+ "X-MimeOLE: Produced by %s\n" %
+ (message, REPLYTO, FROM, SITE))
-#the subject
+# The subject
message = message + "Subject: AUR New Package Notification\n\n"
-#TODO: translations of message wouldn't kill anyone, but this would then need to find out the users language pref too
-#Ok now the body
-message = message + "Packages added to the AUR within the last 24 hours include:\n\n"
+# TODO: Translations of message wouldn't kill anyone, but this would then need
+# to find out the users language pref too.
+# Ok now the body
+message = "%sPackages added to %s in the last 24 hours:\n\n" % (message, SITE)
pkgs_list=[]
+
for i in packages:
- message = message + i[0] + " ( http://aur.archlinux.org/packages.php?do_Details=1&ID=%d )\n"%i[1]
-message = message + '''
+ message = ("%s%s %s\n\thttp://aur.archlinux.org/packages.php?ID=%d"
+ "\n\t%s\n\tSubmitted by: %s\n\n") % (
+ message, i[0], i[1], i[2], i[3], i[4])
+
+message = '''%s
---
You received this email because you chose to receive new package
notifications on your user options page in the AUR. If you no
longer wish to receive this daily mailing, please go to your
-user options page in the AUR (http://aur.archlinux.org) and
+user options page at http://%s and
uncheck "New Package Notify".
-'''
-#print message #that's for debug
+''' % (message, SITE)
+
+# Print message for debug.
+#print message
+#sys.exit(0)
-###########################################################
-# Step 4, mail that sucker
+# Step 4. Mail that sucker.
mailer = os.popen("%s -t" % SENDMAIL, 'w')
mailer.write(message)
mailer.close()
-# vim:noet:ts=2 sw=2 ft=python