예제 #1
0
class InstallWizard(Screen, ConfigListScreen):

    STATE_UPDATE = 0
    STATE_CHOISE_CHANNELLIST = 1
    STATE_CHOISE_SOFTCAM = 2
    STATE_RUN_SOFTCAM = 3

    def __init__(self, session, args=None):
        Screen.__init__(self, session)

        self.index = args
        self.list = []
        ConfigListScreen.__init__(self, self.list)

        if self.index == self.STATE_UPDATE:
            config.misc.installwizard.hasnetwork.value = False
            config.misc.installwizard.ipkgloaded.value = False
            modes = {0: " "}
            self.enabled = ConfigSelection(choices=modes, default=0)
            self.adapters = [(iNetwork.getFriendlyAdapterName(x), x)
                             for x in iNetwork.getAdapterList()]
            is_found = False
            for x in self.adapters:
                if x[1] == 'eth0':
                    if iNetwork.getAdapterAttribute(x[1], 'up'):
                        self.ipConfigEntry = ConfigIP(
                            default=iNetwork.getAdapterAttribute(x[1], "ip"))
                        iNetwork.checkNetworkState(self.checkNetworkCB)
                        if_found = True
                    else:
                        iNetwork.restartNetwork(self.checkNetworkLinkCB)
                    break
            if is_found is False:
                self.createMenu()
        elif self.index == self.STATE_CHOISE_CHANNELLIST:
            self.enabled = ConfigYesNo(default=True)
            modes = {
                "19e": "Astra 1",
                "23e": "Astra 3",
                "19e-23e": "Astra 1 Astra 3",
                "19e-23e-28e": "Astra 1 Astra 2 Astra 3",
                "13e-19e-23e-28e": "Astra 1 Astra 2 Astra 3 Hotbird"
            }
            self.channellist_type = ConfigSelection(choices=modes,
                                                    default="19e")
            self.createMenu()
        elif self.index == self.STATE_CHOISE_SOFTCAM:
            self.enabled = ConfigYesNo(default=True)
            modes = {
                "mgcamd": _("default") + " (MGCamd)",
                "cccam": "CCam",
                "scam": "scam"
            }
            self.softcam_type = ConfigSelection(choices=modes,
                                                default="mgcamd")
            self.createMenu()
        elif self.index == self.STATE_RUN_SOFTCAM:
            #OpenMB - dirty CODE
            modes = {"mgcamd": " "}
            self.softcams = ConfigSelection(choices=modes, default="mgcamd")
            self.createMenu()

    def checkNetworkCB(self, data):
        if data < 3:
            config.misc.installwizard.hasnetwork.value = True
        self.createMenu()

    def checkNetworkLinkCB(self, retval):
        if retval:
            iNetwork.checkNetworkState(self.checkNetworkCB)
        else:
            self.createMenu()

    def createMenu(self):
        try:
            test = self.index
        except:
            return
        self.list = []
        if self.index == self.STATE_UPDATE:
            if config.misc.installwizard.hasnetwork.value:
                self.list.append(
                    getConfigListEntry(
                        _("Your internet connection is working (ip: %s)") %
                        (self.ipConfigEntry.getText()), self.enabled))
            else:
                self.list.append(
                    getConfigListEntry(
                        _("Your receiver does not have an internet connection"
                          ), self.enabled))
        elif self.index == self.STATE_CHOISE_CHANNELLIST:
            self.list.append(
                getConfigListEntry(_("Install channel list"), self.enabled))
            if self.enabled.value:
                self.list.append(
                    getConfigListEntry(_("Channel list type"),
                                       self.channellist_type))
        elif self.index == self.STATE_CHOISE_SOFTCAM:
            self.list.append(
                getConfigListEntry(_("Install softcam"), self.enabled))
            if self.enabled.value:
                self.list.append(
                    getConfigListEntry(_("Softcam type"), self.softcam_type))
        elif self.index == self.STATE_RUN_SOFTCAM:
            self.softcam = CamControl('softcam')
            softcams = self.softcam.getList()
            for scam in softcams:
                self.list.append(getConfigListEntry(_(scam), self.softcams))
        self["config"].list = self.list
        self["config"].l.setList(self.list)

    def keyLeft(self):
        if self.index == 0:
            return
        ConfigListScreen.keyLeft(self)
        self.createMenu()

    def keyRight(self):
        if self.index == 0:
            return
        ConfigListScreen.keyRight(self)
        self.createMenu()

    def run(self):
        if self.index == self.STATE_UPDATE:
            if config.misc.installwizard.hasnetwork.value:
                self.session.open(InstallWizardIpkgUpdater, self.index,
                                  _('Please wait (updating packages)'),
                                  IpkgComponent.CMD_UPDATE)
        elif self.index == self.STATE_CHOISE_CHANNELLIST and self.enabled.value:
            self.session.open(
                InstallWizardIpkgUpdater, self.index,
                _('Please wait (downloading channel list)'),
                IpkgComponent.CMD_REMOVE, {
                    'package':
                    'enigma2-plugin-settings-henksat-' +
                    self.channellist_type.value
                })
        elif self.index == self.STATE_CHOISE_SOFTCAM and self.enabled.value:
            self.session.open(
                InstallWizardIpkgUpdater, self.index,
                _('Please wait (downloading softcam)'),
                IpkgComponent.CMD_INSTALL, {
                    'package':
                    'enigma2-plugin-softcams-' + self.softcam_type.value
                })
        elif self.index == self.STATE_RUN_SOFTCAM:
            self.runSoftCam()
        return


