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

Side by Side Diff: sitescripts/notifications/parser.py

Issue 29500676: Issue 5456 - Add support to specify urlFilters in the notification repository (Closed)
Patch Set: Addressed formatting comments Created Aug. 4, 2017, 8:40 a.m.
Left:
Right:
Use n/p to move between diff chunks; N/P to move between comments.
Jump to:
View unified diff | Download patch
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 # This file is part of the Adblock Plus web scripts, 1 # This file is part of the Adblock Plus web scripts,
2 # Copyright (C) 2006-2017 eyeo GmbH 2 # Copyright (C) 2006-2017 eyeo GmbH
3 # 3 #
4 # Adblock Plus is free software: you can redistribute it and/or modify 4 # Adblock Plus is free software: you can redistribute it and/or modify
5 # it under the terms of the GNU General Public License version 3 as 5 # it under the terms of the GNU General Public License version 3 as
6 # published by the Free Software Foundation. 6 # published by the Free Software Foundation.
7 # 7 #
8 # Adblock Plus is distributed in the hope that it will be useful, 8 # Adblock Plus is distributed in the hope that it will be useful,
9 # but WITHOUT ANY WARRANTY; without even the implied warranty of 9 # but WITHOUT ANY WARRANTY; without even the implied warranty of
10 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 10 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
(...skipping 74 matching lines...) Expand 10 before | Expand all | Expand 10 after
85 if 'targets' in notification: 85 if 'targets' in notification:
86 current['targets'].append(target) 86 current['targets'].append(target)
87 else: 87 else:
88 current['targets'] = [target] 88 current['targets'] = [target]
89 elif key == 'sample' and is_variant: 89 elif key == 'sample' and is_variant:
90 current['sample'] = float(value) 90 current['sample'] = float(value)
91 elif key in ['start', 'end']: 91 elif key in ['start', 'end']:
92 current[key] = datetime.datetime.strptime(value, '%Y-%m-%dT%H:%M') 92 current[key] = datetime.datetime.strptime(value, '%Y-%m-%dT%H:%M')
93 elif key == 'interval': 93 elif key == 'interval':
94 current[key] = int(value) 94 current[key] = int(value)
95 elif key == 'urls':
96 current['urlFilters'] = [
97 v.upper() + '^$document'
98 for v in value.split()
99 ]
95 else: 100 else:
96 raise Exception("Unknown parameter '%s' in file '%s'" % (key, name)) 101 raise Exception("Unknown parameter '%s' in file '%s'" % (key, name))
97 102
98 for text_key in ('title', 'message'): 103 for text_key in ('title', 'message'):
99 def has_default_locale(variant): 104 def has_default_locale(variant):
100 return 'en-US' in variant[text_key] 105 return 'en-US' in variant[text_key]
101 if not has_default_locale(notification): 106 if not has_default_locale(notification):
102 variants = notification.get('variants', []) 107 variants = notification.get('variants', [])
103 if not all(map(has_default_locale, variants)): 108 if not all(map(has_default_locale, variants)):
104 raise Exception('No %s for en-US (default language) ' 109 raise Exception('No %s for en-US (default language) '
(...skipping 21 matching lines...) Expand all
126 if not 'inactive' in notification: 131 if not 'inactive' in notification:
127 current_time = datetime.datetime.now() 132 current_time = datetime.datetime.now()
128 start = notification.pop('start', current_time) 133 start = notification.pop('start', current_time)
129 end = notification.pop('end', current_time) 134 end = notification.pop('end', current_time)
130 if not start <= current_time <= end: 135 if not start <= current_time <= end:
131 notification['inactive'] = True 136 notification['inactive'] = True
132 notifications.append(notification) 137 notifications.append(notification)
133 except: 138 except:
134 traceback.print_exc() 139 traceback.print_exc()
135 return notifications 140 return notifications
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld