Create theme for CinemaPress

This commit is contained in:
Surinam 2020-03-07 18:27:11 +02:00
commit e5b171698b
31 changed files with 2147 additions and 0 deletions

20
.gitignore vendored Normal file
View File

@ -0,0 +1,20 @@
Thumbs.db
.idea/
lib-cov/
*.seed
*.log
*.csv
*.dat
*.out
*.pid
*.gz
/themes/*
!/themes/default/
pids/
logs/
results/
build/
node_modules/
package-lock.json

67
README.md Normal file
View File

@ -0,0 +1,67 @@
# Create theme for CinemaPress
## Install (<a href="https://nodejs.org/" target="_blank">NodeJS</a>)
```bash
npm i cinematheme -g
```
## Usage
```bash
cinematheme --name "mytheme" --index "https://example.com"
```
- `https://example.com` - donor website;
- `mytheme` - name theme (lowercase).
After generation and editing (recommended use <a href="https://code.visualstudio.com/" target="_blank">Visual Studio Code</a> and <a href="https://marketplace.visualstudio.com/items?itemName=DigitalBrainstem.javascript-ejs-support" target="_blank">EJS extensions</a>), you can send `mytheme` folder to the server in `themes` folder.
- `/themes/mytheme/default/` - all functions in theme (help);
- `/themes/mytheme/public/` - static files;
- `/themes/mytheme/views/` - theme files;
#### File to URL:
- `index.ejs` - `/`
- `movie.ejs` - `/movie/[id]`
- `episode.ejs` - `/movie/[id]/s11e22`
- `picture.ejs` - `/movie/[id]/picture`
- `trailer.ejs` - `/movie/[id]/trailer`
- `online.ejs` - `/movie/[id]/online`
- `download.ejs` - `/movie/[id]/download`
- `categories.ejs`
- `/year`
- `/genre`
- `/actor`
- `/country`
- `/director`
- `/content`
- `category.ejs`
- `/year/[year]`
- `/genre/[genre]`
- `/actor/[actor]`
- `/country/[country]`
- `/director/[director]`
- `/content/[content]`
## Help
```bash
~# cinemapress -h
Usage: cinematheme <command> [options]
Create theme for CinemaPress
Options:
-i, --index <url> index url
-m, --movie [url] movie url
-c, --category [url] category url
-s, --categories [url] categories url
-e, --episode [url] episode url
-p, --picture [url] picture url
-t, --trailer [url] trailer url
-o, --online [url] online url
-d, --download [url] download url
-n, --name [name] name theme
-V, --version output the version number
-h, --help output usage information
```

28
cinematheme.js Normal file
View File

@ -0,0 +1,28 @@
#!/usr/bin/env node
const program = require('commander');
program
.usage('<command> [options]')
.description('Create theme for CinemaPress')
.option('-i, --index <url>', 'index url', /^(http|https):\/\/[^ "]+$/i)
.option('-m, --movie [url]', 'movie url', /^(http|https):\/\/[^ "]+$/i)
.option('-c, --category [url]', 'category url', /^(http|https):\/\/[^ "]+$/i)
.option('-s, --categories [url]', 'categories url', /^(http|https):\/\/[^ "]+$/i)
.option('-e, --episode [url]', 'episode url', /^(http|https):\/\/[^ "]+$/i)
.option('-p, --picture [url]', 'picture url', /^(http|https):\/\/[^ "]+$/i)
.option('-t, --trailer [url]', 'trailer url', /^(http|https):\/\/[^ "]+$/i)
.option('-o, --online [url]', 'online url', /^(http|https):\/\/[^ "]+$/i)
.option('-d, --download [url]', 'download url', /^(http|https):\/\/[^ "]+$/i)
.option('-n, --name [name]', 'name theme', /^[A-Za-z0-9]+$/i)
.version('0.0.1')
.parse(process.argv);
if (!program.index) {
console.error('--index required!');
process.exit();
}
require('./')(program)
.then()
.catch(console.error);

1
default/public/css/all.min.css vendored Normal file

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,62 @@
<?xml version="1.0" encoding="iso-8859-1"?>
<!-- Generator: Adobe Illustrator 19.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="0 0 511.985 511.985" style="enable-background:new 0 0 511.985 511.985;" xml:space="preserve">
<path style="fill:#A0D468;" d="M438.878,386.347l-1.827-0.531c-26.469-7.109-35.406-13.922-47.188-18.422
c-41.811-15.921-52.686-27.405-55.467-32.811c-0.094-0.203-0.172-0.406-0.266-0.609l-0.344-48.546l-77.793-1.124l-77.795,1.125
l-0.344,48.546c-0.094,0.203-0.172,0.406-0.266,0.609c-2.781,5.405-13.655,16.89-55.451,32.811
c-11.781,4.5-20.734,11.312-47.202,18.422l-1.828,0.531c-24.093,7.953-40.295,30.296-40.295,55.514v70.123h223.181h223.181v-70.123
C479.174,416.643,462.971,394.301,438.878,386.347z"/>
<path style="fill:#EAC6BB;" d="M255.993,42.693c-75.967,0-137.543,58.96-137.543,148.34c0,89.364,85.2,171.611,137.543,171.611
c52.342,0,137.558-82.247,137.558-171.611C393.551,101.653,331.959,42.693,255.993,42.693z"/>
<path style="fill:#656D78;" d="M393.457,185.4c0.047,1.867,0.094,3.734,0.094,5.633c0,7.156-0.578,14.265-1.609,21.288
c4.641,6.844,6.047,15.695,3.578,24.844c-2.953,10.819-11.202,20.624-23.218,27.593c-15.374,8.89-36.78,13.249-61.873,12.577
l-0.594,21.312c1.969,0.062,3.875,0.078,5.766,0.078c62.732,0,93.044-28.592,100.497-55.967
C422.347,219.766,413.254,196.861,393.457,185.4z"/>
<g>
<path style="fill:#DA4453;" d="M301.867,15.975L265.226,121.66c113.981-15.336,136.449,65.24,136.449,65.24
C447.065,15.35,301.867,15.975,301.867,15.975z"/>
<path style="fill:#DA4453;" d="M401.957,227.595l-10.531-37.788c-0.156-0.484-4.687-15.359-18.812-29.897
c-19.03-19.594-45.843-29.522-79.716-29.522c-8.312,0-17.156,0.617-26.25,1.844l-17.187,2.312l44.812-129.2l7.625-0.039
c2.499,0,61.873,0.516,96.059,44.921c25.156,32.663,29.875,79.561,14.031,139.41L401.957,227.595z M292.898,109.051
c50.311,0,79.919,20.078,95.902,36.921c3.25,3.422,6.078,6.859,8.531,10.188c6.219-39.585,0.781-70.764-16.28-92.919
c-21.452-27.882-56.562-34.522-71.764-36.108l-28.546,82.294C284.883,109.176,288.93,109.051,292.898,109.051z"/>
</g>
<path style="fill:#ED5564;" d="M371.958,26.483C370.646,25.397,338.959,0,275.398,0c-22.327,0-46.123,3.163-70.717,9.405
c-32.608,8.266-58.342,26.32-76.481,53.663c-14.828,22.335-24.594,51.006-29.046,85.2c-7.578,58.357,2.093,120.778,8.53,152.784
l11.469,57.03l9.516-57.405c0.062-0.406,7.343-43.076,32.64-84.896c14.593-24.108,32.249-43.257,52.498-56.912
c25.108-16.922,54.498-25.499,87.357-25.499c10.03,0,20.545,0.797,31.264,2.383l8.75,1.289l36.53-105.856L371.958,26.483z"/>
<path style="fill:#434A54;" d="M289.305,260.672c-0.438,0-0.891,0.008-1.344,0.023c-18.891,0.57-33.843,13.265-33.374,28.327
c0.453,14.718,15.421,26.28,33.718,26.28c0.438,0,0.875,0,1.328-0.031c18.89-0.562,33.842-13.25,33.389-28.327
C322.568,272.225,307.6,260.672,289.305,260.672z"/>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 3.0 KiB

View File

@ -0,0 +1 @@
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="512" height="512" viewBox="0 0 16 16"><g><path fill="#444444" d="M15.6 7.8c0 0 0.5 0.5 0.4 1.6 0 1.5-1.6 1.6-1.6 1.6h-2.4c-0.2 0-0.3 0.2-0.3 0.4 0.3 0.7 0.8 2.1 0.6 3.1-0.3 1.4-1.5 1.5-1.9 1.5-0.1 0-0.2-0.1-0.2-0.2l-1-2.8c0 0 0-0.1-0.1-0.1l-2.6-2.8c-0.1-0.1-0.2-0.1-0.3-0.1h-0.2v-7h0.2c0.7 0 3.2-2 5.4-2s2.7 0.3 3.1 1c0.4 0.7 0.1 1.3 0.1 1.3s0.5 0.3 0.6 1c0.1 0.7-0.1 1.1-0.1 1.1s0.5 0.4 0.5 1.2c0.1 0.9-0.2 1.2-0.2 1.2z" data-original="#444444" class="active-path" style="fill:#A6003B" data-old_color="#444444"/><path fill="#444444" d="M0 11h5v-8h-5v8zM2.5 7.5c0.6 0 1 0.4 1 1s-0.4 1-1 1-1-0.4-1-1c0-0.6 0.4-1 1-1z" data-original="#444444" class="active-path" style="fill:#A6003B" data-old_color="#444444"/></g> </svg>

After

Width:  |  Height:  |  Size: 823 B

View File

@ -0,0 +1 @@
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="512" height="512" viewBox="0 0 16 16"><g><path fill="#444444" d="M15.6 7.8c0 0 0.5 0.5 0.4 1.6 0 1.5-1.6 1.6-1.6 1.6h-2.4c-0.2 0-0.3 0.2-0.3 0.4 0.3 0.7 0.8 2.1 0.6 3.1-0.3 1.4-1.5 1.5-1.9 1.5-0.1 0-0.2-0.1-0.2-0.2l-1-2.8c0 0 0-0.1-0.1-0.1l-2.6-2.8c-0.1-0.1-0.2-0.1-0.3-0.1h-0.2v-7h0.2c0.7 0 3.2-2 5.4-2s2.7 0.3 3.1 1c0.4 0.7 0.1 1.3 0.1 1.3s0.5 0.3 0.6 1c0.1 0.7-0.1 1.1-0.1 1.1s0.5 0.4 0.5 1.2c0.1 0.9-0.2 1.2-0.2 1.2z" data-original="#444444" class="active-path" style="fill:#83002E" data-old_color="#444444"/><path fill="#444444" d="M0 11h5v-8h-5v8zM2.5 7.5c0.6 0 1 0.4 1 1s-0.4 1-1 1-1-0.4-1-1c0-0.6 0.4-1 1-1z" data-original="#444444" class="active-path" style="fill:#83002E" data-old_color="#444444"/></g> </svg>

After

Width:  |  Height:  |  Size: 823 B

View File

@ -0,0 +1,44 @@
<?xml version="1.0" encoding="iso-8859-1"?>
<!-- Generator: Adobe Illustrator 18.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg version="1.1" id="Capa_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="0 0 54 54" style="enable-background:new 0 0 54 54;" xml:space="preserve">
<g>
<g>
<rect x="1" y="1" style="fill:#687492;" width="52" height="52"/>
<path style="fill:#687492;" d="M54,54H0V0h54V54z M2,52h50V2H2V52z"/>
</g>
<path style="fill:#FFFFFF;" d="M35,45c-0.256,0-0.512-0.098-0.707-0.293L16.586,27L34.293,9.293c0.391-0.391,1.023-0.391,1.414,0
s0.391,1.023,0,1.414L19.414,27l16.293,16.293c0.391,0.391,0.391,1.023,0,1.414C35.512,44.902,35.256,45,35,45z"/>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 988 B

View File

@ -0,0 +1 @@
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="512" height="512" viewBox="0 0 16 16"><g transform="matrix(-1, -0, -0, -1, 16, 16)"><path fill="#444444" d="M15.6 7.8c0 0 0.5 0.5 0.4 1.6 0 1.5-1.6 1.6-1.6 1.6h-2.4c-0.2 0-0.3 0.2-0.3 0.4 0.3 0.7 0.8 2.1 0.6 3.1-0.3 1.4-1.5 1.5-1.9 1.5-0.1 0-0.2-0.1-0.2-0.2l-1-2.8c0 0 0-0.1-0.1-0.1l-2.6-2.8c-0.1-0.1-0.2-0.1-0.3-0.1h-0.2v-7h0.2c0.7 0 3.2-2 5.4-2s2.7 0.3 3.1 1c0.4 0.7 0.1 1.3 0.1 1.3s0.5 0.3 0.6 1c0.1 0.7-0.1 1.1-0.1 1.1s0.5 0.4 0.5 1.2c0.1 0.9-0.2 1.2-0.2 1.2z" data-original="#444444" class="active-path" style="fill:#00A67B" data-old_color="#444444"/><path fill="#444444" d="M0 11h5v-8h-5v8zM2.5 7.5c0.6 0 1 0.4 1 1s-0.4 1-1 1-1-0.4-1-1c0-0.6 0.4-1 1-1z" data-original="#444444" class="active-path" style="fill:#00A67B" data-old_color="#444444"/></g> </svg>

After

Width:  |  Height:  |  Size: 866 B

View File

@ -0,0 +1 @@
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="512" height="512" viewBox="0 0 16 16"><g transform="matrix(-1, -0, -0, -1, 16, 16)"><path fill="#444444" d="M15.6 7.8c0 0 0.5 0.5 0.4 1.6 0 1.5-1.6 1.6-1.6 1.6h-2.4c-0.2 0-0.3 0.2-0.3 0.4 0.3 0.7 0.8 2.1 0.6 3.1-0.3 1.4-1.5 1.5-1.9 1.5-0.1 0-0.2-0.1-0.2-0.2l-1-2.8c0 0 0-0.1-0.1-0.1l-2.6-2.8c-0.1-0.1-0.2-0.1-0.3-0.1h-0.2v-7h0.2c0.7 0 3.2-2 5.4-2s2.7 0.3 3.1 1c0.4 0.7 0.1 1.3 0.1 1.3s0.5 0.3 0.6 1c0.1 0.7-0.1 1.1-0.1 1.1s0.5 0.4 0.5 1.2c0.1 0.9-0.2 1.2-0.2 1.2z" data-original="#444444" class="active-path" style="fill:#00815F" data-old_color="#444444"/><path fill="#444444" d="M0 11h5v-8h-5v8zM2.5 7.5c0.6 0 1 0.4 1 1s-0.4 1-1 1-1-0.4-1-1c0-0.6 0.4-1 1-1z" data-original="#444444" class="active-path" style="fill:#00815F" data-old_color="#444444"/></g> </svg>

After

Width:  |  Height:  |  Size: 866 B

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 10 KiB

View File

@ -0,0 +1 @@
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="512" height="512" viewBox="0 0 16 16"><g transform="matrix(-1, -0, 0, 1, 16, 0)"><path fill="#444444" d="M16 8c0-5-4.9-5-4.9-5h-2.1v-3l-6 6 6 6v-3h2.2c3.5 0 1.8 7 1.8 7s3-4.1 3-8z" data-original="#444444" class="active-path" style="fill:#00A5A8" data-old_color="#444444"/><path fill="#444444" d="M0 6l6 6v-1.5l-4.5-4.5 4.5-4.5v-1.5z" data-original="#444444" class="active-path" style="fill:#00A5A8" data-old_color="#444444"/></g> </svg>

After

Width:  |  Height:  |  Size: 540 B

View File

@ -0,0 +1 @@
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="512" height="512" viewBox="0 0 16 16"><g transform="matrix(-1, -0, 0, 1, 16, 0)"><path fill="#444444" d="M16 8c0-5-4.9-5-4.9-5h-2.1v-3l-6 6 6 6v-3h2.2c3.5 0 1.8 7 1.8 7s3-4.1 3-8z" data-original="#444444" class="active-path" style="fill:#008083" data-old_color="#444444"/><path fill="#444444" d="M0 6l6 6v-1.5l-4.5-4.5 4.5-4.5v-1.5z" data-original="#444444" class="active-path" style="fill:#008083" data-old_color="#444444"/></g> </svg>

After

Width:  |  Height:  |  Size: 540 B

View File

@ -0,0 +1,44 @@
<?xml version="1.0" encoding="iso-8859-1"?>
<!-- Generator: Adobe Illustrator 18.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg version="1.1" id="Capa_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="0 0 54 54" style="enable-background:new 0 0 54 54;" xml:space="preserve">
<g>
<g>
<rect x="1" y="1" style="fill:#687492;" width="52" height="52"/>
<path style="fill:#687492;" d="M54,54H0V0h54V54z M2,52h50V2H2V52z"/>
</g>
<path style="fill:#FFFFFF;" d="M19,45c-0.256,0-0.512-0.098-0.707-0.293c-0.391-0.391-0.391-1.023,0-1.414L34.586,27L18.293,10.707
c-0.391-0.391-0.391-1.023,0-1.414s1.023-0.391,1.414,0L37.414,27L19.707,44.707C19.512,44.902,19.256,45,19,45z"/>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 991 B

View File

@ -0,0 +1,44 @@
<?xml version="1.0" encoding="windows-1252"?>
<!-- Generator: Adobe Illustrator 19.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" id="Capa_1" x="0px" y="0px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve" width="512px" height="512px">
<polyline style="fill:#F5C86E;" points="498.334,19 300.144,305.103 279.486,334.925 279.486,435.065 354.796,361.463 316.334,289.667 "/>
<polyline style="fill:#FAE196;" points="209.505,313.515 64,269 502,10 502,403 283,336 "/>
<polygon style="fill:#F5B955;" points="279.486,435.065 213.353,314.693 498.334,19 285.632,326.052 "/>
<path d="M506.955,1.314c-3.119-1.78-6.955-1.75-10.045,0.078L313.656,109.756c-4.754,2.811-6.329,8.943-3.518,13.697 c2.81,4.753,8.942,6.328,13.697,3.518l131.482-77.749L210.411,303.335L88.603,266.069l158.965-94 c4.754-2.812,6.329-8.944,3.518-13.698c-2.81-4.753-8.943-6.33-13.697-3.518L58.91,260.392c-3.41,2.017-5.309,5.856-4.84,9.791 s3.216,7.221,7.004,8.38l145.469,44.504L270.72,439.88c0.067,0.121,0.136,0.223,0.207,0.314c1.071,1.786,2.676,3.245,4.678,4.087 c1.253,0.527,2.57,0.784,3.878,0.784c2.563,0,5.086-0.986,6.991-2.849l73.794-72.12l138.806,42.466 c0.96,0.293,1.945,0.438,2.925,0.438c2.116,0,4.206-0.672,5.948-1.961C510.496,409.153,512,406.17,512,403V10 C512,6.409,510.074,3.093,506.955,1.314z M419.584,115.12L271.265,329.23c-1.158,1.673-1.779,3.659-1.779,5.694v61.171 l-43.823-79.765L419.584,115.12z M289.486,411.309v-62.867l48.99,14.988L289.486,411.309z M295.501,329.367L492,45.704v343.779 L295.501,329.367z"/>
<path d="M164.423,347.577c-3.906-3.905-10.236-3.905-14.143,0l-93.352,93.352c-3.905,3.905-3.905,10.237,0,14.143 C58.882,457.024,61.441,458,64,458c2.559,0,5.118-0.976,7.071-2.929l93.352-93.352C168.328,357.815,168.328,351.483,164.423,347.577 z"/>
<path d="M25.929,471.929l-23,23c-3.905,3.905-3.905,10.237,0,14.143C4.882,511.024,7.441,512,10,512s5.118-0.977,7.071-2.929l23-23 c3.905-3.905,3.905-10.237,0-14.143C36.165,468.025,29.835,468.025,25.929,471.929z"/>
<path d="M135.58,491.41c-2.641,0-5.21,1.07-7.07,2.93c-1.86,1.86-2.93,4.43-2.93,7.07c0,2.63,1.069,5.21,2.93,7.07 c1.86,1.86,4.44,2.93,7.07,2.93s5.21-1.07,7.069-2.93c1.86-1.86,2.931-4.44,2.931-7.07c0-2.64-1.07-5.21-2.931-7.07 C140.79,492.48,138.21,491.41,135.58,491.41z"/>
<path d="M202.909,419.935l-49.446,49.445c-3.905,3.905-3.905,10.237,0,14.142c1.953,1.953,4.512,2.929,7.071,2.929 s5.118-0.977,7.071-2.929l49.446-49.445c3.905-3.905,3.905-10.237,0-14.142C213.148,416.03,206.818,416.03,202.909,419.935z"/>
<path d="M373.562,416.139l-49.58,49.58c-3.905,3.905-3.905,10.237,0,14.143c1.953,1.952,4.512,2.929,7.071,2.929 s5.118-0.977,7.071-2.929l49.58-49.58c3.905-3.905,3.905-10.237,0-14.143C383.798,412.235,377.468,412.235,373.562,416.139z"/>
<path d="M276.43,153.38c2.63,0,5.21-1.06,7.07-2.93c1.859-1.86,2.93-4.43,2.93-7.06c0-2.64-1.07-5.22-2.93-7.08 s-4.44-2.93-7.07-2.93s-5.21,1.07-7.07,2.93c-1.859,1.86-2.93,4.44-2.93,7.08c0,2.63,1.07,5.2,2.93,7.06 C271.22,152.32,273.8,153.38,276.43,153.38z"/>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 3.2 KiB

View File

@ -0,0 +1,29 @@
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" id="Layer_1" x="0px" y="0px" viewBox="0 0 256 256" style="enable-background:new 0 0 256 256;" xml:space="preserve" width="512" height="512"><g transform="matrix(-1, -0, 0, 1, 256, 0)"><style type="text/css">
.st0{fill:#EA4647;}
.st1{fill:#F9D0B4;}
.st2{fill:#55ACD5;}
.st3{fill:#E9E9EA;}
.st4{fill:#6DCC6D;}
.st5{fill:#FFCD29;}
.st6{fill:#231F20;}
</style><g id="Layer_20">
<path class="st0 active-path" d="M193,24.5H63c-17.5,0.1-31.7,14.2-31.8,31.8v130.1c0.1,17.5,14.2,31.7,31.8,31.8h33.6c3.9,0,7.6,2,9.7,5.2 l19,28.7c1,1.5,3.1,1.9,4.6,0.9c0.4-0.2,0.7-0.6,0.9-0.9l19-28.7c2.2-3.3,5.8-5.2,9.7-5.2H193c17.5-0.1,31.7-14.2,31.8-31.8V56.3 C224.7,38.7,210.5,24.6,193,24.5z" data-original="#000000"/>
<path class="st1 active-path" d="M103.8,81.3H91.7v73.6h12.1c1.4,0,2.6-1.2,2.6-2.6l0,0V84C106.4,82.5,105.3,81.3,103.8,81.3 C103.8,81.3,103.8,81.3,103.8,81.3z" data-original="#000000"/>
<path class="st1 active-path" d="M197.5,106.9c0-4.7-3.8-8.5-8.5-8.5c4.7,0,8.5-3.8,8.5-8.5s-3.8-8.5-8.5-8.5h-37c-3.8,0-7.6,0.6-11.2,1.8 l-6.5,2.1c-4,1.3-8.1,1.9-12.3,1.9h-15.6v61.9c31,0,30.7,5,35,9.2c0,0,13.6,17,15.3,25.9c1.8,9.1,13.8,5.9,15.7-3.7 c1.6-8.4-4.4-18.8-8.6-31.1H189c4.7,0,8.5-3.8,8.5-8.5s-3.8-8.5-8.5-8.5l0,0c4.7,0,8.5-3.8,8.5-8.5c0-4.7-3.8-8.5-8.5-8.5l0,0 C193.7,115.4,197.5,111.6,197.5,106.9C197.5,106.9,197.5,106.9,197.5,106.9z" data-original="#000000"/>
<path class="st2 active-path" d="M61.1,74.9h28c1.4,0,2.6,1.2,2.6,2.6v79.9c0,1.4-1.2,2.6-2.6,2.6h-28c-1.4,0-2.6-1.2-2.6-2.6V77.6 C58.5,76.1,59.6,74.9,61.1,74.9z" data-original="#000000"/>
<path class="st3 active-path" d="M103.8,81.3H91.7v73.6h12.1c1.4,0,2.6-1.2,2.6-2.6l0,0V84C106.4,82.5,105.3,81.3,103.8,81.3 C103.8,81.3,103.8,81.3,103.8,81.3z" data-original="#000000"/>
<path class="st1 active-path" d="M197.5,106.9c0-4.7-3.8-8.5-8.5-8.5c4.7,0,8.5-3.8,8.5-8.5s-3.8-8.5-8.5-8.5h-37c-3.8,0-7.6,0.6-11.2,1.8 l-6.5,2.1c-4,1.3-8.1,1.9-12.3,1.9h-15.6v61.9c31,0,30.7,5,35,9.2c0,0,13.6,17,15.3,25.9c1.8,9.1,13.8,5.9,15.7-3.7 c1.6-8.4-4.4-18.8-8.6-31.1H189c4.7,0,8.5-3.8,8.5-8.5s-3.8-8.5-8.5-8.5l0,0c4.7,0,8.5-3.8,8.5-8.5c0-4.7-3.8-8.5-8.5-8.5l0,0 C193.7,115.4,197.5,111.6,197.5,106.9C197.5,106.9,197.5,106.9,197.5,106.9z" data-original="#000000"/>
<path class="st0 active-path" d="M46.5,231.5h-1.8v-1.8c0-1.4-1.1-2.5-2.5-2.5s-2.5,1.1-2.5,2.5v1.8h-1.8c-1.4,0-2.5,1.1-2.5,2.5 s1.1,2.5,2.5,2.5h1.8v1.8c0,1.4,1.1,2.5,2.5,2.5s2.5-1.1,2.5-2.5v-1.8h1.8c1.4,0,2.5-1.1,2.5-2.5S47.8,231.5,46.5,231.5z" data-original="#000000"/>
<path class="st2 active-path" d="M240,37.4c-0.1-0.3-0.2-0.6-0.4-0.9c-0.1-0.1-0.2-0.3-0.3-0.4c-1-0.9-2.5-0.9-3.5,0c-0.1,0.1-0.2,0.2-0.3,0.4 c-0.1,0.1-0.2,0.3-0.2,0.4c-0.1,0.2-0.1,0.3-0.1,0.5c-0.1,0.3-0.1,0.7,0,1c0,0.2,0.1,0.3,0.1,0.5c0.1,0.1,0.1,0.3,0.2,0.4 c0.1,0.1,0.2,0.3,0.3,0.4c1,1,2.5,1,3.5,0c0,0,0,0,0,0c0.1-0.1,0.2-0.2,0.3-0.4c0.1-0.1,0.2-0.3,0.2-0.4c0.1-0.1,0.1-0.3,0.1-0.5 C240.1,38.1,240.1,37.8,240,37.4z" data-original="#000000"/>
<path class="st4 active-path" d="M67.7,253c-0.1-0.3-0.2-0.6-0.4-0.9c-0.1-0.1-0.2-0.3-0.3-0.4c-1-0.9-2.5-0.9-3.5,0c-0.1,0.1-0.2,0.2-0.3,0.4 c-0.1,0.1-0.2,0.3-0.2,0.4c-0.1,0.2-0.1,0.3-0.1,0.5c-0.1,0.3-0.1,0.7,0,1c0,0.2,0.1,0.3,0.1,0.5c0.1,0.1,0.1,0.3,0.2,0.4 c0.1,0.1,0.2,0.3,0.3,0.4c1,1,2.5,1,3.5,0c0,0,0,0,0,0c0.1-0.1,0.2-0.2,0.3-0.4c0.1-0.1,0.2-0.3,0.2-0.4c0.1-0.1,0.1-0.3,0.1-0.5 C67.7,253.7,67.7,253.3,67.7,253z" data-original="#000000"/>
<path class="st5 active-path" d="M227,8.2c-4.1-0.8-7.2-4-8-8c0-0.1-0.1-0.2-0.2-0.2c-0.1,0-0.1,0.1-0.2,0.2c-0.8,4.1-4,7.2-8,8 c-0.1,0-0.2,0.1-0.2,0.2c0,0.1,0.1,0.1,0.2,0.2c4.1,0.8,7.2,4,8,8c0,0.1,0.1,0.2,0.2,0.2c0.1,0,0.1-0.1,0.2-0.2c0.8-4.1,4-7.2,8-8 c0.1,0,0.2-0.1,0.2-0.2C227.1,8.2,227.1,8.2,227,8.2z" data-original="#000000"/>
<path class="st6 active-path" d="M103.8,78.8H91.7c-1.4,0-2.5,1.1-2.5,2.5v73.6c0,1.4,1.1,2.5,2.5,2.5h12.1c2.8,0,5.1-2.3,5.1-5.1V84 C108.9,81.1,106.6,78.8,103.8,78.8z M103.9,152.3c0,0.1-0.1,0.1-0.1,0.1h-9.6V83.8h9.6c0.1,0,0.1,0.1,0.1,0.1c0,0,0,0,0,0V152.3z" data-original="#000000"/>
<path class="st6 active-path" d="M200,106.9c0-3.3-1.5-6.4-4-8.5c4.7-3.9,5.4-10.8,1.5-15.5c-2.1-2.5-5.2-4-8.5-4h-37c-4.1,0-8.1,0.6-12,1.9 l-6.5,2.1c-3.7,1.2-7.6,1.8-11.5,1.8h-15.6c-1.4,0-2.5,1.1-2.5,2.5v61.9c0,1.4,1.1,2.5,2.5,2.5c25.9,0,28.8,3.4,31.6,6.7 c0.5,0.5,0.9,1.1,1.5,1.7c3.7,4.7,13.4,17.9,14.7,24.7c0.9,4.6,4.1,7.4,8.4,7.4l0,0c4.9,0,10.8-3.9,12.2-11.2 c1.3-6.8-1.6-14.2-5-22.7c-0.8-2.1-1.7-4.2-2.5-6.4H189c6.1,0,11-4.9,11-11c0-3.3-1.5-6.4-4-8.5c4.7-3.8,5.4-10.8,1.5-15.5 c-0.5-0.6-1-1.1-1.5-1.5C198.6,113.3,200,110.2,200,106.9z M189,100.9c3.3,0,6,2.7,6,6s-2.7,6-6,6c-1.4,0-2.5,1.1-2.5,2.5 s1.1,2.5,2.5,2.5c3.3,0,6,2.7,6,6s-2.7,6-6,6c-1.4,0-2.5,1.1-2.5,2.5s1.1,2.5,2.5,2.5c3.3,0,6,2.7,6,6s-2.7,6-6,6h-25.2 c-1.4,0-2.5,1.1-2.5,2.5c0,0.3,0,0.5,0.1,0.8c1.2,3.5,2.5,6.7,3.7,9.9c3.1,7.8,5.8,14.5,4.8,19.9c-0.9,4.5-4.4,7.1-7.3,7.1l0,0 c-1.9,0-3.1-1.1-3.5-3.4c-1.8-9.4-15.2-26.3-15.8-27c-0.1-0.1-0.1-0.1-0.2-0.2c-0.5-0.5-0.9-1-1.3-1.5c-4.2-4.9-8.8-8.2-32.9-8.4 V89.6H122c4.4,0,8.8-0.7,13.1-2.1l6.5-2.1c3.4-1.1,6.9-1.6,10.4-1.6h37c3.3,0,6,2.7,6,6s-2.7,6-6,6c-1.4,0-2.5,1.1-2.5,2.5 S187.7,100.8,189,100.9L189,100.9z" data-original="#000000"/>
<path class="st6 active-path" d="M89.1,72.4h-28c-2.8,0-5.1,2.3-5.1,5.1v79.9c0,2.8,2.3,5.1,5.1,5.1h28c2.8,0,5.1-2.3,5.1-5.1V77.6 C94.2,74.7,91.9,72.5,89.1,72.4z M89.2,157.4c0,0.1-0.1,0.1-0.1,0.1h-28c-0.1,0-0.1-0.1-0.1-0.1V77.6c0-0.1,0.1-0.1,0.1-0.1l0,0h28 c0.1,0,0.1,0.1,0.1,0.1c0,0,0,0,0,0V157.4z" data-original="#000000"/>
<path class="st6 active-path" d="M103.8,78.8H91.7c-1.4,0-2.5,1.1-2.5,2.5v73.6c0,1.4,1.1,2.5,2.5,2.5h12.1c2.8,0,5.1-2.3,5.1-5.1V84 C108.9,81.1,106.6,78.8,103.8,78.8z M103.9,152.3c0,0.1-0.1,0.1-0.1,0.1h-9.6V83.8h9.6c0.1,0,0.1,0.1,0.1,0.1c0,0,0,0,0,0V152.3z" data-original="#000000"/>
<path class="st6 active-path" d="M200,106.9c0-3.3-1.5-6.4-4-8.5c4.7-3.9,5.4-10.8,1.5-15.5c-2.1-2.5-5.2-4-8.5-4h-37c-4.1,0-8.1,0.6-12,1.9 l-6.5,2.1c-3.7,1.2-7.6,1.8-11.5,1.8h-15.6c-1.4,0-2.5,1.1-2.5,2.5v61.9c0,1.4,1.1,2.5,2.5,2.5c25.9,0,28.8,3.4,31.6,6.7 c0.5,0.5,0.9,1.1,1.5,1.7c3.7,4.7,13.4,17.9,14.7,24.7c0.9,4.6,4.1,7.4,8.4,7.4l0,0c4.9,0,10.8-3.9,12.2-11.2 c1.3-6.8-1.6-14.2-5-22.7c-0.8-2.1-1.7-4.2-2.5-6.4H189c6.1,0,11-4.9,11-11c0-3.3-1.5-6.4-4-8.5c4.7-3.8,5.4-10.8,1.5-15.5 c-0.5-0.6-1-1.1-1.5-1.5C198.6,113.3,200,110.2,200,106.9z M189,100.9c3.3,0,6,2.7,6,6s-2.7,6-6,6c-1.4,0-2.5,1.1-2.5,2.5 s1.1,2.5,2.5,2.5c3.3,0,6,2.7,6,6s-2.7,6-6,6c-1.4,0-2.5,1.1-2.5,2.5s1.1,2.5,2.5,2.5c3.3,0,6,2.7,6,6s-2.7,6-6,6h-25.2 c-1.4,0-2.5,1.1-2.5,2.5c0,0.3,0,0.5,0.1,0.8c1.2,3.5,2.5,6.7,3.7,9.9c3.1,7.8,5.8,14.5,4.8,19.9c-0.9,4.5-4.4,7.1-7.3,7.1l0,0 c-1.9,0-3.1-1.1-3.5-3.4c-1.8-9.4-15.2-26.3-15.8-27c-0.1-0.1-0.1-0.1-0.2-0.2c-0.5-0.5-0.9-1-1.3-1.5c-4.2-4.9-8.8-8.2-32.9-8.4 V89.6H122c4.4,0,8.8-0.7,13.1-2.1l6.5-2.1c3.4-1.1,6.9-1.6,10.4-1.6h37c3.3,0,6,2.7,6,6s-2.7,6-6,6c-1.4,0-2.5,1.1-2.5,2.5 S187.7,100.8,189,100.9L189,100.9z" data-original="#000000"/>
<path class="st6 active-path" d="M193,22H63c-18.9,0-34.2,15.3-34.3,34.3v130.1c0,18.9,15.3,34.2,34.3,34.2h33.6c3.1,0,5.9,1.5,7.6,4.1l19,28.7 c1.1,1.6,2.9,2.6,4.8,2.6l0,0c1.9,0,3.8-1,4.8-2.6l19-28.7c1.7-2.6,4.6-4.1,7.6-4.1H193c18.9,0,34.2-15.3,34.3-34.3V56.3 C227.3,37.3,211.9,22,193,22z M222.3,186.3c0,16.1-13.1,29.2-29.3,29.3h-33.6c-4.8,0-9.2,2.4-11.8,6.4l-19,28.7 c-0.2,0.4-0.7,0.5-1.1,0.2c-0.1-0.1-0.2-0.1-0.2-0.2l-19-28.7c-2.6-4-7-6.4-11.8-6.3H63c-16.1,0-29.2-13.1-29.3-29.2V56.3 C33.7,40.1,46.8,27,63,27H193c16.1,0,29.2,13.1,29.3,29.2V186.3z" data-original="#000000"/>
<path class="st6 active-path" d="M189,95.9h-8.9c-1.4,0-2.5,1.1-2.5,2.5s1.1,2.5,2.5,2.5h8.9c1.4,0,2.5-1.1,2.5-2.5S190.4,95.9,189,95.9z" data-original="#000000"/>
<path class="st6 active-path" d="M189,112.9h-8.9c-1.4,0-2.5,1.1-2.5,2.5s1.1,2.5,2.5,2.5h8.9c1.4,0,2.5-1.1,2.5-2.5S190.4,112.9,189,112.9z" data-original="#000000"/>
<path class="st6 active-path" d="M189,129.9h-8.9c-1.4,0-2.5,1.1-2.5,2.5s1.1,2.5,2.5,2.5h8.9c1.4,0,2.5-1.1,2.5-2.5S190.4,129.9,189,129.9z" data-original="#000000"/>
</g></g> </svg>

After

Width:  |  Height:  |  Size: 7.9 KiB

View File

@ -0,0 +1,36 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- Generator: Adobe Illustrator 21.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" id="Layer_1" x="0px" y="0px" viewBox="0 0 256 256" style="enable-background:new 0 0 256 256;" xml:space="preserve" width="512px" height="512px">
<style type="text/css">
.st0{fill:#6DCC6D;}
.st1{fill:#F9D0B4;}
.st2{fill:#55ACD5;}
.st3{fill:#E9E9EA;}
.st4{fill:#FFCD29;}
.st5{fill:#EA4647;}
.st6{fill:#231F20;}
</style>
<g id="Layer_19">
<path class="st0" d="M193,24.5H63c-17.5,0.1-31.7,14.2-31.8,31.8v130.1c0.1,17.5,14.2,31.7,31.8,31.8h33.6c3.9,0,7.6,2,9.7,5.2 l19,28.7c1,1.5,3.1,1.9,4.6,0.9c0.4-0.2,0.7-0.6,0.9-0.9l19-28.7c2.2-3.3,5.8-5.2,9.7-5.2H193c17.5-0.1,31.7-14.2,31.8-31.8V56.3 C224.7,38.7,210.5,24.6,193,24.5z"/>
<path class="st1" d="M103.8,90H91.7v73.6h12.1c1.4,0,2.6-1.2,2.6-2.6l0,0V92.6C106.4,91.2,105.3,90,103.8,90 C103.8,90,103.8,90,103.8,90z"/>
<path class="st1" d="M197.5,121.1c0-4.7-3.8-8.5-8.5-8.5l0,0c4.7,0,8.5-3.8,8.5-8.5s-3.8-8.5-8.5-8.5h-25.2 c4.1-12.2,10.2-22.7,8.6-31.1c-1.9-9.6-13.9-12.8-15.7-3.7c-1.7,8.9-15.3,25.9-15.3,25.9c-4.3,4.3-4,9.2-35,9.2v61.9H122 c4.2,0,8.3,0.7,12.3,1.9l6.5,2.1c3.6,1.2,7.4,1.8,11.2,1.8h37c4.7,0,8.5-3.8,8.5-8.5s-3.8-8.5-8.5-8.5l0,0c4.7,0,8.5-3.8,8.5-8.5 s-3.8-8.5-8.5-8.5l0,0C193.7,129.6,197.5,125.8,197.5,121.1C197.5,121.1,197.5,121.1,197.5,121.1z"/>
<path class="st2" d="M61.1,84.9h28c1.4,0,2.6,1.2,2.6,2.6v79.9c0,1.4-1.2,2.6-2.6,2.6h-28c-1.4,0-2.6-1.2-2.6-2.6V87.5 C58.5,86.1,59.6,84.9,61.1,84.9z"/>
<path class="st3" d="M103.8,90H91.7v73.6h12.1c1.4,0,2.6-1.2,2.6-2.6l0,0V92.6C106.4,91.2,105.3,90,103.8,90 C103.8,90,103.8,90,103.8,90z"/>
<path class="st1" d="M197.5,121.1c0-4.7-3.8-8.5-8.5-8.5l0,0c4.7,0,8.5-3.8,8.5-8.5s-3.8-8.5-8.5-8.5h-25.2 c4.1-12.2,10.2-22.7,8.6-31.1c-1.9-9.6-13.9-12.8-15.7-3.7c-1.7,8.9-15.3,25.9-15.3,25.9c-4.3,4.3-4,9.2-35,9.2v61.9H122 c4.2,0,8.3,0.7,12.3,1.9l6.5,2.1c3.6,1.2,7.4,1.8,11.2,1.8h37c4.7,0,8.5-3.8,8.5-8.5s-3.8-8.5-8.5-8.5l0,0c4.7,0,8.5-3.8,8.5-8.5 s-3.8-8.5-8.5-8.5l0,0C193.7,129.6,197.5,125.8,197.5,121.1C197.5,121.1,197.5,121.1,197.5,121.1z"/>
<path class="st4" d="M47.3,231.5h-1.8v-1.8c0-1.4-1.1-2.5-2.5-2.5s-2.5,1.1-2.5,2.5v1.8h-1.8c-1.4,0-2.5,1.1-2.5,2.5 s1.1,2.5,2.5,2.5h1.8v1.8c0,1.4,1.1,2.5,2.5,2.5s2.5-1.1,2.5-2.5v-1.8h1.8c1.4,0,2.5-1.1,2.5-2.5S48.7,231.5,47.3,231.5z"/>
<path class="st0" d="M240.8,37.4c-0.1-0.3-0.2-0.6-0.4-0.9c-0.1-0.1-0.2-0.3-0.3-0.4c-1-0.9-2.5-0.9-3.5,0 c-0.1,0.1-0.2,0.2-0.3,0.4c-0.1,0.1-0.2,0.3-0.2,0.4c-0.1,0.2-0.1,0.3-0.1,0.5c-0.1,0.3-0.1,0.7,0,1c0,0.2,0.1,0.3,0.1,0.5 c0.1,0.1,0.1,0.3,0.2,0.4c0.1,0.1,0.2,0.3,0.3,0.4c1,1,2.5,1,3.5,0c0,0,0,0,0,0c0.1-0.1,0.2-0.2,0.3-0.4c0.1-0.1,0.2-0.3,0.2-0.4 c0.1-0.1,0.1-0.3,0.1-0.5C240.9,38.1,240.9,37.8,240.8,37.4z"/>
<path class="st5" d="M68.5,253c-0.1-0.3-0.2-0.6-0.4-0.9c-0.1-0.1-0.2-0.3-0.3-0.4c-1-0.9-2.5-0.9-3.5,0c-0.1,0.1-0.2,0.2-0.3,0.4 c-0.1,0.1-0.2,0.3-0.2,0.4c-0.1,0.2-0.1,0.3-0.1,0.5c-0.1,0.3-0.1,0.7,0,1c0,0.2,0.1,0.3,0.1,0.5c0.1,0.1,0.1,0.3,0.2,0.4 c0.1,0.1,0.2,0.3,0.3,0.4c1,1,2.5,1,3.5,0c0,0,0,0,0,0c0.1-0.1,0.2-0.2,0.3-0.4c0.1-0.1,0.2-0.3,0.2-0.4c0.1-0.1,0.1-0.3,0.1-0.5 C68.6,253.7,68.6,253.3,68.5,253z"/>
<path class="st2" d="M227.8,8.2c-4.1-0.8-7.2-4-8-8c0-0.1-0.1-0.2-0.2-0.2c-0.1,0-0.1,0.1-0.2,0.2c-0.8,4.1-4,7.2-8,8 c-0.1,0-0.2,0.1-0.2,0.2c0,0.1,0.1,0.1,0.2,0.2c4.1,0.8,7.2,4,8,8c0,0.1,0.1,0.2,0.2,0.2c0.1,0,0.1-0.1,0.2-0.2c0.8-4.1,4-7.2,8-8 c0.1,0,0.2-0.1,0.2-0.2C227.9,8.2,227.9,8.2,227.8,8.2z"/>
<path class="st6" d="M103.8,87.5H91.7c-1.4,0-2.5,1.1-2.5,2.5v73.6c0,1.4,1.1,2.5,2.5,2.5h12.1c2.8,0,5.1-2.3,5.1-5.1V92.6 C108.9,89.8,106.6,87.5,103.8,87.5z M103.9,161c0,0.1-0.1,0.1-0.1,0.1h-9.6V92.5h9.6c0.1,0,0.1,0.1,0.1,0.1c0,0,0,0,0,0V161z"/>
<path class="st6" d="M200,121.1c0-3.3-1.5-6.4-4-8.5c4.7-3.9,5.4-10.8,1.5-15.5c-2.1-2.5-5.2-4-8.5-4h-21.7 c0.8-2.2,1.6-4.3,2.5-6.4c3.4-8.5,6.3-15.9,5-22.7c-1.4-7.2-7.3-11.2-12.2-11.2l0,0c-4.3,0-7.5,2.8-8.4,7.4 c-1.3,6.8-11,20-14.7,24.7c-0.6,0.6-1,1.1-1.5,1.7c-2.8,3.3-5.7,6.7-31.6,6.7c-1.4,0-2.5,1.1-2.5,2.5v61.9c0,1.4,1.1,2.5,2.5,2.5 H122c3.9,0,7.8,0.6,11.5,1.8l6.5,2.1c3.9,1.2,7.9,1.9,12,1.9h37c6.1,0,11-4.9,11-11c0-3.3-1.5-6.4-4-8.5c4.7-3.8,5.4-10.8,1.5-15.5 c-0.5-0.6-1-1.1-1.5-1.5C198.6,127.5,200,124.4,200,121.1z M189,115.1c3.3,0,6,2.7,6,6s-2.7,6-6,6c-1.4,0-2.5,1.1-2.5,2.5 c0,1.4,1.1,2.5,2.5,2.5c3.3,0,6,2.7,6,6s-2.7,6-6,6c-1.4,0-2.5,1.1-2.5,2.5s1.1,2.5,2.5,2.5c3.3,0,6,2.7,6,6s-2.7,6-6,6h-37 c-3.5,0-7.1-0.6-10.4-1.6l-6.5-2.1c-4.2-1.4-8.6-2.1-13.1-2.1h-13.1V98.4c24.1-0.2,28.7-3.5,32.9-8.4c0.4-0.5,0.9-1,1.3-1.5 c0.1-0.1,0.1-0.1,0.2-0.2c0.6-0.7,14-17.6,15.8-27c0.4-2.2,1.6-3.4,3.5-3.4l0,0c2.9,0,6.4,2.7,7.3,7.1c1,5.3-1.6,12.1-4.8,19.9 c-1.3,3.2-2.6,6.4-3.7,9.9c-0.4,1.3,0.3,2.7,1.6,3.2c0.3,0.1,0.5,0.1,0.8,0.1H189c3.3,0,6,2.7,6,6s-2.7,6-6,6 c-1.4,0-2.5,1.1-2.5,2.5S187.7,115.1,189,115.1L189,115.1z"/>
<path class="st6" d="M89.1,82.4h-28c-2.8,0-5.1,2.3-5.1,5.1v79.9c0,2.8,2.3,5.1,5.1,5.1h28c2.8,0,5.1-2.3,5.1-5.1V87.5 C94.2,84.7,91.9,82.4,89.1,82.4z M89.2,167.4c0,0.1-0.1,0.1-0.1,0.1c0,0,0,0,0,0h-28c-0.1,0-0.1-0.1-0.1-0.1l0,0V87.5 c0-0.1,0.1-0.1,0.1-0.1c0,0,0,0,0,0h28c0.1,0,0.1,0.1,0.1,0.1c0,0,0,0,0,0V167.4z"/>
<path class="st6" d="M103.8,87.5H91.7c-1.4,0-2.5,1.1-2.5,2.5v73.6c0,1.4,1.1,2.5,2.5,2.5h12.1c2.8,0,5.1-2.3,5.1-5.1V92.6 C108.9,89.8,106.6,87.5,103.8,87.5z M103.9,161c0,0.1-0.1,0.1-0.1,0.1h-9.6V92.5h9.6c0.1,0,0.1,0.1,0.1,0.1c0,0,0,0,0,0V161z"/>
<path class="st6" d="M200,121.1c0-3.3-1.5-6.4-4-8.5c4.7-3.9,5.4-10.8,1.5-15.5c-2.1-2.5-5.2-4-8.5-4h-21.7 c0.8-2.2,1.6-4.3,2.5-6.4c3.4-8.5,6.3-15.9,5-22.7c-1.4-7.2-7.3-11.2-12.2-11.2l0,0c-4.3,0-7.5,2.8-8.4,7.4 c-1.3,6.8-11,20-14.7,24.7c-0.6,0.6-1,1.1-1.5,1.7c-2.8,3.3-5.7,6.7-31.6,6.7c-1.4,0-2.5,1.1-2.5,2.5v61.9c0,1.4,1.1,2.5,2.5,2.5 H122c3.9,0,7.8,0.6,11.5,1.8l6.5,2.1c3.9,1.2,7.9,1.9,12,1.9h37c6.1,0,11-4.9,11-11c0-3.3-1.5-6.4-4-8.5c4.7-3.8,5.4-10.8,1.5-15.5 c-0.5-0.6-1-1.1-1.5-1.5C198.6,127.5,200,124.4,200,121.1z M189,115.1c3.3,0,6,2.7,6,6s-2.7,6-6,6c-1.4,0-2.5,1.1-2.5,2.5 c0,1.4,1.1,2.5,2.5,2.5c3.3,0,6,2.7,6,6s-2.7,6-6,6c-1.4,0-2.5,1.1-2.5,2.5s1.1,2.5,2.5,2.5c3.3,0,6,2.7,6,6s-2.7,6-6,6h-37 c-3.5,0-7.1-0.6-10.4-1.6l-6.5-2.1c-4.2-1.4-8.6-2.1-13.1-2.1h-13.1V98.4c24.1-0.2,28.7-3.5,32.9-8.4c0.4-0.5,0.9-1,1.3-1.5 c0.1-0.1,0.1-0.1,0.2-0.2c0.6-0.7,14-17.6,15.8-27c0.4-2.2,1.6-3.4,3.5-3.4l0,0c2.9,0,6.4,2.7,7.3,7.1c1,5.3-1.6,12.1-4.8,19.9 c-1.3,3.2-2.6,6.4-3.7,9.9c-0.4,1.3,0.3,2.7,1.6,3.2c0.3,0.1,0.5,0.1,0.8,0.1H189c3.3,0,6,2.7,6,6s-2.7,6-6,6 c-1.4,0-2.5,1.1-2.5,2.5S187.7,115.1,189,115.1L189,115.1z"/>
<path class="st6" d="M166.3,95.2c-0.2-1.4-1.5-2.3-2.9-2c-1.4,0.2-2.3,1.5-2,2.9c0.1,0.7,2.4,16.3-17.1,26 c-1.2,0.6-1.7,2.1-1.1,3.4s2.1,1.7,3.4,1.1l0,0C169.4,115.1,166.3,95.4,166.3,95.2z"/>
<path class="st6" d="M189,93.1h-16.6c-6.1,0-11,4.9-11,11s4.9,11,11,11H189c6.1,0,11-4.9,11-11S195.1,93.1,189,93.1L189,93.1z M189,110.1h-16.6c-3.3,0-6-2.7-6-6s2.7-6,6-6H189c3.3,0,6,2.7,6,6S192.4,110.1,189,110.1z"/>
<path class="st6" d="M189,110.1h-16.6c-6.1,0-11,4.9-11,11s4.9,11,11,11H189c6.1,0,11-4.9,11-11S195.1,110.1,189,110.1L189,110.1z M189,127.1h-16.6c-3.3,0-6-2.7-6-6s2.7-6,6-6H189c3.3,0,6,2.7,6,6S192.4,127.1,189,127.1z"/>
<path class="st6" d="M189,127.1h-16.6c-6.1,0-11,4.9-11,11c0,6.1,4.9,11,11,11H189c6.1,0,11-4.9,11-11S195.1,127.1,189,127.1 C189,127.1,189,127.1,189,127.1z M189,144.1h-16.6c-3.3,0-6-2.7-6-6s2.7-6,6-6H189c3.3,0,6,2.7,6,6S192.4,144.1,189,144.1z"/>
<path class="st6" d="M189,144.1h-16.6c-6.1,0-11,4.9-11,11s4.9,11,11,11H189c6.1,0,11-4.9,11-11S195.1,144.1,189,144.1L189,144.1z M189,161.1h-16.6c-3.3,0-6-2.7-6-6s2.7-6,6-6H189c3.3,0,6,2.7,6,6S192.4,161.1,189,161.1z"/>
<path class="st6" d="M193,22H63c-18.9,0-34.2,15.3-34.3,34.3v130.1c0,18.9,15.3,34.2,34.3,34.2h33.6c3.1,0,5.9,1.5,7.6,4.1l19,28.7 c1.1,1.6,2.9,2.6,4.8,2.6l0,0c1.9,0,3.8-1,4.8-2.6l19-28.7c1.7-2.6,4.6-4.1,7.6-4.1H193c18.9,0,34.2-15.3,34.3-34.3V56.3 C227.3,37.3,211.9,22,193,22z M222.3,186.3c0,16.1-13.1,29.2-29.3,29.3h-33.6c-4.8,0-9.2,2.4-11.8,6.4l-19,28.7 c-0.2,0.4-0.7,0.5-1.1,0.2c-0.1-0.1-0.2-0.1-0.2-0.2l-19-28.7c-2.6-4-7-6.4-11.8-6.3H63c-16.1,0-29.2-13.1-29.3-29.2V56.3 C33.7,40.1,46.8,27,63,27H193c16.1,0,29.2,13.1,29.3,29.2V186.3z"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 8.1 KiB

View File

@ -0,0 +1,25 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- Generator: Adobe Illustrator 21.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" id="Layer_1" x="0px" y="0px" viewBox="0 0 256 256" style="enable-background:new 0 0 256 256;" xml:space="preserve" width="512px" height="512px">
<style type="text/css">
.st0{fill:#FFCD29;}
.st1{fill:#FFAE2C;}
.st2{fill:#6DCC6D;}
.st3{fill:#EA4647;}
.st4{fill:#55ACD5;}
.st5{fill:#231F20;}
</style>
<g id="Layer_11">
<path class="st0" d="M206.4,123.3c0.8-0.8,0.8-2.1,0-3c-0.3-0.3-0.7-0.5-1.2-0.6l-51-7.4c-0.7-0.1-1.3-0.5-1.6-1.1l-22.8-46.2 c-0.5-1-1.8-1.5-2.8-0.9c-0.4,0.2-0.7,0.5-0.9,0.9l-22.8,46.2c-0.3,0.6-0.9,1-1.6,1.1l-51,7.4c-1.1,0.2-1.9,1.2-1.8,2.4 c0.1,0.5,0.3,0.9,0.6,1.2l36.9,36c0.5,0.5,0.7,1.2,0.6,1.8l-8.7,50.8c-0.2,1.1,0.6,2.2,1.7,2.4c0.5,0.1,0.9,0,1.3-0.2l45.6-24 c0.6-0.3,1.3-0.3,1.9,0l45.6,24c1,0.5,2.3,0.1,2.8-0.9c0.2-0.4,0.3-0.9,0.2-1.3l-8.7-50.8c-0.1-0.7,0.1-1.4,0.6-1.8L206.4,123.3z"/>
<path class="st1" d="M252.9,80.1c0.8-0.8,0.8-2.1,0-2.9c-0.3-0.3-0.7-0.5-1.2-0.6l-31.1-4.5c-0.7-0.1-1.2-0.5-1.5-1.1l-13.9-28.1 c-0.5-1-1.7-1.4-2.7-0.9c-0.4,0.2-0.7,0.5-0.9,0.9L187.7,71c-0.3,0.6-0.9,1-1.5,1.1l-31.1,4.5c-1.1,0.2-1.9,1.2-1.7,2.3 c0.1,0.4,0.3,0.9,0.6,1.2l22.5,21.9c0.5,0.5,0.7,1.1,0.6,1.8l-2,11.6l30.1,4.4c1.1,0.2,1.9,1.2,1.8,2.4c-0.1,0.5-0.3,0.9-0.6,1.2 l0,0l25.8,13.6c1,0.5,2.2,0.1,2.7-0.9c0.2-0.4,0.3-0.9,0.2-1.3l-5.3-30.9c-0.1-0.7,0.1-1.3,0.6-1.8L252.9,80.1z"/>
<path class="st1" d="M102,80.1c0.8-0.8,0.8-2.1,0-2.9c-0.3-0.3-0.7-0.5-1.2-0.6l-31.1-4.5c-0.7-0.1-1.2-0.5-1.5-1.1L54.4,42.8 c-0.5-1-1.7-1.4-2.7-0.9c-0.4,0.2-0.7,0.5-0.9,0.9L36.8,71c-0.3,0.6-0.9,1-1.5,1.1L4.2,76.6c-1.1,0.2-1.9,1.2-1.7,2.3 c0.1,0.4,0.3,0.9,0.6,1.2L25.6,102c0.5,0.5,0.7,1.1,0.6,1.8l-5.3,30.9c-0.2,1.1,0.6,2.2,1.7,2.4c0.4,0.1,0.9,0,1.3-0.2l25.8-13.6 l0,0c-0.8-0.8-0.8-2.1,0-3c0.3-0.3,0.7-0.5,1.2-0.6l30.2-4.4l-2-11.6c-0.1-0.7,0.1-1.3,0.6-1.8L102,80.1z"/>
<path class="st2" d="M200.9,160.5h-1.8v-1.8c0-1.4-1.1-2.5-2.5-2.5s-2.5,1.1-2.5,2.5v1.8h-1.8c-1.4,0-2.5,1.1-2.5,2.5 s1.1,2.5,2.5,2.5h1.8v1.8c0,1.4,1.1,2.5,2.5,2.5s2.5-1.1,2.5-2.5v-1.8h1.8c1.4,0,2.5-1.1,2.5-2.5S202.3,160.5,200.9,160.5z"/>
<path class="st0" d="M80.5,16.6c-0.1-0.3-0.2-0.6-0.4-0.9c-0.1-0.1-0.2-0.3-0.3-0.4c-1-0.9-2.5-0.9-3.5,0c-0.1,0.1-0.2,0.2-0.3,0.4 c-0.1,0.1-0.2,0.3-0.2,0.4c-0.1,0.2-0.1,0.3-0.1,0.5c-0.1,0.3-0.1,0.7,0,1c0,0.2,0.1,0.3,0.1,0.5c0.1,0.1,0.1,0.3,0.2,0.4 c0.1,0.1,0.2,0.3,0.3,0.4c1,1,2.5,1,3.5,0c0,0,0,0,0,0c0.1-0.1,0.2-0.2,0.3-0.4c0.1-0.1,0.2-0.3,0.2-0.4c0.1-0.1,0.1-0.3,0.1-0.5 C80.6,17.2,80.6,16.9,80.5,16.6z"/>
<path class="st0" d="M223.2,189.2c0-0.2-0.1-0.3-0.1-0.5c-0.1-0.2-0.1-0.3-0.2-0.4c-0.1-0.1-0.2-0.3-0.3-0.4c-1-0.9-2.5-0.9-3.5,0 c-0.1,0.1-0.2,0.2-0.3,0.4c-0.1,0.1-0.2,0.3-0.2,0.4c-0.1,0.2-0.1,0.3-0.1,0.5c-0.1,0.3-0.1,0.7,0,1c0,0.2,0.1,0.3,0.1,0.5 c0.1,0.1,0.1,0.3,0.2,0.4c0.1,0.1,0.2,0.3,0.3,0.4c1,1,2.5,1,3.5,0c0,0,0,0,0,0c0.1-0.1,0.2-0.2,0.3-0.4c0.1-0.1,0.2-0.3,0.2-0.4 c0.1-0.1,0.1-0.3,0.1-0.5C223.3,189.9,223.3,189.6,223.2,189.2z"/>
<path class="st3" d="M110.8,41.5c-4.1-0.8-7.2-4-8-8c0-0.1-0.1-0.2-0.2-0.2c-0.1,0-0.1,0.1-0.2,0.2c-0.8,4.1-4,7.2-8,8 c-0.1,0-0.2,0.1-0.2,0.2c0,0.1,0.1,0.1,0.2,0.2c4.1,0.8,7.2,4,8,8c0,0.1,0.1,0.2,0.2,0.2c0.1,0,0.1-0.1,0.2-0.2c0.8-4.1,4-7.2,8-8 c0.1,0,0.2-0.1,0.1-0.2C110.9,41.6,110.9,41.5,110.8,41.5z"/>
<path class="st4" d="M255.8,169.7c-4.1-0.8-7.2-4-8-8c0-0.1-0.1-0.2-0.2-0.2c-0.1,0-0.1,0.1-0.2,0.2c-0.8,4.1-4,7.2-8,8 c-0.1,0-0.2,0.1-0.2,0.2c0,0.1,0.1,0.1,0.2,0.2c4.1,0.8,7.2,4,8,8c0,0.1,0.1,0.2,0.2,0.2c0.1,0,0.1-0.1,0.2-0.2c0.8-4.1,4-7.2,8-8 c0.1,0,0.2-0.1,0.2-0.2C256,169.7,255.9,169.7,255.8,169.7z"/>
<path class="st5" d="M209.3,120.4c-0.5-1.7-2-2.9-3.7-3.1l-50.8-7.4l-22.7-46l0,0c-1.1-2.3-3.9-3.2-6.1-2.1 c-0.9,0.4-1.6,1.2-2.1,2.1l-22.7,46l-50.8,7.4c-2.5,0.4-4.2,2.7-3.9,5.2c0.1,1,0.6,1.9,1.3,2.6l36.7,35.8l-8.7,50.6 c-0.4,2.5,1.2,4.9,3.7,5.3c1,0.2,2,0,2.9-0.5l45.4-23.9l45.4,23.9c2.2,1.2,5,0.3,6.2-1.9c0.5-0.9,0.6-1.9,0.5-2.9l-8.7-50.6 l36.7-35.8C209.4,123.8,209.9,122,209.3,120.4z M127.6,66.1L127.6,66.1z M167.8,157.5c-1.1,1.1-1.6,2.6-1.3,4.1l8.6,50l-44.9-23.6 c-1.3-0.7-2.9-0.7-4.3,0L81,211.5l8.6-50c0.3-1.5-0.2-3-1.3-4.1l-36.3-35.4l50.2-7.3c1.5-0.2,2.8-1.2,3.5-2.5L128,66.8l22.4,45.5 c0.7,1.4,2,2.3,3.5,2.5l50.2,7.3L167.8,157.5z"/>
<path class="st5" d="M255.8,77.2c-0.5-1.6-2-2.8-3.7-3.1l-30.8-4.5l-13.8-27.9c-0.8-1.6-2.3-2.5-4.1-2.5l0,0c-1.7,0-3.3,1-4.1,2.5 l-13.8,27.9l-30.8,4.5c-2.5,0.4-4.2,2.7-3.8,5.1c0.1,1,0.6,1.9,1.3,2.6l22.3,21.7l-1.9,11.3c-0.2,1.4,0.7,2.7,2,2.9c0,0,0,0,0.1,0 l29.5,4.3c-0.7,1.2-0.2,2.7,1,3.4c0,0,0,0,0,0l25.8,13.6c2.2,1.2,5,0.3,6.1-1.9c0.5-0.9,0.6-1.9,0.5-2.9l-5.3-30.7l22.3-21.7l0,0 C255.9,80.7,256.3,78.8,255.8,77.2z M228.7,100.2c-1.1,1-1.6,2.5-1.3,4l5.1,30l-23-12.1c0.2-2.4-1.5-4.5-3.9-4.9l-27.6-4l1.5-9 c0.3-1.5-0.2-3-1.3-4l-21.8-21.2l30.1-4.4c1.5-0.2,2.8-1.1,3.4-2.5l13.5-27.3l13.5,27.3c0.7,1.3,1.9,2.3,3.4,2.5l30.1,4.4 L228.7,100.2z"/>
<path class="st5" d="M104.9,77.2c-0.5-1.6-1.9-2.8-3.7-3.1l-30.8-4.5L56.6,41.7c-1.1-2.2-3.8-3.2-6.1-2.1c-0.9,0.4-1.6,1.2-2.1,2.1 L34.7,69.6L3.9,74.1c-2.5,0.4-4.2,2.7-3.8,5.1c0.1,1,0.6,1.9,1.3,2.6l22.3,21.7l-5.3,30.7c-0.4,2.5,1.2,4.8,3.7,5.2 c1,0.2,2,0,2.9-0.5l25.8-13.6c1.2-0.6,1.7-2.2,1-3.4c0,0,0,0,0,0l29.5-4.3c1.4-0.2,2.3-1.5,2.1-2.8c0,0,0,0,0-0.1l-1.9-11.3 l22.3-21.7C105,80.6,105.4,78.8,104.9,77.2z M77.8,100.2c-1.1,1-1.6,2.5-1.3,4l1.5,9l-27.6,4c-1.7,0.2-3.2,1.5-3.7,3.1 c-0.2,0.6-0.3,1.2-0.2,1.8l-23,12.1l5.1-30c0.3-1.5-0.2-3-1.3-4L5.5,78.9l30.1-4.4c1.5-0.2,2.8-1.1,3.4-2.5l13.5-27.3L66,72.1 c0.7,1.3,1.9,2.3,3.4,2.5l30.1,4.4L77.8,100.2z"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 5.5 KiB

View File

@ -0,0 +1,53 @@
<!DOCTYPE html>
<html lang="<%- page.language %>">
<head>
<%- include('includes/head.ejs'); -%>
</head>
<body>
<% /* Хлебные крошки */ %>
<a href="/"><%- page.l.home %></a> » <%= page.title %>
<% /* Реклама вверху страницы */ %>
<% if (typeof page.adv === 'object' && page.adv.top) { %>
<div style="text-align:center;margin:10px auto">
<%- page.adv.top %>
</div>
<% } %>
<% /* H1 тег */ %>
<h1><%- page.h1 %></h1>
<% /* Описание страницы */ %>
<% if (page.seo) { %>
<div style="text-align:center;margin:10px auto">
<%- page.seo %>
</div>
<% } %>
<% /* Список категорий (годы, жанры, страны, актеры, режиссеры) */ %>
<% if (typeof categories === 'object' && categories.length) { %>
<% categories.forEach(function (content) { %>
<div style="float:left;width:50%;">
<div style="margin:10px;padding:0;position:relative">
<div class="cinemapress-categories" style="background-image:url('<%- content.image %>');"></div>
<a href="<%- content.url %>" class="cinemapress-categories-title"><%= content.title %></a>
</div>
</div>
<% }); %>
<% } %>
<% /* Реклама внизу страницы */ %>
<% if (typeof page.adv === 'object' && page.adv.bottom) { %>
<div style="text-align:center;margin:10px auto">
<%- page.adv.bottom %>
</div>
<% } %>
<%- include('includes/footer.ejs'); -%>
</body>
</html>

