aboutsummaryrefslogtreecommitdiff
path: root/multimedia/xvst/patches
diff options
context:
space:
mode:
Diffstat (limited to 'multimedia/xvst/patches')
-rw-r--r--multimedia/xvst/patches/chilloutzone.patch100
-rw-r--r--multimedia/xvst/patches/disable_update.patch17
-rw-r--r--multimedia/xvst/patches/myvideo.patch364
-rw-r--r--multimedia/xvst/patches/screen_yahoo.patch86
-rw-r--r--multimedia/xvst/patches/wat.tv.patch97
5 files changed, 664 insertions, 0 deletions
diff --git a/multimedia/xvst/patches/chilloutzone.patch b/multimedia/xvst/patches/chilloutzone.patch
new file mode 100644
index 0000000000000..142df550f578d
--- /dev/null
+++ b/multimedia/xvst/patches/chilloutzone.patch
@@ -0,0 +1,100 @@
+New plugin.
+Index: xvst-2.4.1/resources/services/chilloutzone/chilloutzone.js
+===================================================================
+--- /dev/null 1970-01-01 00:00:00.000000000 +0000
++++ xvst-2.4.1/resources/services/chilloutzone/chilloutzone.js 2011-10-15 22:40:55.982365314 +0200
+@@ -0,0 +1,93 @@
++/*
++*
++* This file is part of xVideoServiceThief,
++* an open-source cross-platform Video service download
++*
++* Copyright (C) 2007 - 2009 Xesc & Technology
++*
++* 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 xVideoServiceThief. If not, see <http://www.gnu.org/licenses/>.
++*
++* Contact e-mail: Xesc <xeskuu.xvst@gmail.com>
++* Program URL : http://xviservicethief.sourceforge.net/
++*
++*/
++
++function RegistVideoService()
++{
++ this.version = "1.0.0";
++ this.minVersion = "2.0.0a";
++ this.author = "crapmaster & Xesc & Technology 2009";
++ this.website = "http://www.chilloutzone.net";
++ this.ID = "chilloutzone.net";
++ this.caption = "chilloutzone";
++ this.adultContent = false;
++ this.musicSite = false;
++}
++
++function getVideoInformation(url)
++{
++ // video information
++ var result = new VideoDefinition();
++ // download webpage
++ var http = new Http();
++ var html = http.downloadWebpage(url);
++ // get video title
++ result.title = copyBetween(html, '<h3 id="content-player-head">', '</h3>');
++ // get the xml url
++ var xmlUrl = copyBetween(html, 'var MOVIE_LOC_PLAIN = "', '";');
++ // get url
++ result.URL=cleanUrl(xmlUrl);
++ // return the video information
++ return result;
++}
++
++function getVideoServiceIcon()
++{
++ return new Array(
++ 0x89,0x50,0x4e,0x47,0x0d,0x0a,0x1a,0x0a,0x00,0x00,0x00,0x0d,0x49,0x48,0x44,0x52,
++ 0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x10,0x08,0x06,0x00,0x00,0x00,0x1f,0xf3,0xff,
++ 0x61,0x00,0x00,0x00,0x01,0x73,0x52,0x47,0x42,0x00,0xae,0xce,0x1c,0xe9,0x00,0x00,
++ 0x00,0x06,0x62,0x4b,0x47,0x44,0x00,0xff,0x00,0xff,0x00,0xff,0xa0,0xbd,0xa7,0x93,
++ 0x00,0x00,0x00,0x09,0x70,0x48,0x59,0x73,0x00,0x00,0x0b,0x13,0x00,0x00,0x0b,0x13,
++ 0x01,0x00,0x9a,0x9c,0x18,0x00,0x00,0x00,0x07,0x74,0x49,0x4d,0x45,0x07,0xdb,0x0a,
++ 0x08,0x15,0x29,0x04,0x62,0xef,0x4c,0x6b,0x00,0x00,0x01,0xa6,0x49,0x44,0x41,0x54,
++ 0x38,0xcb,0xa5,0x93,0xbf,0x8a,0x14,0x41,0x10,0xc6,0x7f,0x5d,0xbd,0x3b,0x7f,0xd6,
++ 0xd3,0xf8,0xde,0x40,0x0d,0x14,0x0d,0x2e,0x31,0xd0,0xc8,0xc4,0xc0,0xc4,0x40,0x0f,
++ 0x8c,0x7d,0x81,0x0b,0x04,0xdf,0x41,0xd4,0xa7,0x38,0xd0,0xc8,0xc0,0x03,0x23,0x65,
++ 0x40,0xbd,0xbd,0x45,0x91,0x3d,0xc4,0x54,0x10,0xc5,0xc4,0x3d,0x0e,0x95,0xfd,0x33,
++ 0xdd,0x53,0x06,0xd5,0xbb,0x3b,0x2b,0x87,0x9c,0x58,0xd0,0x74,0x4d,0x57,0xd7,0x57,
++ 0x5f,0x7d,0x3d,0x05,0xff,0x69,0x0e,0x40,0x0f,0x6f,0x29,0x1a,0x20,0x44,0x08,0x0d,
++ 0xc4,0xe4,0xd7,0x11,0xea,0x90,0xd6,0x1f,0xfe,0xd7,0x12,0x77,0x7b,0xd7,0x75,0x00,
++ 0x88,0x23,0xb8,0xf3,0x02,0xbc,0x40,0x57,0x20,0x13,0xe8,0x38,0xc8,0x05,0xba,0x1e,
++ 0x72,0x67,0x67,0x65,0xfa,0x2e,0x84,0x77,0xcf,0xc7,0x54,0x55,0xa5,0x06,0x50,0x87,
++ 0x94,0xec,0xe0,0xdc,0x15,0xf0,0x0e,0x3e,0xbd,0xb2,0xa4,0xdc,0x41,0xee,0x0d,0x2c,
++ 0xb7,0x64,0x0a,0x4f,0x18,0x47,0x00,0xc4,0x00,0x62,0xba,0xec,0x6d,0xdf,0xda,0x81,
++ 0xeb,0xf7,0xe0,0xec,0x65,0x28,0x3b,0x50,0x7a,0x28,0x3c,0xf4,0x24,0xf9,0x42,0xfd,
++ 0xab,0x01,0x20,0x31,0x68,0xac,0x42,0x96,0x58,0x00,0x5c,0xbd,0x6b,0xfb,0xeb,0xfb,
++ 0xf0,0x6d,0x17,0x46,0x7d,0xbb,0x53,0x18,0x9b,0x30,0x6d,0x90,0x25,0x40,0x58,0xd2,
++ 0xec,0xca,0xaa,0xcc,0x97,0xb6,0x6c,0xdf,0x7f,0x04,0x07,0x7b,0xf0,0x63,0x60,0x00,
++ 0x13,0x25,0x5b,0x00,0xcc,0xa2,0xf5,0x36,0xaf,0xd0,0xb6,0xf7,0x0f,0xe1,0x7b,0x1f,
++ 0x0e,0x07,0x8b,0xfe,0xc9,0x85,0x38,0x6d,0xb7,0x30,0x0b,0x16,0x28,0x92,0x06,0x00,
++ 0x6f,0x1f,0x58,0xe2,0x68,0xcf,0xce,0xe7,0x3a,0x24,0x51,0xeb,0x89,0x52,0xae,0x30,
++ 0xe8,0x79,0xc8,0x12,0xc0,0xb3,0x9b,0x70,0xd0,0xb7,0xb6,0x7a,0x7e,0xa9,0xfe,0xfc,
++ 0x25,0x72,0x21,0xcc,0x56,0x18,0xd4,0x89,0x81,0x58,0x9f,0x99,0x98,0xfa,0x99,0x4b,
++ 0x6f,0x3f,0x4f,0x4e,0x2b,0x83,0x66,0xa6,0x2d,0x80,0x2f,0x27,0x18,0xbe,0xf9,0x4c,
++ 0x3d,0x6e,0x88,0x13,0x08,0x53,0x65,0x6d,0xdd,0x73,0xfe,0xc6,0x19,0x38,0xf5,0x73,
++ 0x51,0xfd,0xe9,0xb5,0x8f,0xc4,0x5a,0x69,0x6a,0x45,0x9b,0xd6,0xaf,0xfc,0x37,0xd3,
++ 0xed,0x0d,0xe5,0xf4,0x14,0x4e,0x0a,0x4f,0x2e,0x0e,0x59,0xdf,0x79,0xf9,0xef,0x03,
++ 0xa3,0xdb,0x1b,0xaa,0x1f,0x2e,0xe8,0xe3,0x35,0xd1,0xaa,0xaa,0xb4,0x1d,0x93,0x63,
++ 0x4d,0xdc,0xe6,0xc0,0x31,0xec,0x1e,0x19,0x93,0x63,0x8f,0xed,0xe6,0xc0,0x1d,0x45,
++ 0xff,0x37,0x2f,0x00,0x9b,0x4b,0xdd,0xfa,0x20,0xe7,0x00,0x00,0x00,0x00,0x49,0x45,
++ 0x4e,0x44,0xae,0x42,0x60,0x82);
++}
+\ No newline at end of file
diff --git a/multimedia/xvst/patches/disable_update.patch b/multimedia/xvst/patches/disable_update.patch
new file mode 100644
index 0000000000000..2ae5ed743df74
--- /dev/null
+++ b/multimedia/xvst/patches/disable_update.patch
@@ -0,0 +1,17 @@
+The update will not work anyway.
+Index: xvst-2.5/src/options.cpp
+===================================================================
+--- xvst-2.5.orig/src/options.cpp 2013-05-26 23:50:04.203059123 +0200
++++ xvst-2.5/src/options.cpp 2013-05-26 23:50:04.199059123 +0200
+@@ -349,9 +349,9 @@
+
+ languageFile = LanguageManager::getDefaultUserLanguage(getLanguagesPath()); // "english_uk.language";
+
+- installAutomaticallyUpdates = true;
++ installAutomaticallyUpdates = false;
+ lastUpdate = QDate(2007, 01, 01);
+- checkForUpdatesOnStartup = true;
++ checkForUpdatesOnStartup = false;
+ checkForUpdatesEvery = 1;
+
+ displayBugReport = true;
diff --git a/multimedia/xvst/patches/myvideo.patch b/multimedia/xvst/patches/myvideo.patch
new file mode 100644
index 0000000000000..adab701d0eda9
--- /dev/null
+++ b/multimedia/xvst/patches/myvideo.patch
@@ -0,0 +1,364 @@
+Update myvideo plugin.
+Index: xvst-2.4.1/resources/services/myvideo/myvideo.js
+===================================================================
+--- xvst-2.4.1.orig/resources/services/myvideo/myvideo.js 2011-10-15 22:31:29.502370150 +0200
++++ xvst-2.4.1/resources/services/myvideo/myvideo.js 2011-10-15 22:31:42.338370040 +0200
+@@ -1,179 +1,179 @@
+-/*
+-*
+-* This file is part of xVideoServiceThief,
+-* an open-source cross-platform Video service download
+-*
+-* Copyright (C) 2007 - 2009 Xesc & Technology
+-*
+-* 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 xVideoServiceThief. If not, see <http://www.gnu.org/licenses/>.
+-*
+-* Contact e-mail: Xesc <xeskuu.xvst@gmail.com>
+-* Program URL : http://xviservicethief.sourceforge.net/
+-*
+-*/
+-
+-function RegistVideoService()
+-{
+- this.version = "2.0.0";
+- this.minVersion = "2.0.0a";
+- this.author = "Xesc & Technology 2009";
+- this.website = "http://www.myvideo.de/";
+- this.ID = "myvideo.de";
+- this.caption = "MyVideo";
+- this.adultContent = false;
+- this.musicSite = false;
+-}
+-
+-function getVideoInformation(url)
+-{
+- const URL_FLV = "%1/%2.flv";
+- // video information
+- var result = new VideoDefinition();
+- // download webpage
+- var http = new Http();
+- var html = http.downloadWebpage(url);
+- // get the flv url and params
+- var path = copyBetween(html, "<link rel='image_src' href='", "/thumbs");
+- var vidId = copyBetween(html, path + "/thumbs/", "_");
+- // get the video title
+- result.title = copyBetween(html, "entry-title'>", "</a>");
+- // build final url
+- result.URL = strFormat(URL_FLV, path, vidId);
+- // get cookies
+- result.cookies = http.getCookies("|");
+- // return the video information
+- return result;
+-}
+-
+-function searchVideos(keyWord, pageIndex)
+-{
+- const URL_SEARCH = "http://www.myvideo.de/Videos_A-Z?lpage=%2&searchWord=%1&searchOrder=0";
+- const HTML_SEARCH_START = "<table class='body sCenter vl_newMargin'>"; //'<div class="lBox lLeftBox globalBxBorder globalBx video_list">';
+- const HTML_SEARCH_FINISH = '</table>'; //"</body>";
+- const HTML_SEARCH_SEPARATOR = "<td class='body sTLeft hslice entry-content vCont' id='slice_";
+- // replace all spaces for "+"
+- keyWord = strReplace(keyWord, " ", "+");
+- // init search results object
+- var searchResults = new SearchResults();
+- // init http object
+- var http = new Http();
+- var html = http.downloadWebpage(strFormat(URL_SEARCH, keyWord, pageIndex, searchResults.getUserLanguage()));
+- // get the search summary
+- var tmp = copyBetween(html, '<td> Dein Ergebnis', '</td>');
+- var summary = "Dein Ergebnis" + copyBetween(tmp, "<span class='sWord'>", "'");
+- var tmp = copyBetween(html, "<span class='pView pnPages'>", "</span>");
+- var summary = summary + " " + tmp
+- var tmp = copyBetween(html, "<span class='pView pnResults'>", "</span>");
+- var summary = summary + " " + tmp
+- searchResults.setSummary(summary);
+- // get results html block
+- var htmlResults = copyBetween(html, HTML_SEARCH_START, HTML_SEARCH_FINISH);
+- // if we found some results then...
+- if (htmlResults != "")
+- {
+- var block = "";
+- // iterate over results
+- while ((block = copyBetween(htmlResults, HTML_SEARCH_SEPARATOR, HTML_SEARCH_SEPARATOR)) != "")
+- {
+- parseResultItem(searchResults, block);
+- htmlResults = strRemove(htmlResults, 0, block.toString().length);
+- }
+- // get last result
+- parseResultItem(searchResults, htmlResults);
+- }
+- // return search results
+- return searchResults;
+-}
+-
+-function parseResultItem(searchResults, html)
+-{
+- const VIDEO_URL = "http://www.myvideo.de";
+- // vars
+- var tmp, videoUrl, imageUrl, title, description, duration, rating;
+- // get title and image url
+- tmp = copyBetween(html, "<div class='vThumb'>", '</div>') ;
+- title = copyBetween(tmp, "title='", "'");
+- imageUrl = copyBetween(tmp, "src='", "'");
+- // get video url
+- videoUrl = VIDEO_URL + copyBetween(tmp, "href='", "'");
+- //if (strIndexOf(imageUrl, "default.jpg") == -1) // if is not a "default.jpg"...
+- // imageUrl = copyBetween(tmp, 'thumb="', '"');
+- // get video description
+- tmp = copyBetween(html, "<div class='sCenter vTitle'>", '</div>') ;
+- description = copyBetween(tmp, "<span class='hidden'>", '</span>');
+- // get video duration
+- tmp = copyBetween(html, ' Lnge ', '/span>');
+- duration = convertToSeconds(copyBetween(tmp, "> ", '<'));
+- // get rating
+- rating = getrating(copyBetween(html, 'ratingBox', '</div>'));
+- // add to results list
+- searchResults.addSearchResult(videoUrl, imageUrl, title, description, duration, rating);
+-}
+-
+-function getrating(text)
+-{
+- var rating = 0
+- var i = 1
+- while (i < 6)
+- {
+- var part = getToken(text, '<img',i);
+- if (strIndexOf(part,"m_star_red_0.gif") != -1)
+- {
+- rating = rating + 1
+- }
+- if (strIndexOf(part,"m_star_half_0.gif") != -1)
+- {
+- rating = rating + 0.5
+- }
+- i++
+- }
+- return rating;
+-}
+-
+-function convertToSeconds(text)
+-{
+- // how many ":" exists?
+- var count = getTokenCount(text, ":");
+- // get mins and seconds
+- var h = new Number(h = count == 3 ? getToken(text, ":", 0) * 3600 : 0);
+- var m = new Number(getToken(text, ":", count - 2) * 60);
+- var s = new Number(getToken(text, ":", count - 1));
+- // convert h:m:s to seconds
+- return h + m + s;
+-}
+-
+-function getVideoServiceIcon()
+-{
+- return new Array(
+- 0x89,0x50,0x4e,0x47,0x0d,0x0a,0x1a,0x0a,0x00,0x00,0x00,0x0d,0x49,0x48,0x44,0x52,
+- 0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x10,0x08,0x03,0x00,0x00,0x00,0x28,0x2d,0x0f,
+- 0x53,0x00,0x00,0x00,0x66,0x50,0x4c,0x54,0x45,0x3d,0x88,0xe5,0x49,0x8f,0xe7,0x55,
+- 0x97,0xe8,0x61,0x9e,0xea,0x62,0x9e,0xea,0x6e,0xa6,0xec,0x7a,0xad,0xed,0x85,0xb5,
+- 0xee,0x86,0xb5,0xef,0x92,0xbc,0xf0,0x9e,0xc3,0xf2,0x9e,0xc4,0xf2,0xaa,0xcb,0xf4,
+- 0xb6,0xd2,0xf5,0xc2,0xda,0xf7,0xce,0xe1,0xf8,0xda,0xe9,0xfa,0xdb,0xe9,0xfa,0xe7,
+- 0xf0,0xfc,0xf3,0xf8,0xfd,0xff,0x66,0x00,0xff,0x70,0x10,0xff,0x79,0x20,0xff,0x8c,
+- 0x40,0xff,0x96,0x50,0xff,0x9f,0x60,0xff,0xb3,0x80,0xff,0xbc,0x8f,0xff,0xc6,0x9f,
+- 0xff,0xcf,0xaf,0xff,0xd9,0xbf,0xff,0xec,0xe0,0xff,0xf5,0xef,0xff,0xff,0xff,0x48,
+- 0xd7,0xaa,0x42,0x00,0x00,0x00,0x8c,0x49,0x44,0x41,0x54,0x18,0x19,0x05,0xc1,0x09,
+- 0x42,0xc2,0x30,0x14,0x05,0xc0,0x17,0x4a,0x2b,0x01,0x0a,0x4a,0x3e,0x54,0x71,0x9d,
+- 0xfb,0x5f,0xd2,0x99,0x60,0xf4,0x96,0x76,0x1c,0x40,0x18,0xfb,0xec,0xfa,0x69,0xda,
+- 0x0f,0x10,0x96,0x2c,0xe3,0x36,0xac,0x0b,0x88,0xd7,0xec,0xc6,0x5b,0x47,0xbf,0x42,
+- 0xf4,0x9c,0x2d,0xc3,0xb7,0x71,0x80,0x98,0x73,0x33,0xb3,0x3d,0x7e,0x4e,0x10,0x2d,
+- 0xec,0xd8,0xaa,0xde,0x7f,0x11,0x09,0xad,0xdb,0xaa,0xea,0xfe,0x49,0x24,0xf4,0xd8,
+- 0xaa,0xaa,0xea,0x43,0xcc,0xb9,0x19,0x93,0xad,0xaa,0x1e,0x5f,0xc4,0x21,0x2b,0x6c,
+- 0x75,0x7f,0x42,0xac,0x99,0x61,0x7b,0xfe,0xbd,0x40,0x8c,0x96,0x0b,0x38,0x1f,0x21,
+- 0x9c,0xd3,0x2e,0x58,0xdb,0x80,0xe0,0x90,0x4c,0xf3,0x94,0x0b,0x08,0x1c,0x5b,0xb2,
+- 0xbf,0x02,0xff,0xae,0x67,0x16,0x49,0x16,0x8a,0x4e,0x0f,0x00,0x00,0x00,0x00,0x49,
+- 0x45,0x4e,0x44,0xae,0x42,0x60,0x82);
+-}
++/*
++*
++* This file is part of xVideoServiceThief,
++* an open-source cross-platform Video service download
++*
++* Copyright (C) 2007 - 2009 Xesc & Technology
++*
++* 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 xVideoServiceThief. If not, see <http://www.gnu.org/licenses/>.
++*
++* Contact e-mail: Xesc <xeskuu.xvst@gmail.com>
++* Program URL : http://xviservicethief.sourceforge.net/
++*
++*/
++
++function RegistVideoService()
++{
++ this.version = "2.0.1";
++ this.minVersion = "2.0.0a";
++ this.author = "Xesc & Technology 2009";
++ this.website = "http://www.myvideo.de/";
++ this.ID = "myvideo.de";
++ this.caption = "MyVideo";
++ this.adultContent = false;
++ this.musicSite = false;
++}
++
++function getVideoInformation(url)
++{
++ const URL_FLV = "%1/%2.flv";
++ // video information
++ var result = new VideoDefinition();
++ // download webpage
++ var http = new Http();
++ var html = http.downloadWebpage(url);
++ // get the flv url and params
++ var path = copyBetween(html, "<link rel='image_src' href='", "/thumbs");
++ var vidId = copyBetween(html, path + "/thumbs/", "_");
++ // get the video title
++ result.title = copyBetween(html, "<h1 class='globalHd'>", "</h1>");
++ // build final url
++ result.URL = strFormat(URL_FLV, path, vidId);
++ // get cookies
++ result.cookies = http.getCookies("|");
++ // return the video information
++ return result;
++}
++
++function searchVideos(keyWord, pageIndex)
++{
++ const URL_SEARCH = "http://www.myvideo.de/Videos_A-Z?lpage=%2&searchWord=%1&searchOrder=0";
++ const HTML_SEARCH_START = "<table class='body sCenter vl_newMargin'>"; //'<div class="lBox lLeftBox globalBxBorder globalBx video_list">';
++ const HTML_SEARCH_FINISH = '</table>'; //"</body>";
++ const HTML_SEARCH_SEPARATOR = "<td class='body sTLeft hslice entry-content vCont' id='slice_";
++ // replace all spaces for "+"
++ keyWord = strReplace(keyWord, " ", "+");
++ // init search results object
++ var searchResults = new SearchResults();
++ // init http object
++ var http = new Http();
++ var html = http.downloadWebpage(strFormat(URL_SEARCH, keyWord, pageIndex, searchResults.getUserLanguage()));
++ // get the search summary
++ var tmp = copyBetween(html, '<td> Dein Ergebnis', '</td>');
++ var summary = "Dein Ergebnis" + copyBetween(tmp, "<span class='sWord'>", "'");
++ var tmp = copyBetween(html, "<span class='pView pnPages'>", "</span>");
++ var summary = summary + " " + tmp
++ var tmp = copyBetween(html, "<span class='pView pnResults'>", "</span>");
++ var summary = summary + " " + tmp
++ searchResults.setSummary(summary);
++ // get results html block
++ var htmlResults = copyBetween(html, HTML_SEARCH_START, HTML_SEARCH_FINISH);
++ // if we found some results then...
++ if (htmlResults != "")
++ {
++ var block = "";
++ // iterate over results
++ while ((block = copyBetween(htmlResults, HTML_SEARCH_SEPARATOR, HTML_SEARCH_SEPARATOR)) != "")
++ {
++ parseResultItem(searchResults, block);
++ htmlResults = strRemove(htmlResults, 0, block.toString().length);
++ }
++ // get last result
++ parseResultItem(searchResults, htmlResults);
++ }
++ // return search results
++ return searchResults;
++}
++
++function parseResultItem(searchResults, html)
++{
++ const VIDEO_URL = "http://www.myvideo.de";
++ // vars
++ var tmp, videoUrl, imageUrl, title, description, duration, rating;
++ // get title and image url
++ tmp = copyBetween(html, "<div class='vThumb'>", '</div>') ;
++ title = copyBetween(tmp, "title='", "'");
++ imageUrl = copyBetween(tmp, "src='", "'");
++ // get video url
++ videoUrl = VIDEO_URL + copyBetween(tmp, "href='", "'");
++ //if (strIndexOf(imageUrl, "default.jpg") == -1) // if is not a "default.jpg"...
++ // imageUrl = copyBetween(tmp, 'thumb="', '"');
++ // get video description
++ tmp = copyBetween(html, "<div class='sCenter vTitle'>", '</div>') ;
++ description = copyBetween(tmp, "<span class='hidden'>", '</span>');
++ // get video duration
++ tmp = copyBetween(html, ' Lnge ', '/span>');
++ duration = convertToSeconds(copyBetween(tmp, "> ", '<'));
++ // get rating
++ rating = getrating(copyBetween(html, 'ratingBox', '</div>'));
++ // add to results list
++ searchResults.addSearchResult(videoUrl, imageUrl, title, description, duration, rating);
++}
++
++function getrating(text)
++{
++ var rating = 0
++ var i = 1
++ while (i < 6)
++ {
++ var part = getToken(text, '<img',i);
++ if (strIndexOf(part,"m_star_red_0.gif") != -1)
++ {
++ rating = rating + 1
++ }
++ if (strIndexOf(part,"m_star_half_0.gif") != -1)
++ {
++ rating = rating + 0.5
++ }
++ i++
++ }
++ return rating;
++}
++
++function convertToSeconds(text)
++{
++ // how many ":" exists?
++ var count = getTokenCount(text, ":");
++ // get mins and seconds
++ var h = new Number(h = count == 3 ? getToken(text, ":", 0) * 3600 : 0);
++ var m = new Number(getToken(text, ":", count - 2) * 60);
++ var s = new Number(getToken(text, ":", count - 1));
++ // convert h:m:s to seconds
++ return h + m + s;
++}
++
++function getVideoServiceIcon()
++{
++ return new Array(
++ 0x89,0x50,0x4e,0x47,0x0d,0x0a,0x1a,0x0a,0x00,0x00,0x00,0x0d,0x49,0x48,0x44,0x52,
++ 0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x10,0x08,0x03,0x00,0x00,0x00,0x28,0x2d,0x0f,
++ 0x53,0x00,0x00,0x00,0x66,0x50,0x4c,0x54,0x45,0x3d,0x88,0xe5,0x49,0x8f,0xe7,0x55,
++ 0x97,0xe8,0x61,0x9e,0xea,0x62,0x9e,0xea,0x6e,0xa6,0xec,0x7a,0xad,0xed,0x85,0xb5,
++ 0xee,0x86,0xb5,0xef,0x92,0xbc,0xf0,0x9e,0xc3,0xf2,0x9e,0xc4,0xf2,0xaa,0xcb,0xf4,
++ 0xb6,0xd2,0xf5,0xc2,0xda,0xf7,0xce,0xe1,0xf8,0xda,0xe9,0xfa,0xdb,0xe9,0xfa,0xe7,
++ 0xf0,0xfc,0xf3,0xf8,0xfd,0xff,0x66,0x00,0xff,0x70,0x10,0xff,0x79,0x20,0xff,0x8c,
++ 0x40,0xff,0x96,0x50,0xff,0x9f,0x60,0xff,0xb3,0x80,0xff,0xbc,0x8f,0xff,0xc6,0x9f,
++ 0xff,0xcf,0xaf,0xff,0xd9,0xbf,0xff,0xec,0xe0,0xff,0xf5,0xef,0xff,0xff,0xff,0x48,
++ 0xd7,0xaa,0x42,0x00,0x00,0x00,0x8c,0x49,0x44,0x41,0x54,0x18,0x19,0x05,0xc1,0x09,
++ 0x42,0xc2,0x30,0x14,0x05,0xc0,0x17,0x4a,0x2b,0x01,0x0a,0x4a,0x3e,0x54,0x71,0x9d,
++ 0xfb,0x5f,0xd2,0x99,0x60,0xf4,0x96,0x76,0x1c,0x40,0x18,0xfb,0xec,0xfa,0x69,0xda,
++ 0x0f,0x10,0x96,0x2c,0xe3,0x36,0xac,0x0b,0x88,0xd7,0xec,0xc6,0x5b,0x47,0xbf,0x42,
++ 0xf4,0x9c,0x2d,0xc3,0xb7,0x71,0x80,0x98,0x73,0x33,0xb3,0x3d,0x7e,0x4e,0x10,0x2d,
++ 0xec,0xd8,0xaa,0xde,0x7f,0x11,0x09,0xad,0xdb,0xaa,0xea,0xfe,0x49,0x24,0xf4,0xd8,
++ 0xaa,0xaa,0xea,0x43,0xcc,0xb9,0x19,0x93,0xad,0xaa,0x1e,0x5f,0xc4,0x21,0x2b,0x6c,
++ 0x75,0x7f,0x42,0xac,0x99,0x61,0x7b,0xfe,0xbd,0x40,0x8c,0x96,0x0b,0x38,0x1f,0x21,
++ 0x9c,0xd3,0x2e,0x58,0xdb,0x80,0xe0,0x90,0x4c,0xf3,0x94,0x0b,0x08,0x1c,0x5b,0xb2,
++ 0xbf,0x02,0xff,0xae,0x67,0x16,0x49,0x16,0x8a,0x4e,0x0f,0x00,0x00,0x00,0x00,0x49,
++ 0x45,0x4e,0x44,0xae,0x42,0x60,0x82);
++}
diff --git a/multimedia/xvst/patches/screen_yahoo.patch b/multimedia/xvst/patches/screen_yahoo.patch
new file mode 100644
index 0000000000000..2db869e200354
--- /dev/null
+++ b/multimedia/xvst/patches/screen_yahoo.patch
@@ -0,0 +1,86 @@
+# new version
+Index: xvst-2.5/resources/services/yahoovideo/yahoovideo.js
+===================================================================
+--- xvst-2.5.orig/resources/services/yahoovideo/yahoovideo.js 2013-02-25 19:37:11.000000000 +0100
++++ xvst-2.5/resources/services/yahoovideo/yahoovideo.js 2013-09-09 18:48:45.076024563 +0200
+@@ -25,11 +25,11 @@
+
+ function RegistVideoService()
+ {
+- this.version = "1.0.0";
++ this.version = "1.1.0";
+ this.minVersion = "2.0.0a";
+- this.author = "Xesc & Technology 2009";
+- this.website = "http://video.yahoo.com/";
+- this.ID = "video.yahoo.com";
++ this.author = "anon";
++ this.website = "http://screen.yahoo.com/";
++ this.ID = "screen.yahoo.com";
+ this.caption = "Yahoo Video";
+ this.adultContent = false;
+ this.musicSite = false;
+@@ -37,30 +37,46 @@
+
+ function getVideoInformation(url)
+ {
+- const URL_GET_XML = "http://cosmos.bcst.yahoo.com/up/yep/process/getPlaylistFOP.php?node_id=%1&tech=flash&mode=playlist&bitrate=300&null&rd=video.yahoo.com&tk=null";
++ var url_get_json ="http://video.query.yahoo.com/v1/public/yql?q=SELECT streams FROM yahoo.media.video.streams WHERE id=\"%1\" AND plrs=\"\" AND protocol=\"http\" AND region=\"%2\";&env=prod&format=json";
+ // init result
+ var result = new VideoDefinition();
+ // download webpage
+ var http = new Http();
+ var html = http.downloadWebpage(url);
+ // get video title
+- result.title = copyBetween(html, "<meta name=\"title\" content=\"", "\"");
+- // if we didn't get a title, try to get the channel video title
+- if (result.title == "")
+- result.title = copyBetween(html, "<h2 id=\"nvi_title\">", "</h2>");
++ var title = copyBetween(html, "<title>", "</title>");
++ //if we have the ?format=embed parameter added, the | is missing
++ if (title.toString().indexOf(" |") != -1)
++ title = copyBetween(title, "", " |");
++ result.title = title;
+ // get the node_id
+- var node_id = copyBetween(html, "so.addVariable(\"id\", \"", "\"");
+- // download xml
+- var xml = http.downloadWebpage(strFormat(URL_GET_XML, node_id));
++ var node_id = copyBetween(html, "\"id\":\"", "\"");
++ // get the region
++ var region = copyBetween(html, "region: \'", "\'");
++ // download json
++ var jsonstr = http.downloadWebpage(strFormat(url_get_json, node_id, region));
++ var json = JSON.parse(jsonstr);
++ var streams = json.query.results.mediaObj[0].streams;
++ var streamindex = streams.length - 1; //the streams are sorted by quality. highest is last.
+ // get video host and path
+- var host = copyBetween(xml, "<STREAM APP=\"", "\"");
+- var path = copyBetween(xml, "FULLPATH=\"", "\"");
++ var host = streams[streamindex].host; //copyBetween(json, "\"host\":\"", "\"");
++ var path = streams[streamindex].path; //copyBetween(json, "\"path\":\"", "\"")
+ // set video URL
+- result.URL = strReplace(host + path, "&amp;", "&");
++ result.URL = host + path; //take the video with highest quality
++ result.extension = extensionFromVideoType(streams[streamindex].mime_type);
+ // return the video information
+ return result;
+ }
+
++function extensionFromVideoType(vtype)
++{
++ if (vtype == "video/x-flv") return ".flv";
++ if (vtype == "video/mp4") return ".mp4";
++ if (vtype == "video/webm") return ".webm";
++ // default extension
++ return ".flv";
++}
++
+ function getVideoServiceIcon()
+ {
+ return new Array(
+@@ -72,4 +88,4 @@
+ 0x30,0xec,0x01,0xc4,0xcb,0x70,0x47,0x10,0x2e,0x33,0x20,0x5b,0xb2,0xbd,0x58,0x9c,
+ 0xfa,0x5b,0x0d,0x9a,0xe5,0x10,0xb3,0x3f,0x33,0x07,0xa6,0xb3,0x7e,0x82,0xcd,0x2f,
+ 0x11,0x53,0x00,0x00,0x00,0x00,0x49,0x45,0x4e,0x44,0xae,0x42,0x60,0x82);
+-}
++}
+\ No newline at end of file
diff --git a/multimedia/xvst/patches/wat.tv.patch b/multimedia/xvst/patches/wat.tv.patch
new file mode 100644
index 0000000000000..67eca10b9fbab
--- /dev/null
+++ b/multimedia/xvst/patches/wat.tv.patch
@@ -0,0 +1,97 @@
+# New plugin version
+Index: xvst-2.5/resources/services/wat/wat.js
+===================================================================
+--- xvst-2.5.orig/resources/services/wat/wat.js 2013-02-25 19:37:11.758387000 +0100
++++ xvst-2.5/resources/services/wat/wat.js 2013-05-27 01:03:49.342927487 +0200
+@@ -3,7 +3,7 @@
+ * This file is part of xVideoServiceThief,
+ * an open-source cross-platform Video service download
+ *
+-* Copyright (C) 2007 - 2011 Xesc & Technology
++* Copyright (C) 2007 - 2009 Xesc & Technology
+ *
+ * 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
+@@ -25,9 +25,9 @@
+
+ function RegistVideoService()
+ {
+- this.version = "1.0.4";
++ this.version = "1.0.2";
+ this.minVersion = "2.0.0a";
+- this.author = "Xesc & Technology 2011";
++ this.author = "Xesc & Technology 2009";
+ this.website = "http://www.wat.tv/";
+ this.ID = "wat.tv";
+ this.caption = "Wat.tv";
+@@ -45,7 +45,7 @@
+ var http = new Http();
+ var html = http.downloadWebpage(url);
+ // get video title
+- result.title = copyBetween(html, "'title" content="', '"');
++ result.title = copyBetween(html, "<h2 class=\"title\">", "</h2>");
+ // get video id
+ var vidId = copyBetween(html, 'id="media" value="', '"');
+ // download video info
+@@ -61,17 +61,48 @@
+ {
+ return new Array(
+ 0x89,0x50,0x4e,0x47,0x0d,0x0a,0x1a,0x0a,0x00,0x00,0x00,0x0d,0x49,0x48,0x44,0x52,
+- 0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x10,0x08,0x03,0x00,0x00,0x00,0x28,0x2d,0x0f,
+- 0x53,0x00,0x00,0x00,0x2a,0x50,0x4c,0x54,0x45,0xff,0xff,0xfd,0xff,0xc4,0xf6,0xff,
+- 0x66,0xe2,0xff,0x86,0xea,0xff,0xec,0xfc,0xff,0x57,0xe2,0xff,0x00,0xcf,0xff,0xad,
+- 0xef,0xff,0xfd,0xff,0xff,0x2c,0xd5,0xff,0x98,0xec,0xff,0x42,0xdb,0xff,0x76,0xe6,
+- 0xff,0xd8,0xf6,0x42,0x91,0xbf,0xbc,0x00,0x00,0x00,0x69,0x49,0x44,0x41,0x54,0x78,
+- 0xda,0x9d,0x8d,0xdb,0x0e,0xc0,0x20,0x08,0x43,0x51,0x2e,0x82,0xba,0xff,0xff,0xdd,
+- 0x15,0xe2,0xb2,0x3d,0xaf,0x90,0xa6,0x1c,0x9b,0x48,0x3f,0xd4,0x3a,0xcb,0x93,0x85,
+- 0x7b,0x23,0x35,0x1b,0xc8,0xee,0xb0,0x61,0xa6,0x00,0x01,0x20,0xbd,0x4b,0x81,0x38,
+- 0x8d,0x69,0xc6,0x07,0xac,0x04,0xbe,0x0f,0x88,0x95,0x8d,0x4d,0x0e,0x57,0x27,0x86,
+- 0x67,0xcd,0x26,0x12,0x2a,0x33,0x23,0x49,0xd8,0x57,0x42,0xd4,0x8a,0x84,0x96,0x8f,
+- 0xfc,0xfd,0xda,0xb1,0x58,0x84,0x35,0x76,0xc3,0xe9,0x98,0xaf,0xde,0xf3,0x25,0x10,
+- 0xd5,0xd6,0xdb,0x0d,0x8b,0x51,0x03,0x7a,0x88,0x11,0x0f,0x52,0x00,0x00,0x00,0x00,
+- 0x49,0x45,0x4e,0x44,0xae,0x42,0x60,0x82);
++ 0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x10,0x08,0x02,0x00,0x00,0x00,0x90,0x91,0x68,
++ 0x36,0x00,0x00,0x01,0x2f,0x69,0x43,0x43,0x50,0x49,0x43,0x43,0x20,0x50,0x72,0x6f,
++ 0x66,0x69,0x6c,0x65,0x00,0x00,0x78,0x01,0x63,0x60,0x60,0x32,0x70,0x74,0x71,0x72,
++ 0x65,0x12,0x60,0x60,0xc8,0xcd,0x2b,0x29,0x0a,0x72,0x77,0x52,0x88,0x88,0x8c,0x52,
++ 0x60,0xbf,0xc0,0xc0,0xc1,0xc0,0xcd,0x20,0xcc,0x60,0xcc,0x60,0x9d,0x98,0x5c,0x5c,
++ 0xe0,0x18,0x10,0xe0,0xc3,0x00,0x04,0x79,0xf9,0x79,0xa9,0x20,0x1a,0x15,0x7c,0xbb,
++ 0xc6,0xc0,0x08,0x12,0xb9,0xac,0x0b,0x32,0x0b,0x55,0x8e,0x20,0x8f,0x2b,0xb9,0xa0,
++ 0xa8,0x04,0xa8,0xea,0x0f,0x10,0x1b,0xa5,0xa4,0x16,0x27,0x33,0x30,0x30,0x1a,0x00,
++ 0xd9,0xd9,0xe5,0x25,0x05,0x40,0x71,0xc6,0x39,0x40,0xb6,0x48,0x52,0x36,0x98,0xbd,
++ 0x01,0xc4,0x2e,0x0a,0x09,0x72,0x06,0x8a,0x1f,0x01,0xb2,0xf9,0xd2,0x21,0xec,0x2b,
++ 0x20,0x76,0x12,0x84,0xfd,0x04,0xc4,0x2e,0x02,0x7a,0x02,0xa8,0xe6,0x0b,0x48,0x7d,
++ 0x3a,0x98,0xcd,0xc4,0x01,0x62,0x27,0x41,0xd8,0x32,0x20,0x76,0x49,0x6a,0x05,0xc8,
++ 0x5e,0x06,0xe7,0xfc,0x82,0xca,0xa2,0xcc,0xf4,0x8c,0x12,0x05,0x23,0x03,0x03,0x03,
++ 0x05,0xc7,0x94,0xfc,0xa4,0x54,0x85,0xe0,0xca,0xe2,0x92,0xd4,0xdc,0x62,0x05,0xcf,
++ 0xbc,0xe4,0xfc,0xa2,0x82,0xfc,0xa2,0xc4,0x92,0xd4,0x14,0xa0,0x5a,0x88,0xfb,0x40,
++ 0xba,0x18,0x04,0x21,0x0a,0x41,0x21,0xa6,0x61,0x68,0x69,0x69,0xa1,0x09,0x16,0xa5,
++ 0x22,0x01,0x8a,0x07,0x88,0x71,0x9f,0x03,0xc1,0xe1,0xcb,0x28,0x76,0x06,0x21,0x86,
++ 0xb0,0x28,0xb9,0xb4,0xa8,0x0c,0xca,0x63,0x64,0x32,0x66,0x60,0x20,0xc4,0x47,0x98,
++ 0x31,0x47,0x82,0x81,0xc1,0x7f,0x29,0x03,0x03,0xcb,0x1f,0x84,0x98,0x49,0x2f,0x03,
++ 0xc3,0x02,0x1d,0x06,0x06,0xfe,0xa9,0x08,0x31,0x35,0x43,0x06,0x06,0x01,0x7d,0x06,
++ 0x86,0x7d,0x73,0x00,0xc3,0xaf,0x50,0x6f,0xe6,0xb3,0xe5,0xe9,0x00,0x00,0x00,0x09,
++ 0x70,0x48,0x59,0x73,0x00,0x00,0x0b,0x13,0x00,0x00,0x0b,0x13,0x01,0x00,0x9a,0x9c,
++ 0x18,0x00,0x00,0x01,0x3c,0x49,0x44,0x41,0x54,0x28,0x15,0x63,0xfc,0xff,0xff,0x2f,
++ 0x03,0x29,0x80,0x89,0x14,0xc5,0x20,0xb5,0x24,0x6b,0x60,0x61,0x38,0xfa,0x93,0x61,
++ 0xd1,0x1b,0x06,0x05,0x0e,0x86,0x34,0x21,0x06,0x61,0x46,0xec,0x16,0xbe,0xfd,0xcf,
++ 0x30,0xeb,0x1d,0xc3,0x83,0x1f,0x0c,0x71,0x22,0x2c,0x0c,0x93,0xdf,0x30,0xac,0x7c,
++ 0x0b,0x52,0xa7,0xce,0xca,0x10,0xc4,0x07,0xd5,0xf0,0x0f,0x6c,0x33,0xd3,0x3f,0x28,
++ 0xf7,0xe0,0x67,0x86,0xaa,0xa7,0x20,0xf6,0x47,0xb8,0x93,0x74,0xd8,0xa0,0x72,0x40,
++ 0x0a,0x68,0x5e,0xe6,0x63,0x10,0x02,0x32,0xd0,0xc0,0xd5,0xcf,0x2c,0x50,0x91,0x2b,
++ 0xbf,0x10,0x52,0x6b,0x3e,0x30,0xcc,0x02,0xdb,0x09,0x74,0x67,0xa5,0x30,0x42,0x1c,
++ 0xcc,0x62,0x62,0x78,0xfd,0x13,0x45,0x08,0xe8,0x98,0x7b,0x48,0x9a,0x91,0xe5,0x80,
++ 0xae,0x10,0x63,0x63,0x62,0x10,0x65,0x87,0x0a,0x9e,0xfc,0x0e,0x65,0x3c,0xfc,0x03,
++ 0x65,0x5c,0xfc,0xc1,0x00,0xf1,0xcc,0xcd,0xdf,0x20,0x11,0xa0,0x2b,0x44,0xd9,0x59,
++ 0x18,0xc2,0x78,0xa1,0x9e,0xee,0x7a,0xc9,0xa0,0xc4,0xc6,0xf0,0xee,0x1f,0x94,0x0b,
++ 0x54,0x01,0x0c,0x0c,0x7d,0x0e,0x06,0x21,0x26,0xa8,0x8f,0x81,0x22,0x8e,0x5c,0x8c,
++ 0xff,0xdf,0xfc,0x61,0x70,0xb8,0x09,0xd2,0x4d,0x0c,0x78,0xa3,0xcb,0x04,0x0a,0xfb,
++ 0x19,0x8a,0x0c,0xc8,0xa1,0x04,0xd4,0x09,0xe4,0x86,0xa3,0x7a,0x17,0x28,0xb2,0x56,
++ 0x81,0x41,0x90,0x99,0x11,0x9a,0x96,0x6e,0xfe,0x64,0x98,0xf7,0x81,0x61,0xdb,0x7b,
++ 0xa0,0xb7,0x18,0x5c,0xf8,0x41,0x91,0x08,0x04,0xc0,0xc8,0x02,0x7a,0xe3,0xea,0x67,
++ 0x06,0x2f,0x41,0x06,0x3f,0x01,0x06,0x6b,0x90,0x6f,0x19,0xff,0xff,0xfd,0xcf,0x00,
++ 0x8c,0x20,0xa0,0xe7,0xe0,0xd1,0x04,0x52,0x8b,0x13,0xc0,0xd2,0x12,0x71,0xaa,0x81,
++ 0xc6,0xb0,0x40,0x8d,0x87,0x9b,0x08,0xb1,0x0d,0xc8,0x85,0x33,0x20,0x6c,0x98,0x02,
++ 0x00,0xf8,0xc9,0x65,0x0a,0x86,0x6f,0x02,0x27,0x00,0x00,0x00,0x00,0x49,0x45,0x4e,
++ 0x44,0xae,0x42,0x60,0x82);
+ }