git.ucc.asn.au
/
frenchie
/
icalparse.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Catching some more exceptions
[frenchie/icalparse.git]
/
icalparse.py
diff --git
a/icalparse.py
b/icalparse.py
index
713e9f3
..
2c7ec4e
100755
(executable)
--- a/
icalparse.py
+++ b/
icalparse.py
@@
-24,17
+24,26
@@
import sys
import urlparse
import os
import urlparse
import os
+
class InvalidICS(Exception): pass
class notJoined(Exception): pass
class InvalidICS(Exception): pass
class notJoined(Exception): pass
+class IncompleteICS(InvalidICS): pass
+
def lineJoiner(oldcal):
'''Takes a string containing a calendar and returns an array of its lines'''
def lineJoiner(oldcal):
'''Takes a string containing a calendar and returns an array of its lines'''
+ if not oldcal[0:15] == 'BEGIN:VCALENDAR':
+ raise InvalidICS, "Does not appear to be a valid ICS file"
+
+ if not 'END:VCALENDAR' in oldcal[-15:-1]:
+ raise IncompleteICS, "File appears to be incomplete"
+
if list(oldcal) == oldcal:
oldcal = '\r\n'.join(oldcal)
if list(oldcal) == oldcal:
oldcal = '\r\n'.join(oldcal)
- oldcal
.replace('\r\n ',
'')
- return oldcal.split('\r\n')
+ oldcal
= oldcal.replace('\r\n ', '').replace('\r\n\t',
'')
+ return oldcal.s
trip().s
plit('\r\n')
def lineFolder(oldcal, length=75):
def lineFolder(oldcal, length=75):
@@
-60,6
+69,7
@@
def lineFolder(oldcal, length=75):
return cal
return cal
+
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).
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).
@@
-87,7
+97,7
@@
def getContent(url='',stdin=False):
res = urllib2.urlopen(url)
content = res.read()
res.close()
res = urllib2.urlopen(url)
content = res.read()
res.close()
- except (urllib2.URLError,
Value
Error), e:
+ except (urllib2.URLError,
OS
Error), e:
sys.stderr.write('%s\n'%e)
sys.exit(1)
return content
sys.stderr.write('%s\n'%e)
sys.exit(1)
return content
@@
-121,7
+131,7
@@
def getHTTPContent(url='',cache='.httplib2-cache'):
try:
content = urllib2.urlopen(url).read()
return content
try:
content = urllib2.urlopen(url).read()
return content
- except
urllib2.URLError
, e:
+ except
(urllib2.URLError, OSError)
, e:
sys.stderr.write('%s\n'%e)
sys.exit(1)
sys.stderr.write('%s\n'%e)
sys.exit(1)
@@
-149,3
+159,5
@@
if __name__ == '__main__':
url = ''
content = getContent(url, options.stdin)
url = ''
content = getContent(url, options.stdin)
+ cal = lineJoiner(content)
+ print cal
UCC
git Repository :: git.ucc.asn.au