408
default/views/category.ejs Normal file
View File

@ -0,0 +1,408 @@
<!DOCTYPE html>
<html lang="<%- page.language %>">
<head>
<%- include('includes/head.ejs'); -%>
</head>
<body>
<% /* Хлебные крошки */ %>
<a href="/"><%- page.l.home %></a> » <%= page.title %>
<% /* Реклама вверху страницы */ %>
<% if (typeof page.adv === 'object' && page.adv.top) { %>
<div style="text-align:center;margin:10px auto">
<%- page.adv.top %>
</div>
<% } %>
<% /* H1 тег */ %>
<h1><%- page.h1 %></h1>
<% /* Контент новости */ %>
<% if (typeof content === 'object') { %>
<div class="cinemapress-content">
<% /* Изображение новости */ %>
<% if (content.image) { %>
<img src="<%- content.image %>" class="cinemapress-content-image">
<% } %>
<% /* Описание новости */ %>
<% if (content.description) { %>
<div class="cinemapress-content-description">
<%- content.description %>
</div>
<% } %>
<div class="cinemapress-content-publish" style="vertical-align: middle;">
<% /* Список тегов */ %>
<% if (content.tags) { %>
<span class="cinemapress-content-publish-tags" style="vertical-align: middle;"><img src="data:image/svg+xml;utf8;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iaXNvLTg4NTktMSI/Pgo8IS0tIEdlbmVyYXRvcjogQWRvYmUgSWxsdXN0cmF0b3IgMTkuMC4wLCBTVkcgRXhwb3J0IFBsdWctSW4gLiBTVkcgVmVyc2lvbjogNi4wMCBCdWlsZCAwKSAgLS0+CjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgdmVyc2lvbj0iMS4xIiBpZD0iQ2FwYV8xIiB4PSIwcHgiIHk9IjBweCIgdmlld0JveD0iMCAwIDU1LjI1IDU1LjI1IiBzdHlsZT0iZW5hYmxlLWJhY2tncm91bmQ6bmV3IDAgMCA1NS4yNSA1NS4yNTsiIHhtbDpzcGFjZT0icHJlc2VydmUiIHdpZHRoPSIxNnB4IiBoZWlnaHQ9IjE2cHgiPgo8Zz4KCTxwYXRoIGQ9Ik0wLjUyMyw1MS45MzNsLTAuNDk3LDIuMDg1Yy0wLjAxNiwwLjA2Ny0wLjAyLDAuMTM1LTAuMDIyLDAuMjAyQzAuMDA0LDU0LjIzNCwwLDU0LjI0NiwwLDU0LjI1OSAgIGMwLjAwMSwwLjExNCwwLjAyNiwwLjIyNSwwLjA2NSwwLjMzMmMwLjAwOSwwLjAyNSwwLjAxOSwwLjA0NywwLjAzLDAuMDcxYzAuMDQ5LDAuMTA3LDAuMTEsMC4yMSwwLjE5NiwwLjI5NiAgIGMwLjA5NSwwLjA5NSwwLjIwNywwLjE2OCwwLjMyOCwwLjIxOGMwLjEyMSwwLjA1LDAuMjUsMC4wNzUsMC4zNzksMC4wNzVjMC4wNzcsMCwwLjE1NS0wLjAwOSwwLjIzMS0wLjAyN2wyLjA4Ni0wLjQ5NyAgIEwwLjUyMyw1MS45MzN6IiBmaWxsPSIjRkZGRkZGIi8+Cgk8cGF0aCBkPSJNNTIuNjE4LDIuNjMxYy0zLjUxLTMuNTA4LTkuMjE5LTMuNTA4LTEyLjcyOSwwTDMuODI3LDM4LjY5M0MzLjgxLDM4LjcxLDMuOCwzOC43MzEsMy43ODUsMzguNzQ5ICAgYy0wLjAyMSwwLjAyNC0wLjAzOSwwLjA1LTAuMDU4LDAuMDc2Yy0wLjA1MywwLjA3NC0wLjA5NCwwLjE1My0wLjEyNSwwLjIzOWMtMC4wMDksMC4wMjYtMC4wMjIsMC4wNDktMC4wMjksMC4wNzUgICBjLTAuMDAzLDAuMDEtMC4wMDksMC4wMi0wLjAxMiwwLjAzbC0yLjQ5NSwxMC40OEw1LjYsNTQuMTgybDEwLjQ4LTIuNDk1YzAuMDI3LTAuMDA2LDAuMDUxLTAuMDIxLDAuMDc3LTAuMDMgICBjMC4wMzQtMC4wMTEsMC4wNjYtMC4wMjQsMC4wOTktMC4wMzljMC4wNzItMC4wMzMsMC4xMzktMC4wNzQsMC4yMDEtMC4xMjNjMC4wMjQtMC4wMTksMC4wNDktMC4wMzMsMC4wNzItMC4wNTQgICBjMC4wMDgtMC4wMDgsMC4wMTgtMC4wMTIsMC4wMjYtMC4wMmwzNi4wNjMtMzYuMDYzQzU2LjEyNywxMS44NSw1Ni4xMjcsNi4xNCw1Mi42MTgsMi42MzF6IE0xNy4xNTcsNDcuOTkybDAuMzU0LTMuMTgzICAgTDM5Ljg4OSwyMi40M2MwLjM5MS0wLjM5MSwwLjM5MS0xLjAyMywwLTEuNDE0cy0xLjAyMy0wLjM5MS0xLjQxNCwwTDE2LjA5Nyw0My4zOTVsLTQuNzczLDAuNTNsMC41My00Ljc3M2wyMi4zOC0yMi4zNzggICBjMC4zOTEtMC4zOTEsMC4zOTEtMS4wMjMsMC0xLjQxNHMtMS4wMjMtMC4zOTEtMS40MTQsMEwxMC40NCwzNy43MzhsLTMuMTgzLDAuMzU0TDM0Ljk0LDEwLjQwOWw5LjksOS45TDE3LjE1Nyw0Ny45OTJ6ICAgIE00Ni4yNTQsMTguODk1bC05LjktOS45bDEuNDE0LTEuNDE0bDkuOSw5LjlMNDYuMjU0LDE4Ljg5NXogTTQ5LjA4MiwxNi4wNjdsLTkuOS05LjlsMS40MTUtMS40MTVsOS45LDkuOUw0OS4wODIsMTYuMDY3eiIgZmlsbD0iI0ZGRkZGRiIvPgo8L2c+CjxnPgo8L2c+CjxnPgo8L2c+CjxnPgo8L2c+CjxnPgo8L2c+CjxnPgo8L2c+CjxnPgo8L2c+CjxnPgo8L2c+CjxnPgo8L2c+CjxnPgo8L2c+CjxnPgo8L2c+CjxnPgo8L2c+CjxnPgo8L2c+CjxnPgo8L2c+CjxnPgo8L2c+CjxnPgo8L2c+Cjwvc3ZnPgo=" style="width: 10px;vertical-align: middle;"> <%- content.tags %></span>
<% } %>
<% /* Дата публикации */ %>
<% if (content.publish) { %>
<span class="cinemapress-content-publish-publish" style="vertical-align: middle;"><img src="data:image/svg+xml;utf8;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iaXNvLTg4NTktMSI/Pgo8IS0tIEdlbmVyYXRvcjogQWRvYmUgSWxsdXN0cmF0b3IgMTkuMC4wLCBTVkcgRXhwb3J0IFBsdWctSW4gLiBTVkcgVmVyc2lvbjogNi4wMCBCdWlsZCAwKSAgLS0+CjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgdmVyc2lvbj0iMS4xIiBpZD0iQ2FwYV8xIiB4PSIwcHgiIHk9IjBweCIgdmlld0JveD0iMCAwIDYwIDYwIiBzdHlsZT0iZW5hYmxlLWJhY2tncm91bmQ6bmV3IDAgMCA2MCA2MDsiIHhtbDpzcGFjZT0icHJlc2VydmUiIHdpZHRoPSIxNnB4IiBoZWlnaHQ9IjE2cHgiPgo8Zz4KCTxjaXJjbGUgY3g9IjMwIiBjeT0iMjkuODc5IiByPSIyIiBmaWxsPSIjRkZGRkZGIi8+Cgk8cGF0aCBkPSJNMzAsMEMxMy40NTgsMCwwLDEzLjQ1OCwwLDMwczEzLjQ1OCwzMCwzMCwzMHMzMC0xMy40NTgsMzAtMzBTNDYuNTQyLDAsMzAsMHogTTI5LDcuODc5YzAtMC41NTMsMC40NDgtMSwxLTFzMSwwLjQ0NywxLDEgICB2MWMwLDAuNTUzLTAuNDQ4LDEtMSwxcy0xLTAuNDQ3LTEtMVY3Ljg3OXogTTksMzAuODc5SDhjLTAuNTUyLDAtMS0wLjQ0Ny0xLTFzMC40NDgtMSwxLTFoMWMwLjU1MiwwLDEsMC40NDcsMSwxICAgUzkuNTUyLDMwLjg3OSw5LDMwLjg3OXogTTE1Ljg1OCw0NS40MzZsLTAuNzA3LDAuNzA3Yy0wLjE5NSwwLjE5NS0wLjQ1MSwwLjI5My0wLjcwNywwLjI5M3MtMC41MTItMC4wOTgtMC43MDctMC4yOTMgICBjLTAuMzkxLTAuMzkxLTAuMzkxLTEuMDIzLDAtMS40MTRsMC43MDctMC43MDdjMC4zOTEtMC4zOTEsMS4wMjMtMC4zOTEsMS40MTQsMFMxNi4yNDksNDUuMDQ1LDE1Ljg1OCw0NS40MzZ6IE0xNS44NTgsMTUuNzM2ICAgYy0wLjE5NSwwLjE5NS0wLjQ1MSwwLjI5My0wLjcwNywwLjI5M3MtMC41MTItMC4wOTgtMC43MDctMC4yOTNsLTAuNzA3LTAuNzA3Yy0wLjM5MS0wLjM5MS0wLjM5MS0xLjAyMywwLTEuNDE0ICAgczEuMDIzLTAuMzkxLDEuNDE0LDBsMC43MDcsMC43MDdDMTYuMjQ5LDE0LjcxMywxNi4yNDksMTUuMzQ2LDE1Ljg1OCwxNS43MzZ6IE0zMSw1MS44NzljMCwwLjU1My0wLjQ0OCwxLTEsMXMtMS0wLjQ0Ny0xLTF2LTEgICBjMC0wLjU1MywwLjQ0OC0xLDEtMXMxLDAuNDQ3LDEsMVY1MS44Nzl6IE0zMCwzMy44NzljLTEuODU4LDAtMy40MTEtMS4yOC0zLjg1OC0zSDE5Yy0wLjU1MiwwLTEtMC40NDctMS0xczAuNDQ4LTEsMS0xaDcuMTQyICAgYzAuMzY0LTEuMzk5LDEuNDU5LTIuNDk0LDIuODU4LTIuODU4VjE1Ljg3OWMwLTAuNTUzLDAuNDQ4LTEsMS0xczEsMC40NDcsMSwxdjEwLjE0MmMxLjcyLDAuNDQ3LDMsMS45OTksMywzLjg1OCAgIEMzNCwzMi4wODUsMzIuMjA2LDMzLjg3OSwzMCwzMy44Nzl6IE00Ni4yNjMsNDYuMTQzYy0wLjE5NSwwLjE5NS0wLjQ1MSwwLjI5My0wLjcwNywwLjI5M3MtMC41MTItMC4wOTgtMC43MDctMC4yOTNsLTAuNzA3LTAuNzA3ICAgYy0wLjM5MS0wLjM5MS0wLjM5MS0xLjAyMywwLTEuNDE0czEuMDIzLTAuMzkxLDEuNDE0LDBsMC43MDcsMC43MDdDNDYuNjU0LDQ1LjExOSw0Ni42NTQsNDUuNzUyLDQ2LjI2Myw0Ni4xNDN6IE00Ni4yNjMsMTUuMDI5ICAgbC0wLjcwNywwLjcwN2MtMC4xOTUsMC4xOTUtMC40NTEsMC4yOTMtMC43MDcsMC4yOTNzLTAuNTEyLTAuMDk4LTAuNzA3LTAuMjkzYy0wLjM5MS0wLjM5MS0wLjM5MS0xLjAyMywwLTEuNDE0bDAuNzA3LTAuNzA3ICAgYzAuMzkxLTAuMzkxLDEuMDIzLTAuMzkxLDEuNDE0LDBTNDYuNjU0LDE0LjYzOSw0Ni4yNjMsMTUuMDI5eiBNNTIsMzAuODc5aC0xYy0wLjU1MiwwLTEtMC40NDctMS0xczAuNDQ4LTEsMS0xaDEgICBjMC41NTIsMCwxLDAuNDQ3LDEsMVM1Mi41NTIsMzAuODc5LDUyLDMwLjg3OXoiIGZpbGw9IiNGRkZGRkYiLz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8L3N2Zz4K" style="width: 10px;vertical-align: middle;"> <%- content.publish %></span>
<% } %>
</div>
</div>
<% } %>
<% /* Блок случайного фильма в категории */ %>
<div class="randomMovieCategory">
<div class="cinemapress-random-category"
onclick="window.location.href='<%- page.url %>?random'">
<img src="/themes/default/public/mobile/dice.svg" alt="<%- page.l.random %>">
<span><%- page.l.lucky %></span>
<small><%- page.l.random %></small>
</div>
</div>
<% /* Сортировка фильмов */ %>
<% if (typeof page.sorting === 'object') { %>
<div class="cinemapress-sort">
<% page.sorting.forEach(function (sort) { %>
<% /* Текущая сортировка */ %>
<% if (sort.active) { %>
<a href="<%- sort.url %>" class="cinemapress-sort-active"><%- sort.name %></a>
<% } else { %>
<a href="<%- sort.url %>"><%- sort.name %></a>
<% } %>
<% }); %>
</div>
<% } %>
<% /* Цикл фильмов */ %>
<% if (typeof movies === 'object' && movies.length) { %>
<% movies.forEach(function (movie) { %>
<% /* Информацию о фильме выводить проверяя существование */ %>
<% /* Тип */ %>
<% if (movie.type === 0) { %>Фильм<% } %>
<% if (movie.type === 1) { %>Сериал<% } %>
<% /* ID КиноПоиск */ %>
<% if (movie.kp_id) { %>ID КиноПоиск: <%- movie.kp_id %><% } %>
<% /* ID IMDb */ %>
<% if (movie.imdb_id) { %>ID IMDb: <%- movie.imdb_id %><% } %>
<% /* ID TMDb */ %>
<% if (movie.tmdb_id) { %>ID TMDb: <%- movie.tmdb_id %><% } %>
<% /* ID Douban */ %>
<% if (movie.douban_id) { %>ID Douban: <%- movie.douban_id %><% } %>
<% /* Название фильма */ %>
<%- movie.title %>
<% /* movie.title_ru - перевед. название */ %>
<% /* movie.title_en - ориг. название */ %>
<% /* movie.title_full - перевед. название / ориг. название (год) */ %>
<% /* movie.title_page - название для <title> */ %>
<% /* Описание фильма */ %>
<%- movie.description %>
<% /* movie.description_meta - описание для meta description */ %>
<% /* movie.description_short - короткое описание до 200 симв. */ %>
<% /* Год */ %>
<%- movie.year %>
<% /* movie.year_url - ссылка: <a href="...">год</a> */ %>
<% /* movie.year2 - фильм: год, сериал: 1 сезон 1 серия */ %>
<% /* movie.year3 - фильм: год, сериал: E01S01 */ %>
<% /* Список стран */ %>
<% if (movie.countries) { %><%- page.l.countries %>: <%- movie.countries %><% } %>
<% /* movie.countries_url - список стран в виде ссылок */ %>
<% /* movie.countries_arr - массив стран */ %>
<% /* movie.country - случайная страна */ %>
<% /* Список жанров */ %>
<% if (movie.genres) { %><%- page.l.genres %>: <%- movie.genres %><% } %>
<% /* movie.genres_url - список жанров в виде ссылок */ %>
<% /* movie.genres_arr - массив жанров */ %>
<% /* movie.genre - случайный жанр */ %>
<% /* Список режиссеров */ %>
<% if (movie.directors) { %><%- page.l.directors %>: <%- movie.directors %><% } %>
<% /* movie.directors_url - список режиссеров в виде ссылок */ %>
<% /* movie.directors_arr - массив режиссеров */ %>
<% /* movie.directors - случайный режиссер */ %>
<% /* Список актеров */ %>
<% if (movie.actors) { %><%- page.l.actors %>: <%- movie.actors %><% } %>
<% /* movie.actors_url - список актеров в виде ссылок */ %>
<% /* movie.actors_arr - массив актеров */ %>
<% /* movie.actors - случайный актер */ %>
<% /* Постер фильма */ %>
<img src="<%- movie.poster %>" alt="<%= movie.title %>">
<% /* movie.poster_big - большой постер */ %>
<% /* movie.poster - стандартный постер */ %>
<% /* movie.poster_min - маленький постер */ %>
<% /* Кадр из фильма */ %>
<img src="<%- movie.picture %>" alt="<%= movie.title %>">
<% /* movie.picture_big - большой кадр */ %>
<% /* movie.picture - стандартный кадр */ %>
<% /* movie.picture_min - маленький кадр */ %>
<% /* movie.pictures - массив кадров */ %>
<% /* Ссылка на фильм */ %>
<a href="<%- movie.url %>"><%= movie.title %></a>
<% /* movie.pathname - URL без домена /movie/idXXX */ %>
<% /* Ссылка на кадры */ %>
<% if (page.urls.movies.picture) { %>
<a href="<%- movie.url %>/<%- page.urls.movies.picture %>"><%- page.l.picture %></a>
<% } %>
<% /* Ссылка на трейлер */ %>
<% if (page.urls.movies.trailer) { %>
<a href="<%- movie.url %>/<%- page.urls.movies.trailer %>"><%- page.l.trailer %></a>
<% } %>
<% /* Ссылка на онлайн */ %>
<% if (page.urls.movies.online) { %>
<a href="<%- movie.url %>/<%- page.urls.movies.online %>"><%- page.l.online %></a>
<% } %>
<% /* Ссылка на скачать */ %>
<% if (page.urls.movies.download) { %>
<a href="<%- movie.url %>/<%- page.urls.movies.download %>"><%- page.l.download %></a>
<% } %>
<% /* Качество */ %>
<% if (movie.quality) { %><%- page.l.quality %>: <%- movie.quality %><% } %>
<% /* Перевод */ %>
<% if (movie.translate) { %><%- page.l.translate %>: <%- movie.translate %><% } %>
<% /* Общий рейтинг (1-100) и число голосов */ %>
<% if (movie.vote) { %>
<%- page.l.rating %>: <%- movie.rating %> (<%- movie.vote %> <%- page.l.votes %>)
<% } %>
<% /* КиноПоиск рейтинг (1-100) и число голосов */ %>
<% if (movie.kp_vote) { %>
<%- page.l.kp %>: <%- movie.kp_rating %> (<%- movie.kp_vote %> <%- page.l.votes %>)
<% } %>
<% /* IMDb рейтинг (1-100) и число голосов */ %>
<% if (movie.imdb_vote) { %>
<%- page.l.rating %>: <%- movie.imdb_rating %> (<%- movie.imdb_vote %> <%- page.l.votes %>)
<% } %>
<% /* Вышел на экраны или нет */ %>
<% if (movie.passed) { %>Премьера состоялась<% } %>
<% /* Дата премьеры фильма */ %>
<% if (movie.premiere) { %><%- page.l.premiere %>: <%- movie.premiere %><% } %>
<% /* Настраиваемое поле */ %>
<% if (movie && movie.custom && movie.custom["hello"]) { %>
<%- movie.custom["hello"] %>
<% } %>
<% }); %>
<% } %>
<% /* Пагинация */ %>
<% if (typeof page.pagination === 'object') { %>
<% /* Первая страница */ %>
<% if (page.pagination.first) { %>
<a href="<%- page.pagination.first.link %>"><%- page.pagination.first.number %></a>
<% } %>
<% /* Номера страниц до текущей */ %>
<% if (page.pagination.prev.length) { %>
<% page.pagination.prev.forEach(function (prev) { %>
<a href="<%- prev.link %>"><%- prev.number %></a>
<% }); %>
<% } %>
<% /* Текуща страница */ %>
<%- page.pagination.current %>
<% /* Номера страниц после текущей */ %>
<% if (page.pagination.next.length) { %>
<% page.pagination.next.forEach(function (next) { %>
<a href="<%- next.link %>"><%- next.number %></a>
<% }); %>
<% } %>
<% /* Последняя страница */ %>
<% if (page.pagination.last) { %>
<a href="<%- page.pagination.last.link %>"><%- page.pagination.last.number %></a>
<% } %>
<% } %>
<% /* Блок с комментариями для новости */ %>
<% if (typeof content === 'object') { %>
<% if (page.comments) { %>
<%- page.comments %>
<% } else { %>
<div id="cinemapress-comments">
<h3 class="cinemapress-comment-h3">
<%- page.l.comments %>
<span class="cinemapress-comment-count cinemapress-comment-bg-color"><%- comments && comments.count || '0' %></span>
</h3>
<% if (typeof comments === 'object' && typeof comments.config === 'object') { %>
<% if (comments.config.star_rating) { %>
<div class="cinemapress-comment-star">
<div class="cinemapress-comment-star-down" data-comment-star="1"></div>
<div class="cinemapress-comment-star-award" data-comment-star="3"></div>
<div class="cinemapress-comment-star-up" data-comment-star="2"></div>
</div>
<% } %>
<div class="cinemapress-comment-form">
<% if (comments.config.bb_codes) { %>
<div class="cinemapress-comment-form-bb">
<span class="cinemapress-comment-bg cinemapress-comment-form-bb-b" data-bb-code="b"><%- page.l.bold.toLowerCase() %></span>
<span class="cinemapress-comment-bg cinemapress-comment-form-bb-i" data-bb-code="i"><%- page.l.italic.toLowerCase() %></span>
<span class="cinemapress-comment-bg cinemapress-comment-form-bb-spoiler" data-bb-code="spoiler">👻 <%- page.l.spoiler.toLowerCase() %></span>
<span class="cinemapress-comment-bg cinemapress-comment-form-bb-search" data-bb-code="search">🔍 <%- page.l.search.toLowerCase() %></span>
<input class="cinemapress-comment-bg cinemapress-comment-form-anonymous" name="comment_anonymous" type="text" placeholder="<%- page.l.username %>">
</div>
<% } %>
<div>
<div class="cinemapress-comment-textarea-div">
<textarea name="comment_text" class="cinemapress-comment-bg cinemapress-comment-textarea" placeholder="<%- page.l.comment %>" autocomplete="off" autocapitalize="off" spellcheck="false"></textarea>
<div class="cinemapress-comment-form-bg"></div>
<div class="cinemapress-comment-button-bg hover-off" data-comment-type="submit">
<span class="cinemapress-comment-button-text"></span>
</div>
</div>
<% if (comments.config.question) { %>
<div class="cinemapress-comment-bg cinemapress-comment-question" style="display: none">
<div class="cinemapress-comment-question-text"><%- comments.config.question %></div>
<div class="cinemapress-comment-question-answer">
<% if (comments.config.question_yes) { %>
<span class="cinemapress-comment-question-answer-yes"><%- page.l.yes %></span>
<% } %>
<% if (comments.config.question_not) { %>
<span class="cinemapress-comment-question-answer-not"><%- page.l.not %></span>
<% } %>
</div>
<% if (comments.config.question_yes) { %>
<div class="cinemapress-comment-question-text-yes" style="display: none">
<%- comments.config.question_yes %>
</div>
<% } %>
<% if (comments.config.question_not) { %>
<div class="cinemapress-comment-question-text-not" style="display: none">
<%- comments.config.question_not %>
</div>
<% } %>
<div class="cinemapress-comment-question-bg"></div>
<% if (comments.config.question_poster) { %>
<div class="cinemapress-comment-question-bg-poster" style="background-image:url('<%- comments.config.question_poster %>')"></div>
<% } %>
</div>
<% } %>
</div>
<div style="font-size:8px;text-align:right;opacity:.2">This site is protected by reCAPTCHA and the Google <a href="https://policies.google.com/privacy" style="font-size:8px" target="_blank">Privacy Policy</a> and <a href="https://policies.google.com/terms" style="font-size:8px" target="_blank">Terms of Service</a> apply.</div>
</div>
<%- comments.indexer ? comments.indexer : '' %>
<% if (comments.list && comments.list.length) { %>
<% comments.list.forEach(function (comment) { %>
<div class="cinemapress-comment" id="c<%- comment.id %>">
<div class="cinemapress-comment-head">
<div class="cinemapress-comment-head-avatar">
<img src="<%- comment.avatar %>" alt="<%= comment.user %>">
</div>
<% if (comments.config.star_rating) { %>
<% if (comment.star === 1) { %>
<div class="cinemapress-comment-head-star">
<div class="cinemapress-comment-star-down"></div>
</div>
<% } else if (comment.star === 2) { %>
<div class="cinemapress-comment-head-star">
<div class="cinemapress-comment-star-up"></div>
</div>
<% } else if (comment.star === 3) { %>
<div class="cinemapress-comment-head-star">
<div class="cinemapress-comment-star-award"></div>
</div>
<% } %>
<% } %>
<div class="cinemapress-comment-head-meta">
<div class="cinemapress-comment-head-meta-vote">
<span class="cinemapress-comment-like" data-comment-type="like" data-comment-id="<%- comment.id %>" title="<%= page.l.like %>">
<span class="cinemapress-comment-like-icon"></span>
<span class="cinemapress-comment-like-number"><%- comment.like %></span>
</span>
<span class="cinemapress-comment-dislike" data-comment-type="dislike" data-comment-id="<%- comment.id %>" title="<%= page.l.dislike %>">
<span class="cinemapress-comment-dislike-number"><%- comment.dislike %></span>
<span class="cinemapress-comment-dislike-icon"></span>
</span>
<span class="cinemapress-comment-reply" data-reply-id="<%- comment.id %>" data-bb-code="b" data-bb-value="<%- comment.user %>" title="<%= page.l.reply %>">
<span class="cinemapress-comment-reply-icon"></span>
</span>
</div>
<div class="cinemapress-comment-user" data-comment-id="<%- comment.id %>">
<div class="cinemapress-comment-user-name">
<%- comment.user %>
</div><div class="cinemapress-comment-user-said">
<%- page.l.said %>
</div><div class="cinemapress-comment-user-date">
<%- comment.date %>
</div><div class="cinemapress-comment-user-link">
<a href="<%- comment.url %>#c<%- comment.id %>">#</a>
</div>
</div>
</div>
</div>
<div class="cinemapress-comment-bg cinemapress-comment-radius">
<%- comment.comment %>
</div>
<% if (comment.admin) { %>
<div class="cinemapress-comment-admin">
<div class="cinemapress-comment-bg cinemapress-comment-admin-text">
<%- comment.admin %>
</div>
<div class="cinemapress-comment-admin-bg"></div>
</div>
<% } %>
</div>
<% }); %>
<% } %>
<% } %>
<div class="cinemapress-comment-arrow">
<% if (comments && comments.prev) { %>
<div class="cinemapress-prev-comments" onclick="window.location.href='?page=<%- comments.prev %>#cinemapress-comments'"></div>
<% } %>
<% if (comments && comments.next) { %>
<div class="cinemapress-next-comments" onclick="window.location.href='?page=<%- comments.next %>#cinemapress-comments'"></div>
<% } %>
</div>
</div>
<% } %>
<% } %>
<% /* Реклама внизу страницы */ %>
<% if (typeof page.adv === 'object' && page.adv.bottom) { %>
<div style="text-align:center;margin:10px auto">
<%- page.adv.bottom %>
</div>
<% } %>
<% /* Описание страницы */ %>
<% if (page.seo) { %>
<div style="text-align:center;margin:10px auto">
<%- page.seo %>
</div>
<% } %>
<%- include('includes/footer.ejs'); -%>
</body>
</html>

