From 7249d5f07b5ee201a6b775ac7946255514350682 Mon Sep 17 00:00:00 2001 From: Andreas Monzner Date: Wed, 7 Feb 2007 01:05:54 +0000 Subject: [PATCH 1/1] parental locking fixes --- Navigation.py | 4 ++-- lib/python/Components/ParentalControl.py | 19 +++++++++++-------- lib/python/Screens/ParentalControlSetup.py | 5 +---- 3 files changed, 14 insertions(+), 14 deletions(-) diff --git a/Navigation.py b/Navigation.py index 0262a465..37f3fbf9 100644 --- a/Navigation.py +++ b/Navigation.py @@ -51,12 +51,12 @@ class Navigation: if ref is None: self.stopService() return 0 - if not checkParentalControl or parentalControl.isServicePlayable(ref.toCompareString(), boundFunction(self.playService, checkParentalControl = False)): + if not checkParentalControl or parentalControl.isServicePlayable(ref, boundFunction(self.playService, checkParentalControl = False)): if ref.flags & eServiceReference.isGroup: if not oldref: oldref = eServiceReference() playref = getBestPlayableServiceReference(ref, oldref) - if not playref or (checkParentalControl and not parentalControl.isServicePlayable(playref.toCompareString(), boundFunction(self.playService, checkParentalControl = False))): + if not playref or (checkParentalControl and not parentalControl.isServicePlayable(playref, boundFunction(self.playService, checkParentalControl = False))): self.stopService() return 0 else: diff --git a/lib/python/Components/ParentalControl.py b/lib/python/Components/ParentalControl.py index c3238804..bf971813 100644 --- a/lib/python/Components/ParentalControl.py +++ b/lib/python/Components/ParentalControl.py @@ -61,15 +61,16 @@ class ParentalControl: self.blacklist.remove(service) if self.serviceLevel.has_key(service): self.serviceLevel.remove(service) - - def isServicePlayable(self, service, callback): + + def isServicePlayable(self, ref, callback): if not config.ParentalControl.configured.value or not config.ParentalControl.servicepinactive.value: return True #print "whitelist:", self.whitelist #print "blacklist:", self.blacklist #print "config.ParentalControl.type.value:", config.ParentalControl.type.value #print "not in whitelist:", (service not in self.whitelist) - #print "checking parental control for service:", service + #print "checking parental control for service:", ref.toString() + service = ref.toCompareString() if (config.ParentalControl.type.value == "whitelist" and service not in self.whitelist) or (config.ParentalControl.type.value == "blacklist" and service in self.blacklist): self.callback = callback #print "service:", ServiceReference(service).getServiceName() @@ -77,7 +78,7 @@ class ParentalControl: if self.serviceLevel.has_key(service): levelNeeded = self.serviceLevel[service] pinList = self.getPinList()[:levelNeeded + 1] - Notifications.AddNotificationWithCallback(boundFunction(self.servicePinEntered, service), PinInput, triesEntry = config.ParentalControl.retries.servicepin, pinList = pinList, service = ServiceReference(service).getServiceName(), title = _("this service is protected by a parental control pin"), windowTitle = _("Parental control")) + Notifications.AddNotificationWithCallback(boundFunction(self.servicePinEntered, ref), PinInput, triesEntry = config.ParentalControl.retries.servicepin, pinList = pinList, service = ServiceReference(ref).getServiceName(), title = _("this service is protected by a parental control pin"), windowTitle = _("Parental control")) return False else: return True @@ -135,7 +136,7 @@ class ParentalControl: #if pin is not None and int(pin) in pinList: if result is not None and result: #print "pin ok, playing service" - self.callback(ref = ServiceReference(service).ref) + self.callback(ref = service) else: if result is not None: Notifications.AddNotification(MessageBox, _("The pin code you entered is wrong."), MessageBox.TYPE_ERROR) @@ -153,7 +154,8 @@ class ParentalControl: file = open(resolveFilename(SCOPE_CONFIG, "whitelist"), 'r') lines = file.readlines() for x in lines: - self.whitelist.append(x.strip().upper()) + ref = ServiceReference(x.strip()) + self.whitelist.append(str(ref)) file.close except: pass @@ -170,7 +172,8 @@ class ParentalControl: file = open(resolveFilename(SCOPE_CONFIG, "blacklist"), 'r') lines = file.readlines() for x in lines: - self.blacklist.append(x.strip().upper()) + ref = ServiceReference(x.strip()) + self.blacklist.append(str(ref)) file.close except: pass @@ -183,4 +186,4 @@ class ParentalControl: self.openBlacklist() self.openWhitelist() -parentalControl = ParentalControl() \ No newline at end of file +parentalControl = ParentalControl() diff --git a/lib/python/Screens/ParentalControlSetup.py b/lib/python/Screens/ParentalControlSetup.py index 38c937fa..c0561b5d 100644 --- a/lib/python/Screens/ParentalControlSetup.py +++ b/lib/python/Screens/ParentalControlSetup.py @@ -192,10 +192,7 @@ class ParentalControlEditor(Screen): if list is not None: services = list.getContent("CN", True) #(servicecomparestring, name) for s in services: - if ord(s[1][0])==0xc2 and ord(s[1][1])==0x86: # ignore shortname brackets - key = s[1].lower()[2] - else: - key = s[1].lower()[0] + key = s[1].lower()[0] if key < 'a' or key > 'z': key = chr(SPECIAL_CHAR) #key = str(key) -- 2.30.2