diff --git a/Core.py b/Core.py
index 4c5dc48..9726275 100644
--- a/Core.py
+++ b/Core.py
@@ -45,7 +45,7 @@ class Core:
debug = __settings__.getSetting('debug') == 'true'
torrent_player=__settings__.getSetting("torrent_player")
history_bool = __settings__.getSetting('history') == 'true'
- context_open = __settings__.getSetting('context_open') == 'true'
+ open_option = int(__settings__.getSetting('open_option'))
language = {0: 'en', 1: 'ru'}.get(int(__settings__.getSetting("language")))
htmlCodes = (
('&', '&'),
@@ -411,8 +411,9 @@ class Core:
self.drawItem(title, 'DownloadStatus', link, image=img, contextMenu=contextMenu, replaceMenu=False)
view_style('DownloadStatus')
xbmcplugin.endOfDirectory(handle=int(sys.argv[1]), succeeded=True)
- xbmc.sleep(30000)
- xbmc.executebuiltin('Container.Refresh')
+ #xbmc.sleep(30000)
+ #xbmc.executebuiltin('Container.Refresh')
+ return
def History(self, params={}):
db = HistoryDB()
@@ -449,7 +450,7 @@ class Core:
items = db.get_all()
favlist = [(1, '[B]%s[/B]'), (0, '%s')]
if items:
- ListString = 'XBMC.RunPlugin(%s)' % (sys.argv[0] + '?action=History&action2=%s&%s=%s')
+ ListString = 'XBMC.RunPlugin(%s)' % (sys.argv[0] + '?action=%s&action2=%s&%s=%s')
for favbool, bbstring in favlist:
for addtime, string, fav in items:
if favbool == int(fav):
@@ -459,19 +460,21 @@ class Core:
contextMenu.append((self.localize('Individual Tracker Options'),
'XBMC.RunScript(%s)' % (os.path.join(ROOT, 'controlcenter.py,') + 'addtime=%s&title=%s' % (str(addtime), title))))
+ contextMenu.append((self.localize('Keyboard'),
+ ListString % ('search', '&showKey=true', 'url', urllib.quote_plus(title))))
if int(fav) == 1:
contextMenu.append((self.localize('Delete from %s') % self.localize('Favourites SH'),
- ListString % ('unfav', 'addtime', str(addtime))))
+ ListString % ('History', 'unfav', 'addtime', str(addtime))))
img = self.ROOT + '/icons/fav.png'
else:
contextMenu.append((self.localize('Add to %s') % self.localize('Favourites SH'),
- ListString % ('fav', 'addtime', str(addtime)),))
+ ListString % ('History', 'fav', 'addtime', str(addtime)),))
img = self.ROOT + '/icons/unfav.png'
contextMenu.append((self.localize('Delete from %s') % self.localize('Search History'),
- ListString % ('delete', 'addtime', str(addtime))))
+ ListString % ('History', 'delete', 'addtime', str(addtime))))
link = {'url': title, 'addtime': str(addtime)}
- self.drawItem(bbstring % title, 'search', link, image=img, contextMenu=contextMenu)
+ self.drawItem(bbstring % title, 'search', link, image=img, contextMenu=contextMenu, replaceMenu=False)
view_style('History')
xbmcplugin.endOfDirectory(handle=int(sys.argv[1]), succeeded=True)
@@ -1068,7 +1071,7 @@ class Core:
menu.append((hash, action, str(ind)))
else:
menu.append((hash, action, str(ind)))
- for hash, action, ind in menu: Download().setprio_simple(hash, action, ind)
+ Download().setprio_simple_multi(menu)
return
xbmc.executebuiltin('Container.Refresh')
return
@@ -1142,8 +1145,9 @@ class Core:
replaceMenu=True)
view_style('uTorrentBrowser')
xbmcplugin.endOfDirectory(handle=int(sys.argv[1]), succeeded=True)
- xbmc.sleep(30000)
- xbmc.executebuiltin('Container.Refresh')
+ #xbmc.sleep(30000)
+ #xbmc.executebuiltin('Container.Refresh')
+ return
def clearStorage(self, params={}):
clearStorage(self.userStorageDirectory)
@@ -1456,19 +1460,10 @@ class Core:
def showFilesList(self, filesList, params={}): #myshows
get = params.get
- try:
- external = urllib.unquote_plus(get("external"))
- except:
- external = None
+ external = unquote(get("external"), None)
silent = get("silent")
- try:
- thumbnail = urllib.unquote_plus(get("thumbnail"))
- except:
- thumbnail = ''
- try:
- save_folder = urllib.unquote_plus(get("save_folder"))
- except:
- save_folder = ''
+ thumbnail = unquote(get("thumbnail"),'')
+ save_folder = unquote(get("save_folder"),'')
if external:
try:
s = json.loads(json.loads(urllib.unquote_plus(get("sdata"))))
@@ -1493,7 +1488,14 @@ class Core:
return
else:
for (order, seeds, leechers, size, title, link, image) in filesList:
- contextMenu = [
+ link_dict = {'url': link, 'thumbnail': thumbnail, 'save_folder':save_folder}
+ link_url=''
+ for key in link_dict.keys():
+ if link_dict.get(key):
+ link_url = '%s&%s=%s' % (link_url, key, urllib.quote_plus(link_dict.get(key)))
+ contextMenu = [(self.localize('Open (no return)'),
+ 'XBMC.ActivateWindow(Videos,%s)' % ('%s?action=%s%s') % (
+ sys.argv[0], 'openTorrent', link_url)),
(myshows_lang(30409),
'XBMC.RunPlugin(%s)' % (
'plugin://plugin.video.myshows/?mode=3010&sort=activate&stringdata=' + urllib.quote_plus(
@@ -1514,7 +1516,8 @@ class Core:
link_dict = {'url': link, 'thumbnail': thumbnail, 'save_folder':save_folder}
link_url=''
for key in link_dict.keys():
- link_url = '%s&%s=%s' % (link_url, key, urllib.quote_plus(link_dict.get(key)))
+ if link_dict.get(key):
+ link_url = '%s&%s=%s' % (link_url, key, urllib.quote_plus(link_dict.get(key)))
contextMenu = [
(self.localize('Open (no return)'),
'XBMC.ActivateWindow(Videos,%s)' % ('%s?action=%s%s') % (
@@ -1528,16 +1531,21 @@ class Core:
]
title = self.titleMake(seeds, leechers, size, title)
- if self.context_open:
- self.drawItem(title, 'context', link, image, contextMenu=contextMenu, replaceMenu=False)
- else:
+ if self.open_option==0:
self.drawItem(title, 'openTorrent', link_dict, image, contextMenu=contextMenu, replaceMenu=False)
+ elif self.open_option==1:
+ self.drawItem(title, 'context', link, image, contextMenu=contextMenu, replaceMenu=False)
+ elif self.open_option==2:
+ self.drawItem(title, 'downloadFilesList', link_dict, image, contextMenu=contextMenu, replaceMenu=False)
+ elif self.open_option==3:
+ self.drawItem(title, 'downloadLibtorrent', link_dict, image, contextMenu=contextMenu, replaceMenu=False)
+
view_style('showFilesList')
xbmcplugin.endOfDirectory(handle=int(sys.argv[1]), succeeded=True)
def context(self, params={}):
xbmc.executebuiltin("Action(ContextMenu)")
- sys.exit()
+ return
def downloadFilesList(self, params={}):
dirname = None
@@ -1549,7 +1557,7 @@ class Core:
if self.__settings__.getSetting("torrent_save") == '0':
if items and clean:
- if self.__settings__.getSetting("torrent") == '0':
+ if self.__settings__.getSetting("torrent") in ['0','3']:
if len(items) > 1:
dialog = xbmcgui.Dialog()
dirid = dialog.select(self.localize('Choose directory:'), items)
@@ -1557,7 +1565,7 @@ class Core:
dirid = 0
if dirid == -1: return
dirname = clean[dirid]
- if self.__settings__.getSetting("torrent") == '1':
+ if self.__settings__.getSetting("torrent") in ['1','2']:
default = self.__settings__.getSetting("torrent_dir")
keyboard = xbmc.Keyboard(default, self.localize('Save to path') + ':')
keyboard.doModal()
@@ -1606,6 +1614,7 @@ class Core:
f = open(url, 'rb')
torrent = f.read()
+ f.close()
success = Download().add(torrent, dirname)
if success and ind:
id = self.chooseHASH()[0]
@@ -1645,6 +1654,7 @@ class Core:
int(self.__settings__.getSetting("download_limit")) * 1000000 / 8) #MBits/second
torrent.downloadProcess(ind)
showMessage(self.localize('Download Status'), self.localize('Added!'))
+ xbmcplugin.endOfDirectory(handle=int(sys.argv[1]), succeeded=True)
def titleMake(self, seeds, leechers, size, title):
@@ -1672,9 +1682,13 @@ class Core:
showKey = myshows_setting.getSetting("torrenter_keyboard")
except:
showKey = None
+
+ if params.get('showKey'): showKey=params.get('showKey')
+
if showKey == "true" or defaultKeyword == '' or not defaultKeyword:
if not defaultKeyword:
defaultKeyword = ''
+ defaultKeyword=unquote(defaultKeyword)
keyboard = xbmc.Keyboard(defaultKeyword, self.localize('Search Phrase') + ':')
keyboard.doModal()
query = keyboard.getText()
diff --git a/Localization.py b/Localization.py
index a1f6c3d..b729d34 100644
--- a/Localization.py
+++ b/Localization.py
@@ -218,6 +218,7 @@ dictionary = {
'Started All!':'Все Запущены!',
'Stopped All!':'Все Остановлено!',
'Stop All':'Остановить Все',
+ 'Keyboard':'Клавиатура',
}
}
diff --git a/Player.py b/Player.py
index 01b9be7..1dad86a 100644
--- a/Player.py
+++ b/Player.py
@@ -355,7 +355,7 @@ class TorrentPlayer(xbmc.Player):
overlay.text = "\n".join(self._get_status_lines(status))
#downloadedSize = torrent.torrentHandle.file_progress()[contentId]
self.iterator = int(status.progress * 100)
- if not self.seeding_run and self.iterator == 100:
+ if not self.seeding_run and self.iterator == 100 and self.seeding:
self.seeding_run=True
xbmc.sleep(1000)
self.seed(self.contentId)
diff --git a/Proxier.py b/Proxier.py
deleted file mode 100644
index cf6eae9..0000000
--- a/Proxier.py
+++ /dev/null
@@ -1,80 +0,0 @@
-import socket
-import thread
-import re
-import os
-
-
-class Proxier:
- HOST = '127.0.0.1'
- PORT = 51515
- PATH = ''
- CHUNK_SIZE = 1024
- seekBytes = 0
- buffering = 0
-
- def server(self, path):
- self.PATH = path
- s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
- s.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
- s.settimeout(600)
- s.bind((self.HOST, self.PORT))
- s.listen(1)
- while True:
- conn, addr = s.accept()
- conn.setblocking(1)
- data = conn.recv(1024)
- range = re.compile('Range: bytes=(\d+)-(\d*)')
- size = os.path.getsize(self.PATH)
- byte1, byte2 = 0, None
-
- if range.search(data):
- g = range.search(data).groups()
- if g[0]: byte1 = int(g[0])
- if g[1]: byte2 = int(g[1])
-
- length = size - byte1
- if byte2 is not None:
- length = byte2 - byte1
-
- thread.start_new_thread(self.streamer, (conn, byte1, byte2, length, size, ))
-
- def streamer(self, conn, byte1, byte2, length, size):
- send = ''
- if byte1 > 0 or byte2 != None:
- send = send + "HTTP/1.1 206 Partial Content"
- send = send + "\r\n"
- send = send + "Content-Range: %s-%s/%s" % (str(byte1), str(byte1 + length - 1), str(size))
- send = send + "\r\n"
- self.seekBytes = byte1
- else:
- send = send + "HTTP/1.1 200 OK"
- send = send + "\r\n"
- send = send + "Content-Type: video/mp4"
- send = send + "\r\n"
- send = send + "Content-Length: " + str(length)
- send = send + "\r\n"
- send = send + "Accept-Ranges: bytes"
- send = send + "\r\n"
- send = send + "Connection: close"
- send = send + "\r\n"
- send = send + "\r\n"
- conn.send(send)
- fp = open(self.PATH, "rb")
- fp.seek(byte1)
- sent = 0
- while length > sent:
- chunk = fp.read(self.CHUNK_SIZE)
- if chunk:
- self.buffering = 0
- try:
- sent = sent + conn.send(chunk)
- except socket.error, e:
- conn.close()
- break
- else:
- self.buffering = self.buffering + 1
- time.sleep(1)
- if self.buffering > 60:
- break
- fp.close()
- conn.close()
diff --git a/Rates.py b/Rates.py
deleted file mode 100644
index 25aaa6c..0000000
--- a/Rates.py
+++ /dev/null
@@ -1,66 +0,0 @@
-# -*- coding: utf-8 -*-
-'''
- Torrenter plugin for XBMC
- Copyright (C) 2012 Vadim Skorba
- vadim.skorba@gmail.com
-
- This program is free software: you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation, either version 3 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program. If not, see .
-'''
-
-import sys
-
-import xbmcgui
-import Localization
-
-
-class Rates(xbmcgui.Window):
- buttonWidth = 250
- buttonHeight = 250
- width = 1280
- height = 720
- rate = 0
-
- def __init__(self, *kargs):
- noFocus = sys.modules["__main__"].__root__ + '/icons/bookmarks.png'
- focus = sys.modules["__main__"].__root__ + '/icons/add_bookmark.png'
- self.addControl(xbmcgui.ControlLabel(0, self.height / 4, self.width, 100,
- Localization.localize('Please, rate watched video:'), alignment=6))
- self.bad = xbmcgui.ControlButton(self.buttonWidth / 2, self.height / 2, self.buttonWidth, self.buttonHeight,
- Localization.localize('Bad'), alignment=6, textColor='0xFFCC3333',
- focusedColor='0xFFFF0000', focusTexture=focus, noFocusTexture=noFocus,
- shadowColor='0xFF000000')
- self.normal = xbmcgui.ControlButton(self.width / 2 - self.buttonWidth / 2, self.height / 2, self.buttonWidth,
- self.buttonHeight, Localization.localize('So-So'), alignment=6,
- textColor='0xFFCCCC33', focusedColor='0xFFFFFF00', focusTexture=focus,
- noFocusTexture=noFocus, shadowColor='0xFF000000')
- self.good = xbmcgui.ControlButton(self.width - self.buttonWidth * 3 / 2, self.height / 2, self.buttonWidth,
- self.buttonHeight, Localization.localize('Good'), alignment=6,
- textColor='0xFF33CC33', focusedColor='0xFF00FF00', focusTexture=focus,
- noFocusTexture=noFocus, shadowColor='0xFF000000')
- self.addControl(self.bad)
- self.addControl(self.normal)
- self.addControl(self.good)
- self.bad.setNavigation(self.bad, self.bad, self.bad, self.normal)
- self.normal.setNavigation(self.normal, self.normal, self.bad, self.good)
- self.good.setNavigation(self.good, self.good, self.normal, self.good)
- self.setFocus(self.normal)
-
- def onControl(self, control):
- if control == self.bad:
- self.rate = -1
- if control == self.normal:
- self.rate = 0
- if control == self.good:
- self.rate = 1
- self.close()
diff --git a/addon.xml b/addon.xml
index 90b222c..5039fc8 100644
--- a/addon.xml
+++ b/addon.xml
@@ -1,5 +1,5 @@
-
+
diff --git a/cal.py b/cal.py
index 8b9e065..311a7c7 100644
--- a/cal.py
+++ b/cal.py
@@ -1,6 +1,6 @@
# -*- coding: utf-8 -*-
import sys
-import os
+import os, json
ROOT = os.path.dirname(sys.modules["__main__"].sys.argv[0])
searcherObject = {}
@@ -9,4 +9,16 @@ if ROOT + os.sep + 'resources' + os.sep + 'contenters' not in sys.path:
sys.path.insert(0, ROOT + os.sep + 'resources' + os.sep + 'contenters')
searcherObject[searcher] = getattr(__import__(searcher), searcher)()
-#print str(searcherObject[searcher].get_contentList(category='search', subcategory='Hobbit'))
\ No newline at end of file
+#print str(searcherObject[searcher].get_contentList(category='search', subcategory='Hobbit'))
+
+obj={u'error': None, u'id': 2, u'result': {u'type': u'dir', u'contents': {u'Suzumiya Haruhi no Yuuutsu (DVDrip)': {u'priority': 1, u'progress': 0.0, u'path': u'Suzumiya Haruhi no Yuuutsu (DVDrip)', u'progresses': [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], u'type': u'dir', u'contents': {u'Suzumiya Haruhi no Yuuutsu - 09 [DVDrip 1280x720 x264 FLAC].mkv': {u'index': 160, u'offset': 10245278714L, u'priority': 1, u'progress': 0.0, u'path': u'Suzumiya Haruhi no Yuuutsu (DVDrip)/Suzumiya Haruhi no Yuuutsu - 09 [DVDrip 1280x720 x264 FLAC].mkv', u'type': u'file', u'size': 850603865}, u'Suzumiya Haruhi no Yuuutsu - 06 [DVDrip 1280x720 x264 FLAC].mkv': {u'index': 157, u'offset': 7404768960L, u'priority': 1, u'progress': 0.0, u'path': u'Suzumiya Haruhi no Yuuutsu (DVDrip)/Suzumiya Haruhi no Yuuutsu - 06 [DVDrip 1280x720 x264 FLAC].mkv', u'type': u'file', u'size': 1124491250}, u'Suzumiya Haruhi no Yuuutsu - 07 [DVDrip 1280x720 x264 FLAC].mkv': {u'index': 158, u'offset': 8529260210L, u'priority': 1, u'progress': 0.0, u'path': u'Suzumiya Haruhi no Yuuutsu (DVDrip)/Suzumiya Haruhi no Yuuutsu - 07 [DVDrip 1280x720 x264 FLAC].mkv', u'type': u'file', u'size': 711015248}, u'Suzumiya Haruhi no Yuuutsu - 04 [DVDrip 1280x720 x264 FLAC].mkv': {u'index': 155, u'offset': 5236003762L, u'priority': 1, u'progress': 0.0, u'path': u'Suzumiya Haruhi no Yuuutsu (DVDrip)/Suzumiya Haruhi no Yuuutsu - 04 [DVDrip 1280x720 x264 FLAC].mkv', u'type': u'file', u'size': 1063548449}, u'Suzumiya Haruhi no Yuuutsu - 05 [DVDrip 1280x720 x264 FLAC].mkv': {u'index': 156, u'offset': 6299552211L, u'priority': 1, u'progress': 0.0, u'path': u'Suzumiya Haruhi no Yuuutsu (DVDrip)/Suzumiya Haruhi no Yuuutsu - 05 [DVDrip 1280x720 x264 FLAC].mkv', u'type': u'file', u'size': 1105216749}, u'Bonus': {u'priority': 1, u'progress': 0.0, u'path': u'Suzumiya Haruhi no Yuuutsu (DVDrip)/Bonus', u'progresses': [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], u'type': u'dir', u'contents': {u'Pictures': {u'priority': 1, u'progress': 0.0, u'path': u'Suzumiya Haruhi no Yuuutsu (DVDrip)/Bonus/Pictures', u'progresses': [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], u'type': u'dir', u'contents': {u'_sister': {u'priority': 1, u'progress': 0.0, u'path': u'Suzumiya Haruhi no Yuuutsu (DVDrip)/Bonus/Pictures/_sister', u'progresses': [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], u'type': u'dir', u'contents': {u'sos0603.jpg': {u'index': 78, u'offset': 10926555, u'priority': 1, u'progress': 0.0, u'path': u'Suzumiya Haruhi no Yuuutsu (DVDrip)/Bonus/Pictures/_sister/sos0603.jpg', u'type': u'file', u'size': 86351}, u'sos0601.jpg': {u'index': 76, u'offset': 10710056, u'priority': 1, u'progress': 0.0, u'path': u'Suzumiya Haruhi no Yuuutsu (DVDrip)/Bonus/Pictures/_sister/sos0601.jpg', u'type': u'file', u'size': 108113}, u'sos0404.jpg': {u'index': 75, u'offset': 10601734, u'priority': 1, u'progress': 0.0, u'path': u'Suzumiya Haruhi no Yuuutsu (DVDrip)/Bonus/Pictures/_sister/sos0404.jpg', u'type': u'file', u'size': 108322}, u'sos1401.jpg': {u'index': 80, u'offset': 11103523, u'priority': 1, u'progress': 0.0, u'path': u'Suzumiya Haruhi no Yuuutsu (DVDrip)/Bonus/Pictures/_sister/sos1401.jpg', u'type': u'file', u'size': 70265}, u'sos0402.jpg': {u'index': 73, u'offset': 10392920, u'priority': 1, u'progress': 0.0, u'path': u'Suzumiya Haruhi no Yuuutsu (DVDrip)/Bonus/Pictures/_sister/sos0402.jpg', u'type': u'file', u'size': 105312}, u'sos0401.jpg': {u'index': 72, u'offset': 10295655, u'priority': 1, u'progress': 0.0, u'path': u'Suzumiya Haruhi no Yuuutsu (DVDrip)/Bonus/Pictures/_sister/sos0401.jpg', u'type': u'file', u'size': 97265}, u'sos0403.jpg': {u'index': 74, u'offset': 10498232, u'priority': 1, u'progress': 0.0, u'path': u'Suzumiya Haruhi no Yuuutsu (DVDrip)/Bonus/Pictures/_sister/sos0403.jpg', u'type': u'file', u'size': 103502}, u'sos0604.jpg': {u'index': 79, u'offset': 11012906, u'priority': 1, u'progress': 0.0, u'path': u'Suzumiya Haruhi no Yuuutsu (DVDrip)/Bonus/Pictures/_sister/sos0604.jpg', u'type': u'file', u'size': 90617}, u'sos1402.jpg': {u'index': 81, u'offset': 11173788, u'priority': 1, u'progress': 0.0, u'path': u'Suzumiya Haruhi no Yuuutsu (DVDrip)/Bonus/Pictures/_sister/sos1402.jpg', u'type': u'file', u'size': 97440}, u'sos0602.jpg': {u'index': 77, u'offset': 10818169, u'priority': 1, u'progress': 0.0, u'path': u'Suzumiya Haruhi no Yuuutsu (DVDrip)/Bonus/Pictures/_sister/sos0602.jpg', u'type': u'file', u'size': 108386}}, u'size': 975573}, u'_tsuruya': {u'priority': 1, u'progress': 0.0, u'path': u'Suzumiya Haruhi no Yuuutsu (DVDrip)/Bonus/Pictures/_tsuruya', u'progresses': [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], u'type': u'dir', u'contents': {u'sos1202.jpg': {u'index': 90, u'offset': 12035252, u'priority': 1, u'progress': 0.0, u'path': u'Suzumiya Haruhi no Yuuutsu (DVDrip)/Bonus/Pictures/_tsuruya/sos1202.jpg', u'type': u'file', u'size': 87103}, u'sos0404.jpg': {u'index': 85, u'offset': 11578219, u'priority': 1, u'progress': 0.0, u'path': u'Suzumiya Haruhi no Yuuutsu (DVDrip)/Bonus/Pictures/_tsuruya/sos0404.jpg', u'type': u'file', u'size': 100971}, u'sos0406.jpg': {u'index': 87, u'offset': 11754301, u'priority': 1, u'progress': 0.0, u'path': u'Suzumiya Haruhi no Yuuutsu (DVDrip)/Bonus/Pictures/_tsuruya/sos0406.jpg', u'type': u'file', u'size': 93783}, u'sos0402.jpg': {u'index': 83, u'offset': 11373915, u'priority': 1, u'progress': 0.0, u'path': u'Suzumiya Haruhi no Yuuutsu (DVDrip)/Bonus/Pictures/_tsuruya/sos0402.jpg', u'type': u'file', u'size': 108473}, u'sos0401.jpg': {u'index': 82, u'offset': 11271228, u'priority': 1, u'progress': 0.0, u'path': u'Suzumiya Haruhi no Yuuutsu (DVDrip)/Bonus/Pictures/_tsuruya/sos0401.jpg', u'type': u'file', u'size': 102687}, u'sos0403.jpg': {u'index': 84, u'offset': 11482388, u'priority': 1, u'progress': 0.0, u'path': u'Suzumiya Haruhi no Yuuutsu (DVDrip)/Bonus/Pictures/_tsuruya/sos0403.jpg', u'type': u'file', u'size': 95831}, u'sos0901.jpg': {u'index': 88, u'offset': 11848084, u'priority': 1, u'progress': 0.0, u'path': u'Suzumiya Haruhi no Yuuutsu (DVDrip)/Bonus/Pictures/_tsuruya/sos0901.jpg', u'type': u'file', u'size': 88136}, u'sos0405.jpg': {u'index': 86, u'offset': 11679190, u'priority': 1, u'progress': 0.0, u'path': u'Suzumiya Haruhi no Yuuutsu (DVDrip)/Bonus/Pictures/_tsuruya/sos0405.jpg', u'type': u'file', u'size': 75111}, u'sos1201.jpg': {u'index': 89, u'offset': 11936220, u'priority': 1, u'progress': 0.0, u'path': u'Suzumiya Haruhi no Yuuutsu (DVDrip)/Bonus/Pictures/_tsuruya/sos1201.jpg', u'type': u'file', u'size': 99032}, u'sos1203.jpg': {u'index': 91, u'offset': 12122355, u'priority': 1, u'progress': 0.0, u'path': u'Suzumiya Haruhi no Yuuutsu (DVDrip)/Bonus/Pictures/_tsuruya/sos1203.jpg', u'type': u'file', u'size': 97216}}, u'size': 948343}, u'_MIKURU': {u'priority': 1, u'progress': 0.0, u'path': u'Suzumiya Haruhi no Yuuutsu (DVDrip)/Bonus/Pictures/_MIKURU', u'progresses': [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], u'type': u'dir', u'contents': {u'sos0314.jpg': {u'index': 43, u'offset': 8104640, u'priority': 1, u'progress': 0.0, u'path': u'Suzumiya Haruhi no Yuuutsu (DVDrip)/Bonus/Pictures/_MIKURU/sos0314.jpg', u'type': u'file', u'size': 118995}, u'sos0111.jpg': {u'index': 18, u'offset': 5935994, u'priority': 1, u'progress': 0.0, u'path': u'Suzumiya Haruhi no Yuuutsu (DVDrip)/Bonus/Pictures/_MIKURU/sos0111.jpg', u'type': u'file', u'size': 81840}, u'sos0312.jpg': {u'index': 41, u'offset': 7864864, u'priority': 1, u'progress': 0.0, u'path': u'Suzumiya Haruhi no Yuuutsu (DVDrip)/Bonus/Pictures/_MIKURU/sos0312.jpg', u'type': u'file', u'size': 117203}, u'sos0311.jpg': {u'index': 40, u'offset': 7759381, u'priority': 1, u'progress': 0.0, u'path': u'Suzumiya Haruhi no Yuuutsu (DVDrip)/Bonus/Pictures/_MIKURU/sos0311.jpg', u'type': u'file', u'size': 105483}, u'sos0304.jpg': {u'index': 33, u'offset': 7114768, u'priority': 1, u'progress': 0.0, u'path': u'Suzumiya Haruhi no Yuuutsu (DVDrip)/Bonus/Pictures/_MIKURU/sos0304.jpg', u'type': u'file', u'size': 83230}, u'sos0406.jpg': {u'index': 58, u'offset': 9352767, u'priority': 1, u'progress': 0.0, u'path': u'Suzumiya Haruhi no Yuuutsu (DVDrip)/Bonus/Pictures/_MIKURU/sos0406.jpg', u'type': u'file', u'size': 63483}, u'sos0321.jpg': {u'index': 50, u'offset': 8733469, u'priority': 1, u'progress': 0.0, u'path': u'Suzumiya Haruhi no Yuuutsu (DVDrip)/Bonus/Pictures/_MIKURU/sos0321.jpg', u'type': u'file', u'size': 92613}, u'sos0110.jpg': {u'index': 17, u'offset': 5868584, u'priority': 1, u'progress': 0.0, u'path': u'Suzumiya Haruhi no Yuuutsu (DVDrip)/Bonus/Pictures/_MIKURU/sos0110.jpg', u'type': u'file', u'size': 67410}, u'sos0105.jpg': {u'index': 12, u'offset': 5462984, u'priority': 1, u'progress': 0.0, u'path': u'Suzumiya Haruhi no Yuuutsu (DVDrip)/Bonus/Pictures/_MIKURU/sos0105.jpg', u'type': u'file', u'size': 70172}, u'sos0418.jpg': {u'index': 70, u'offset': 10163138, u'priority': 1, u'progress': 0.0, u'path': u'Suzumiya Haruhi no Yuuutsu (DVDrip)/Bonus/Pictures/_MIKURU/sos0418.jpg', u'type': u'file', u'size': 67270}, u'sos0109.jpg': {u'index': 16, u'offset': 5794241, u'priority': 1, u'progress': 0.0, u'path': u'Suzumiya Haruhi no Yuuutsu (DVDrip)/Bonus/Pictures/_MIKURU/sos0109.jpg', u'type': u'file', u'size': 74343}, u'sos0323.jpg': {u'index': 52, u'offset': 8905491, u'priority': 1, u'progress': 0.0, u'path': u'Suzumiya Haruhi no Yuuutsu (DVDrip)/Bonus/Pictures/_MIKURU/sos0323.jpg', u'type': u'file', u'size': 81914}, u'sos0308.jpg': {u'index': 37, u'offset': 7432369, u'priority': 1, u'progress': 0.0, u'path': u'Suzumiya Haruhi no Yuuutsu (DVDrip)/Bonus/Pictures/_MIKURU/sos0308.jpg', u'type': u'file', u'size': 83471}, u'sos0319.jpg': {u'index': 48, u'offset': 8563863, u'priority': 1, u'progress': 0.0, u'path': u'Suzumiya Haruhi no Yuuutsu (DVDrip)/Bonus/Pictures/_MIKURU/sos0319.jpg', u'type': u'file', u'size': 81537}, u'sos0205.jpg': {u'index': 25, u'offset': 6528123, u'priority': 1, u'progress': 0.0, u'path': u'Suzumiya Haruhi no Yuuutsu (DVDrip)/Bonus/Pictures/_MIKURU/sos0205.jpg', u'type': u'file', u'size': 75994}, u'sos0316.jpg': {u'index': 45, u'offset': 8310822, u'priority': 1, u'progress': 0.0, u'path': u'Suzumiya Haruhi no Yuuutsu (DVDrip)/Bonus/Pictures/_MIKURU/sos0316.jpg', u'type': u'file', u'size': 80441}, u'sos0113.jpg': {u'index': 20, u'offset': 6090162, u'priority': 1, u'progress': 0.0, u'path': u'Suzumiya Haruhi no Yuuutsu (DVDrip)/Bonus/Pictures/_MIKURU/sos0113.jpg', u'type': u'file', u'size': 80407}, u'sos0310.jpg': {u'index': 39, u'offset': 7643188, u'priority': 1, u'progress': 0.0, u'path': u'Suzumiya Haruhi no Yuuutsu (DVDrip)/Bonus/Pictures/_MIKURU/sos0310.jpg', u'type': u'file', u'size': 116193}, u'sos0413.jpg': {u'index': 65, u'offset': 9839820, u'priority': 1, u'progress': 0.0, u'path': u'Suzumiya Haruhi no Yuuutsu (DVDrip)/Bonus/Pictures/_MIKURU/sos0413.jpg', u'type': u'file', u'size': 79112}, u'sos0108.jpg': {u'index': 15, u'offset': 5701328, u'priority': 1, u'progress': 0.0, u'path': u'Suzumiya Haruhi no Yuuutsu (DVDrip)/Bonus/Pictures/_MIKURU/sos0108.jpg', u'type': u'file', u'size': 92913}, u'sos0322.jpg': {u'index': 51, u'offset': 8826082, u'priority': 1, u'progress': 0.0, u'path': u'Suzumiya Haruhi no Yuuutsu (DVDrip)/Bonus/Pictures/_MIKURU/sos0322.jpg', u'type': u'file', u'size': 79409}, u'sos0320.jpg': {u'index': 49, u'offset': 8645400, u'priority': 1, u'progress': 0.0, u'path': u'Suzumiya Haruhi no Yuuutsu (DVDrip)/Bonus/Pictures/_MIKURU/sos0320.jpg', u'type': u'file', u'size': 88069}, u'sos0415.jpg': {u'index': 67, u'offset': 9972506, u'priority': 1, u'progress': 0.0, u'path': u'Suzumiya Haruhi no Yuuutsu (DVDrip)/Bonus/Pictures/_MIKURU/sos0415.jpg', u'type': u'file', u'size': 57932}, u'sos0401.jpg': {u'index': 53, u'offset': 8987405, u'priority': 1, u'progress': 0.0, u'path': u'Suzumiya Haruhi no Yuuutsu (DVDrip)/Bonus/Pictures/_MIKURU/sos0401.jpg', u'type': u'file', u'size': 77251}, u'sos0101.jpg': {u'index': 8, u'offset': 5148832, u'priority': 1, u'progress': 0.0, u'path': u'Suzumiya Haruhi no Yuuutsu (DVDrip)/Bonus/Pictures/_MIKURU/sos0101.jpg', u'type': u'file', u'size': 72331}, u'sos0414.jpg': {u'index': 66, u'offset': 9918932, u'priority': 1, u'progress': 0.0, u'path': u'Suzumiya Haruhi no Yuuutsu (DVDrip)/Bonus/Pictures/_MIKURU/sos0414.jpg', u'type': u'file', u'size': 53574}, u'sos0315.jpg': {u'index': 44, u'offset': 8223635, u'priority': 1, u'progress': 0.0, u'path': u'Suzumiya Haruhi no Yuuutsu (DVDrip)/Bonus/Pictures/_MIKURU/sos0315.jpg', u'type': u'file', u'size': 87187}, u'sos0410.jpg': {u'index': 62, u'offset': 9622309, u'priority': 1, u'progress': 0.0, u'path': u'Suzumiya Haruhi no Yuuutsu (DVDrip)/Bonus/Pictures/_MIKURU/sos0410.jpg', u'type': u'file', u'size': 74294}, u'sos0107.jpg': {u'index': 14, u'offset': 5607306, u'priority': 1, u'progress': 0.0, u'path': u'Suzumiya Haruhi no Yuuutsu (DVDrip)/Bonus/Pictures/_MIKURU/sos0107.jpg', u'type': u'file', u'size': 94022}, u'sos0405.jpg': {u'index': 57, u'offset': 9280099, u'priority': 1, u'progress': 0.0, u'path': u'Suzumiya Haruhi no Yuuutsu (DVDrip)/Bonus/Pictures/_MIKURU/sos0405.jpg', u'type': u'file', u'size': 72668}, u'sos0206.jpg': {u'index': 26, u'offset': 6604117, u'priority': 1, u'progress': 0.0, u'path': u'Suzumiya Haruhi no Yuuutsu (DVDrip)/Bonus/Pictures/_MIKURU/sos0206.jpg', u'type': u'file', u'size': 77888}, u'sos0303.jpg': {u'index': 32, u'offset': 7047812, u'priority': 1, u'progress': 0.0, u'path': u'Suzumiya Haruhi no Yuuutsu (DVDrip)/Bonus/Pictures/_MIKURU/sos0303.jpg', u'type': u'file', u'size': 66956}, u'sos0309.jpg': {u'index': 38, u'offset': 7515840, u'priority': 1, u'progress': 0.0, u'path': u'Suzumiya Haruhi no Yuuutsu (DVDrip)/Bonus/Pictures/_MIKURU/sos0309.jpg', u'type': u'file', u'size': 127348}, u'sos0102.jpg': {u'index': 9, u'offset': 5221163, u'priority': 1, u'progress': 0.0, u'path': u'Suzumiya Haruhi no Yuuutsu (DVDrip)/Bonus/Pictures/_MIKURU/sos0102.jpg', u'type': u'file', u'size': 79022}, u'sos0305.jpg': {u'index': 34, u'offset': 7197998, u'priority': 1, u'progress': 0.0, u'path': u'Suzumiya Haruhi no Yuuutsu (DVDrip)/Bonus/Pictures/_MIKURU/sos0305.jpg', u'type': u'file', u'size': 57620}, u'sos0306.jpg': {u'index': 35, u'offset': 7255618, u'priority': 1, u'progress': 0.0, u'path': u'Suzumiya Haruhi no Yuuutsu (DVDrip)/Bonus/Pictures/_MIKURU/sos0306.jpg', u'type': u'file', u'size': 81725}, u'sos0313.jpg': {u'index': 42, u'offset': 7982067, u'priority': 1, u'progress': 0.0, u'path': u'Suzumiya Haruhi no Yuuutsu (DVDrip)/Bonus/Pictures/_MIKURU/sos0313.jpg', u'type': u'file', u'size': 122573}, u'sos0411.jpg': {u'index': 63, u'offset': 9696603, u'priority': 1, u'progress': 0.0, u'path': u'Suzumiya Haruhi no Yuuutsu (DVDrip)/Bonus/Pictures/_MIKURU/sos0411.jpg', u'type': u'file', u'size': 70708}, u'sos0318.jpg': {u'index': 47, u'offset': 8466969, u'priority': 1, u'progress': 0.0, u'path': u'Suzumiya Haruhi no Yuuutsu (DVDrip)/Bonus/Pictures/_MIKURU/sos0318.jpg', u'type': u'file', u'size': 96894}, u'sos0201.jpg': {u'index': 21, u'offset': 6170569, u'priority': 1, u'progress': 0.0, u'path': u'Suzumiya Haruhi no Yuuutsu (DVDrip)/Bonus/Pictures/_MIKURU/sos0201.jpg', u'type': u'file', u'size': 97775}, u'sos0417.jpg': {u'index': 69, u'offset': 10093323, u'priority': 1, u'progress': 0.0, u'path': u'Suzumiya Haruhi no Yuuutsu (DVDrip)/Bonus/Pictures/_MIKURU/sos0417.jpg', u'type': u'file', u'size': 69815}, u'sos0104.jpg': {u'index': 11, u'offset': 5383210, u'priority': 1, u'progress': 0.0, u'path': u'Suzumiya Haruhi no Yuuutsu (DVDrip)/Bonus/Pictures/_MIKURU/sos0104.jpg', u'type': u'file', u'size': 79774}, u'sos0103.jpg': {u'index': 10, u'offset': 5300185, u'priority': 1, u'progress': 0.0, u'path': u'Suzumiya Haruhi no Yuuutsu (DVDrip)/Bonus/Pictures/_MIKURU/sos0103.jpg', u'type': u'file', u'size': 83025}, u'sos0317.jpg': {u'index': 46, u'offset': 8391263, u'priority': 1, u'progress': 0.0, u'path': u'Suzumiya Haruhi no Yuuutsu (DVDrip)/Bonus/Pictures/_MIKURU/sos0317.jpg', u'type': u'file', u'size': 75706}, u'sos0202.jpg': {u'index': 22, u'offset': 6268344, u'priority': 1, u'progress': 0.0, u'path': u'Suzumiya Haruhi no Yuuutsu (DVDrip)/Bonus/Pictures/_MIKURU/sos0202.jpg', u'type': u'file', u'size': 96775}, u'sos0407.jpg': {u'index': 59, u'offset': 9416250, u'priority': 1, u'progress': 0.0, u'path': u'Suzumiya Haruhi no Yuuutsu (DVDrip)/Bonus/Pictures/_MIKURU/sos0407.jpg', u'type': u'file', u'size': 73342}, u'sos0204.jpg': {u'index': 24, u'offset': 6445461, u'priority': 1, u'progress': 0.0, u'path': u'Suzumiya Haruhi no Yuuutsu (DVDrip)/Bonus/Pictures/_MIKURU/sos0204.jpg', u'type': u'file', u'size': 82662}, u'sos0207.jpg': {u'index': 27, u'offset': 6682005, u'priority': 1, u'progress': 0.0, u'path': u'Suzumiya Haruhi no Yuuutsu (DVDrip)/Bonus/Pictures/_MIKURU/sos0207.jpg', u'type': u'file', u'size': 77204}, u'sos0301.jpg': {u'index': 30, u'offset': 6907631, u'priority': 1, u'progress': 0.0, u'path': u'Suzumiya Haruhi no Yuuutsu (DVDrip)/Bonus/Pictures/_MIKURU/sos0301.jpg', u'type': u'file', u'size': 73546}, u'sos0307.jpg': {u'index': 36, u'offset': 7337343, u'priority': 1, u'progress': 0.0, u'path': u'Suzumiya Haruhi no Yuuutsu (DVDrip)/Bonus/Pictures/_MIKURU/sos0307.jpg', u'type': u'file', u'size': 95026}, u'sos0404.jpg': {u'index': 56, u'offset': 9217452, u'priority': 1, u'progress': 0.0, u'path': u'Suzumiya Haruhi no Yuuutsu (DVDrip)/Bonus/Pictures/_MIKURU/sos0404.jpg', u'type': u'file', u'size': 62647}, u'sos0209.jpg': {u'index': 29, u'offset': 6829136, u'priority': 1, u'progress': 0.0, u'path': u'Suzumiya Haruhi no Yuuutsu (DVDrip)/Bonus/Pictures/_MIKURU/sos0209.jpg', u'type': u'file', u'size': 78495}, u'sos0203.jpg': {u'index': 23, u'offset': 6365119, u'priority': 1, u'progress': 0.0, u'path': u'Suzumiya Haruhi no Yuuutsu (DVDrip)/Bonus/Pictures/_MIKURU/sos0203.jpg', u'type': u'file', u'size': 80342}, u'sos0402.jpg': {u'index': 54, u'offset': 9064656, u'priority': 1, u'progress': 0.0, u'path': u'Suzumiya Haruhi no Yuuutsu (DVDrip)/Bonus/Pictures/_MIKURU/sos0402.jpg', u'type': u'file', u'size': 75111}, u'sos0416.jpg': {u'index': 68, u'offset': 10030438, u'priority': 1, u'progress': 0.0, u'path': u'Suzumiya Haruhi no Yuuutsu (DVDrip)/Bonus/Pictures/_MIKURU/sos0416.jpg', u'type': u'file', u'size': 62885}, u'sos0112.jpg': {u'index': 19, u'offset': 6017834, u'priority': 1, u'progress': 0.0, u'path': u'Suzumiya Haruhi no Yuuutsu (DVDrip)/Bonus/Pictures/_MIKURU/sos0112.jpg', u'type': u'file', u'size': 72328}, u'sos0403.jpg': {u'index': 55, u'offset': 9139767, u'priority': 1, u'progress': 0.0, u'path': u'Suzumiya Haruhi no Yuuutsu (DVDrip)/Bonus/Pictures/_MIKURU/sos0403.jpg', u'type': u'file', u'size': 77685}, u'sos0208.jpg': {u'index': 28, u'offset': 6759209, u'priority': 1, u'progress': 0.0, u'path': u'Suzumiya Haruhi no Yuuutsu (DVDrip)/Bonus/Pictures/_MIKURU/sos0208.jpg', u'type': u'file', u'size': 69927}, u'sos0302.jpg': {u'index': 31, u'offset': 6981177, u'priority': 1, u'progress': 0.0, u'path': u'Suzumiya Haruhi no Yuuutsu (DVDrip)/Bonus/Pictures/_MIKURU/sos0302.jpg', u'type': u'file', u'size': 66635}, u'sos0409.jpg': {u'index': 61, u'offset': 9570190, u'priority': 1, u'progress': 0.0, u'path': u'Suzumiya Haruhi no Yuuutsu (DVDrip)/Bonus/Pictures/_MIKURU/sos0409.jpg', u'type': u'file', u'size': 52119}, u'sos0408.jpg': {u'index': 60, u'offset': 9489592, u'priority': 1, u'progress': 0.0, u'path': u'Suzumiya Haruhi no Yuuutsu (DVDrip)/Bonus/Pictures/_MIKURU/sos0408.jpg', u'type': u'file', u'size': 80598}, u'sos0106.jpg': {u'index': 13, u'offset': 5533156, u'priority': 1, u'progress': 0.0, u'path': u'Suzumiya Haruhi no Yuuutsu (DVDrip)/Bonus/Pictures/_MIKURU/sos0106.jpg', u'type': u'file', u'size': 74150}, u'sos0419.jpg': {u'index': 71, u'offset': 10230408, u'priority': 1, u'progress': 0.0, u'path': u'Suzumiya Haruhi no Yuuutsu (DVDrip)/Bonus/Pictures/_MIKURU/sos0419.jpg', u'type': u'file', u'size': 65247}, u'sos0412.jpg': {u'index': 64, u'offset': 9767311, u'priority': 1, u'progress': 0.0, u'path': u'Suzumiya Haruhi no Yuuutsu (DVDrip)/Bonus/Pictures/_MIKURU/sos0412.jpg', u'type': u'file', u'size': 72509}}, u'size': 5146823}, u'_yuki': {u'priority': 1, u'progress': 0.0, u'path': u'Suzumiya Haruhi no Yuuutsu (DVDrip)/Bonus/Pictures/_yuki', u'progresses': [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], u'type': u'dir', u'contents': {u'sos0603.jpg': {u'index': 97, u'offset': 12658155, u'priority': 1, u'progress': 0.0, u'path': u'Suzumiya Haruhi no Yuuutsu (DVDrip)/Bonus/Pictures/_yuki/sos0603.jpg', u'type': u'file', u'size': 75600}, u'sos0601.jpg': {u'index': 95, u'offset': 12503942, u'priority': 1, u'progress': 0.0, u'path': u'Suzumiya Haruhi no Yuuutsu (DVDrip)/Bonus/Pictures/_yuki/sos0601.jpg', u'type': u'file', u'size': 79973}, u'sos0602.jpg': {u'index': 96, u'offset': 12583915, u'priority': 1, u'progress': 0.0, u'path': u'Suzumiya Haruhi no Yuuutsu (DVDrip)/Bonus/Pictures/_yuki/sos0602.jpg', u'type': u'file', u'size': 74240}, u'sos0701.jpg': {u'index': 98, u'offset': 12733755, u'priority': 1, u'progress': 0.0, u'path': u'Suzumiya Haruhi no Yuuutsu (DVDrip)/Bonus/Pictures/_yuki/sos0701.jpg', u'type': u'file', u'size': 69675}, u'sos0702.jpg': {u'index': 99, u'offset': 12803430, u'priority': 1, u'progress': 0.0, u'path': u'Suzumiya Haruhi no Yuuutsu (DVDrip)/Bonus/Pictures/_yuki/sos0702.jpg', u'type': u'file', u'size': 67043}, u'sos0402.jpg': {u'index': 93, u'offset': 12293909, u'priority': 1, u'progress': 0.0, u'path': u'Suzumiya Haruhi no Yuuutsu (DVDrip)/Bonus/Pictures/_yuki/sos0402.jpg', u'type': u'file', u'size': 118517}, u'sos0401.jpg': {u'index': 92, u'offset': 12219571, u'priority': 1, u'progress': 0.0, u'path': u'Suzumiya Haruhi no Yuuutsu (DVDrip)/Bonus/Pictures/_yuki/sos0401.jpg', u'type': u'file', u'size': 74338}, u'sos0501.jpg': {u'index': 94, u'offset': 12412426, u'priority': 1, u'progress': 0.0, u'path': u'Suzumiya Haruhi no Yuuutsu (DVDrip)/Bonus/Pictures/_yuki/sos0501.jpg', u'type': u'file', u'size': 91516}, u'sos1301.jpg': {u'index': 101, u'offset': 12946711, u'priority': 1, u'progress': 0.0, u'path': u'Suzumiya Haruhi no Yuuutsu (DVDrip)/Bonus/Pictures/_yuki/sos1301.jpg', u'type': u'file', u'size': 73247}, u'sos1201.jpg': {u'index': 100, u'offset': 12870473, u'priority': 1, u'progress': 0.0, u'path': u'Suzumiya Haruhi no Yuuutsu (DVDrip)/Bonus/Pictures/_yuki/sos1201.jpg', u'type': u'file', u'size': 76238}}, u'size': 800387}}, u'size': 7871126}, u'Suzumiya Haruhi no Yuuutsu - Ending [BDRip 1920x1080 x264 FLAC].mkv': {u'index': 104, u'offset': 115526025, u'priority': 1, u'progress': 0.0, u'path': u'Suzumiya Haruhi no Yuuutsu (DVDrip)/Bonus/Suzumiya Haruhi no Yuuutsu - Ending [BDRip 1920x1080 x264 FLAC].mkv', u'type': u'file', u'size': 62141298}, u'Suzumiya Haruhi no Yuuutsu - Creditless Ending [DVDrip 1280x720 x264 FLAC].mkv': {u'index': 102, u'offset': 13019958, u'priority': 1, u'progress': 0.0, u'path': u'Suzumiya Haruhi no Yuuutsu (DVDrip)/Bonus/Suzumiya Haruhi no Yuuutsu - Creditless Ending [DVDrip 1280x720 x264 FLAC].mkv', u'type': u'file', u'size': 28340050}, u'Suzumiya Haruhi no Yuuutsu - Full Final Dance [DVDrip 1280x720 x264 FLAC].mkv': {u'index': 106, u'offset': 263037532, u'priority': 1, u'progress': 0.0, u'path': u'Suzumiya Haruhi no Yuuutsu (DVDrip)/Bonus/Suzumiya Haruhi no Yuuutsu - Full Final Dance [DVDrip 1280x720 x264 FLAC].mkv', u'type': u'file', u'size': 49720618}, u'Suzumiya Haruhi no Yuuutsu - Creditless Opening [DVDrip 1280x720 x264 FLAC].mkv': {u'index': 103, u'offset': 41360008, u'priority': 1, u'progress': 0.0, u'path': u'Suzumiya Haruhi no Yuuutsu (DVDrip)/Bonus/Suzumiya Haruhi no Yuuutsu - Creditless Opening [DVDrip 1280x720 x264 FLAC].mkv', u'type': u'file', u'size': 74166017}, u'DVD menu': {u'priority': 1, u'progress': 0.0, u'path': u'Suzumiya Haruhi no Yuuutsu (DVDrip)/Bonus/DVD menu', u'progresses': [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], u'type': u'dir', u'contents': {u'DVD menu (Vol 1).png': {u'index': 0, u'offset': 0, u'priority': 1, u'progress': 0.0, u'path': u'Suzumiya Haruhi no Yuuutsu (DVDrip)/Bonus/DVD menu/DVD menu (Vol 1).png', u'type': u'file', u'size': 630837}, u'DVD menu (Vol 8).png': {u'index': 7, u'offset': 4516838, u'priority': 1, u'progress': 0.0, u'path': u'Suzumiya Haruhi no Yuuutsu (DVDrip)/Bonus/DVD menu/DVD menu (Vol 8).png', u'type': u'file', u'size': 631994}, u'DVD menu (Vol 5).png': {u'index': 4, u'offset': 2574514, u'priority': 1, u'progress': 0.0, u'path': u'Suzumiya Haruhi no Yuuutsu (DVDrip)/Bonus/DVD menu/DVD menu (Vol 5).png', u'type': u'file', u'size': 651379}, u'DVD menu (Vol 3).png': {u'index': 2, u'offset': 1279861, u'priority': 1, u'progress': 0.0, u'path': u'Suzumiya Haruhi no Yuuutsu (DVDrip)/Bonus/DVD menu/DVD menu (Vol 3).png', u'type': u'file', u'size': 653664}, u'DVD menu (Vol 2).png': {u'index': 1, u'offset': 630837, u'priority': 1, u'progress': 0.0, u'path': u'Suzumiya Haruhi no Yuuutsu (DVDrip)/Bonus/DVD menu/DVD menu (Vol 2).png', u'type': u'file', u'size': 649024}, u'DVD menu (Vol 7).png': {u'index': 6, u'offset': 3872371, u'priority': 1, u'progress': 0.0, u'path': u'Suzumiya Haruhi no Yuuutsu (DVDrip)/Bonus/DVD menu/DVD menu (Vol 7).png', u'type': u'file', u'size': 644467}, u'DVD menu (Vol 6).png': {u'index': 5, u'offset': 3225893, u'priority': 1, u'progress': 0.0, u'path': u'Suzumiya Haruhi no Yuuutsu (DVDrip)/Bonus/DVD menu/DVD menu (Vol 6).png', u'type': u'file', u'size': 646478}, u'DVD menu (Vol 4).png': {u'index': 3, u'offset': 1933525, u'priority': 1, u'progress': 0.0, u'path': u'Suzumiya Haruhi no Yuuutsu (DVDrip)/Bonus/DVD menu/DVD menu (Vol 4).png', u'type': u'file', u'size': 640989}}, u'size': 5148832}, u'Suzumiya Haruhi no Yuuutsu - Ep00 Creditless Opening [DVDrip 1280x720 x264 FLAC].mkv': {u'index': 105, u'offset': 177667323, u'priority': 1, u'progress': 0.0, u'path': u'Suzumiya Haruhi no Yuuutsu (DVDrip)/Bonus/Suzumiya Haruhi no Yuuutsu - Ep00 Creditless Opening [DVDrip 1280x720 x264 FLAC].mkv', u'type': u'file', u'size': 85370209}, u'Suzumiya Haruhi no Yuuutsu - Opening [BDRip 1920x1080 x264 FLAC].mkv': {u'index': 107, u'offset': 312758150, u'priority': 1, u'progress': 0.0, u'path': u'Suzumiya Haruhi no Yuuutsu (DVDrip)/Bonus/Suzumiya Haruhi no Yuuutsu - Opening [BDRip 1920x1080 x264 FLAC].mkv', u'type': u'file', u'size': 175713891}}, u'size': 488472041}, u'Suzumiya Haruhi no Yuuutsu - 03 [DVDrip 1280x720 x264 FLAC].mkv': {u'index': 154, u'offset': 4351286140L, u'priority': 1, u'progress': 0.0, u'path': u'Suzumiya Haruhi no Yuuutsu (DVDrip)/Suzumiya Haruhi no Yuuutsu - 03 [DVDrip 1280x720 x264 FLAC].mkv', u'type': u'file', u'size': 884717622}, u'Suzumiya Haruhi no Yuuutsu - 12 [DVDrip 1280x720 x264 FLAC].mkv': {u'index': 163, u'offset': 13005593834L, u'priority': 1, u'progress': 0.0, u'path': u'Suzumiya Haruhi no Yuuutsu (DVDrip)/Suzumiya Haruhi no Yuuutsu - 12 [DVDrip 1280x720 x264 FLAC].mkv', u'type': u'file', u'size': 790099955}, u'Suzumiya Haruhi no Yuuutsu - 08 [DVDrip 1280x720 x264 FLAC].mkv': {u'index': 159, u'offset': 9240275458L, u'priority': 1, u'progress': 0.0, u'path': u'Suzumiya Haruhi no Yuuutsu (DVDrip)/Suzumiya Haruhi no Yuuutsu - 08 [DVDrip 1280x720 x264 FLAC].mkv', u'type': u'file', u'size': 1005003256}, u'Rus Subs [Reanimedia]': {u'priority': 1, u'progress': 0.0, u'path': u'Suzumiya Haruhi no Yuuutsu (DVDrip)/Rus Subs [Reanimedia]', u'progresses': [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], u'type': u'dir', u'contents': {u'Suzumiya Haruhi no Yuuutsu - 00 [DVDrip 1280x720 x264 FLAC].ass': {u'index': 137, u'offset': 1625227782, u'priority': 1, u'progress': 0.0, u'path': u'Suzumiya Haruhi no Yuuutsu (DVDrip)/Rus Subs [Reanimedia]/Suzumiya Haruhi no Yuuutsu - 00 [DVDrip 1280x720 x264 FLAC].ass', u'type': u'file', u'size': 90921}, u'Suzumiya Haruhi no Yuuutsu - 03 [DVDrip 1280x720 x264 FLAC].ass': {u'index': 140, u'offset': 1625441397, u'priority': 1, u'progress': 0.0, u'path': u'Suzumiya Haruhi no Yuuutsu (DVDrip)/Rus Subs [Reanimedia]/Suzumiya Haruhi no Yuuutsu - 03 [DVDrip 1280x720 x264 FLAC].ass', u'type': u'file', u'size': 65895}, u'Suzumiya Haruhi no Yuuutsu - 02 [DVDrip 1280x720 x264 FLAC].ass': {u'index': 139, u'offset': 1625388448, u'priority': 1, u'progress': 0.0, u'path': u'Suzumiya Haruhi no Yuuutsu (DVDrip)/Rus Subs [Reanimedia]/Suzumiya Haruhi no Yuuutsu - 02 [DVDrip 1280x720 x264 FLAC].ass', u'type': u'file', u'size': 52949}, u'fonts.rar': {u'index': 136, u'offset': 1624799415, u'priority': 1, u'progress': 0.0, u'path': u'Suzumiya Haruhi no Yuuutsu (DVDrip)/Rus Subs [Reanimedia]/fonts.rar', u'type': u'file', u'size': 428367}, u'Suzumiya Haruhi no Yuuutsu - 10 [DVDrip 1280x720 x264 FLAC].ass': {u'index': 147, u'offset': 1625872999, u'priority': 1, u'progress': 0.0, u'path': u'Suzumiya Haruhi no Yuuutsu (DVDrip)/Rus Subs [Reanimedia]/Suzumiya Haruhi no Yuuutsu - 10 [DVDrip 1280x720 x264 FLAC].ass', u'type': u'file', u'size': 52060}, u'Suzumiya Haruhi no Yuuutsu - 04 [DVDrip 1280x720 x264 FLAC].ass': {u'index': 141, u'offset': 1625507292, u'priority': 1, u'progress': 0.0, u'path': u'Suzumiya Haruhi no Yuuutsu (DVDrip)/Rus Subs [Reanimedia]/Suzumiya Haruhi no Yuuutsu - 04 [DVDrip 1280x720 x264 FLAC].ass', u'type': u'file', u'size': 64125}, u'Suzumiya Haruhi no Yuuutsu - 12 [DVDrip 1280x720 x264 FLAC].ass': {u'index': 149, u'offset': 1625994217, u'priority': 1, u'progress': 0.0, u'path': u'Suzumiya Haruhi no Yuuutsu (DVDrip)/Rus Subs [Reanimedia]/Suzumiya Haruhi no Yuuutsu - 12 [DVDrip 1280x720 x264 FLAC].ass', u'type': u'file', u'size': 60954}, u'\u043d\u0430\u0434\u043f\u0438\u0441\u0438': {u'priority': 1, u'progress': 0.0, u'path': u'Suzumiya Haruhi no Yuuutsu (DVDrip)/Rus Subs [Reanimedia]/\u043d\u0430\u0434\u043f\u0438\u0441\u0438', u'progresses': [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], u'type': u'dir', u'contents': {u'Suzumiya Haruhi no Yuuutsu - 00 [DVDrip 1280x720 x264 FLAC].ass': {u'index': 122, u'offset': 1624642278, u'priority': 1, u'progress': 0.0, u'path': u'Suzumiya Haruhi no Yuuutsu (DVDrip)/Rus Subs [Reanimedia]/\u043d\u0430\u0434\u043f\u0438\u0441\u0438/Suzumiya Haruhi no Yuuutsu - 00 [DVDrip 1280x720 x264 FLAC].ass', u'type': u'file', u'size': 39434}, u'Suzumiya Haruhi no Yuuutsu - 03 [DVDrip 1280x720 x264 FLAC].ass': {u'index': 125, u'offset': 1624697503, u'priority': 1, u'progress': 0.0, u'path': u'Suzumiya Haruhi no Yuuutsu (DVDrip)/Rus Subs [Reanimedia]/\u043d\u0430\u0434\u043f\u0438\u0441\u0438/Suzumiya Haruhi no Yuuutsu - 03 [DVDrip 1280x720 x264 FLAC].ass', u'type': u'file', u'size': 7862}, u'Suzumiya Haruhi no Yuuutsu - 02 [DVDrip 1280x720 x264 FLAC].ass': {u'index': 124, u'offset': 1624690003, u'priority': 1, u'progress': 0.0, u'path': u'Suzumiya Haruhi no Yuuutsu (DVDrip)/Rus Subs [Reanimedia]/\u043d\u0430\u0434\u043f\u0438\u0441\u0438/Suzumiya Haruhi no Yuuutsu - 02 [DVDrip 1280x720 x264 FLAC].ass', u'type': u'file', u'size': 7500}, u'Suzumiya Haruhi no Yuuutsu - 09 [DVDrip 1280x720 x264 FLAC].ass': {u'index': 131, u'offset': 1624766995, u'priority': 1, u'progress': 0.0, u'path': u'Suzumiya Haruhi no Yuuutsu (DVDrip)/Rus Subs [Reanimedia]/\u043d\u0430\u0434\u043f\u0438\u0441\u0438/Suzumiya Haruhi no Yuuutsu - 09 [DVDrip 1280x720 x264 FLAC].ass', u'type': u'file', u'size': 6130}, u'Suzumiya Haruhi no Yuuutsu - 10 [DVDrip 1280x720 x264 FLAC].ass': {u'index': 132, u'offset': 1624773125, u'priority': 1, u'progress': 0.0, u'path': u'Suzumiya Haruhi no Yuuutsu (DVDrip)/Rus Subs [Reanimedia]/\u043d\u0430\u0434\u043f\u0438\u0441\u0438/Suzumiya Haruhi no Yuuutsu - 10 [DVDrip 1280x720 x264 FLAC].ass', u'type': u'file', u'size': 3884}, u'Suzumiya Haruhi no Yuuutsu - 04 [DVDrip 1280x720 x264 FLAC].ass': {u'index': 126, u'offset': 1624705365, u'priority': 1, u'progress': 0.0, u'path': u'Suzumiya Haruhi no Yuuutsu (DVDrip)/Rus Subs [Reanimedia]/\u043d\u0430\u0434\u043f\u0438\u0441\u0438/Suzumiya Haruhi no Yuuutsu - 04 [DVDrip 1280x720 x264 FLAC].ass', u'type': u'file', u'size': 13449}, u'Suzumiya Haruhi no Yuuutsu - 12 [DVDrip 1280x720 x264 FLAC].ass': {u'index': 134, u'offset': 1624790129, u'priority': 1, u'progress': 0.0, u'path': u'Suzumiya Haruhi no Yuuutsu (DVDrip)/Rus Subs [Reanimedia]/\u043d\u0430\u0434\u043f\u0438\u0441\u0438/Suzumiya Haruhi no Yuuutsu - 12 [DVDrip 1280x720 x264 FLAC].ass', u'type': u'file', u'size': 6338}, u'Suzumiya Haruhi no Yuuutsu - 01 [DVDrip 1280x720 x264 FLAC].ass': {u'index': 123, u'offset': 1624681712, u'priority': 1, u'progress': 0.0, u'path': u'Suzumiya Haruhi no Yuuutsu (DVDrip)/Rus Subs [Reanimedia]/\u043d\u0430\u0434\u043f\u0438\u0441\u0438/Suzumiya Haruhi no Yuuutsu - 01 [DVDrip 1280x720 x264 FLAC].ass', u'type': u'file', u'size': 8291}, u'Suzumiya Haruhi no Yuuutsu - 05 [DVDrip 1280x720 x264 FLAC].ass': {u'index': 127, u'offset': 1624718814, u'priority': 1, u'progress': 0.0, u'path': u'Suzumiya Haruhi no Yuuutsu (DVDrip)/Rus Subs [Reanimedia]/\u043d\u0430\u0434\u043f\u0438\u0441\u0438/Suzumiya Haruhi no Yuuutsu - 05 [DVDrip 1280x720 x264 FLAC].ass', u'type': u'file', u'size': 3094}, u'Suzumiya Haruhi no Yuuutsu - 11 [DVDrip 1280x720 x264 FLAC].ass': {u'index': 133, u'offset': 1624777009, u'priority': 1, u'progress': 0.0, u'path': u'Suzumiya Haruhi no Yuuutsu (DVDrip)/Rus Subs [Reanimedia]/\u043d\u0430\u0434\u043f\u0438\u0441\u0438/Suzumiya Haruhi no Yuuutsu - 11 [DVDrip 1280x720 x264 FLAC].ass', u'type': u'file', u'size': 13120}, u'Suzumiya Haruhi no Yuuutsu - 07 [DVDrip 1280x720 x264 FLAC].ass': {u'index': 129, u'offset': 1624730304, u'priority': 1, u'progress': 0.0, u'path': u'Suzumiya Haruhi no Yuuutsu (DVDrip)/Rus Subs [Reanimedia]/\u043d\u0430\u0434\u043f\u0438\u0441\u0438/Suzumiya Haruhi no Yuuutsu - 07 [DVDrip 1280x720 x264 FLAC].ass', u'type': u'file', u'size': 32881}, u'Suzumiya Haruhi no Yuuutsu - 08 [DVDrip 1280x720 x264 FLAC].ass': {u'index': 130, u'offset': 1624763185, u'priority': 1, u'progress': 0.0, u'path': u'Suzumiya Haruhi no Yuuutsu (DVDrip)/Rus Subs [Reanimedia]/\u043d\u0430\u0434\u043f\u0438\u0441\u0438/Suzumiya Haruhi no Yuuutsu - 08 [DVDrip 1280x720 x264 FLAC].ass', u'type': u'file', u'size': 3810}, u'Suzumiya Haruhi no Yuuutsu - 13 [DVDrip 1280x720 x264 FLAC].ass': {u'index': 135, u'offset': 1624796467, u'priority': 1, u'progress': 0.0, u'path': u'Suzumiya Haruhi no Yuuutsu (DVDrip)/Rus Subs [Reanimedia]/\u043d\u0430\u0434\u043f\u0438\u0441\u0438/Suzumiya Haruhi no Yuuutsu - 13 [DVDrip 1280x720 x264 FLAC].ass', u'type': u'file', u'size': 2948}, u'Suzumiya Haruhi no Yuuutsu - 06 [DVDrip 1280x720 x264 FLAC].ass': {u'index': 128, u'offset': 1624721908, u'priority': 1, u'progress': 0.0, u'path': u'Suzumiya Haruhi no Yuuutsu (DVDrip)/Rus Subs [Reanimedia]/\u043d\u0430\u0434\u043f\u0438\u0441\u0438/Suzumiya Haruhi no Yuuutsu - 06 [DVDrip 1280x720 x264 FLAC].ass', u'type': u'file', u'size': 8396}}, u'size': 157137}, u'Suzumiya Haruhi no Yuuutsu - 01 [DVDrip 1280x720 x264 FLAC].ass': {u'index': 138, u'offset': 1625318703, u'priority': 1, u'progress': 0.0, u'path': u'Suzumiya Haruhi no Yuuutsu (DVDrip)/Rus Subs [Reanimedia]/Suzumiya Haruhi no Yuuutsu - 01 [DVDrip 1280x720 x264 FLAC].ass', u'type': u'file', u'size': 69745}, u'Suzumiya Haruhi no Yuuutsu - 05 [DVDrip 1280x720 x264 FLAC].ass': {u'index': 142, u'offset': 1625571417, u'priority': 1, u'progress': 0.0, u'path': u'Suzumiya Haruhi no Yuuutsu (DVDrip)/Rus Subs [Reanimedia]/Suzumiya Haruhi no Yuuutsu - 05 [DVDrip 1280x720 x264 FLAC].ass', u'type': u'file', u'size': 55853}, u'Suzumiya Haruhi no Yuuutsu - 11 [DVDrip 1280x720 x264 FLAC].ass': {u'index': 148, u'offset': 1625925059, u'priority': 1, u'progress': 0.0, u'path': u'Suzumiya Haruhi no Yuuutsu (DVDrip)/Rus Subs [Reanimedia]/Suzumiya Haruhi no Yuuutsu - 11 [DVDrip 1280x720 x264 FLAC].ass', u'type': u'file', u'size': 69158}, u'Suzumiya Haruhi no Yuuutsu - 07 [DVDrip 1280x720 x264 FLAC].ass': {u'index': 144, u'offset': 1625680402, u'priority': 1, u'progress': 0.0, u'path': u'Suzumiya Haruhi no Yuuutsu (DVDrip)/Rus Subs [Reanimedia]/Suzumiya Haruhi no Yuuutsu - 07 [DVDrip 1280x720 x264 FLAC].ass', u'type': u'file', u'size': 80659}, u'Suzumiya Haruhi no Yuuutsu - 08 [DVDrip 1280x720 x264 FLAC].ass': {u'index': 145, u'offset': 1625761061, u'priority': 1, u'progress': 0.0, u'path': u'Suzumiya Haruhi no Yuuutsu (DVDrip)/Rus Subs [Reanimedia]/Suzumiya Haruhi no Yuuutsu - 08 [DVDrip 1280x720 x264 FLAC].ass', u'type': u'file', u'size': 56813}, u'Suzumiya Haruhi no Yuuutsu - 13 [DVDrip 1280x720 x264 FLAC].ass': {u'index': 150, u'offset': 1626055171, u'priority': 1, u'progress': 0.0, u'path': u'Suzumiya Haruhi no Yuuutsu (DVDrip)/Rus Subs [Reanimedia]/Suzumiya Haruhi no Yuuutsu - 13 [DVDrip 1280x720 x264 FLAC].ass', u'type': u'file', u'size': 44401}, u'Suzumiya Haruhi no Yuuutsu - 09 [DVDrip 1280x720 x264 FLAC].ass': {u'index': 146, u'offset': 1625817874, u'priority': 1, u'progress': 0.0, u'path': u'Suzumiya Haruhi no Yuuutsu (DVDrip)/Rus Subs [Reanimedia]/Suzumiya Haruhi no Yuuutsu - 09 [DVDrip 1280x720 x264 FLAC].ass', u'type': u'file', u'size': 55125}, u'Suzumiya Haruhi no Yuuutsu - 06 [DVDrip 1280x720 x264 FLAC].ass': {u'index': 143, u'offset': 1625627270, u'priority': 1, u'progress': 0.0, u'path': u'Suzumiya Haruhi no Yuuutsu (DVDrip)/Rus Subs [Reanimedia]/Suzumiya Haruhi no Yuuutsu - 06 [DVDrip 1280x720 x264 FLAC].ass', u'type': u'file', u'size': 53132}}, u'size': 1457294}, u'Suzumiya Haruhi no Yuuutsu - 02 [DVDrip 1280x720 x264 FLAC].mkv': {u'index': 153, u'offset': 3661976011L, u'priority': 1, u'progress': 0.0, u'path': u'Suzumiya Haruhi no Yuuutsu (DVDrip)/Suzumiya Haruhi no Yuuutsu - 02 [DVDrip 1280x720 x264 FLAC].mkv', u'type': u'file', u'size': 689310129}, u'Suzumiya Haruhi no Yuuutsu - 01 [DVDrip 1280x720 x264 FLAC].mkv': {u'index': 152, u'offset': 2829426454L, u'priority': 1, u'progress': 0.0, u'path': u'Suzumiya Haruhi no Yuuutsu (DVDrip)/Suzumiya Haruhi no Yuuutsu - 01 [DVDrip 1280x720 x264 FLAC].mkv', u'type': u'file', u'size': 832549557}, u'Suzumiya Haruhi no Yuuutsu - 11 [DVDrip 1280x720 x264 FLAC].mkv': {u'index': 162, u'offset': 12209071015L, u'priority': 1, u'progress': 0.0, u'path': u'Suzumiya Haruhi no Yuuutsu (DVDrip)/Suzumiya Haruhi no Yuuutsu - 11 [DVDrip 1280x720 x264 FLAC].mkv', u'type': u'file', u'size': 796522819}, u'Suzumiya Haruhi no Yuuutsu - 00 [DVDrip 1280x720 x264 FLAC].mkv': {u'index': 151, u'offset': 1626099572, u'priority': 1, u'progress': 0.0, u'path': u'Suzumiya Haruhi no Yuuutsu (DVDrip)/Suzumiya Haruhi no Yuuutsu - 00 [DVDrip 1280x720 x264 FLAC].mkv', u'type': u'file', u'size': 1203326882}, u'Rus Sound [Reanimedia]': {u'priority': 1, u'progress': 0.0, u'path': u'Suzumiya Haruhi no Yuuutsu (DVDrip)/Rus Sound [Reanimedia]', u'progresses': [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], u'type': u'dir', u'contents': {u'Suzumiya Haruhi no Yuuutsu - 05 [DVDrip 1280x720 x264 FLAC].mka': {u'index': 113, u'offset': 900041122, u'priority': 1, u'progress': 0.0, u'path': u'Suzumiya Haruhi no Yuuutsu (DVDrip)/Rus Sound [Reanimedia]/Suzumiya Haruhi no Yuuutsu - 05 [DVDrip 1280x720 x264 FLAC].mka', u'type': u'file', u'size': 82543098}, u'Suzumiya Haruhi no Yuuutsu - 08 [DVDrip 1280x720 x264 FLAC].mka': {u'index': 116, u'offset': 1142844426, u'priority': 1, u'progress': 0.0, u'path': u'Suzumiya Haruhi no Yuuutsu (DVDrip)/Rus Sound [Reanimedia]/Suzumiya Haruhi no Yuuutsu - 08 [DVDrip 1280x720 x264 FLAC].mka', u'type': u'file', u'size': 82456987}, u'Suzumiya Haruhi no Yuuutsu - 13 [DVDrip 1280x720 x264 FLAC].mka': {u'index': 121, u'offset': 1545744673, u'priority': 1, u'progress': 0.0, u'path': u'Suzumiya Haruhi no Yuuutsu (DVDrip)/Rus Sound [Reanimedia]/Suzumiya Haruhi no Yuuutsu - 13 [DVDrip 1280x720 x264 FLAC].mka', u'type': u'file', u'size': 78897605}, u'Suzumiya Haruhi no Yuuutsu - 06 [DVDrip 1280x720 x264 FLAC].mka': {u'index': 114, u'offset': 982584220, u'priority': 1, u'progress': 0.0, u'path': u'Suzumiya Haruhi no Yuuutsu (DVDrip)/Rus Sound [Reanimedia]/Suzumiya Haruhi no Yuuutsu - 06 [DVDrip 1280x720 x264 FLAC].mka', u'type': u'file', u'size': 80614499}, u'Suzumiya Haruhi no Yuuutsu - 07 [DVDrip 1280x720 x264 FLAC].mka': {u'index': 115, u'offset': 1063198719, u'priority': 1, u'progress': 0.0, u'path': u'Suzumiya Haruhi no Yuuutsu (DVDrip)/Rus Sound [Reanimedia]/Suzumiya Haruhi no Yuuutsu - 07 [DVDrip 1280x720 x264 FLAC].mka', u'type': u'file', u'size': 79645707}, u'Suzumiya Haruhi no Yuuutsu - 00 [DVDrip 1280x720 x264 FLAC].mka': {u'index': 108, u'offset': 488472041, u'priority': 1, u'progress': 0.0, u'path': u'Suzumiya Haruhi no Yuuutsu (DVDrip)/Rus Sound [Reanimedia]/Suzumiya Haruhi no Yuuutsu - 00 [DVDrip 1280x720 x264 FLAC].mka', u'type': u'file', u'size': 82535932}, u'Suzumiya Haruhi no Yuuutsu - 12 [DVDrip 1280x720 x264 FLAC].mka': {u'index': 120, u'offset': 1466063097, u'priority': 1, u'progress': 0.0, u'path': u'Suzumiya Haruhi no Yuuutsu (DVDrip)/Rus Sound [Reanimedia]/Suzumiya Haruhi no Yuuutsu - 12 [DVDrip 1280x720 x264 FLAC].mka', u'type': u'file', u'size': 79681576}, u'Suzumiya Haruhi no Yuuutsu - 04 [DVDrip 1280x720 x264 FLAC].mka': {u'index': 112, u'offset': 818633651, u'priority': 1, u'progress': 0.0, u'path': u'Suzumiya Haruhi no Yuuutsu (DVDrip)/Rus Sound [Reanimedia]/Suzumiya Haruhi no Yuuutsu - 04 [DVDrip 1280x720 x264 FLAC].mka', u'type': u'file', u'size': 81407471}, u'Suzumiya Haruhi no Yuuutsu - 10 [DVDrip 1280x720 x264 FLAC].mka': {u'index': 118, u'offset': 1305078090, u'priority': 1, u'progress': 0.0, u'path': u'Suzumiya Haruhi no Yuuutsu (DVDrip)/Rus Sound [Reanimedia]/Suzumiya Haruhi no Yuuutsu - 10 [DVDrip 1280x720 x264 FLAC].mka', u'type': u'file', u'size': 79672616}, u'Suzumiya Haruhi no Yuuutsu - 11 [DVDrip 1280x720 x264 FLAC].mka': {u'index': 119, u'offset': 1384750706, u'priority': 1, u'progress': 0.0, u'path': u'Suzumiya Haruhi no Yuuutsu (DVDrip)/Rus Sound [Reanimedia]/Suzumiya Haruhi no Yuuutsu - 11 [DVDrip 1280x720 x264 FLAC].mka', u'type': u'file', u'size': 81312391}, u'Suzumiya Haruhi no Yuuutsu - 09 [DVDrip 1280x720 x264 FLAC].mka': {u'index': 117, u'offset': 1225301413, u'priority': 1, u'progress': 0.0, u'path': u'Suzumiya Haruhi no Yuuutsu (DVDrip)/Rus Sound [Reanimedia]/Suzumiya Haruhi no Yuuutsu - 09 [DVDrip 1280x720 x264 FLAC].mka', u'type': u'file', u'size': 79776677}, u'Suzumiya Haruhi no Yuuutsu - 01 [DVDrip 1280x720 x264 FLAC].mka': {u'index': 109, u'offset': 571007973, u'priority': 1, u'progress': 0.0, u'path': u'Suzumiya Haruhi no Yuuutsu (DVDrip)/Rus Sound [Reanimedia]/Suzumiya Haruhi no Yuuutsu - 01 [DVDrip 1280x720 x264 FLAC].mka', u'type': u'file', u'size': 83971144}, u'Suzumiya Haruhi no Yuuutsu - 03 [DVDrip 1280x720 x264 FLAC].mka': {u'index': 111, u'offset': 734649941, u'priority': 1, u'progress': 0.0, u'path': u'Suzumiya Haruhi no Yuuutsu (DVDrip)/Rus Sound [Reanimedia]/Suzumiya Haruhi no Yuuutsu - 03 [DVDrip 1280x720 x264 FLAC].mka', u'type': u'file', u'size': 83983710}, u'Suzumiya Haruhi no Yuuutsu - 02 [DVDrip 1280x720 x264 FLAC].mka': {u'index': 110, u'offset': 654979117, u'priority': 1, u'progress': 0.0, u'path': u'Suzumiya Haruhi no Yuuutsu (DVDrip)/Rus Sound [Reanimedia]/Suzumiya Haruhi no Yuuutsu - 02 [DVDrip 1280x720 x264 FLAC].mka', u'type': u'file', u'size': 79670824}}, u'size': 1136170237}, u'Suzumiya Haruhi no Yuuutsu - 13 [DVDrip 1280x720 x264 FLAC].mkv': {u'index': 164, u'offset': 13795693789L, u'priority': 1, u'progress': 0.0, u'path': u'Suzumiya Haruhi no Yuuutsu (DVDrip)/Suzumiya Haruhi no Yuuutsu - 13 [DVDrip 1280x720 x264 FLAC].mkv', u'type': u'file', u'size': 922761906}, u'Suzumiya Haruhi no Yuuutsu - 10 [DVDrip 1280x720 x264 FLAC].mkv': {u'index': 161, u'offset': 11095882579L, u'priority': 1, u'progress': 0.0, u'path': u'Suzumiya Haruhi no Yuuutsu (DVDrip)/Suzumiya Haruhi no Yuuutsu - 10 [DVDrip 1280x720 x264 FLAC].mkv', u'type': u'file', u'size': 1113188436}}, u'size': 14718455695L}}}}
+
+#obj=json.loads(x)
+obj=obj['result']
+
+
+
+res=[1,2,3,4,5]
+res.pop(2)
+res.insert(2,3)
+print str(res)
diff --git a/changelog.txt b/changelog.txt
index 72ca89d..e138bf0 100644
--- a/changelog.txt
+++ b/changelog.txt
@@ -1,4 +1,12 @@
-[B]Version 2.1.0[/B]
+[B]Version 2.1.2[/B]
+[+] Торрент-клиент: Поддержка Deluge WebUI (No SSL)
+[+] История Поиска: Возможность изменять с помощью клавиатуры
+[+] Поиска: Настройка выбора действия вместо Открытия торрента
+
+[B]Version 2.1.1[/B]
+[+] Проигрыватель: Опция продолжать сидировать после просмотра
+
+[B]Version 2.1.0[/B]
[+] Загрузка: Добавлена возможность управлять закачками, а так же возобновлять
[+] Поиск: Возможность замены открытия торрента на вызов контекстного меню
@@ -41,7 +49,7 @@
[+] Rutor, OpenSharing, OldPirateBay переведены на .torrent с магнит-ссылок
[B]Version 2.0.2[/B]
-[+] Отображение статуса загрузки при паузе
+[+] Проигрыватель: Отображение статуса загрузки при паузе
[B]Version 2.0.1[/B]
[+] Увеличен буфер для файлов более 1 ГБ
diff --git a/functions.py b/functions.py
index 9e89165..b8714d5 100644
--- a/functions.py
+++ b/functions.py
@@ -1071,7 +1071,7 @@ class Contenters():
pass
def first_time(self, scrapperDB_ver, language='ru'):
- searcher = 'metadata'+language
+ searcher = 'metadata'
redl = False
scrapperDB_ver=scrapperDB_ver[language]
if scrapperDB_ver != __settings__.getSetting('scrapperDB_ver'+language) and self.getBoolSetting(searcher):
@@ -1092,8 +1092,8 @@ class Contenters():
Localization.localize(
'You can always restart this by deleting DBs via Context Menu'), )
- if not self.getBoolSetting('oldc_' + searcher):
- self.setBoolSetting('oldc_' + searcher, True)
+ if not self.getBoolSetting('oldc_' + searcher + language):
+ self.setBoolSetting('oldc_' + searcher+ language, True)
__settings__.setSetting('scrapperDB_ver'+language, scrapperDB_ver)
ok = xbmcgui.Dialog().yesno('< %s >' % Localization.localize('Content Lists'),
Localization.localize('Do you want to search and cache full metadata + arts?'),
diff --git a/resources/language/English/strings.xml b/resources/language/English/strings.xml
index 858b8ce..9b14fdf 100644
--- a/resources/language/English/strings.xml
+++ b/resources/language/English/strings.xml
@@ -31,7 +31,11 @@
Ask to change storage before play
Delete Russian stuff
Return Russian stuff
- Open context menu instead of torrent
+ Action onClick for torrent
+ Open Torrent File
+ Open Context Menu
+ Download via Torrent-client
+ Download via Python-Libtorrent (Download Status)
Interface
P2P Network
Advanced
diff --git a/resources/language/Russian/strings.xml b/resources/language/Russian/strings.xml
index 0726e6c..6533e1b 100644
--- a/resources/language/Russian/strings.xml
+++ b/resources/language/Russian/strings.xml
@@ -31,7 +31,11 @@
Предлагать изменить место хранения
Удалить русские трекеры
Вернуть русские трекеры
- Открывать контекстное меню вместо торрента
+ Действие при нажатии на торрент
+ Открыть Торрент Файл
+ Открыть Контекстное меню
+ Скачать Торрент-клиентом
+ Скачать Python-Libtorrent
Интерфейс
P2P Сеть
Дополнительные
diff --git a/resources/settings.xml b/resources/settings.xml
index 556f5d1..652aa68 100644
--- a/resources/settings.xml
+++ b/resources/settings.xml
@@ -27,10 +27,11 @@
default="1"
/>
@@ -134,7 +135,7 @@
-
@@ -151,5 +152,9 @@
+
+
+
+
diff --git a/resources/utorrent/net.py b/resources/utorrent/net.py
index 419d876..24f8724 100644
--- a/resources/utorrent/net.py
+++ b/resources/utorrent/net.py
@@ -459,6 +459,10 @@ class UTorrent:
return True if obj else None
+ def setprio_simple_multi(self, menu):
+ for hash, action, ind in menu:
+ self.setprio_simple(hash, action, ind)
+
def delete(self, id):
pass
@@ -751,6 +755,22 @@ class Transmission:
return True if res else None
+ def setprio_simple_multi(self, menu):
+ id=menu[0][0]
+ prio=menu[0][1]
+
+ inds=[]
+ for hash, action, ind in menu:
+ inds.append(int(ind))
+
+ if prio == '3':
+ res = self.action(
+ {"method": "torrent-set", "arguments": {"ids": [int(id)], "priority-high": inds, "files-wanted": inds}})
+ elif prio == '0':
+ res = self.action({"method": "torrent-set",
+ "arguments": {"ids": [int(id)], "priority-high": inds, "files-unwanted": inds}})
+ return True if res else None
+
def action(self, request):
try:
jsobj = json.dumps(request)
@@ -842,17 +862,13 @@ class Deluge:
self.http = HTTP()
- self.token = '0'
+ def get_info(self):
+ obj = self.action({"method":"web.update_ui",
+ "params":[[],{}],"id":1})
+ return obj
def list(self):
- obj = self.action({"method":"web.update_ui",
- "params":[["queue","name","total_wanted","state","progress",
- "num_seeds","total_seeds","num_peers","total_peers",
- "download_payload_rate","upload_payload_rate","eta",
- "ratio","distributed_copies","is_auto_managed",
- "time_added","tracker_host","save_path","total_done",
- "total_uploaded","max_download_speed","max_upload_speed",
- "seeds_peers_ratio"],{}],"id":1})
+ obj=self.get_info()
if obj is None:
return False
@@ -860,7 +876,7 @@ class Deluge:
if len(obj['result'].get('torrents'))>0:
for k in obj['result'].get('torrents').keys():
r=obj['result']['torrents'][k]
- res.append({
+ add={
'id': str(k),
'status': self.get_status(r['state']),
'name': r['name'],
@@ -876,89 +892,34 @@ class Deluge:
'seed': r['num_seeds'],
'leech': r['num_peers'],
'add': r['time_added'],
- #'finish': r['doneDate'],
'dir': r['save_path']
- })
-
- '''if len(r['fileStats']) > 1:
- res.append({
- 'id': str(r['id']),
- 'status': self.get_status(r['status']),
- 'name': r['name'],
- 'size': r['totalSize'],
- 'progress': 0 if not r['sizeWhenDone'] else int(
- 100.0 * float(r['sizeWhenDone'] - r['leftUntilDone']) / float(r['sizeWhenDone'])),
- 'download': r['downloadedEver'],
- 'upload': r['uploadedEver'],
- 'upspeed': r['rateUpload'],
- 'downspeed': r['rateDownload'],
- 'ratio': float(r['uploadRatio']),
- 'eta': r['eta'],
- 'peer': r['peersConnected'],
- 'seed': r['peersSendingToUs'],
- 'leech': r['peersGettingFromUs'],
- 'add': r['addedDate'],
- 'finish': r['doneDate'],
- 'dir': os.path.join(r['downloadDir'], r['name'])
- })
- else:
- res.append({
- 'id': str(r['id']),
- 'status': self.get_status(r['status']),
- 'name': r['name'],
- 'size': r['totalSize'],
- 'progress': 0 if not r['sizeWhenDone'] else int(
- 100.0 * float(r['sizeWhenDone'] - r['leftUntilDone']) / float(r['sizeWhenDone'])),
- 'download': r['downloadedEver'],
- 'upload': r['uploadedEver'],
- 'upspeed': r['rateUpload'],
- 'downspeed': r['rateDownload'],
- 'ratio': float(r['uploadRatio']),
- 'eta': r['eta'],
- 'peer': r['peersConnected'],
- 'seed': r['peersSendingToUs'],
- 'leech': r['peersGettingFromUs'],
- 'add': r['addedDate'],
- 'finish': r['doneDate'],
- 'dir': r['downloadDir']
- })'''
-
+ }
+ if len(r['files'])>1: add['dir']=os.path.join(r['save_path'],r['name'])
+ res.append(add)
return res
def listdirs(self):
- obj = self.action({'method': 'session-get'})
+ obj = self.action({"method":"core.get_config","params":[],"id":5})
if obj is None:
return False
- res = [obj['arguments'].get('download-dir')]
- # Debug('[Transmission][listdirs]: %s' % (str(res)))
+ res = [obj['result'].get('download_location')]
return res, res
def listfiles(self, id):
- obj = self.action({"method":"web.get_torrent_files","params":[id],"id":2})
+ obj = self.get_info()
if obj is None:
return None
- print str(obj)
-
res = []
- i = -1
- obj=obj['result']
+ obj=obj['result']['torrents'][id]
+ #print str(obj)
+ if len(obj['files'])==1:
+ strip_path=None
+ else:
+ strip_path=obj['name']
- content=obj['contents']
- while content.get('contents'):
- for k in obj['contents'].keys():
-
- res_new, i=self.contents(obj['contents'])
- res.extend(res_new)
- return res
-
- def contents(self, contents={}, i=-1):
- res = []
- i = -1
- for k in contents.keys():
- x=contents[k]
- i += 1
+ for x in obj['files']:
if x['size'] >= 1024 * 1024 * 1024:
size = str(x['size'] / (1024 * 1024 * 1024)) + 'GB'
elif x['size'] >= 1024 * 1024:
@@ -967,62 +928,92 @@ class Deluge:
size = str(x['size'] / 1024) + 'KB'
else:
size = str(x['size']) + 'B'
- res.append([x['path'], round(x['progress'], 2), i, size])
+ if strip_path:
+ path=x['path'].lstrip(strip_path).lstrip('/')
+ else:
+ path=x['path']
- return res, i
+ if x.get('progress'):
+ percent=int(x['progress']*100)
+ else:percent=0
+
+ res.append([path, percent, x['index'], size])
+
+ return res
+
+ def get_prio(self, id):
+ obj = self.get_info()
+ if obj is None:
+ return None
+ res=obj['result']['torrents'][id]['file_priorities']
+ return res
def add(self, torrent, dirname):
- if self.action({'method': 'torrent-add',
- 'arguments': {'download-dir': dirname, 'metainfo': base64.b64encode(torrent)}}) is None:
+ torrentFile=os.path.join(self.http._dirname,'deluge.torrent')
+ if self.action({'method': 'core.add_torrent_file',
+ 'params': [torrentFile,
+ base64.b64encode(torrent), {"download_path": dirname}],"id":3}) is None:
return None
return True
def add_url(self, torrent, dirname):
- if self.action({'method': 'torrent-add', 'arguments': {'download-dir': dirname, 'filename': torrent}}) is None:
- return None
+ if re.match("^magnet\:.+$", torrent):
+ if self.action({'method': 'core.add_torrent_magnet', 'params':[torrent,
+ {'download_path': dirname}],"id":3}) is None:
+ return None
+ else:
+ if self.action({"method": "core.add_torrent_url", "params":[torrent, {'download_path': dirname}],"id":3}) is None:
+ return None
return True
def delete(self, id):
pass
def setprio(self, id, ind):
- obj = self.action({"method": "torrent-get", "arguments": {"fields": ["id", "fileStats", "files"],
- "ids": [int(id)]}})['arguments']['torrents'][0]
- if not obj or ind == None:
- return None
-
- inds = []
i = -1
+ prios=self.get_prio(id)
- for x in obj['fileStats']:
- i += 1
- if x['wanted'] == True and x['priority'] == 0:
- inds.append(i)
+ for p in prios:
+ i=i+1
+ if p==1:
+ prios.pop(i)
+ prios.insert(i,0)
- if len(inds) > 1: self.action(
- {"method": "torrent-set", "arguments": {"ids": [int(id)], "priority-high": inds, "files-unwanted": inds}})
+ prios.pop(int(ind))
+ prios.insert(int(ind),7)
- res = self.setprio_simple(id, '3', ind)
+ if self.action({"method": "core.set_torrent_file_priorities", "params":[id, prios],"id":6}) is None:
+ return None
- # self.action_simple('start',id)
-
- return True if res else None
+ return True
def setprio_simple(self, id, prio, ind):
- if ind == None:
+ prios=self.get_prio(id)
+
+ if ind!=None:
+ prios.pop(int(ind))
+ if prio == '3':
+ prios.insert(int(ind),7)
+ elif prio == '0':
+ prios.insert(int(ind),0)
+
+ if self.action({"method": "core.set_torrent_file_priorities", "params":[id, prios],"id":6}) is None:
return None
+ return True
- res = None
- inds = [int(ind)]
+ def setprio_simple_multi(self, menu):
+ id=menu[0][0]
+ prios=self.get_prio(id)
- if prio == '3':
- res = self.action(
- {"method": "torrent-set", "arguments": {"ids": [int(id)], "priority-high": inds, "files-wanted": inds}})
- elif prio == '0':
- res = self.action({"method": "torrent-set",
- "arguments": {"ids": [int(id)], "priority-high": inds, "files-unwanted": inds}})
+ for hash, action, ind in menu:
+ prios.pop(int(ind))
+ if action == '3':
+ prios.insert(int(ind),7)
+ elif action == '0':
+ prios.insert(int(ind),0)
- return True if res else None
+ if self.action({"method": "core.set_torrent_file_priorities", "params":[id, prios],"id":6}) is None:
+ return None
def action(self, request):
cookie = self.get_auth()
@@ -1034,30 +1025,26 @@ class Deluge:
except:
return None
else:
+ response = self.http.fetch(self.url + '/json', method='POST', params=jsobj,
+ headers={'X-Requested-With': 'XMLHttpRequest', 'Cookie': cookie,
+ 'Content-Type': 'application/json; charset=UTF-8'})
- while True:
- # пробуем сделать запрос
- response = self.http.fetch(self.url + '/json', method='POST', params=jsobj,
- headers={'X-Requested-With': 'XMLHttpRequest', 'Cookie': cookie,
- 'Content-Type': 'application/json; charset=UTF-8'})
+ if response.error:
+ return None
- if response.error:
+ else:
+ try:
+ obj = json.loads(response.body)
+ except:
return None
-
else:
- try:
- obj = json.loads(response.body)
- except:
- return None
- else:
- return obj
+ return obj
def action_simple(self, action, id):
- actions = {'start': {"method": "torrent-start", "arguments": {"ids": [int(id)]}},
- 'stop': {"method": "torrent-stop", "arguments": {"ids": [int(id)]}},
- 'remove': {"method": "torrent-remove", "arguments": {"ids": [int(id)], "delete-local-data": False}},
- 'removedata': {"method": "torrent-remove",
- "arguments": {"ids": [int(id)], "delete-local-data": True}}}
+ actions = {'start': {"method":"core.resume_torrent","params":[[id]],"id":4},
+ 'stop': {"method":"core.pause_torrent","params":[[id]],"id":4},
+ 'remove': {"method":"core.remove_torrent","params":[id, False],"id":4},
+ 'removedata': {"method":"core.remove_torrent", "params":[id, True],"id":4}}
obj = self.action(actions[action])
return True if obj else None
@@ -1073,20 +1060,17 @@ class Deluge:
if auth["result"]==False:
return False
else:
- # _session_id=7167aae78e7cbdff694571f640ee2cd02351
r = re.compile('_session_id=([^;]+);').search(response.headers.get('set-cookie', ''))
if r:
cookie = r.group(1).strip()
return '_session_id=' + cookie
-
-
def get_status(self, code):
mapping = {
'Queued': 'stopped',
- 'Error': 'check_pending',
+ 'Error': 'stopped',
'Checking': 'checking',
- 'Paused': 'download_pending',
+ 'Paused': 'seed_pending',
'Downloading': 'downloading',
'Active': 'seed_pending',
'Seeding': 'seeding'
@@ -1228,6 +1212,10 @@ class Vuze:
time.sleep(0.1)
return True if obj else None
+ def setprio_simple_multi(self, menu):
+ for hash, action, ind in menu:
+ self.setprio_simple(hash, action, ind)
+
def action_simple(self, action, id):
torrent = self.downloads[int(id)]
obj = None
@@ -1340,5 +1328,8 @@ class Download():
# Debug('[setprio_simple] '+str((id, prio, ind)))
return self.client.setprio_simple(id, prio, ind)
+ def setprio_simple_multi(self, prio_list):
+ return self.client.setprio_simple_multi(prio_list)
+
def action_simple(self, action, id):
return self.client.action_simple(action, id)