Rietveld Code Review Tool
Help | Bug tracker | Discussion group | Source code

Side by Side Diff: sitescripts/reports/bin/updateDigests.py

Issue 8625042: Reports - user usefullness (Closed)
Patch Set: Reports - user usefulness Created Oct. 19, 2012, 12:54 p.m.
Left:
Right:
Use n/p to move between diff chunks; N/P to move between comments.
Jump to:
View unified diff | Download patch
OLDNEW
1 # coding: utf-8 1 # coding: utf-8
2 2
3 # This Source Code is subject to the terms of the Mozilla Public License 3 # This Source Code is subject to the terms of the Mozilla Public License
4 # version 2.0 (the "License"). You can obtain a copy of the License at 4 # version 2.0 (the "License"). You can obtain a copy of the License at
5 # http://mozilla.org/MPL/2.0/. 5 # http://mozilla.org/MPL/2.0/.
6 6
7 import MySQLdb, hashlib, sys, os, re 7 import MySQLdb, hashlib, sys, os, re
8 from time import time 8 from time import time
9 from email.utils import parseaddr 9 from email.utils import parseaddr
10 from sitescripts.utils import get_config, get_template, setupStderr 10 from sitescripts.utils import get_config, get_template, setupStderr
11 from sitescripts.reports.utils import getReports, getReportSubscriptions, calcul ateReportSecret, getDigestPath 11 from sitescripts.reports.utils import getReports, getReportSubscriptions, calcul ateReportSecret, getDigestPath, getUserUsefulnessScore
12 import sitescripts.subscriptions.subscriptionParser as subscriptionParser 12 import sitescripts.subscriptions.subscriptionParser as subscriptionParser
13 13
14 def updateDigests(dir): 14 def updateDigests(dir):
15 global currentTime 15 global currentTime
16 16
17 subs = subscriptionParser.readSubscriptions() 17 subs = subscriptionParser.readSubscriptions()
18 defname, defemail = parseaddr(get_config().get('reports', 'defaultSubscription Recipient')) 18 defname, defemail = parseaddr(get_config().get('reports', 'defaultSubscription Recipient'))
19 19
20 subscriptions = {} 20 subscriptions = {}
21 emails = {} 21 emails = {}
22 emails[defemail] = [] 22 emails[defemail] = []
23 for subscription in subs.values(): 23 for subscription in subs.values():
24 for title, url, complete in subscription.variants: 24 for title, url, complete in subscription.variants:
25 subscriptions[url] = subscription 25 subscriptions[url] = subscription
26 name, email = parseaddr(subscription.email) 26 name, email = parseaddr(subscription.email)
27 if email != '': 27 if email != '':
28 emails[email] = [] 28 emails[email] = []
29 29
30 startTime = currentTime - get_config().getint('reports', 'digestDays') * 24*60 *60 30 startTime = currentTime - get_config().getint('reports', 'digestDays') * 24*60 *60
31 for dbreport in getReports(startTime): 31 for dbreport in getReports(startTime):
32 report = { 32 report = {
33 'guid': dbreport['guid'], 33 'guid': dbreport['guid'],
34 'status': dbreport['status'], 34 'status': dbreport['status'],
35 'url': get_config().get('reports', 'urlRoot') + dbreport['guid'] + '#secre t=' + calculateReportSecret(dbreport['guid']), 35 'url': get_config().get('reports', 'urlRoot') + dbreport['guid'] + '#secre t=' + calculateReportSecret(dbreport['guid']),
36 'site': dbreport['site'], 36 'site': dbreport['site'],
37 'comment': dbreport['comment'], 37 'comment': dbreport['comment'],
38 'type': dbreport['type'], 38 'type': dbreport['type'],
39 'subscriptions': [], 39 'subscriptions': [],
40 'contact': dbreport['contact'], 40 'contact': dbreport['contact'],
41 'score': getUserUsefulnessScore(dbreport['contact']),
41 'hasscreenshot': dbreport['hasscreenshot'], 42 'hasscreenshot': dbreport['hasscreenshot'],
42 'knownIssues': dbreport['knownissues'], 43 'knownIssues': dbreport['knownissues'],
43 'time': dbreport['ctime'], 44 'time': dbreport['ctime'],
44 } 45 }
45 46
46 recipients = set() 47 recipients = set()
47 reportSubscriptions = getReportSubscriptions(dbreport['guid']) 48 reportSubscriptions = getReportSubscriptions(dbreport['guid'])
48 49
49 if dbreport['type'] == 'false positive' or dbreport['type'] == 'false negati ve': 50 if dbreport['type'] == 'false positive' or dbreport['type'] == 'false negati ve':
50 for subscription in reportSubscriptions: 51 for subscription in reportSubscriptions:
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
84 sub = { 85 sub = {
85 'name': subscription.name, 86 'name': subscription.name,
86 'type': subscription.type 87 'type': subscription.type
87 } 88 }
88 return sub 89 return sub
89 90
90 if __name__ == '__main__': 91 if __name__ == '__main__':
91 setupStderr() 92 setupStderr()
92 currentTime = time() 93 currentTime = time()
93 updateDigests(get_config().get('reports', 'digestPath')) 94 updateDigests(get_config().get('reports', 'digestPath'))
OLDNEW

Powered by Google App Engine
This is Rietveld