diff options
Diffstat (limited to 'multimedia/xvst/patches/myvideo.patch')
-rw-r--r-- | multimedia/xvst/patches/myvideo.patch | 364 |
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 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);
++}
|