diff --git a/.idea/workspace.xml b/.idea/workspace.xml
index 05b9e70..dd8ecf9 100644
--- a/.idea/workspace.xml
+++ b/.idea/workspace.xml
@@ -1,8 +1,19 @@
-
+
+
+
+
+
+
+
+
+
+
+
+
@@ -30,13 +41,13 @@
-
+
-
+
@@ -45,12 +56,14 @@
-
-
+
+
-
-
-
+
+
+
+
+
@@ -58,35 +71,361 @@
-
-
+
+
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
+
+
-
-
+
+
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -95,355 +434,454 @@
-
+
-
-
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
+
+
@@ -452,18 +890,19 @@
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -481,36 +920,36 @@
- Torrenter Search Window
- self.reconnect(pyxbmct.ACTION_NAV_BACK
- last_listing_mode
- last_action
+ navi_save
last_link
- last_right_buttons_count
- right_buttons_count
- playSTRM
- set_resolved_url
- Unable to rename torrent file from
- self.
- listitem
- setAnimation
- last_right_button
- self.back
- self.reconnect(pyxbmct.ACTION_NAV_BACK, self.history)
- right_menu_set_label
- navi_u
- self.search(
+ self.last_right_button
+ self.last_top_button
+ navi_restore
+ traceback
+ self.filesList
+ self.navi_back
+ torrent_moveup
+ last_listing_item
+ self.navi['addtime']
+ self.button_keyboard
+ back
+ route
+ if self.listing.size():
navi_route
- navi_back
- pyxbmct.ACTION_NAV_BACK
- self.open_torrent
- Fuck this!
- .play
- self.display_name
- self.right_buttons_count
- move
- '..'
- WINDOW_FULLSCREEN_VIDEO
+ rutor-
+ __main__
+ url_after
+ log(
+ debug
+ torrentPlayer
+ json
+ onPlayBackStopped
+ play
+ xbmc.P
+ loadsw_onstop
+ setSetting
+ ettings__.setSetting('loadsw_onstop'
+ self.close
pyxbmct.Button(
@@ -521,6 +960,9 @@
action
__settings__
get
+ self.navi['filesList']
+ self.route
+ debug(
@@ -534,9 +976,6 @@
@@ -610,6 +1052,7 @@
+
@@ -625,7 +1068,6 @@
-
@@ -638,14 +1080,14 @@
-
-
-
-
+
+
+
+
@@ -824,97 +1266,6 @@
1420801533300
-
- 1458422525847
-
-
-
- 1458422525847
-
-
- 1458578204865
-
-
-
- 1458578204866
-
-
- 1458590127449
-
-
-
- 1458590127449
-
-
- 1458661590380
-
-
-
- 1458661590380
-
-
- 1458665328088
-
-
-
- 1458665328088
-
-
- 1458676132272
-
-
-
- 1458676132272
-
-
- 1459267074551
-
-
-
- 1459267074551
-
-
- 1459948765760
-
-
-
- 1459948765761
-
-
- 1462112732358
-
-
-
- 1462112732359
-
-
- 1463216665206
-
-
-
- 1463216665207
-
-
- 1464414170046
-
-
-
- 1464414170047
-
-
- 1468423844090
-
-
-
- 1468423844090
-
-
- 1468508065155
-
-
-
- 1468508065156
-
1469213257690
@@ -1167,7 +1518,98 @@
1482175192676
-
+
+ 1482335546159
+
+
+
+ 1482335546159
+
+
+ 1482430459705
+
+
+
+ 1482430459706
+
+
+ 1482431121839
+
+
+
+ 1482431121839
+
+
+ 1482570919376
+
+
+
+ 1482570919378
+
+
+ 1482572058395
+
+
+
+ 1482572058395
+
+
+ 1482781967515
+
+
+
+ 1482781967516
+
+
+ 1482784610663
+
+
+
+ 1482784610663
+
+
+ 1482784775464
+
+
+
+ 1482784775464
+
+
+ 1482853629702
+
+
+
+ 1482853629702
+
+
+ 1483033488628
+
+
+
+ 1483033488628
+
+
+ 1483037344726
+
+
+
+ 1483037344726
+
+
+ 1483196320986
+
+
+
+ 1483196320986
+
+
+ 1483624982862
+
+
+
+ 1483624982864
+
+
@@ -1181,12 +1623,12 @@
-
+
-
+
@@ -1236,16 +1678,6 @@
-
-
-
-
-
-
-
-
-
-
@@ -1260,83 +1692,26 @@
+
-
+
+
+
+
+
+
+
+
+
+
-
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
@@ -1359,21 +1734,6 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
@@ -1381,20 +1741,6 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
@@ -1433,21 +1779,6 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
@@ -1470,28 +1801,6 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
@@ -1499,299 +1808,872 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
-
-
-
-
-
-
-
-
-
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
@@ -1799,410 +2681,231 @@
-
+
-
-
+
+
-
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/AceStream.py b/AceStream.py
index dda3cfc..4c91f2b 100644
--- a/AceStream.py
+++ b/AceStream.py
@@ -28,7 +28,7 @@ from StringIO import StringIO
import zlib
from functions import file_decode, file_encode
-from functions import magnet_alert, log, debug
+from functions import magnet_alert, log, loadsw_onstop
import xbmcvfs
@@ -81,6 +81,7 @@ class AceStream:
def __exit__(self):
self.TSplayer.end()
+ loadsw_onstop() # Reload Search Window
def play_url_ind(self, ind, label, icon):
self.TSplayer.play_url_ind(int(ind), label, str(icon), '')
diff --git a/Anteoloader.py b/Anteoloader.py
index b1676ab..3863849 100644
--- a/Anteoloader.py
+++ b/Anteoloader.py
@@ -30,7 +30,7 @@ import xbmcgui
import xbmcvfs
import xbmcaddon
import Localization
-from functions import localize_path, isSubtitle, DownloadDB, log, debug, is_writable, unquote, file_url
+from functions import localize_path, isSubtitle, loadsw_onstop, is_writable, file_url
import os
@@ -326,6 +326,8 @@ class AnteoPlayer(xbmc.Player):
xbmc.Player().stop()
+ loadsw_onstop() # Reload Search Window
+
if '1' != self.__settings__.getSetting("keep_files") and 'Saved Files' not in self.userStorageDirectory:
xbmc.sleep(1000)
clearStorage(self.userStorageDirectory)
diff --git a/Core.py b/Core.py
index 431fb59..9921556 100644
--- a/Core.py
+++ b/Core.py
@@ -39,6 +39,7 @@ class Core:
language = {0: 'en', 1: 'ru', 2: 'uk', 3: 'he', 4: 'hu'}.get(int(__settings__.getSetting("language")))
scrapperDB_ver = {'en':'1.1', 'ru':'1.3', 'he':'1.3'}
torrent_info_style = int(__settings__.getSetting('torrent_info_style'))
+ searchwindowmode = int(__settings__.getSetting('searchwindowmode'))
log('SYS ARGV: ' + str(sys.argv))
@@ -53,7 +54,8 @@ class Core:
def sectionMenu(self):
if self.__settings__.getSetting('plugin_name') != self.__plugin__:
#Every update run
- first_run_250()
+ first_run_260()
+ self.__settings__.setSetting('first_run_260', 'True')
self.__settings__.setSetting('plugin_name', self.__plugin__)
#check_network_advancedsettings()
check_download_dir()
@@ -65,52 +67,100 @@ class Core:
contextMenu = [(self.localize('Search Control Window'),
'xbmc.RunScript(%s,)' % os.path.join(ROOT, 'controlcenter.py'))]
- self.drawItem('< %s >' % self.localize('Search Window') + ' (BETA)', 'searchWindow',
- image=self.ROOT + '/icons/kodi.png', isFolder=False)
+ #Search Window
+ if self.searchwindowmode < 3:
+ self.drawItem('< %s >' % self.localize('Search Window'), 'searchWindow',
+ image=self.ROOT + '/icons/kodi.png', isFolder=False)
- if self.history_bool:
- HistorycontextMenu=[]
+ #History
+ if self.history_bool and self.searchwindowmode > 0:
+ HistorycontextMenu = []
HistorycontextMenu.extend(contextMenu)
HistorycontextMenu.append(
- (self.localize('Clear %s') % self.localize('Search History'), ListString % ('History', 'clear', 'addtime', '')))
- self.drawItem('< %s >' % self.localize('Search History'), 'History',
- image=self.ROOT + '/icons/history2.png', contextMenu=HistorycontextMenu, replaceMenu=False)
- self.drawItem('< %s >' % self.localize('Search'), 'search', image=self.ROOT + '/icons/search.png', )
+ (self.localize('Clear %s') % self.localize('Search History'),
+ ListString % ('History', 'clear', 'addtime', '')))
+ if self.searchwindowmode == 1:
+ self.drawItem('< %s >' % self.localize('Search History'), 'swHistory',
+ image=self.ROOT + '/icons/history2.png', contextMenu=HistorycontextMenu, replaceMenu=False)
+ else:
+ self.drawItem('< %s >' % self.localize('Search History'), 'History',
+ image=self.ROOT + '/icons/history2.png', contextMenu=HistorycontextMenu, replaceMenu=False)
+
+ #Search
+ if self.searchwindowmode == 1:
+ self.drawItem('< %s >' % self.localize('Search'), 'swsearch', image=self.ROOT + '/icons/search.png',)
+ elif self.searchwindowmode > 1:
+ self.drawItem('< %s >' % self.localize('Search'), 'search', image=self.ROOT + '/icons/search.png', )
+
+ #Media
CLcontextMenu=[]
CLcontextMenu.extend(contextMenu)
CLcontextMenu.append((self.localize('Reset All Cache DBs'),
ListString % ('full_download', '', 'url', json.dumps({'action': 'delete'}))))
self.drawItem('< %s >' % self.localize('Content Lists'), 'openContent', image=self.ROOT + '/icons/media.png',
contextMenu=CLcontextMenu, replaceMenu=False)
+
+ #DL Status
DLScontextMenu=[(self.localize('Start All'), ListString % ('DownloadStatus', 'startall', 'addtime', '')),
(self.localize('Stop All'), ListString % ('DownloadStatus', 'stopall', 'addtime', '')),]
DLScontextMenu.append(
(self.localize('Clear %s') % self.localize('Download Status'), ListString % ('DownloadStatus', 'clear', 'addtime', '')))
DLScontextMenu.extend(contextMenu)
- self.drawItem('< %s >' % self.localize('Download Status'), 'DownloadStatus', image=self.ROOT + '/icons/download.png',
- contextMenu=DLScontextMenu, replaceMenu=False)
- self.drawItem('< %s >' % self.localize('Torrent-client Browser'), 'uTorrentBrowser',
- image=self.ROOT + '/icons/' + getTorrentClientIcon())
- if self.history_bool:
+
+ if self.searchwindowmode == 1:
+ self.drawItem('< %s >' % self.localize('Download Status'), 'swDownloadStatus',
+ image=self.ROOT + '/icons/download.png',
+ contextMenu=DLScontextMenu, replaceMenu=False)
+ elif self.searchwindowmode > 1:
+ self.drawItem('< %s >' % self.localize('Download Status'), 'DownloadStatus',
+ image=self.ROOT + '/icons/download.png',
+ contextMenu=DLScontextMenu, replaceMenu=False)
+
+ #Torrent-client
+ if self.searchwindowmode == 1:
+ self.drawItem('< %s >' % self.localize('Torrent-client Browser'), 'swuTorrentBrowser',
+ image=self.ROOT + '/icons/' + getTorrentClientIcon())
+ elif self.searchwindowmode > 1:
+ self.drawItem('< %s >' % self.localize('Torrent-client Browser'), 'uTorrentBrowser',
+ image=self.ROOT + '/icons/' + getTorrentClientIcon())
+
+ #Watched
+ if self.history_bool and self.searchwindowmode > 0:
WatchedHistorycontextMenu=[]
WatchedHistorycontextMenu.extend(contextMenu)
WatchedHistorycontextMenu.append(
(self.localize('Clear %s') % self.localize('Watched History'), ListString % ('WatchedHistory', 'clear', 'addtime', '')))
- self.drawItem('< %s >' % self.localize('Watched History'), 'WatchedHistory',
- image=self.ROOT + '/icons/watched.png', contextMenu=WatchedHistorycontextMenu, replaceMenu=False)
+ if self.searchwindowmode == 1:
+ self.drawItem('< %s >' % self.localize('Watched History'), 'swWatchedHistory',
+ image=self.ROOT + '/icons/watched.png', contextMenu=WatchedHistorycontextMenu,
+ replaceMenu=False)
+ else:
+ self.drawItem('< %s >' % self.localize('Watched History'), 'WatchedHistory',
+ image=self.ROOT + '/icons/watched.png', contextMenu=WatchedHistorycontextMenu,
+ replaceMenu=False)
+
+ #Torr player
self.drawItem('< %s >' % self.localize('.torrent Player'), 'torrentPlayer',
- image=self.ROOT + '/icons/torrentPlayer.png')
+ image=self.ROOT + '/icons/torrentPlayer.png', isFolder = False)
+
+ #Search Control Window
self.drawItem('< %s >' % self.localize('Search Control Window'), 'controlCenter',
image=self.ROOT + '/icons/settings.png', isFolder=False)
+
+ #Magnet player
self.drawItem('< %s >' % self.localize('Magnet-link Player'), 'magentPlayer',
- image=self.ROOT + '/icons/magnet.png')
+ image=self.ROOT + '/icons/magnet.png', isFolder = False)
+
+ #Debug
if self.debug:
self.drawItem('full_download', 'full_download', image=self.ROOT + '/icons/magnet.png')
self.drawItem('test', 'test', image=self.ROOT + '/icons/magnet.png', isFolder=False)
+ #Clear storage
if '0' != self.__settings__.getSetting("keep_files"):
self.drawItem('< %s >' % self.localize('Clear Storage'), 'clearStorage', isFolder=True,
image=self.ROOT + '/icons/clear.png')
+
view_style('sectionMenu')
xbmcplugin.endOfDirectory(handle=int(sys.argv[1]), succeeded=True)
@@ -243,54 +293,43 @@ class Core:
lockView('wide')
def test(self, params={}):
- #from Anteoloader import AnteoPlayer
- #from python_libtorrent import get_libtorrent
- #self.lt=get_libtorrent()
- #self.torrentFile='D:\\test.torrent'
- #self.session = self.lt.session()
- #e=self.lt.bdecode(xbmcvfs.File(self.torrentFile,'rb').read())
- #self.torrentFileInfo = self.lt.torrent_info(e)
- #torrent_info={'ti': self.torrentFileInfo,
- # 'save_path': self.userStorageDirectory,
- # 'flags': 0x300,
- # #'storage_mode': self.lt.storage_mode_t(1),
- # 'paused': False,
- # #'auto_managed': False,
- # #'duplicate_is_error': True
- # }
- #self.torrentHandle = self.session.add_torrent(torrent_info)
- #log(self.torrentHandle.torrent_file())
- #self.session.remove_torrent(self.torrentHandle)
+ import searchwindow
+ params = {'mode': 'file_browser', 'path':'D:\\', 'tdir':'D:\\FRAPS\\'}
+ searchwindow.main(params)
- #params['url']='0'
- #if not xbmcvfs.exists(torrentUrl):
- # action = xbmcgui.Dialog()
- # torrentUrl = action.browse(1, self.localize('Choose .torrent in video library'), 'video', '.torrent')
- #if torrentUrl and xbmcvfs.exists(torrentUrl):
- # if 0 != len(torrentUrl):
- # self.Downloader = Downloader.Torrent(self.userStorageDirectory, torrentUrl)
- # else:
- # log(self.__plugin__ + " Unexpected access to method Anteoloader() without torrent content")
- #if self.Downloader:
- # x=self.Downloader.getContentList()
- # print str(x)
- # xbmc.sleep(1000)
- # self.Downloader.__exit__()
- #self.Player = AnteoPlayer(userStorageDirectory=self.userStorageDirectory, torrentUrl=torrentUrl, params=params)
+ def swHistory(self, params={}):
+ import searchwindow
+ params = {'mode': 'history'}
+ searchwindow.main(params)
+
+ def swDownloadStatus(self, params={}):
+ import searchwindow
+ params = {'mode': 'downloadstatus'}
+ searchwindow.main(params)
+
+ def swuTorrentBrowser(self, params={}):
+ import searchwindow
+ params = {'mode': 'browser'}
+ searchwindow.main(params)
+
+ def swWatchedHistory(self, params={}):
+ import searchwindow
+ params = {'mode': 'watched'}
+ searchwindow.main(params)
+
+
+ def swsearch(self, params={}):
+ if len(Searchers().get_active())<1:
+ noActiveSerachers()
+ return
+ keyboard = xbmc.Keyboard('', self.localize('Search Phrase'))
+ keyboard.doModal()
+ params["query"] = keyboard.getText()
+ if keyboard.isConfirmed():
+ params["mode"] = 'search'
+ import searchwindow
+ searchwindow.main(params)
- #xbmcgui.Dialog().ok('Dam Son!','Now send this shit to DiMartino')
- from resources.proxy import antizapret
- filename = os.path.join(tempdir(),"antizapret.pac_config")
- import shelve
- from contextlib import contextmanager, closing
- with closing(shelve.open(filename, writeback=True)) as d:
- import time
- log(str(d))
- log(str(time.time()))
- log(str((time.time() - d["created_at"])))
- ttl = 24*3600
- if ttl > 0 and (time.time() - d["created_at"]) > ttl:
- log('xxx')
def DownloadStatus(self, params={}):
db = DownloadDB()
@@ -1382,7 +1421,6 @@ class Core:
params["url"] = urllib.quote_plus(unescape(urllib.unquote_plus(query)))
else:
params["url"] = urllib.quote_plus(unescape(urllib.unquote_plus(defaultKeyword)))
- #print str(params)
self.torrentPlayer(params)
def torrentPlayer(self, params={}):
@@ -1403,7 +1441,12 @@ class Core:
% ('torrentPlayer', url))
return
if url:
- self.openTorrent(params)
+ if self.searchwindowmode > 1:
+ self.openTorrent(params)
+ else:
+ import searchwindow
+ params = {'mode': 'open_torrent', 'link': url}
+ searchwindow.main(params)
def userStorage(self, params):
save=False
diff --git a/Inposloader.py b/Inposloader.py
index a07f919..e30125d 100644
--- a/Inposloader.py
+++ b/Inposloader.py
@@ -30,7 +30,7 @@ import xbmcvfs
import xbmcaddon
import xbmcplugin
import Localization
-from functions import encode_msg, isSubtitle, is_writable, file_url, localize_path
+from functions import loadsw_onstop, isSubtitle, is_writable, file_url, localize_path
import os
@@ -301,6 +301,8 @@ class InposPlayer(xbmc.Player):
xbmc.Player().stop()
+ loadsw_onstop() # Reload Search Window
+
if '1' != self.__settings__.getSetting("keep_files") and 'Saved Files' not in self.userStorageDirectory:
xbmc.sleep(1000)
clearStorage(self.userStorageDirectory)
diff --git a/Localization.py b/Localization.py
index 39a3b0a..fb92526 100644
--- a/Localization.py
+++ b/Localization.py
@@ -809,6 +809,8 @@ def localize(text):
'Play (from start)':'Lejátszás (az elejétől)',
},
'ru': {
+ 'is recommended for Kodi 17 users and now out of beta.': 'рекомендовано пользователям Kodi 17 и вышло из беты.',
+ 'You can disable it usage in Settings.':'Его можно отключить в настройках плагина.',
'Move Up': 'Вверх',
'Torrenter Search Window': 'Окно Поиска Torrenter',
'Cancel': 'Отмена',
diff --git a/Player.py b/Player.py
index 62a3935..835197b 100644
--- a/Player.py
+++ b/Player.py
@@ -30,7 +30,7 @@ import Downloader
import xbmcgui
import xbmcvfs
import Localization
-from functions import calculate, showMessage, clearStorage, WatchedHistoryDB, DownloadDB, get_ids_video, log, debug, foldername, ensure_str
+from functions import calculate, showMessage, clearStorage, WatchedHistoryDB, DownloadDB, get_ids_video, log, debug, foldername, ensure_str, loadsw_onstop
ROOT = sys.modules["__main__"].__root__
RESOURCES_PATH = os.path.join(ROOT, 'resources')
@@ -184,6 +184,8 @@ class TorrentPlayer(xbmc.Player):
debug('************************************* NO! break')
break
+ loadsw_onstop() # Reload Search Window
+
self.torrent.stopSession()
self.torrent.threadComplete = True
self.torrent.checkThread()
diff --git a/addon.xml b/addon.xml
index c0cd2f5..657ce7b 100644
--- a/addon.xml
+++ b/addon.xml
@@ -1,5 +1,5 @@
-
+
diff --git a/changelog.txt b/changelog.txt
index a757435..41488c5 100644
--- a/changelog.txt
+++ b/changelog.txt
@@ -1,5 +1,8 @@
English changelog at http://bit.ly/1MfSVUP
+[B]Version 2.5.6[/B]
+[+] Списки Медиа: Добавлен RuTorOrg
+
[B]Version 2.5.5[/B]
[+] Control Center: Исправлена работа выбора трекеров для определенного запроса
[+] Торрент-клиент: При скачивании одного файла торрент-клиентом теперь автоматически выбирается раздача
diff --git a/functions.py b/functions.py
index 846d037..c72e562 100644
--- a/functions.py
+++ b/functions.py
@@ -1870,6 +1870,18 @@ def first_run_250():
#ok = xbmcgui.Dialog().ok('< %s >' % (Localization.localize('Torrenter Update ') + '2.4.2'),
# Localization.localize('Torrent2HTTP enabled! Can be changed in Settings.'))
+def first_run_260():
+ if not __settings__.getSetting('first_run_260') == 'True':
+ yes=xbmcgui.Dialog().yesno('< %s >' % (Localization.localize('Torrenter Update ') + '2.6.0'),
+ Localization.localize('Torrenter Search Window')+' '
+ +Localization.localize('is recommended for Kodi 17 users and now out of beta.')
+ +Localization.localize('You can disable it usage in Settings.'),
+ Localization.localize('Would you like to try it?'),)
+ if yes:
+ import searchwindow
+ searchwindow.main()
+
+
def seeking_warning(seek):
if __settings__.getSetting('torrent_player')!='1':
seek_point = '%02d:%02d:%02d' % ((seek / (60*60)), (seek / 60) % 60, seek % 60)
@@ -2266,3 +2278,9 @@ def get_item():
item.setInfo(type='Video', infoLabels=infoLabels)
return item
+
+def loadsw_onstop():
+ if __settings__.getSetting('loadsw_onstop') == 'true':
+ import searchwindow
+ params = {'mode': 'load'}
+ searchwindow.main(params)
diff --git a/resources/language/English/strings.xml b/resources/language/English/strings.xml
index ad58650..895544e 100644
--- a/resources/language/English/strings.xml
+++ b/resources/language/English/strings.xml
@@ -79,6 +79,12 @@
Advanced
Torrent-client
Hentai (fine-tuning)
+ Search Window Mode
+ Enabled, hide old style
+ Enabled, replace old style
+ Enabled, optional
+ Disabled
+ Search Window Transparent Background
Save path
Call dialog
Default
diff --git a/resources/settings.xml b/resources/settings.xml
index 3dfbcf9..fa7d48b 100644
--- a/resources/settings.xml
+++ b/resources/settings.xml
@@ -6,6 +6,7 @@
+
@@ -72,5 +73,6 @@
+
diff --git a/searchwindow.py b/searchwindow.py
index 86e23e5..59505aa 100644
--- a/searchwindow.py
+++ b/searchwindow.py
@@ -21,7 +21,7 @@ import pyxbmct.addonwindow as pyxbmct
import xbmcaddon
import xbmcgui
import xbmcvfs
-import json
+import xbmc
from functions import *
@@ -49,7 +49,7 @@ class SearchWindow(pyxbmct.AddonDialogWindow):
last_top_button = None
last_right_button = None
last_listing_mode = None
- route = None
+ route = {}
count = 0
navi_right_menu = []
navi_top_menu = []
@@ -60,6 +60,7 @@ class SearchWindow(pyxbmct.AddonDialogWindow):
def __init__(self, params = None):
log('SearchWindow init params: '+str(params))
super(SearchWindow, self).__init__(self.localize('Torrenter Search Window'))
+ __settings__.setSetting('loadsw_onstop', 'false')
self.setGeometry(1280, 720, 9, 16)
self.set_navi()
self.set_controls()
@@ -69,9 +70,20 @@ class SearchWindow(pyxbmct.AddonDialogWindow):
self.navi_load()
elif params.get('mode') == 'search':
self.search(params)
+ elif params.get('mode') == 'history':
+ self.history()
+ elif params.get('mode') == 'downloadstatus':
+ self.downloadstatus()
+ elif params.get('mode') == 'browser':
+ self.browser()
+ elif params.get('mode') == 'watched':
+ self.watched()
+ elif params.get('mode') == 'open_torrent':
+ self.open_torrent(params)
+ elif params.get('mode') == 'file_browser':
+ self.file_browser(params)
else:
self.navi_load()
- #self.history()
def set_navi(self):
self.navi = {
@@ -87,11 +99,9 @@ class SearchWindow(pyxbmct.AddonDialogWindow):
}
def set_controls(self):
- if not __settings__.getSetting('debug') == 'true':
+ if not __settings__.getSetting('sw_transparent_back') == 'true':
self.background.setImage('%s/icons/%s.png' % (__root__, 'ContentPanel'))
- #self.background.setImage('%s/icons/%s.png' % (__root__, 'ContentPanel'))
-
# Top menu
self.button_downloadstatus = pyxbmct.Button("",
focusTexture=self.icon % 'fdownloadstatus',
@@ -187,20 +197,20 @@ class SearchWindow(pyxbmct.AddonDialogWindow):
('WindowClose', 'effect=fade start=100 end=0 time=500',)])
def navi_back(self):
- log('navi_back init')
+ debug('navi_back init')
self.navi['route'].pop(-1)
self.navi_restore()
def navi_route_reset(self):
- log('navi_route_reset init')
+ debug('navi_route_reset init')
self.navi['route'] = [self.navi['route'][0]]
def navi_route_pop(self):
- log('navi_route_pop init')
+ debug('navi_route_pop init')
self.navi['route'].pop(-1)
def navi_restore(self):
- log('navi_restore init')
+ debug('navi_restore init')
self.route = self.navi['route'].pop(-1)
action = getattr(self, self.route['mode'])
try:
@@ -211,17 +221,17 @@ class SearchWindow(pyxbmct.AddonDialogWindow):
self.set_focus(self.route['mode'])
- log('self.route[last_listing_item]: ' + str(self.route['last_listing_item']))
+ debug('self.route[last_listing_item]: ' + str(self.route['last_listing_item']))
if self.route['last_listing_item'] > 0:
self.listing.selectItem(self.route['last_listing_item'])
except:
import traceback
- log('navi_restore ERROR '+traceback.format_exc())
+ debug('navi_restore ERROR '+traceback.format_exc())
self.set_navi()
self.history()
def navi_load(self):
- log('navi_load init')
+ debug('navi_load init')
__tmppath__ = os.path.join(xbmc.translatePath('special://temp'), 'xbmcup', 'plugin.video.torrenter')
if not xbmcvfs.exists(__tmppath__):
xbmcvfs.mkdirs(__tmppath__)
@@ -230,14 +240,15 @@ class SearchWindow(pyxbmct.AddonDialogWindow):
navi = read.read()
read.close()
- log('navi_load navi: '+str(navi))
+ debug('navi_load navi: '+str(navi))
+ log('navi_load navi: ' + str(navi['route']))
if navi and len(navi) > 0:
self.navi = json.loads(navi)
self.navi_restore()
def navi_save(self, mode = None):
- log('navi_save init')
+ debug('navi_save init')
if mode: self.set_focus(mode)
@@ -252,23 +263,23 @@ class SearchWindow(pyxbmct.AddonDialogWindow):
write.close()
def navi_update(self):
- log('navi_update init')
+ debug('navi_update init')
try:
focused_control = self.getFocus()
except:
focused_control = None
debug('start navi_update' + str(focused_control))
- log(str(self.navi['route']))
+ debug(str(self.navi['route']))
if focused_control == self.listing:
item_index = self.listing.getSelectedPosition()
self.navi['route'][-1]['last_listing_item'] = item_index
- log('self.listing getSelectedPosition ' + str(item_index))
+ debug('self.listing getSelectedPosition ' + str(item_index))
item = self.listing.getSelectedItem()
params = json.loads(item.getfilename())
mode = params.get('mode')
- log('navi_update:' + str(mode))
+ debug('navi_update:' + str(mode))
if self.last_listing_mode != mode:
self.last_listing_mode = mode
debug('set_menulist navi_update:' + str(mode))
@@ -284,17 +295,17 @@ class SearchWindow(pyxbmct.AddonDialogWindow):
self.update_navigation()
def navi_route(self, mode, params = {}, right_menu = None):
- log('navi_route init')
+ debug('navi_route init')
try:
focused_control = self.getFocus()
except:
focused_control = None
if focused_control in self.navi_top_menu:
- log('focused_control in self.navi[\'top_menu\']')
+ debug('focused_control in self.navi[\'top_menu\']')
self.navi_route_reset()
- log('***** self.navi[\'route\'].append *****' + str(mode) + str(params))
+ debug('***** self.navi[\'route\'].append *****' + str(mode) + str(params))
self.navi['route'].append({'mode': mode,
'params': params,
@@ -304,8 +315,11 @@ class SearchWindow(pyxbmct.AddonDialogWindow):
self.listing.reset()
def set_focus(self, mode):
- if mode and not self.listing.size() and hasattr(self, "button_" + mode):
- self.setFocus(getattr(self, "button_" + mode))
+ if not self.listing.size():
+ if mode and hasattr(self, "button_" + mode):
+ self.setFocus(getattr(self, "button_" + mode))
+ else:
+ self.setFocus(self.input_search)
else:
self.setFocus(self.listing)
@@ -316,7 +330,7 @@ class SearchWindow(pyxbmct.AddonDialogWindow):
get = params.get
addtime = get('addtime')
query = get('query')
- route = self.navi['route'][-1]
+ self.route = self.navi['route'][-1]
if query:
self.input_search.setText(query)
@@ -331,10 +345,10 @@ class SearchWindow(pyxbmct.AddonDialogWindow):
searchersList = get_searchersList(addtime)
# cache
- route['params']['query'] = query
+ self.route['params']['query'] = query
if (query != self.navi['last_query'] or self.navi['searchersList'] != searchersList) and len(query) > 0:
self.navi['filesList'] = get_filesList(query, searchersList, addtime)
- route['params']['addtime'] = addtime
+ self.route['params']['addtime'] = addtime
self.navi['last_addtime'] = addtime
self.navi['searchersList'] = searchersList
self.navi['last_query'] = query
@@ -449,6 +463,7 @@ class SearchWindow(pyxbmct.AddonDialogWindow):
torrent = Downloader.Torrent(self.userStorageDirectory, torrentFilesDirectory=self.torrentFilesDirectory)
__settings__.setSetting("lastTorrent", torrent.saveTorrent(url))
xbmc.executebuiltin('xbmc.RunPlugin("plugin://plugin.video.torrenter/?action=playTorrent&url='+str(ind)+'&seek='+str(seek)+'")')
+ __settings__.setSetting('loadsw_onstop', 'true')
self.close()
if action == 'clear':
@@ -574,7 +589,7 @@ class SearchWindow(pyxbmct.AddonDialogWindow):
filename = data[0]
break
filename = os.path.join(folder, filename)
- xbmc.executebuiltin('xbmc.PlayMedia("' + filename.encode('utf-8') + '")')
+ self.file_play(filename)
elif tdir and action == 'copy':
path = os.path.join(folder, tdir)
dirs, files = xbmcvfs.listdir(path)
@@ -744,13 +759,11 @@ class SearchWindow(pyxbmct.AddonDialogWindow):
path = encode_msg(path)
tdir = encode_msg(tdir)
- if tdir == os.path.dirname(path):
+ if mode == 'moveup' and tdir == os.path.dirname(path):
self.downloadstatus()
elif mode == 'file':
- xbmc.Player().play(localize_path(tdir))
- self.close()
+ swPlayer().play(localize_path(tdir))
else:
-
self.drawItem('..', {'mode': 'moveup', 'path': path,
'tdir': os.path.dirname(tdir)}, image = 'DefaultFolderBack.png', isFolder=True)
@@ -767,6 +780,10 @@ class SearchWindow(pyxbmct.AddonDialogWindow):
self.navi_save('file_browser')
+ def file_play(self, file):
+ self.close()
+ swPlayer().play(item = file)
+
def open_torrent(self, params):
self.navi_route('open_torrent', params)
@@ -1013,6 +1030,7 @@ class SearchWindow(pyxbmct.AddonDialogWindow):
if index == 1:
url = self.form_link('playTorrent', params)
xbmc.executebuiltin('xbmc.RunPlugin("%s")' % (url))
+ __settings__.setSetting('loadsw_onstop', 'true')
self.close()
elif index == 2:
action = 'downloadFilesList'
@@ -1066,9 +1084,6 @@ class SearchWindow(pyxbmct.AddonDialogWindow):
elif index == 3: action = '0'
self.browser_action(hash, action, tdir = tdir, ind = ind)
-
- if index == 1:
- self.close()
elif mode in ['downloadstatus', 'downloadstatus_subfolder', 'downloadstatus_file']:
if index == 1: action = 'play'
elif index == 2: action = 'start'
@@ -1210,6 +1225,24 @@ def main(params = None):
del dialog # You need to delete your instance when it is no longer needed
# because underlying xbmcgui classes are not grabage-collected.
+class swPlayer(xbmc.Player):
+ def play(self, item):
+ xbmc.Player().play(item = item)
+ i = 0
+ while not self.isPlaying() and i < 100:
+ i += 1
+ xbmc.sleep(500)
+ log('swPlayer not started '+str(i))
+
+ if i > 99:
+ return False
+ else:
+ while not xbmc.abortRequested and self.isPlaying():
+ xbmc.sleep(500)
+ log('swPlayer playing')
+
+ params = {'mode': 'load'}
+ main(params)
if __name__ == '__main__':
try: