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 Screens.Console import Console
15 from Screens.MessageBox import MessageBox
16 from Screens.Screen import Screen
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 ##############################################################################
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 Screen.__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)