## OpenMB

    def runSoftCam(self):
        try:
            current = self["config"].getCurrent()[0]
        except:
            current = "None"
        self.softcam.command('stop')
        self.softcam.select(str(current))
        self.softcam.command('start')
예제 #2
0
class InstallWizard(Screen, ConfigListScreen):

	STATE_UPDATE = 0
	STATE_CHOISE_CHANNELLIST = 1
	STATE_CHOISE_SOFTCAM = 2
	STATE_RUN_SOFTCAM = 3

	def __init__(self, session, args = None):
		Screen.__init__(self, session)

		self.index = args
		self.list = []
		ConfigListScreen.__init__(self, self.list)

		if self.index == self.STATE_UPDATE:
			config.misc.installwizard.hasnetwork.value = False
			config.misc.installwizard.ipkgloaded.value = False
			modes = {0: " "}
			self.enabled = ConfigSelection(choices = modes, default = 0)
			self.adapters = [(iNetwork.getFriendlyAdapterName(x),x) for x in iNetwork.getAdapterList()]
			is_found = False
			for x in self.adapters:
				if x[1] == 'eth0':
					if iNetwork.getAdapterAttribute(x[1], 'up'):
						self.ipConfigEntry = ConfigIP(default = iNetwork.getAdapterAttribute(x[1], "ip"))
						iNetwork.checkNetworkState(self.checkNetworkCB)
						if_found = True
					else:
						iNetwork.restartNetwork(self.checkNetworkLinkCB)
					break
			if is_found is False:
				self.createMenu()
		elif self.index == self.STATE_CHOISE_CHANNELLIST:
			self.enabled = ConfigYesNo(default = True)
			modes = {"19e": "Astra 1", "23e": "Astra 3", "19e-23e": "Astra 1 Astra 3", "19e-23e-28e": "Astra 1 Astra 2 Astra 3", "13e-19e-23e-28e": "Astra 1 Astra 2 Astra 3 Hotbird"}
			self.channellist_type = ConfigSelection(choices = modes, default = "19e")
			self.createMenu()
		elif self.index == self.STATE_CHOISE_SOFTCAM:
			self.enabled = ConfigYesNo(default = True)
			modes = {"mgcamd": _("default") + " (MGCamd)", "cccam": "CCam", "scam": "scam"}
			self.softcam_type = ConfigSelection(choices = modes, default = "mgcamd")
			self.createMenu()
		elif self.index == self.STATE_RUN_SOFTCAM:
			#OpenMB - dirty CODE
			modes = {"mgcamd": " "}
			self.softcams = ConfigSelection(choices = modes, default = "mgcamd")
			self.createMenu()

	def checkNetworkCB(self, data):
		if data < 3:
			config.misc.installwizard.hasnetwork.value = True
		self.createMenu()

	def checkNetworkLinkCB(self, retval):
		if retval:
			iNetwork.checkNetworkState(self.checkNetworkCB)
		else:
			self.createMenu()

	def createMenu(self):
		try:
			test = self.index
		except:
			return
		self.list = []
		if self.index == self.STATE_UPDATE:
			if config.misc.installwizard.hasnetwork.value:
				self.list.append(getConfigListEntry(_("Your internet connection is working (ip: %s)") % (self.ipConfigEntry.getText()), self.enabled))
			else:
				self.list.append(getConfigListEntry(_("Your receiver does not have an internet connection"), self.enabled))
		elif self.index == self.STATE_CHOISE_CHANNELLIST:
			self.list.append(getConfigListEntry(_("Install channel list"), self.enabled))
			if self.enabled.value:
				self.list.append(getConfigListEntry(_("Channel list type"), self.channellist_type))
		elif self.index == self.STATE_CHOISE_SOFTCAM:
			self.list.append(getConfigListEntry(_("Install softcam"), self.enabled))
			if self.enabled.value:
				self.list.append(getConfigListEntry(_("Softcam type"), self.softcam_type))
		elif self.index == self.STATE_RUN_SOFTCAM:
			self.softcam = CamControl('softcam')
			softcams = self.softcam.getList()
			for scam in softcams:  
				self.list.append(getConfigListEntry(_(scam), self.softcams))
		self["config"].list = self.list
		self["config"].l.setList(self.list)

	def keyLeft(self):
		if self.index == 0:
			return
		ConfigListScreen.keyLeft(self)
		self.createMenu()

	def keyRight(self):
		if self.index == 0:
			return
		ConfigListScreen.keyRight(self)
		self.createMenu()

	def run(self):
		if self.index == self.STATE_UPDATE:
			if config.misc.installwizard.hasnetwork.value:
				self.session.open(InstallWizardIpkgUpdater, self.index, _('Please wait (updating packages)'), IpkgComponent.CMD_UPDATE)
		elif self.index == self.STATE_CHOISE_CHANNELLIST and self.enabled.value:
			self.session.open(InstallWizardIpkgUpdater, self.index, _('Please wait (downloading channel list)'), IpkgComponent.CMD_REMOVE, {'package': 'enigma2-plugin-settings-henksat-' + self.channellist_type.value})
		elif self.index == self.STATE_CHOISE_SOFTCAM and self.enabled.value:
			self.session.open(InstallWizardIpkgUpdater, self.index, _('Please wait (downloading softcam)'), IpkgComponent.CMD_INSTALL, {'package': 'enigma2-plugin-softcams-' + self.softcam_type.value})
		elif self.index == self.STATE_RUN_SOFTCAM:
			self.runSoftCam()
		return
## OpenMB    
	def runSoftCam(self):
		try:
			current = self["config"].getCurrent()[0]
		except:
			current = "None"
		self.softcam.command('stop')
		self.softcam.select(str(current))
		self.softcam.command('start')