[CalendarServer-changes] [5651] CalendarServer/trunk/calendarserver/tools/fixcalendardata.py
source_changes at macosforge.org
source_changes at macosforge.org
Tue May 25 08:18:37 PDT 2010
Revision: 5651
http://trac.macosforge.org/projects/calendarserver/changeset/5651
Author: cdaboo at apple.com
Date: 2010-05-25 08:18:33 -0700 (Tue, 25 May 2010)
Log Message:
-----------
Better bad valarm detection.
Modified Paths:
--------------
CalendarServer/trunk/calendarserver/tools/fixcalendardata.py
Modified: CalendarServer/trunk/calendarserver/tools/fixcalendardata.py
===================================================================
--- CalendarServer/trunk/calendarserver/tools/fixcalendardata.py 2010-05-25 14:48:22 UTC (rev 5650)
+++ CalendarServer/trunk/calendarserver/tools/fixcalendardata.py 2010-05-25 15:18:33 UTC (rev 5651)
@@ -25,7 +25,7 @@
import time
import xattr
-from twext.python.plistlib import readPlist
+from plistlib import readPlist
PLIST_FILE = "/etc/caldavd/caldavd.plist"
SCAN_FILE = "problems.txt"
@@ -150,8 +150,9 @@
if testICSData_TZIDs(icsData):
problems.append("tzids")
fixTZIDs = True
- if testICSData_MultipleVALARMS(icsData):
- problems.append("multi-valarms")
+ valarms = testICSData_MultipleVALARMS(icsData)
+ if valarms != 0:
+ problems.append("multi-valarms-%d" % valarms)
fixMultiVALARMs = True
if problems:
if doFix:
@@ -182,7 +183,31 @@
def testICSData_MultipleVALARMS(icsData):
- return icsData.find("END:VALARM\r\nBEGIN:VALARM") != -1
+ if icsData.count("END:VALARM\r\nBEGIN:VALARM") > 0:
+
+ # More detailed scan
+ lines = icsData.split("\r\n")
+ badcount = 0
+ inevent = False
+ for line in lines:
+ line = line.upper()
+ if line == "BEGIN:VEVENT":
+ duplicate_count = 0
+ alarm_ids = set()
+ inevent = True
+ elif line == "END:VEVENT":
+ if duplicate_count > badcount:
+ badcount = duplicate_count
+ inevent = False
+ elif inevent and line.startswith("X-WR-ALARMUID"):
+ new_id = line
+ if new_id in alarm_ids:
+ duplicate_count += 1
+ else:
+ alarm_ids.add(new_id)
+ return badcount
+ else:
+ return 0
def fixData(basePath, scanPath):
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.macosforge.org/pipermail/calendarserver-changes/attachments/20100525/aee9adc6/attachment.html>
More information about the calendarserver-changes
mailing list