5 from Components.ActionMap import ActionMap
6 from Components.MenuList import MenuList
7 from os import path as os_path
8 from RS import rapidshare
9 from RSConfig import RSConfig, config
10 from RSDownloadBrowser import RSDownloadBrowser
11 from RSListBrowser import RSListBrowser
12 from RSProgress import RSProgress
13 from RSSearch import RSSearch
14 from RSTranslation import _, TitleScreen
15 from Screens.Console import Console
16 from Screens.MessageBox import MessageBox
17 from Tools.Directories import fileExists
19 if fileExists("/usr/lib/enigma2/python/Screens/LTKeyBoard.pyc"):
20 from Screens.LTKeyBoard import LTKeyBoard
23 from Components.Input import Input
24 from Screens.InputBox import InputBox
27 ##############################################################################
29 class RSMain(TitleScreen):
31 <screen position="200,165" size="320,270" title="RS Downloader">
32 <widget name="list" position="10,10" size="300,250" />
35 def __init__(self, session, args = None):
36 TitleScreen.__init__(self, session)
37 self.session = session
39 self["list"] = MenuList([
40 _("Start downloading..."),
42 _("Show downloads..."),
43 _("Show progress..."),
48 _("Use search-engine..."),
51 self["actions"] = ActionMap(["OkCancelActions"], {"ok": self.okClicked, "cancel": self.close}, -1)
54 selected = self["list"].getCurrent()
55 if selected is not None:
56 if selected == (_("Start downloading...")):
57 if not rapidshare.downloading:
58 ret = rapidshare.startDownloading()
60 self.session.open(MessageBox, _("Started downloading..."), MessageBox.TYPE_INFO)
62 self.session.open(MessageBox, _("Could not start downloading!"), MessageBox.TYPE_ERROR)
64 self.session.open(MessageBox, _("Already downloading!"), MessageBox.TYPE_ERROR)
66 elif selected == (_("Show lists...")):
67 path = config.plugins.RSDownloader.lists_directory.value
68 if os_path.exists(path):
69 self.session.open(RSListBrowser, path)
71 self.session.open(MessageBox, (_("Couldn't find the directory %s!") % path), MessageBox.TYPE_ERROR)
73 elif selected == (_("Show downloads...")):
74 path = config.plugins.RSDownloader.downloads_directory.value
75 if os_path.exists(path):
76 self.session.open(RSDownloadBrowser, path)
78 self.session.open(MessageBox, (_("Couldn't find the directory %s!") % path), MessageBox.TYPE_ERROR)
80 elif selected == (_("Show progress...")):
81 self.session.open(RSProgress)
83 elif selected == (_("Edit configs...")):
84 self.session.open(RSConfig)
86 elif selected == (_("Show status...")):
87 if rapidshare.downloading:
88 self.session.open(MessageBox, (_("Downloading %s.") % rapidshare.downloading_file), MessageBox.TYPE_INFO)
90 self.session.open(MessageBox, _("Stopped!"), MessageBox.TYPE_INFO)
92 elif selected == (_("Show log...")):
93 self.session.open(Console, "RS Downloader", ["cat /tmp/rapidshare.log"])
95 elif selected == (_("Delete log...")):
96 self.session.open(Console, "RS Downloader", ["rm -f /tmp/rapidshare.log"])
98 elif selected == (_("Use search-engine...")):
99 title = _("Search http://rapidshare-search-engine.com for:")
101 self.session.openWithCallback(self.searchCallback, LTKeyBoard, title=title)
103 self.session.openWithCallback(self.searchCallback, InputBox, title=title, text="", maxSize=False, type=Input.TEXT)
105 elif selected == (_("Show info...")):
106 self.session.open(MessageBox, (_("RS Downloader\nby AliAbdul\n\nThis plugin allows you to download files from rapidshare in the background.")), MessageBox.TYPE_INFO)
108 def searchCallback(self, callback):
109 if callback is not None and callback != "":
110 self.session.open(RSSearch, callback)