New Read me?

pull/1/head
DiMartinoX 2015-01-09 22:59:41 +03:00
parent 088c41f7a2
commit 004ba66eeb
5 changed files with 310 additions and 21 deletions

View File

@ -1,7 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ChangeListManager">
<list default="true" id="56e91349-2444-4553-bc78-90c2bab49e9c" name="Default" comment="">
<list default="true" id="56e91349-2444-4553-bc78-90c2bab49e9c" name="Default" comment="New Read me?">
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/Core.py" afterPath="$PROJECT_DIR$/Core.py" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/resources/searchers/KickAssSo.py" afterPath="$PROJECT_DIR$/resources/searchers/KickAssSo.py" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/Localization.py" afterPath="$PROJECT_DIR$/Localization.py" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/resources/settings.xml" afterPath="$PROJECT_DIR$/resources/settings.xml" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/.idea/workspace.xml" afterPath="$PROJECT_DIR$/.idea/workspace.xml" />
</list>
<ignored path="plugin.video.torrenter.iws" />
@ -18,7 +22,7 @@
<option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" />
<option name="LAST_RESOLUTION" value="IGNORE" />
</component>
<component name="ChangesViewManager" flattened_view="true" show_ignored="false" />
<component name="ChangesViewManager" flattened_view="true" show_ignored="true" />
<component name="CreatePatchCommitExecutor">
<option name="PATCH_PATH" value="" />
</component>
@ -30,7 +34,85 @@
<favorites_list name="plugin.video.torrenter" />
</component>
<component name="FileEditorManager">
<leaf />
<splitter split-orientation="horizontal" split-proportion="0.5">
<split-first>
<leaf>
<file leaf-file-name="Core.py" pinned="false" current="true" current-in-tab="true">
<entry file="file://$PROJECT_DIR$/Core.py">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.64006513" vertical-offset="1919" max-vertical-offset="3621">
<caret line="1472" column="26" selection-start-line="1472" selection-start-column="26" selection-end-line="1472" selection-end-column="26" />
<folding>
<element signature="e#24#781#1" expanded="false" />
<element signature="e#2301#2598#0" expanded="false" />
<element signature="e#2635#6745#0" expanded="false" />
<element signature="e#6784#18749#0" expanded="false" />
<element signature="e#18790#19038#0" expanded="false" />
<element signature="e#19082#22230#0" expanded="false" />
<element signature="e#22271#23498#0" expanded="false" />
<element signature="e#23599#27808#0" expanded="false" />
<element signature="e#27856#29920#0" expanded="false" />
<element signature="e#29962#30950#0" expanded="false" />
<element signature="e#31000#35614#0" expanded="false" />
<element signature="e#35679#42032#0" expanded="false" />
<element signature="e#42080#42815#0" expanded="false" />
<element signature="e#42879#43923#0" expanded="false" />
<element signature="e#43972#45651#0" expanded="false" />
<element signature="e#45808#47027#0" expanded="false" />
<element signature="e#47083#47500#0" expanded="false" />
<element signature="e#47542#47651#0" expanded="false" />
<element signature="e#47694#47814#0" expanded="false" />
<element signature="e#47864#48015#0" expanded="false" />
<element signature="e#48068#54593#0" expanded="false" />
<element signature="e#54642#54681#0" expanded="false" />
<element signature="e#54730#55520#0" expanded="false" />
<element signature="e#55570#58285#0" expanded="false" />
<element signature="e#58333#59748#0" expanded="false" />
<element signature="e#59793#60666#0" expanded="false" />
<element signature="e#60714#66221#0" expanded="false" />
<element signature="e#66456#67836#0" expanded="false" />
<element signature="e#67877#69185#0" expanded="false" />
<element signature="e#69238#69673#0" expanded="false" />
<element signature="e#69721#71583#0" expanded="false" />
<element signature="e#71633#71729#0" expanded="false" />
<element signature="e#71792#72319#0" expanded="false" />
<element signature="e#72390#76080#0" expanded="false" />
<element signature="e#76124#76166#0" expanded="false" />
<element signature="e#79371#79991#0" expanded="false" />
<element signature="e#80851#81640#0" expanded="false" />
<element signature="e#81682#81777#0" expanded="false" />
</folding>
</state>
</provider>
</entry>
</file>
</leaf>
</split-first>
<split-second>
<leaf>
<file leaf-file-name="settings.xml" pinned="false" current="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/resources/settings.xml">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.0" vertical-offset="1453" max-vertical-offset="2312">
<caret line="107" column="75" selection-start-line="107" selection-start-column="70" selection-end-line="107" selection-end-column="75" />
<folding />
</state>
</provider>
</entry>
</file>
<file leaf-file-name="Localization.py" pinned="false" current="false" current-in-tab="true">
<entry file="file://$PROJECT_DIR$/Localization.py">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.60280377" vertical-offset="2979" max-vertical-offset="3638">
<caret line="198" column="41" selection-start-line="198" selection-start-column="41" selection-end-line="198" selection-end-column="41" />
<folding />
</state>
</provider>
</entry>
</file>
</leaf>
</split-second>
</splitter>
</component>
<component name="FindManager">
<FindUsagesManager>
@ -44,6 +126,10 @@
<option name="changedFiles">
<list>
<option value="$PROJECT_DIR$/README.txt" />
<option value="$PROJECT_DIR$/resources/settings.xml" />
<option value="$PROJECT_DIR$/resources/searchers/KickAssSo.py" />
<option value="$PROJECT_DIR$/Localization.py" />
<option value="$PROJECT_DIR$/Core.py" />
</list>
</option>
</component>
@ -104,8 +190,130 @@
</component>
<component name="PropertiesComponent">
<property name="last_opened_file_path" value="$PROJECT_DIR$" />
<property name="FullScreen" value="false" />
</component>
<component name="RunManager">
<configuration default="true" type="tests" factoryName="py.test">
<option name="INTERPRETER_OPTIONS" value="" />
<option name="PARENT_ENVS" value="true" />
<envs />
<option name="SDK_HOME" value="" />
<option name="WORKING_DIRECTORY" value="" />
<option name="IS_MODULE_SDK" value="false" />
<option name="ADD_CONTENT_ROOTS" value="true" />
<option name="ADD_SOURCE_ROOTS" value="true" />
<module name="plugin.video.torrenter" />
<option name="SCRIPT_NAME" value="" />
<option name="CLASS_NAME" value="" />
<option name="METHOD_NAME" value="" />
<option name="FOLDER_NAME" value="" />
<option name="TEST_TYPE" value="TEST_SCRIPT" />
<option name="PATTERN" value="" />
<option name="USE_PATTERN" value="false" />
<option name="testToRun" value="" />
<option name="keywords" value="" />
<option name="params" value="" />
<option name="USE_PARAM" value="false" />
<option name="USE_KEYWORD" value="false" />
<method />
</configuration>
<configuration default="true" type="tests" factoryName="Nosetests">
<option name="INTERPRETER_OPTIONS" value="" />
<option name="PARENT_ENVS" value="true" />
<envs />
<option name="SDK_HOME" value="" />
<option name="WORKING_DIRECTORY" value="" />
<option name="IS_MODULE_SDK" value="false" />
<option name="ADD_CONTENT_ROOTS" value="true" />
<option name="ADD_SOURCE_ROOTS" value="true" />
<module name="plugin.video.torrenter" />
<option name="SCRIPT_NAME" value="" />
<option name="CLASS_NAME" value="" />
<option name="METHOD_NAME" value="" />
<option name="FOLDER_NAME" value="" />
<option name="TEST_TYPE" value="TEST_SCRIPT" />
<option name="PATTERN" value="" />
<option name="USE_PATTERN" value="false" />
<option name="PARAMS" value="" />
<option name="USE_PARAM" value="false" />
<method />
</configuration>
<configuration default="true" type="PythonConfigurationType" factoryName="Python">
<option name="INTERPRETER_OPTIONS" value="" />
<option name="PARENT_ENVS" value="true" />
<envs>
<env name="PYTHONUNBUFFERED" value="1" />
</envs>
<option name="SDK_HOME" value="" />
<option name="WORKING_DIRECTORY" value="" />
<option name="IS_MODULE_SDK" value="false" />
<option name="ADD_CONTENT_ROOTS" value="true" />
<option name="ADD_SOURCE_ROOTS" value="true" />
<module name="plugin.video.torrenter" />
<option name="SCRIPT_NAME" value="" />
<option name="PARAMETERS" value="" />
<method />
</configuration>
<configuration default="true" type="tests" factoryName="Unittests">
<option name="INTERPRETER_OPTIONS" value="" />
<option name="PARENT_ENVS" value="true" />
<envs />
<option name="SDK_HOME" value="" />
<option name="WORKING_DIRECTORY" value="" />
<option name="IS_MODULE_SDK" value="false" />
<option name="ADD_CONTENT_ROOTS" value="true" />
<option name="ADD_SOURCE_ROOTS" value="true" />
<module name="plugin.video.torrenter" />
<option name="SCRIPT_NAME" value="" />
<option name="CLASS_NAME" value="" />
<option name="METHOD_NAME" value="" />
<option name="FOLDER_NAME" value="" />
<option name="TEST_TYPE" value="TEST_SCRIPT" />
<option name="PATTERN" value="" />
<option name="USE_PATTERN" value="false" />
<option name="PUREUNITTEST" value="true" />
<option name="PARAMS" value="" />
<option name="USE_PARAM" value="false" />
<method />
</configuration>
<configuration default="true" type="tests" factoryName="Doctests">
<option name="INTERPRETER_OPTIONS" value="" />
<option name="PARENT_ENVS" value="true" />
<envs />
<option name="SDK_HOME" value="" />
<option name="WORKING_DIRECTORY" value="" />
<option name="IS_MODULE_SDK" value="false" />
<option name="ADD_CONTENT_ROOTS" value="true" />
<option name="ADD_SOURCE_ROOTS" value="true" />
<module name="plugin.video.torrenter" />
<option name="SCRIPT_NAME" value="" />
<option name="CLASS_NAME" value="" />
<option name="METHOD_NAME" value="" />
<option name="FOLDER_NAME" value="" />
<option name="TEST_TYPE" value="TEST_SCRIPT" />
<option name="PATTERN" value="" />
<option name="USE_PATTERN" value="false" />
<method />
</configuration>
<configuration default="true" type="tests" factoryName="Attests">
<option name="INTERPRETER_OPTIONS" value="" />
<option name="PARENT_ENVS" value="true" />
<envs />
<option name="SDK_HOME" value="" />
<option name="WORKING_DIRECTORY" value="" />
<option name="IS_MODULE_SDK" value="false" />
<option name="ADD_CONTENT_ROOTS" value="true" />
<option name="ADD_SOURCE_ROOTS" value="true" />
<module name="plugin.video.torrenter" />
<option name="SCRIPT_NAME" value="" />
<option name="CLASS_NAME" value="" />
<option name="METHOD_NAME" value="" />
<option name="FOLDER_NAME" value="" />
<option name="TEST_TYPE" value="TEST_SCRIPT" />
<option name="PATTERN" value="" />
<option name="USE_PATTERN" value="false" />
<method />
</configuration>
<list size="0" />
</component>
<component name="ShelveChangesManager" show_recycled="false" />
@ -157,21 +365,21 @@
<frame x="-8" y="-8" width="1936" height="1056" extended-state="6" />
<editor active="false" />
<layout>
<window_info id="Messages" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="-1" side_tool="false" content_ui="tabs" />
<window_info id="Changes" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.32925472" sideWeight="0.5" order="-1" side_tool="false" content_ui="tabs" />
<window_info id="Terminal" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" weight="0.32925472" sideWeight="0.5" order="-1" side_tool="false" content_ui="tabs" />
<window_info id="Changes" active="true" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" weight="0.24111111" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" />
<window_info id="Terminal" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.3288889" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" />
<window_info id="TODO" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.32925472" sideWeight="0.5" order="6" side_tool="false" content_ui="tabs" />
<window_info id="Structure" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.25" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
<window_info id="Project" active="true" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" weight="0.24973656" sideWeight="0.5" order="0" side_tool="false" content_ui="combo" />
<window_info id="Project" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" weight="0.24973656" sideWeight="0.5" order="0" side_tool="false" content_ui="combo" />
<window_info id="Debug" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.4" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
<window_info id="Favorites" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="-1" side_tool="true" content_ui="tabs" />
<window_info id="Event Log" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="-1" side_tool="true" content_ui="tabs" />
<window_info id="Favorites" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="2" side_tool="true" content_ui="tabs" />
<window_info id="Event Log" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="7" side_tool="true" content_ui="tabs" />
<window_info id="Run" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" />
<window_info id="Version Control" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.32925472" sideWeight="0.5" order="-1" side_tool="false" content_ui="tabs" />
<window_info id="Version Control" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.32925472" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" />
<window_info id="Cvs" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.25" sideWeight="0.5" order="4" side_tool="false" content_ui="tabs" />
<window_info id="Message" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="0" side_tool="false" content_ui="tabs" />
<window_info id="Find" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
<window_info id="Ant Build" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.25" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
<window_info id="Messages" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" />
<window_info id="Commander" active="false" anchor="right" auto_hide="false" internal_type="SLIDING" type="SLIDING" visible="false" weight="0.4" sideWeight="0.5" order="0" side_tool="false" content_ui="tabs" />
<window_info id="Inspection" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.4" sideWeight="0.5" order="5" side_tool="false" content_ui="tabs" />
<window_info id="Hierarchy" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.25" sideWeight="0.5" order="2" side_tool="false" content_ui="combo" />
@ -203,10 +411,88 @@
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.76869565" vertical-offset="0" max-vertical-offset="901">
<caret line="26" column="43" selection-start-line="26" selection-start-column="43" selection-end-line="26" selection-end-column="43" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/resources/language/English/strings.xml">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.33211678" vertical-offset="379" max-vertical-offset="935">
<caret line="33" column="21" selection-start-line="33" selection-start-column="16" selection-end-line="33" selection-end-column="21" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/resources/settings.xml">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.0" vertical-offset="1453" max-vertical-offset="2312">
<caret line="107" column="75" selection-start-line="107" selection-start-column="70" selection-end-line="107" selection-end-column="75" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/resources/searchers/KickAssSo.py">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.72824156" vertical-offset="984" max-vertical-offset="1700">
<caret line="88" column="27" selection-start-line="88" selection-start-column="27" selection-end-line="88" selection-end-column="27" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/Localization.py">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.60280377" vertical-offset="2979" max-vertical-offset="3638">
<caret line="198" column="41" selection-start-line="198" selection-start-column="41" selection-end-line="198" selection-end-column="41" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/Core.py">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.64006513" vertical-offset="1919" max-vertical-offset="3621">
<caret line="1472" column="26" selection-start-line="1472" selection-start-column="26" selection-end-line="1472" selection-end-column="26" />
<folding>
<element signature="e#24#781#1" expanded="false" />
<element signature="e#2301#2598#0" expanded="false" />
<element signature="e#2635#6745#0" expanded="false" />
<element signature="e#6784#18749#0" expanded="false" />
<element signature="e#18790#19038#0" expanded="false" />
<element signature="e#19082#22230#0" expanded="false" />
<element signature="e#22271#23498#0" expanded="false" />
<element signature="e#23599#27808#0" expanded="false" />
<element signature="e#27856#29920#0" expanded="false" />
<element signature="e#29962#30950#0" expanded="false" />
<element signature="e#31000#35614#0" expanded="false" />
<element signature="e#35679#42032#0" expanded="false" />
<element signature="e#42080#42815#0" expanded="false" />
<element signature="e#42879#43923#0" expanded="false" />
<element signature="e#43972#45651#0" expanded="false" />
<element signature="e#45808#47027#0" expanded="false" />
<element signature="e#47083#47500#0" expanded="false" />
<element signature="e#47542#47651#0" expanded="false" />
<element signature="e#47694#47814#0" expanded="false" />
<element signature="e#47864#48015#0" expanded="false" />
<element signature="e#48068#54593#0" expanded="false" />
<element signature="e#54642#54681#0" expanded="false" />
<element signature="e#54730#55520#0" expanded="false" />
<element signature="e#55570#58285#0" expanded="false" />
<element signature="e#58333#59748#0" expanded="false" />
<element signature="e#59793#60666#0" expanded="false" />
<element signature="e#60714#66221#0" expanded="false" />
<element signature="e#66456#67836#0" expanded="false" />
<element signature="e#67877#69185#0" expanded="false" />
<element signature="e#69238#69673#0" expanded="false" />
<element signature="e#69721#71583#0" expanded="false" />
<element signature="e#71633#71729#0" expanded="false" />
<element signature="e#71792#72319#0" expanded="false" />
<element signature="e#72390#76080#0" expanded="false" />
<element signature="e#76124#76166#0" expanded="false" />
<element signature="e#79371#79991#0" expanded="false" />
<element signature="e#80851#81640#0" expanded="false" />
<element signature="e#81682#81777#0" expanded="false" />
</folding>
</state>
</provider>
</entry>
</component>
</project>

