diff --git a/.idea/workspace.xml b/.idea/workspace.xml
index ae80a10..63c9243 100644
--- a/.idea/workspace.xml
+++ b/.idea/workspace.xml
@@ -1,39 +1,12 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
@@ -63,87 +36,14 @@
-
+
-
-
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
@@ -153,7 +53,7 @@
-
+
@@ -173,7 +73,7 @@
-
+
@@ -328,7 +228,7 @@
-
+
@@ -396,13 +296,13 @@
-
-
-
+
+
+
@@ -424,9 +324,6 @@
-
-
-
@@ -440,6 +337,7 @@
+
@@ -472,50 +370,9 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
@@ -695,12 +552,6 @@
1420801533300
-
- 1421173168540
-
-
- 1421173168540
-
1421173435595
@@ -989,7 +840,13 @@
1434145575570
-
+
+ 1435089627617
+
+
+ 1435089627618
+
+
@@ -1018,24 +875,24 @@
-
-
-
-
+
+
-
+
-
+
+
+
@@ -1050,7 +907,6 @@
-
@@ -1075,7 +931,8 @@
-
+
+
@@ -1084,6 +941,14 @@
+
+
+
+
+
+
+
+
@@ -1455,72 +1320,6 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
@@ -1532,7 +1331,7 @@
-
+
@@ -1549,7 +1348,7 @@
-
+
@@ -1557,13 +1356,30 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
+
+
-
@@ -1589,5 +1405,32 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Core.py b/Core.py
index e7d3892..3e9d2ce 100644
--- a/Core.py
+++ b/Core.py
@@ -45,7 +45,7 @@ class Core:
torrent_player=__settings__.getSetting("torrent_player")
history_bool = __settings__.getSetting('history') == 'true'
open_option = int(__settings__.getSetting('open_option'))
- language = {0: 'en', 1: 'ru'}.get(int(__settings__.getSetting("language")))
+ language = {0: 'en', 1: 'ru', 2: 'ru'}.get(int(__settings__.getSetting("language")))
htmlCodes = (
('&', '&'),
('<', '<'),
diff --git a/addon.xml b/addon.xml
index 8bfe58c..4b11f2d 100644
--- a/addon.xml
+++ b/addon.xml
@@ -1,5 +1,5 @@
-
+
diff --git a/changelog.txt b/changelog.txt
index bb06a0b..e9e7be5 100644
--- a/changelog.txt
+++ b/changelog.txt
@@ -1,4 +1,8 @@
-[B]Version 2.2.7[/B]
+[B]Version 2.2.8[/B]
+[+] Добавлен Украинский язык (by kharts)
+[+] Торрент-клиент: Добавлены иконки торрент-клиентов (by kharts)
+
+[B]Version 2.2.7[/B]
[+] Проигрыватель: User-friendly объяснение причины невозможности стриминга
[+] Торрент-клиент: Исправлено добавление magnet
diff --git a/resources/skins/Default/720p/reviews.xml b/resources/skins/Default/720p/reviews.xml
new file mode 100644
index 0000000..ccc51dc
--- /dev/null
+++ b/resources/skins/Default/720p/reviews.xml
@@ -0,0 +1,127 @@
+
+
+ 1
+ 240
+ 20
+
+ dialogeffect
+
+
+ WindowOpen
+ WindowClose
+
+ background image
+ 0
+ 0
+ 800
+ 680
+ DialogBack.png
+
+
+ Dialog Header image
+ 40
+ 16
+ 720
+ 40
+ dialogheader.png
+
+
+ header label
+ 40
+ 20
+ 720
+ 30
+ font13_title
+
+ center
+ center
+ selected
+ black
+
+
+
+ Close Window button
+ 710
+ 15
+ 64
+ 32
+
+ -
+ PreviousMenu
+ DialogCloseButton-focus.png
+ DialogCloseButton.png
+ 10
+ 10
+ 10
+ 10
+ system.getbool(input.enablemouse)
+
+
+
+ 760
+ 100
+ 25
+ 495
+ ScrollBarV.png
+ ScrollBarV_bar.png
+ ScrollBarV_bar_focus.png
+ ScrollBarNib.png
+ ScrollBarNib.png
+ 22
+ 22
+ true
+ IntegerGreaterThan(Container(32).NumPages,1)
+ vertical
+
+
+
+ Dialog Header image
+ 33
+ 85
+ 104
+ 149
+
+
+
+
+
+ filepath
+ 60
+ 70
+ 690
+ 60
+ 530
+ left
+ top
+ font12
+ Нет отзывов
+ center
+ center
+ white
+ black
+ true
+
+
+ 615
+ 50
+
+
+ close
+ 20
+ 0
+ 650
+ 40
+ center
+ center
+ font12_title
+
+ 60
+ 60
+ 60
+ 60
+
+
+
+
+
+
diff --git a/resources/skins/DialogReviews.py b/resources/skins/DialogReviews.py
new file mode 100644
index 0000000..ca0a2bd
--- /dev/null
+++ b/resources/skins/DialogReviews.py
@@ -0,0 +1,61 @@
+# -*- coding: utf-8 -*-
+
+import sys, urllib, urllib2, re, os, cookielib, traceback, datetime, htmlentitydefs
+import xbmc, xbmcgui, xbmcaddon
+
+pattern = re.compile("&(\w+?);")
+
+def html_entity_decode_char(m, defs=htmlentitydefs.entitydefs):
+ try:
+ return defs[m.group(1)]
+ except KeyError:
+ return m.group(0)
+
+def html_entity_decode(string):
+ return pattern.sub(html_entity_decode_char, string)
+
+KEY_BUTTON_BACK = 275
+KEY_KEYBOARD_ESC = 61467
+ACTION_PREVIOUS_MENU = 10
+ACTION_NAV_BACK = 92
+class DialogReviews(xbmcgui.WindowXMLDialog):
+ def onInit(self):
+ print "DialogReviews(): Window Initialized"
+ self.reviews_box = self.getControl(32)
+ self.reviews_box.setText(self.get_reviews())
+
+ self.setFocus(self.getControl(22))
+
+ def onAction(self, action):
+ buttonCode = action.getButtonCode()
+ if (action == ACTION_NAV_BACK or action == ACTION_PREVIOUS_MENU):
+ self.close()
+ if (buttonCode == KEY_BUTTON_BACK or buttonCode == KEY_KEYBOARD_ESC):
+ self.close()
+
+ def onClick(self, controlID):
+ if (controlID == 2 or controlID == 22):
+ self.close()
+
+
+ def onFocus(self, controlID):
+ #print "onFocus(): control %i" % controlID
+ pass
+
+
+ def doModal(self, movieHtml):
+ self.movieHtml = movieHtml
+ xbmcgui.WindowXMLDialog.doModal(self)
+
+
+ def get_reviews(self):
+ reviews_texts = re.compile('',re.S).findall(self.movieHtml)
+ reviews_autors = re.compile('',re.S).findall(self.movieHtml)
+ reviews_dates = re.compile('([^<]+)
',re.S).findall(self.movieHtml)
+ texts = ''
+ i = 0
+ for text in reviews_texts:
+ texts = texts+"\n[B][COLOR purple]"+reviews_autors[i]+"[/COLOR][/B] [I]"+reviews_dates[i]+"[/I]\n"
+ texts = texts+html_entity_decode(text)+"\n"
+ i = i + 1
+ return texts