More efficient lineFolder implementation
[frenchie/icalparse.git] / icalparse.py
index cc41353..cc548a3 100755 (executable)
@@ -60,12 +60,13 @@ def lineFolder(oldcal, length=75):
                if len(line.rstrip()) <= length:
                        cal.append(line)
                else:
-                       brokenline = [line[0:length] + '\r\n']
+                       brokenline = [line[0:length]]
                        ll = length
-                       while ll < len(line.rstrip('\r\n')) + 1:
-                               brokenline.append(' ' + line[ll:sl+ll].rstrip('\r\n') + '\r\n')
+                       while ll < len(line) + 1:
+                               brokenline.append(line[ll:sl+ll])
                                ll += sl
-                       cal += brokenline
+                       brokenline = '\r\n '.join(brokenline)
+                       cal.append(brokenline)
 
        return cal
 
@@ -83,6 +84,12 @@ def splitFields(cal):
        return ical
 
 
+def joinFields(ical):
+       '''Takes a list of tuples that make up a calendar file and returns a list of lines'''
+
+       return [':'.join(x) for x in ical]
+
+
 def getContent(url='',stdin=False):
        '''Generic content retriever, DO NOT use this function in a CGI script as
        it can read from the local disk (which you probably don't want it to).
@@ -194,6 +201,8 @@ def applyRules(ical, rules=[], verbose=False):
 
        return ical
 
+
+
 if __name__ == '__main__':
        from optparse import OptionParser
        # If the user passed us a 'stdin' argument, we'll go with that,
@@ -218,4 +227,5 @@ if __name__ == '__main__':
        content = getContent(url, options.stdin)
        cal = lineJoiner(content)
        ical = applyRules(splitFields(cal), generateRules())
-       print ical
+       output = lineFolder(joinFields(ical))
+       print output

UCC git Repository :: git.ucc.asn.au