View File

@ -0,0 +1,20 @@
<% /* Список фильмов которые недавно смотрели */ %>
<div class="recentlyViewedBlock" style="display:none;">
<div><%- page.l.watched %>:</div>
<div id="recentlyViewed"></div>
</div>
<% /* Защищенный вывод email */ %>
<span id="mylo"></span><script>(function(d,i,l,r){d.getElementById(i).innerHTML=l+'@'+r;})(window.document,'mylo','<%- page.email.split('@')[0] %>','<%- page.email.split('@')[1] %>');</script>
<% /* Социальные сети */ %>
<% if (page.social) { %>
<% if (page.social.vk) { %><a href="<%- page.social.vk %>" target="_blank"><%- page.l.vk %></a><% } %>
<% if (page.social.facebook) { %><a href="<%- page.social.facebook %>" target="_blank">facebook</a><% } %>
<% if (page.social.twitter) { %><a href="<%- page.social.twitter %>" target="_blank">twitter</a><% } %>
<% if (page.social.youtube) { %><a href="<%- page.social.youtube %>" target="_blank"><%- page.l.youtube %></a><% } %>
<% if (page.social.instagram) { %><a href="<%- page.social.instagram %>" target="_blank"><%- page.l.instagram %></a><% } %>
<% } %>
<% /* Вывод системных скриптов */ %>
<%- page.codes.footer %>

