Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import urllib2, re, time, pytz
- from xml.etree import cElementTree as ET
- from pprint import pprint
- from icalendar import Calendar, Event
- from datetime import datetime, timedelta
- from django.http import HttpResponse
- def myeps(request):
- username = 'YOUR_USERNAME'
- password = 'YOUR_PASSWORD_MD5_HASHED'
- url = 'http://www.myepisodes.com/rss.php?feed=mylist&uid=%s&pwdmd5=%s' % (username, password)
- response = urllib2.urlopen(url)
- xml = response.read()
- tree = ET.XML(xml)
- descs = tree.findall('channel/item')
- cal = Calendar()
- cal.add('prodid', '-//Blaise Kal//NONSGML MyEpisodes//EN')
- cal.add('version', '2.0')
- for desc in descs:
- desc = desc.findtext('description')
- title = re.search('\<h3\>(.*)\<\/h3\>', desc).group(1)
- episode = re.search('\<td\>([0-9]{2}x[0-9]{2})\<\/td\>', desc).group(1)
- date = re.search('\<td\>([0-9]{2}-[a-zA-Z]{3}-[0-9]{4})\<\/td\>', desc).group(1)
- date = '%s %s' % (date, re.search('\<td\>([0-9]{2}:[0-9]{2})\<\/td\>', desc).group(1))
- dt = datetime.strptime(date, '%d-%b-%Y %H:%M') - timedelta(hours=1)
- event = Event()
- event.add('summary', '%s %s' % (title, episode))
- event.add('dtstart', dt)
- event.add('dtend', dt + timedelta(hours=1))
- event.add('dtstamp', dt)
- event['uid'] = '%s%smyeps' % (title, episode)
- cal.add_component(event)
- response = HttpResponse(cal.to_ical(), content_type='text/calendar; charset=utf-8')
- response['Content-Disposition'] = 'Content-Disposition: inline; filename=myeps.ics'
- return response
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement