Index: ipk/source/system_addonmanager_2_0/usr/lib/enigma2/python/Plugins/Extensions/AddonManager/downloader.py
===================================================================
--- ipk/source/system_addonmanager_2_0/usr/lib/enigma2/python/Plugins/Extensions/AddonManager/downloader.py	(revision 5901)
+++ ipk/source/system_addonmanager_2_0/usr/lib/enigma2/python/Plugins/Extensions/AddonManager/downloader.py	(revision 5923)
@@ -1,2 +1,3 @@
+from Components.ActionMap import HelpableActionMap
 from Plugins.Plugin import PluginDescriptor
 from Screens.PluginBrowser import *
@@ -30,4 +31,5 @@
 from Screens.Console import Console
 from os import system, remove, path, walk, makedirs, listdir
+from Screens.VirtualKeyBoard import VirtualKeyBoard
 
 import re
@@ -47,6 +49,7 @@
 global activesource
 global version
-global b_version
 global checkok
+global menu
+global PreviewPath
 
 # for local compile in the box
@@ -55,9 +58,8 @@
 # py_compile.compile("/usr/lib/enigma2/python/Plugins/Extensions/AddonManager/downloader.py")
 
-version = "2.12"
+version = "3.04"
 serverurl = ""
 activenam = ""
 activesource = ""
-b_version = 1212
 readyflag = 0
 checkok = True
@@ -75,4 +77,5 @@
 activenam = "Addons-Server"
 serverurl = activesource + "/E2/"
+PreviewPath = "http://97.74.32.10/svn/preview"
 
 # Boytyp lesen
@@ -93,6 +96,6 @@
 config.AddonManager.marker_off = ConfigInteger(1, limits=(0, 1))
 config.AddonManager.mark_color = ConfigInteger(1, limits=(0, 2))
-config.AddonManager.ungenau = ConfigInteger(0, limits=(0, 1))
-config.AddonManager.Schriftart = ConfigInteger(14, limits=(10, 22))
+config.AddonManager.ungenau = ConfigInteger(1, limits=(0, 1))
+config.AddonManager.Schriftart = ConfigInteger(16, limits=(10, 22))
 
 config.AddonManager2 = ConfigSubsection()
@@ -279,5 +282,4 @@
 			<ePixmap pixmap="/usr/lib/enigma2/python/Plugins/Extensions/AddonManager/pressed.png" position="{yellow2.pos}" zPosition="0" size="140,40" transparent="1" alphatest="on" />
 			<ePixmap pixmap="/usr/lib/enigma2/python/Plugins/Extensions/AddonManager/pressed.png" position="{blue2.pos}" zPosition="0" size="140,40" transparent="1" alphatest="on" />
-			<ePixmap pixmap="/usr/lib/enigma2/python/Plugins/Extensions/AddonManager/aaf.png" position="{logo.pos}" zPosition="0" size="160,140" transparent="1" alphatest="on" />
 			<widget source="key_red" render="Label" position="{red.pos}" zPosition="1" size="140,40" font="Regular;20" valign="center" halign="center" backgroundColor="#9f1313" transparent="1" />
 			<widget source="key_green" render="Label" position="{green.pos}" zPosition="1" size="140,40" font="Regular;20" valign="center" halign="center" backgroundColor="#1f771f" transparent="1" />
@@ -288,5 +290,5 @@
 			<widget source="key_3" render="Label" position="{yellow2.pos}" zPosition="1" size="140,40" font="Regular;16" valign="center" halign="center" backgroundColor="#a08500" transparent="1" />
 			<widget source="key_4" render="Label" position="{blue2.pos}" zPosition="1" size="140,40" font="Regular;16" valign="center" halign="center" backgroundColor="#18188b" transparent="1" />
-			<widget source="label_top" render="Label" position="10,94" size="240,20" foregroundColor="#3366ff" font="Regular;16" />
+			<widget source="label_top" render="Label" position="10,94" size="340,20" foregroundColor="#3366ff" font="Regular;16" />
 			<widget name="feedlist" position="10,116" size="{feed.size}" scrollbarMode="showOnDemand" />
 			<widget name="destlist" position="0,116" size="{dest.size}" scrollbarMode="showOnDemand" />
