diff --git a/sickbeard/webserve.py b/sickbeard/webserve.py index b6f023f2..90be1c64 100644 --- a/sickbeard/webserve.py +++ b/sickbeard/webserve.py @@ -521,6 +521,18 @@ class WebRoot(WebHandler): return t.respond() + +class CalendarHandler(BaseHandler): + def get(self, *args, **kwargs): + if sickbeard.CALENDAR_UNPROTECTED: + self.write(self.calendar()) + else: + self.calendar_auth() + + @authenticated + def calendar_auth(self): + self.write(self.calendar()) + # Raw iCalendar implementation by Pedro Jose Pereira Vieito (@pvieito). # # iCalendar (iCal) - Standard RFC 5545 diff --git a/sickbeard/webserveInit.py b/sickbeard/webserveInit.py index 2192233a..713e6a7d 100644 --- a/sickbeard/webserveInit.py +++ b/sickbeard/webserveInit.py @@ -3,7 +3,7 @@ import threading import sys import sickbeard -from sickbeard.webserve import LoginHandler, LogoutHandler, KeyHandler +from sickbeard.webserve import LoginHandler, LogoutHandler, KeyHandler, CalendarHandler from sickbeard.webapi import ApiHandler from sickbeard import logger from sickbeard.helpers import create_https_certificates, generateApiKey @@ -93,6 +93,11 @@ class SRWebServer(threading.Thread): # webui handlers ] + route.get_routes(self.options['web_root'])) + # Web calendar handler (Needed because option Unprotected calendar) + self.app.add_handlers('.*$', [ + (r'%s/calendar(/?.*)' % self.options['web_root'], CalendarHandler), + ]) + # Static File Handlers self.app.add_handlers(".*$", [ # favicon