Merge branch 'release-0.3.2'

This commit is contained in:
Pierre Rudloff 2015-08-30 16:12:14 +02:00
commit 8f199c833d
9 changed files with 102 additions and 895 deletions

1
.gitignore vendored
View file

@ -6,3 +6,4 @@ vendor/
templates_c/
ffmpeg.tar.xz
ffmpeg-*/
alltube-release.zip

9
.travis.yml Normal file
View file

@ -0,0 +1,9 @@
language: php
php:
- 5.4
- 5.5
- 5.6
install:
- composer install
- npm install
script: phpunit tests/

View file

@ -31,12 +31,20 @@ module.exports = function (grunt) {
php: {
src: ['*.php']
},
tests: {
src: ['tests/*.php']
},
js: {
src: ['js/*.js']
},
Gruntfile: {
src: ['Gruntfile.js']
}
},
phpunit: {
classes: {
dir: 'tests/'
}
}
}
);
@ -45,7 +53,9 @@ module.exports = function (grunt) {
grunt.loadNpmTasks('grunt-contrib-cssmin');
grunt.loadNpmTasks('grunt-contrib-watch');
grunt.loadNpmTasks('grunt-phpcs');
grunt.loadNpmTasks('grunt-phpunit');
grunt.registerTask('default', ['uglify', 'cssmin']);
grunt.registerTask('lint', ['phpcs']);
grunt.registerTask('test', ['phpunit']);
};

View file