18
Core.py
View File

@ -1464,18 +1464,21 @@ class Core:
dirid = 0
if dirid == -1: return
dirname = clean[dirid]
elif self.__settings__.getSetting("torrent") == '1':
if self.__settings__.getSetting("torrent") == '1':
default = self.__settings__.getSetting("torrent_dir")
keyboard = xbmc.Keyboard(default, self.localize('Save to path') + ':')
keyboard.doModal()
dirname = keyboard.getText()
if not keyboard.isConfirmed():
return
if not dirname and len(clean)>0:
dirname = clean[0]
else:
dirname = self.__settings__.getSetting("torrent_dir")
get = params.get
url = urllib.unquote_plus(get("url"))
ind = None
try:
ind = get("ind")
except:
pass
ind = get("ind")
if not ind:
self.__settings__.setSetting("lastTorrentUrl", url)
classMatch = re.search('(\w+)::(.+)', url)
@ -1486,8 +1489,7 @@ class Core:
try:
searcherObject = getattr(__import__(searcher), searcher)()
except Exception, e:
print 'Unable to use searcher: ' + searcher + ' at ' + self.__plugin__ + ' openTorrent(). Exception: ' + str(
e)
print 'Unable to use searcher: ' + searcher + ' at ' + self.__plugin__ + ' openTorrent(). Exception: ' + str(e)
return
url = searcherObject.getTorrentFile(classMatch.group(2))