View File

@ -0,0 +1,14 @@
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<% /* Название страницы */ %>
<title><%= page.title %></title>
<% /* Описание страницы */ %>
<meta name="description" content="<%= page.description %>">
<% /* Стандартный набор стилей */ %>
<link rel="stylesheet" href="/themes/<%- page.theme %>/public/css/all.min.css?v=<%- page.ver %>">
<% /* Вывод системных скриптов */ %>
<%- page.codes.head %>

View File

@ -0,0 +1,39 @@
<% /* Ссылки на страницы со всеми категориями */ %>
<a href="/<%- page.urls.year %>"><%- page.l.allYears %></a>
<a href="/<%- page.urls.genre %>"><%- page.l.allGenres %></a>
<a href="/<%- page.urls.country %>"><%- page.l.allCountries %></a>
<a href="/<%- page.urls.actor %>"><%- page.l.allActors %></a>
<a href="/<%- page.urls.director %>"><%- page.l.allDirectors %></a>
<% /* Годы (список в настройках отображения) */ %>
<% page.urls.years.forEach(function(year) { %>
<a href="<%- year.url %>"><%- year.title %></a>
<% }); %>
<% /* Жанры (список в настройках отображения) */ %>
<% page.urls.genres.forEach(function(genre) { %>
<a href="<%- genre.url %>"><%- genre.title %></a>
<% }); %>
<% /* Страны (список в настройках отображения) */ %>
<% page.urls.countries.forEach(function(country) { %>
<a href="<%- country.url %>"><%- country.title %></a>
<% }); %>
<% /* Ссылки на категорию типа */ %>
<a href="/<%- page.urls.type %>/<%- page.urls.types.movie %>"><%- page.l.movies %></a>
<a href="/<%- page.urls.type %>/<%- page.urls.types.mult %>"><%- page.l.cartoons %></a>
<a href="/<%- page.urls.type %>/<%- page.urls.types.serial %>"><%- page.l.series %></a>
<a href="/<%- page.urls.type %>/<%- page.urls.types.multserial %>"><%- page.l.animated %></a>
<a href="/<%- page.urls.type %>/<%- page.urls.types.anime %>"><%- page.l.anime %></a>
<a href="/<%- page.urls.type %>/<%- page.urls.types.tv %>"><%- page.l.tv %></a>
<% /* Кнопка случайного фильма в меню */ %>
<span class="randomMovieMenu" style="display:none">
<a href="/?random" class="cinemapress-random-menu"><%- page.l.lucky %></a>
</span>
<% /* Кнопка продолжения просмотра */ %>
<span class="continueViewingBlock" style="display:none">
<a href="javascript:void(0)" id="continueViewing"><%- page.l.continue %>?</a>
</span>