@ -12,7 +12,7 @@
* @license GNU General Public License http://www.gnu.org/licenses/gpl.html
* @link http://rudloff.pro
* */
require_once 'vendor/autoload.php';
require_once __DIR__.'/vendor/autoload.php';
if (is_file('config.php')) {
include_once 'config.php';
} else {

891
npm-shrinkwrap.json generated
View file

@ -1,891 +0,0 @@
{
"name": "alltube",
"version": "0.2.1",
"dependencies": {
"grunt": {
"version": "0.4.5",
"from": "grunt@~0.4.1",
"resolved": "https://registry.npmjs.org/grunt/-/grunt-0.4.5.tgz",
"dependencies": {
"async": {
"version": "0.1.22",
"from": "async@0.1.22",
"resolved": "https://registry.npmjs.org/async/-/async-0.1.22.tgz"
},
"coffee-script": {
"version": "1.3.3",
"from": "coffee-script@1.3.3",
"resolved": "https://registry.npmjs.org/coffee-script/-/coffee-script-1.3.3.tgz"
},
"colors": {
"version": "0.6.2",
"from": "colors@0.6.2",
"resolved": "https://registry.npmjs.org/colors/-/colors-0.6.2.tgz"
},
"dateformat": {
"version": "1.0.2-1.2.3",
"from": "dateformat@1.0.2-1.2.3",
"resolved": "https://registry.npmjs.org/dateformat/-/dateformat-1.0.2-1.2.3.tgz"
},
"eventemitter2": {
"version": "0.4.14",
"from": "https://registry.npmjs.org/eventemitter2/-/eventemitter2-0.4.14.tgz",
"resolved": "https://registry.npmjs.org/eventemitter2/-/eventemitter2-0.4.14.tgz"
},
"findup-sync": {
"version": "0.1.3",
"from": "findup-sync@0.1.3",
"resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-0.1.3.tgz",
"dependencies": {
"glob": {
"version": "3.2.11",
"from": "glob@~3.2.9",
"resolved": "https://registry.npmjs.org/glob/-/glob-3.2.11.tgz",
"dependencies": {
"inherits": {
"version": "2.0.1",
"from": "inherits@2",
"resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz"
},
"minimatch": {
"version": "0.3.0",
"from": "minimatch@0.3",
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-0.3.0.tgz",
"dependencies": {
"lru-cache": {
"version": "2.6.3",
"from": "lru-cache@2",
"resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-2.6.3.tgz"
},
"sigmund": {
"version": "1.0.0",
"from": "sigmund@~1.0.0",
"resolved": "https://registry.npmjs.org/sigmund/-/sigmund-1.0.0.tgz"
}
}
}
}
},
"lodash": {
"version": "2.4.2",
"from": "lodash@^2.4.1",
"resolved": "https://registry.npmjs.org/lodash/-/lodash-2.4.2.tgz"
}
}
},
"glob": {
"version": "3.1.21",
"from": "glob@3.1.21",
"resolved": "https://registry.npmjs.org/glob/-/glob-3.1.21.tgz",
"dependencies": {
"graceful-fs": {
"version": "1.2.3",
"from": "graceful-fs@~1.2.0",
"resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-1.2.3.tgz"
},
"inherits": {
"version": "1.0.0",
"from": "inherits@1",
"resolved": "https://registry.npmjs.org/inherits/-/inherits-1.0.0.tgz"
}
}
},
"hooker": {
"version": "0.2.3",
"from": "https://registry.npmjs.org/hooker/-/hooker-0.2.3.tgz",
"resolved": "https://registry.npmjs.org/hooker/-/hooker-0.2.3.tgz"
},
"iconv-lite": {
"version": "0.2.11",
"from": "iconv-lite@0.2.11",
"resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.2.11.tgz"
},
"minimatch": {
"version": "0.2.14",
"from": "minimatch@0.2.14",
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-0.2.14.tgz",
"dependencies": {
"lru-cache": {
"version": "2.6.3",
"from": "lru-cache@2",
"resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-2.6.3.tgz"
},
"sigmund": {
"version": "1.0.0",
"from": "sigmund@~1.0.0",
"resolved": "https://registry.npmjs.org/sigmund/-/sigmund-1.0.0.tgz"
}
}
},
"nopt": {
"version": "1.0.10",
"from": "nopt@1.0.10",
"resolved": "https://registry.npmjs.org/nopt/-/nopt-1.0.10.tgz",
"dependencies": {
"abbrev": {
"version": "1.0.5",
"from": "abbrev@1",
"resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.0.5.tgz"
}
}
},
"rimraf": {
"version": "2.2.8",
"from": "rimraf@2.2.8",
"resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.2.8.tgz"
},
"lodash": {
"version": "0.9.2",
"from": "lodash@0.9.2",
"resolved": "https://registry.npmjs.org/lodash/-/lodash-0.9.2.tgz"
},
"underscore.string": {
"version": "2.2.1",
"from": "underscore.string@2.2.1",
"resolved": "https://registry.npmjs.org/underscore.string/-/underscore.string-2.2.1.tgz"
},
"which": {
"version": "1.0.9",
"from": "which@1.0.9",
"resolved": "https://registry.npmjs.org/which/-/which-1.0.9.tgz"
},
"js-yaml": {
"version": "2.0.5",
"from": "js-yaml@2.0.5",
"resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-2.0.5.tgz",
"dependencies": {
"argparse": {
"version": "0.1.16",
"from": "argparse@~ 0.1.11",
"resolved": "https://registry.npmjs.org/argparse/-/argparse-0.1.16.tgz",
"dependencies": {
"underscore": {
"version": "1.7.0",
"from": "underscore@~1.7.0",
"resolved": "https://registry.npmjs.org/underscore/-/underscore-1.7.0.tgz"
},
"underscore.string": {
"version": "2.4.0",
"from": "underscore.string@~2.4.0",
"resolved": "https://registry.npmjs.org/underscore.string/-/underscore.string-2.4.0.tgz"
}
}
},
"esprima": {
"version": "1.0.4",
"from": "esprima@~ 1.0.2",
"resolved": "https://registry.npmjs.org/esprima/-/esprima-1.0.4.tgz"
}
}
},
"exit": {
"version": "0.1.2",
"from": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz",
"resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz"
},
"getobject": {
"version": "0.1.0",
"from": "https://registry.npmjs.org/getobject/-/getobject-0.1.0.tgz",
"resolved": "https://registry.npmjs.org/getobject/-/getobject-0.1.0.tgz"
},
"grunt-legacy-util": {
"version": "0.2.0",
"from": "https://registry.npmjs.org/grunt-legacy-util/-/grunt-legacy-util-0.2.0.tgz",
"resolved": "https://registry.npmjs.org/grunt-legacy-util/-/grunt-legacy-util-0.2.0.tgz",
"dependencies": {
"async": {
"version": "0.1.22",
"from": "async@0.1.22",
"resolved": "https://registry.npmjs.org/async/-/async-0.1.22.tgz"
},
"lodash": {
"version": "0.9.2",
"from": "lodash@0.9.2",
"resolved": "https://registry.npmjs.org/lodash/-/lodash-0.9.2.tgz"
},
"underscore.string": {
"version": "2.2.1",
"from": "underscore.string@2.2.1",
"resolved": "https://registry.npmjs.org/underscore.string/-/underscore.string-2.2.1.tgz"
},
"which": {
"version": "1.0.9",
"from": "which@1.0.9",
"resolved": "https://registry.npmjs.org/which/-/which-1.0.9.tgz"
}
}
},
"grunt-legacy-log": {
"version": "0.1.1",
"from": "https://registry.npmjs.org/grunt-legacy-log/-/grunt-legacy-log-0.1.1.tgz",
"resolved": "https://registry.npmjs.org/grunt-legacy-log/-/grunt-legacy-log-0.1.1.tgz",
"dependencies": {
"lodash": {
"version": "2.4.2",
"from": "lodash@2.4.2",
"resolved": "https://registry.npmjs.org/lodash/-/lodash-2.4.2.tgz"
},
"underscore.string": {
"version": "2.3.3",
"from": "underscore.string@2.3.3",
"resolved": "https://registry.npmjs.org/underscore.string/-/underscore.string-2.3.3.tgz"
},
"colors": {
"version": "0.6.2",
"from": "colors@0.6.2",
"resolved": "https://registry.npmjs.org/colors/-/colors-0.6.2.tgz"
}
}
}
}
},
"grunt-cli": {
"version": "0.1.13",
"from": "grunt-cli@0.1.13",
"resolved": "https://registry.npmjs.org/grunt-cli/-/grunt-cli-0.1.13.tgz",
"dependencies": {
"nopt": {
"version": "1.0.10",
"from": "nopt@1.0.10",
"resolved": "https://registry.npmjs.org/nopt/-/nopt-1.0.10.tgz",
"dependencies": {
"abbrev": {
"version": "1.0.5",
"from": "abbrev@1",
"resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.0.5.tgz"
}
}
},
"findup-sync": {
"version": "0.1.3",
"from": "findup-sync@0.1.3",
"resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-0.1.3.tgz",
"dependencies": {
"glob": {
"version": "3.2.11",
"from": "glob@~3.2.9",
"resolved": "https://registry.npmjs.org/glob/-/glob-3.2.11.tgz",
"dependencies": {
"inherits": {
"version": "2.0.1",
"from": "inherits@2",
"resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz"
},
"minimatch": {
"version": "0.3.0",
"from": "minimatch@0.3",
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-0.3.0.tgz",
"dependencies": {
"lru-cache": {
"version": "2.6.3",
"from": "lru-cache@2",
"resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-2.6.3.tgz"
},
"sigmund": {
"version": "1.0.0",
"from": "sigmund@~1.0.0",
"resolved": "https://registry.npmjs.org/sigmund/-/sigmund-1.0.0.tgz"
}
}
}
}
},
"lodash": {
"version": "2.4.2",
"from": "lodash@~2.4.1",
"resolved": "https://registry.npmjs.org/lodash/-/lodash-2.4.2.tgz"
}
}
},
"resolve": {
"version": "0.3.1",
"from": "resolve@0.3.1",
"resolved": "https://registry.npmjs.org/resolve/-/resolve-0.3.1.tgz"
}
}
},
"grunt-contrib-cssmin": {
"version": "0.10.0",
"from": "grunt-contrib-cssmin@0.10.0",
"resolved": "https://registry.npmjs.org/grunt-contrib-cssmin/-/grunt-contrib-cssmin-0.10.0.tgz",
"dependencies": {
"chalk": {
"version": "0.4.0",
"from": "chalk@~0.4.0",
"resolved": "https://registry.npmjs.org/chalk/-/chalk-0.4.0.tgz",
"dependencies": {
"has-color": {
"version": "0.1.7",
"from": "has-color@~0.1.0",
"resolved": "https://registry.npmjs.org/has-color/-/has-color-0.1.7.tgz"
},
"ansi-styles": {
"version": "1.0.0",
"from": "ansi-styles@~1.0.0",
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-1.0.0.tgz"
},
"strip-ansi": {
"version": "0.1.1",
"from": "strip-ansi@~0.1.0",
"resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-0.1.1.tgz"
}
}
},
"clean-css": {
"version": "2.2.23",
"from": "clean-css@~2.2.0",
"resolved": "https://registry.npmjs.org/clean-css/-/clean-css-2.2.23.tgz",
"dependencies": {
"commander": {
"version": "2.2.0",
"from": "commander@2.2.x",
"resolved": "https://registry.npmjs.org/commander/-/commander-2.2.0.tgz"
}
}
},
"maxmin": {
"version": "0.2.2",
"from": "maxmin@~0.2.0",
"resolved": "https://registry.npmjs.org/maxmin/-/maxmin-0.2.2.tgz",
"dependencies": {
"chalk": {
"version": "0.5.1",
"from": "chalk@^0.5.0",
"resolved": "https://registry.npmjs.org/chalk/-/chalk-0.5.1.tgz",
"dependencies": {
"ansi-styles": {
"version": "1.1.0",
"from": "ansi-styles@^1.1.0",
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-1.1.0.tgz"
},
"escape-string-regexp": {
"version": "1.0.3",
"from": "escape-string-regexp@^1.0.0",
"resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.3.tgz"
},
"has-ansi": {
"version": "0.1.0",
"from": "has-ansi@^0.1.0",
"resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-0.1.0.tgz",
"dependencies": {
"ansi-regex": {
"version": "0.2.1",
"from": "ansi-regex@^0.2.1",
"resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-0.2.1.tgz"
}
}
},
"strip-ansi": {
"version": "0.3.0",
"from": "strip-ansi@^0.3.0",
"resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-0.3.0.tgz",
"dependencies": {
"ansi-regex": {
"version": "0.2.1",
"from": "ansi-regex@^0.2.1",
"resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-0.2.1.tgz"
}
}
},
"supports-color": {
"version": "0.2.0",
"from": "supports-color@^0.2.0",
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-0.2.0.tgz"
}
}
},
"figures": {
"version": "1.3.5",
"from": "figures@^1.0.1",
"resolved": "https://registry.npmjs.org/figures/-/figures-1.3.5.tgz"
},
"gzip-size": {
"version": "0.2.0",
"from": "gzip-size@^0.2.0",
"resolved": "https://registry.npmjs.org/gzip-size/-/gzip-size-0.2.0.tgz",
"dependencies": {
"concat-stream": {
"version": "1.4.8",
"from": "concat-stream@^1.4.1",
"resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.4.8.tgz",
"dependencies": {
"inherits": {
"version": "2.0.1",
"from": "inherits@~2.0.1",
"resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz"
},
"typedarray": {
"version": "0.0.6",
"from": "typedarray@~0.0.5",
"resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz"
},
"readable-stream": {
"version": "1.1.13",
"from": "readable-stream@~1.1.9",
"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.13.tgz",
"dependencies": {
"core-util-is": {
"version": "1.0.1",
"from": "core-util-is@~1.0.0",
"resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.1.tgz"
},
"isarray": {
"version": "0.0.1",
"from": "isarray@0.0.1",
"resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz"
},
"string_decoder": {
"version": "0.10.31",
"from": "string_decoder@~0.10.x",
"resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz"
}
}
}
}
},
"browserify-zlib": {
"version": "0.1.4",
"from": "browserify-zlib@^0.1.4",
"resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.1.4.tgz",
"dependencies": {
"pako": {
"version": "0.2.6",
"from": "pako@~0.2.0",
"resolved": "https://registry.npmjs.org/pako/-/pako-0.2.6.tgz"
}
}
}
}
},
"pretty-bytes": {
"version": "0.1.2",
"from": "pretty-bytes@^0.1.0",
"resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-0.1.2.tgz"
}
}
}
}
},
"grunt-contrib-uglify": {
"version": "0.6.0",
"from": "grunt-contrib-uglify@0.6.0",
"resolved": "https://registry.npmjs.org/grunt-contrib-uglify/-/grunt-contrib-uglify-0.6.0.tgz",
"dependencies": {
"chalk": {
"version": "0.5.1",
"from": "chalk@^0.5.1",
"resolved": "https://registry.npmjs.org/chalk/-/chalk-0.5.1.tgz",
"dependencies": {
"ansi-styles": {
"version": "1.1.0",
"from": "ansi-styles@^1.1.0",
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-1.1.0.tgz"
},
"escape-string-regexp": {
"version": "1.0.3",
"from": "escape-string-regexp@^1.0.0",
"resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.3.tgz"
},
"has-ansi": {
"version": "0.1.0",
"from": "has-ansi@^0.1.0",
"resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-0.1.0.tgz",
"dependencies": {
"ansi-regex": {
"version": "0.2.1",
"from": "ansi-regex@^0.2.1",
"resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-0.2.1.tgz"
}
}
},
"strip-ansi": {
"version": "0.3.0",
"from": "strip-ansi@^0.3.0",
"resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-0.3.0.tgz",
"dependencies": {
"ansi-regex": {
"version": "0.2.1",
"from": "ansi-regex@^0.2.1",
"resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-0.2.1.tgz"
}
}
},
"supports-color": {
"version": "0.2.0",
"from": "supports-color@^0.2.0",
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-0.2.0.tgz"
}
}
},
"lodash": {
"version": "2.4.2",
"from": "lodash@^2.4.1",
"resolved": "https://registry.npmjs.org/lodash/-/lodash-2.4.2.tgz"
},
"maxmin": {
"version": "1.1.0",
"from": "maxmin@^1.0.0",
"resolved": "https://registry.npmjs.org/maxmin/-/maxmin-1.1.0.tgz",
"dependencies": {
"chalk": {
"version": "1.0.0",
"from": "chalk@^1.0.0",
"resolved": "https://registry.npmjs.org/chalk/-/chalk-1.0.0.tgz",
"dependencies": {
"ansi-styles": {
"version": "2.0.1",
"from": "ansi-styles@^2.0.1",
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.0.1.tgz"
},
"escape-string-regexp": {
"version": "1.0.3",
"from": "escape-string-regexp@^1.0.0",
"resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.3.tgz"
},
"has-ansi": {
"version": "1.0.3",
"from": "has-ansi@^1.0.3",
"resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-1.0.3.tgz",
"dependencies": {
"ansi-regex": {
"version": "1.1.1",
"from": "ansi-regex@^1.1.0",
"resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-1.1.1.tgz"
},
"get-stdin": {
"version": "4.0.1",
"from": "get-stdin@^4.0.1",
"resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz"
}
}
},
"strip-ansi": {
"version": "2.0.1",
"from": "strip-ansi@^2.0.1",
"resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-2.0.1.tgz",
"dependencies": {
"ansi-regex": {
"version": "1.1.1",
"from": "ansi-regex@^1.1.0",
"resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-1.1.1.tgz"
}
}
},
"supports-color": {
"version": "1.3.1",
"from": "supports-color@^1.3.0",
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-1.3.1.tgz"
}
}
},
"figures": {
"version": "1.3.5",
"from": "figures@^1.0.1",
"resolved": "https://registry.npmjs.org/figures/-/figures-1.3.5.tgz"
},
"gzip-size": {
"version": "1.0.0",
"from": "gzip-size@^1.0.0",
"resolved": "https://registry.npmjs.org/gzip-size/-/gzip-size-1.0.0.tgz",
"dependencies": {
"concat-stream": {
"version": "1.4.8",
"from": "concat-stream@^1.4.1",
"resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.4.8.tgz",
"dependencies": {
"inherits": {
"version": "2.0.1",
"from": "inherits@~2.0.1",
"resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz"
},
"typedarray": {
"version": "0.0.6",
"from": "typedarray@~0.0.5",
"resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz"
},
"readable-stream": {
"version": "1.1.13",
"from": "readable-stream@~1.1.9",
"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.13.tgz",
"dependencies": {
"core-util-is": {
"version": "1.0.1",
"from": "core-util-is@~1.0.0",
"resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.1.tgz"
},
"isarray": {
"version": "0.0.1",
"from": "isarray@0.0.1",
"resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz"
},
"string_decoder": {
"version": "0.10.31",
"from": "string_decoder@~0.10.x",
"resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz"
}
}
}
}
},
"browserify-zlib": {
"version": "0.1.4",
"from": "browserify-zlib@^0.1.4",
"resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.1.4.tgz",
"dependencies": {
"pako": {
"version": "0.2.6",
"from": "pako@~0.2.0",
"resolved": "https://registry.npmjs.org/pako/-/pako-0.2.6.tgz"
}
}
}
}
},
"pretty-bytes": {
"version": "1.0.4",
"from": "pretty-bytes@^1.0.0",
"resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-1.0.4.tgz",
"dependencies": {
"get-stdin": {
"version": "4.0.1",
"from": "get-stdin@^4.0.1",
"resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz"
},
"meow": {
"version": "3.1.0",
"from": "meow@^3.1.0",
"resolved": "https://registry.npmjs.org/meow/-/meow-3.1.0.tgz",
"dependencies": {
"camelcase-keys": {
"version": "1.0.0",
"from": "camelcase-keys@^1.0.0",
"resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-1.0.0.tgz",
"dependencies": {
"camelcase": {
"version": "1.1.0",
"from": "camelcase@^1.0.1",
"resolved": "https://registry.npmjs.org/camelcase/-/camelcase-1.1.0.tgz"
},
"map-obj": {
"version": "1.0.1",
"from": "map-obj@^1.0.0",
"resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz"
}
}
},
"indent-string": {
"version": "1.2.1",
"from": "indent-string@^1.1.0",
"resolved": "https://registry.npmjs.org/indent-string/-/indent-string-1.2.1.tgz",
"dependencies": {
"repeating": {
"version": "1.1.2",
"from": "repeating@^1.1.0",
"resolved": "https://registry.npmjs.org/repeating/-/repeating-1.1.2.tgz",
"dependencies": {
"is-finite": {
"version": "1.0.0",
"from": "is-finite@^1.0.0",
"resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.0.tgz"
}
}
}
}
},
"minimist": {
"version": "1.1.1",
"from": "minimist@^1.1.0",
"resolved": "https://registry.npmjs.org/minimist/-/minimist-1.1.1.tgz"
},
"object-assign": {
"version": "2.0.0",
"from": "object-assign@^2.0.0",
"resolved": "https://registry.npmjs.org/object-assign/-/object-assign-2.0.0.tgz"
}
}
}
}
}
}
},
"uglify-js": {
"version": "2.4.21",
"from": "uglify-js@^2.4.0",
"resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.4.21.tgz",
"dependencies": {
"async": {
"version": "0.2.10",
"from": "async@~0.2.6",
"resolved": "https://registry.npmjs.org/async/-/async-0.2.10.tgz"
},
"source-map": {
"version": "0.1.34",
"from": "source-map@0.1.34",
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.1.34.tgz",
"dependencies": {
"amdefine": {
"version": "0.1.0",
"from": "amdefine@>=0.0.4",
"resolved": "https://registry.npmjs.org/amdefine/-/amdefine-0.1.0.tgz"
}
}
},
"uglify-to-browserify": {
"version": "1.0.2",
"from": "uglify-to-browserify@~1.0.0",
"resolved": "https://registry.npmjs.org/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz"
},
"yargs": {
"version": "3.5.4",
"from": "yargs@~3.5.4",
"resolved": "https://registry.npmjs.org/yargs/-/yargs-3.5.4.tgz",
"dependencies": {
"camelcase": {
"version": "1.1.0",
"from": "camelcase@^1.0.2",
"resolved": "https://registry.npmjs.org/camelcase/-/camelcase-1.1.0.tgz"
},
"decamelize": {
"version": "1.0.0",
"from": "decamelize@^1.0.0",
"resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.0.0.tgz"
},
"window-size": {
"version": "0.1.0",
"from": "window-size@0.1.0",
"resolved": "https://registry.npmjs.org/window-size/-/window-size-0.1.0.tgz"
},
"wordwrap": {
"version": "0.0.2",
"from": "wordwrap@0.0.2",
"resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.2.tgz"
}
}
}
}
},
"uri-path": {
"version": "0.0.2",
"from": "uri-path@0.0.2",
"resolved": "https://registry.npmjs.org/uri-path/-/uri-path-0.0.2.tgz"
}
}
},
"grunt-contrib-watch": {
"version": "0.6.1",
"from": "grunt-contrib-watch@0.6.1",
"resolved": "https://registry.npmjs.org/grunt-contrib-watch/-/grunt-contrib-watch-0.6.1.tgz",
"dependencies": {
"gaze": {
"version": "0.5.1",
"from": "gaze@~0.5.1",
"resolved": "https://registry.npmjs.org/gaze/-/gaze-0.5.1.tgz",
"dependencies": {
"globule": {
"version": "0.1.0",
"from": "globule@0.1.0",
"resolved": "https://registry.npmjs.org/globule/-/globule-0.1.0.tgz",
"dependencies": {
"lodash": {
"version": "1.0.2",
"from": "lodash@~1.0.1",
"resolved": "https://registry.npmjs.org/lodash/-/lodash-1.0.2.tgz"
},
"glob": {
"version": "3.1.21",
"from": "glob@~3.1.21",
"resolved": "https://registry.npmjs.org/glob/-/glob-3.1.21.tgz",
"dependencies": {
"graceful-fs": {
"version": "1.2.3",
"from": "graceful-fs@~1.2.0",
"resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-1.2.3.tgz"
},
"inherits": {
"version": "1.0.0",
"from": "inherits@1",
"resolved": "https://registry.npmjs.org/inherits/-/inherits-1.0.0.tgz"
}
}
},
"minimatch": {
"version": "0.2.14",
"from": "minimatch@~0.2.11",
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-0.2.14.tgz",
"dependencies": {
"lru-cache": {
"version": "2.6.3",
"from": "lru-cache@2",
"resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-2.6.3.tgz"
},
"sigmund": {
"version": "1.0.0",
"from": "sigmund@~1.0.0",
"resolved": "https://registry.npmjs.org/sigmund/-/sigmund-1.0.0.tgz"
}
}
}
}
}
}
},
"tiny-lr-fork": {
"version": "0.0.5",
"from": "tiny-lr-fork@0.0.5",
"resolved": "https://registry.npmjs.org/tiny-lr-fork/-/tiny-lr-fork-0.0.5.tgz",
"dependencies": {
"qs": {
"version": "0.5.6",
"from": "qs@0.5.6",
"resolved": "https://registry.npmjs.org/qs/-/qs-0.5.6.tgz"
},
"faye-websocket": {
"version": "0.4.4",
"from": "faye-websocket@0.4.4",
"resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.4.4.tgz"
},
"noptify": {
"version": "0.0.3",
"from": "noptify@~0.0.3",
"resolved": "https://registry.npmjs.org/noptify/-/noptify-0.0.3.tgz",
"dependencies": {
"nopt": {
"version": "2.0.0",
"from": "nopt@2.0.0",
"resolved": "https://registry.npmjs.org/nopt/-/nopt-2.0.0.tgz",
"dependencies": {
"abbrev": {
"version": "1.0.5",
"from": "abbrev@1",
"resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.0.5.tgz"
}
}
}
}
},
"debug": {
"version": "0.7.4",
"from": "debug@0.7.4",
"resolved": "https://registry.npmjs.org/debug/-/debug-0.7.4.tgz"
}
}
},
"lodash": {
"version": "2.4.2",
"from": "lodash@2.4.2",
"resolved": "https://registry.npmjs.org/lodash/-/lodash-2.4.2.tgz"
},
"async": {
"version": "0.2.10",
"from": "async@0.2.10",
"resolved": "https://registry.npmjs.org/async/-/async-0.2.10.tgz"
}
}
},
"grunt-phpcs": {
"version": "0.4.0",
"from": "grunt-phpcs@0.4.0",
"resolved": "https://registry.npmjs.org/grunt-phpcs/-/grunt-phpcs-0.4.0.tgz"
}
}
}

View file

@ -1,13 +1,14 @@
{
"name": "alltube",
"version": "0.3.1",
"version": "0.3.2",
"dependencies": {
"grunt": "~0.4.5",
"grunt-cli": "~0.1.13",
"grunt-contrib-cssmin": "~0.10.0",
"grunt-contrib-uglify": "~0.6.0",
"grunt-contrib-watch": "~0.6.1",
"grunt-phpcs": "~0.4.0"
"grunt-phpcs": "~0.4.0",
"grunt-phpunit": "~0.3.6"
},
"engines": {
"node": "~0.10.29"

View file

@ -15,5 +15,9 @@ require_once 'common.php';
require_once 'download.php';
if (isset($_GET["url"])) {
$video = VideoDownload::getURL($_GET["url"]);
header('Location: '.$video['url']);
if (isset($video['url'])) {
header('Location: '.$video['url']);
} else {
echo "Can't find video";
}
}

2
release.sh Executable file
View file

@ -0,0 +1,2 @@
rm alltube-release.zip
zip -r alltube-release.zip *.php dist/ fonts/ .htaccess img/ js/ LICENSE README.md robots.txt sitemap.xml templates/ templates_c/ vendor/ youtube-dl -x config.php

View file

@ -0,0 +1,71 @@
<?php
/**
* VideoDownloadTest class
*
* PHP Version 5.3.10
*
* @category Youtube-dl
* @package Youtubedl
* @author Pierre Rudloff <contact@rudloff.pro>
* @license GNU General Public License http://www.gnu.org/licenses/gpl.html
* @link http://rudloff.pro
* */
require_once __DIR__.'/../common.php';
require_once __DIR__.'/../download.php';
/**
* Unit tests for the VideoDownload class
*
* PHP Version 5.3.10
*
* @category Youtube-dl
* @package Youtubedl
* @author Pierre Rudloff <contact@rudloff.pro>
* @license GNU General Public License http://www.gnu.org/licenses/gpl.html
* @link http://rudloff.pro
* */
class VideoDownloadTest extends PHPUnit_Framework_TestCase
{
static private $_testVideoURL = 'https://www.youtube.com/watch?v=RJJ6FCAXvKg';
/**
* Test getVersion function
* @return void
*/
public function testGetVersion()
{
$this->assertStringMatchesFormat('%i.%i.%i', VideoDownload::getVersion());
}
/**
* Test getUA function
* @return void
*/
public function testGetUA()
{
$this->assertStringStartsWith('Mozilla/', VideoDownload::getUA());
}
/**
* Test listExtractors funtion
* @return void
*/
public function testListExtractors()
{
$extractors = VideoDownload::listExtractors();
$this->assertNotEmpty($extractors);
$this->assertInternalType('array', $extractors);
}
/**
* Test getURL function
* @return void
*/
public function testGetURL()
{
$url = VideoDownload::getURL(self::$_testVideoURL);
$this->assertArrayHasKey('success', $url);
$this->assertArrayHasKey('url', $url);
}
}