From: Duncan W. <du...@fr...> - 2009-02-19 17:59:52
|
Author: duncan Date: Thu Feb 19 12:59:44 2009 New Revision: 11322 Log: Make the webserver's record client a singleton so it is initialised only once Modified: branches/rel-1/freevo/src/www/htdocs/edit_favorite.rpy branches/rel-1/freevo/src/www/htdocs/favorites.rpy branches/rel-1/freevo/src/www/htdocs/genre.rpy branches/rel-1/freevo/src/www/htdocs/guide.rpy branches/rel-1/freevo/src/www/htdocs/guidechannel.rpy branches/rel-1/freevo/src/www/htdocs/index.rpy branches/rel-1/freevo/src/www/htdocs/library.rpy branches/rel-1/freevo/src/www/htdocs/library1.rpy branches/rel-1/freevo/src/www/htdocs/manualrecord.rpy branches/rel-1/freevo/src/www/htdocs/record.rpy branches/rel-1/freevo/src/www/htdocs/search.rpy branches/rel-1/freevo/src/www/htdocs/wap_rec.rpy branches/rel-1/freevo/src/www/web_types.py Modified: branches/rel-1/freevo/src/www/htdocs/edit_favorite.rpy ============================================================================== --- branches/rel-1/freevo/src/www/htdocs/edit_favorite.rpy (original) +++ branches/rel-1/freevo/src/www/htdocs/edit_favorite.rpy Thu Feb 19 12:59:44 2009 @@ -32,11 +32,9 @@ import sys, time, string import config -from tv.record_types import Favorite import tv.epg_xmltv -from tv.record_client import RecordClient - -from www.web_types import HTMLResource, FreevoResource +from tv.record_types import Favorite +from www.web_types import HTMLResource, FreevoResource, RecordClientResource TRUE = 1 FALSE = 0 @@ -44,14 +42,14 @@ class EditFavoriteResource(FreevoResource): def __init__(self): - self.recordclient = RecordClient() + self.recordclient = RecordClientResource() def _render(self, request): fv = HTMLResource() form = request.args - server_available = self.recordclient.pingNow() + server_available = self.recordclient().pingNow() if not server_available: fv.printHeader(_('Edit Favorite'), 'styles/main.css') fv.printMessagesFinish([ '<b>'+_('ERROR')+'</b>: '+_('Recording server is not available') ]) @@ -68,14 +66,14 @@ if isinstance( name, str ): name = Unicode( name, 'latin-1' ) - (status, favorites) = self.recordclient.getFavoritesNow() + (status, favorites) = self.recordclient().getFavoritesNow() if status: num_favorites = len(favorites) else: num_favorites = 0 if action == 'add' and chan and start: - (result, prog) = self.recordclient.findProgNow(chan, start) + (result, prog) = self.recordclient().findProgNow(chan, start) if not result: fv.printHeader('Edit Favorite', 'styles/main.css') @@ -91,7 +89,7 @@ fav = Favorite(prog.title, prog, TRUE, TRUE, TRUE, priority, FALSE) elif action == 'edit' and name: - (result, fav) = self.recordclient.getFavoriteNow(name) + (result, fav) = self.recordclient().getFavoriteNow(name) else: pass @@ -283,13 +281,13 @@ if config.TV_RECORD_DUPLICATE_DETECTION: - (tempStatus, tempFav) = self.recordclient.getFavoriteNow(fav.name) + (tempStatus, tempFav) = self.recordclient().getFavoriteNow(fav.name) if hasattr(tempFav, 'allowDuplicates'): fv.res += 'document.editfavorite.allowDuplicates.options[%s].selected=true\n' % \ abs(int(tempFav.allowDuplicates)-1) if config.TV_RECORD_ONLY_NEW_DETECTION: - (tempStatus, tempFav) = self.recordclient.getFavoriteNow(fav.name) + (tempStatus, tempFav) = self.recordclient().getFavoriteNow(fav.name) if hasattr(tempFav, 'onlyNew'): fv.res += 'document.editfavorite.onlyNew.options[%s].selected=true\n' % int(tempFav.onlyNew) Modified: branches/rel-1/freevo/src/www/htdocs/favorites.rpy ============================================================================== --- branches/rel-1/freevo/src/www/htdocs/favorites.rpy (original) +++ branches/rel-1/freevo/src/www/htdocs/favorites.rpy Thu Feb 19 12:59:44 2009 @@ -33,10 +33,9 @@ import urllib import config -from tv.record_client import RecordClient import util.tv_util as tv_util -from www.web_types import HTMLResource, FreevoResource +from www.web_types import HTMLResource, FreevoResource, RecordClientResource TRUE = 1 FALSE = 0 @@ -44,17 +43,17 @@ class FavoritesResource(FreevoResource): def __init__(self): - self.recordclient = RecordClient() + self.recordclient = RecordClientResource() def _render(self, request): fv = HTMLResource() form = request.args - server_available = self.recordclient.pingNow() + server_available = self.recordclient().pingNow() if not server_available: fv.printHeader(_('Favorites'), 'styles/main.css', selected=_('Favorites')) - fv.printMessagesFinish(['<b>'+_('ERROR')+'</b>: '+self.recordclient.recordserverdown]) + fv.printMessagesFinish(['<b>'+_('ERROR')+'</b>: '+self.recordclient().recordserverdown]) return String(fv.res) action = fv.formValue(form, 'action') @@ -74,18 +73,18 @@ onlyNew = fv.formValue(form, 'onlyNew') if action == 'remove': - self.recordclient.removeFavoriteNow(name) + self.recordclient().removeFavoriteNow(name) elif action == 'add': - self.recordclient.addEditedFavoriteNow(name, title, chan, dow, mod, priority, allowDuplicates, onlyNew) + self.recordclient().addEditedFavoriteNow(name, title, chan, dow, mod, priority, allowDuplicates, onlyNew) elif action == 'edit': - self.recordclient.removeFavoriteNow(oldname) - self.recordclient.addEditedFavoriteNow(name, title, chan, dow, mod, priority, allowDuplicates, onlyNew) + self.recordclient().removeFavoriteNow(oldname) + self.recordclient().addEditedFavoriteNow(name, title, chan, dow, mod, priority, allowDuplicates, onlyNew) elif action == 'bump': - self.recordclient.adjustPriorityNow(name, priority) + self.recordclient().adjustPriorityNow(name, priority) else: pass - (status, favorites) = self.recordclient.getFavoritesNow() + (status, favorites) = self.recordclient().getFavoritesNow() days = { @@ -149,7 +148,7 @@ fv.tableCell(cell, 'class="'+status+'" colspan="1"') if config.TV_RECORD_DUPLICATE_DETECTION: - (tempStatus, tempFav) = self.recordclient.getFavoriteNow(fav.name) + (tempStatus, tempFav) = self.recordclient().getFavoriteNow(fav.name) if hasattr(tempFav,'allowDuplicates') and int(tempFav.allowDuplicates) == 1: cell = 'ALLOW' elif hasattr(tempFav,'allowDuplicates') and int(tempFav.allowDuplicates) == 0: @@ -159,7 +158,7 @@ fv.tableCell(cell, 'class="'+status+'" colspan="1"') if config.TV_RECORD_ONLY_NEW_DETECTION: - (tempStatus, tempFav) = self.recordclient.getFavoriteNow(fav.name) + (tempStatus, tempFav) = self.recordclient().getFavoriteNow(fav.name) if hasattr(tempFav,'onlyNew') and int(tempFav.onlyNew) == 1: cell = 'ONLY NEW' elif hasattr(tempFav,'onlyNew') and int(tempFav.onlyNew) == 0: Modified: branches/rel-1/freevo/src/www/htdocs/genre.rpy ============================================================================== --- branches/rel-1/freevo/src/www/htdocs/genre.rpy (original) +++ branches/rel-1/freevo/src/www/htdocs/genre.rpy Thu Feb 19 12:59:44 2009 @@ -33,8 +33,7 @@ import config import util -from tv.record_client import RecordClient -from www.web_types import HTMLResource, FreevoResource +from www.web_types import HTMLResource, FreevoResource, RecordClientResource import tv.epg_xmltv TRUE = 1 @@ -42,7 +41,7 @@ class GenreResource(FreevoResource): def __init__(self): - self.recordclient = RecordClient() + self.recordclient = RecordClientResource() # need sub to get list of possible categories @@ -63,11 +62,11 @@ fv = HTMLResource() form = request.args - server_available = self.recordclient.pingNow() + server_available = self.recordclient().pingNow() if not server_available: fv.printHeader(_('TV Genre for %s') % time.strftime('%a %b %d', time.localtime(mfrguidestart)), \ config.WWW_STYLESHEET, config.WWW_JAVASCRIPT) - fv.printMessagesFinish(['<b>'+_('ERROR')+'</b>: '+self.recordclient.recordserverdown]) + fv.printMessagesFinish(['<b>'+_('ERROR')+'</b>: '+self.recordclient().recordserverdown]) return String(fv.res) mfrguidestart = time.time() @@ -91,7 +90,7 @@ category = fv.formValue(form, 'category') guide = tv.epg_xmltv.get_guide() - (status, schedule) = self.recordclient.getScheduledRecordingsNow() + (status, schedule) = self.recordclient().getScheduledRecordingsNow() if not status: fv.printMessagesFinish(['<b>'+_('ERROR')+'</b>: '+_('No program schedule')]) return String(fv.res) @@ -158,7 +157,7 @@ # use counter to see if we have data gotdata += 1 - (result, reason) = self.recordclient.isProgScheduledNow(prog, schedule) + (result, reason) = self.recordclient().isProgScheduledNow(prog, schedule) if result: status = 'scheduled' really_now = time.time() Modified: branches/rel-1/freevo/src/www/htdocs/guide.rpy ============================================================================== --- branches/rel-1/freevo/src/www/htdocs/guide.rpy (original) +++ branches/rel-1/freevo/src/www/htdocs/guide.rpy Thu Feb 19 12:59:44 2009 @@ -32,15 +32,14 @@ import sys, string import time -from www.web_types import HTMLResource, FreevoResource from twisted.web.woven import page import config import util.tv_util as tv_util import util import tv.epg_xmltv -from tv.record_client import RecordClient from twisted.web import static +from www.web_types import HTMLResource, FreevoResource, RecordClientResource DEBUG = 0 @@ -49,7 +48,7 @@ class GuideResource(FreevoResource): def __init__(self): - self.recordclient = RecordClient() + self.recordclient = RecordClientResource() def makecategorybox(self, chanlist): @@ -141,7 +140,7 @@ mfrprevguide = 0 guide = tv.epg_xmltv.get_guide() - (status, schedule) = self.recordclient.getScheduledRecordingsNow() + (status, schedule) = self.recordclient().getScheduledRecordingsNow() if status: program_list = schedule.getProgramList() @@ -209,7 +208,7 @@ status = 'program' if status: - (result, reason) = self.recordclient.isProgScheduledNow(prog, schedule) + (result, reason) = self.recordclient().isProgScheduledNow(prog, schedule) if result: status = 'scheduled' really_now = time.time() Modified: branches/rel-1/freevo/src/www/htdocs/guidechannel.rpy ============================================================================== --- branches/rel-1/freevo/src/www/htdocs/guidechannel.rpy (original) +++ branches/rel-1/freevo/src/www/htdocs/guidechannel.rpy Thu Feb 19 12:59:44 2009 @@ -33,15 +33,14 @@ import time import datetime -from www.web_types import HTMLResource, FreevoResource from twisted.web.woven import page +from twisted.web import static import util.tv_util as tv_util import util import config import tv.epg_xmltv -from tv.record_client import RecordClient -from twisted.web import static +from www.web_types import HTMLResource, FreevoResource, RecordClientResource from www.configlib import * DEBUG = 0 @@ -51,7 +50,7 @@ class GuideResource(FreevoResource): def __init__(self): - self.recordclient = RecordClient() + self.recordclient = RecordClientResource() def GetChannelList(self, guide): @@ -88,7 +87,7 @@ program_tip = 'Scheduled Program : %s' % Unicode(sch_prog.sub_title) if self.got_schedule: - (result, reason) = self.recordclient.isProgScheduledNow(prog, self.schedule) + (result, reason) = self.recordclient().isProgScheduledNow(prog, self.schedule) if result: status = 'programlinerecord' if self.currenttime > prog.start and self.currenttime < prog.stop: @@ -195,7 +194,7 @@ form = request.args self.guide = tv.epg_xmltv.get_guide() - (self.got_schedule, self.schedule) = self.recordclient.getScheduledRecordingsNow() + (self.got_schedule, self.schedule) = self.recordclient().getScheduledRecordingsNow() self.currenttime = time.time() fv.printHeader(_('TV Guide'), config.WWW_STYLESHEET, config.WWW_JAVASCRIPT, selected=_('TV Guide')) Modified: branches/rel-1/freevo/src/www/htdocs/index.rpy ============================================================================== --- branches/rel-1/freevo/src/www/htdocs/index.rpy (original) +++ branches/rel-1/freevo/src/www/htdocs/index.rpy Thu Feb 19 12:59:44 2009 @@ -33,8 +33,7 @@ import config import util -from tv.record_client import RecordClient -from www.web_types import HTMLResource, FreevoResource +from www.web_types import HTMLResource, FreevoResource, RecordClientResource import util.tv_util as tv_util TRUE = 1 @@ -42,6 +41,9 @@ class IndexResource(FreevoResource): + def __init__(self): + self.recordclient = RecordClientResource() + def _render(self, request): fv = HTMLResource() @@ -51,7 +53,8 @@ fv.res += '<br/><br/><h2>'+_('Freevo Web Status as of %s') % \ (time.strftime('%B %d '+config.TV_TIME_FORMAT, time.localtime())) +'</h2>' - (status, schedule) = RecordClient().getScheduledRecordingsNow() + status = self.recordclient().pingNow() + (status, schedule) = self.recordclient().getScheduledRecordingsNow() if status is None: fv.res += '<p class="alert"><b>'+_('Notice')+'</b>: '+_('Recording server is not available')+'</p>\n' Modified: branches/rel-1/freevo/src/www/htdocs/library.rpy ============================================================================== --- branches/rel-1/freevo/src/www/htdocs/library.rpy (original) +++ branches/rel-1/freevo/src/www/htdocs/library.rpy Thu Feb 19 12:59:44 2009 @@ -31,19 +31,17 @@ # ----------------------------------------------------------------------- import sys, os, stat, string, urllib, re, types, socket - +from twisted.web import static # needed to put these here to suppress its output import config, util import util.tv_util as tv_util import util.fxdparser as fxdparser import util.mediainfo -from tv.record_client import RecordClient import kaa.imlib2 as imlib2 import kaa.metadata as metadata -from www.web_types import HTMLResource, FreevoResource -from twisted.web import static +from www.web_types import HTMLResource, FreevoResource, RecordClientResource from benchmark import benchmark benchmarking = config.DEBUG_BENCHMARKING benchmarkcall = config.DEBUG_BENCHMARKCALL @@ -63,7 +61,7 @@ self.allowed_dirs.extend(config.AUDIO_ITEMS) self.allowed_dirs.extend( [ ('Recorded TV', config.TV_RECORD_DIR) ]) self.allowed_dirs.extend(config.IMAGE_ITEMS) - self.recordclient = RecordClient() + self.recordclient = RecordClientResource() @benchmark(benchmarking & 0x04, benchmarkcall) @@ -355,7 +353,7 @@ favre = '' favs = [] if action_mediatype == 'movies' or action_mediatype == 'rectv': - (status, schedule) = self.recordclient.getScheduledRecordingsNow() + (status, schedule) = self.recordclient().getScheduledRecordingsNow() if status: progs = schedule.getProgramList() f = lambda a, b: cmp(a.start, b.start) @@ -375,7 +373,7 @@ #generate our favorites regular expression favre = '' - (status, favorites) = self.recordclient.getFavoritesNow() + (status, favorites) = self.recordclient().getFavoritesNow() if status: favs = favorites.values() else: Modified: branches/rel-1/freevo/src/www/htdocs/library1.rpy ============================================================================== --- branches/rel-1/freevo/src/www/htdocs/library1.rpy (original) +++ branches/rel-1/freevo/src/www/htdocs/library1.rpy Thu Feb 19 12:59:44 2009 @@ -36,9 +36,8 @@ # needed to put these here to suppress its output import config, util import util.tv_util as tv_util -from tv.record_client import RecordClient -from www.web_types import HTMLResource, FreevoResource +from www.web_types import HTMLResource, FreevoResource, RecordClientResource from twisted.web import static TRUE = 1 @@ -48,7 +47,7 @@ class LibraryResource(FreevoResource): isLeaf=1 def __init__(self): - self.recordclient = RecordClient() + self.recordclient = RecordClientResource() def is_access_allowed(self, dir_str): @@ -294,7 +293,7 @@ favre = '' favs = [] if action_mediatype == 'movies' or action_mediatype == 'rectv': - (status, schedule) = self.recordclient.getScheduledRecordingsNow() + (status, schedule) = self.recordclient().getScheduledRecordingsNow() if status: progs = schedule.getProgramList() f = lambda a, b: cmp(a.start, b.start) @@ -314,7 +313,7 @@ #generate our favorites regular expression favre = '' - (status, favorites) = self.recordclient.getFavoritesNow() + (status, favorites) = self.recordclient().getFavoritesNow() if status: favs = favorites.values() else: Modified: branches/rel-1/freevo/src/www/htdocs/manualrecord.rpy ============================================================================== --- branches/rel-1/freevo/src/www/htdocs/manualrecord.rpy (original) +++ branches/rel-1/freevo/src/www/htdocs/manualrecord.rpy Thu Feb 19 12:59:44 2009 @@ -31,7 +31,6 @@ import sys, time import tv.epg_xmltv, tv.epg_types -from tv.record_client import RecordClient # Use the alternate strptime module which seems to handle time zones # @@ -42,7 +41,7 @@ import _strptime as strptime -from www.web_types import HTMLResource, FreevoResource +from www.web_types import HTMLResource, FreevoResource, RecordClientResource TRUE = 1 FALSE = 0 @@ -57,7 +56,7 @@ class ManualRecordResource(FreevoResource): def __init__(self): - self.recordclient = RecordClient() + self.recordclient = RecordClientResource() def rc_handler(self, result): @@ -69,10 +68,10 @@ fv = HTMLResource() form = request.args - server_available = self.recordclient.pingNow() + server_available = self.recordclient().pingNow() if not server_available: fv.printHeader(_('Manual Record'), 'styles/main.css',selected=_("Manual Record")) - fv.printMessagesFinish(['<b>'+_('ERROR')+'</b>: '+self.recordclient.recordserverdown]) + fv.printMessagesFinish(['<b>'+_('ERROR')+'</b>: '+self.recordclient().recordserverdown]) return String(fv.res) curtime_epoch = time.time() @@ -127,7 +126,7 @@ prog.start = starttime prog.stop = stoptime # use ri to add to schedule - self.recordclient.scheduleRecording(self.rc_handler, prog) + self.recordclient().scheduleRecording(self.rc_handler, prog) return '<html><head><meta HTTP-EQUIV="REFRESH" CONTENT="0;URL=record.rpy"></head></html>' else: errormsg = _("start time is not before stop time.") Modified: branches/rel-1/freevo/src/www/htdocs/record.rpy ============================================================================== --- branches/rel-1/freevo/src/www/htdocs/record.rpy (original) +++ branches/rel-1/freevo/src/www/htdocs/record.rpy Thu Feb 19 12:59:44 2009 @@ -33,16 +33,15 @@ import util.tv_util as tv_util import config -from tv.record_client import RecordClient -from www.web_types import HTMLResource, FreevoResource +from www.web_types import HTMLResource, FreevoResource, RecordClientResource TRUE = 1 FALSE = 0 class RecordResource(FreevoResource): def __init__(self): - self.recordclient = RecordClient() + self.recordclient = RecordClientResource() def _render(self, request): fv = HTMLResource() @@ -55,14 +54,14 @@ start = fv.formValue(form, 'start') action = fv.formValue(form, 'action') - server_available = self.recordclient.pingNow() + server_available = self.recordclient().pingNow() if not server_available: fv.printHeader(_('Scheduled Recordings'), 'styles/main.css') - fv.printMessagesFinish(['<b>'+_('ERROR')+'</b>: '+self.recordclient.recordserverdown]) + fv.printMessagesFinish(['<b>'+_('ERROR')+'</b>: '+self.recordclient().recordserverdown]) return String(fv.res) if action == 'remove': - (status, schedule) = self.recordclient.getScheduledRecordingsNow() + (status, schedule) = self.recordclient().getScheduledRecordingsNow() if status: progs = schedule.getProgramList() @@ -72,9 +71,9 @@ prog = what if prog: - self.recordclient.removeScheduledRecordingNow(prog) + self.recordclient().removeScheduledRecordingNow(prog) elif action == 'add': - (status, prog) = self.recordclient.findProgNow(chan, start) + (status, prog) = self.recordclient().findProgNow(chan, start) if not status: fv.printHeader('Scheduled Recordings', 'styles/main.css') @@ -85,12 +84,12 @@ (' <i>(%s)</i>' % String(prog))]) return String(fv.res) - self.recordclient.scheduleRecordingNow(prog) + self.recordclient().scheduleRecordingNow(prog) - (status, schedule) = self.recordclient.getScheduledRecordingsNow() + (status, schedule) = self.recordclient().getScheduledRecordingsNow() if status: progs = schedule.getProgramList() - (status, favorites) = self.recordclient.getFavoritesNow() + (status, favorites) = self.recordclient().getFavoritesNow() fv.printHeader(_('Scheduled Recordings'), 'styles/main.css', selected=_('Scheduled Recordings')) @@ -113,7 +112,7 @@ for prog in progl: status = 'basic' - (isFav, message) = self.recordclient.isProgAFavoriteNow(prog, favorites) + (isFav, message) = self.recordclient().isProgAFavoriteNow(prog, favorites) if isFav: status = 'favorite' if hasattr(prog, 'isRecording') and prog.isRecording: Modified: branches/rel-1/freevo/src/www/htdocs/search.rpy ============================================================================== --- branches/rel-1/freevo/src/www/htdocs/search.rpy (original) +++ branches/rel-1/freevo/src/www/htdocs/search.rpy Thu Feb 19 12:59:44 2009 @@ -33,8 +33,7 @@ import util.tv_util as tv_util import config -from tv.record_client import RecordClient -from www.web_types import HTMLResource, FreevoResource +from www.web_types import HTMLResource, FreevoResource, RecordClientResource TRUE = 1 FALSE = 0 @@ -42,17 +41,17 @@ class SearchResource(FreevoResource): def __init__(self): - self.recordclient = RecordClient() + self.recordclient = RecordClientResource() def _render(self, request): fv = HTMLResource() form = request.args - server_available = self.recordclient.pingNow() + server_available = self.recordclient().pingNow() if not server_available: fv.printHeader(_('Search Results'), 'styles/main.css', selected=_('Search')) - fv.printMessagesFinish(['<b>'+_('ERROR')+'</b>: '+self.recordclient.recordserverdown]) + fv.printMessagesFinish(['<b>'+_('ERROR')+'</b>: '+self.recordclient().recordserverdown]) return String(fv.res) find = fv.formValue(form, 'find') @@ -61,11 +60,11 @@ else: movies_only = 0 - (got_matches, progs) = self.recordclient.findMatchesNow(find, movies_only) + (got_matches, progs) = self.recordclient().findMatchesNow(find, movies_only) if got_matches: - (status, favorites) = self.recordclient.getFavoritesNow() - (status, schedule) = self.recordclient.getScheduledRecordingsNow() + (status, favorites) = self.recordclient().getFavoritesNow() + (status, schedule) = self.recordclient().getScheduledRecordingsNow() if status: rec_progs = schedule.getProgramList() @@ -100,7 +99,7 @@ if hasattr(rp, 'isRecording') and rp.isRecording: status = 'recording' - if self.recordclient.isProgAFavoriteNow(prog, favorites): + if self.recordclient().isProgAFavoriteNow(prog, favorites): status = 'favorite' Modified: branches/rel-1/freevo/src/www/htdocs/wap_rec.rpy ============================================================================== --- branches/rel-1/freevo/src/www/htdocs/wap_rec.rpy (original) +++ branches/rel-1/freevo/src/www/htdocs/wap_rec.rpy Thu Feb 19 12:59:44 2009 @@ -33,13 +33,13 @@ import tv.epg_xmltv import tv.epg_types -from tv.record_client import RecordClient from www.wap_types import WapResource, FreevoWapResource +from www.web_types import RecordClientResource import _strptime as strptime class WRecResource(FreevoWapResource): def __init__(self): - self.recordclient = RecordClient() + self.recordclient = RecordClientResource() def _render(self, request): @@ -73,7 +73,7 @@ prog.title = "Wap Recorded" prog.start = starttime prog.stop = stoptime - self.recordclient.scheduleRecordingNow(prog) + self.recordclient().scheduleRecordingNow(prog) fv.res += ' <card id="card3" title="Freevo">\n' fv.res += ' <p><strong>Rec. Sheduled</strong><br/>\n' fv.res += ' Date : %s<br/>\n' % startdate @@ -98,9 +98,9 @@ fv.res += ' <timer value="30"/>\n' fv.res += ' <p><big><strong>Freevo WAP Sheduler</strong></big></p>\n' - server_available = self.recordclient.pingNow() + server_available = self.recordclient().pingNow() if not server_available: - fv.res += '<p>'+_('ERROR')+': '+self.recordclient.recordserverdown+'</p>\n' + fv.res += '<p>'+_('ERROR')+': '+self.recordclient().recordserverdown+'</p>\n' else: fv.res += ' <p>Record Server online!</p>\n' Modified: branches/rel-1/freevo/src/www/web_types.py ============================================================================== --- branches/rel-1/freevo/src/www/web_types.py (original) +++ branches/rel-1/freevo/src/www/web_types.py Thu Feb 19 12:59:44 2009 @@ -38,6 +38,7 @@ from twisted.web.woven import page from twisted.web.resource import Resource +from tv.record_client import RecordClient from benchmark import benchmark benchmarking = config.DEBUG_BENCHMARKING benchmarkcall = config.DEBUG_BENCHMARKCALL @@ -46,6 +47,30 @@ FALSE = 0 +_singleton = None + +def RecordClientResource(): + global _singleton + + # One-time init + if _singleton is None: + _singleton = RecordClientActions() + + return _singleton + + + +class RecordClientActions: + def __init__(self): + import kaa + self.recordclient = RecordClient() + kaa.inprogress(self.recordclient.channel).wait() + + def __call__(self): + return RecordClientResource().recordclient + + + class FreevoPage(page.Page): @benchmark(benchmarking & 0x04, benchmarkcall) @@ -517,7 +542,8 @@ <style type="text/css" media="screen"> table.remote { width: auto; } td.remote { padding: 0px; } - button.remote { width: 60px; height: 18px; background: #eee; font-size: 12px; text-align: center; padding: 0; } + button.remote { width: 60px; height: 18px; background: #eee; font-size: 12px; + text-align: center; padding: 0; } button.remote:hover { background: #fed; } </style> |