summaryrefslogtreecommitdiffstats
path: root/multimedia/xvst/patches/myvideo.patch
diff options
context:
space:
mode:
Diffstat (limited to 'multimedia/xvst/patches/myvideo.patch')
-rw-r--r--multimedia/xvst/patches/myvideo.patch364
1 files changed, 364 insertions, 0 deletions
diff --git a/multimedia/xvst/patches/myvideo.patch b/multimedia/xvst/patches/myvideo.patch
new file mode 100644
index 0000000000..adab701d0e
--- /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);
++}