def index(self, *args_, **kwargs_): t = PageTemplate(rh=self, filename="IRC.mako") return t.render(topmenu="system", header=_("IRC"), title=_("IRC"), controller="IRC", action="index")
def get(self, *args, **kwargs): if self.get_current_user(): self.redirect('/' + sickbeard.DEFAULT_PAGE + '/') else: t = PageTemplate(rh=self, filename="login.mako") self.finish(t.render(title=_("Login"), header=_("Login"), topmenu="login"))
def index(self, *args_, **kwargs_): # noinspection PyBroadException try: news = sickbeard.versionCheckScheduler.action.check_for_new_news() except Exception: logger.log('Could not load news from repo, giving a link!', logger.DEBUG) news = _( 'Could not load news from the repo. [Click here for news.md])({news_url})' ).format(news_url=sickbeard.NEWS_URL) sickbeard.NEWS_LAST_READ = sickbeard.NEWS_LATEST sickbeard.NEWS_UNREAD = 0 sickbeard.save_config() t = PageTemplate(rh=self, filename="markdown.mako") data = markdown2.markdown(news if news else _( "The was a problem connecting to github, please refresh and try again" ), extras=['header-ids']) return t.render(title=_("News"), header=_("News"), topmenu="system", data=data, controller="news", action="index")
def write_error(self, status_code, **kwargs): # handle 404 http errors if status_code == 404: url = self.request.uri if sickbeard.WEB_ROOT and self.request.uri.startswith(sickbeard.WEB_ROOT): url = url[len(sickbeard.WEB_ROOT) + 1:] if url[:3] != 'api': t = PageTemplate(rh=self, filename="404.mako") return self.finish(t.render(title='404', header=_('Oops: 404 Not Found'))) else: self.finish(_('Wrong API key used')) elif self.settings.get("debug") and "exc_info" in kwargs: exc_info = kwargs["exc_info"] trace_info = ''.join(["{0}<br>".format(line) for line in traceback.format_exception(*exc_info)]) request_info = ''.join(["<strong>{0}</strong>: {1}<br>".format(k, self.request.__dict__[k]) for k in self.request.__dict__.keys()]) error = exc_info[1] self.set_header(b'Content-Type', 'text/html') self.finish("""<html> <title>{0}</title> <body> <h2>Error</h2> <p>{1}</p> <h2>Traceback</h2> <p>{2}</p> <h2>Request Info</h2> <p>{3}</p> <button onclick="window.location='{4}/errorlogs/';">View Log(Errors)</button> </body> </html>""".format(error, error, trace_info, request_info, sickbeard.WEB_ROOT))
def apibuilder(self): main_db_con = db.DBConnection(row_type='dict') shows = sorted(sickbeard.showList, key=lambda mbr: attrgetter('sort_name')(mbr)) episodes = {} results = main_db_con.select( 'SELECT episode, season, showid ' 'FROM tv_episodes ' 'ORDER BY season ASC, episode ASC' ) for result in results: if result[b'showid'] not in episodes: episodes[result[b'showid']] = {} if result[b'season'] not in episodes[result[b'showid']]: episodes[result[b'showid']][result[b'season']] = [] episodes[result[b'showid']][result[b'season']].append(result[b'episode']) if len(sickbeard.API_KEY) == 32: apikey = sickbeard.API_KEY else: apikey = _('API Key not generated') t = PageTemplate(rh=self, filename='apiBuilder.mako') return t.render(title=_('API Builder'), header=_('API Builder'), shows=shows, episodes=episodes, apikey=apikey, commands=function_mapper)
def index(self, *args, **kwargs): # noinspection PyBroadException try: changes = helpers.getURL( 'http://sickchill.github.io/sickchill-news/CHANGES.md', session=helpers.make_session(), returns='text') except Exception: logger.log('Could not load changes from repo, giving a link!', logger.DEBUG) changes = _( 'Could not load changes from the repo. [Click here for CHANGES.md]({changes_url})' ).format(changes_url= 'http://sickchill.github.io/sickchill-news/CHANGES.md') t = PageTemplate(rh=self, filename="markdown.mako") data = markdown2.markdown(changes if changes else _( "The was a problem connecting to github, please refresh and try again" ), extras=['header-ids']) return t.render(title=_("Changelog"), header=_("Changelog"), topmenu="system", data=data, controller="changes", action="index")
def index(self, level=logger.ERROR): # pylint: disable=arguments-differ level = try_int(level, logger.ERROR) t = PageTemplate(rh=self, filename="errorlogs.mako") return t.render(header=_("Logs & Errors"), title=_("Logs & Errors"), topmenu="system", submenu=self.ErrorLogsMenu(level), logLevel=level, controller="errorlogs", action="index")
def index(self, limit=None): # pylint: disable=arguments-differ sickbeard.HISTORY_LIMIT = limit = try_int(limit or sickbeard.HISTORY_LIMIT or 100, 100) sickbeard.save_config() compact = [] data = self.history.get(limit) for row in data: action = { 'action': row[b'action'], 'provider': row[b'provider'], 'resource': row[b'resource'], 'time': row[b'date'] } # noinspection PyTypeChecker if not any((history[b'show_id'] == row[b'show_id'] and history[b'season'] == row[b'season'] and history[b'episode'] == row[b'episode'] and history[b'quality'] == row[b'quality']) for history in compact): history = { 'actions': [action], 'episode': row[b'episode'], 'quality': row[b'quality'], 'resource': row[b'resource'], 'season': row[b'season'], 'show_id': row[b'show_id'], 'show_name': row[b'show_name'] } compact.append(history) else: index = [ i for i, item in enumerate(compact) if item[b'show_id'] == row[b'show_id'] and item[b'season'] == row[b'season'] and item[b'episode'] == row[b'episode'] and item[b'quality'] == row[b'quality'] ][0] history = compact[index] history[b'actions'].append(action) history[b'actions'].sort(key=lambda x: x[b'time'], reverse=True) t = PageTemplate(rh=self, filename="history.mako") submenu = [ {'title': _('Remove Selected'), 'path': 'history/removeHistory', 'icon': 'fa fa-eraser', 'class': 'removehistory', 'confirm': False}, {'title': _('Clear History'), 'path': 'history/clearHistory', 'icon': 'fa fa-trash', 'class': 'clearhistory', 'confirm': True}, {'title': _('Trim History'), 'path': 'history/trimHistory', 'icon': 'fa fa-scissors', 'class': 'trimhistory', 'confirm': True}, ] return t.render(historyResults=data, compactResults=compact, limit=limit, submenu=submenu, title=_('History'), header=_('History'), topmenu="history", controller="history", action="index")
def schedule(self, layout=None): next_week = datetime.date.today() + datetime.timedelta(days=7) next_week1 = datetime.datetime.combine(next_week, datetime.time(tzinfo=network_timezones.sb_timezone)) results = ComingEpisodes.get_coming_episodes(ComingEpisodes.categories, sickbeard.COMING_EPS_SORT, False) today = datetime.datetime.now().replace(tzinfo=network_timezones.sb_timezone) # Allow local overriding of layout parameter if layout and layout in ('poster', 'banner', 'list', 'calendar'): layout = layout else: layout = sickbeard.COMING_EPS_LAYOUT t = PageTemplate(rh=self, filename='schedule.mako') return t.render(next_week=next_week1, today=today, results=results, layout=layout, title=_('Schedule'), header=_('Schedule'), topmenu='schedule', controller="schedule", action="index")
def viewlog(self, min_level=logger.INFO, log_filter="<NONE>", log_search='', max_lines=500): data = sickbeard.logger.log_data(min_level, log_filter, log_search, max_lines) t = PageTemplate(rh=self, filename="viewlogs.mako") return t.render(header=_("Log File"), title=_("Logs"), topmenu="system", log_data="".join(data), min_level=min_level, log_filter=log_filter, log_search=log_search, controller="errorlogs", action="viewlogs")