From acea5c67f2a9bdba12958ac7a61fe185bb700e1d Mon Sep 17 00:00:00 2001 From: Knah Tsaeb Date: Mon, 6 Jan 2020 14:14:28 +0100 Subject: [PATCH] First release --- .gitignore | 4 + .htaccess | 2 + LICENCE | 13 + README.md | 26 + apps/config.php | 14 + apps/createTask.php | 3 + apps/input.php | 46 ++ apps/login.php | 1 + composer.json | 5 + composer.lock | 73 +++ config/.htaccess | 1 + css/local.css | 3 + css/w3.css | 232 +++++++++ humans.txt | 14 + index.php | 97 ++++ robots.txt | 2 + script/.htaccess | 1 + script/cronTask.sh.sample | 32 ++ template/.htaccess | 1 + template/about.php | 5 + template/addVideo.php | 20 + template/install.php | 18 + template/login.php | 12 + template/template.php | 24 + tmp/.gitkeep | 0 vendor/autoload.php | 7 + vendor/composer/ClassLoader.php | 445 ++++++++++++++++++ vendor/composer/LICENSE | 21 + vendor/composer/autoload_classmap.php | 9 + vendor/composer/autoload_namespaces.php | 9 + vendor/composer/autoload_psr4.php | 10 + vendor/composer/autoload_real.php | 52 ++ vendor/composer/autoload_static.php | 31 ++ vendor/composer/installed.json | 59 +++ vendor/league/plates/CONTRIBUTING.md | 22 + vendor/league/plates/LICENSE | 21 + vendor/league/plates/README.md | 63 +++ vendor/league/plates/composer.json | 41 ++ vendor/league/plates/docs/CNAME | 1 + vendor/league/plates/docs/_data/images.yml | 8 + vendor/league/plates/docs/_data/menu.yml | 24 + vendor/league/plates/docs/_data/project.yml | 4 + .../league/plates/docs/_layouts/default.html | 107 +++++ .../docs/apple-touch-icon-precomposed.png | Bin 0 -> 5531 bytes vendor/league/plates/docs/changelog.md | 15 + vendor/league/plates/docs/css/custom.scss | 16 + .../league/plates/docs/engine/extensions.md | 120 +++++ .../plates/docs/engine/file-extensions.md | 36 ++ vendor/league/plates/docs/engine/folders.md | 50 ++ vendor/league/plates/docs/engine/functions.md | 34 ++ vendor/league/plates/docs/engine/index.md | 56 +++ vendor/league/plates/docs/extensions/asset.md | 59 +++ vendor/league/plates/docs/extensions/uri.md | 83 ++++ vendor/league/plates/docs/favicon.ico | Bin 0 -> 6518 bytes vendor/league/plates/docs/index.md | 40 ++ vendor/league/plates/docs/installation.md | 35 ++ vendor/league/plates/docs/logo.png | Bin 0 -> 2306 bytes vendor/league/plates/docs/simple-example.md | 54 +++ vendor/league/plates/docs/templates/data.md | 61 +++ .../league/plates/docs/templates/escaping.md | 50 ++ .../league/plates/docs/templates/functions.md | 47 ++ vendor/league/plates/docs/templates/index.md | 73 +++ .../plates/docs/templates/inheritance.md | 63 +++ .../league/plates/docs/templates/layouts.md | 102 ++++ .../league/plates/docs/templates/nesting.md | 44 ++ .../league/plates/docs/templates/sections.md | 80 ++++ vendor/league/plates/docs/templates/syntax.md | 50 ++ vendor/league/plates/example/example.php | 12 + .../plates/example/templates/layout.php | 12 + .../plates/example/templates/profile.php | 12 + .../plates/example/templates/sidebar.php | 6 + vendor/league/plates/phpunit.xml.dist | 20 + vendor/league/plates/src/Engine.php | 279 +++++++++++ vendor/league/plates/src/Extension/Asset.php | 85 ++++ .../src/Extension/ExtensionInterface.php | 13 + vendor/league/plates/src/Extension/URI.php | 113 +++++ vendor/league/plates/src/Template/Data.php | 93 ++++ .../league/plates/src/Template/Directory.php | 53 +++ .../plates/src/Template/FileExtension.php | 45 ++ vendor/league/plates/src/Template/Folder.php | 109 +++++ vendor/league/plates/src/Template/Folders.php | 75 +++ vendor/league/plates/src/Template/Func.php | 107 +++++ .../league/plates/src/Template/Functions.php | 78 +++ vendor/league/plates/src/Template/Name.php | 202 ++++++++ .../league/plates/src/Template/Template.php | 346 ++++++++++++++ 85 files changed, 4411 insertions(+) create mode 100644 .gitignore create mode 100644 .htaccess create mode 100644 LICENCE create mode 100644 README.md create mode 100644 apps/config.php create mode 100644 apps/createTask.php create mode 100644 apps/input.php create mode 100644 apps/login.php create mode 100644 composer.json create mode 100644 composer.lock create mode 100644 config/.htaccess create mode 100644 css/local.css create mode 100644 css/w3.css create mode 100644 humans.txt create mode 100644 index.php create mode 100644 robots.txt create mode 100644 script/.htaccess create mode 100644 script/cronTask.sh.sample create mode 100644 template/.htaccess create mode 100644 template/about.php create mode 100644 template/addVideo.php create mode 100644 template/install.php create mode 100644 template/login.php create mode 100644 template/template.php create mode 100644 tmp/.gitkeep create mode 100644 vendor/autoload.php create mode 100644 vendor/composer/ClassLoader.php create mode 100644 vendor/composer/LICENSE create mode 100644 vendor/composer/autoload_classmap.php create mode 100644 vendor/composer/autoload_namespaces.php create mode 100644 vendor/composer/autoload_psr4.php create mode 100644 vendor/composer/autoload_real.php create mode 100644 vendor/composer/autoload_static.php create mode 100644 vendor/composer/installed.json create mode 100644 vendor/league/plates/CONTRIBUTING.md create mode 100644 vendor/league/plates/LICENSE create mode 100644 vendor/league/plates/README.md create mode 100644 vendor/league/plates/composer.json create mode 100644 vendor/league/plates/docs/CNAME create mode 100644 vendor/league/plates/docs/_data/images.yml create mode 100644 vendor/league/plates/docs/_data/menu.yml create mode 100644 vendor/league/plates/docs/_data/project.yml create mode 100644 vendor/league/plates/docs/_layouts/default.html create mode 100644 vendor/league/plates/docs/apple-touch-icon-precomposed.png create mode 100644 vendor/league/plates/docs/changelog.md create mode 100644 vendor/league/plates/docs/css/custom.scss create mode 100644 vendor/league/plates/docs/engine/extensions.md create mode 100644 vendor/league/plates/docs/engine/file-extensions.md create mode 100644 vendor/league/plates/docs/engine/folders.md create mode 100644 vendor/league/plates/docs/engine/functions.md create mode 100644 vendor/league/plates/docs/engine/index.md create mode 100644 vendor/league/plates/docs/extensions/asset.md create mode 100644 vendor/league/plates/docs/extensions/uri.md create mode 100644 vendor/league/plates/docs/favicon.ico create mode 100644 vendor/league/plates/docs/index.md create mode 100644 vendor/league/plates/docs/installation.md create mode 100644 vendor/league/plates/docs/logo.png create mode 100644 vendor/league/plates/docs/simple-example.md create mode 100644 vendor/league/plates/docs/templates/data.md create mode 100644 vendor/league/plates/docs/templates/escaping.md create mode 100644 vendor/league/plates/docs/templates/functions.md create mode 100644 vendor/league/plates/docs/templates/index.md create mode 100644 vendor/league/plates/docs/templates/inheritance.md create mode 100644 vendor/league/plates/docs/templates/layouts.md create mode 100644 vendor/league/plates/docs/templates/nesting.md create mode 100644 vendor/league/plates/docs/templates/sections.md create mode 100644 vendor/league/plates/docs/templates/syntax.md create mode 100644 vendor/league/plates/example/example.php create mode 100644 vendor/league/plates/example/templates/layout.php create mode 100644 vendor/league/plates/example/templates/profile.php create mode 100644 vendor/league/plates/example/templates/sidebar.php create mode 100755 vendor/league/plates/phpunit.xml.dist create mode 100644 vendor/league/plates/src/Engine.php create mode 100644 vendor/league/plates/src/Extension/Asset.php create mode 100644 vendor/league/plates/src/Extension/ExtensionInterface.php create mode 100644 vendor/league/plates/src/Extension/URI.php create mode 100644 vendor/league/plates/src/Template/Data.php create mode 100644 vendor/league/plates/src/Template/Directory.php create mode 100644 vendor/league/plates/src/Template/FileExtension.php create mode 100644 vendor/league/plates/src/Template/Folder.php create mode 100644 vendor/league/plates/src/Template/Folders.php create mode 100644 vendor/league/plates/src/Template/Func.php create mode 100644 vendor/league/plates/src/Template/Functions.php create mode 100644 vendor/league/plates/src/Template/Name.php create mode 100644 vendor/league/plates/src/Template/Template.php diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..cdcbcad --- /dev/null +++ b/.gitignore @@ -0,0 +1,4 @@ +config/config.php +tmp/* +!tmp/.gitkeep +script/cronTask.sh \ No newline at end of file diff --git a/.htaccess b/.htaccess new file mode 100644 index 0000000..0a18146 --- /dev/null +++ b/.htaccess @@ -0,0 +1,2 @@ +AddDefaultCharset UTF-8 +Options -Indexes \ No newline at end of file diff --git a/LICENCE b/LICENCE new file mode 100644 index 0000000..698bb68 --- /dev/null +++ b/LICENCE @@ -0,0 +1,13 @@ + DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE + Version 2, December 2004 + +Copyright (C) 2020 Knah Tsaeb + +Everyone is permitted to copy and distribute verbatim or modified +copies of this license document, and changing it is allowed as long +as the name is changed. + + DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. You just DO WHAT THE FUCK YOU WANT TO. \ No newline at end of file diff --git a/README.md b/README.md new file mode 100644 index 0000000..bca5caa --- /dev/null +++ b/README.md @@ -0,0 +1,26 @@ +# PerYouDow + +**PER**sonal **YOU**tube-dl **DOW**nloader is limited PHP/HTML GUI for downloading video on your machine. + +## Instalation + +#### Without git +`mkdir /tmp/peryoudow` +`cd /tmp/peryoudown` +`wget https://forge.leslibres.org/Knah-Tsaeb/peryoudow/archive/ master.zip` +`unzip master.zip` +`mv master.zip /path/of/web/server/peryoudown` + +#### With git +`mkdir /path/of/web/server/peryoudown` +`cd /path/of/web/server/peryoudown` +`git clone https://forge.leslibres.org/Knah-Tsaeb/peryoudow.git .` + +Open it this location in your browser. +Fill username, password and list of possible destination path separate with semicolon. + +`cp /path/of/web/server/peryoudown/script/cronTask.sh.sample /path/of/web/server/peryoudown/script/cronTask.sh` + +Setup a cron job for /path/of/web/server/peryoudown/script/cronTask.sh you can run task every 15 min. + +Enjoy :-) \ No newline at end of file diff --git a/apps/config.php b/apps/config.php new file mode 100644 index 0000000..68f6199 --- /dev/null +++ b/apps/config.php @@ -0,0 +1,14 @@ + &$value){ + if(empty($value)){ + unset($createPath[$key]); + } + if(substr($value, -1) !== '/'){ + $value = $value.'/'; + } + } +} + +if(isset($_POST['videoUrl'])){ + $url = escapeshellcmd($_POST['videoUrl']); + $destination = escapeshellcmd($_POST['destination']); + require 'apps/createTask.php'; + //exec('bash script/cronTask.sh.sample', $array); +} + +function trim_value(&$value) +{ + $value = trim($value); +} \ No newline at end of file diff --git a/apps/login.php b/apps/login.php new file mode 100644 index 0000000..b3d9bbc --- /dev/null +++ b/apps/login.php @@ -0,0 +1 @@ + .w3-button:first-child,.w3-dropdown-click:hover > .w3-button:first-child{background-color:#ccc;color:#000} +.w3-dropdown-content{cursor:auto;color:#000;background-color:#fff;display:none;position:absolute;min-width:160px;margin:0;padding:0;z-index:1} +.w3-check,.w3-radio{width:24px;height:24px;position:relative;top:6px} +.w3-sidebar{height:100%;width:200px;background-color:#fff;position:fixed!important;z-index:1;overflow:auto} +.w3-bar-block .w3-dropdown-hover,.w3-bar-block .w3-dropdown-click{width:100%} +.w3-bar-block .w3-dropdown-hover .w3-dropdown-content,.w3-bar-block .w3-dropdown-click .w3-dropdown-content{min-width:100%} +.w3-bar-block .w3-dropdown-hover .w3-button,.w3-bar-block .w3-dropdown-click .w3-button{width:100%;text-align:left;padding:8px 16px} +.w3-main,#main{transition:margin-left .4s} +.w3-modal{z-index:3;display:none;padding-top:100px;position:fixed;left:0;top:0;width:100%;height:100%;overflow:auto;background-color:rgb(0,0,0);background-color:rgba(0,0,0,0.4)} +.w3-modal-content{margin:auto;background-color:#fff;position:relative;padding:0;outline:0;width:600px} +.w3-bar{width:100%;overflow:hidden}.w3-center .w3-bar{display:inline-block;width:auto} +.w3-bar .w3-bar-item{padding:8px 16px;float:left;width:auto;border:none;display:block;outline:0} +.w3-bar .w3-dropdown-hover,.w3-bar .w3-dropdown-click{position:static;float:left} +.w3-bar .w3-button{white-space:normal} +.w3-bar-block .w3-bar-item{width:100%;display:block;padding:8px 16px;text-align:left;border:none;white-space:normal;float:none;outline:0} +.w3-bar-block.w3-center .w3-bar-item{text-align:center}.w3-block{display:block;width:100%} +.w3-responsive{display:block;overflow-x:auto} +.w3-container:after,.w3-container:before,.w3-panel:after,.w3-panel:before,.w3-row:after,.w3-row:before,.w3-row-padding:after,.w3-row-padding:before, +.w3-cell-row:before,.w3-cell-row:after,.w3-clear:after,.w3-clear:before,.w3-bar:before,.w3-bar:after{content:"";display:table;clear:both} +.w3-col,.w3-half,.w3-third,.w3-twothird,.w3-threequarter,.w3-quarter{float:left;width:100%} +.w3-col.s1{width:8.33333%}.w3-col.s2{width:16.66666%}.w3-col.s3{width:24.99999%}.w3-col.s4{width:33.33333%} +.w3-col.s5{width:41.66666%}.w3-col.s6{width:49.99999%}.w3-col.s7{width:58.33333%}.w3-col.s8{width:66.66666%} +.w3-col.s9{width:74.99999%}.w3-col.s10{width:83.33333%}.w3-col.s11{width:91.66666%}.w3-col.s12{width:99.99999%} +@media (min-width:601px){.w3-col.m1{width:8.33333%}.w3-col.m2{width:16.66666%}.w3-col.m3,.w3-quarter{width:24.99999%}.w3-col.m4,.w3-third{width:33.33333%} +.w3-col.m5{width:41.66666%}.w3-col.m6,.w3-half{width:49.99999%}.w3-col.m7{width:58.33333%}.w3-col.m8,.w3-twothird{width:66.66666%} +.w3-col.m9,.w3-threequarter{width:74.99999%}.w3-col.m10{width:83.33333%}.w3-col.m11{width:91.66666%}.w3-col.m12{width:99.99999%}} +@media (min-width:993px){.w3-col.l1{width:8.33333%}.w3-col.l2{width:16.66666%}.w3-col.l3{width:24.99999%}.w3-col.l4{width:33.33333%} +.w3-col.l5{width:41.66666%}.w3-col.l6{width:49.99999%}.w3-col.l7{width:58.33333%}.w3-col.l8{width:66.66666%} +.w3-col.l9{width:74.99999%}.w3-col.l10{width:83.33333%}.w3-col.l11{width:91.66666%}.w3-col.l12{width:99.99999%}} +.w3-rest{overflow:hidden}.w3-stretch{margin-left:-16px;margin-right:-16px} +.w3-content,.w3-auto{margin-left:auto;margin-right:auto}.w3-content{max-width:980px}.w3-auto{max-width:1140px} +.w3-cell-row{display:table;width:100%}.w3-cell{display:table-cell} +.w3-cell-top{vertical-align:top}.w3-cell-middle{vertical-align:middle}.w3-cell-bottom{vertical-align:bottom} +.w3-hide{display:none!important}.w3-show-block,.w3-show{display:block!important}.w3-show-inline-block{display:inline-block!important} +@media (max-width:1205px){.w3-auto{max-width:95%}} +@media (max-width:600px){.w3-modal-content{margin:0 10px;width:auto!important}.w3-modal{padding-top:30px} +.w3-dropdown-hover.w3-mobile .w3-dropdown-content,.w3-dropdown-click.w3-mobile .w3-dropdown-content{position:relative} +.w3-hide-small{display:none!important}.w3-mobile{display:block;width:100%!important}.w3-bar-item.w3-mobile,.w3-dropdown-hover.w3-mobile,.w3-dropdown-click.w3-mobile{text-align:center} +.w3-dropdown-hover.w3-mobile,.w3-dropdown-hover.w3-mobile .w3-btn,.w3-dropdown-hover.w3-mobile .w3-button,.w3-dropdown-click.w3-mobile,.w3-dropdown-click.w3-mobile .w3-btn,.w3-dropdown-click.w3-mobile .w3-button{width:100%}} +@media (max-width:768px){.w3-modal-content{width:500px}.w3-modal{padding-top:50px}} +@media (min-width:993px){.w3-modal-content{width:900px}.w3-hide-large{display:none!important}.w3-sidebar.w3-collapse{display:block!important}} +@media (max-width:992px) and (min-width:601px){.w3-hide-medium{display:none!important}} +@media (max-width:992px){.w3-sidebar.w3-collapse{display:none}.w3-main{margin-left:0!important;margin-right:0!important}.w3-auto{max-width:100%}} +.w3-top,.w3-bottom{position:fixed;width:100%;z-index:1}.w3-top{top:0}.w3-bottom{bottom:0} +.w3-overlay{position:fixed;display:none;width:100%;height:100%;top:0;left:0;right:0;bottom:0;background-color:rgba(0,0,0,0.5);z-index:2} +.w3-display-topleft{position:absolute;left:0;top:0}.w3-display-topright{position:absolute;right:0;top:0} +.w3-display-bottomleft{position:absolute;left:0;bottom:0}.w3-display-bottomright{position:absolute;right:0;bottom:0} +.w3-display-middle{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);-ms-transform:translate(-50%,-50%)} +.w3-display-left{position:absolute;top:50%;left:0%;transform:translate(0%,-50%);-ms-transform:translate(-0%,-50%)} +.w3-display-right{position:absolute;top:50%;right:0%;transform:translate(0%,-50%);-ms-transform:translate(0%,-50%)} +.w3-display-topmiddle{position:absolute;left:50%;top:0;transform:translate(-50%,0%);-ms-transform:translate(-50%,0%)} +.w3-display-bottommiddle{position:absolute;left:50%;bottom:0;transform:translate(-50%,0%);-ms-transform:translate(-50%,0%)} +.w3-display-container:hover .w3-display-hover{display:block}.w3-display-container:hover span.w3-display-hover{display:inline-block}.w3-display-hover{display:none} +.w3-display-position{position:absolute} +.w3-circle{border-radius:50%} +.w3-round-small{border-radius:2px}.w3-round,.w3-round-medium{border-radius:4px}.w3-round-large{border-radius:8px}.w3-round-xlarge{border-radius:16px}.w3-round-xxlarge{border-radius:32px} +.w3-row-padding,.w3-row-padding>.w3-half,.w3-row-padding>.w3-third,.w3-row-padding>.w3-twothird,.w3-row-padding>.w3-threequarter,.w3-row-padding>.w3-quarter,.w3-row-padding>.w3-col{padding:0 8px} +.w3-container,.w3-panel{padding:0.01em 16px}.w3-panel{margin-top:16px;margin-bottom:16px} +.w3-code,.w3-codespan{font-family:Consolas,"courier new";font-size:16px} +.w3-code{width:auto;background-color:#fff;padding:8px 12px;border-left:4px solid #4CAF50;word-wrap:break-word} +.w3-codespan{color:crimson;background-color:#f1f1f1;padding-left:4px;padding-right:4px;font-size:110%} +.w3-card,.w3-card-2{box-shadow:0 2px 5px 0 rgba(0,0,0,0.16),0 2px 10px 0 rgba(0,0,0,0.12)} +.w3-card-4,.w3-hover-shadow:hover{box-shadow:0 4px 10px 0 rgba(0,0,0,0.2),0 4px 20px 0 rgba(0,0,0,0.19)} +.w3-spin{animation:w3-spin 2s infinite linear}@keyframes w3-spin{0%{transform:rotate(0deg)}100%{transform:rotate(359deg)}} +.w3-animate-fading{animation:fading 10s infinite}@keyframes fading{0%{opacity:0}50%{opacity:1}100%{opacity:0}} +.w3-animate-opacity{animation:opac 0.8s}@keyframes opac{from{opacity:0} to{opacity:1}} +.w3-animate-top{position:relative;animation:animatetop 0.4s}@keyframes animatetop{from{top:-300px;opacity:0} to{top:0;opacity:1}} +.w3-animate-left{position:relative;animation:animateleft 0.4s}@keyframes animateleft{from{left:-300px;opacity:0} to{left:0;opacity:1}} +.w3-animate-right{position:relative;animation:animateright 0.4s}@keyframes animateright{from{right:-300px;opacity:0} to{right:0;opacity:1}} +.w3-animate-bottom{position:relative;animation:animatebottom 0.4s}@keyframes animatebottom{from{bottom:-300px;opacity:0} to{bottom:0;opacity:1}} +.w3-animate-zoom {animation:animatezoom 0.6s}@keyframes animatezoom{from{transform:scale(0)} to{transform:scale(1)}} +.w3-animate-input{transition:width 0.4s ease-in-out}.w3-animate-input:focus{width:100%!important} +.w3-opacity,.w3-hover-opacity:hover{opacity:0.60}.w3-opacity-off,.w3-hover-opacity-off:hover{opacity:1} +.w3-opacity-max{opacity:0.25}.w3-opacity-min{opacity:0.75} +.w3-greyscale-max,.w3-grayscale-max,.w3-hover-greyscale:hover,.w3-hover-grayscale:hover{filter:grayscale(100%)} +.w3-greyscale,.w3-grayscale{filter:grayscale(75%)}.w3-greyscale-min,.w3-grayscale-min{filter:grayscale(50%)} +.w3-sepia{filter:sepia(75%)}.w3-sepia-max,.w3-hover-sepia:hover{filter:sepia(100%)}.w3-sepia-min{filter:sepia(50%)} +.w3-tiny{font-size:10px!important}.w3-small{font-size:12px!important}.w3-medium{font-size:15px!important}.w3-large{font-size:18px!important} +.w3-xlarge{font-size:24px!important}.w3-xxlarge{font-size:36px!important}.w3-xxxlarge{font-size:48px!important}.w3-jumbo{font-size:64px!important} +.w3-left-align{text-align:left!important}.w3-right-align{text-align:right!important}.w3-justify{text-align:justify!important}.w3-center{text-align:center!important} +.w3-border-0{border:0!important}.w3-border{border:1px solid #ccc!important} +.w3-border-top{border-top:1px solid #ccc!important}.w3-border-bottom{border-bottom:1px solid #ccc!important} +.w3-border-left{border-left:1px solid #ccc!important}.w3-border-right{border-right:1px solid #ccc!important} +.w3-topbar{border-top:6px solid #ccc!important}.w3-bottombar{border-bottom:6px solid #ccc!important} +.w3-leftbar{border-left:6px solid #ccc!important}.w3-rightbar{border-right:6px solid #ccc!important} +.w3-section,.w3-code{margin-top:16px!important;margin-bottom:16px!important} +.w3-margin{margin:16px!important}.w3-margin-top{margin-top:16px!important}.w3-margin-bottom{margin-bottom:16px!important} +.w3-margin-left{margin-left:16px!important}.w3-margin-right{margin-right:16px!important} +.w3-padding-small{padding:4px 8px!important}.w3-padding{padding:8px 16px!important}.w3-padding-large{padding:12px 24px!important} +.w3-padding-16{padding-top:16px!important;padding-bottom:16px!important}.w3-padding-24{padding-top:24px!important;padding-bottom:24px!important} +.w3-padding-32{padding-top:32px!important;padding-bottom:32px!important}.w3-padding-48{padding-top:48px!important;padding-bottom:48px!important} +.w3-padding-64{padding-top:64px!important;padding-bottom:64px!important} +.w3-left{float:left!important}.w3-right{float:right!important} +.w3-button:hover{color:#000!important;background-color:#ccc!important} +.w3-transparent,.w3-hover-none:hover{background-color:transparent!important} +.w3-hover-none:hover{box-shadow:none!important} +/* Colors */ +.w3-amber,.w3-hover-amber:hover{color:#000!important;background-color:#ffc107!important} +.w3-aqua,.w3-hover-aqua:hover{color:#000!important;background-color:#00ffff!important} +.w3-blue,.w3-hover-blue:hover{color:#fff!important;background-color:#2196F3!important} +.w3-light-blue,.w3-hover-light-blue:hover{color:#000!important;background-color:#87CEEB!important} +.w3-brown,.w3-hover-brown:hover{color:#fff!important;background-color:#795548!important} +.w3-cyan,.w3-hover-cyan:hover{color:#000!important;background-color:#00bcd4!important} +.w3-blue-grey,.w3-hover-blue-grey:hover,.w3-blue-gray,.w3-hover-blue-gray:hover{color:#fff!important;background-color:#607d8b!important} +.w3-green,.w3-hover-green:hover{color:#fff!important;background-color:#4CAF50!important} +.w3-light-green,.w3-hover-light-green:hover{color:#000!important;background-color:#8bc34a!important} +.w3-indigo,.w3-hover-indigo:hover{color:#fff!important;background-color:#3f51b5!important} +.w3-khaki,.w3-hover-khaki:hover{color:#000!important;background-color:#f0e68c!important} +.w3-lime,.w3-hover-lime:hover{color:#000!important;background-color:#cddc39!important} +.w3-orange,.w3-hover-orange:hover{color:#000!important;background-color:#ff9800!important} +.w3-deep-orange,.w3-hover-deep-orange:hover{color:#fff!important;background-color:#ff5722!important} +.w3-pink,.w3-hover-pink:hover{color:#fff!important;background-color:#e91e63!important} +.w3-purple,.w3-hover-purple:hover{color:#fff!important;background-color:#9c27b0!important} +.w3-deep-purple,.w3-hover-deep-purple:hover{color:#fff!important;background-color:#673ab7!important} +.w3-red,.w3-hover-red:hover{color:#fff!important;background-color:#f44336!important} +.w3-sand,.w3-hover-sand:hover{color:#000!important;background-color:#fdf5e6!important} +.w3-teal,.w3-hover-teal:hover{color:#fff!important;background-color:#009688!important} +.w3-yellow,.w3-hover-yellow:hover{color:#000!important;background-color:#ffeb3b!important} +.w3-white,.w3-hover-white:hover{color:#000!important;background-color:#fff!important} +.w3-black,.w3-hover-black:hover{color:#fff!important;background-color:#000!important} +.w3-grey,.w3-hover-grey:hover,.w3-gray,.w3-hover-gray:hover{color:#000!important;background-color:#9e9e9e!important} +.w3-light-grey,.w3-hover-light-grey:hover,.w3-light-gray,.w3-hover-light-gray:hover{color:#000!important;background-color:#f1f1f1!important} +.w3-dark-grey,.w3-hover-dark-grey:hover,.w3-dark-gray,.w3-hover-dark-gray:hover{color:#fff!important;background-color:#616161!important} +.w3-pale-red,.w3-hover-pale-red:hover{color:#000!important;background-color:#ffdddd!important} +.w3-pale-green,.w3-hover-pale-green:hover{color:#000!important;background-color:#ddffdd!important} +.w3-pale-yellow,.w3-hover-pale-yellow:hover{color:#000!important;background-color:#ffffcc!important} +.w3-pale-blue,.w3-hover-pale-blue:hover{color:#000!important;background-color:#ddffff!important} +.w3-text-amber,.w3-hover-text-amber:hover{color:#ffc107!important} +.w3-text-aqua,.w3-hover-text-aqua:hover{color:#00ffff!important} +.w3-text-blue,.w3-hover-text-blue:hover{color:#2196F3!important} +.w3-text-light-blue,.w3-hover-text-light-blue:hover{color:#87CEEB!important} +.w3-text-brown,.w3-hover-text-brown:hover{color:#795548!important} +.w3-text-cyan,.w3-hover-text-cyan:hover{color:#00bcd4!important} +.w3-text-blue-grey,.w3-hover-text-blue-grey:hover,.w3-text-blue-gray,.w3-hover-text-blue-gray:hover{color:#607d8b!important} +.w3-text-green,.w3-hover-text-green:hover{color:#4CAF50!important} +.w3-text-light-green,.w3-hover-text-light-green:hover{color:#8bc34a!important} +.w3-text-indigo,.w3-hover-text-indigo:hover{color:#3f51b5!important} +.w3-text-khaki,.w3-hover-text-khaki:hover{color:#b4aa50!important} +.w3-text-lime,.w3-hover-text-lime:hover{color:#cddc39!important} +.w3-text-orange,.w3-hover-text-orange:hover{color:#ff9800!important} +.w3-text-deep-orange,.w3-hover-text-deep-orange:hover{color:#ff5722!important} +.w3-text-pink,.w3-hover-text-pink:hover{color:#e91e63!important} +.w3-text-purple,.w3-hover-text-purple:hover{color:#9c27b0!important} +.w3-text-deep-purple,.w3-hover-text-deep-purple:hover{color:#673ab7!important} +.w3-text-red,.w3-hover-text-red:hover{color:#f44336!important} +.w3-text-sand,.w3-hover-text-sand:hover{color:#fdf5e6!important} +.w3-text-teal,.w3-hover-text-teal:hover{color:#009688!important} +.w3-text-yellow,.w3-hover-text-yellow:hover{color:#d2be0e!important} +.w3-text-white,.w3-hover-text-white:hover{color:#fff!important} +.w3-text-black,.w3-hover-text-black:hover{color:#000!important} +.w3-text-grey,.w3-hover-text-grey:hover,.w3-text-gray,.w3-hover-text-gray:hover{color:#757575!important} +.w3-text-light-grey,.w3-hover-text-light-grey:hover,.w3-text-light-gray,.w3-hover-text-light-gray:hover{color:#f1f1f1!important} +.w3-text-dark-grey,.w3-hover-text-dark-grey:hover,.w3-text-dark-gray,.w3-hover-text-dark-gray:hover{color:#3a3a3a!important} +.w3-border-amber,.w3-hover-border-amber:hover{border-color:#ffc107!important} +.w3-border-aqua,.w3-hover-border-aqua:hover{border-color:#00ffff!important} +.w3-border-blue,.w3-hover-border-blue:hover{border-color:#2196F3!important} +.w3-border-light-blue,.w3-hover-border-light-blue:hover{border-color:#87CEEB!important} +.w3-border-brown,.w3-hover-border-brown:hover{border-color:#795548!important} +.w3-border-cyan,.w3-hover-border-cyan:hover{border-color:#00bcd4!important} +.w3-border-blue-grey,.w3-hover-border-blue-grey:hover,.w3-border-blue-gray,.w3-hover-border-blue-gray:hover{border-color:#607d8b!important} +.w3-border-green,.w3-hover-border-green:hover{border-color:#4CAF50!important} +.w3-border-light-green,.w3-hover-border-light-green:hover{border-color:#8bc34a!important} +.w3-border-indigo,.w3-hover-border-indigo:hover{border-color:#3f51b5!important} +.w3-border-khaki,.w3-hover-border-khaki:hover{border-color:#f0e68c!important} +.w3-border-lime,.w3-hover-border-lime:hover{border-color:#cddc39!important} +.w3-border-orange,.w3-hover-border-orange:hover{border-color:#ff9800!important} +.w3-border-deep-orange,.w3-hover-border-deep-orange:hover{border-color:#ff5722!important} +.w3-border-pink,.w3-hover-border-pink:hover{border-color:#e91e63!important} +.w3-border-purple,.w3-hover-border-purple:hover{border-color:#9c27b0!important} +.w3-border-deep-purple,.w3-hover-border-deep-purple:hover{border-color:#673ab7!important} +.w3-border-red,.w3-hover-border-red:hover{border-color:#f44336!important} +.w3-border-sand,.w3-hover-border-sand:hover{border-color:#fdf5e6!important} +.w3-border-teal,.w3-hover-border-teal:hover{border-color:#009688!important} +.w3-border-yellow,.w3-hover-border-yellow:hover{border-color:#ffeb3b!important} +.w3-border-white,.w3-hover-border-white:hover{border-color:#fff!important} +.w3-border-black,.w3-hover-border-black:hover{border-color:#000!important} +.w3-border-grey,.w3-hover-border-grey:hover,.w3-border-gray,.w3-hover-border-gray:hover{border-color:#9e9e9e!important} +.w3-border-light-grey,.w3-hover-border-light-grey:hover,.w3-border-light-gray,.w3-hover-border-light-gray:hover{border-color:#f1f1f1!important} +.w3-border-dark-grey,.w3-hover-border-dark-grey:hover,.w3-border-dark-gray,.w3-hover-border-dark-gray:hover{border-color:#616161!important} +.w3-border-pale-red,.w3-hover-border-pale-red:hover{border-color:#ffe7e7!important}.w3-border-pale-green,.w3-hover-border-pale-green:hover{border-color:#e7ffe7!important} +.w3-border-pale-yellow,.w3-hover-border-pale-yellow:hover{border-color:#ffffcc!important}.w3-border-pale-blue,.w3-hover-border-pale-blue:hover{border-color:#e7ffff!important} \ No newline at end of file diff --git a/humans.txt b/humans.txt new file mode 100644 index 0000000..98b6dc6 --- /dev/null +++ b/humans.txt @@ -0,0 +1,14 @@ +/* TEAM */ + Projet: Knah Tsaeb + From: France + +/* SITE */ + Last update:2020/01/02 + Language: English + Doctype:HTML5 + IDE: Code OSS + +/* TECHNOLOGY */ + + CSS3, HTML5 + W3C.css, Plates \ No newline at end of file diff --git a/index.php b/index.php new file mode 100644 index 0000000..897e406 --- /dev/null +++ b/index.php @@ -0,0 +1,97 @@ +', $name, ''; + echo '
'; + echo '', basename($aBackTrace[0]['file']), ' ligne => ', $aBackTrace[0]['line'], ''; + echo '
', htmlentities(print_r($data, 1)), '
'; + echo '

'; +} + +require 'vendor/autoload.php'; + +require 'apps/config.php'; +$templates = new League\Plates\Engine('template'); + +if (file_exists('config/config.php')) { + $config = MyConfig::read('config'); +} else { + $page = 'install'; +} + +require 'apps/input.php'; + +if (!empty($page) && $page === 'about') { + echo $templates->render($page); +} + +if (!empty($page) && $page === 'install' && !file_exists('config/config.php')) { + if (!isset($createLogin) && empty($createLogin)) { + echo $templates->render($page, ['missing' => 'login']); + exit(); + } + if (!isset($createPassword) && empty($createPassword)) { + echo $templates->render($page, ['missing' => 'password']); + exit(); + } + if (!isset($createPath) && empty($createPath)) { + echo $templates->render($page, ['missing' => 'path']); + exit(); + } + $conf = array('login' => $createLogin, 'password' => $createPassword, 'listOfDestPath' => $createPath); + $config = MyConfig::write('config', $conf); + $page = 'login'; +} + +if (!empty($page) && $page === 'login') { + $loginError = false; + if (!empty($_POST['login'])) { + $login = filter_input(INPUT_POST, 'login', FILTER_SANITIZE_SPECIAL_CHARS); + if ($login !== $config['login']) { + $loginError = true; + } + } else { + $loginError = true; + } + + if (!empty($_POST['password'])) { + if (!password_verify($_POST['password'], $config['password'])) { + $loginError = true; + } + } else { + $loginError = true; + } + + if ($loginError) { + echo $templates->render('login'); + } else { + echo $templates->render('addVideo', array('listOfDestPath' => $config['listOfDestPath'])); + } + $_SESSION['login'] = 'logged'; +} + +if (empty($page)) { + if (isset($_SESSION['login']) && $_SESSION['login'] === 'logged') { + echo $templates->render('addVideo', array('listOfDestPath' => $config['listOfDestPath'])); + } else { + echo $templates->render('login'); + } +} +//echo $templates->render($page); \ No newline at end of file diff --git a/robots.txt b/robots.txt new file mode 100644 index 0000000..06d4ce1 --- /dev/null +++ b/robots.txt @@ -0,0 +1,2 @@ + User-agent: * + Disallow: / \ No newline at end of file diff --git a/script/.htaccess b/script/.htaccess new file mode 100644 index 0000000..2c73686 --- /dev/null +++ b/script/.htaccess @@ -0,0 +1 @@ +Deny from All \ No newline at end of file diff --git a/script/cronTask.sh.sample b/script/cronTask.sh.sample new file mode 100644 index 0000000..da696a6 --- /dev/null +++ b/script/cronTask.sh.sample @@ -0,0 +1,32 @@ +#!/bin/bash/ +###################### +#### START CONFIG #### +###################### +tmpDir=../tmp/ +###################### +#### END CONFIG ###### +###################### + +cd $tmpDir + +if [ -f task.lock ]; +then + exit +fi + +touch task.lock + +for file in $tempDest*.request +do + if [ -f $tmpDir/$file ]; + then + while IFS=';' read url finalPath + do + echo $url + echo $finalPath + youtube-dl -c --write-thumbnail --write-sub --sub-lang fr --write-info-json --no-check-certificate -f "[height <=?720]" -o $finalPath"%(title)s.%(ext)s" "$url" + done < $file + rm $file + fi +done +rm task.lock \ No newline at end of file diff --git a/template/.htaccess b/template/.htaccess new file mode 100644 index 0000000..2c73686 --- /dev/null +++ b/template/.htaccess @@ -0,0 +1 @@ +Deny from All \ No newline at end of file diff --git a/template/about.php b/template/about.php new file mode 100644 index 0000000..b2d8f78 --- /dev/null +++ b/template/about.php @@ -0,0 +1,5 @@ +layout('template') ?> +

About

+

+PERsonal YOUtube-dl DOWnloader is limited PHP/HTML GUI for downloading video on your machine. +

\ No newline at end of file diff --git a/template/addVideo.php b/template/addVideo.php new file mode 100644 index 0000000..fa5cae9 --- /dev/null +++ b/template/addVideo.php @@ -0,0 +1,20 @@ +layout('template')?> + +

Add video

+ +
+ + + + + +
+ +
+ + +
\ No newline at end of file diff --git a/template/install.php b/template/install.php new file mode 100644 index 0000000..00bfc8e --- /dev/null +++ b/template/install.php @@ -0,0 +1,18 @@ +layout('template') ?> +

Setup

+ +

+ + You must complete field. + +

+
+ + + + +