View File

@ -0,0 +1,89 @@
<% /* Слайдер с фильмами */ %>
<% if (typeof slider === 'object' && slider.length) { %>
<% slider.forEach(function (movie) { %>
<a href="<%- movie.url %>"><%= movie.title %></a>
<% }); %>
<% } %>
<% /* Топ фильмы в каждой категории */ %>
<% if (typeof top === 'object' && top.length) { %>
<%- page.l.top %>
<% top.forEach(function (movie) { %>
<a href="<%- movie.url %>"><%= movie.title %></a>
<% }); %>
<% } %>
<% /* Ближайшие премьеры фильмов */ %>
<% if (typeof soon === 'object' && soon.length) { %>
<%- page.l.soon %>
<% soon.forEach(function (movie) { %>
<a href="<%- movie.url %>"><%= movie.title %></a>
<% }); %>
<% } %>
<% /* Блок с новостями */ %>
<% if (typeof news === 'object' && news.length) { %>
<% news.forEach(function (content) { %>
<div style="float:left;width:100%;">
<div style="margin:10px 0;padding:0">
<a href="<%- content.url %>" class="cinemapress-news" style="background-image:url('<%- content.image %>');">
<div class="cinemapress-news-title"><%= content.title %></div>
</a>
</div>
</div>
<% }); %>
<% } %>
<% /* Блок с последними комментариями пользователей */ %>
<% if (typeof recent === 'object' && recent.length) { %>
<% recent.forEach(function (comment) { %>
<div>
<div class="cinemapress-comment">
<div class="cinemapress-comment-head">
<div class="cinemapress-comment-head-avatar">
<img src="<%- comment.avatar %>" alt="<%= comment.user %>">
</div>
<div class="cinemapress-comment-head-meta">
<div class="cinemapress-comment-head-meta-title">
<a href="<%- comment.url %>" title="<%= comment.title %>"><%= comment.title %></a>
</div>
<div class="cinemapress-comment-user" data-comment-id="<%- comment.id %>">
<div class="cinemapress-comment-user-name">
<%- comment.user %>
</div><div class="cinemapress-comment-user-said">
<%- page.l.said %>
</div><div class="cinemapress-comment-user-date">
<%- comment.date %>
</div><div class="cinemapress-comment-user-link">
<a href="<%- comment.url %>#c<%- comment.id %>" title="<%= comment.title %>">#</a>
</div>
</div>
</div>
</div>
<div class="cinemapress-comment-bg cinemapress-comment-radius">
<%- comment.comment %>
</div>
</div>
</div>
<% }); %>
<% } %>
<% /* Реклама слева страницы */ %>
<% if (typeof page.adv === 'object' && page.adv.left) { %>
<div style="text-align:center;margin:10px auto">
<%- page.adv.left %>
</div>
<% } %>
<% /* Реклама справа страницы */ %>
<% if (typeof page.adv === 'object' && page.adv.right) { %>
<div style="text-align:center;margin:10px auto">
<%- page.adv.right %>
</div>
<% } %>
<% /* Форма поиска */ %>
<form action="/<%- page.urls.search %>" method="get">
<input type="text" name="q" value="<%- page.l.search %>">
<input type="submit" value="<%- page.l.search %>">
</form>

