--- /dev/null
+# -*- coding: utf-8 -*-
+from enigma import quitMainloop
+from Screens.Screen import Screen
+from Screens.ChoiceBox import ChoiceBox
+from Screens.MessageBox import MessageBox
+from Plugins.Plugin import PluginDescriptor
+from Tools.HardwareInfo import HardwareInfo
+from Components.Ipkg import IpkgComponent as OpkgComponent
+from os import path as os_path, system as os_system
+
+#-------------------------------------------------------------------------------------------------
+
+def setFeed():
+ def _createFeedConf(type):
+ wfile = open("/etc/opkg/gemini-%s-feed.conf" % (type), 'w')
+ wfile.write("src/gz gemini-%s http://download.blue-panel.com/gemini3/%s\n" % (type, type))
+ wfile.close()
+
+ device = HardwareInfo()
+ _createFeedConf('mipsel')
+ _createFeedConf(device.get_device_name())
+ _createFeedConf('all')
+ return 1
+
+#-------------------------------------------------------------------------------------------------
+def checkForUgly():
+ for x in ["/etc/MultiQuickButton", "/etc/init.d/CCcam", "/usr/lib/enigma2/python/Plugins/Extensions/Quickbutton"]:
+ if os_path.exists(x):
+ if x == "/etc/MultiQuickButton":
+ return "Multiquickbutton plugin"
+ elif x == "/etc/init.d/CCcam":
+ return "pimp plugin (CCcam)"
+ elif x == "/usr/lib/enigma2/python/Plugins/Extensions/Quickbutton":
+ return "Quickbutton plugin"
+ return ""
+
+#-------------------------------------------------------------------------------------------------
+
+def main(session, **kwargs):
+ list =[
+ (_("Install") + " Gemini Plugin", {"package": "geminiplugin"}),
+ (_("Install") + " Gemini Plugin " + " ( + " + _("Plugins") + ")", {"package": "g3install-full"})
+ ]
+ session.STATE=-1
+ session.GP3PACKAGE=None
+ session.info = None
+ session.opkg = OpkgComponent()
+ ugly = checkForUgly()
+
+ def Exit(arg):
+ exit(None)
+
+ if ugly != "":
+ session.openWithCallback(Exit, MessageBox, _("Gemini3 Wizard Installation stoped\nPlease remove '%s' first!") % ugly, MessageBox.TYPE_ERROR, timeout=15)
+
+ def _reboot(val=None):
+ FINALE = "depmod -a && update-modules"
+ if session.GP3PACKAGE["package"] == "g3install-full":
+ FINALE +=" && opkg remove g3install-full"
+ os_system(FINALE)
+ quitMainloop(2)
+
+ def _opkgCallback(event, param):
+ if event == OpkgComponent.EVENT_DONE:
+ if session.STATE == 0:
+ session.STATE=1
+ session.opkg.startCmd(OpkgComponent.CMD_INSTALL, session.GP3PACKAGE)
+
+ elif session.STATE == 1:
+ session.info.close(True)
+
+ elif event == OpkgComponent.EVENT_ERROR:
+ session.open(MessageBox, _("Gemini3 Wizard: %s") % param, MessageBox.TYPE_ERROR, timeout=5)
+
+ session.opkg.addCallback(_opkgCallback)
+
+ def _closeInfo(val=None):
+ if val is not None:
+ session.openWithCallback(_reboot, MessageBox, _("Restart"), MessageBox.TYPE_INFO, timeout=5)
+
+ def _selectPackage(pack):
+ if pack is not None:
+ session.info = session.openWithCallback(_closeInfo, MessageBox, _("Install") + " Gemini plugin...", type = MessageBox.TYPE_INFO, enable_input = False)
+ session.GP3PACKAGE = pack[1]
+ if setFeed():
+ session.STATE=0
+ session.opkg.startCmd(OpkgComponent.CMD_UPDATE)
+
+ session.openWithCallback(_selectPackage, ChoiceBox, title = "Gemini3 Wizard", list = list)
+
+#-------------------------------------------------------------------------------------------------
+
+def Plugins(**kwargs):
+ return PluginDescriptor(
+ name=_("Gemini3 Wizard"),
+ description=_("the Gemini3 plugin Wizard"),
+ where = [PluginDescriptor.WHERE_PLUGINMENU, PluginDescriptor.WHERE_EXTENSIONSMENU],
+ icon="gp3wizard.png",
+ fnc=main)