From 91890bc31f2752aa8ff55372aa69a6723a0c09b5 Mon Sep 17 00:00:00 2001 From: Stefan Pluecken Date: Tue, 10 Jan 2006 15:39:00 +0000 Subject: [PATCH] move the plugins into their own directory and every plugin has a main python file called plugin.py in his directory for example the update plugin now resides in /usr/lib/enigma2/python/Plugins/update when you add a plugin, don't forget to put an empty __init__.py file into the directory, otherwise python doesn't recognize the directory as module --- configure.ac | 1 + lib/python/Components/PluginComponent.py | 36 +++++++------ lib/python/Plugins/Makefile.am | 7 +-- lib/python/Plugins/update.png | 0 lib/python/Plugins/update.py | 0 lib/python/Plugins/update/Makefile.am | 0 lib/python/Plugins/update/update.png | 0 lib/python/Tools/Directories.py | 2 + po/Makefile.am | 2 +- po/de.po | 86 ++++++++++++++++---------------- 10 files changed, 71 insertions(+), 63 deletions(-) delete mode 100644 lib/python/Plugins/update.png delete mode 100644 lib/python/Plugins/update.py create mode 100644 lib/python/Plugins/update/Makefile.am create mode 100644 lib/python/Plugins/update/update.png diff --git a/configure.ac b/configure.ac index 7c4c2cd..fc761e1 100644 --- a/configure.ac +++ b/configure.ac @@ -59,6 +59,7 @@ lib/python/Makefile lib/python/Components/Makefile lib/python/Screens/Makefile lib/python/Plugins/Makefile +lib/python/Plugins/update/Makefile lib/python/Tools/Makefile lib/service/Makefile lib/components/Makefile diff --git a/lib/python/Components/PluginComponent.py b/lib/python/Components/PluginComponent.py index 5315d3d..0b40702 100644 --- a/lib/python/Components/PluginComponent.py +++ b/lib/python/Components/PluginComponent.py @@ -2,7 +2,6 @@ import os from Tools.Directories import * from Screens.Menu import menuupdater -#import Plugins class PluginComponent: def __init__(self): @@ -15,22 +14,27 @@ class PluginComponent: def getPluginList(self): list = [] - dir = os.listdir("/usr/lib/enigma2/python/Plugins/") + dir = os.listdir(resolveFilename(SCOPE_PLUGINS)) self.menuDelete() self.menuEntries = [] - for x in dir: - if x[-3:] == ".py" and x[:-3] != "__init__": - print "trying to import " + self.prefix + x[:-3] - exec "import " + self.prefix + x[:-3] - picturepath = eval(self.prefix + x[:-3]).getPicturePath() - pluginname = eval(self.prefix + x[:-3]).getPluginName() - try: - for menuEntry in eval(self.prefix + x[:-3]).getMenuRegistrationList(): - self.menuEntries.append([menuEntry, self.prefix + x[:-3]]) - except: - pass - list.append((picturepath, pluginname , x[:-3])) + for x in dir: + path = resolveFilename(SCOPE_PLUGINS, x) + "/" + if os.path.exists(path): + if fileExists(path + "plugin.py"): + pluginmodule = self.prefix + x + ".plugin" + print "trying to import " + pluginmodule + exec "import " + pluginmodule + plugin = eval(pluginmodule) + picturepath = plugin.getPicturePath() + pluginname = plugin.getPluginName() + try: + for menuEntry in plugin.getMenuRegistrationList(): + self.menuEntries.append([menuEntry, pluginmodule]) + except: + pass + + list.append((picturepath, pluginname , x)) self.menuUpdate() return list @@ -44,8 +48,8 @@ class PluginComponent: def runPlugin(self, plugin, session): try: - exec "import " + self.prefix + plugin[2] - eval(self.prefix + plugin[2]).main(session) + exec "import " + self.prefix + plugin[2] + ".plugin" + eval(self.prefix + plugin[2] + ".plugin").main(session) except: print "exec of plugin failed!" diff --git a/lib/python/Plugins/Makefile.am b/lib/python/Plugins/Makefile.am index 47e6cec..21dcb9c 100644 --- a/lib/python/Plugins/Makefile.am +++ b/lib/python/Plugins/Makefile.am @@ -1,7 +1,8 @@ installdir = $(LIBDIR)/enigma2/python/Plugins +SUBDIRS = update + install_PYTHON = \ - __init__.py \ - update.py \ - update.png + __init__.py + diff --git a/lib/python/Plugins/update.png b/lib/python/Plugins/update.png deleted file mode 100644 index e69de29..0000000 diff --git a/lib/python/Plugins/update.py b/lib/python/Plugins/update.py deleted file mode 100644 index e69de29..0000000 diff --git a/lib/python/Plugins/update/Makefile.am b/lib/python/Plugins/update/Makefile.am new file mode 100644 index 0000000..e69de29 diff --git a/lib/python/Plugins/update/update.png b/lib/python/Plugins/update/update.png new file mode 100644 index 0000000..e69de29 diff --git a/lib/python/Tools/Directories.py b/lib/python/Tools/Directories.py index 37ff1aa..3736b7b 100644 --- a/lib/python/Tools/Directories.py +++ b/lib/python/Tools/Directories.py @@ -9,6 +9,7 @@ SCOPE_USERETC = 5 SCOPE_CONFIG = 6 SCOPE_LANGUAGE = 7 SCOPE_HDD = 8 +SCOPE_PLUGINS = 9 PATH_CREATE = 0 PATH_DONTCREATE = 1 @@ -18,6 +19,7 @@ defaultPaths = { SCOPE_SYSETC: ("/etc/", PATH_DONTCREATE), SCOPE_FONTS: ("/usr/share/fonts/", PATH_DONTCREATE), SCOPE_CONFIG: ("/etc/enigma2/", PATH_CREATE), + SCOPE_PLUGINS: ("/usr/lib/enigma2/python/Plugins/", PATH_CREATE), SCOPE_LANGUAGE: ("/usr/share/enigma2/po/", PATH_CREATE), diff --git a/po/Makefile.am b/po/Makefile.am index 11c2d98..a87d9eb 100644 --- a/po/Makefile.am +++ b/po/Makefile.am @@ -52,7 +52,7 @@ enigma2.pot: ../lib/python/Components/EventInfo.py \ ../lib/python/Components/Network.py \ ../lib/python/Components/RecordingConfig.py \ - ../lib/python/Plugins/update.py \ + ../lib/python/Plugins/update/update.py \ ../RecordTimer.py ./xml2po.py ../data/ >> enigma2.pot diff --git a/po/de.po b/po/de.po index d82bbdd..020f825 100644 --- a/po/de.po +++ b/po/de.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: tuxbox-enigma 0.0.1\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2006-01-06 23:18+0100\n" +"POT-Creation-Date: 2006-01-10 16:15+0100\n" "PO-Revision-Date: 2005-12-14 03:29+0100\n" "Last-Translator: Stefan Pluecken \n" "Language-Team: none\n" @@ -24,8 +24,8 @@ msgstr "" msgid "%d min" msgstr "" -#: ../lib/python/Screens/TimerEntry.py:89 -#: ../lib/python/Screens/TimerEntry.py:92 +#: ../lib/python/Screens/TimerEntry.py:91 +#: ../lib/python/Screens/TimerEntry.py:94 msgid "%d.%B %Y" msgstr "" @@ -70,7 +70,7 @@ msgstr "" msgid "A" msgstr "" -#: ../RecordTimer.py:90 +#: ../RecordTimer.py:91 msgid "" "A timer failed to record!\n" "Disable TV and try again?\n" @@ -155,7 +155,7 @@ msgstr "" msgid "Cable provider" msgstr "Kabelanbieter" -#: ../lib/python/Screens/Setup.py:110 ../lib/python/Screens/TimerEntry.py:19 +#: ../lib/python/Screens/Setup.py:110 ../lib/python/Screens/TimerEntry.py:21 msgid "Cancel" msgstr "Abbruch" @@ -163,7 +163,7 @@ msgstr "Abbruch" msgid "Capacity: " msgstr "Kapazität: " -#: ../lib/python/Screens/TimerEntry.py:173 ../data/ +#: ../lib/python/Screens/TimerEntry.py:175 ../data/ msgid "Channel" msgstr "Kanal" @@ -211,7 +211,7 @@ msgstr "Löschen" msgid "Delete failed!" msgstr "Löschen fehlgeschlagen." -#: ../lib/python/Screens/TimerEntry.py:134 +#: ../lib/python/Screens/TimerEntry.py:136 msgid "Description" msgstr "Beschreibung" @@ -267,7 +267,7 @@ msgstr "" "Die aktuelle Direktaufnahme\n" "abbrechen?" -#: ../lib/python/Plugins/update.py:33 +#: ../lib/python/Plugins/update/update.py:33 msgid "" "Do you want to update your Dreambox?\n" "After pressing OK, please wait!" @@ -301,11 +301,11 @@ msgstr "Ost" msgid "Enable" msgstr "Ein" -#: ../lib/python/Screens/TimerEntry.py:168 +#: ../lib/python/Screens/TimerEntry.py:170 msgid "End" msgstr "Ende" -#: ../lib/python/Screens/TimerEntry.py:171 +#: ../lib/python/Screens/TimerEntry.py:173 msgid "EndTime" msgstr "Endzeit" @@ -331,12 +331,12 @@ msgstr "Favoriten" #: ../lib/python/Screens/ScanSetup.py:87 #: ../lib/python/Screens/ScanSetup.py:115 #: ../lib/python/Screens/ScanSetup.py:125 -#: ../lib/python/Screens/TimerEntry.py:141 +#: ../lib/python/Screens/TimerEntry.py:143 msgid "Frequency" msgstr "Frequenz" -#: ../lib/python/Screens/TimerEntry.py:95 -#: ../lib/python/Screens/TimerEntry.py:155 +#: ../lib/python/Screens/TimerEntry.py:97 +#: ../lib/python/Screens/TimerEntry.py:157 msgid "Friday" msgstr "Freitag" @@ -426,12 +426,12 @@ msgstr "Modell:" msgid "Modulation" msgstr "" -#: ../lib/python/Screens/TimerEntry.py:87 +#: ../lib/python/Screens/TimerEntry.py:89 msgid "Mon-Fri" msgstr "Montag bis Freitag" -#: ../lib/python/Screens/TimerEntry.py:95 -#: ../lib/python/Screens/TimerEntry.py:151 +#: ../lib/python/Screens/TimerEntry.py:97 +#: ../lib/python/Screens/TimerEntry.py:153 msgid "Monday" msgstr "Montag" @@ -443,7 +443,7 @@ msgstr "Filmauswahl" msgid "N/A" msgstr "Nicht verfügbar" -#: ../lib/python/Screens/TimerEntry.py:133 +#: ../lib/python/Screens/TimerEntry.py:135 msgid "Name" msgstr "" @@ -494,7 +494,7 @@ msgstr "Nord" msgid "Nothing connected" msgstr "Nichts angeschlossen" -#: ../lib/python/Screens/Setup.py:109 ../lib/python/Screens/TimerEntry.py:18 +#: ../lib/python/Screens/Setup.py:109 ../lib/python/Screens/TimerEntry.py:20 msgid "OK" msgstr "" @@ -514,7 +514,7 @@ msgstr "Eins" msgid "Play recorded movies..." msgstr "Aufgenommene Filme abspielen..." -#: ../lib/python/Plugins/update.py:19 +#: ../lib/python/Plugins/update/update.py:19 msgid "Please press OK!" msgstr "Bitte OK drücken!" @@ -595,12 +595,12 @@ msgstr "Satellit" msgid "Satellites" msgstr "Satelliten" -#: ../lib/python/Screens/TimerEntry.py:95 -#: ../lib/python/Screens/TimerEntry.py:156 +#: ../lib/python/Screens/TimerEntry.py:97 +#: ../lib/python/Screens/TimerEntry.py:158 msgid "Saturday" msgstr "Samstag" -#: ../lib/python/Screens/TimerEntry.py:211 +#: ../lib/python/Screens/TimerEntry.py:213 msgid "Select channel to record from" msgstr "Kanal auswahlen, von dem aufgenommen werden soll" @@ -638,7 +638,7 @@ msgstr "Sockel " msgid "South" msgstr "Süd" -#: ../lib/python/Screens/TimerEntry.py:163 +#: ../lib/python/Screens/TimerEntry.py:165 msgid "Start" msgstr "" @@ -646,7 +646,7 @@ msgstr "" msgid "Start recording?" msgstr "Aufnahme beginnen?" -#: ../lib/python/Screens/TimerEntry.py:166 +#: ../lib/python/Screens/TimerEntry.py:168 msgid "StartTime" msgstr "Startzeit" @@ -666,8 +666,8 @@ msgstr "" msgid "Subservices" msgstr "Unterkanäle" -#: ../lib/python/Screens/TimerEntry.py:95 -#: ../lib/python/Screens/TimerEntry.py:157 +#: ../lib/python/Screens/TimerEntry.py:97 +#: ../lib/python/Screens/TimerEntry.py:159 msgid "Sunday" msgstr "Sonntag" @@ -688,12 +688,12 @@ msgstr "" msgid "Threshold" msgstr "" -#: ../lib/python/Screens/TimerEntry.py:95 -#: ../lib/python/Screens/TimerEntry.py:154 +#: ../lib/python/Screens/TimerEntry.py:97 +#: ../lib/python/Screens/TimerEntry.py:156 msgid "Thursday" msgstr "Donnerstag" -#: ../lib/python/Screens/TimerEntry.py:135 +#: ../lib/python/Screens/TimerEntry.py:137 msgid "Timer Type" msgstr "Timer-Art" @@ -713,8 +713,8 @@ msgstr "Toneburst A/B" msgid "Transmission mode" msgstr "Übertragungstyp" -#: ../lib/python/Screens/TimerEntry.py:95 -#: ../lib/python/Screens/TimerEntry.py:152 +#: ../lib/python/Screens/TimerEntry.py:97 +#: ../lib/python/Screens/TimerEntry.py:154 msgid "Tuesday" msgstr "Dienstag" @@ -755,11 +755,11 @@ msgstr "" msgid "Universal LNB" msgstr "" -#: ../lib/python/Plugins/update.py:42 +#: ../lib/python/Plugins/update/update.py:42 msgid "Updating finished. Here is the result:" msgstr "Aktualisierung beendet. Hier das Ergebnis:" -#: ../lib/python/Plugins/update.py:48 +#: ../lib/python/Plugins/update/update.py:48 msgid "Updating... Please wait... This can take some minutes..." msgstr "" "Update wird durchgeführt. Bitte warten. Der Vorgang kann einige Minuten " @@ -785,12 +785,12 @@ msgstr "" msgid "W" msgstr "" -#: ../lib/python/Screens/TimerEntry.py:95 -#: ../lib/python/Screens/TimerEntry.py:153 +#: ../lib/python/Screens/TimerEntry.py:97 +#: ../lib/python/Screens/TimerEntry.py:155 msgid "Wednesday" msgstr "Mittwoch" -#: ../lib/python/Screens/TimerEntry.py:148 +#: ../lib/python/Screens/TimerEntry.py:150 msgid "Weekday" msgstr "Wochentag" @@ -852,7 +852,7 @@ msgstr "" msgid "circular right" msgstr "" -#: ../lib/python/Screens/TimerEntry.py:87 +#: ../lib/python/Screens/TimerEntry.py:89 msgid "daily" msgstr "täglich" @@ -913,7 +913,7 @@ msgid "next channel" msgstr "nächster Kanal" #: ../lib/python/Screens/ScanSetup.py:197 -#: ../lib/python/Screens/TimerEntry.py:99 +#: ../lib/python/Screens/TimerEntry.py:101 #: ../lib/python/Components/Network.py:146 #: ../lib/python/Components/RecordingConfig.py:7 msgid "no" @@ -943,7 +943,7 @@ msgstr "aus" msgid "on" msgstr "an" -#: ../lib/python/Screens/TimerEntry.py:83 +#: ../lib/python/Screens/TimerEntry.py:85 msgid "once" msgstr "einmalig" @@ -955,7 +955,7 @@ msgstr "vorheriger Kanal" msgid "remove service" msgstr "Kanal löschen" -#: ../lib/python/Screens/TimerEntry.py:83 +#: ../lib/python/Screens/TimerEntry.py:85 msgid "repeated" msgstr "wiederholend" @@ -1009,7 +1009,7 @@ msgstr "" msgid "unknown service" msgstr "unbekannter Service" -#: ../lib/python/Screens/TimerEntry.py:87 +#: ../lib/python/Screens/TimerEntry.py:89 msgid "user defined" msgstr "benutzerdefiniert" @@ -1017,12 +1017,12 @@ msgstr "benutzerdefiniert" msgid "vertical" msgstr "vertikal" -#: ../lib/python/Screens/TimerEntry.py:87 +#: ../lib/python/Screens/TimerEntry.py:89 msgid "weekly" msgstr "wöchentlich" #: ../lib/python/Screens/ScanSetup.py:197 -#: ../lib/python/Screens/TimerEntry.py:99 +#: ../lib/python/Screens/TimerEntry.py:101 #: ../lib/python/Components/Network.py:146 #: ../lib/python/Components/RecordingConfig.py:7 msgid "yes" -- 2.7.4