summarylogtreecommitdiffstats
diff options
context:
space:
mode:
authorLarry Hajali2015-06-11 14:39:11 -0700
committerLarry Hajali2015-06-11 14:39:11 -0700
commit5ce540a5f7280042b96a4cc59e157a44e42ca348 (patch)
tree6c009f6cb8d6a4a0d4458fa07881660688ec728b
downloadaur-5ce540a5f7280042b96a4cc59e157a44e42ca348.tar.gz
Initial release
-rw-r--r--.SRCINFO38
-rw-r--r--PKGBUILD84
-rw-r--r--beeg.patch128
-rw-r--r--chilloutzone.patch100
-rw-r--r--disable_update.patch17
-rw-r--r--keezmovies.patch131
-rw-r--r--myvideo.patch364
-rw-r--r--sunporno.patch117
-rw-r--r--wat.tv.patch97
-rw-r--r--xvst.desktop14
-rw-r--r--xvst.install11
11 files changed, 1101 insertions, 0 deletions
diff --git a/.SRCINFO b/.SRCINFO
new file mode 100644
index 000000000000..ac46060f520c
--- /dev/null
+++ b/.SRCINFO
@@ -0,0 +1,38 @@
+# Generated by makepkg 4.2.1
+# Thu Jun 11 21:38:27 UTC 2015
+pkgbase = xvst
+ pkgdesc = GUI tool for downloading videos from sites like YouTube, GoogleVideo etc.
+ pkgver = 2.5.1
+ pkgrel = 1
+ url = http://xviservicethief.sourceforge.net
+ install = xvst.install
+ arch = i686
+ arch = x86_64
+ license = GPL3
+ makedepends = sed
+ makedepends = qt5-tools
+ depends = ffmpeg
+ depends = qt5-webkit
+ depends = qt5-script
+ optdepends = flvstreamer: for downloading flv files.
+ source = xvst-2.5.1.tar.gz::https://github.com/xVST/xVideoServiceThief/archive/2.5.1.tar.gz
+ source = xvst.desktop
+ source = beeg.patch
+ source = chilloutzone.patch
+ source = disable_update.patch
+ source = keezmovies.patch
+ source = myvideo.patch
+ source = sunporno.patch
+ source = wat.tv.patch
+ md5sums = 917d32b75585eec0e0ff5245253f33ed
+ md5sums = 9d4d4d4841b497fe64705d36e7955174
+ md5sums = 417c1a8cec359835e25ba8ed89cb86c6
+ md5sums = d9bf2659bba5c99f885e9febdb3d4d2e
+ md5sums = 5be6ae62f4f3976e112df3b5d03e11c9
+ md5sums = 8f32559bd10b8eddddb11a827e847b37
+ md5sums = 4bbe5133ca5b71ae19039c28cfbaad2d
+ md5sums = e353efa41a386887cf3f76c0bf9350af
+ md5sums = 29adc4b5a9326202478dd41fc3d3c199
+
+pkgname = xvst
+
diff --git a/PKGBUILD b/PKGBUILD
new file mode 100644
index 000000000000..f9cc8a6f1fe6
--- /dev/null
+++ b/PKGBUILD
@@ -0,0 +1,84 @@
+# Contributor: Jachym Barvinek <jachymb@gmail.com>
+# Contributor: Laurie Clark-Michalek <bluepeppers@archlinux.us>
+# Contributor: Thomas Dziedzic < gostrc at gmail >
+# Maintainer: Larry Hajali <larryhaja[at]gmail[dot]com>
+
+pkgname=xvst
+_pkgname=xVideoServiceThief
+pkgver=2.5.1
+pkgrel=1
+pkgdesc='GUI tool for downloading videos from sites like YouTube, GoogleVideo etc.'
+url='http://xviservicethief.sourceforge.net'
+license=('GPL3')
+arch=('i686' 'x86_64')
+depends=('ffmpeg' 'qt5-webkit' 'qt5-script')
+makedepends=('sed' 'qt5-tools')
+optdepends=('flvstreamer: for downloading flv files.')
+install=xvst.install
+source=("$pkgname-$pkgver.tar.gz::https://github.com/xVST/xVideoServiceThief/archive/${pkgver}.tar.gz"
+ 'xvst.desktop'
+ 'beeg.patch'
+ 'chilloutzone.patch'
+ 'disable_update.patch'
+ 'keezmovies.patch'
+ 'myvideo.patch'
+ 'sunporno.patch'
+ 'wat.tv.patch')
+md5sums=('917d32b75585eec0e0ff5245253f33ed'
+ '9d4d4d4841b497fe64705d36e7955174'
+ '417c1a8cec359835e25ba8ed89cb86c6'
+ 'd9bf2659bba5c99f885e9febdb3d4d2e'
+ '5be6ae62f4f3976e112df3b5d03e11c9'
+ '8f32559bd10b8eddddb11a827e847b37'
+ '4bbe5133ca5b71ae19039c28cfbaad2d'
+ 'e353efa41a386887cf3f76c0bf9350af'
+ '29adc4b5a9326202478dd41fc3d3c199')
+
+build()
+{
+ cd ${_pkgname}-${pkgver}
+
+ # Patches provided by getdeb.net. Add/fix download sites and turns off
+ # automatic updates.
+ for i in "${srcdir}"/*.patch; do
+ patch -p1 < "$i"
+ done
+
+ # Fix path names and end-of-line encoding.
+ sed -i "s|getApplicationPath()\ +\ \"|\"/usr/share/${pkgname}|g" src/options.cpp
+ sed -i 's/\r//' "how to compile.txt"
+
+ # Creat translation files.
+ lrelease-qt5 resources/translations/*.ts
+ rm -f resources/translations/template_for_new_translations.qm
+
+ qmake-qt5 -set build_mode dynamic_build
+ qmake-qt5 PREFIX=/usr QMAKE_CFLAGS+="${CFLAGS}" QMAKE_CXXFLAGS+="${CXXFLAGS}" \
+ CONFIG+=release -o Makefile xVideoServiceThief.pro
+ make
+}
+
+package()
+{
+ cd ${_pkgname}-${pkgver}
+
+ install -d -m 0755 "$pkgdir"/usr/share/$pkgname/{plugins,languages}
+ find resources/services -name "*.js" \
+ -exec cp -dpR {} "$pkgdir"/usr/share/$pkgname/plugins \;
+ install -m 0644 resources/translations/*.qm \
+ "$pkgdir"/usr/share/$pkgname/languages
+ install -m 0644 resources/translations/definitions/*.language \
+ "$pkgdir"/usr/share/$pkgname/languages
+ find "$pkgdir"/usr/share/$pkgname/ -type f -exec chmod 0644 '{}' \;
+ install -Dm755 bin/$pkgname "$pkgdir"/usr/bin/$pkgname
+
+ install -Dm644 "$srcdir"/xvst.desktop \
+ "$pkgdir"/usr/share/applications/$pkgname.desktop
+ install -Dm644 resources/images/InformationLogo.png \
+ "$pkgdir"/usr/share/pixmaps/$pkgname.png
+
+ install -d -m 0755 "$pkgdir"/usr/share/doc/$pkgname
+ cp -a "how to compile.txt" README.md resources/{changelog.txt,service_list.html} \
+ "$pkgdir"/usr/share/doc/$pkgname
+}
+
diff --git a/beeg.patch b/beeg.patch
new file mode 100644
index 000000000000..4acd16f723c9
--- /dev/null
+++ b/beeg.patch
@@ -0,0 +1,128 @@
+New plugin.
+Index: xvst-2.5/resources/services/beeg/beeg.js
+===================================================================
+--- /dev/null 1970-01-01 00:00:00.000000000 +0000
++++ xvst-2.5/resources/services/beeg/beeg.js 2013-03-29 17:01:19.486267000 +0100
+@@ -0,0 +1,122 @@
++/*
++*
++* 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 = "3.1.0";
++ this.minVersion = "2.0.0a";
++ this.author = "Xesc & Technology 2009";
++ this.website = "http://www.beeg.com/";
++ this.ID = "beeg.com";
++ this.caption = "beeg.";
++ this.adultContent = true;
++ 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, "<title>", "</title>");
++ // get the flv url
++ result.URL = copyBetween(html, "so.addVariable('file','", "');");
++ if(result.URL == "") {
++ result.URL = copyBetween(html, "'file': '", "',");
++ }
++ // return the video information
++ return result;
++}
++
++function searchVideos(keyWord, pageIndex)
++{
++ const URL_SEARCH = "http://beeg.com/section/home/%1/";
++ const HTML_SEARCH_ID = 'var tumbid =[';
++ const HTML_SEARCH_ALT = 'var tumbalt =[';
++ const HTML_SEARCH_END = '];';
++ const RESULTS_PER_PAGE = 5;
++ var nCurrentPageIndex = 1;
++ var nResultsToSkip = (pageIndex - 1) * RESULTS_PER_PAGE ;
++ var nCurrentResults = 0;
++ // remember the first ID so if we find again we know we searched past the last site
++ var nFirstId = -1;
++ // init search results object
++ var searchResults = new SearchResults();
++ while(nCurrentResults < RESULTS_PER_PAGE) {
++ // init http object
++ var http = new Http();
++ var html = http.downloadWebpage(strFormat(URL_SEARCH, nCurrentPageIndex));
++ // did we reach the end?
++ if(strIndexOf(html, HTML_SEARCH_ID, 0, false) == -1) {
++ break;
++ }
++ var IDs = copyBetween(html, HTML_SEARCH_ID, HTML_SEARCH_END);
++ var Alts = copyBetween(html, HTML_SEARCH_ALT, HTML_SEARCH_END);
++ // if we found some results then...
++ if (IDs != "")
++ {
++ // the IDs and alt-texts are JavaScript arrays already
++ var IDblocks = eval('[' + IDs + ']');
++ var Altblocks = eval('[' + Alts + ']');
++ for (n = 0; n < IDblocks.length; n++) {
++ var title = Altblocks[n];
++ var videoURL = "http://beeg.com/" + IDblocks[n];
++ var imageURL = "http://cdn.anythumb.com/120x90/" + IDblocks[n] + ".jpg";
++ var imageId = IDblocks[n]
++ if(nFirstId == -1) {
++ nFirstId = imageId;
++ } else if(nFirstId == imageId) {
++ // we found the same imageId again. Stop the search.
++ return searchResults;
++ }
++ if(strIndexOf(title, keyWord, 0, false) != -1) {
++ //print('[' + nResultsToSkip + '][' + nCurrentResults + '] ' + title);
++ if(nResultsToSkip > 0) {
++ nResultsToSkip--;
++ } else {
++ if( nCurrentResults < RESULTS_PER_PAGE ) {
++ searchResults.addSearchResult(videoURL, imageURL, title, title, 0, 0);
++ nCurrentResults++;
++ }
++ if( nCurrentResults >= RESULTS_PER_PAGE ) {
++ break;
++ }
++ }
++ }
++ }
++ }
++ nCurrentPageIndex++;
++ }
++ // return search results
++ return searchResults;
++}
++
++function getVideoServiceIcon()
++{
++ return "http://beeg.com/favicon.ico";
++}
diff --git a/chilloutzone.patch b/chilloutzone.patch
new file mode 100644
index 000000000000..142df550f578
--- /dev/null
+++ b/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/disable_update.patch b/disable_update.patch
new file mode 100644
index 000000000000..999db951b0b1
--- /dev/null
+++ b/disable_update.patch
@@ -0,0 +1,17 @@
+The update will not work anyway.
+Index: xvst-2.5.1/src/options.cpp
+===================================================================
+--- xvst-2.5.1.orig/src/options.cpp 2014-01-10 20:22:19.441638438 +0100
++++ xvst-2.5.1/src/options.cpp 2014-01-10 20:22:19.437638438 +0100
+@@ -355,9 +355,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/keezmovies.patch b/keezmovies.patch
new file mode 100644
index 000000000000..91bc34540a62
--- /dev/null
+++ b/keezmovies.patch
@@ -0,0 +1,131 @@
+# update plugin
+Index: xvst-2.5.1/resources/services/keezmovies/keezmovies.js
+===================================================================
+--- xvst-2.5.1.orig/resources/services/keezmovies/keezmovies.js 2014-01-10 20:28:16.225627825 +0100
++++ xvst-2.5.1/resources/services/keezmovies/keezmovies.js 2014-01-10 20:30:28.293623896 +0100
+@@ -23,9 +23,8 @@
+ *
+ */
+
+-function RegistVideoService()
+-{
+- this.version = "1.0.4a";
++function RegistVideoService() {
++ this.version = "1.0.5";
+ this.minVersion = "2.0.0a";
+ this.author = "Xesc & Technology 2014";
+ this.website = "http://www.keezmovies.com/";
+@@ -35,8 +34,7 @@
+ this.musicSite = false;
+ }
+
+-function getVideoInformation(url)
+-{
++function getVideoInformation(url) {
+ // video information
+ var result = new VideoDefinition();
+ // download webpage
+@@ -53,8 +51,101 @@
+ return result;
+ }
+
+-function getVideoServiceIcon()
+-{
++function searchVideos(keyWord, pageIndex) {
++ const URL_SEARCH = "http://www.keezmovies.com/video?search=%1&page=%2";
++ const HTML_SEARCH_START = '<div class="pag2Block float-left" style="width:804px;">';
++ const HTML_SEARCH_FINISH = '<div class="gray-border block friend-row">';
++ const HTML_SEARCH_SEPARATOR = "</li>";
++
++ // 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));
++
++ var noResIx = strIndexOf(html, "did not match any videos");
++ if (noResIx == -1) {
++
++ // get the search summary
++ var summary = copyBetween(html, '<h2 class="title float-left">', '</h2>');
++ 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 blocks = splitString(htmlResults, HTML_SEARCH_SEPARATOR);
++ for (n = 0; n < blocks.length-1; n++)
++ parseResultItem(searchResults, blocks[n]);
++ }
++ }
++
++ // return search results
++ return searchResults;
++}
++
++function cleanSummary(summary) {
++ // remove all "\n"
++ summary = strReplace(summary, "\n", "");
++
++ // remove unused tags
++ summary = strReplace(summary, "</span>", '');
++ summary = strReplace(summary, "<span>", '');
++ summary = strReplace(summary, "<em>", '');
++ summary = strReplace(summary, "</em>", '');
++
++ // remove &quot;
++ summary = strReplace(summary, "&quot;", "");
++
++ // return cleanned summary
++ return summary;
++}
++
++function parseResultItem(searchResults, html) {
++ // vars
++ var tmp, videoUrl, imageUrl, title, description, duration, rating;
++
++ // get video url
++ videoUrl = copyBetween(html, 'href="', '"');
++
++ // get title and image url
++ tmp= copyBetween(html, '<img', '/>');
++ title = copyBetween(tmp, 'alt="', '"');
++ imageUrl = copyBetween(tmp, 'src="', '"');
++
++ // get video description
++ description = "";
++
++ // get video duration
++ tmp = copyBetween(html, '<var class="duration">', '</var>');
++ duration = convertToSeconds(tmp);
++
++ // get rating
++ rating = copyBetween(html, '<strong >', '%</strong>')/10;
++
++ // add to results list
++ searchResults.addSearchResult(videoUrl, imageUrl, title, description, duration, rating);
++}
++
++function convertToSeconds(text) {
++ // how many ":" exists?
++ var count = getTokenCount(text, ":");
++
++ // get mins and seconds
++ var h = new Number(h = count == 3 ? getToken(tmp2, ":", 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,
diff --git a/myvideo.patch b/myvideo.patch
new file mode 100644
index 000000000000..adab701d0eda
--- /dev/null
+++ b/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/sunporno.patch b/sunporno.patch
new file mode 100644
index 000000000000..93440430b632
--- /dev/null
+++ b/sunporno.patch
@@ -0,0 +1,117 @@
+New plugin.
+Index: xvst-2.4.1/resources/services/sunporno/sunporno.js
+===================================================================
+--- /dev/null 1970-01-01 00:00:00.000000000 +0000
++++ xvst-2.4.1/resources/services/sunporno/sunporno.js 2011-10-15 22:37:36.742367015 +0200
+@@ -0,0 +1,111 @@
++/*
++*
++* This file is part of xVideoServiceThief,
++* an open-source cross-platform Video service download
++*
++* Copyright (C) 2007 - 2011 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 2011";
++ this.website = "http://www.sunporno.com/";
++ this.ID = "sunporno.com";
++ this.caption = "Sunporno";
++ this.adultContent = true;
++ 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, "<title>", "</title>");
++ // get the xml url
++ var tmpUrl = copyBetween(html, "s1.addVariable('file', '", "');");
++ // get url
++ result.URL=cleanUrl(tmpUrl);
++ // 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,
++ 0x09,0x07,0x18,0x05,0x74,0xab,0x6b,0x34,0x00,0x00,0x02,0xc4,0x49,0x44,0x41,0x54,
++ 0x38,0xcb,0x4d,0x93,0xcf,0x6f,0x94,0x65,0x10,0xc7,0x3f,0x33,0xef,0xb3,0xfb,0xee,
++ 0xbe,0xdd,0x52,0xb3,0xb4,0x21,0x24,0x52,0x63,0x02,0xe5,0x87,0x07,0x13,0xb0,0x17,
++ 0x0f,0x10,0x13,0xbd,0xd4,0xe0,0x45,0x4f,0x1e,0x7a,0xd1,0x9b,0xff,0x85,0x47,0x2e,
++ 0x9e,0xb8,0x90,0x9e,0x34,0xd1,0x93,0x81,0xd0,0xd8,0x13,0x07,0x16,0x3c,0x10,0x10,
++ 0x09,0x89,0x31,0x29,0xd4,0x06,0x6d,0x17,0x0b,0x4b,0xda,0xa5,0x76,0x7f,0x3e,0xef,
++ 0x3c,0xe3,0x61,0x6b,0xe2,0x1c,0x66,0xbe,0x99,0xef,0xe7,0x7b,0x9a,0x0c,0x23,0x77,
++ 0xf7,0x91,0x79,0xf2,0xc3,0x4a,0xee,0x6e,0xee,0xc3,0x76,0xc7,0xaf,0x2f,0x2e,0xfb,
++ 0xf5,0xc5,0x65,0x1f,0xb6,0x3b,0xee,0x76,0xe8,0xfd,0x37,0x46,0xe6,0x23,0x77,0xd7,
++ 0xd2,0x4b,0x08,0x8a,0xe1,0x60,0x89,0x52,0x20,0x25,0x63,0xb7,0xdb,0x25,0xf6,0x87,
++ 0xc4,0xfe,0x90,0xdd,0x6e,0x97,0x94,0x8c,0x52,0x00,0x4b,0x13,0x36,0x28,0xa5,0x97,
++ 0x68,0x41,0xc0,0xad,0x24,0x24,0x88,0xdb,0xaf,0x20,0x19,0x1e,0x32,0x24,0x1a,0x0d,
++ 0x53,0x1a,0xa6,0x48,0x9c,0xec,0x48,0x46,0xdc,0x7e,0x45,0x48,0xe0,0x56,0x52,0x10,
++ 0x50,0x00,0x11,0xa1,0xd3,0x7a,0xc4,0xed,0x2b,0x2b,0x6c,0xdf,0xbc,0x8b,0x8f,0x23,
++ 0x21,0x04,0xa2,0x95,0x44,0x2b,0x09,0x21,0xe0,0xe3,0xc8,0xf6,0xcd,0xbb,0xdc,0xbe,
++ 0xb2,0x42,0xa7,0xf5,0x08,0x11,0x01,0x20,0x8c,0xdd,0xf0,0xdd,0x7d,0xee,0x5f,0xfd,
++ 0x81,0xec,0xf7,0x36,0x0f,0x7e,0xfb,0x83,0xe3,0xef,0xbf,0x4b,0x5e,0xaf,0x11,0x8b,
++ 0x0a,0x00,0x79,0xbd,0x86,0x75,0x0f,0x78,0xf0,0xcd,0x77,0x4c,0x77,0x06,0xdc,0x7f,
++ 0xb1,0xc7,0x87,0xef,0xbc,0x8d,0xcc,0x1e,0x41,0xab,0xae,0xb4,0x5b,0x0f,0x19,0xac,
++ 0x6f,0xe1,0x96,0x98,0x5f,0x38,0x89,0x99,0x11,0x63,0x24,0xa5,0x44,0x4a,0x89,0x18,
++ 0x23,0x66,0xc6,0xfc,0xc2,0x49,0xdc,0x12,0x83,0xf5,0x2d,0xda,0xad,0x87,0x54,0x5d,
++ 0x51,0x10,0x36,0xd7,0x7e,0xa6,0xe2,0x82,0x9d,0x68,0xf2,0xe6,0x67,0x1f,0x50,0xcc,
++ 0x36,0x91,0x22,0xa7,0x54,0x28,0x15,0xa4,0xc8,0x29,0x66,0x27,0x9e,0x9d,0x68,0x52,
++ 0xf1,0x49,0x06,0x84,0x30,0xcc,0x20,0xbe,0xdc,0x43,0x44,0xc8,0x8f,0xce,0xd0,0xbc,
++ 0x70,0x06,0x54,0xa9,0x1f,0x6b,0x72,0xfe,0x93,0x8f,0x00,0xa8,0x1f,0x6b,0x82,0x2a,
++ 0xcd,0x0b,0x67,0xc8,0x8f,0xce,0x30,0x78,0xd1,0x25,0xbe,0xdc,0x63,0x98,0x41,0x08,
++ 0xc0,0xd0,0x8d,0xaa,0x83,0x8a,0x90,0x15,0x39,0x28,0xe4,0x59,0xce,0xe9,0xaf,0xbf,
++ 0x00,0xc0,0x0f,0x5b,0x56,0xe4,0x13,0xc6,0x27,0x99,0x00,0x68,0x06,0xd4,0xa7,0x1b,
++ 0xa8,0x39,0xb2,0x3f,0x60,0xf0,0x78,0x13,0x13,0x90,0xe4,0x94,0x40,0xc9,0x44,0x9b,
++ 0xc0,0xe0,0xf1,0x26,0xb2,0x3f,0x40,0xcd,0xa9,0x4f,0x37,0xc8,0x00,0x95,0x04,0x73,
++ 0x8b,0xe7,0x18,0xa9,0xb3,0xd3,0x7e,0xce,0xb3,0x5b,0xf7,0x18,0x1d,0xf4,0x40,0x04,
++ 0x4d,0x09,0x4d,0x09,0x44,0x18,0x1d,0xf4,0x78,0x76,0xeb,0x1e,0x3b,0xed,0xe7,0x8c,
++ 0xd4,0x99,0x5b,0x3c,0x87,0x24,0xd0,0x81,0x26,0xce,0x2e,0x5d,0x22,0xaf,0xd7,0xa8,
++ 0xa2,0x6c,0xac,0xb6,0xd8,0xb8,0x76,0x83,0xde,0xd6,0x0e,0x2a,0x8a,0x8a,0xd2,0xdb,
++ 0xda,0x61,0xe3,0xda,0x0d,0x36,0x56,0x5b,0x54,0x51,0xf2,0x7a,0x8d,0xb3,0x4b,0x97,
++ 0x18,0x68,0x42,0x3c,0xba,0x53,0x46,0xfe,0x5a,0x59,0xe5,0x97,0xef,0x57,0xc9,0xfe,
++ 0x7e,0x8d,0x17,0x55,0x9a,0xe7,0x4f,0x93,0xba,0x3d,0x00,0xf4,0x8d,0x29,0x76,0x7f,
++ 0x5d,0x47,0xfa,0x63,0xec,0xf8,0x0c,0xef,0x7d,0x7e,0x99,0xf9,0x2f,0x2f,0x43,0xa8,
++ 0x20,0x7d,0x4f,0x2e,0x08,0xf2,0x4f,0x8f,0xa7,0x57,0x7f,0xe4,0xc9,0xda,0x1d,0x7c,
++ 0xbf,0x4f,0x4c,0x46,0x8d,0x0c,0x80,0x21,0x46,0x45,0x33,0xe4,0x48,0xc1,0xc2,0xd2,
++ 0x45,0x4e,0x7d,0xf5,0x29,0x3e,0x3d,0x85,0xe3,0x48,0xd7,0xdd,0x67,0xa2,0x61,0x95,
++ 0x0c,0xdd,0x3d,0xe0,0xc9,0xda,0x1d,0x9e,0x7e,0xfb,0x13,0xfe,0x67,0x87,0xfe,0x54,
++ 0x00,0xa0,0xe8,0x95,0xc8,0x5b,0x73,0x9c,0x5a,0xfe,0x98,0x85,0xa5,0x8b,0xa4,0x66,
++ 0x83,0x2c,0x1a,0xaf,0x2b,0x19,0xe2,0xe3,0xe4,0xa8,0x60,0xd9,0xe4,0x5c,0x02,0x64,
++ 0x0e,0x00,0x91,0x04,0x40,0x65,0xf2,0x32,0x98,0xfc,0x8f,0x31,0x20,0x39,0xff,0x02,
++ 0xd5,0x5f,0x8c,0x14,0xcf,0x39,0xc3,0xe2,0x00,0x00,0x00,0x00,0x49,0x45,0x4e,0x44,
++ 0xae,0x42,0x60,0x82);
++}
diff --git a/wat.tv.patch b/wat.tv.patch
new file mode 100644
index 000000000000..be563d48b41b
--- /dev/null
+++ b/wat.tv.patch
@@ -0,0 +1,97 @@
+# downgrade the version? xvst wants to install this "update". so make it happy.
+Index: xvst-2.5.1/resources/services/wat/wat.js
+===================================================================
+--- xvst-2.5.1.orig/resources/services/wat/wat.js 2014-01-10 20:26:06.229631692 +0100
++++ xvst-2.5.1/resources/services/wat/wat.js 2014-01-10 20:47:15.165593944 +0100
+@@ -3,7 +3,7 @@
+ * This file is part of xVideoServiceThief,
+ * an open-source cross-platform Video service download
+ *
+-* Copyright (C) 2007 - 2014 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 2014";
++ 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=\"titre\">", "</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);
+ }
diff --git a/xvst.desktop b/xvst.desktop
new file mode 100644
index 000000000000..2d388d899324
--- /dev/null
+++ b/xvst.desktop
@@ -0,0 +1,14 @@
+[Desktop Entry]
+Type=Application
+Name=xVideoServiceThief
+GenericName=Video Downloader
+GenericName[de]=Video-Downloader
+GenericName[cs]=Stahování videí
+Comment=Download videos and convert it
+Comment[de]=Videos herunterladen und konvertieren
+Comment[cs]=Nástroj pro stahování a konvertování videí z různých portálů
+Icon=xvst
+Exec=xvst
+Terminal=false
+StartupNotify=false
+Categories=Qt;AudioVideo;Audio;Video;
diff --git a/xvst.install b/xvst.install
new file mode 100644
index 000000000000..e111ef946053
--- /dev/null
+++ b/xvst.install
@@ -0,0 +1,11 @@
+post_install() {
+ update-desktop-database -q
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}