diff --git a/.idea/workspace.xml b/.idea/workspace.xml
index cdba472..9798d38 100644
--- a/.idea/workspace.xml
+++ b/.idea/workspace.xml
@@ -3,12 +3,7 @@
-
-
-
-
-
@@ -43,11 +38,12 @@
-
-
+
+
+
@@ -68,24 +64,22 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -94,7 +88,7 @@
-
+
@@ -114,8 +108,8 @@
-
-
+
+
@@ -135,10 +129,10 @@
-
+
-
+
@@ -155,22 +149,132 @@
-
-
-
-
-
-
-
-
-
-
-
+
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -211,8 +315,8 @@
-
+
@@ -249,7 +353,6 @@
-
@@ -328,6 +431,7 @@
+
@@ -527,7 +631,11 @@
1420904827834
1420904827834
-
+
+ 1420970744332
+ 1420970744332
+
+
@@ -566,12 +674,12 @@
-
+
-
+
@@ -592,21 +700,207 @@
-
+
+
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
+
+
+
@@ -627,24 +921,262 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -696,6 +1228,7 @@
+
@@ -716,24 +1249,22 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -785,6 +1316,7 @@
+
@@ -805,24 +1337,22 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -875,7 +1405,6 @@
-
@@ -902,14 +1431,6 @@
-
-
-
-
-
-
-
-
@@ -929,6 +1450,29 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -949,37 +1493,142 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
+
+
+
@@ -1000,24 +1649,22 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Core.py b/Core.py
index 7558f0f..a69b8e3 100644
--- a/Core.py
+++ b/Core.py
@@ -1038,7 +1038,7 @@ class Core:
#print str(contentList)
- dirList, contentListNew = self.cutFolder(contentList, tdir)
+ dirList, contentListNew = cutFolder(contentList, tdir)
for title in dirList:
self.drawItem(title, 'openTorrent', url, isFolder=True, action2=title)
@@ -1175,7 +1175,6 @@ class Core:
torrentFilesDirectory=self.torrentFilesDirectory)
self.__settings__.setSetting("lastTorrent", torrent.saveTorrent(url))
if silent != 'true':
- contentId = 0
if external:
myshows_setting = xbmcaddon.Addon(id='plugin.video.myshows')
myshows_lang = myshows_setting.getLocalizedString
@@ -1195,7 +1194,7 @@ class Core:
re.I | re.DOTALL):
myshows_items.append(title)
myshows_files.append('plugin://plugin.video.torrenter/?action=playTorrent&url=' + identifier)
- if len(myshows_items) > 1: myshows_items = self.cutFileNames(myshows_items)
+ if len(myshows_items) > 1: myshows_items = cutFileNames(myshows_items)
myshows_items.append(unicode(myshows_lang(30400)))
myshows_files.append('')
dialog = xbmcgui.Dialog()
@@ -1214,7 +1213,7 @@ class Core:
contentList.append((self.unescape(fileTitle), str(filedict.get('ind'))))
contentList = sorted(contentList, key=lambda x: x[0])
- dirList, contentListNew = self.cutFolder(contentList, tdir)
+ dirList, contentListNew = cutFolder(contentList, tdir)
for title in dirList:
self.drawItem(title, 'openTorrent', url, image=thumbnail, isFolder=True, action2=title)
@@ -1244,102 +1243,6 @@ class Core:
url = self.__settings__.getSetting("lastTorrent")
self.downloadFilesList({'url': url, 'ind': params.get("url")})
- def cutFolder(self, contentList, tdir=None):
- dirList, contentListNew = [], []
-
- if len(contentList) > 1:
- common_folder = contentList[0][0]
- if '\\' in common_folder:
- common_folder = common_folder.split('\\')[0]
- elif '/' in common_folder:
- common_folder = common_folder.split('/')[0]
-
- common = True
- for fileTitle, contentId in contentList:
- if common_folder not in fileTitle:
- print 'no common'
- common = False
- break
-
- #print common_folder
- for fileTitle, contentId in contentList:
- dir = None
- if common:
- fileTitle = fileTitle[len(common_folder) + 1:]
-
- #print fileTitle
-
- if '\\' in fileTitle:
- dir = fileTitle.split('\\')[0]
- elif '/' in fileTitle:
- dir = fileTitle.split('/')[0]
- elif not tdir:
- contentListNew.append((fileTitle, contentId))
-
- if tdir and dir == tdir:
- contentListNew.append((fileTitle[len(dir) + 1:], contentId))
-
- if not tdir and dir and dir not in dirList:
- dirList.append(dir)
-
- return dirList, contentListNew
- else:
- return dirList, contentList
-
- def cutFileNames(self, l):
- from difflib import Differ
-
- d = Differ()
- i = -1
- m = self.getDirList(None, l)
- if len(m) < 2: return l
- text1 = str(m[0])
- text2 = str(m[1])
-
- seps = ['.|:| ', '.|:|x', ' |:|x', ' |:|-', '_|:|', ]
- for s in seps:
- sep_file = str(s).split('|:|')[0]
- result = list(d.compare(text1.split(sep_file), text2.split(sep_file)))
- if len(result) > 5:
- break
-
- print list(d.compare(text1.split(sep_file), text2.split(sep_file)))
-
- start = ''
- end = ''
-
- for res in result:
- if str(res).startswith('-') or str(res).startswith('+') or str(res).startswith('.?'):
- break
- start = start + str(res).strip() + sep_file
- result.reverse()
- for res in result:
- if str(res).startswith('-') or str(res).startswith('+') or str(res).startswith('?'):
- break
- end = sep_file + str(res).strip() + end
-
- newl = l
- l = []
- for fl in newl:
- if fl[0:len(start)] == start: fl = fl[len(start):]
- if fl[len(fl) - len(end):] == end: fl = fl[0:len(fl) - len(end)]
- #fl=fl[len(start):len(fl)-len(end)] только это вместо 2 сверху
- l.append(fl)
- return l
-
- def getDirList(self, path, newl=None):
- l = []
- try:
- if not newl: newl = os.listdir(path)
- except:
- if not newl: newl = os.listdir(path.decode('utf-8').encode('cp1251'))
- for fl in newl:
- match = re.match('.avi|.mp4|.mkV|.flv|.mov|.vob|.wmv|.ogm|.asx|.mpg|mpeg|.avc|.vp3|.fli|.flc|.m4v',
- fl[int(len(fl)) - 4:len(fl)], re.I)
- if match:
- l.append(fl)
- return l
-
def openSection(self, params={}):
get = params.get
url = urllib.unquote_plus(get("url"))
diff --git a/functions.py b/functions.py
index 31887f6..ed7a7a5 100644
--- a/functions.py
+++ b/functions.py
@@ -567,6 +567,48 @@ def sortext(filelist):
return result
+def cutFolder(contentList, tdir=None):
+ dirList, contentListNew = [], []
+
+ if len(contentList) > 1:
+ common_folder = contentList[0][0]
+ if '\\' in common_folder:
+ common_folder = common_folder.split('\\')[0]
+ elif '/' in common_folder:
+ common_folder = common_folder.split('/')[0]
+
+ common = True
+ for fileTitle, contentId in contentList:
+ if common_folder not in fileTitle:
+ print 'no common'
+ common = False
+ break
+
+ #print common_folder
+ for fileTitle, contentId in contentList:
+ dir = None
+ if common:
+ fileTitle = fileTitle[len(common_folder) + 1:]
+
+ #print fileTitle
+
+ if '\\' in fileTitle:
+ dir = fileTitle.split('\\')[0]
+ elif '/' in fileTitle:
+ dir = fileTitle.split('/')[0]
+ elif not tdir:
+ contentListNew.append((fileTitle, contentId))
+
+ if tdir and dir == tdir:
+ contentListNew.append((fileTitle[len(dir) + 1:], contentId))
+
+ if not tdir and dir and dir not in dirList:
+ dirList.append(dir)
+
+ return dirList, contentListNew
+ else:
+ return dirList, contentList
+
def sweetpair(l):
from difflib import SequenceMatcher