267
default/views/index.ejs Normal file
View File

@ -0,0 +1,267 @@
<!DOCTYPE html>
<html lang="<%- page.language %>">
<head>
<%- include('includes/head.ejs'); -%>
</head>
<body>
<% /* Реклама вверху страницы */ %>
<% if (typeof page.adv === 'object' && page.adv.top) { %>
<div style="text-align:center;margin:10px auto">
<%- page.adv.top %>
</div>
<% } %>
<% /* H1 тег */ %>
<h1><%- page.h1 %></h1>
<% /* Описание сайта */ %>
<% if (page.seo) { %>
<div style="text-align:center;margin:10px auto">
<%- page.seo %>
</div>
<% } %>
<% /* Цикл блоков фильмов на главной странице */ %>
<% if (typeof index === 'object') { %>
<% for (var type in index) { %>
<% if (index.hasOwnProperty(type) && index[type].length && type !== 'episode') { %>
<% index[type].forEach(function (category) { %>
<% /* Название блока */ %>
<h2><%- category.name %></h2>
<% /* Справа от названия ссылка на случайный фильм из блока */ %>
<div class="randomMovieIndex">
<div class="cinemapress-random-index"
onclick="window.location.href='<%- category.url %>?random'"
title="<%- page.l.random %>">
<img src="/themes/default/public/mobile/dice.svg" alt="<%- page.l.random %>">
</div>
</div>
<% /* Цикл фильмов в блоке */ %>
<% if (category.movies.length) { %>
<% category.movies.forEach(function (movie) { %>
<% /* Информацию о фильме выводить проверяя существование */ %>
<% /* Тип */ %>
<% if (movie.type === 0) { %>Фильм<% } %>
<% if (movie.type === 1) { %>Сериал<% } %>
<% /* ID КиноПоиск */ %>
<% if (movie.kp_id) { %>ID КиноПоиск: <%- movie.kp_id %><% } %>
<% /* ID IMDb */ %>
<% if (movie.imdb_id) { %>ID IMDb: <%- movie.imdb_id %><% } %>
<% /* ID TMDb */ %>
<% if (movie.tmdb_id) { %>ID TMDb: <%- movie.tmdb_id %><% } %>
<% /* ID Douban */ %>
<% if (movie.douban_id) { %>ID Douban: <%- movie.douban_id %><% } %>
<% /* Название фильма */ %>
<%- movie.title %>
<% /* movie.title_ru - перевед. название */ %>
<% /* movie.title_en - ориг. название */ %>
<% /* movie.title_full - перевед. название / ориг. название (год) */ %>
<% /* movie.title_page - название для <title> */ %>
<% /* Описание фильма */ %>
<%- movie.description %>
<% /* movie.description_meta - описание для meta description */ %>
<% /* movie.description_short - короткое описание до 200 симв. */ %>
<% /* Год */ %>
<%- movie.year %>
<% /* movie.year_url - ссылка: <a href="...">год</a> */ %>
<% /* movie.year2 - фильм: год, сериал: 1 сезон 1 серия */ %>
<% /* movie.year3 - фильм: год, сериал: E01S01 */ %>
<% /* Список стран */ %>
<% if (movie.countries) { %><%- page.l.countries %>: <%- movie.countries %><% } %>
<% /* movie.countries_url - список стран в виде ссылок */ %>
<% /* movie.countries_arr - массив стран */ %>
<% /* movie.country - случайная страна */ %>
<% /* Список жанров */ %>
<% if (movie.genres) { %><%- page.l.genres %>: <%- movie.genres %><% } %>
<% /* movie.genres_url - список жанров в виде ссылок */ %>
<% /* movie.genres_arr - массив жанров */ %>
<% /* movie.genre - случайный жанр */ %>
<% /* Список режиссеров */ %>
<% if (movie.directors) { %><%- page.l.directors %>: <%- movie.directors %><% } %>
<% /* movie.directors_url - список режиссеров в виде ссылок */ %>
<% /* movie.directors_arr - массив режиссеров */ %>
<% /* movie.directors - случайный режиссер */ %>
<% /* Список актеров */ %>
<% if (movie.actors) { %><%- page.l.actors %>: <%- movie.actors %><% } %>
<% /* movie.actors_url - список актеров в виде ссылок */ %>
<% /* movie.actors_arr - массив актеров */ %>
<% /* movie.actors - случайный актер */ %>
<% /* Постер фильма */ %>
<img src="<%- movie.poster %>" alt="<%= movie.title %>">
<% /* movie.poster_big - большой постер */ %>
<% /* movie.poster - стандартный постер */ %>
<% /* movie.poster_min - маленький постер */ %>
<% /* Кадр из фильма */ %>
<img src="<%- movie.picture %>" alt="<%= movie.title %>">
<% /* movie.picture_big - большой кадр */ %>
<% /* movie.picture - стандартный кадр */ %>
<% /* movie.picture_min - маленький кадр */ %>
<% /* movie.pictures - массив кадров */ %>
<% /* Ссылка на фильм */ %>
<a href="<%- movie.url %>"><%= movie.title %></a>
<% /* movie.pathname - URL без домена /movie/idXXX */ %>
<% /* Ссылка на кадры */ %>
<% if (page.urls.movies.picture) { %>
<a href="<%- movie.url %>/<%- page.urls.movies.picture %>"><%- page.l.picture %></a>
<% } %>
<% /* Ссылка на трейлер */ %>
<% if (page.urls.movies.trailer) { %>
<a href="<%- movie.url %>/<%- page.urls.movies.trailer %>"><%- page.l.trailer %></a>
<% } %>
<% /* Ссылка на онлайн */ %>
<% if (page.urls.movies.online) { %>
<a href="<%- movie.url %>/<%- page.urls.movies.online %>"><%- page.l.online %></a>
<% } %>
<% /* Ссылка на скачать */ %>
<% if (page.urls.movies.download) { %>
<a href="<%- movie.url %>/<%- page.urls.movies.download %>"><%- page.l.download %></a>
<% } %>
<% /* Качество */ %>
<% if (movie.quality) { %><%- page.l.quality %>: <%- movie.quality %><% } %>
<% /* Перевод */ %>
<% if (movie.translate) { %><%- page.l.translate %>: <%- movie.translate %><% } %>
<% /* Общий рейтинг (1-100) и число голосов */ %>
<% if (movie.vote) { %>
<%- page.l.rating %>: <%- movie.rating %> (<%- movie.vote %> <%- page.l.votes %>)
<% } %>
<% /* КиноПоиск рейтинг (1-100) и число голосов */ %>
<% if (movie.kp_vote) { %>
<%- page.l.kp %>: <%- movie.kp_rating %> (<%- movie.kp_vote %> <%- page.l.votes %>)
<% } %>
<% /* IMDb рейтинг (1-100) и число голосов */ %>
<% if (movie.imdb_vote) { %>
<%- page.l.rating %>: <%- movie.imdb_rating %> (<%- movie.imdb_vote %> <%- page.l.votes %>)
<% } %>
<% /* Вышел на экраны или нет */ %>
<% if (movie.passed) { %>Премьера состоялась<% } %>
<% /* Дата премьеры фильма */ %>
<% if (movie.premiere) { %><%- page.l.premiere %>: <%- movie.premiere %><% } %>
<% /* Настраиваемое поле */ %>
<% if (movie && movie.custom && movie.custom["hello"]) { %>
<%- movie.custom["hello"] %>
<% } %>
<% }); %>
<% } %>
<% }); %>
<% } %>
<% } %>
<% } %>
<% /* Блок серий на главной странице */ %>
<% if (typeof index === 'object') { %>
<% for (var type in index) { %>
<% if (index.hasOwnProperty(type) && index[type].length && type === 'episode') { %>
<% index[type].forEach(function (category) { %>
<% /* Название блока */ %>
<h2><%- category.name %></h2>
<% /* Цикл серий в блоке */ %>
<% var moreEpisodes = false; %>
<% if (category.movies.length) { %>
<ul>
<% category.movies.forEach(function (movie) { %>
<% /* Выводим ограниченное число серий, остальные скрываем */ %>
<li <% if (movie.hide) { moreEpisodes = true; %>style="display:none" data-more-episodes<% } %>>
<% if (movie.season && movie.episode) { %>
<% /* Сезон */ %>
<%- movie.season %> <%- page.l.season %>
<% /* Эпизод */ %>
<%- movie.episode %> <%- page.l.episode %>
<% if (movie.translate) { %>
<% /* Озвучка */ %>
<%- movie.translate %>
<% } %>
<% } %>
</li>
<% }); %>
</ul>
<% } %>
<% /* Выводим кнопку для показа большего числа серий */ %>
<% if (moreEpisodes) { %>
<div class="moreEpisodes" onclick="var dme = document.querySelectorAll('[data-more-episodes]'); dme && dme.forEach(function(e) {e.style.display='block'});this.style.display='none'"><%- page.l.moreEpisodes %></div>
<% } %>
<% }); %>
<% } %>
<% } %>
<% } %>
<% /* Пагинация на главной странице */ %>
<% if (typeof page.pagination === 'object') { %>
<% /* Первая страница */ %>
<% if (page.pagination.first) { %>
<a href="<%- page.pagination.first.link %>"><%- page.pagination.first.number %></a>
<% } %>
<% /* Номера страниц до текущей */ %>
<% if (page.pagination.prev.length) { %>
<% page.pagination.prev.forEach(function (prev) { %>
<a href="<%- prev.link %>"><%- prev.number %></a>
<% }); %>
<% } %>
<% /* Текуща страница */ %>
<%- page.pagination.current %>
<% /* Номера страниц после текущей */ %>
<% if (page.pagination.next.length) { %>
<% page.pagination.next.forEach(function (next) { %>
<a href="<%- next.link %>"><%- next.number %></a>
<% }); %>
<% } %>
<% /* Последняя страница */ %>
<% if (page.pagination.last) { %>
<a href="<%- page.pagination.last.link %>"><%- page.pagination.last.number %></a>
<% } %>
<% } %>
<% /* Реклама внизу страницы */ %>
<% if (typeof page.adv === 'object' && page.adv.bottom) { %>
<div style="text-align:center;margin:10px auto">
<%- page.adv.bottom %>
</div>
<% } %>
<%- include('includes/footer.ejs'); -%>
</body>
</html>