@@ -301,9 +303,7 @@
 		</screen>"""
 
+# 			<ePixmap pixmap="/usr/lib/enigma2/python/Plugins/Extensions/AddonManager/aaf.png" position="{logo.pos}" zPosition="0" size="160,140" transparent="1" alphatest="on" />
+
 	def __init__(self, session, destdir="/tmp/aaf/"):
-		self.BAtyp = "old"
-		if os.path.exists("/var/baroot/.multipart") is True:
-			self.BAtyp = "new"
-
 		#switch automatic to current skin
 		current_w = getDesktop(0).size().width()
@@ -404,8 +404,7 @@
 		self.focus = None
 		self.download = None
-		self.plug = "plugins"
+		self.plug = "all"
 		self.farbe = 1
 		self.ListTyp = "pic"
-		self.betacode = False
 
 		self.feed_base = serverurl + "%s/" % self.plug
@@ -418,23 +417,21 @@
 		self.marker_off = config.AddonManager.marker_off.value
 
-		self.burl = activesource + "/version_b2.txt"
-		self.beta_load()
-
 		self.ThumbTimer = eTimer()
 		self.ThumbTimer.callback.append(self.list_download)
 
-		#self.box = "dm8000"
-		if box == "dm8000":
-			self["actions"] = ActionMap(["OkCancelActions", "ColorActions", "DirectionActions", "EPGSelectActions", "MenuActions", "InfobarTeletextActions", "NumberActions", "MovieSelectionActions"],
+		self["actions"] = ActionMap(["OkCancelActions", "ColorActions", "DirectionActions", "EPGSelectActions", "MenuActions", "InfobarTeletextActions", "NumberActions", "MovieSelectionActions", "InfobarActions"],
 			{
 				"cancel": self.closeCB,
-				"red": self.plugins_download,
-				"green": self.ipks_download,
-				"yellow":  self.skins_download,
-				"blue": self.emus_download,
-				"1": self.settings_download,
-				"2": self.picons_download,
-				"5": self.BackupRestoreVU,
-				"8": self.beta_download,
+				"red": self.red_download,
+				"green": self.green_download,
+				"yellow": self.yellow_download,
+				"blue": self.blue_download,
+
+				"1": self.eins_download,
+				"2": self.FavMenu,
+				"3": self.drei_download,
+				"4": self.vier_download,
+				"5": self.fuenf_download,
+				"6": self.BackupRestore,
 				"9": self.sh_preview,
 				"0": self.update,
@@ -451,35 +448,5 @@
 				"startTeletext": self.switch_ListTyp,
 				"showEventInfo": self.info,
-				"down": self.down
-			}, -1)
-		else:
-			self["actions"] = ActionMap(["OkCancelActions", "ColorActions", "DirectionActions", "EPGSelectActions", "MenuActions", "InfobarTeletextActions", "NumberActions", "MovieSelectionActions"],
-			{
-				"cancel": self.closeCB,
-				"red": self.plugins_download,
-				"green": self.ipks_download,
-				"yellow": self.emusconfig_download,
-				"blue": self.emus_download,
-
-				"1": self.settings_download,
-				"2": self.bootbilder_download,
-				"3": self.radiobilder_download,
-				"5": self.BackupRestore,
-				"7": self.skins_download,
-				"8": self.beta_download,
-				"9": self.sh_preview,
-				"0": self.update,
-
-				"prevBouquet": self.switchList,
-				"nextBouquet": self.switchList,
-				"ok": self.check_download,
-				"left": self.left,
-				"right": self.right,
-				"up": self.up,
-				"upRepeated": self.up,
-				"downRepeated": self.down,
-				"menu": self.settings_menu,
-				"startTeletext": self.switch_ListTyp,
-				"showEventInfo": self.info,
+				"showTv": self.FavMenu,
 				"down": self.down
 			}, -1)
@@ -510,8 +477,7 @@
 		if url.find("addons.aaf-board.net") > -1:
 			aafpointer = aafpointer +1
-		if url.find("ke2.aaf-board.info") > -1:
-			aafpointer = aafpointer +1
-
-		if str(aafpointer) <= "2":
+
+		if str(aafpointer) <= "0":
+		#if str(aafpointer) <= "2":
 			print "Permission denied ", str(aafpointer)
 			self["statusbar"].text = _("Sorry, Permission denied")
@@ -520,5 +486,40 @@
 			self.focus = self.LIST_SOURCE
 			self.read_Boxtyp()
+
+			self.plug = "ipk"
+
+			if fileExists("/usr/lib/enigma2/python/Plugins/Extensions/AddonManager/startservice.cfg"):
+				file = open("/usr/lib/enigma2/python/Plugins/Extensions/AddonManager/startservice.cfg","r")
+				self.plugin_filter = str(file.readline().strip())
+				file.close()
+			else:
+				self.plugin_filter = "-"  # show all ipk
+
+			if box <> "dm8000":
+				evfd.getInstance().vfd_write_string("load PlugList")
+			if os.path.exists("/var/etc/ipkg/official-feed.conf") is True:
+				file = open("/var/etc/ipkg/official-feed.conf", "r")
+				self.feed_base = file.readline().strip()
+				self.feed_base = self.feed_base.replace(u"src/gz cross ","")
+				self.feed_base = str(self.feed_base) + "/"
+			elif os.path.exists("/etc/ipkg/official-feed.conf") is True:
+				file = open("/etc/ipkg/official-feed.conf", "r")
+				self.feed_base = file.readline().strip()
+				self.feed_base = self.feed_base.replace(u"src/gz cross ","")
+				self.feed_base = str(self.feed_base) + "/"
 			self.feed_download()
+
+	def FavMenu(self):
+		Filter = "-"
+		self.session.openWithCallback(self.MenuCallback, FilterPanel,Filter)
+
+	def MenuCallback(self):
+		global menu
+		print "FavMenu Callback", menu
+		if menu == "stop":
+				menu = "-"
+		self.plugin_filter = menu
+		self.feed_finished(self.feedhtml)
+
 
 	def BackupRestoreVU(self):
@@ -526,29 +527,5 @@
 
 	def BackupRestore(self):
-		if self.betacode == True:
 			self.session.open(RestoreConfigScreenVU)
-
-#----- Beta Download Procedures -------------------------------------------------------
-	def beta_load(self):
-		self.previewtimeout = config.AddonManager.preview_timeout.value
-		print "[Addon-Manager] " + str(self.previewtimeout)
-		self.downloading(True)
-		self.download = self.beta_load
-		client.getPage(self.burl).addCallback(self.beta_finished).addErrback(self.beta_failed)
-
-	def beta_failed(self, failure_instance):
-		print "[Addon-Manager] [feed_failed] " + str(failure_instance)
-		self["infolabel"].text = _("Could not connect to AAF-Plugin Server:") + "\n" + failure_instance.getErrorMessage() + "\n\n" + _("Please check your network settings!")
-		self.downloading(False)
-
-	def beta_finished(self, feedhtml):
-		print "[Addon-Manager] [feed_finished] " + str(feedhtml)
-		self.downloading(False)
-		b_version = feedhtml[0:len(feedhtml) -1]
-		if str(self.previewtimeout) == str(b_version):
-			self.previewtimeout = 600
-			self.betacode = True
-		else:
-			self.betacode = False
 
 	def downloading(self, state=True):
@@ -560,28 +537,12 @@
 		else:
 			self.download = None
-			self["key_red"].text = _("Plugin")
-			self["key_green"].text = (_("IPK"))
-
-			if box == "dm8000":
-				self["key_yellow"].text = (_("Skins"))
-				self["key_1"].text = _("(1) Settings")
-				self["key_2"].text = (_("(2) Picons"))
-				self["key_3"].text = (_("(5) Back/Rest"))
-				self["key_4"].text = (_("        "))
-			else:
-				self["key_yellow"].text = (_("EmuConfig"))
-				self["key_1"].text = _("(1) Settings")
-				self["key_2"].text = (_("(2) Bootbilder"))
-				self["key_3"].text = (_("(3) Radiobilder"))
-
+			self["key_red"].text = _("System")
+			self["key_green"].text = (_("Skins"))
+			self["key_yellow"].text = (_("Players"))
 			self["key_blue"].text = (_("Emus"))
-
-			if os.path.exists("/usr/lib/enigma2/python/Plugins/Extensions/AddonManager/ufs922") is False:
-				if box <> "dm8000":
-					if self.betacode == True:
-						self["key_4"].text = (_("(5) Back/Rest"))
-					else:
-						self["key_4"].text = (_("           "))
-				self.read_Boxtyp()
+			self["key_1"].text = _("(1) Bootbilder")
+			self["key_2"].text = (_("(2) Select"))
+			self["key_3"].text = (_("(3) SWAP all"))
+			self["key_4"].text = (_("(4) IPK all"))
 
 	def switchList(self,to_where=None):
@@ -591,6 +552,4 @@
 		self["job_progressbar"].value = 0
 		self["job_progresslabel"].text = ""
-
-		#self.focus = self.LIST_SOURCE
 
 		if self.focus is  self.LIST_DEST:
@@ -600,17 +559,11 @@
 			self["destlist"].show()
 
-
 		if self.focus is self.LIST_SOURCE:
 			self["statusbar"].text = _("Please choose file from AAF Server to download")
-
-			if self.betacode == True and self.plug == "beta":
-				self["label_top"].text = _("you are in the AAF BETA Zone!")
-			else:
-				self["label_top"].text = _("...select file from server  ")+ self.box
-
+			self["label_top"].text = _("...select file (FAV = Filter)")
 			self["feedlist"].show()
 			self["destlist"].hide()
 			self["label_bottom"].text = _("attached to: ")+ activenam
-			#self["key_yellow"].text = (_(" "))
+
 
 #----- load Menutext or Picture -------------------------------------------------------
@@ -750,12 +703,9 @@
 				os.system("mkdir /tmp/aaf")
 
-		if self.plug == "ipk":
-				ipkurl = command('cat /var/etc/ipkg/official-feed.conf | cut -d "/" -f4')
-				os.system("cd /usr/lib/enigma2/python/Plugins/Extensions/AddonManager/; ./ipkdownload")
-				if os.path.exists("/tmp/aaf/index.txt") is True:
-					feedhtml = open("/tmp/aaf/index.txt").read()
-					self.feed_finished(feedhtml)
-		else:
-				client.getPage(self.feed_base + "index.txt").addCallback(self.feed_finished).addErrback(self.feed_failed)
+		ipkurl = command('cat /var/etc/ipkg/official-feed.conf | cut -d "/" -f4')
+		os.system("cd /usr/lib/enigma2/python/Plugins/Extensions/AddonManager/; ./ipkdownload")
+		if os.path.exists("/tmp/aaf/index.txt") is True:
+				self.feedhtml = open("/tmp/aaf/index.txt").read()
+				self.feed_finished(self.feedhtml)
 
 
@@ -766,13 +716,10 @@
 
 	def feed_finished(self, feedhtml):
-		print "[Addon-Manager] [feed_finished] " + str(feedhtml)
+		#print "[Addon-Manager] [feed_finished] " + str(feedhtml)
 		self.downloading(False)
 
-		if self.plug == "ipk":
-				fileresultmask = re.compile("(?P<name>.*?)\#\#(?P<url>.*?_sh4.ipk)", re.DOTALL)
-		elif box == "dm8000":
+		fileresultmask = re.compile("(?P<name>.*?)\#\#(?P<url>.*?_sh4.ipk)", re.DOTALL)
+		if box == "dm8000":
 				fileresultmask = re.compile("(?P<name>.*?)\#\#(?P<url>.*?.ipk)", re.DOTALL)
-		else:
-				fileresultmask = re.compile("(?P<name>.*?)\#\#(?P<url>.*?.gz)", re.DOTALL)
 
 		if os.path.exists("/var/etc/uninst") is False:
@@ -786,11 +733,10 @@
 		fd.close()
 		inhalt = inhalt.lower()
-		inhalt = inhalt.replace("\r\n","")
-
+		inhalt = inhalt.replace("\n","")
+		inhalt = inhalt.replace("\r","")
 		searchresults = fileresultmask.finditer(feedhtml)
-		#print searchresults
 
 		ausblenden = 0
-		self.ungenau = config.AddonManager.ungenau.value
+		#self.ungenau = config.AddonManager.ungenau.value
 		self.farbe = config.AddonManager.mark_color.value
 
@@ -805,4 +751,12 @@
 			for x in searchresults:
 				url = x.group("url")
+
+				# filtering the Filename string
+				if url.find(self.plugin_filter) > -1:
+					#print "url=", url
+					ausblenden = 0
+				else:
+					ausblenden = 1
+
 				if url[0:7] != "http://":
 					url = self.feed_base + x.group("url")
@@ -811,10 +765,10 @@
 				name_lo = name_lo.replace("\n","")
 				name_lo = name_lo.replace("\r","")
-				if self.ungenau == 1:
-						name_lo = name_lo.split("_")[0]
 				font_s = 0
+				name_lo = name_lo.split("_")[0]
+				#print "name_lo = ", str(name_lo)
 
 				if self.marker_on == True:
-					if inhalt.find(name_lo) > -1:
+					if inhalt.find(name_lo) > -1 and ausblenden == 0:
 						font_s = 1
 						if self.marker_off != True:
@@ -825,14 +779,11 @@
 				if ausblenden == 0:
 						if font_s == 1:
-							entry = [[name, url],(eListboxPythonMultiContent.TYPE_TEXT, 0, 0,250, 30, 0, RT_HALIGN_LEFT|RT_VALIGN_CENTER, name, farbwahl)]
+							entry = [[name, url],(eListboxPythonMultiContent.TYPE_TEXT, 0, 0,300, 30, 0, RT_HALIGN_LEFT|RT_VALIGN_CENTER, name, farbwahl)]
 						else:
-							entry = [[name, url],(eListboxPythonMultiContent.TYPE_TEXT, 0, 0,250, 30, 0, RT_HALIGN_LEFT|RT_VALIGN_CENTER, name)]
-						#print "[Addon-Manager] adding to feedlist: " + str(entry)
+							entry = [[name, url],(eListboxPythonMultiContent.TYPE_TEXT, 0, 0,300, 30, 0, RT_HALIGN_LEFT|RT_VALIGN_CENTER, name)]
 						fileresultlist.append(entry)
-						#rot = ff0000 16711680
-						#gruen = 00ff00 65280
-						# blau = 0000ff 255
 				else:
 						ausblenden = 0
+
 			self["feedlist"].l.setList(fileresultlist)
 			self["feedlist"].moveSelection(0)
@@ -843,10 +794,16 @@
 			self["infolabel"].text = _("Cannot parse feed directory")
 
+		if box <> "dm8000":
+				evfd.getInstance().vfd_write_string("AddonManager")
+
+
 #----- List Download Procedures -------------------------------------------------------
 	def list_download(self):
+		global PreviewPath
+		global LISTurlText
 		if self.showpreview == True:
-			print "[Addon-Manager] [check_for_LIST]"
+			#print "[Addon-Manager] [check_for_LIST]"
 			if self["feedlist"].isValid():
-				print "[Addon-Manager] PLUGINname: " + self["feedlist"].getPLUGINname()
+				#print "[Addon-Manager] PLUGINname: " + self["feedlist"].getPLUGINname()
 				self["job_progressbar"].value = 0
 				self["job_progresslabel"].text = ""
@@ -856,7 +813,15 @@
 				self["key_green"].text = _("Download")
 				LISTurl = self["feedlist"].getLISTurl()
-				LISTurl = LISTurl+".png"
-
-				print "[Addon-Manager] downloading " + LISTurl
+				LISTurl1 = LISTurl.split("_")[0]
+				UrlLink = LISTurl.split("enigma2-plugin-")[0]
+				LISTName = LISTurl1.split("enigma2-plugin-")[1].split("-")[1]
+				
+				if LISTName.find(".") > -1:
+					LISTName = LISTName.split(".")[0]
+
+				LISTurl = PreviewPath + "/enigma2-pluginpreview-" + LISTName+".png"
+				LISTurlText = PreviewPath + "/enigma2-pluginpreview-" + LISTName+".txt"
+
+				#print "[Addon-Manager] downloading " + LISTurl
 				self.download = self.list_download
 				self.downloading(True)
@@ -875,5 +840,5 @@
 
 	def list_finished(self,LISTdata=""):
-		print "[Addon-Manager] [list_finished] " + str(LISTdata)
+		#print "[Addon-Manager] [list_finished] " + str(LISTdata)
 		self.downloading(False)
 		self.LIST = LISTdata
@@ -899,7 +864,8 @@
 		# no pic-file, now look for txt
 		self["statusbar"].text = _("Downloading file description...")
-		LISTurl = self["feedlist"].getLISTurl()
+		#LISTurl = self["feedlist"].getLISTurl()
 		#client.getPage(LISTurl, headers={"Authorization":authHeader}).addCallback(self.list_finished).addErrback(self.list_failed)
-		client.getPage(LISTurl).addCallback(self.list_finished).addErrback(self.list_failed)
+		global LISTurlText
+		client.getPage(LISTurlText).addCallback(self.list_finished).addErrback(self.list_failed)
 
 		self.downloading(False)
@@ -937,5 +903,4 @@
 			self["Preview"].show()
 			self["Preview"].instance.setPixmapFromFile(self.previewPath)
-			#self["key_yellow"].text = (_("Skins"))
 		else:
 			self.showpreview = 1
@@ -945,146 +910,65 @@
 
 	def read_Boxtyp(self):
-			# Boytyp lesen
 			file = open("/proc/stb/info/model", "r")
 			self.box = file.readline().strip()
 			file.close()
-			# Topfield "TF7700HDPVR"
-			if self.box == "cuberevo" or self.box == "cuberevo-mini" or self.box == "cuberevo-mini2":
-				self.box = "cuberevo"
-			#if self.box == "ufs910" or self.box == "UFS922":
-			#	self.box = "ufs"
-
-#----- you press au Menu-key, define the urls----------------------------------
-	def beta_download(self):
-		self.beta_load()
-		if self.betacode == True:
-			print "[Addon-Manager] you are in AAF-Betasection"
-			self.previewtimeout = 600
-			if box <> "dm8000":
-				evfd.getInstance().vfd_write_string("BETA-Section")
-			self.plug = "beta"
-			serverurlbeta = "http://kati910.aaf-board.info/dbase/E2/"
-			#serverurlbeta = "http://addons.aaf-board.net/E2/" old server
-			self.feed_base = serverurlbeta + "%s/" % self.plug
-			self.plugin_filter = "" # "release" # only show IPKs containing this string, or all if ""
-			self.feed_download()
-
-	def plugins_download(self):
-		self.plug = "plugins"
+
+	def red_download(self):
 		if box <> "dm8000":
 			evfd.getInstance().vfd_write_string("Plugins")
-		self.feed_base = serverurl + "%s/" % self.plug
-		self.plugin_filter = "" # "release" # only show IPKs containing this string, or all if ""
-		self.feed_download()
-
-	def patches_download(self):
-		self.plug = "patches"
+		self.plugin_filter = "system-" 
+		self.feed_finished(self.feedhtml)
+
+	def green_download(self):
 		if box <> "dm8000":
-			evfd.getInstance().vfd_write_string("Patches")
-		self.feed_base = serverurl + "%s/" % self.plug
-		self.plugin_filter = "" # "release" # only show IPKs containing this string, or all if ""
-		self.feed_download()
-
-	def emus_download(self):
-		self.plug = "emus"
+			evfd.getInstance().vfd_write_string("Settings")
+		self.plugin_filter = "skins-"
+		self.feed_finished(self.feedhtml)
+
+	def yellow_download(self):
+		if box <> "dm8000":
+			evfd.getInstance().vfd_write_string("EmusConfig")
+		self.plugin_filter = "players-"
+		self.feed_finished(self.feedhtml)
+
+	def blue_download(self):
 		if box <> "dm8000":
 			evfd.getInstance().vfd_write_string("Emus")
-		self.feed_base = serverurl + "%s/" % self.plug
-		self.plugin_filter = "" # "release" # only show IPKs containing this string, or all if ""
-		self.feed_download()
-
-	def emusconfig_download(self):
-		self.plug = "emusconfig"
-		if box <> "dm8000":
-			evfd.getInstance().vfd_write_string("EmusConfig")
-		self.feed_base = serverurl + "%s/" % self.plug
-		self.plugin_filter = "" # "release" # only show IPKs containing this string, or all if ""
-		self.feed_download()
-
-	def settings_download(self):
-		self.plug = "settings"
-		if box <> "dm8000":
-			evfd.getInstance().vfd_write_string("Settings")
-		self.feed_base = serverurl + "%s/" % self.plug
-		self.plugin_filter = "" # "release" # only show IPKs containing this string, or all if ""
-		self.feed_download()
-
-	def skins_download(self):
-		self["key_yellow"].text = (_("Skins"))
-		self.read_Boxtyp()
-		self.plug = "skins"
-		if self.box == "cuberevo":
-				self.plug = "skins_cuberevo"
-		if box <> "dm8000":
-			evfd.getInstance().vfd_write_string("Skins")
-		self.feed_base = serverurl + "%s/" % self.plug
-		self.plugin_filter = "" # "release" # only show IPKs containing this string, or all if ""
-		self.feed_download()
-
-	def ipks_download(self):
-		self.read_Boxtyp()
-		print "Boxtyp=" + self.box
-		if box == "dm8000":
-			self.ipks_vudownload()
-		else:
-			self.plug = "ipk"
-			if box <> "dm8000":
-				evfd.getInstance().vfd_write_string("IPK")
-			if os.path.exists("/var/etc/ipkg/official-feed.conf") is True:
-				file = open("/var/etc/ipkg/official-feed.conf", "r")
-				self.feed_base = file.readline().strip()
-				self.feed_base = self.feed_base.replace(u"src/gz cross ","")
-				self.feed_base = str(self.feed_base) + "/"
-				self.plugin_filter = "" # "release" # only show IPKs containing this string, or all if ""
-			elif os.path.exists("/etc/ipkg/official-feed.conf") is True:
-				file = open("/etc/ipkg/official-feed.conf", "r")
-				self.feed_base = file.readline().strip()
-				self.feed_base = self.feed_base.replace(u"src/gz cross ","")
-				self.feed_base = str(self.feed_base) + "/"
-			else:
-				self.feed_base = serverurl + "%s/" % self.plug
-				self.plugin_filter = "" # "release" # only show IPKs containing this string, or all if ""
-			self.feed_download()
-
-	def ipks_vudownload(self):
-		self.plug = "ipkvu"
-		if box <> "dm8000":
-			evfd.getInstance().vfd_write_string("IPK-VU")
-		self.feed_base = serverurl + "ipk/"
-		self.plugin_filter = "" 
-		print "DownTyp=" + self.feed_base
-		self.feed_download()
-
-	def bootbilder_download(self):
-		self.plug = "bootbilder"
+		self.plugin_filter = "emus-"
+		self.feed_finished(self.feedhtml)
+
+
+# ----- Numbers --------
+	def eins_download(self):
 		if box <> "dm8000":
 			evfd.getInstance().vfd_write_string("Bootbilder")
-		self.feed_base = serverurl + "%s/" % self.plug
-		self.plugin_filter = "" # "release" # only show IPKs containing this string, or all if ""
-		self.feed_download()
-
-	def radiobilder_download(self):
-		self.plug = "radiobilder"
+		self.plugin_filter = "bootlogos-"
+		self.feed_finished(self.feedhtml)
+
+	def zwei_download(self):
 		if box <> "dm8000":
 			evfd.getInstance().vfd_write_string("Radiobilder")
-		self.feed_base = serverurl + "%s/" % self.plug
-		self.plugin_filter = "" # "release" # only show IPKs containing this string, or all if ""
-		self.feed_download()
-
-	def spiele_download(self):
-		self.plug = "spiele"
+		self.plugin_filter = "radiologos-"
+		self.feed_finished(self.feedhtml)
+
+	def drei_download(self):
 		if box <> "dm8000":
-			evfd.getInstance().vfd_write_string("Spiele")
-		self.feed_base = serverurl + "%s/" % self.plug
-		self.plugin_filter = "" 
-		self.feed_download()
-
-	def picons_download(self):
-		self.plug = "picons"
+			evfd.getInstance().vfd_write_string("SWAP all")
+		self.plugin_filter = "swap"
+		self.feed_finished(self.feedhtml)
+
+	def vier_download(self):
 		if box <> "dm8000":
-			evfd.getInstance().vfd_write_string("Picons")
-		self.feed_base = serverurl + "%s/" % self.plug
-		self.plugin_filter = ""
-		self.feed_download()
+			evfd.getInstance().vfd_write_string("IPK all")
+		self.plugin_filter = "-"
+		self.feed_finished(self.feedhtml)
+
+	def fuenf_download(self):
+		if box <> "dm8000":
+			evfd.getInstance().vfd_write_string("IPK all")
+		self.plugin_filter = "-" 
+		self.feed_finished(self.feedhtml)
+
+
 
 #----- plugin download ------------------------------------------------------------
@@ -1153,6 +1037,4 @@
 	def plugin_finished(self, string=""):
 		ffile = open("/usr/lib/enigma2/python/Plugins/Extensions/AddonManager/inst.log", "w")
-		ffile.write("BA-Typ:" + self.BAtyp)
-		ffile.write("\n")
 		ffile.write("gedrueckte Kategorie:" + self.plug)
 		ffile.write("\n")
@@ -1165,272 +1047,4 @@
 				ffile.close()
 
-				# Boxtyp lesen
-				file = open("/proc/stb/info/model", "r")
-				self.box = file.readline().strip()
-				file.close()
-
-				self["statusbar"].text = _("Decompressing Tar-File...")
-				os.system("cd /tmp/aaf; tar -xzf downfile.tar.gz; sync")
-				#os.system("rm /tmp/aaf/downfile.tar.gz")
-
-				# is it a Flashimage, check for freespace?
-				#GOst begin
-				if os.path.exists("/etc/.imagesignature") is True:
-					file = open("/etc/.imagesignature", "r")
-					imagetype = file.readline().strip()
-					imagetype = imagetype.replace("\n","")
-					file.close()
-				else:
-					imagetype = "NONE"
-				print imagetype
-				os.system("touch /flashtest.txt")
-				#GOst end
-				#GOst  and imagetype is not "flash_gost_e2_ufs922"
-				if os.path.exists("/flashtest.txt") is False and imagetype != "flash_gost_e2_ufs922":
-					# is enough freespace on flash?
-					filesize = 0
-					freesize = 0
-					os.system("df /dev/mtdblock3 |grep var|cut -c41-50 >/tmp/free.txt")
-					if os.path.exists("/tmp/free.txt") is True:
-						f = open("/tmp/free.txt", "r" )
-						for line in f:
-							freesize = line.lstrip()
-						f.close
-						freesize = freesize.replace("\n","")
-						freesize = int(freesize)
-					print "[Addon-Manager] Flash=", freesize
-					#GOst ---> cut -c1-4 -nach-> cut -d\t -f1
-					os.system("du -sc /tmp/aaf |grep total|cut -dt -f1 >/tmp/free2.txt")
-					if os.path.exists("/tmp/free2.txt") is True:
-						f = open("/tmp/free2.txt", "r" )
-						for line in f:
-							filesize = line.lstrip()
-						f.close
-						filesize = filesize.replace("\n","")
-						filesize = int(filesize)
-					print "[Addon-Manager] File=", filesize
-
-					# no Test, while Emu is linked to swap
-					if os.path.exists("/tmp/aaf/var/emu") is True:
-						if self.box == "ufs910":
-							print "[Addon-Manager] linked to swap"
-							filesize = 1
-
-					if freesize > filesize:
-						print "[Addon-Manager] FreeSpace is ready"
-						self["statusbar"].text = _("FreeSpace in Flash is ready!")
-					# NOT enough memory
-					else:
-						print "[Addon-Manager] FreeSpace Error in Flash!"
-						#def __init__(self, session, title = "Console", cmdlist = None, finishedCallback = None, closeOnSuccess = False):
-
-						self["statusbar"].text = _("FreeSpace Error!")
-						print "[Addon-Manager] frei=", freesize,"File=",filesize
-						ffile = open("/usr/lib/enigma2/python/Plugins/Extensions/AddonManager/inst.log","a")
-						ffile.write("FreeSpace Error in Flash!")
-						ffile.write("\n")
-						ffile.close()
-						self.downloading(False)
-						message = "%s %s %s %s %s" % (_("Speicherfehler: zu wenig Speicher im Flashimage frei!\n frei="),freesize, _("Kb  benoetigt="), filesize, _("Kb\nBitte deinstallieren sie andere Plugins!"))
-						self.session.open(MessageBox,message, MessageBox.TYPE_INFO)
-						return
-
-					# check if Directory /var/emu is correct linked
-					if os.path.exists("/var/emu") is False:
-						os.system("cd /var; ln -s /var/bin emu")
-
-					# im Flash den emu nach /var/bin installieren
-					if os.path.exists("/tmp/aaf/var/emu") is True:
-						if self.box == "ufs910":
-							self.swaptest = False
-							if os.path.exists("/var/swap/bin") is True:
-								print "[Addon-Manager] Emu wird im Swap des Flash installiert"
-								ffile = open("/usr/lib/enigma2/python/Plugins/Extensions/AddonManager/inst.log","a")
-								ffile.write("Emu wird im Swap des Flash installiert")
-								ffile.write("\n")
-								ffile.close()
-
-								os.system("mkdir -p /tmp/aaf/var/swap/bin")
-								os.system("cp /tmp/aaf/var/emu/* /tmp/aaf/var/swap/bin")
-								os.system("rm -r /tmp/aaf/var/emu")
-								self.swaptest = True
-								if os.path.exists("/tmp/aaf/lib") is True:
-									print "[Addon-Manager] Lib wird im Swap des Flash installiert"
-									ffile = open("/usr/lib/enigma2/python/Plugins/Extensions/AddonManager/inst.log","a")
-									ffile.write("Lib wird im Swap des Flash installiert")
-									ffile.write("\n")
-									ffile.close()
-
-									os.system("mkdir -p /tmp/aaf/var/swap/lib")
-									os.system("cp /tmp/aaf/lib/* /tmp/aaf/var/swap/lib")
-									os.system("rm -r /tmp/aaf/lib")
-							else:
-								print "[Addon-Manager] Emu wird im Flash installiert"
-								ffile = open("/usr/lib/enigma2/python/Plugins/Extensions/AddonManager/inst.log","a")
-								ffile.write("Emu wird im Flash installiert")
-								ffile.write("\n")
-								ffile.close()
-
-								os.system("mv /tmp/aaf/var/emu /tmp/aaf/var/bin")
-
-							# und die inst.sh loeschen, Installation uebernimmt jetzt AM
-							if os.path.exists("/tmp/aaf/inst.sh") is True:
-								os.system("rm /tmp/aaf/inst.sh; sync")
-
-							# und nun in der ufs910 im Flash den emu installieren
-							os.system("rm /tmp/aaf/*.tar.gz ; sync")
-							os.system("cp -RP /tmp/aaf/* / ; sync")
-							if self.swaptest == True:
-								os.system("cd /usr/lib/enigma2/python/Plugins/Extensions/AddonManager; ./do_link.sh")
-								print "[Addon-Manager] Emu wude nach /var/swap/bin verlinkt"
-
-				if os.path.exists("/tmp/aaf/inst.sh") is True:
-					print "[Addon-Manager] Preinst gefunden (inst.sh)"
-					#os.system("sed -e 's/cp -RP /. \/usr\/lib\/enigma2\/python\/Plugins\/Extensions\/AddonManager\/cp_r.func; cp_r \/tmp\/aaf\//g' -i /tmp/aaf/inst.sh")
-					#os.system("sed -e 's/cp -RP /cp_r /g' -i /tmp/aaf/inst.sh")
-					#os.system("cd /tmp/aaf; ./inst.sh" )
-					os.system("(. /usr/lib/enigma2/python/Plugins/Extensions/AddonManager/cp_r.func; cd /tmp/aaf; ./inst.sh)" )
-					#os.system("rm -r /tmp/aaf")
-					#os.system("cd / ; rm *tar.gz ; rm inst.sh")
-				else:
-					# Boxtyp lesen
-					file = open("/proc/stb/info/model", "r")
-					self.box = file.readline().strip()
-					file.close()
-					# Topfield "TF7700HDPVR"
-
-					#self.box ="dm8000"
-					ffile = open("/usr/lib/enigma2/python/Plugins/Extensions/AddonManager/inst.log","a")
-					ffile.write("erkannter Boxtyp:" + self.box)
-					ffile.write("\n")
-					ffile.close()
-
-					# is it a Flashimage and you press "plugins"?
-					os.system("touch /flashtest.txt")
-
-					if os.path.exists("/flashtest.txt") is False:
-						ffile = open("/usr/lib/enigma2/python/Plugins/Extensions/AddonManager/inst.log","a")
-						ffile.write("es ist ein Flashimage")
-						ffile.write("\n")
-						ffile.close()
-
-						if self.box == "cuberevo" or self.box == "cuberevo-mini" or self.box == "cuberevo-mini2":
-							self.box = "cuberevo"
-
-						if self.box == "ufs910" or self.box == "UFS922" or self.box == "cuberevo":
-							if self.plug == "bootbilder" or self.plug == "plugins":
-								ffile = open("/usr/lib/enigma2/python/Plugins/Extensions/AddonManager/inst.log","a")
-								ffile.write("Bootbild oder Plugin wird installiert")
-								ffile.write("\n")
-								ffile.close()
-
-
-								#/tmp/aaf/usr/lib/enigma2/python/Plugins/Extensions/
-								if os.path.exists("/media/usb/sda1/swapfile") is True:
-									os.system("mount /dev/sda1 /var/swap")
-								if os.path.exists("/media/usb/sdb1/swapfile") is True:
-									os.system("mount /dev/sdb1 /var/swap")
-								if os.path.exists("/media/usb/sdc1/swapfile") is True:
-									os.system("mount /dev/sdc1 /var/swap")
-								if os.path.exists("/media/usb/sdd1/swapfile") is True:
-									os.system("mount /dev/sdd1 /var/swap")
-
-								if os.path.exists("/var/swap/swapfile") is False:
-									message = "%s" % (_("Es ist kein Swapfile eingerichtet!\nBitte Swapstick aktivieren!"))
-									self.session.open(MessageBox, message, MessageBox.TYPE_INFO)
-									return
-
-								swaptarget = "/var/swap/"
-								if os.path.exists(swaptarget + "Extensions") is False:
-									CpString = "mkdir -p " + swaptarget + "Extensions"
-									os.system(CpString)
-
-								if self.plug == "plugins":
-									dir = listdir("/tmp/aaf/usr/lib/enigma2/python/Plugins/Extensions")
-									for x in dir:
-										if path.isdir("/tmp/aaf/usr/lib/enigma2/python/Plugins/Extensions/" + x) == True:
-											print x
-											#name = x.split('/')[-1]
-
-											ffile = open("/usr/lib/enigma2/python/Plugins/Extensions/AddonManager/inst.log","a")
-											ffile.write("entpacken fuer Flashimage")
-											ffile.write("\n")
-											ffile.write("cp -RP /tmp/aaf/usr/lib/enigma2/python/Plugins/Extensions " + swaptarget)
-											ffile.write("\n")
-											ffile.close()
-
-											CpString = "rm -r /usr/lib/enigma2/python/Plugins/Extensions/" + x
-											os.system(CpString)
-											CpString = "ln -s " + swaptarget + "Extensions/" + x + " /usr/lib/enigma2/python/Plugins/Extensions/"
-											os.system(CpString)
-
-											CpString = "cp -RP /tmp/aaf/usr/lib/enigma2/python/Plugins/Extensions " + swaptarget + "; sync"
-											os.system(CpString)
-											os.system("cp -RP /tmp/aaf/var/etc/uninst /var/etc/ ; sync")
-
-								if self.plug == "bootbilder":
-									CpString = "cp -RP /tmp/aaf/boot /var/etc/ ; sync"
-									os.system(CpString)
-									os.system("cp -RP /tmp/aaf/var/etc/uninst /var/etc/ ; sync")
-
-							if self.plug == "emusconfig" or self.plug == "patches":
-									ffile = open("/usr/lib/enigma2/python/Plugins/Extensions/AddonManager/inst.log","a")
-									ffile.write("es ist ein Flashimage (emusconfig)")
-									ffile.write("\n")
-									ffile.write("cp -RP /tmp/aaf/* / ; sync")
-									ffile.write("\n")
-									ffile.close()
-									print "[Addon-Manager] EmuConfig wird installiert!"
-									os.system("cp -RP /tmp/aaf/* / ; sync")
-
-						# es ist ein Flash aber keine ufs910
-						else:
-							#self.box = "dm8000"
-							if box == "dm8000":
-								ffile = open("/usr/lib/enigma2/python/Plugins/Extensions/AddonManager/inst.log","a")
-								ffile.write("es ist ein Flashimage aber keine ufs910")
-								ffile.write("\n")
-								ffile.write("IPKvu wird entpackt!")
-								ffile.write("\n")
-								ffile.close()
-								self["statusbar"].text = _("Decompressing IPK-File...")
-								os.system("cd /tmp/aaf ; ipkg install /tmp/aaf/downfile.sh4.ipk")
-								#os.system("rm -r /tmp/aaf")
-							else:
-								ffile = open("/usr/lib/enigma2/python/Plugins/Extensions/AddonManager/inst.log","a")
-								ffile.write("es ist ein Flashimage aber keine ufs910")
-								ffile.write("\n")
-								ffile.write("cp -RP /tmp/aaf/* / ; sync")
-								ffile.write("\n")
-								ffile.close()
-								#GOst begin
-								#os.system("cp -RP /tmp/aaf/* / ; sync")
-								os.system("(cd /tmp/aaf; tar -xzf *tar.gz -C / ; sync)")
-								#GOst end
-
-					# es ist kein Flash
-					else:
-							if box == "dm8000":
-								ffile = open("/usr/lib/enigma2/python/Plugins/Extensions/AddonManager/inst.log","a")
-								ffile.write("IPKvu wird entpackt!")
-								ffile.write("\n")
-								ffile.close()
-								self["statusbar"].text = _("Decompressing IPK-File...")
-								os.system("cd /tmp/aaf ; ipkg install /tmp/aaf/downfile.sh4.ipk")
-								os.system("rm -r /tmp/aaf")
-							else:
-								ffile = open("/usr/lib/enigma2/python/Plugins/Extensions/AddonManager/inst.log","a")
-								ffile.write("es ist kein Flashimage")
-								ffile.write("\n")
-								ffile.write("cp -RP /tmp/aaf/* / ; sync")
-								ffile.write("\n")
-								ffile.close()
-								#GOst begin
-								#os.system("(. /usr/lib/enigma2/python/Plugins/Extensions/AddonManager/cp_r.func; cp_r /tmp/aaf / ; sync)")
-								os.system("(cd /tmp/aaf; tar -xzf *tar.gz -C / ; sync)")
-								#GOst end
-
-					os.system("rm -r /tmp/aaf")
-					os.system("cd / ; rm *tar.gz")
 		else:
 				ffile = open("/usr/lib/enigma2/python/Plugins/Extensions/AddonManager/inst.log","a")
@@ -1441,5 +1055,11 @@
 				self["statusbar"].text = _("Decompressing IPK-File...")
 				os.system("cd /tmp/aaf ; ipkg update")
-				os.system("cd /tmp/aaf ; ipkg install /tmp/aaf/downfile.sh4.ipk")
+
+				if config.AddonManager.ungenau.value == 1:
+					self.CpString = "cd /tmp/aaf ; ipkg install /tmp/aaf/downfile.sh4.ipk"
+					self.session.open(Console, title = _("IPK Installer"), cmdlist = ["%s" % self.CpString], closeOnSuccess = False)
+				else:
+					os.system("cd /tmp/aaf ; ipkg install /tmp/aaf/downfile.sh4.ipk")
+
 				os.system("rm -r /tmp/aaf")
 
@@ -1449,13 +1069,4 @@
 		#if self.plug == "skins":
 		#	self.session.open(SkinSelector)
-
-		if self.plug == "settings":
-			restartbox = self.session.openWithCallback(self.restartGUI,MessageBox,_("Die Installation hat einen Neustart angefordert!\nBei NEIN muss die Installation wiederholt werden!"), MessageBox.TYPE_YESNO)
-			restartbox.setTitle(_("UFS-Box starten?"))
-
-	def restart(self, answer):
-		if answer is True:
-			os.system("sync")
-			os.system("reboot -f")
 
 	def restartGUI(self, answer):
@@ -1490,6 +1101,4 @@
 	def closeCB(self):
 		if self.download:
-			#self.download.stop()
-			#self.plugin_failed(None, "Cancelled by user request")
 			self.downloading(False)
 		else:
@@ -1535,5 +1144,5 @@
         self.list.append(getConfigListEntry(_("Installierte Plugins in Liste farbig markieren"), config.AddonManager.marker_on))
         self.list.append(getConfigListEntry(_("Markierungsfarbe (0=rot, 1=gruen, 2=blau)"), config.AddonManager.mark_color))
-        self.list.append(getConfigListEntry(_("Installierte Plugins feststellen (0=genau, 1=ungenau)"), config.AddonManager.ungenau))
+        self.list.append(getConfigListEntry(_("Installations Konsole am Bildschirm (0=Aus, 1=Ein)"), config.AddonManager.ungenau))
 
         ConfigListScreen.__init__(self, self.list)
@@ -1554,5 +1163,4 @@
 			      x[1].save()
         config.save()
-        #config.AddonManager.save()
         self.showpreview = config.AddonManager.preview_on.value
         self.previewtimeout = config.AddonManager.preview_timeout.value
@@ -1565,6 +1173,4 @@
 		        activesource = "http://kati910.aaf-board.info/dbase"
 		        activenam = "Secondary-Server"
-        #if self.betacode == True:
-	      #  self.previewtimeout = 600
         #restore()
         self.close()
@@ -1684,5 +1290,4 @@
 		Screen.__init__(self, session)
 
-		#self.focus = None
 		self["actions"] = ActionMap(["OkCancelActions", "DirectionActions", "ColorActions", "MovieSelectionActions"],
 		{
@@ -1768,9 +1373,7 @@
 		self.filename = None
 		self.filename = self.filelist.getFilename()
-		#self.filename = self.currDir + "/" + self.currBox + "/" + self.filename
 		self.fullname = self.currDir + "/" + self.filename
 		print "[AddonManager] Select-Filename=", self.filename
 		self["filelist"].refresh()
-
 		self.CpString = "/usr/lib/enigma2/python/Plugins/Extensions/AddonManager/restore.sh " + self.filename + " boot"
 		self.session.open(Console, title = _("Restore - Settings"), cmdlist = ["%s" % self.CpString], closeOnSuccess = False)
@@ -1779,5 +1382,156 @@
 	def Exit(self):
 		self.close()
-#-----------------------------------------------------------------
+
+# -------------------------------------------------------------------
+class FilterPanelList(MenuList):
+	def __init__(self, list, font0 = 28, font1 = 16, itemHeight = 60, enableWrapAround = True):
+		MenuList.__init__(self, [], False, eListboxPythonMultiContent)
+		self.l.setFont(0, gFont("Regular", font0))
+		self.l.setFont(1, gFont("Regular", font1))
+		self.l.setItemHeight(itemHeight)
+
+# -------------------------------------------------------------------
+class FilterPanel(Screen, HelpableScreen):
+	def __init__(self, session, Filter):
+		self.session = session
+		self.skin = """
+			<screen name="FilterPanel" position="center,center" size="430,440" title="Filterauswahl" backgroundColor="#252525">
+				<widget name="Mlist" position="10,5" size="400,400" zPosition="3" backgroundColor="#252525"  backgroundColorSelected="#565656" scrollbarMode="showOnDemand" />
+
+				<eLabel position="0,410" zPosition="2" size="430,1" backgroundColor="#c1cdc1" />
+				<widget source="key_blue" render="Label" position="260,417" zPosition="2" size="200,30" font="Regular;20" valign="center" halign="left" transparent="1" />
+				<ePixmap position="200,420" size="36,20" pixmap="skin_default/buttons/key_blue.png" transparent="1" alphatest="on" />
+				<widget source="key_red" render="Label" position="80,417" zPosition="2" size="150,30" font="Regular;20" valign="center" halign="left" transparent="1" />
+				<ePixmap position="20,420" size="36,20" pixmap="skin_default/buttons/key_red.png" transparent="1" alphatest="on" />
+
+			</screen>"""
+
+		Screen.__init__(self, session)
+		self.Mlist = []
+
+		self.Mlist.append(self.FilterEntryItem((self.FilterEntryComponent('bootlogos'), _("bootlogos"), 'bootlogos')))
+		self.Mlist.append(self.FilterEntryItem((self.FilterEntryComponent('browsers'), _("browsers"), 'browsers')))
+		self.Mlist.append(self.FilterEntryItem((self.FilterEntryComponent('editors'), _("editors"), 'editors')))
+		self.Mlist.append(self.FilterEntryItem((self.FilterEntryComponent('emus'), _("emus"), 'emus')))
+		self.Mlist.append(self.FilterEntryItem((self.FilterEntryComponent('epg'), _("epg"), 'epg')))
+		self.Mlist.append(self.FilterEntryItem((self.FilterEntryComponent('fonts'), _("fonts"), 'fonts')))
+		self.Mlist.append(self.FilterEntryItem((self.FilterEntryComponent('games'), _("games"), 'games')))
+		self.Mlist.append(self.FilterEntryItem((self.FilterEntryComponent('infos'), _("infos"), 'infos')))
+		self.Mlist.append(self.FilterEntryItem((self.FilterEntryComponent('keymaps'), _("keymaps"), 'keymaps')))
+		self.Mlist.append(self.FilterEntryItem((self.FilterEntryComponent('mediacenter'), _("mediacenter"), 'mediacenter')))
+		self.Mlist.append(self.FilterEntryItem((self.FilterEntryComponent('picons'), _("picons"), 'picons')))
+		self.Mlist.append(self.FilterEntryItem((self.FilterEntryComponent('players'), _("players"), 'players')))
+		self.Mlist.append(self.FilterEntryItem((self.FilterEntryComponent('radiologos'), _("radiologos"), 'radiologos')))
+		self.Mlist.append(self.FilterEntryItem((self.FilterEntryComponent('settings'), _("settings"), 'settings')))
+		self.Mlist.append(self.FilterEntryItem((self.FilterEntryComponent('skins'), _("skins"), 'skins')))
+		self.Mlist.append(self.FilterEntryItem((self.FilterEntryComponent('spinner'), _("spinner"), 'spinner')))
+		self.Mlist.append(self.FilterEntryItem((self.FilterEntryComponent('swapbrowsers'), _("swapbrowsers"), 'swapbrowsers')))
+		self.Mlist.append(self.FilterEntryItem((self.FilterEntryComponent('swapeditors'), _("swapeditors"), 'swapeditors')))
+		self.Mlist.append(self.FilterEntryItem((self.FilterEntryComponent('swapemus'), _("swapemus"), 'swapemus')))
+		self.Mlist.append(self.FilterEntryItem((self.FilterEntryComponent('swapepg'), _("swapepg"), 'swapepg')))
+		self.Mlist.append(self.FilterEntryItem((self.FilterEntryComponent('swapgames'), _("swapgames"), 'swapgames')))
+		self.Mlist.append(self.FilterEntryItem((self.FilterEntryComponent('swapinfos'), _("swapinfos"), 'swapinfos')))
+		self.Mlist.append(self.FilterEntryItem((self.FilterEntryComponent('swapmediacenter'), _("swapmediacenter"), 'swapmediacenter')))
+		self.Mlist.append(self.FilterEntryItem((self.FilterEntryComponent('swapnetwork'), _("swapnetwork"), 'swapnetwork')))
+		self.Mlist.append(self.FilterEntryItem((self.FilterEntryComponent('swapplayers'), _("swapplayers"), 'swapplayers')))
+		self.Mlist.append(self.FilterEntryItem((self.FilterEntryComponent('swapscreensaver'), _("swapscreensaver"), 'swapscreensaver')))
+		self.Mlist.append(self.FilterEntryItem((self.FilterEntryComponent('swapskins'), _("swapskins"), 'swapskins')))
+		self.Mlist.append(self.FilterEntryItem((self.FilterEntryComponent('swapsystem'), _("swapsystem"), 'swapsystem')))
+		self.Mlist.append(self.FilterEntryItem((self.FilterEntryComponent('system'), _("system"), 'system')))
+
+		self.onChangedEntry = []
+		if (getDesktop(0).size().width() == 1280):
+				self["Mlist"] = FilterPanelList([], font0=24, font1=15, itemHeight=40)
+		else:
+				self["Mlist"] = FilterPanelList([], font0=24, font1=15, itemHeight=50)
+		self["Mlist"].l.setList(self.Mlist)
+		self["Mlist"].selectionEnabled(1)
+
+		self["key_blue"] = StaticText()
+		self["key_blue"].text = _("set Start")
+		self["key_red"] = StaticText()
+		self["key_red"].text = _("search")
+
+		HelpableScreen.__init__(self)
+		self["actions"] = HelpableActionMap(self, "AAFKeyActions",
+			{
+				"cancel": (self.Exit, "Beenden"),
+				"left": (self.left, "Seite hoch"),
+				"right": (self.right, "Seite runter"),
+				"up": (self.up, "Hoch"),
+				"down": (self.down, "Runter"),
+				"ok": (self.ok, "OK"),
+				"blue": (self.blue, "Blau"),
+				"red": (self.virtualKB, "Red"),
+			}, -2)
+
+	def up(self):
+		self["Mlist"].up()
+		self["Mlist"].selectionEnabled(1)
+
+	def down(self):
+		self["Mlist"].down()
+		self["Mlist"].selectionEnabled(1)
+
+	def left(self):
+		self["Mlist"].pageUp()
+
+	def right(self):
+		self["Mlist"].pageDown()
+
+	def Exit(self):
+		global menu
+		menu = "stop"
+		self.close()
+
+	def ok(self):
+		global menu
+		menu = self['Mlist'].l.getCurrentSelection()[0][2]
+		self.close()
+
+	def blue(self):
+		menu = self['Mlist'].l.getCurrentSelection()[0][2]
+		fwrite = open("/usr/lib/enigma2/python/Plugins/Extensions/AddonManager/startservice.cfg", "w")
+		fwrite.write(menu)
+		fwrite.close()
+		message = "%s %s" % (_("Dieser Filter wurde als Startfilter gesetzt!\n\n                       "), menu)
+		self.session.open( MessageBox, message, MessageBox.TYPE_INFO, timeout=5)
+
+
+	def FilterEntryComponent(self,file):
+		png = LoadPixmap("/usr/lib/enigma2/python/Plugins/Extensions/AddonManager/pics/" + file + ".png")
+		if png == None:
+			png = LoadPixmap("/usr/lib/enigma2/python/Plugins/Extensions/AddonManager/pics/info.png")
+		res = (png)
+		return res
+
+	def FilterEntryItem(self,entry):
+		rot = 16711680
+		gruen = 60928
+		dgruen = 52480
+		drot = 0xf47d19
+		mblau = 8900346
+		hblau = 11592447
+		dblau = 5215437
+		weiss = 0xffffff
+		orange = 0xf47d19
+		grau = 0x565656
+
+		res = [entry]
+		#	return (eListboxPythonMultiContent.TYPE_TEXT, pos[0], pos[1], size[0], size[1], font, flags, text, color, color_sel, backcolor, backcolor_sel, border_width, border_color)
+		res.append(MultiContentEntryPixmapAlphaTest(pos=(2, 5), size=(100, 50), png=entry[0]))  # png vorn
+		res.append(MultiContentEntryText(pos=(150, 15), size=(220, 35), font=0, text=entry[1], color=mblau, color_sel=mblau, backcolor_sel=grau))
+		return res
+
+	def virtualKB(self):
+			self.search = ""
+			self.session.openWithCallback(lambda x : self.VirtualKeyBoardCallback(x, ''), VirtualKeyBoard, title = (_("Suchstring eingeben:")), text = self.search)
+
+	def VirtualKeyBoardCallback(self, callback = None, entry = None):
+		global menu
+		if callback is not None and len(callback):
+			print "[AddonManager] virtual callback",str(callback)
+			menu = callback
+			self.close()
 
 
Index: ipk/source/system_addonmanager_2_0/usr/lib/enigma2/python/Plugins/Extensions/AddonManager/ipkdownload
===================================================================
--- ipk/source/system_addonmanager_2_0/usr/lib/enigma2/python/Plugins/Extensions/AddonManager/ipkdownload	(revision 5901)
+++ ipk/source/system_addonmanager_2_0/usr/lib/enigma2/python/Plugins/Extensions/AddonManager/ipkdownload	(revision 5923)
@@ -2,4 +2,6 @@
 
 rm /tmp/aaf/*
+
+#  cat Packages | grep Filename: | sed "s/Filename: enigma2-plugin-//" | sed "s/.ipk//" | sed "s/_sh4//" | sed "s/_/ V/" >> PlugList
 
 if [ -e /var/etc/ipkg/official-feed.conf ]; then
@@ -13,9 +15,11 @@
 fi
 
-url=$url"/Packages"
+url=$url"/PlugList"
 echo $url
 
 wget -O /tmp/aaf/test $url
-cat /tmp/aaf/test | grep "Filename: " | cut -d '"' -f8 >/tmp/aaf/first.txt
+
+# remove first 2 lines and last 2 lines
+cat /tmp/aaf/test| sed '1,2d'|sed '$d'|sed '$d'| sed -e 's/ V/_/' >/tmp/aaf/first.txt
 
 for i in /tmp/aaf/first.txt; do
@@ -23,10 +27,8 @@
   	do
        lines="$Zeile"
-       Titel="`echo $lines | sed -e 's/enigma2-plugin-//'| sed -e 's/Filename: //'`"
-       Filename="`echo $lines | sed -e 's/Filename: //'`"
-        echo $Titel"##"$Filename >>/tmp/aaf/index.txt
+       echo $lines"##enigma2-plugin-"$lines"_sh4.ipk" >>/tmp/aaf/index.txt
    done < $i
 done
 
-cat /tmp/aaf/index.txt
+#cat /tmp/aaf/index.txt
 
