commit dd2409abe5599df905dfff36d59c7a17222d694c Author: Albirew Date: Tue Sep 5 14:48:58 2017 +0200 initial commit diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..3ddf8a8 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +/volumes/* diff --git a/.htaccess b/.htaccess new file mode 100644 index 0000000..667750a --- /dev/null +++ b/.htaccess @@ -0,0 +1,5 @@ +RewriteEngine on +RewriteBase / +RewriteCond %{THE_REQUEST} /index\.php\?r=([^\s]+) [NC] +RewriteRule . paluchage-sur-%1.html? [R=301,L] +RewriteRule ^paluchage-sur-(.+)\.html$ index.php?r=$1 [L] diff --git a/LICENSE.md b/LICENSE.md new file mode 100644 index 0000000..670154e --- /dev/null +++ b/LICENSE.md @@ -0,0 +1,116 @@ +CC0 1.0 Universal + +Statement of Purpose + +The laws of most jurisdictions throughout the world automatically confer +exclusive Copyright and Related Rights (defined below) upon the creator and +subsequent owner(s) (each and all, an "owner") of an original work of +authorship and/or a database (each, a "Work"). + +Certain owners wish to permanently relinquish those rights to a Work for the +purpose of contributing to a commons of creative, cultural and scientific +works ("Commons") that the public can reliably and without fear of later +claims of infringement build upon, modify, incorporate in other works, reuse +and redistribute as freely as possible in any form whatsoever and for any +purposes, including without limitation commercial purposes. These owners may +contribute to the Commons to promote the ideal of a free culture and the +further production of creative, cultural and scientific works, or to gain +reputation or greater distribution for their Work in part through the use and +efforts of others. + +For these and/or other purposes and motivations, and without any expectation +of additional consideration or compensation, the person associating CC0 with a +Work (the "Affirmer"), to the extent that he or she is an owner of Copyright +and Related Rights in the Work, voluntarily elects to apply CC0 to the Work +and publicly distribute the Work under its terms, with knowledge of his or her +Copyright and Related Rights in the Work and the meaning and intended legal +effect of CC0 on those rights. + +1. Copyright and Related Rights. A Work made available under CC0 may be +protected by copyright and related or neighboring rights ("Copyright and +Related Rights"). Copyright and Related Rights include, but are not limited +to, the following: + + i. the right to reproduce, adapt, distribute, perform, display, communicate, + and translate a Work; + + ii. moral rights retained by the original author(s) and/or performer(s); + + iii. publicity and privacy rights pertaining to a person's image or likeness + depicted in a Work; + + iv. rights protecting against unfair competition in regards to a Work, + subject to the limitations in paragraph 4(a), below; + + v. rights protecting the extraction, dissemination, use and reuse of data in + a Work; + + vi. database rights (such as those arising under Directive 96/9/EC of the + European Parliament and of the Council of 11 March 1996 on the legal + protection of databases, and under any national implementation thereof, + including any amended or successor version of such directive); and + + vii. other similar, equivalent or corresponding rights throughout the world + based on applicable law or treaty, and any national implementations thereof. + +2. Waiver. To the greatest extent permitted by, but not in contravention of, +applicable law, Affirmer hereby overtly, fully, permanently, irrevocably and +unconditionally waives, abandons, and surrenders all of Affirmer's Copyright +and Related Rights and associated claims and causes of action, whether now +known or unknown (including existing as well as future claims and causes of +action), in the Work (i) in all territories worldwide, (ii) for the maximum +duration provided by applicable law or treaty (including future time +extensions), (iii) in any current or future medium and for any number of +copies, and (iv) for any purpose whatsoever, including without limitation +commercial, advertising or promotional purposes (the "Waiver"). Affirmer makes +the Waiver for the benefit of each member of the public at large and to the +detriment of Affirmer's heirs and successors, fully intending that such Waiver +shall not be subject to revocation, rescission, cancellation, termination, or +any other legal or equitable action to disrupt the quiet enjoyment of the Work +by the public as contemplated by Affirmer's express Statement of Purpose. + +3. Public License Fallback. Should any part of the Waiver for any reason be +judged legally invalid or ineffective under applicable law, then the Waiver +shall be preserved to the maximum extent permitted taking into account +Affirmer's express Statement of Purpose. In addition, to the extent the Waiver +is so judged Affirmer hereby grants to each affected person a royalty-free, +non transferable, non sublicensable, non exclusive, irrevocable and +unconditional license to exercise Affirmer's Copyright and Related Rights in +the Work (i) in all territories worldwide, (ii) for the maximum duration +provided by applicable law or treaty (including future time extensions), (iii) +in any current or future medium and for any number of copies, and (iv) for any +purpose whatsoever, including without limitation commercial, advertising or +promotional purposes (the "License"). The License shall be deemed effective as +of the date CC0 was applied by Affirmer to the Work. Should any part of the +License for any reason be judged legally invalid or ineffective under +applicable law, such partial invalidity or ineffectiveness shall not +invalidate the remainder of the License, and in such case Affirmer hereby +affirms that he or she will not (i) exercise any of his or her remaining +Copyright and Related Rights in the Work or (ii) assert any associated claims +and causes of action with respect to the Work, in either case contrary to +Affirmer's express Statement of Purpose. + +4. Limitations and Disclaimers. + + a. No trademark or patent rights held by Affirmer are waived, abandoned, + surrendered, licensed or otherwise affected by this document. + + b. Affirmer offers the Work as-is and makes no representations or warranties + of any kind concerning the Work, express, implied, statutory or otherwise, + including without limitation warranties of title, merchantability, fitness + for a particular purpose, non infringement, or the absence of latent or + other defects, accuracy, or the present or absence of errors, whether or not + discoverable, all to the greatest extent permissible under applicable law. + + c. Affirmer disclaims responsibility for clearing rights of other persons + that may apply to the Work or any use thereof, including without limitation + any person's Copyright and Related Rights in the Work. Further, Affirmer + disclaims responsibility for obtaining any necessary consents, permissions + or other rights required for any use of the Work. + + d. Affirmer understands and acknowledges that Creative Commons is not a + party to this document and has no duty or obligation with respect to this + CC0 or use of the Work. + +For more information, please see + diff --git a/README.md b/README.md new file mode 100644 index 0000000..487d722 --- /dev/null +++ b/README.md @@ -0,0 +1,47 @@ +LeLA - Lecture en Ligne Anesis - Anesis Online Reader +=== +[![LICENSE](https://img.shields.io/badge/license-CC0-blue.svg)](LICENSE.md) + +**[LeLA sur la HHH (NSFW)](https://lel.hhh-world.com/)** + +Documentation +=== + +Code source de LeLA, la Lecture en Ligne officielle de la team de scantrad Hardcore Hentai Headquarter. +Les images doivent être placées dans le dossier `volumes/Nom de la Série/`, les miniatures de 150px de long dans `volumes/Nom de la Série/mini/` +Le script hhh-lel.sh permet une semi-automatisation en utilisant le fichier zip: il décompresse la release et crée automatiquement les miniatures. +Utilisation: `hhh-lel.sh release.zip /dossier/de/la/lel/volumes/Nom de la Série` + +Source code of LeLA, the official Online Reader of the Hardcore Hentai Headquarter scanlation team. +Pictures must be placed in the `volumes/Serie Name/` folder, it's 150px long miniatures in `volumes/Serie Name/mini/` +The hhh-lel.sh script ca be used as a semi-automation by using the release zip file: it unzip the release and create automatically it's miniatures. +Usage: `hhh-lel.sh release.zip /folder/of/online/reader/volumes/Serie Name` + +ToDo +=== + + * Frontend + * Menu plus simple et complet + * Gestion de téléchargement (via HTML5 FileSystem API ou IndexedDB storage selon le navigateur) + * Page "À propos" + * Backend + * Gestion de comptes + * Gestion de releases + * Gestion de miniatures + * Gestion de chapitres + * Boite à erreurs + +Changelog +=== + + * Version 0.1 + * Import initial sur GitHub + +License +=== + +Les projets Anesis-HHH sont, sauf si spécifié, distribués sous la licence Creative Common Zero. +Pour plus d'informations, veuillez vous reporter au fichier LICENSE.md. + +Unless specified, all Anesis-HHH projects are released under the Creative Common Zero license. +For further informations, please look at the LICENSE.md file. diff --git a/classes/crawler.class.php b/classes/crawler.class.php new file mode 100644 index 0000000..29bf6fd --- /dev/null +++ b/classes/crawler.class.php @@ -0,0 +1,104 @@ + 0 and dl.numero_chapitre='integrale' + order by proj.titre +"; + +function doSql($request=""){ + $retourArray=[]; + global $bdd; + if(!empty($request)){ + $req=$bdd->prepare($request); + $req->execute(); + while($retour=$req->fetch(PDO::FETCH_ASSOC)){ + $retourArray[]=$retour; + + } + } + $req->closeCursor(); + return $retourArray; +} +// echo '
';
+// print_r(doSql($sql));
+// echo '
'; + +//crawler de dossier +if(isset($_POST['type']) && $_POST['type']=='dossier'){ + $path='../volumes/'; + $titleArray=[]; + if (is_dir($path)) { + if ($dossier = opendir($path)) { + while (($file = readdir($dossier)) !== false) { + if($file!='.' && $file!='..'){ + $file=str_replace("'","''",$file); + $titleArray['titre'][]=$file; + } + } + $inSql="'".implode("','",$titleArray['titre'])."'"; + $titleArray['inSql']=$inSql; + + $data=doSql("select + titre, + genre1, + genre2, + genre3, + auteur, + resume + from projets + where titre in($inSql)"); + } + + closedir($dossier); + // $titleArray['inSql']=$inSql; + // echo json_encode($titleArray); + echo json_encode($data); + } +} + +// crawler de projet +if(isset($_POST['type']) && $_POST['type']=='projet'){ + $path='../volumes/'.$_POST['titre']; + $imgArray=['mini'=>[],'maxi'=>[]]; + // Ouvre un dossier bien connu, et liste tous les fichiers + if (is_dir($path)) { + if ($dossier = opendir($path)) { + // on remplit le tableau avec les image HD + while (($file = readdir($dossier)) !== false) { + if($file!='.' && $file!='..' && $file!='mini'){ + $imgArray['maxi'][]=$file; + // on récupère la hauteur + $tempSize=getimagesize($path.'/'.$file); + $imgArray['height'][]=$tempSize[1]; + + } + // quand on tombe sur le dossier des miniature + elseif($file!='.' && $file!='..' && $file=='mini'){ + // on l'ouvre + $dossiermini = opendir($path.'/'.$file); + // et on remplit le tableau avec les miniatures + while (($file = readdir($dossiermini)) !== false) { + if($file!='.' && $file!='..'){ + $imgArray['mini'][]=$file; + } + } + closedir($dossiermini); + } + } + closedir($dossier); + echo json_encode($imgArray); + } + }else{ + echo 'le dossier spécifié n\'existe pas'; + } +} + + +?> diff --git a/classes/index.html b/classes/index.html new file mode 100644 index 0000000..e69de29 diff --git a/css/css.css b/css/css.css new file mode 100644 index 0000000..7118041 --- /dev/null +++ b/css/css.css @@ -0,0 +1,478 @@ +/* + ___ ___ + ___ __| | | |__ ___ + / / / /| | | |\ \ \ \ + / / / / | |___| | \ \ \ \ + / /__/ / | | \ \__\ \ + / __ / | ___ | \ __ \ + / / / / | | | | \ \ \ \ + _________/__/ /__/_____|___| |___|_____\__\ \__\__________ +|############################################################| +| HARDCORE HENTAI HEADQUARTER | +|############################################################| +|############################################################| +|#########__Lecture en Ligne - POLE DEVELOPPEMENT___#########| + +*/ + +@charset-UTF-8; +::selection{ + color: #fff; + background:#000; +} +::-moz-selection{ + color: #fff; + background:#000; +} +/*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */ +img,legend{border:0}legend,td,th{padding:0}html{font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}body{margin:0}article,aside,details,figcaption,figure,footer,header,hgroup,main,menu,nav,section,summary{display:block}audio,canvas,progress,video{display:inline-block;vertical-align:baseline}audio:not([controls]){display:none;height:0}[hidden],template{display:none}a{background-color:transparent}a:active,a:hover{outline:0}abbr[title]{border-bottom:1px dotted}b,optgroup,strong{font-weight:700}dfn{font-style:italic}h1{margin:.67em 0font-size:2em;}mark{color:#000background:#ff0;}small{font-size:80%}sub,sup{position:relative;vertical-align:baselinefont-size:75%;line-height:0;}sup{top:-.5em}sub{bottom:-.25em}svg:not(:root){overflow:hidden}figure{margin:1em 40px}hr{box-sizing:content-box;height:0}pre,textarea{overflow:auto}code,kbd,pre,samp{font-family:monospace,monospace;font-size:1em}button,input,optgroup,select,textarea{margin:0color:inherit;font:inherit;}button{overflow:visible}button,select{text-transform:none}button,html input[type=button],input[type=reset],input[type=submit]{cursor:pointer-webkit-appearance:button;}button[disabled],html input[disabled]{cursor:default}button::-moz-focus-inner,input::-moz-focus-inner{padding:0border:0;}input{line-height:normal}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{height:auto}input[type=search]{box-sizing:content-box-webkit-appearance:textfield;}input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration{-webkit-appearance:none}fieldset{margin:0 2px;padding:.35em .625em .75emborder:1px solid silver;}table{border-spacing:0border-collapse:collapse;}div{box-sizing: border-box}p{margin:0px;padding:0px;} + + +body { + position: absolute;; + top: 0; + right: 0; + bottom: 0; + left: 0; + font-family: 'Play', sans-serif; + background: url(../img/fondlel.png) #500000 no-repeat; +font-family: 'Play', sans-serif; +background-position: center 0px; +} +body.nooverflow { + overflow: hidden; +} +.gras { + font-weight:bold; +} +.smoked { + background: -moz-linear-gradient(left, rgba(107, 0, 0, 0) 0%, rgba(107, 0, 0, 0.8) 25%, rgba(107, 0, 0, 1) 50%, rgba(107, 0, 0, 0.8) 75%, rgba(107, 0, 0, 0) 100%); + background: -webkit-linear-gradient(left, rgba(107, 0, 0, 0) 0%, rgba(107, 0, 0, 0.8) 25%, rgba(107, 0, 0, 1) 50%, rgba(107, 0, 0, 0.8) 75%, rgba(107, 0, 0, 0) 100%); + background: linear-gradient(to right, rgba(107, 0, 0, 0) 0%, rgba(107, 0, 0, 0.8) 25%, rgba(107, 0, 0, 1) 50%, rgba(107, 0, 0, 0.8) 75%, rgba(107, 0, 0, 0) 100%); + filter: progid: DXImageTransform.Microsoft.gradient( startColorstr='#006b0000', endColorstr='#006b0000', GradientType=1); +} +.blacksmoked{ +background: -moz-linear-gradient(left, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0.8) 25%, rgba(0, 0, 0, 1) 50%, rgba(0, 0, 0, 0.8) 75%, rgba(0, 0, 0, 0) 100%); + background: -webkit-linear-gradient(left, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0.8) 25%, rgba(0, 0, 0, 1) 50%, rgba(0, 0, 0, 0.8) 75%, rgba(0, 0, 0, 0) 100%); + background: linear-gradient(to right, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0.8) 25%, rgba(0, 0, 0, 1) 50%, rgba(0, 0, 0, 0.8) 75%, rgba(0, 0, 0, 0) 100%); + filter: progid: DXImageTransform.Microsoft.gradient( startColorstr='#00000000', endColorstr='#00000000', GradientType=1); +} +.blur { + filter: blur(3px); + -webkit-filter: blur(3px); +} +nav { + position: absolute; + z-index: 2; + top: 0px; + width: 40px; + height: 40px; + transition: all 0.2s; + color: #fff; + background: rgba(50, 0, 0, 0.85); + overflow:hidden; +} + +nav.deployed { + position: fixed; + width: 250px; + height: 100vh; + overflow-y: auto; +} +nav:hover.deployed { + width: 250px; + height: 100vh; +} +#menu { + width: 100%; + height: 40px; + margin-left: -1px; + cursor: pointer; + text-align: center; + font-size: 25px; +} +#menu span { + margin-top: 7px; +} +.release { + position: relative; + margin: 5px 0px; + padding: 2px 0px; + cursor: pointer; + text-align: center; +} +.release:hover .titre { + opacity: 0.5; +} +.moreinfo { + position: absolute; + top: 0px; + right: 0px; + bottom: 0px; + width: 50px; + font-size: 18px; + line-height: 23px; + cursor: pointer; + transition: all 0.7s; + opacity: 0; + background: -moz-linear-gradient(left, rgba(224, 0, 0, 0) 0%, rgba(56, 0, 0, 1) 45%, rgba(56, 0, 0, 1) 100%); + background: -webkit-linear-gradient(left, rgba(224, 0, 0, 0) 0%, rgba(56, 0, 0, 1) 45%, rgba(56, 0, 0, 1) 100%); + background: linear-gradient(to right, rgba(224, 0, 0, 0) 0%, rgba(56, 0, 0, 1) 45%, rgba(56, 0, 0, 1) 100%); + filter: progid: DXImageTransform.Microsoft.gradient( startColorstr='#00e00000', endColorstr='#380000', GradientType=1); +} +.release:hover .moreinfo { + opacity: 1; +} +.moreinfo span { + width: 20px; + margin-left: 13px; +} +.moreinfo:hover span { + color: #900000; +} +#curtain { + position: fixed; + z-index: 3; +} +.menuaction { + text-align: center; + padding: 5px; + margin: 5px 0px; + cursor: pointer; +} +#menuaide{ + margin-bottom: 20px; +} +.filtretitre{ + font-weight: normal; + margin: 10px 0px 5px; + padding: 2px 0px; +} +.singlefiltre{ + font-weight: normal; +} +.filtretitre:hover,.singlefiltre:hover{ + color:#ccc; +} +#moreinfbox { + position: relative; + top: calc(50vh - 155px); + left: calc(50vw - 290px); + overflow: auto; + width: 580px; + height: 310px; + padding: 10px; + color: #fff; + background: #AE0000; + box-shadow: 0px 0px 285px #000 inset; +} +#moreinfbox .image { + float: right; + margin: 30px 30px 10px 10px; +} +#moreinfbox .titre, #moreinfbox .auteur, #moreinfbox .genre, #moreinfbox .resume { + display: block; + margin-bottom: 5px; +} +#moreinfbox .titre { + font-size: 20px; +} +#moreinfbox .auteur { + font-size: 14px; +} +#moreinfbox .genre { + margin-bottom: 10px; + opacity: 0.5; + font-size: 12px; +} +#moreinfbox .resume { + font-size: 14px; +} +#curtain { + position: fixed; + z-index: 3; + top: 0px; + right: 0px; + bottom: 0px; + left: 0px; + display: none; + background: rgba(0, 0, 0, 0.65); +} +#closeinfoxbox, #closehandreading { + position: absolute; + right: 10px; + width: 20px; + height: 20px; + cursor: pointer; + text-align: center; + color: #fff; + background: rgba(255, 255, 255, 0.2); + font-size: 20px; +} +#loader { + position: absolute; + z-index: 4; + top: 0; + right: 0; + bottom: 0; + left: 0; + display: none; + background: rgba(0, 0, 0, 0.7); +} +#loader div { + overflow: hidden; + width: 69px; + height: 72px; + margin: calc(50vh - 36px) auto; +} +#loader div img { + position: relative; +} +#loader div img.animated { + animation: loading 1.2s steps(29) infinite; +} +@keyframes loading { + from { + left: 0px; + } + to { + left: -1916px; + } +} +#VolTitre { + display: none; +} +#theatre { + position: absolute; + top: 0; + right: 0px; + bottom: 0px; + left: 0px; + transition: all 0.2s; + overflow: auto; +} +#miniatureTitle { + position: fixed; + top: 0px; + width: 100%; + padding: 0px 70px 5px; + text-align: center; + color: #fff; + font-size: 22px; + font-weight: bold; + z-index: 1; +} +#imgminicontainer { + width: 825px; + margin: 0px auto 20px; + padding: 40px 0px; +} +.decomini { + height: 1px; +} +#imgminicontainer::after { + display: block; + clear: both; + content: ""; +} +#imghdcontainer { + position: absolute; + z-index: 3; + top: 0px; + right: 0px; + bottom: 0px; + left: 0px; + background: rgba(0, 0, 0, 0.8); +} +#imghdcontainer img { + height: 100%; + max-height: 1200px; +} +#imgminicontainer img { + width: 100px; + margin: auto; + cursor: pointer; + border: 1px solid #000; +} +#imgminicontainer .miniatures { + float:left; + padding: 0px 18px; + height: 146px; + overflow: hidden; + width: 16.6666%; /* 6 images par lignes */ + margin: 10px 0px; +} +#controlcontainer { + position: fixed; + bottom: 0px; + padding: 10px 20px; +} +#controlcontainer.mini { + position: fixed; + bottom: 0px; + width: 100%; + padding: 0px 70px; + text-align: center; +} +.paginationbox { + display: inline-block; + width: 20px; + margin: 5px 1px; + cursor: pointer; + text-align: center; + color: #fff; + font-size: 14px; + line-height: 20px !important; +} +#closehd { + position: absolute; + z-index: 10; + top: -15px; + right: -15px; + box-sizing: content-box; + width: 35px; + height: 35px; + padding: 20px; + cursor: pointer; + transition: all 0.2s; + text-align: center; + color: #230000; + border-radius: 50%; + background-color: #230101; + text-shadow: 0px 0px 3px #fff; + font-size: 30px; + line-height: 36px; +} + +#closehd:hover, #closehd:active { + color: #fff; + background-color: rgba(255, 255, 255, 0.6); + text-shadow: initial; +} +.imgpreload { + display: none; +} +#imgname { + width: auto; + padding: 5px; + background-color: #600000; +} +.currentimage { + -webkit-filter: invert(100%); + -moz-filter: invert(100%); + -ms-filter: invert(100%); + -o-filter: invert(100%); + filter: invert(100%); +} + +#urgenceFrame{ + position: absolute; + top:0px; + left:0px; + width: 100vw; + height: 100vh; + z-index: 1000; + border:0px; +} + +#exitUrgence{ + position:absolute; + top:0px; + left:0px; + z-index: 1001; + border:0px; + background-color: #fff; + color: #777; + cursor: pointer; +} +#credit { + color: #fff; + position: absolute; + bottom: 5px; + right: 25px; + font-size: 12px; +} + +#handreading{ +position: relative; +background: #AE0000; +box-shadow: 0px 0px 285px #000 inset; +width: 90%; +height: 500px; +overflow: auto; +padding: 10px; +margin: calc(50vh - 250px) auto; +color: #fff; +} + + +#handreadingtitle { + text-align: center; + margin-bottom: 20px; +} + +#handreadingtitle span:nth-child(1),#handreadingtitle span:nth-child(5) { + font-size: 30px; +} +#handreadingtitle span:nth-child(7) { + font-size: 12px; +} + +.handreadingtext { + text-indent: 10px; + margin-bottom: 10px; +} + +#twinbox { + margin-top: 30px; +} +#twinbox::after,.touche::after{ +content:""; +clear:both; +display:block; +margin-bottom: 15px; +} +.twin { + float: left; + width: 50%; + padding: 0px 20px; +} +.twin:first-child { + border-right: 2px dashed rgb(255, 255, 255); +} +.touche { + clear: both; +} +.touche img, .touche span{ + float:left; +} + +.touche span{ + font-size:35px; + margin-top: 10px; +} +.touche span.slash{ +transform: rotate(-10deg); +} +.touche span.desckey{ +font-size:initial; +} +.desckey { + width: 55%; + padding-top: 10px; + margin-left: 20px; +} +.twin .title { + text-align: center; + margin-bottom: 30px; + font-size: 20px; + font-weight: bold; +} + +#releasenotready { + text-align: center; + color: #fff; + padding: 50px; + margin-top: 150px; + box-shadow: 0px 0px 45px rgba(0,0,0,0.5); +} diff --git a/css/font-awesome.min.css b/css/font-awesome.min.css new file mode 100644 index 0000000..71249b6 --- /dev/null +++ b/css/font-awesome.min.css @@ -0,0 +1,4 @@ +/*! + * Font Awesome 4.4.0 by @davegandy - http://fontawesome.io - @fontawesome + * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License) + */@font-face{font-family:'FontAwesome';src:url('fonts/fontawesome-webfont.eot?v=4.4.0');src:url('fonts/fontawesome-webfont.eot?#iefix&v=4.4.0') format('embedded-opentype'),url('fonts/fontawesome-webfont.woff2?v=4.4.0') format('woff2'),url('fonts/fontawesome-webfont.woff?v=4.4.0') format('woff'),url('fonts/fontawesome-webfont.ttf?v=4.4.0') format('truetype'),url('fonts/fontawesome-webfont.svg?v=4.4.0#fontawesomeregular') format('svg');font-weight:normal;font-style:normal}.fa{display:inline-block;font:normal normal normal 14px/1 FontAwesome;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.fa-lg{font-size:1.33333333em;line-height:.75em;vertical-align:-15%}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-fw{width:1.28571429em;text-align:center}.fa-ul{padding-left:0;margin-left:2.14285714em;list-style-type:none}.fa-ul>li{position:relative}.fa-li{position:absolute;left:-2.14285714em;width:2.14285714em;top:.14285714em;text-align:center}.fa-li.fa-lg{left:-1.85714286em}.fa-border{padding:.2em .25em .15em;border:solid .08em #eee;border-radius:.1em}.fa-pull-left{float:left}.fa-pull-right{float:right}.fa.fa-pull-left{margin-right:.3em}.fa.fa-pull-right{margin-left:.3em}.pull-right{float:right}.pull-left{float:left}.fa.pull-left{margin-right:.3em}.fa.pull-right{margin-left:.3em}.fa-spin{-webkit-animation:fa-spin 2s infinite linear;animation:fa-spin 2s infinite linear}.fa-pulse{-webkit-animation:fa-spin 1s infinite steps(8);animation:fa-spin 1s infinite steps(8)}@-webkit-keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}.fa-rotate-90{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=1);-webkit-transform:rotate(90deg);-ms-transform:rotate(90deg);transform:rotate(90deg)}.fa-rotate-180{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=2);-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg)}.fa-rotate-270{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=3);-webkit-transform:rotate(270deg);-ms-transform:rotate(270deg);transform:rotate(270deg)}.fa-flip-horizontal{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1);-webkit-transform:scale(-1, 1);-ms-transform:scale(-1, 1);transform:scale(-1, 1)}.fa-flip-vertical{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1);-webkit-transform:scale(1, -1);-ms-transform:scale(1, -1);transform:scale(1, -1)}:root .fa-rotate-90,:root .fa-rotate-180,:root .fa-rotate-270,:root .fa-flip-horizontal,:root .fa-flip-vertical{filter:none}.fa-stack{position:relative;display:inline-block;width:2em;height:2em;line-height:2em;vertical-align:middle}.fa-stack-1x,.fa-stack-2x{position:absolute;left:0;width:100%;text-align:center}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-inverse{color:#fff}.fa-glass:before{content:"\f000"}.fa-music:before{content:"\f001"}.fa-search:before{content:"\f002"}.fa-envelope-o:before{content:"\f003"}.fa-heart:before{content:"\f004"}.fa-star:before{content:"\f005"}.fa-star-o:before{content:"\f006"}.fa-user:before{content:"\f007"}.fa-film:before{content:"\f008"}.fa-th-large:before{content:"\f009"}.fa-th:before{content:"\f00a"}.fa-th-list:before{content:"\f00b"}.fa-check:before{content:"\f00c"}.fa-remove:before,.fa-close:before,.fa-times:before{content:"\f00d"}.fa-search-plus:before{content:"\f00e"}.fa-search-minus:before{content:"\f010"}.fa-power-off:before{content:"\f011"}.fa-signal:before{content:"\f012"}.fa-gear:before,.fa-cog:before{content:"\f013"}.fa-trash-o:before{content:"\f014"}.fa-home:before{content:"\f015"}.fa-file-o:before{content:"\f016"}.fa-clock-o:before{content:"\f017"}.fa-road:before{content:"\f018"}.fa-download:before{content:"\f019"}.fa-arrow-circle-o-down:before{content:"\f01a"}.fa-arrow-circle-o-up:before{content:"\f01b"}.fa-inbox:before{content:"\f01c"}.fa-play-circle-o:before{content:"\f01d"}.fa-rotate-right:before,.fa-repeat:before{content:"\f01e"}.fa-refresh:before{content:"\f021"}.fa-list-alt:before{content:"\f022"}.fa-lock:before{content:"\f023"}.fa-flag:before{content:"\f024"}.fa-headphones:before{content:"\f025"}.fa-volume-off:before{content:"\f026"}.fa-volume-down:before{content:"\f027"}.fa-volume-up:before{content:"\f028"}.fa-qrcode:before{content:"\f029"}.fa-barcode:before{content:"\f02a"}.fa-tag:before{content:"\f02b"}.fa-tags:before{content:"\f02c"}.fa-book:before{content:"\f02d"}.fa-bookmark:before{content:"\f02e"}.fa-print:before{content:"\f02f"}.fa-camera:before{content:"\f030"}.fa-font:before{content:"\f031"}.fa-bold:before{content:"\f032"}.fa-italic:before{content:"\f033"}.fa-text-height:before{content:"\f034"}.fa-text-width:before{content:"\f035"}.fa-align-left:before{content:"\f036"}.fa-align-center:before{content:"\f037"}.fa-align-right:before{content:"\f038"}.fa-align-justify:before{content:"\f039"}.fa-list:before{content:"\f03a"}.fa-dedent:before,.fa-outdent:before{content:"\f03b"}.fa-indent:before{content:"\f03c"}.fa-video-camera:before{content:"\f03d"}.fa-photo:before,.fa-image:before,.fa-picture-o:before{content:"\f03e"}.fa-pencil:before{content:"\f040"}.fa-map-marker:before{content:"\f041"}.fa-adjust:before{content:"\f042"}.fa-tint:before{content:"\f043"}.fa-edit:before,.fa-pencil-square-o:before{content:"\f044"}.fa-share-square-o:before{content:"\f045"}.fa-check-square-o:before{content:"\f046"}.fa-arrows:before{content:"\f047"}.fa-step-backward:before{content:"\f048"}.fa-fast-backward:before{content:"\f049"}.fa-backward:before{content:"\f04a"}.fa-play:before{content:"\f04b"}.fa-pause:before{content:"\f04c"}.fa-stop:before{content:"\f04d"}.fa-forward:before{content:"\f04e"}.fa-fast-forward:before{content:"\f050"}.fa-step-forward:before{content:"\f051"}.fa-eject:before{content:"\f052"}.fa-chevron-left:before{content:"\f053"}.fa-chevron-right:before{content:"\f054"}.fa-plus-circle:before{content:"\f055"}.fa-minus-circle:before{content:"\f056"}.fa-times-circle:before{content:"\f057"}.fa-check-circle:before{content:"\f058"}.fa-question-circle:before{content:"\f059"}.fa-info-circle:before{content:"\f05a"}.fa-crosshairs:before{content:"\f05b"}.fa-times-circle-o:before{content:"\f05c"}.fa-check-circle-o:before{content:"\f05d"}.fa-ban:before{content:"\f05e"}.fa-arrow-left:before{content:"\f060"}.fa-arrow-right:before{content:"\f061"}.fa-arrow-up:before{content:"\f062"}.fa-arrow-down:before{content:"\f063"}.fa-mail-forward:before,.fa-share:before{content:"\f064"}.fa-expand:before{content:"\f065"}.fa-compress:before{content:"\f066"}.fa-plus:before{content:"\f067"}.fa-minus:before{content:"\f068"}.fa-asterisk:before{content:"\f069"}.fa-exclamation-circle:before{content:"\f06a"}.fa-gift:before{content:"\f06b"}.fa-leaf:before{content:"\f06c"}.fa-fire:before{content:"\f06d"}.fa-eye:before{content:"\f06e"}.fa-eye-slash:before{content:"\f070"}.fa-warning:before,.fa-exclamation-triangle:before{content:"\f071"}.fa-plane:before{content:"\f072"}.fa-calendar:before{content:"\f073"}.fa-random:before{content:"\f074"}.fa-comment:before{content:"\f075"}.fa-magnet:before{content:"\f076"}.fa-chevron-up:before{content:"\f077"}.fa-chevron-down:before{content:"\f078"}.fa-retweet:before{content:"\f079"}.fa-shopping-cart:before{content:"\f07a"}.fa-folder:before{content:"\f07b"}.fa-folder-open:before{content:"\f07c"}.fa-arrows-v:before{content:"\f07d"}.fa-arrows-h:before{content:"\f07e"}.fa-bar-chart-o:before,.fa-bar-chart:before{content:"\f080"}.fa-twitter-square:before{content:"\f081"}.fa-facebook-square:before{content:"\f082"}.fa-camera-retro:before{content:"\f083"}.fa-key:before{content:"\f084"}.fa-gears:before,.fa-cogs:before{content:"\f085"}.fa-comments:before{content:"\f086"}.fa-thumbs-o-up:before{content:"\f087"}.fa-thumbs-o-down:before{content:"\f088"}.fa-star-half:before{content:"\f089"}.fa-heart-o:before{content:"\f08a"}.fa-sign-out:before{content:"\f08b"}.fa-linkedin-square:before{content:"\f08c"}.fa-thumb-tack:before{content:"\f08d"}.fa-external-link:before{content:"\f08e"}.fa-sign-in:before{content:"\f090"}.fa-trophy:before{content:"\f091"}.fa-github-square:before{content:"\f092"}.fa-upload:before{content:"\f093"}.fa-lemon-o:before{content:"\f094"}.fa-phone:before{content:"\f095"}.fa-square-o:before{content:"\f096"}.fa-bookmark-o:before{content:"\f097"}.fa-phone-square:before{content:"\f098"}.fa-twitter:before{content:"\f099"}.fa-facebook-f:before,.fa-facebook:before{content:"\f09a"}.fa-github:before{content:"\f09b"}.fa-unlock:before{content:"\f09c"}.fa-credit-card:before{content:"\f09d"}.fa-feed:before,.fa-rss:before{content:"\f09e"}.fa-hdd-o:before{content:"\f0a0"}.fa-bullhorn:before{content:"\f0a1"}.fa-bell:before{content:"\f0f3"}.fa-certificate:before{content:"\f0a3"}.fa-hand-o-right:before{content:"\f0a4"}.fa-hand-o-left:before{content:"\f0a5"}.fa-hand-o-up:before{content:"\f0a6"}.fa-hand-o-down:before{content:"\f0a7"}.fa-arrow-circle-left:before{content:"\f0a8"}.fa-arrow-circle-right:before{content:"\f0a9"}.fa-arrow-circle-up:before{content:"\f0aa"}.fa-arrow-circle-down:before{content:"\f0ab"}.fa-globe:before{content:"\f0ac"}.fa-wrench:before{content:"\f0ad"}.fa-tasks:before{content:"\f0ae"}.fa-filter:before{content:"\f0b0"}.fa-briefcase:before{content:"\f0b1"}.fa-arrows-alt:before{content:"\f0b2"}.fa-group:before,.fa-users:before{content:"\f0c0"}.fa-chain:before,.fa-link:before{content:"\f0c1"}.fa-cloud:before{content:"\f0c2"}.fa-flask:before{content:"\f0c3"}.fa-cut:before,.fa-scissors:before{content:"\f0c4"}.fa-copy:before,.fa-files-o:before{content:"\f0c5"}.fa-paperclip:before{content:"\f0c6"}.fa-save:before,.fa-floppy-o:before{content:"\f0c7"}.fa-square:before{content:"\f0c8"}.fa-navicon:before,.fa-reorder:before,.fa-bars:before{content:"\f0c9"}.fa-list-ul:before{content:"\f0ca"}.fa-list-ol:before{content:"\f0cb"}.fa-strikethrough:before{content:"\f0cc"}.fa-underline:before{content:"\f0cd"}.fa-table:before{content:"\f0ce"}.fa-magic:before{content:"\f0d0"}.fa-truck:before{content:"\f0d1"}.fa-pinterest:before{content:"\f0d2"}.fa-pinterest-square:before{content:"\f0d3"}.fa-google-plus-square:before{content:"\f0d4"}.fa-google-plus:before{content:"\f0d5"}.fa-money:before{content:"\f0d6"}.fa-caret-down:before{content:"\f0d7"}.fa-caret-up:before{content:"\f0d8"}.fa-caret-left:before{content:"\f0d9"}.fa-caret-right:before{content:"\f0da"}.fa-columns:before{content:"\f0db"}.fa-unsorted:before,.fa-sort:before{content:"\f0dc"}.fa-sort-down:before,.fa-sort-desc:before{content:"\f0dd"}.fa-sort-up:before,.fa-sort-asc:before{content:"\f0de"}.fa-envelope:before{content:"\f0e0"}.fa-linkedin:before{content:"\f0e1"}.fa-rotate-left:before,.fa-undo:before{content:"\f0e2"}.fa-legal:before,.fa-gavel:before{content:"\f0e3"}.fa-dashboard:before,.fa-tachometer:before{content:"\f0e4"}.fa-comment-o:before{content:"\f0e5"}.fa-comments-o:before{content:"\f0e6"}.fa-flash:before,.fa-bolt:before{content:"\f0e7"}.fa-sitemap:before{content:"\f0e8"}.fa-umbrella:before{content:"\f0e9"}.fa-paste:before,.fa-clipboard:before{content:"\f0ea"}.fa-lightbulb-o:before{content:"\f0eb"}.fa-exchange:before{content:"\f0ec"}.fa-cloud-download:before{content:"\f0ed"}.fa-cloud-upload:before{content:"\f0ee"}.fa-user-md:before{content:"\f0f0"}.fa-stethoscope:before{content:"\f0f1"}.fa-suitcase:before{content:"\f0f2"}.fa-bell-o:before{content:"\f0a2"}.fa-coffee:before{content:"\f0f4"}.fa-cutlery:before{content:"\f0f5"}.fa-file-text-o:before{content:"\f0f6"}.fa-building-o:before{content:"\f0f7"}.fa-hospital-o:before{content:"\f0f8"}.fa-ambulance:before{content:"\f0f9"}.fa-medkit:before{content:"\f0fa"}.fa-fighter-jet:before{content:"\f0fb"}.fa-beer:before{content:"\f0fc"}.fa-h-square:before{content:"\f0fd"}.fa-plus-square:before{content:"\f0fe"}.fa-angle-double-left:before{content:"\f100"}.fa-angle-double-right:before{content:"\f101"}.fa-angle-double-up:before{content:"\f102"}.fa-angle-double-down:before{content:"\f103"}.fa-angle-left:before{content:"\f104"}.fa-angle-right:before{content:"\f105"}.fa-angle-up:before{content:"\f106"}.fa-angle-down:before{content:"\f107"}.fa-desktop:before{content:"\f108"}.fa-laptop:before{content:"\f109"}.fa-tablet:before{content:"\f10a"}.fa-mobile-phone:before,.fa-mobile:before{content:"\f10b"}.fa-circle-o:before{content:"\f10c"}.fa-quote-left:before{content:"\f10d"}.fa-quote-right:before{content:"\f10e"}.fa-spinner:before{content:"\f110"}.fa-circle:before{content:"\f111"}.fa-mail-reply:before,.fa-reply:before{content:"\f112"}.fa-github-alt:before{content:"\f113"}.fa-folder-o:before{content:"\f114"}.fa-folder-open-o:before{content:"\f115"}.fa-smile-o:before{content:"\f118"}.fa-frown-o:before{content:"\f119"}.fa-meh-o:before{content:"\f11a"}.fa-gamepad:before{content:"\f11b"}.fa-keyboard-o:before{content:"\f11c"}.fa-flag-o:before{content:"\f11d"}.fa-flag-checkered:before{content:"\f11e"}.fa-terminal:before{content:"\f120"}.fa-code:before{content:"\f121"}.fa-mail-reply-all:before,.fa-reply-all:before{content:"\f122"}.fa-star-half-empty:before,.fa-star-half-full:before,.fa-star-half-o:before{content:"\f123"}.fa-location-arrow:before{content:"\f124"}.fa-crop:before{content:"\f125"}.fa-code-fork:before{content:"\f126"}.fa-unlink:before,.fa-chain-broken:before{content:"\f127"}.fa-question:before{content:"\f128"}.fa-info:before{content:"\f129"}.fa-exclamation:before{content:"\f12a"}.fa-superscript:before{content:"\f12b"}.fa-subscript:before{content:"\f12c"}.fa-eraser:before{content:"\f12d"}.fa-puzzle-piece:before{content:"\f12e"}.fa-microphone:before{content:"\f130"}.fa-microphone-slash:before{content:"\f131"}.fa-shield:before{content:"\f132"}.fa-calendar-o:before{content:"\f133"}.fa-fire-extinguisher:before{content:"\f134"}.fa-rocket:before{content:"\f135"}.fa-maxcdn:before{content:"\f136"}.fa-chevron-circle-left:before{content:"\f137"}.fa-chevron-circle-right:before{content:"\f138"}.fa-chevron-circle-up:before{content:"\f139"}.fa-chevron-circle-down:before{content:"\f13a"}.fa-html5:before{content:"\f13b"}.fa-css3:before{content:"\f13c"}.fa-anchor:before{content:"\f13d"}.fa-unlock-alt:before{content:"\f13e"}.fa-bullseye:before{content:"\f140"}.fa-ellipsis-h:before{content:"\f141"}.fa-ellipsis-v:before{content:"\f142"}.fa-rss-square:before{content:"\f143"}.fa-play-circle:before{content:"\f144"}.fa-ticket:before{content:"\f145"}.fa-minus-square:before{content:"\f146"}.fa-minus-square-o:before{content:"\f147"}.fa-level-up:before{content:"\f148"}.fa-level-down:before{content:"\f149"}.fa-check-square:before{content:"\f14a"}.fa-pencil-square:before{content:"\f14b"}.fa-external-link-square:before{content:"\f14c"}.fa-share-square:before{content:"\f14d"}.fa-compass:before{content:"\f14e"}.fa-toggle-down:before,.fa-caret-square-o-down:before{content:"\f150"}.fa-toggle-up:before,.fa-caret-square-o-up:before{content:"\f151"}.fa-toggle-right:before,.fa-caret-square-o-right:before{content:"\f152"}.fa-euro:before,.fa-eur:before{content:"\f153"}.fa-gbp:before{content:"\f154"}.fa-dollar:before,.fa-usd:before{content:"\f155"}.fa-rupee:before,.fa-inr:before{content:"\f156"}.fa-cny:before,.fa-rmb:before,.fa-yen:before,.fa-jpy:before{content:"\f157"}.fa-ruble:before,.fa-rouble:before,.fa-rub:before{content:"\f158"}.fa-won:before,.fa-krw:before{content:"\f159"}.fa-bitcoin:before,.fa-btc:before{content:"\f15a"}.fa-file:before{content:"\f15b"}.fa-file-text:before{content:"\f15c"}.fa-sort-alpha-asc:before{content:"\f15d"}.fa-sort-alpha-desc:before{content:"\f15e"}.fa-sort-amount-asc:before{content:"\f160"}.fa-sort-amount-desc:before{content:"\f161"}.fa-sort-numeric-asc:before{content:"\f162"}.fa-sort-numeric-desc:before{content:"\f163"}.fa-thumbs-up:before{content:"\f164"}.fa-thumbs-down:before{content:"\f165"}.fa-youtube-square:before{content:"\f166"}.fa-youtube:before{content:"\f167"}.fa-xing:before{content:"\f168"}.fa-xing-square:before{content:"\f169"}.fa-youtube-play:before{content:"\f16a"}.fa-dropbox:before{content:"\f16b"}.fa-stack-overflow:before{content:"\f16c"}.fa-instagram:before{content:"\f16d"}.fa-flickr:before{content:"\f16e"}.fa-adn:before{content:"\f170"}.fa-bitbucket:before{content:"\f171"}.fa-bitbucket-square:before{content:"\f172"}.fa-tumblr:before{content:"\f173"}.fa-tumblr-square:before{content:"\f174"}.fa-long-arrow-down:before{content:"\f175"}.fa-long-arrow-up:before{content:"\f176"}.fa-long-arrow-left:before{content:"\f177"}.fa-long-arrow-right:before{content:"\f178"}.fa-apple:before{content:"\f179"}.fa-windows:before{content:"\f17a"}.fa-android:before{content:"\f17b"}.fa-linux:before{content:"\f17c"}.fa-dribbble:before{content:"\f17d"}.fa-skype:before{content:"\f17e"}.fa-foursquare:before{content:"\f180"}.fa-trello:before{content:"\f181"}.fa-female:before{content:"\f182"}.fa-male:before{content:"\f183"}.fa-gittip:before,.fa-gratipay:before{content:"\f184"}.fa-sun-o:before{content:"\f185"}.fa-moon-o:before{content:"\f186"}.fa-archive:before{content:"\f187"}.fa-bug:before{content:"\f188"}.fa-vk:before{content:"\f189"}.fa-weibo:before{content:"\f18a"}.fa-renren:before{content:"\f18b"}.fa-pagelines:before{content:"\f18c"}.fa-stack-exchange:before{content:"\f18d"}.fa-arrow-circle-o-right:before{content:"\f18e"}.fa-arrow-circle-o-left:before{content:"\f190"}.fa-toggle-left:before,.fa-caret-square-o-left:before{content:"\f191"}.fa-dot-circle-o:before{content:"\f192"}.fa-wheelchair:before{content:"\f193"}.fa-vimeo-square:before{content:"\f194"}.fa-turkish-lira:before,.fa-try:before{content:"\f195"}.fa-plus-square-o:before{content:"\f196"}.fa-space-shuttle:before{content:"\f197"}.fa-slack:before{content:"\f198"}.fa-envelope-square:before{content:"\f199"}.fa-wordpress:before{content:"\f19a"}.fa-openid:before{content:"\f19b"}.fa-institution:before,.fa-bank:before,.fa-university:before{content:"\f19c"}.fa-mortar-board:before,.fa-graduation-cap:before{content:"\f19d"}.fa-yahoo:before{content:"\f19e"}.fa-google:before{content:"\f1a0"}.fa-reddit:before{content:"\f1a1"}.fa-reddit-square:before{content:"\f1a2"}.fa-stumbleupon-circle:before{content:"\f1a3"}.fa-stumbleupon:before{content:"\f1a4"}.fa-delicious:before{content:"\f1a5"}.fa-digg:before{content:"\f1a6"}.fa-pied-piper:before{content:"\f1a7"}.fa-pied-piper-alt:before{content:"\f1a8"}.fa-drupal:before{content:"\f1a9"}.fa-joomla:before{content:"\f1aa"}.fa-language:before{content:"\f1ab"}.fa-fax:before{content:"\f1ac"}.fa-building:before{content:"\f1ad"}.fa-child:before{content:"\f1ae"}.fa-paw:before{content:"\f1b0"}.fa-spoon:before{content:"\f1b1"}.fa-cube:before{content:"\f1b2"}.fa-cubes:before{content:"\f1b3"}.fa-behance:before{content:"\f1b4"}.fa-behance-square:before{content:"\f1b5"}.fa-steam:before{content:"\f1b6"}.fa-steam-square:before{content:"\f1b7"}.fa-recycle:before{content:"\f1b8"}.fa-automobile:before,.fa-car:before{content:"\f1b9"}.fa-cab:before,.fa-taxi:before{content:"\f1ba"}.fa-tree:before{content:"\f1bb"}.fa-spotify:before{content:"\f1bc"}.fa-deviantart:before{content:"\f1bd"}.fa-soundcloud:before{content:"\f1be"}.fa-database:before{content:"\f1c0"}.fa-file-pdf-o:before{content:"\f1c1"}.fa-file-word-o:before{content:"\f1c2"}.fa-file-excel-o:before{content:"\f1c3"}.fa-file-powerpoint-o:before{content:"\f1c4"}.fa-file-photo-o:before,.fa-file-picture-o:before,.fa-file-image-o:before{content:"\f1c5"}.fa-file-zip-o:before,.fa-file-archive-o:before{content:"\f1c6"}.fa-file-sound-o:before,.fa-file-audio-o:before{content:"\f1c7"}.fa-file-movie-o:before,.fa-file-video-o:before{content:"\f1c8"}.fa-file-code-o:before{content:"\f1c9"}.fa-vine:before{content:"\f1ca"}.fa-codepen:before{content:"\f1cb"}.fa-jsfiddle:before{content:"\f1cc"}.fa-life-bouy:before,.fa-life-buoy:before,.fa-life-saver:before,.fa-support:before,.fa-life-ring:before{content:"\f1cd"}.fa-circle-o-notch:before{content:"\f1ce"}.fa-ra:before,.fa-rebel:before{content:"\f1d0"}.fa-ge:before,.fa-empire:before{content:"\f1d1"}.fa-git-square:before{content:"\f1d2"}.fa-git:before{content:"\f1d3"}.fa-y-combinator-square:before,.fa-yc-square:before,.fa-hacker-news:before{content:"\f1d4"}.fa-tencent-weibo:before{content:"\f1d5"}.fa-qq:before{content:"\f1d6"}.fa-wechat:before,.fa-weixin:before{content:"\f1d7"}.fa-send:before,.fa-paper-plane:before{content:"\f1d8"}.fa-send-o:before,.fa-paper-plane-o:before{content:"\f1d9"}.fa-history:before{content:"\f1da"}.fa-circle-thin:before{content:"\f1db"}.fa-header:before{content:"\f1dc"}.fa-paragraph:before{content:"\f1dd"}.fa-sliders:before{content:"\f1de"}.fa-share-alt:before{content:"\f1e0"}.fa-share-alt-square:before{content:"\f1e1"}.fa-bomb:before{content:"\f1e2"}.fa-soccer-ball-o:before,.fa-futbol-o:before{content:"\f1e3"}.fa-tty:before{content:"\f1e4"}.fa-binoculars:before{content:"\f1e5"}.fa-plug:before{content:"\f1e6"}.fa-slideshare:before{content:"\f1e7"}.fa-twitch:before{content:"\f1e8"}.fa-yelp:before{content:"\f1e9"}.fa-newspaper-o:before{content:"\f1ea"}.fa-wifi:before{content:"\f1eb"}.fa-calculator:before{content:"\f1ec"}.fa-paypal:before{content:"\f1ed"}.fa-google-wallet:before{content:"\f1ee"}.fa-cc-visa:before{content:"\f1f0"}.fa-cc-mastercard:before{content:"\f1f1"}.fa-cc-discover:before{content:"\f1f2"}.fa-cc-amex:before{content:"\f1f3"}.fa-cc-paypal:before{content:"\f1f4"}.fa-cc-stripe:before{content:"\f1f5"}.fa-bell-slash:before{content:"\f1f6"}.fa-bell-slash-o:before{content:"\f1f7"}.fa-trash:before{content:"\f1f8"}.fa-copyright:before{content:"\f1f9"}.fa-at:before{content:"\f1fa"}.fa-eyedropper:before{content:"\f1fb"}.fa-paint-brush:before{content:"\f1fc"}.fa-birthday-cake:before{content:"\f1fd"}.fa-area-chart:before{content:"\f1fe"}.fa-pie-chart:before{content:"\f200"}.fa-line-chart:before{content:"\f201"}.fa-lastfm:before{content:"\f202"}.fa-lastfm-square:before{content:"\f203"}.fa-toggle-off:before{content:"\f204"}.fa-toggle-on:before{content:"\f205"}.fa-bicycle:before{content:"\f206"}.fa-bus:before{content:"\f207"}.fa-ioxhost:before{content:"\f208"}.fa-angellist:before{content:"\f209"}.fa-cc:before{content:"\f20a"}.fa-shekel:before,.fa-sheqel:before,.fa-ils:before{content:"\f20b"}.fa-meanpath:before{content:"\f20c"}.fa-buysellads:before{content:"\f20d"}.fa-connectdevelop:before{content:"\f20e"}.fa-dashcube:before{content:"\f210"}.fa-forumbee:before{content:"\f211"}.fa-leanpub:before{content:"\f212"}.fa-sellsy:before{content:"\f213"}.fa-shirtsinbulk:before{content:"\f214"}.fa-simplybuilt:before{content:"\f215"}.fa-skyatlas:before{content:"\f216"}.fa-cart-plus:before{content:"\f217"}.fa-cart-arrow-down:before{content:"\f218"}.fa-diamond:before{content:"\f219"}.fa-ship:before{content:"\f21a"}.fa-user-secret:before{content:"\f21b"}.fa-motorcycle:before{content:"\f21c"}.fa-street-view:before{content:"\f21d"}.fa-heartbeat:before{content:"\f21e"}.fa-venus:before{content:"\f221"}.fa-mars:before{content:"\f222"}.fa-mercury:before{content:"\f223"}.fa-intersex:before,.fa-transgender:before{content:"\f224"}.fa-transgender-alt:before{content:"\f225"}.fa-venus-double:before{content:"\f226"}.fa-mars-double:before{content:"\f227"}.fa-venus-mars:before{content:"\f228"}.fa-mars-stroke:before{content:"\f229"}.fa-mars-stroke-v:before{content:"\f22a"}.fa-mars-stroke-h:before{content:"\f22b"}.fa-neuter:before{content:"\f22c"}.fa-genderless:before{content:"\f22d"}.fa-facebook-official:before{content:"\f230"}.fa-pinterest-p:before{content:"\f231"}.fa-whatsapp:before{content:"\f232"}.fa-server:before{content:"\f233"}.fa-user-plus:before{content:"\f234"}.fa-user-times:before{content:"\f235"}.fa-hotel:before,.fa-bed:before{content:"\f236"}.fa-viacoin:before{content:"\f237"}.fa-train:before{content:"\f238"}.fa-subway:before{content:"\f239"}.fa-medium:before{content:"\f23a"}.fa-yc:before,.fa-y-combinator:before{content:"\f23b"}.fa-optin-monster:before{content:"\f23c"}.fa-opencart:before{content:"\f23d"}.fa-expeditedssl:before{content:"\f23e"}.fa-battery-4:before,.fa-battery-full:before{content:"\f240"}.fa-battery-3:before,.fa-battery-three-quarters:before{content:"\f241"}.fa-battery-2:before,.fa-battery-half:before{content:"\f242"}.fa-battery-1:before,.fa-battery-quarter:before{content:"\f243"}.fa-battery-0:before,.fa-battery-empty:before{content:"\f244"}.fa-mouse-pointer:before{content:"\f245"}.fa-i-cursor:before{content:"\f246"}.fa-object-group:before{content:"\f247"}.fa-object-ungroup:before{content:"\f248"}.fa-sticky-note:before{content:"\f249"}.fa-sticky-note-o:before{content:"\f24a"}.fa-cc-jcb:before{content:"\f24b"}.fa-cc-diners-club:before{content:"\f24c"}.fa-clone:before{content:"\f24d"}.fa-balance-scale:before{content:"\f24e"}.fa-hourglass-o:before{content:"\f250"}.fa-hourglass-1:before,.fa-hourglass-start:before{content:"\f251"}.fa-hourglass-2:before,.fa-hourglass-half:before{content:"\f252"}.fa-hourglass-3:before,.fa-hourglass-end:before{content:"\f253"}.fa-hourglass:before{content:"\f254"}.fa-hand-grab-o:before,.fa-hand-rock-o:before{content:"\f255"}.fa-hand-stop-o:before,.fa-hand-paper-o:before{content:"\f256"}.fa-hand-scissors-o:before{content:"\f257"}.fa-hand-lizard-o:before{content:"\f258"}.fa-hand-spock-o:before{content:"\f259"}.fa-hand-pointer-o:before{content:"\f25a"}.fa-hand-peace-o:before{content:"\f25b"}.fa-trademark:before{content:"\f25c"}.fa-registered:before{content:"\f25d"}.fa-creative-commons:before{content:"\f25e"}.fa-gg:before{content:"\f260"}.fa-gg-circle:before{content:"\f261"}.fa-tripadvisor:before{content:"\f262"}.fa-odnoklassniki:before{content:"\f263"}.fa-odnoklassniki-square:before{content:"\f264"}.fa-get-pocket:before{content:"\f265"}.fa-wikipedia-w:before{content:"\f266"}.fa-safari:before{content:"\f267"}.fa-chrome:before{content:"\f268"}.fa-firefox:before{content:"\f269"}.fa-opera:before{content:"\f26a"}.fa-internet-explorer:before{content:"\f26b"}.fa-tv:before,.fa-television:before{content:"\f26c"}.fa-contao:before{content:"\f26d"}.fa-500px:before{content:"\f26e"}.fa-amazon:before{content:"\f270"}.fa-calendar-plus-o:before{content:"\f271"}.fa-calendar-minus-o:before{content:"\f272"}.fa-calendar-times-o:before{content:"\f273"}.fa-calendar-check-o:before{content:"\f274"}.fa-industry:before{content:"\f275"}.fa-map-pin:before{content:"\f276"}.fa-map-signs:before{content:"\f277"}.fa-map-o:before{content:"\f278"}.fa-map:before{content:"\f279"}.fa-commenting:before{content:"\f27a"}.fa-commenting-o:before{content:"\f27b"}.fa-houzz:before{content:"\f27c"}.fa-vimeo:before{content:"\f27d"}.fa-black-tie:before{content:"\f27e"}.fa-fonticons:before{content:"\f280"} diff --git a/css/fonts/FontAwesome.otf b/css/fonts/FontAwesome.otf new file mode 100644 index 0000000..681bdd4 Binary files /dev/null and b/css/fonts/FontAwesome.otf differ diff --git a/css/fonts/Pirates_Blackbeard.eot b/css/fonts/Pirates_Blackbeard.eot new file mode 100644 index 0000000..e0f3656 Binary files /dev/null and b/css/fonts/Pirates_Blackbeard.eot differ diff --git a/css/fonts/Pirates_Blackbeard.svg b/css/fonts/Pirates_Blackbeard.svg new file mode 100644 index 0000000..de282cc --- /dev/null +++ b/css/fonts/Pirates_Blackbeard.svg @@ -0,0 +1,989 @@ + + + + +Created by FontForge 20150318 at Tue Nov 10 13:26:01 2015 + By uniteet7 +Copyright (c) 2009 by Floodfonts, designed by Felix Braden. All rights reserved. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/css/fonts/Pirates_Blackbeard.ttf b/css/fonts/Pirates_Blackbeard.ttf new file mode 100644 index 0000000..4e38399 Binary files /dev/null and b/css/fonts/Pirates_Blackbeard.ttf differ diff --git a/css/fonts/Pirates_Blackbeard.woff b/css/fonts/Pirates_Blackbeard.woff new file mode 100644 index 0000000..f13cef7 Binary files /dev/null and b/css/fonts/Pirates_Blackbeard.woff differ diff --git a/css/fonts/Pirates_Blackbeard.woff2 b/css/fonts/Pirates_Blackbeard.woff2 new file mode 100644 index 0000000..65825da Binary files /dev/null and b/css/fonts/Pirates_Blackbeard.woff2 differ diff --git a/css/fonts/fontawesome-webfont.eot b/css/fonts/fontawesome-webfont.eot new file mode 100644 index 0000000..a30335d Binary files /dev/null and b/css/fonts/fontawesome-webfont.eot differ diff --git a/css/fonts/fontawesome-webfont.svg b/css/fonts/fontawesome-webfont.svg new file mode 100644 index 0000000..6fd19ab --- /dev/null +++ b/css/fonts/fontawesome-webfont.svg @@ -0,0 +1,640 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/css/fonts/fontawesome-webfont.ttf b/css/fonts/fontawesome-webfont.ttf new file mode 100644 index 0000000..d7994e1 Binary files /dev/null and b/css/fonts/fontawesome-webfont.ttf differ diff --git a/css/fonts/fontawesome-webfont.woff b/css/fonts/fontawesome-webfont.woff new file mode 100644 index 0000000..6fd4ede Binary files /dev/null and b/css/fonts/fontawesome-webfont.woff differ diff --git a/css/fonts/fontawesome-webfont.woff2 b/css/fonts/fontawesome-webfont.woff2 new file mode 100644 index 0000000..5560193 Binary files /dev/null and b/css/fonts/fontawesome-webfont.woff2 differ diff --git a/css/imghd.css b/css/imghd.css new file mode 100644 index 0000000..eb367da --- /dev/null +++ b/css/imghd.css @@ -0,0 +1,147 @@ + +#imghdcontainer{ + overflow: hidden; + text-align:center; + display: flex; + justify-content: center; + flex-direction: column; +} +#imghdcontainer.zoom{ + display: block; +} + +#imghdcontainer #cadreimghd { + padding: 30px; + text-align: center; +} + +#imghdcontainer.zoom #cadreimghd { + /* on évite le chevauchement avec la pagination */ + position: relative; + height: calc(100vh - 60px); + overflow-y: auto; + overflow-x: hidden; + display: inline-block; + margin-top: 30px; + padding-top: 0px; +} +#imghdcontainer.zoom #cadreimghd.nooverflow{ + overflow:hidden; +} + +#imghdcontainer #cadreimghd img { + width: auto; + height: auto; + max-width: calc(100vw - 60px); + max-height:calc(100vh - 60px); + box-shadow: 0px 0px 25px #000; + cursor: zoom-in; +} +#imghdcontainer.zoom #cadreimghd img { + max-height:initial; + cursor: zoom-out; +} +#hdpaginationcontainerleft{ + left:0px; +} +#hdpaginationcontainerright{ + right:0px; +} +#hdpaginationcontainerleft .fa{ + left:30px; +} +#hdpaginationcontainerright .fa{ + right:30px; +} + + + +#imghdcontainer #imgname{ + position: absolute; + bottom: 0; + left:0; + right:0; + margin:0; + height: 30px; + text-align: center; + color: #fff; + font-size: 14px; +} + +#imghdcontainer .paginationbox{ + position: absolute; + height: 100%; + width: 120px; + z-index: 2; + top:0px; +} + +#imghdcontainer .paginationbox:hover .fa,#imghdcontainer .paginationbox:active .fa{ + background-color:rgba(255,255,255,0.6); + color:rgba(255,255,255,255.8); +} + +#imghdcontainer .paginationbox .fa{ + position: absolute; + line-height: 60px; + top:calc(50vh - 30px ); + border-radius: 50%; + margin: 0px; + width: 60px; + height: 60px; + background-color:rgba(120,0,0,0.6); + color:rgba(180,0,0,0.8); + font-size:25px; + text-align:center; + content:""; +} + +#imghdcontainer .paginationbox .fa::before{ + text-shadow:0 0 10px #000; + } + #imghdcontainer.zoom #hdpaginationcontainerright,#imghdcontainer.zoom #hdpaginationcontainerleft{ + opacity:0; + transition: 0.2s; +} + #imghdcontainer.zoom #hdpaginationcontainerright:hover,#imghdcontainer.zoom #hdpaginationcontainerleft:hover{ + opacity:1; +} + +#imghdcontainer .fa-chevron-left::before { + margin-left: -5px; +} +#imghdcontainer .fa-chevron-right::before { + margin-right: -5px; +} +#hdpaginationcontainerright.zoom{ + right:30px; +} + +#hdpaginationcontainerleft.zoom{ + left:30px; +} + +#imghdcontainer #hdTitre { + position: absolute; + display: block; + color: #fff; + text-align: center; + top:0; + left: 0; + right: 0; + background: #230000; + height: 30px; + font-size: 20px; + background: -moz-linear-gradient(left, #230000 0%, #230000 20%, #600000 35%, #600000 50%, #600000 65%, #230000 80%, #230000 100%); + background: -webkit-linear-gradient(left, #230000 0%,#230000 20%,#600000 35%,#600000 50%,#600000 65%,#230000 80%,#230000 100%); + background: linear-gradient(to right, #230000 0%,#230000 20%,#600000 35%,#600000 50%,#600000 65%,#230000 80%,#230000 100%); + filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#230000', endColorstr='#230000',GradientType=1 ); + +} +#imghdcontainer #imgname { + background: #230000; + background: -moz-linear-gradient(left, #230000 0%, #230000 20%, #600000 35%, #600000 50%, #600000 65%, #230000 80%, #230000 100%); + background: -webkit-linear-gradient(left, #230000 0%,#230000 20%,#600000 35%,#600000 50%,#600000 65%,#230000 80%,#230000 100%); + background: linear-gradient(to right, #230000 0%,#230000 20%,#600000 35%,#600000 50%,#600000 65%,#230000 80%,#230000 100%); + filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#230000', endColorstr='#230000',GradientType=1 ); +} diff --git a/css/small-screen-fix.css b/css/small-screen-fix.css new file mode 100644 index 0000000..5d54c43 --- /dev/null +++ b/css/small-screen-fix.css @@ -0,0 +1,72 @@ +@media screen and (max-width: 870px) { + #theatre{ + position:absolute; + top:0; + left:0; + right:0; + bottom:0; + padding:40px 20px; + + } + + /* CONTROLCONTAINER, VOLTITRE */ + #theatre #controlcontainer, + body #VolTitre{ + position:fixed; + display:inline-block; + text-align:center; + bottom:0; + left:0; + right:0; + max-width:360px; + margin:auto; + } + + #theatre .paginationbox{ + float:none; + display:inline-block; + } + + #theatre .fa-chevron-right{ + float:right; + } + + #theatre .fa-chevron-left{ + float:left; + } + + body #VolTitre{ + top:0; + bottom:initial; + background: #900000; + padding: 5px 20px; + border-bottom-left-radius: 10px; + border-bottom-right-radius: 10px; + border-bottom: 1px solid #600000; + border-left: 1px solid #900000; + border-right: 1px solid #900000; + color: #fff; + z-index:100; + } + + /* IMGMINICONTAIGNER */ + #theatre #imgminicontainer{ + margin : auto; + width:auto; + max-width:825px; + min-width:280px; + display:flex; + flex-wrap:wrap; + } + + #theatre .miniatures{ + min-width:110px; + float: none; + display: flex; + justify-content: center; + flex-direction: column; + /*min-height:140px;*/ + max-height:150px; + } + +} diff --git a/handreading.html b/handreading.html new file mode 100644 index 0000000..0d0317d --- /dev/null +++ b/handreading.html @@ -0,0 +1,44 @@ +
+
+
+ Lecture au clavier
+ ou
+ "Lecture" à une main
+ (l'autre étant entre tes jambes) +
+ +
+ Dans cette LEL, on a pensé à vous et on a essayé d'optimiser au maximum le "one-handed-read" pour vous permettre de vous palucher tout en parcourant nos releases. +
+ +
+ Deux configurations sont disponibles en fonction de la vue sur laquelle vous êtes. Nous les avons adapté autant pour les personnes gauchères que pour les droitières, et autant pour les clavier AZERTY que QWERTY. +
+ +
+
+
En vue vignette
+
//Déplacement vers le haut dans la grille d'image
+
/Déplacement vers la droite dans la grille d'image
+
/Déplacement vers le bas dans la grille d'image
+
//Déplacement vers le bas dans la grille d'image
+
Vue one-page de l'image sélectionnée
+
Page de miniatures suivante
+
+Page de miniatures précédente
+
+MODE URGENCE !!!!!
+ +
+ +
+
En vue one-page
+
Entrer en mode zoom
+
//En mode zoom, monter dans l'image
+
/En mode zoom, descendre dans l'image
+
/Image suivante
+
//Image précédente
+
+MODE URGENCE !!!!!
+ +
+ +
+
\ No newline at end of file diff --git a/hhh-lel.sh b/hhh-lel.sh new file mode 100644 index 0000000..7c637a1 --- /dev/null +++ b/hhh-lel.sh @@ -0,0 +1,23 @@ +#!/bin/bash +zip = $1 +out = $2 +# on vérifie que l'archive existe +if [ ! -f $zip ] +then + echo archive inexistante + exit 3 +fi +# on vérifie que le dossier n'existe pas déjà +if [ -f $out ] +then + echo le dossier existe deja + exit 4 +fi +# c'est parti pour le dézippage +unzip -j $zip -d $out +# maintenant, c'est au tour des miniatures à être créées +cd $out +for i in *.jpg *.JPG *.png *.PNG; do +convert $i -thumbnail 150x -quality 85 -scene 01 mini/$i +done +fi diff --git a/img/a.png b/img/a.png new file mode 100644 index 0000000..e539638 Binary files /dev/null and b/img/a.png differ diff --git a/img/bas.png b/img/bas.png new file mode 100644 index 0000000..ab68568 Binary files /dev/null and b/img/bas.png differ diff --git a/img/black-paper.png b/img/black-paper.png new file mode 100644 index 0000000..9fddee6 Binary files /dev/null and b/img/black-paper.png differ diff --git a/img/d.png b/img/d.png new file mode 100644 index 0000000..2f8358d Binary files /dev/null and b/img/d.png differ diff --git a/img/droit.png b/img/droit.png new file mode 100644 index 0000000..5a290ef Binary files /dev/null and b/img/droit.png differ diff --git a/img/echap.png b/img/echap.png new file mode 100644 index 0000000..9d8eb00 Binary files /dev/null and b/img/echap.png differ diff --git a/img/entree.png b/img/entree.png new file mode 100644 index 0000000..a4e7bab Binary files /dev/null and b/img/entree.png differ diff --git a/img/espace.png b/img/espace.png new file mode 100644 index 0000000..4193d1b Binary files /dev/null and b/img/espace.png differ diff --git a/img/fondlel.jpg b/img/fondlel.jpg new file mode 100644 index 0000000..8b155ea Binary files /dev/null and b/img/fondlel.jpg differ diff --git a/img/fondlel.png b/img/fondlel.png new file mode 100644 index 0000000..b4c91d3 Binary files /dev/null and b/img/fondlel.png differ diff --git a/img/gauche.png b/img/gauche.png new file mode 100644 index 0000000..99bdf83 Binary files /dev/null and b/img/gauche.png differ diff --git a/img/haut.png b/img/haut.png new file mode 100644 index 0000000..5b94fc0 Binary files /dev/null and b/img/haut.png differ diff --git a/img/loader.png b/img/loader.png new file mode 100644 index 0000000..985437a Binary files /dev/null and b/img/loader.png differ diff --git a/img/maj.png b/img/maj.png new file mode 100644 index 0000000..1d18a31 Binary files /dev/null and b/img/maj.png differ diff --git a/img/noise.png b/img/noise.png new file mode 100644 index 0000000..6248562 Binary files /dev/null and b/img/noise.png differ diff --git a/img/q.png b/img/q.png new file mode 100644 index 0000000..6d6f334 Binary files /dev/null and b/img/q.png differ diff --git a/img/s.png b/img/s.png new file mode 100644 index 0000000..e09c905 Binary files /dev/null and b/img/s.png differ diff --git a/img/w.png b/img/w.png new file mode 100644 index 0000000..c46b7b6 Binary files /dev/null and b/img/w.png differ diff --git a/img/z.png b/img/z.png new file mode 100644 index 0000000..ee9c76b Binary files /dev/null and b/img/z.png differ diff --git a/index.php b/index.php new file mode 100644 index 0000000..a5c4e71 --- /dev/null +++ b/index.php @@ -0,0 +1,77 @@ + + + + + + + Lecture en ligne Hentai - HHH + + + + + + + + + + + + + + + + + + + +
+ +
+
+ + +
HHH LEL - Développé par Lukia,Westixy et Albirew
+ getTitle = "'.$_GET['r'].'"; '; + ?> + + + + diff --git a/js/fonctions.js b/js/fonctions.js new file mode 100644 index 0000000..5af1f63 --- /dev/null +++ b/js/fonctions.js @@ -0,0 +1,597 @@ +/* + ___ ___ + ___ __| | | |__ ___ + / / / /| | | |\ \ \ \ + / / / / | |___| | \ \ \ \ + / /__/ / | | \ \__\ \ + / __ / | ___ | \ __ \ + / / / / | | | | \ \ \ \ + _________/__/ /__/_____|___| |___|_____\__\ \__\__________ +|############################################################| +| HARDCORE HENTAI HEADQUARTER | +|############################################################| +|############################################################| +|#########__Lecture en Ligne - POLE DEVELOPPEMENT___#########| + +*/ + +/*** TOOLBOX ***/ + +//on récupère les dimensions internes du navigateur. + var dimensions={ + largeur:window.innerWidth, + hauteur:window.innerHeight + } + +/* +@param string titreVolume : le titre du volume récupéré au click +@param page : la page de départ de la lecture, par défaut : 0 +*/ + + +function crawler(titreVolume,page){ + // les propriétés + this.prop={ + // id du conteneur principal + container:"theatre", + // id du conteneur de miniature + imgMiniContainer: "imgminicontainer", + // id du conteneur d'image HD + imgContainer: "imghdcontainer", + // id de l'image HD actuel + imgActual: "imgactual", + // id du panneau de controle + controlContainer: "controlcontainer", + // chemin vers le dossier du fichier + pathToFile:"volumes/"+titreVolume+"/", + // le titre du volume + titreVolume:titreVolume, + // la limite du nombre d'image HD à précharger au départ + maxiLimit:3, + // la limite du nombre de miniatures à afficher + miniatureLimitToDisplay:24, + // le nombre de miniature par lignes + miniaturesByRow:6, + //la page de départ de la lecture ou des miniature, par défaut : 0 + currentPage : page || 0, + // le numero de la picture + currentPicture:0, + // le nombre de page maximum + maxPage:0, + // le nombre de miniature qu'on a affiché depuis le début du tableau + miniatureDisplayed:0, + // l'objet qui contiendra toutes les données relatives aux images à afficher + volumeObject:{ + // on créer deux tableaux distinct, au cas où les miniatures n'aurait pas le meme nom que les images HD. Meme si dans la plupart des cas les noms de fichiers seront les meme (pour un poid différent) + // le tableau des miniatures + mini:[], + // le tableau des HD + maxi:[], + // la hauteur de l'images + height:[] + }, + // la vue actuellement à l'écran + actualView:'mini', + }, + + this.loader=function(kill){ + // on manipule le DOM comme un enfoiré + if(kill==true){ + + $("#cadreimghd").removeClass("nooverflow"); + + $("#loader").fadeOut(200,function(){ + $("#loader div img").removeClass("animated"); + }); + if(this.prop.actualView=="mini"){ + $("body").removeClass("nooverflow"); + $("#"+this.prop.container).removeClass("blur"); + } + if(this.prop.actualView=="hd"){ + $("#"+this.prop.imgActual).removeClass("blur"); + } + + } + else{ + $("html,#imghdcontainer #cadreimghd.zoom").scrollTop(0); + $("body, #cadreimghd").addClass("nooverflow"); + $("#loader").fadeIn(200,function(){ + $("#loader div img").addClass("animated"); + }); + if(this.prop.actualView=="mini"){ + $("#"+this.prop.container).addClass("blur"); + } + if(this.prop.actualView=="hd"){ + $("#"+this.prop.imgActual).addClass("blur"); + } + } + + } + + //la boite de controle + this.controlBox=function(type){ + // si c'est la boite de controle des pages HD + if(type=="maxi"){ + var html=//'
' + '
'+$('#miniatureTitle').text()+'
' + +'
' + +'
' + +'
' + +'
' + +'
' + +'
' + +'
' + +'
'; + //+'
'; + } + // si c'est la boite de controle des miniatures + if(type=="mini"){ + // calcul de la pagination + var pagesTotal=parseInt(this.prop.volumeObject.mini.length/this.prop.miniatureLimitToDisplay); + // si le modulo du total du tableau par la limite est supérieur à 0, on rajoute une page pour les images restantes + if(this.prop.volumeObject.mini.length%this.prop.miniatureLimitToDisplay>0){pagesTotal+=1; this.prop.maxPage=pagesTotal} + + // construction html des boites à pagination + var pagination=""; + for(var i=0; i'+(i+1)+''; + } + var html='
' + +'
' + +pagination + +'
' + + +'
'; + } + return html; + + } + + // les méthodes + this.getRelease=function(callback){ + // on charge le scope général de la fonction dans une variable afin de ne pas le perdre quand on sera plus profond + var that=this; + // on lance l'ajax dans un objet déféré + $.when( + $.ajax({ + type: "POST", + url: "classes/crawler.class.php", + data: {titre:titreVolume,type:"projet"}, + dataType:"json" + }).done(function(data) { + for(key in data){ + // on trie les tableaux de l'objet + data[key].sort(); + // on remplit l'objet des images + for(var i=0; iLe volume n\'est pas encore disponible'); + //return "noRelease"; + }); + }) + ).then(function(){ + // puis on execute le callback une fois que c'est terminé + callback(); + }); + }, + + this.nextPage=function(){ + if(this.prop.currentPage1) + this.prop.currentPage-=1; + }, + + // quand on clique sur suivant dans le maxi + this.nextPict=function(){ + if(this.prop.currentPicture0) + this.prop.currentPicture--; + } + + this.fixedPage=function(page){ + + this.prop.currentPage=page; + }, + + // Gestion des miniature + this.displayMiniature=function(update,sens){ + var that=this; + var allLoaded=0; + // on lance le loader + this.loader(); + // si c'est la première fois qu'on affiche les miniatures ou qu'on avance dans elles + // premiere fois + if(!update){ + // on créer le container + $("#"+this.prop.container).html('
'+this.prop.titreVolume+'
'+this.controlBox("mini")+'
'); + this.nextPage(); + } + + // si c'est une update, qu'on est à la fin et qu'on retourne en arriere + if(update && sens=="paginprev" && this.prop.currentPage>0 && this.prop.miniatureDisplayed!=this.prop.miniatureLimitToDisplay){ + //on compte le nombre de miniatures présentes et on les soustrait au nombre de miniatures total, puis on prépare la page précédente + this.prop.miniatureDisplayed-=$(".miniatures").length; + this.prop.miniatureDisplayed-=this.prop.miniatureLimitToDisplay; + + } + $(".paginationbox").removeAttr("style"); + $(".paginationbox:contains("+this.prop.currentPage+")").css("border-bottom","1px solid #EB3C3C"); + + + var html=""; + // on génère le tableau d'images + for(var i=this.prop.miniatureLimitToDisplay*(this.prop.currentPage-1);i'; + this.prop.miniatureDisplayed+=1; + }else{ + break; + } + + } + // si on affiche pour la première fois, qu'on revient pas en arrière et qu'on est pas arrivé à la fin ou si c'est une mise à jour du contenu + if(update && this.prop.currentPage>0 && this.prop.currentPage<=this.prop.maxPage && html.length>0|| !update){ + $("#"+this.prop.imgMiniContainer).html(html); + } + // on centre la pagination + $("#"+this.prop.controlContainer+".mini").css("left",($("#"+this.prop.container).width()-$("#"+this.prop.controlContainer+".mini").width())/2-70); + $("#miniatureTitle").css("left",($("#"+this.prop.container).width()-$("#miniatureTitle").width())/2-70); + + $(".miniatures img").load(function(){ + allLoaded++; + // si toutes les images ont été chargées + if(allLoaded==$(".miniatures").length){ + // on tue le loader + that.loader(true); + } + }); + // console.log(">>>>>>> \r\n prop.miniatureDisplayed : "+this.prop.miniatureDisplayed, "currentPage : "+this.prop.currentPage); + } + + this.paginationControl=function(elem){ + var sens=elem.attr("data-sens"); + var type=elem.attr("data-type"); + var page=parseInt(elem.text()); + if(sens=="paginnext"){ + if(type=="mini"){ + this.nextPage(); + // on envoi le steak + this.displayMiniature(true, sens); + }else{ + this.nextPict(); + // on affiche de quoi sbranler + this.displayHd(); + } + + } + if(sens=="paginprev"){ + if(type=="mini"){ + this.previousPage(); + // on envoi le steak + this.displayMiniature(true, sens); + }else{ + this.prevPict(); + // on affiche de quoi sbranler + this.displayHd(); + } + } + if(sens=="fixe"){ + this.fixedPage(page); + // on envoi le steak + this.displayMiniature(true, sens); + } + + } + + this.giveFileName=function(fileName){ + $("#imgname").text(fileName); + + } + + this.openHd=function(){ + // on génère la div conteneur + $("#"+this.prop.container).before('
'); + // on cache les miniatures + $("#"+this.prop.container).addClass("blur"); + // on cree le recepteur de l'image actuel + $("#"+this.prop.imgContainer).html('
'); + // on cree les recepteur des images en preload + $("#"+this.prop.imgContainer).append('
' + +'' + +'' + +'' + +'
'); + // on ajoute le controlbox + $("#"+this.prop.imgContainer).prepend(this.controlBox("maxi")); + + // on dit que la vue actuel est en hd + this.prop.actualView='hd'; + + // sauce this + this.displayHd(); + } + + // lors du click sur la miniature + this.onMiniatureClick=function(elem){ + var index = elem.attr("data-index"); + this.prop.currentPicture=index; + + this.openHd(); + + } + + this.onCloseHd=function(elem){ + // on supprime l'overlay hd + $("#"+this.prop.imgContainer).remove(); + // on réaffiche le theatre de base + $("#"+this.prop.container).removeClass("blur"); + $("body").removeClass("nooverflow"); + // on dit que l'on passe en mode mini + this.prop.actualView='mini'; + } + + this.onExitUrgence=function(){ + $("#exitUrgence, #iframe_urg").css("display","none"); + } + + this.displayUrgence=function(){ + $("#exitUrgence").css("display","block"); + $("#iframe_urg").css("display","block"); + } + + this.onHdClick=function(){ + // # CLICK SUR IMAGE HD + // switch d'etat entre le zoom ou l'etat normal + if($("#"+this.prop.imgContainer).hasClass("zoom")){ + // on supprime la classe zoom aux deux élements + $("#"+this.prop.imgContainer).removeClass("zoom"); + } + else{ + // on affecte la classe zoom aux deux élements + $("#"+this.prop.imgContainer).addClass("zoom"); + } + } + + this.displayHd=function(){ + // on reset le scroll + $("#imghdcontainer #cadreimghd.zoom").scrollTop(0); + // on lance le loader + this.loader(); + // on remplit le container par le haut car position absolute des images + $("#"+this.prop.imgActual).attr("src",this.prop.pathToFile+this.prop.volumeObject.maxi[this.prop.currentPicture]); + // on change le nom de la page + $("#imgname").html(this.prop.volumeObject.maxi[this.prop.currentPicture]); + + // on active la miniature correspondante + this.updateActiveMiniature(); + + // on cree un alias pour this + var that=this; + // on charge deux images après et une avant + $("#"+this.prop.imgActual).load(function(){ + that.imgHdScroll("top"); + // on tue le loader + that.loader(true); + // on défini l'ensemble d'éléments preload + var preloadElems = $("#hdPreloadContainer .imgpreload"); + // preload de l'image suivante si elle existe + preloadElems.eq(0).attr("src",function(){ + if(parseInt(that.prop.currentPicture)0){ + return that.prop.pathToFile+that.prop.volumeObject.maxi[+that.prop.currentPicture-1]; + } + } + ); + }); + }); + } + + // sert a déplacer limage activée + this.updateActiveMiniature=function(){ + var tempCurrentPage=Math.floor(this.prop.currentPicture/this.prop.miniatureLimitToDisplay+1); + // on change de page des miniatures + if (this.prop.currentPage!=tempCurrentPage){ + this.fixedPage(Math.floor(this.prop.currentPicture/this.prop.miniatureLimitToDisplay)+1); + this.displayMiniature(true, "fixe"); + } + // on active la miniature + $("#"+this.prop.imgMiniContainer+" img.currentimage").removeClass("currentimage"); + $("#"+this.prop.imgMiniContainer+" img[data-index="+this.prop.currentPicture+"]").addClass("currentimage"); + } + + // pour déplacer le scroll de l'image hd + // direction up, down (et top pour le déplacer tout en haut + this.imgHdScroll=function(direction,value){ + // si value n'existe pas alors, on lui attribue 10 + if(typeof value=="undefined") value=20; + var cadre=$("#cadreimghd"); + // pour scroll tout en haut + if(direction=="top"){ + cadre.scrollTop(0); + return;} + + var upOrDown=0; + if(direction=="up")upOrDown=-1; + if(direction=="down")upOrDown=+1; + + // on déplace le scroll + cadre.scrollTop(+cadre.get(0).scrollTop+(value*upOrDown)); + } +/******************************** KEYBOARD READING ******************************* + + escape*2 -> entre en mode URGENCE / sortir du mode URGENCE + + Sur miniature + right -> déplacement vers la droite de l'image sélectionne + left -> déplacement vers la gauche de l'image sélectionne + up -> déplacement vers le haut de l'image sélectionne + down -> déplacement vers le haut de l'image sélectionne + space -> déplacement d'une page(+1) de l'image sélectionne + shift+space -> déplacement d'une page(-1) de l'image sélectionne + enter -> ouverture de l'image HD sélectionnée + + Sur HD + right -> page suivante + left -> page précédente + space -> zoom/dé-zoom + up -> monter dans le zoom de l'image + down -> descendre dans le zoom de l'image + escape -> sortir de l'image HD (close hd) + +*********************************************************************************/ + // définition dest touche de controle + this.keys={ + left:[65,81,113,97,37], // q,a,< + right:[68,100,39], // d,> + up:[87,90,119,122,38], // w,z,^ + down:[83,115,40], // s,`down` + space:[32], // `space` + enter:[13,70,102], // `enter`, f + escape:[27,101,69], // `escape`,e + + // la dernière fois que la touche echap a été appuyée + lastEscapeTimeStamp:0, + + // savoir si l'évenement à une coresspondance dans la cle transmise + equals:function(key,keyEvent){ + for(var i=0; i