527
default/views/movie.ejs Normal file
View File

@ -0,0 +1,527 @@
<!DOCTYPE html>
<html lang="<%- page.language %>" prefix="og: http://ogp.me/ns# video: http://ogp.me/ns/video# ya: http://webmaster.yandex.ru/vocabularies/">
<head>
<%- include('includes/head.ejs'); -%>
</head>
<body>
<% /* Хлебные крошки */ %>
<a href="/"><%- page.l.home %></a> » <% if (movie.genre_url) { %><%- movie.genre_url %><% } %> » <%= movie.title %>
<% /* Реклама вверху страницы */ %>
<% if (typeof page.adv === 'object' && page.adv.top) { %>
<div style="text-align:center;margin:10px auto">
<%- page.adv.top %>
</div>
<% } %>
<% /* H1 тег */ %>
<h1><%- page.h1 %></h1>
<% /* Информацию о фильме выводить проверяя существование */ %>
<% /* Тип */ %>
<% if (movie.type === 0) { %>Фильм<% } %>
<% if (movie.type === 1) { %>Сериал<% } %>
<% /* ID КиноПоиск */ %>
<% if (movie.kp_id) { %>ID КиноПоиск: <%- movie.kp_id %><% } %>
<% /* ID IMDb */ %>
<% if (movie.imdb_id) { %>ID IMDb: <%- movie.imdb_id %><% } %>
<% /* ID TMDb */ %>
<% if (movie.tmdb_id) { %>ID TMDb: <%- movie.tmdb_id %><% } %>
<% /* ID Douban */ %>
<% if (movie.douban_id) { %>ID Douban: <%- movie.douban_id %><% } %>
<% /* Название фильма */ %>
<%- movie.title %>
<% /* movie.title_ru - перевед. название */ %>
<% /* movie.title_en - ориг. название */ %>
<% /* movie.title_full - перевед. название / ориг. название (год) */ %>
<% /* movie.title_page - название для <title> */ %>
<% /* Описание фильма */ %>
<%- movie.description %>
<% /* movie.description_meta - описание для meta description */ %>
<% /* movie.description_short - короткое описание до 200 симв. */ %>
<% /* Год */ %>
<%- movie.year %>
<% /* movie.year_url - ссылка: <a href="...">год</a> */ %>
<% /* movie.year2 - фильм: год, сериал: 1 сезон 1 серия */ %>
<% /* movie.year3 - фильм: год, сериал: E01S01 */ %>
<% /* Список стран */ %>
<% if (movie.countries) { %><%- page.l.countries %>: <%- movie.countries %><% } %>
<% /* movie.countries_url - список стран в виде ссылок */ %>
<% /* movie.countries_arr - массив стран */ %>
<% /* movie.country - случайная страна */ %>
<% /* Список жанров */ %>
<% if (movie.genres) { %><%- page.l.genres %>: <%- movie.genres %><% } %>
<% /* movie.genres_url - список жанров в виде ссылок */ %>
<% /* movie.genres_arr - массив жанров */ %>
<% /* movie.genre - случайный жанр */ %>
<% /* Список режиссеров */ %>
<% if (movie.directors) { %><%- page.l.directors %>: <%- movie.directors %><% } %>
<% /* movie.directors_url - список режиссеров в виде ссылок */ %>
<% /* movie.directors_arr - массив режиссеров */ %>
<% /* movie.directors - случайный режиссер */ %>
<% /* Список актеров */ %>
<% if (movie.actors) { %><%- page.l.actors %>: <%- movie.actors %><% } %>
<% /* movie.actors_url - список актеров в виде ссылок */ %>
<% /* movie.actors_arr - массив актеров */ %>
<% /* movie.actors - случайный актер */ %>
<% /* Постер фильма */ %>
<img src="<%- movie.poster %>" alt="<%= movie.title %>" id="cinemapress-poster">
<% /* movie.poster_big - большой постер */ %>
<% /* movie.poster - стандартный постер */ %>
<% /* movie.poster_min - маленький постер */ %>
<% /* Кадр из фильма */ %>
<img src="<%- movie.picture %>" alt="<%= movie.title %>">
<% /* movie.picture_big - большой кадр */ %>
<% /* movie.picture - стандартный кадр */ %>
<% /* movie.picture_min - маленький кадр */ %>
<% /* Кадры из фильма */ %>
<% if (movie.pictures && movie.pictures.length) { %>
<div class="screens" id="lightgallery">
<% movie.pictures.forEach(function (picture) { %>
<a href="<%- !page.urls.movies.picture
? picture.picture_big
: movie.url + '/' + page.urls.movies.picture %>">
<img src="<%- picture.picture_min %>" alt="<%= movie.title %>">
</a>
<% }); %>
</div>
<% if (!page.urls.movies.picture) { %>
<link href="/themes/default/public/desktop/css/lightgallery.min.css" rel="stylesheet">
<script src="/themes/default/public/desktop/js/lightgallery.min.js"></script>
<script>lightGallery(document.getElementById('lightgallery'));</script>
<% } %>
<% } %>
<% /* Ссылка на фильм */ %>
<a href="<%- movie.url %>"><%= movie.title %></a>
<% /* movie.pathname - URL без домена /movie/idXXX */ %>
<% /* Ссылка на кадры */ %>
<% if (page.urls.movies.picture) { %>
<a href="<%- movie.url %>/<%- page.urls.movies.picture %>"><%- page.l.picture %></a>
<% } %>
<% /* Ссылка на трейлер */ %>
<% if (page.urls.movies.trailer) { %>
<a href="<%- movie.url %>/<%- page.urls.movies.trailer %>"><%- page.l.trailer %></a>
<% } %>
<% /* Ссылка на онлайн */ %>
<% if (page.urls.movies.online) { %>
<a href="<%- movie.url %>/<%- page.urls.movies.online %>"><%- page.l.online %></a>
<% } %>
<% /* Ссылка на скачать */ %>
<% if (page.urls.movies.download) { %>
<a href="<%- movie.url %>/<%- page.urls.movies.download %>"><%- page.l.download %></a>
<% } %>
<% /* Качество */ %>
<% if (movie.quality) { %><%- page.l.quality %>: <%- movie.quality %><% } %>
<% /* Перевод */ %>
<% if (movie.translate) { %><%- page.l.translate %>: <%- movie.translate %><% } %>
<% /* Общий рейтинг (1-100) и число голосов */ %>
<% if (movie.vote) { %>
<%- page.l.rating %>: <%- movie.rating %> (<%- movie.vote %> <%- page.l.votes %>)
<% } %>
<% /* КиноПоиск рейтинг (1-100) и число голосов */ %>
<% if (movie.kp_vote) { %>
<%- page.l.kp %>: <%- movie.kp_rating %> (<%- movie.kp_vote %> <%- page.l.votes %>)
<% } %>
<% /* IMDb рейтинг (1-100) и число голосов */ %>
<% if (movie.imdb_vote) { %>
<%- page.l.rating %>: <%- movie.imdb_rating %> (<%- movie.imdb_vote %> <%- page.l.votes %>)
<% } %>
<% /* Вышел на экраны или нет */ %>
<% if (movie.passed) { %>Премьера состоялась<% } %>
<% /* Дата премьеры фильма */ %>
<% if (movie.premiere) { %><%- page.l.premiere %>: <%- movie.premiere %><% } %>
<% /* Настраиваемое поле */ %>
<% if (movie && movie.custom && movie.custom["hello"]) { %>
<%- movie.custom["hello"] %>
<% } %>
<% /* Кнопка «Досмотреть позже» */ %>
<span class="watchLaterBlock" style="display:none;">
<a href="javascript:void(0)" id="watchLater"><%- page.l.later %></a>
</span>
<% /* Список серий сериала */ %>
<div class="episodesListBlock" style="display:none;margin:10px auto;">
<div id="episodesList" data-id="<%- movie.kp_id %>"></div>
</div>
<% /* Реклама над плеером */ %>
<% if (typeof page.adv === 'object' && page.adv.over) { %>
<div style="text-align:center;margin:10px auto;">
<%- page.adv.over %>
</div>
<% } %>
<% /* Плеер */ %>
<div id="cinemapress-player">
<% if (page.player) { %>
<%- page.player %>
<% } %>
</div>
<% /* Реклама под плеером */ %>
<% if (typeof page.adv === 'object' && page.adv.under) { %>
<div style="text-align:center;margin:10px auto;">
<%- page.adv.under %>
</div>
<% } %>
<% /* Новости с упоминанием фильма */ %>
<% if (typeof contents === 'object' && contents.length) { %>
<% contents.forEach(function (content) { %>
<div style="float:left;width:50%;">
<div style="margin:0;padding:10px">
<a href="<%- content.url %>" class="cinemapress-news" style="background-image:url(<%- content.image %>);">
<div class="cinemapress-news-title">
<%= content.title %>
</div>
</a>
</div>
</div>
<% }); %>
<% } %>
<% /* Цикл блоков связанных фильмов */ %>
<% if (typeof movies === 'object') { %>
<% for (var type in movies) { %>
<% if (movies.hasOwnProperty(type) && index[type].length) { %>
<% movies[type].forEach(function (category) { %>
<% /* Название блока */ %>
<h2><%- category.name %></h2>
<% /* Справа от названия ссылка на случайный фильм из блока */ %>
<div class="randomMovieIndex">
<div class="cinemapress-random-index"
onclick="window.location.href='<%- category.url %>?random'"
title="<%- page.l.random %>">
<img src="/themes/default/public/mobile/dice.svg" alt="<%- page.l.random %>">
</div>
</div>
<% /* Цикл фильмов в блоке */ %>
<% if (category.movies.length) { %>
<% category.movies.forEach(function (movie) { %>
<% /* Информацию о фильме выводить проверяя существование */ %>
<% /* Тип */ %>
<% if (movie.type === 0) { %>Фильм<% } %>
<% if (movie.type === 1) { %>Сериал<% } %>
<% /* ID КиноПоиск */ %>
<% if (movie.kp_id) { %>ID КиноПоиск: <%- movie.kp_id %><% } %>
<% /* ID IMDb */ %>
<% if (movie.imdb_id) { %>ID IMDb: <%- movie.imdb_id %><% } %>
<% /* ID TMDb */ %>
<% if (movie.tmdb_id) { %>ID TMDb: <%- movie.tmdb_id %><% } %>
<% /* ID Douban */ %>
<% if (movie.douban_id) { %>ID Douban: <%- movie.douban_id %><% } %>
<% /* Название фильма */ %>
<%- movie.title %>
<% /* movie.title_ru - перевед. название */ %>
<% /* movie.title_en - ориг. название */ %>
<% /* movie.title_full - перевед. название / ориг. название (год) */ %>
<% /* movie.title_page - название для <title> */ %>
<% /* Описание фильма */ %>
<%- movie.description %>
<% /* movie.description_meta - описание для meta description */ %>
<% /* movie.description_short - короткое описание до 200 симв. */ %>
<% /* Год */ %>
<%- movie.year %>
<% /* movie.year_url - ссылка: <a href="...">год</a> */ %>
<% /* movie.year2 - фильм: год, сериал: 1 сезон 1 серия */ %>
<% /* movie.year3 - фильм: год, сериал: E01S01 */ %>
<% /* Список стран */ %>
<% if (movie.countries) { %><%- page.l.countries %>: <%- movie.countries %><% } %>
<% /* movie.countries_url - список стран в виде ссылок */ %>
<% /* movie.countries_arr - массив стран */ %>
<% /* movie.country - случайная страна */ %>
<% /* Список жанров */ %>
<% if (movie.genres) { %><%- page.l.genres %>: <%- movie.genres %><% } %>
<% /* movie.genres_url - список жанров в виде ссылок */ %>
<% /* movie.genres_arr - массив жанров */ %>
<% /* movie.genre - случайный жанр */ %>
<% /* Список режиссеров */ %>
<% if (movie.directors) { %><%- page.l.directors %>: <%- movie.directors %><% } %>
<% /* movie.directors_url - список режиссеров в виде ссылок */ %>
<% /* movie.directors_arr - массив режиссеров */ %>
<% /* movie.directors - случайный режиссер */ %>
<% /* Список актеров */ %>
<% if (movie.actors) { %><%- page.l.actors %>: <%- movie.actors %><% } %>
<% /* movie.actors_url - список актеров в виде ссылок */ %>
<% /* movie.actors_arr - массив актеров */ %>
<% /* movie.actors - случайный актер */ %>
<% /* Постер фильма */ %>
<img src="<%- movie.poster %>" alt="<%= movie.title %>">
<% /* movie.poster_big - большой постер */ %>
<% /* movie.poster - стандартный постер */ %>
<% /* movie.poster_min - маленький постер */ %>
<% /* Кадр из фильма */ %>
<img src="<%- movie.picture %>" alt="<%= movie.title %>">
<% /* movie.picture_big - большой кадр */ %>
<% /* movie.picture - стандартный кадр */ %>
<% /* movie.picture_min - маленький кадр */ %>
<% /* movie.pictures - массив кадров */ %>
<% /* Ссылка на фильм */ %>
<a href="<%- movie.url %>"><%= movie.title %></a>
<% /* movie.pathname - URL без домена /movie/idXXX */ %>
<% /* Ссылка на кадры */ %>
<% if (page.urls.movies.picture) { %>
<a href="<%- movie.url %>/<%- page.urls.movies.picture %>"><%- page.l.picture %></a>
<% } %>
<% /* Ссылка на трейлер */ %>
<% if (page.urls.movies.trailer) { %>
<a href="<%- movie.url %>/<%- page.urls.movies.trailer %>"><%- page.l.trailer %></a>
<% } %>
<% /* Ссылка на онлайн */ %>
<% if (page.urls.movies.online) { %>
<a href="<%- movie.url %>/<%- page.urls.movies.online %>"><%- page.l.online %></a>
<% } %>
<% /* Ссылка на скачать */ %>
<% if (page.urls.movies.download) { %>
<a href="<%- movie.url %>/<%- page.urls.movies.download %>"><%- page.l.download %></a>
<% } %>
<% /* Качество */ %>
<% if (movie.quality) { %><%- page.l.quality %>: <%- movie.quality %><% } %>
<% /* Перевод */ %>
<% if (movie.translate) { %><%- page.l.translate %>: <%- movie.translate %><% } %>
<% /* Общий рейтинг (1-100) и число голосов */ %>
<% if (movie.vote) { %>
<%- page.l.rating %>: <%- movie.rating %> (<%- movie.vote %> <%- page.l.votes %>)
<% } %>
<% /* КиноПоиск рейтинг (1-100) и число голосов */ %>
<% if (movie.kp_vote) { %>
<%- page.l.kp %>: <%- movie.kp_rating %> (<%- movie.kp_vote %> <%- page.l.votes %>)
<% } %>
<% /* IMDb рейтинг (1-100) и число голосов */ %>
<% if (movie.imdb_vote) { %>
<%- page.l.rating %>: <%- movie.imdb_rating %> (<%- movie.imdb_vote %> <%- page.l.votes %>)
<% } %>
<% /* Вышел на экраны или нет */ %>
<% if (movie.passed) { %>Премьера состоялась<% } %>
<% /* Дата премьеры фильма */ %>
<% if (movie.premiere) { %><%- page.l.premiere %>: <%- movie.premiere %><% } %>
<% /* Настраиваемое поле */ %>
<% if (movie && movie.custom && movie.custom["hello"]) { %>
<%- movie.custom["hello"] %>
<% } %>
<% }); %>
<% } %>
<% }); %>
<% } %>
<% } %>
<% } %>
<% /* Блок с комментариями */ %>
<% if (page.comments) { %>
<%- page.comments %>
<% } else { %>
<div id="cinemapress-comments">
<h3 class="cinemapress-comment-h3">
<%- page.l.comments %>
<span class="cinemapress-comment-count cinemapress-comment-bg-color"><%- comments && comments.count || '0' %></span>
</h3>
<% if (typeof comments === 'object' && typeof comments.config === 'object') { %>
<% if (comments.config.star_rating) { %>
<div class="cinemapress-comment-star">
<div class="cinemapress-comment-star-down" data-comment-star="1"></div>
<div class="cinemapress-comment-star-award" data-comment-star="3"></div>
<div class="cinemapress-comment-star-up" data-comment-star="2"></div>
</div>
<% } %>
<div class="cinemapress-comment-form">
<% if (comments.config.bb_codes) { %>
<div class="cinemapress-comment-form-bb">
<span class="cinemapress-comment-bg cinemapress-comment-form-bb-b" data-bb-code="b"><%- page.l.bold.toLowerCase() %></span>
<span class="cinemapress-comment-bg cinemapress-comment-form-bb-i" data-bb-code="i"><%- page.l.italic.toLowerCase() %></span>
<span class="cinemapress-comment-bg cinemapress-comment-form-bb-spoiler" data-bb-code="spoiler">👻 <%- page.l.spoiler.toLowerCase() %></span>
<span class="cinemapress-comment-bg cinemapress-comment-form-bb-search" data-bb-code="search">🔍 <%- page.l.search.toLowerCase() %></span>
<input class="cinemapress-comment-bg cinemapress-comment-form-anonymous" name="comment_anonymous" type="text" placeholder="<%- page.l.username %>">
</div>
<% } %>
<div>
<div class="cinemapress-comment-textarea-div">
<textarea name="comment_text" class="cinemapress-comment-bg cinemapress-comment-textarea" placeholder="<%- page.l.comment %>" autocomplete="off" autocapitalize="off" spellcheck="false"></textarea>
<div class="cinemapress-comment-form-bg"></div>
<div class="cinemapress-comment-button-bg hover-off" data-comment-type="submit">
<span class="cinemapress-comment-button-text"></span>
</div>
</div>
<% if (comments.config.question) { %>
<div class="cinemapress-comment-bg cinemapress-comment-question" style="display: none">
<div class="cinemapress-comment-question-text"><%- comments.config.question %></div>
<div class="cinemapress-comment-question-answer">
<% if (comments.config.question_yes) { %>
<span class="cinemapress-comment-question-answer-yes"><%- page.l.yes %></span>
<% } %>
<% if (comments.config.question_not) { %>
<span class="cinemapress-comment-question-answer-not"><%- page.l.not %></span>
<% } %>
</div>
<% if (comments.config.question_yes) { %>
<div class="cinemapress-comment-question-text-yes" style="display: none">
<%- comments.config.question_yes %>
</div>
<% } %>
<% if (comments.config.question_not) { %>
<div class="cinemapress-comment-question-text-not" style="display: none">
<%- comments.config.question_not %>
</div>
<% } %>
<div class="cinemapress-comment-question-bg"></div>
<% if (comments.config.question_poster) { %>
<div class="cinemapress-comment-question-bg-poster" style="background-image:url('<%- comments.config.question_poster %>')"></div>
<% } %>
</div>
<% } %>
</div>
<div style="font-size:8px;text-align:right;opacity:.2">This site is protected by reCAPTCHA and the Google <a href="https://policies.google.com/privacy" style="font-size:8px" target="_blank">Privacy Policy</a> and <a href="https://policies.google.com/terms" style="font-size:8px" target="_blank">Terms of Service</a> apply.</div>
</div>
<%- comments.indexer ? comments.indexer : '' %>
<% if (comments.list && comments.list.length) { %>
<% comments.list.forEach(function (comment) { %>
<div class="cinemapress-comment" id="c<%- comment.id %>">
<div class="cinemapress-comment-head">
<div class="cinemapress-comment-head-avatar">
<img src="<%- comment.avatar %>" alt="<%= comment.user %>">
</div>
<% if (comments.config.star_rating) { %>
<% if (comment.star === 1) { %>
<div class="cinemapress-comment-head-star">
<div class="cinemapress-comment-star-down"></div>
</div>
<% } else if (comment.star === 2) { %>
<div class="cinemapress-comment-head-star">
<div class="cinemapress-comment-star-up"></div>
</div>
<% } else if (comment.star === 3) { %>
<div class="cinemapress-comment-head-star">
<div class="cinemapress-comment-star-award"></div>
</div>
<% } %>
<% } %>
<div class="cinemapress-comment-head-meta">
<div class="cinemapress-comment-head-meta-vote">
<span class="cinemapress-comment-like" data-comment-type="like" data-comment-id="<%- comment.id %>" title="<%= page.l.like %>">
<span class="cinemapress-comment-like-icon"></span>
<span class="cinemapress-comment-like-number"><%- comment.like %></span>
</span>
<span class="cinemapress-comment-dislike" data-comment-type="dislike" data-comment-id="<%- comment.id %>" title="<%= page.l.dislike %>">
<span class="cinemapress-comment-dislike-number"><%- comment.dislike %></span>
<span class="cinemapress-comment-dislike-icon"></span>
</span>
<span class="cinemapress-comment-reply" data-reply-id="<%- comment.id %>" data-bb-code="b" data-bb-value="<%- comment.user %>" title="<%= page.l.reply %>">
<span class="cinemapress-comment-reply-icon"></span>
</span>
</div>
<div class="cinemapress-comment-user" data-comment-id="<%- comment.id %>">
<div class="cinemapress-comment-user-name">
<%- comment.user %>
</div><div class="cinemapress-comment-user-said">
<%- page.l.said %>
</div><div class="cinemapress-comment-user-date">
<%- comment.date %>
</div><div class="cinemapress-comment-user-link">
<a href="<%- comment.url %>#c<%- comment.id %>">#</a>
</div>
</div>
</div>
</div>
<div class="cinemapress-comment-bg cinemapress-comment-radius">
<%- comment.comment %>
</div>
<% if (comment.admin) { %>
<div class="cinemapress-comment-admin">
<div class="cinemapress-comment-bg cinemapress-comment-admin-text">
<%- comment.admin %>
</div>
<div class="cinemapress-comment-admin-bg"></div>
</div>
<% } %>
</div>
<% }); %>
<% } %>
<% } %>
<div class="cinemapress-comment-arrow">
<% if (comments && comments.prev) { %>
<div class="cinemapress-prev-comments" onclick="window.location.href='?page=<%- comments.prev %>#cinemapress-comments'"></div>
<% } %>
<% if (comments && comments.next) { %>
<div class="cinemapress-next-comments" onclick="window.location.href='?page=<%- comments.next %>#cinemapress-comments'"></div>
<% } %>
</div>
</div>
<% } %>
<% /* Реклама внизу страницы */ %>
<% if (typeof page.adv === 'object' && page.adv.bottom) { %>
<div style="text-align:center;margin:10px auto">
<%- page.adv.bottom %>
</div>
<% } %>
<% /* Описание страницы */ %>
<% if (page.seo) { %>
<div style="text-align:center;margin:10px auto">
<%- page.seo %>
</div>
<% } %>
<%- include('includes/footer.ejs'); -%>
</body>
</html>