View File

@ -195,7 +195,8 @@ dictionary = {
'Individual Tracker Options':'Выбор Трекеров',
'Downloading and copy subtitles. Please wait.':'Скачиваю и копирую субтитры. Пожалуйста подождите.',
'International Check - First Run':'International Check - Первый запуск',
'Delete Russian stuff?':'Удалить русские трекеры?'
'Delete Russian stuff?':'Удалить русские трекеры?',
'Save to path':'Сохранить в папку',
}
}

View File

@ -86,7 +86,7 @@ class KickAssSo(SearcherABC.SearcherABC):
leechers = item.find('{%s}peers' % torrent).text
link = item.find('enclosure').attrib['url']
image = sys.modules["__main__"].__root__ + self.searchIcon
print link
#print link
filesList.append((
int(int(self.sourceWeight) * int(seeds)),
int(seeds), int(leechers), size,

View File

@ -106,7 +106,7 @@
</category>
<category label="Torrent-client">
<setting id="torrent_save" type="enum" label="50301" lvalues="50302|50303" default="0"/>
<setting id="torrent_dir" type="text" visible="eq(-1,1)" label="50304"/>
<setting id="torrent_dir" type="text" label="50304"/>
<setting id="torrent_replacement" type="folder" label="30426"/>
<setting type="sep"/>
<setting id="torrent" type="enum" label="50311" values="µTorrent|Transmission|Vuze (XML over HTTP plugin)"