14
index.js Normal file
View File

@ -0,0 +1,14 @@
const ora = require('ora');
module.exports = parameters => {
const spinner = ora('Loading ...').start();
return Promise.resolve(parameters)
.then(require('./lib/scraper'))
.then(require('./lib/codes'))
.then(r => {
spinner.succeed('Success!');
return r;
});
};

157
lib/codes.js Normal file
View File

@ -0,0 +1,157 @@
const formatter = require('./formatter');
const path = require('path');
const fs = require('fs-extra');
const jsdom = require("jsdom");
const { JSDOM } = jsdom;
module.exports = parameters => {
let n = typeof parameters.name === 'string' && parameters.name
? parameters.name
: 'theme';
let h = (new URL(parameters.index)).hostname || 'example.com';
let pub = path.join(process.cwd(), n, 'public');
let views = path.join(process.cwd(), n, 'views');
let def = path.join(process.cwd(), n, 'default');
let includes = path.join(views, 'includes');
let domain = path.join(process.cwd(), h);
fs.ensureDirSync(pub);
fs.ensureDirSync(includes);
fs.copySync(path.join(__dirname, '..', 'default'), def);
fs.copySync(path.join(__dirname, '..', 'default', 'public'), pub);
['images', 'js', 'css', 'fonts', 'media', 'other'].forEach(d => {
fs.ensureDirSync(path.join(domain, d));
fs.copySync(path.join(domain, d), path.join(pub, d));
});
let head = [
'<meta charset="utf-8">',
'<meta name="viewport" content="width=device-width, initial-scale=1">',
'<title><%= page.title %></title>',
'<meta name="description" content="<%= page.description %>">',
'<link rel="stylesheet" href="/themes/' + n + '/public/css/all.min.css?v=<%- page.ver %>">',
'<link rel="shortcut icon" href="/themes/' + n + '/public/favicon.ico?v=<%- page.ver %>">'
];
let links = [];
let footer = [];
['index', 'movie', 'episode', 'picture', 'trailer', 'download', 'online', 'category', 'categories'].forEach(f => {
fs.ensureFileSync(path.join(process.cwd(), h, f + '.html'));
let { document: page } = new JSDOM(fs.readFileSync(path.join(domain, f + '.html'))).window;
page.querySelector('body').innerHTML = page.querySelector('body').innerHTML
.replace(/(["('])(images|js|css|fonts|media|other)\//ig, '$1/themes/' + n + '/public/' + '$2/');
page.querySelector('head').innerHTML = page.querySelector('head').innerHTML
.replace(/(["('])(images|js|css|fonts|media|other)\//ig, '$1/themes/' + n + '/public/' + '$2/');
let h1_page = page.querySelector('h1');
if (h1_page) {
h1_page.innerHTML = '<%- page.h1 %>';
}
let footer_body = page.querySelector('footer');
if (footer_body && footer_body.innerHTML) {
footer.push(formatter.html(footer_body.innerHTML));
footer_body.innerHTML = '\n<%- include(\'includes/footer.ejs\'); -%>\n';
}
let head_page = page.querySelector('head');
if (head_page) {
let link_head = head_page.querySelectorAll('link');
if (link_head) {
link_head.forEach(l => {
if (
l.getAttribute('rel') === 'stylesheet' ||
l.getAttribute('type') === 'text/css'
) {
let href = l.getAttribute('href');
if (href && !/^(http|\/\/)/i.test(href)) {
href = href + '?v=<%- page.ver %>';
}
href = '<link rel="stylesheet" type="text/css" href="' + href + '">';
if (links.indexOf(href) === -1) {
links.push(href);
}
}
});
}
let js_head = head_page.querySelectorAll('script');
if (js_head) {
js_head.forEach(j => {
if (j.getAttribute('src')) {
let src = j.getAttribute('src');
if (src && !/^(http|\/\/)/i.test(src)) {
src = src + '?v=<%- page.ver %>';
}
src = '<script src="' + src + '"></script>';
if (footer.indexOf(src) === -1) {
footer.push(src);
}
}
});
}
}
let js_body = page.querySelectorAll('script');
if (js_body) {
js_body.forEach(j => {
if (j.getAttribute('src')) {
let src = j.getAttribute('src');
if (src && !/^(http|\/\/)/i.test(src)) {
src = src + '?v=<%- page.ver %>';
}
src = '<script src="' + src + '"></script>';
if (footer.indexOf(src) === -1) {
footer.push(src);
}
j.parentNode.removeChild(j);
}
});
}
let header_body = page.querySelector('header');
if (header_body && header_body.innerHTML) {
fs.writeFileSync(path.join(includes, 'header.ejs'), formatter.html(header_body.innerHTML));
header_body.innerHTML = '\n<%- include(\'includes/header.ejs\'); -%>\n';
}
let nav_body = page.querySelector('nav');
if (nav_body && nav_body.innerHTML) {
fs.writeFileSync(path.join(includes, 'nav.ejs'), formatter.html(nav_body.innerHTML));
nav_body.innerHTML = '\n<%- include(\'includes/nav.ejs\'); -%>\n';
}
if (page.body) {
if (page.body.innerHTML === '') {
if (/(movie|episode|picture|trailer|online|download)/i.test(f)) {
fs.copySync(path.join(def, 'views', 'movie.ejs'), path.join(views, f + '.ejs'));
} else {
fs.copySync(path.join(def, 'views', f + '.ejs'), path.join(views, f + '.ejs'));
}
} else {
let body_class = page.querySelector('body').getAttribute('class');
let html_class = page.querySelector('html').getAttribute('class');
fs.writeFileSync(path.join(views, f + '.ejs'), formatter.html(
'<!DOCTYPE html>' + (/(movie|episode|picture|trailer|online|download)/i.test(f)
? '<html lang="<%- page.language %>" class="' + (html_class || '') + '">'
: '<html lang="<%- page.language %>" class="' + (html_class || '') + '" prefix="og: http://ogp.me/ns# video: http://ogp.me/ns/video# ya: http://webmaster.yandex.ru/vocabularies/">') +
'<head>\n<%- include(\'includes/head.ejs\'); -%>\n</head>' +
'<body class="' + (body_class || '') + '">' +
'\n' + page.body.innerHTML + (page.body.innerHTML.indexOf('includes/footer') === -1 ? '<%- include(\'includes/footer.ejs\'); -%>\n' : '\n') +
'</body>' +
'</html>'
));
}
}
});
head.push(...links);
head.push('<%- page.codes.head %>');
footer.push('<%- page.codes.footer %>');
fs.writeFileSync(path.join(includes, 'head.ejs'), formatter.html(head.join('\n')));
fs.writeFileSync(path.join(includes, 'footer.ejs'), formatter.html(footer.join('\n')));
fs.removeSync(domain);
return Promise.resolve();
};

55
lib/formatter.js Normal file
View File

@ -0,0 +1,55 @@
const js = require('js-beautify');
const css = require('js-beautify').css;
const html = require('js-beautify').html;
module.exports = {
js: body => {
return js(js(body)
.replace(/\/\*\*?[^]*?\*\//ig, '')
.replace(/\/\/\/.*?\n/ig, '')
.replace(/[ \f\t\v\u00a0\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u2028\u2029\u202f\u205f\u3000]+/g, ' ')
.replace(/(\r?\n)+/g, '\n')
.replace(/\n+/g, '\n')
.replace(/\n\s*?/g, '\n')
.replace(/\s*?\n/g, '\n')
.replace(/\r+/g, '\r')
.replace(/\r\s*?/g, '\r')
.replace(/\s*?\r/g, '\r')
.replace(/(\r?\n)+/g, '\n')
.replace(/\n+/g, '\n')
.replace(/(^\s*)|(\s*)$/g, ''));
},
css: body => {
return css(css(body)
.replace(/\/\*\*?[^]*?\*\//ig, '')
.replace(/[ \f\t\v\u00a0\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u2028\u2029\u202f\u205f\u3000]+/g, ' ')
.replace(/(\r?\n)+/g, '\n')
.replace(/\n+/g, '\n')
.replace(/\n\s*?/g, '\n')
.replace(/\s*?\n/g, '\n')
.replace(/\r+/g, '\r')
.replace(/\r\s*?/g, '\r')
.replace(/\s*?\r/g, '\r')
.replace(/(\r?\n)+/g, '\n')
.replace(/\n+/g, '\n')
.replace(/(^\s*)|(\s*)$/g, ''));
},
html: body => {
return html((html(body)
.replace(/<!--[^]*?-->/ig, ''))
.replace(/[ \f\t\v\u00a0\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u2028\u2029\u202f\u205f\u3000]+/g, ' ')
.replace(/(\r?\n)+/g, '\n')
.replace(/\n+/g, '\n')
.replace(/\n\s*?/g, '\n')
.replace(/\s*?\n/g, '\n')
.replace(/\r+/g, '\r')
.replace(/\r\s*?/g, '\r')
.replace(/\s*?\r/g, '\r')
.replace(/(\r?\n)+/g, '\n')
.replace(/\n+/g, '\n')
.replace(/(^\s*)|(\s*)$/g, '')
.replace(/&lt;%/g,'<%')
.replace(/%&gt;/g,'%>')
.replace(/&amp;&amp;/g,'&&'))
}
};

70
lib/scraper.js Normal file
View File

@ -0,0 +1,70 @@
const scrape = require('website-scraper');
const formatter = require('./formatter');
const path = require('path');
module.exports = parameters => {
let urls = [parameters.index];
if (parameters.movie) {
urls.push({url: parameters.movie, filename: 'movie.html'});
}
if (parameters.category) {
urls.push({url: parameters.category, filename: 'category.html'});
}
if (parameters.categories) {
urls.push({url: parameters.categories, filename: 'categories.html'});
}
if (parameters.episode) {
urls.push({url: parameters.episode, filename: 'episode.html'});
}
if (parameters.picture) {
urls.push({url: parameters.picture, filename: 'picture.html'});
}
if (parameters.trailer) {
urls.push({url: parameters.trailer, filename: 'trailer.html'});
}
if (parameters.online) {
urls.push({url: parameters.online, filename: 'online.html'});
}
if (parameters.download) {
urls.push({url: parameters.download, filename: 'download.html'});
}
const options = {
urls: urls,
directory: path.join(process.cwd(), ((new URL(parameters.index)).hostname || 'example.com')),
request: {
headers: {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.87 Safari/537.36'
}
},
subdirectories: [
{directory: 'images', extensions: ['.jpg', '.png', '.jpeg', '.gif']},
{directory: 'js', extensions: ['.js']},
{directory: 'css', extensions: ['.css']},
{directory: 'fonts', extensions: ['.svg', '.eot', '.ttf', '.woff', '.woff2']},
{directory: 'media', extensions: ['.mp4', '.webm']},
{directory: 'other', extensions: ['']}
],
urlFilter: url => {
return !/(googleapis|jsdelivr|cdnjs)\./i.test(url);
},
plugins: [
new Beautify()
]
};
return scrape(options).then(() => parameters);
};
class Beautify {
apply(registerAction) {
registerAction('afterResponse', async ({response}) => {
if (response.statusCode === 200 && response.headers['content-type'].indexOf('text/html') + 1) {
return {body: formatter.html(response.body)};
} else if (response.statusCode === 200 && response.headers['content-type'].indexOf('text/css') + 1) {
return {body: formatter.css(response.body)};
} else {
return {body: response.body, metadata: {headers: response.headers}};
}
});
}
}

26
package.json Normal file
View File

@ -0,0 +1,26 @@
{
"name": "cinematheme",
"version": "0.0.1",
"description": "Create theme for CinemaPress",
"main": "index.js",
"license": "MIT",
"bin": {
"cinematheme": "cinematheme.js"
},
"repository": {
"type": "git",
"url": "https://github.com/CinemaPress/CinemaTheme.git"
},
"bugs": {
"url": "https://github.com/CinemaPress/CinemaTheme/issues"
},
"homepage": "https://github.com/CinemaPress",
"dependencies": {
"ora": "4.0.3",
"jsdom": "16.2.0",
"commander": "4.1.1",
"fs-extra": "8.1.0",
"js-beautify": "1.10.3",
"website-scraper": "4.2.0"
}
}