admin

Администратор
Команда форума
Регистрация
30.09.2022
Сообщения
462
Реакции
84
1YsBIjH.gif

На desktop версии кино-сайта фото показываются при наведении на имя актера или режиссера.

1615971293477-png-5649.png


На мобильной версии кино-сайта актеры показаны сразу в фотографиях.

1615971463716-png-5651.png




Включение и отключение такого показа в Аддмин-панель - Настройки отображения - Фото актеров

Перед включением, нужно загрузить все фото на свой сервер.

Для этого используется команда:

cinemapress people

По умолчанию она загружает только фото (без json) с именами на английском и кириллице (русский, украинский и др.) в /files/poster/people/

Обход происходит по 3 миллионам актеров, среди которых исключаются актеры фильмов для взрослых и актеры, у которых нет фото.

Параметры команды:

cinemapress people "example.com" "snow" "jpg" "ru" "cache"
  • example.com - домен Вашего сайта
  • snow - шаблон на котором работает сайт
  • jpg- загружать только картинки, возможные варианты:
  • ru- имена актеров для jpg и для json, только на английском и кириллице (исключить арабский, китайский и прочие языки), возможные варианты:
    • ru - английские и русские имена
    • en - только английские имена и биография
    • all - имена на всех доступных языках
  • cache - не делать запрос к JSON и скачиванию JPG, если этот актер уже есть (/var/json-people - тут json, /files/poster/people/ - тут jpg)
При включении показа фото актеров в админ-панели, в информацию о фильме добавляется 2 новых свойства, это movie.actors_arr2 и movie.directors_arr2
Благодаря этим массивам, реализуется вывод фото актеров в шаблоне movie.ejs:

1615971293477-png-5649.png


HTML:
<% if (typeof movie.actors_arr2 === 'object' && movie.actors_arr2.length) { %>

    <% movie.actors_arr2.forEach(function (actor) { %>
        <div class="cinemapress-news-block cinemapress-people-block">
            <div style="margin: 0; padding: 10px">
                <a href="<%- actor.url %>" class="cinemapress-news lazy" style="background-image:url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAPoAAADICAQAAABrVzQQAAABLUlEQVR42u3RMQEAAAgDoC251W3hI1SgmfBMpUtHOtKRjnSkIx3pSEc60pGOdKQjHelIl450pCMd6UhHOtKRjnSkIx3pSEc60pEuHelIRzrSkY50pCMd6UhHOtKRjnSkI1060pGOdKQjHelIRzrSkY50pCMd6UhHunSkIx3pSEc60pGOdKQjHelIRzrSkY506dKlIx3pSEc60pGOdKQjHelIRzrSkY50pEtHOtKRjnSkIx3pSEc60pGOdKQjHelIl450pCMd6UhHOtKRjnSkIx3pSEc60pEuHelIRzrSkY50pCMd6UhHOtKRjnSkI1060pGOdKQjHelIRzrSkY50pCMd6UhHunTp0pGOdKQjHelIRzrSkY50pCMd6UhHOtKlIx3pSEc60pGOdKRzawFrr2QBa00SvgAAAABJRU5ErkJggg==');" data-bg="<%- actor.image %>">
                    <div class="cinemapress-news-title">
                        <%= actor.title %>
                    </div>
                </a>
            </div>
        </div>
    <% }); %>

<% } %>

Как Вы можете заметить, вывод происходит в блоке cinemapress-news-block, т.е. стили полностью повторяют вывод новостей. Единственный добавочный стиль, это cinemapress-people-block чтобы на узком мобильном экране актеры были в 2 строки.

CSS:
@media all and (max-width: 767px) {
  .cinemapress-people-block {
    float: left;
    width: 33.33%;
  }
}
@media all and (min-width: 768px) and (max-width: 1199px) {
  .cinemapress-people-block {
    float: left;
    width: 20%;
  }
}
@media all and (min-width: 1200px) {
  .cinemapress-people-block {
    float: left;
    width: 20%;
  }
}

1615971348534-png-5650.png

HTML:
<a href="/actor/Скарлетт Йоханссон" class="cinemapress-tooltips">
    Скарлетт Йоханссон
    <span style="position: absolute; visibility: hidden;">
        <img src="/files/poster/people/Скарлетт Йоханссон.jpg" alt="Скарлетт Йоханссон"/>
    </span>
</a>
CSS:
a.cinemapress-tooltips {
    position: relative;
    display: inline
}

a.cinemapress-tooltips span {
    position: absolute;
    color: #fff;
    height: 200px;
    line-height: 64px;
    text-align: center;
    visibility: hidden;
    border-radius: 6px
}

a.cinemapress-tooltips span img {
    height: 200px;
    border-radius: 10px
}

a.cinemapress-tooltips span:after {
    content: '';
    position: absolute;
    top: 100%;
    left: 50%;
    margin-left: -8px;
    width: 0;
    height: 0
}

a:hover.cinemapress-tooltips span {
    visibility: visible !important;
    opacity: .95;
    bottom: 30px;
    left: 0;
    right: 0;
    text-align: center;
    z-index: 100001
}

Все эксперименты с сайтом и загрузкой фото, лучше делайте на отдельном тестовом сайте test.example.com и затем когда убедитесь что всё работает, переносите на основной. При загрузке фото и json, в названиях-именах буква ё заменяется на е, для лучшей совместимости.

Команда будет выполняться несколько дней, поэтому запускать её лучше в фоне, чтобы можно было закрыть терминал:
  • nohup cinemapress people "example.com" "snow" > people.log 2>&1 &
Всегда обновляйте установочный файл и систему: cinemapress upd && cinemapress update
 
  • Мне нравится
Реакции: Lu41

admin

Администратор
Команда форума
Регистрация
30.09.2022
Сообщения
462
Реакции
84
Результат работы команды:
  • /var/json-people - файлы JSON с именами в виде ID на TMDb
  • /files/poster/people - файлы JPG с именами людей на разных языках
  • /themes/тема/views/actor - файлы JSON с именами актеров на разных языках
  • /themes/тема/views/director - файлы JSON с именами режиссеров на разных языках
actor и director - это названия из URL, т.е. если у Вас aktery и rejissery - то папки переименовать в такие названия.
 

Vladislav

Активный пользователь
Регистрация
05.11.2022
Сообщения
25
Реакции
0
здравствуйте, подскажите пожалуйста сколько будет весить вся директория? у меня на сервере всего 20gb памяти, хватит ли памяти что бы сайт функционировал? качает уже 15 час, боюсь, хватит не хватит места, с уважением, до конца еще не загрузило решил проверить, зашел на сайт, работает все на отлично как показано в описании
 
Последнее редактирование:

admin

Администратор
Команда форума
Регистрация
30.09.2022
Сообщения
462
Реакции
84
Общий размер фото должен быть около 20gb. Но он не всегда скачивается полностью, бывает прерывается.
 

NZT48

Продвинутый пользователь
Регистрация
04.10.2022
Сообщения
49
Реакции
14
Здравствуйте,

Возможно ли изменить формат изображения на webp вместо jpg? Я пробовал так, но это не работает:

cinemapress people "example.com" "snow" "webp" "ru" "cache"

С уважением
 

admin

Администратор
Команда форума
Регистрация
30.09.2022
Сообщения
462
Реакции
84
Здравствуйте,

Возможно ли изменить формат изображения на webp вместо jpg? Я пробовал так, но это не работает:

cinemapress people "example.com" "snow" "webp" "ru" "cache"

С уважением
Скачайте в jpg и сконвертируйте при помощи сторонних сервисов или программ.
 

NZT48

Продвинутый пользователь
Регистрация
04.10.2022
Сообщения
49
Реакции
14
Скачайте в jpg и сконвертируйте при помощи сторонних сервисов или программ.Скачайте в jpg и сконвертируйте при помощи сторонних сервисов или программ.
Спасибо за ответ (y) я установил ImageMagick для преобразования папки people, а также других папок, содержащих jpg.

С уважением
 

NZT48

Продвинутый пользователь
Регистрация
04.10.2022
Сообщения
49
Реакции
14
После изменения формата изображений актеров, какой файл нужно изменить, чтобы изменить путь по умолчанию к изображениям папки "People"? data-bg="<%- actor.image %>"

По умолчанию изображение находится здесь:

data-bg="https://www.example.com/files/poster/people/David Howard Thornton.jpg">

После изменения формата изображения я хотел бы изменить путь следующим образом:

data-bg="https://www.example.com/files/poster/people/David Howard Thornton.webp">

Я попробовал изменить файл default.conf example.com/config/production/nginx/conf.d/default.conf следующим образом, а затем перезапустить nginx:

Код:
    location ~* ^/+files/+poster/+people/+.*\.webp {
        expire 1y;
        access_log off;
        error_log off;
        autoindex off;
        add_header Cache-Control "public, no-transform";
        try_files $uri /files/poster/people/no.webp=404;
    }

Но это не работает. Может у кого-то есть идеи?

С уважением
 

admin

Администратор
Команда форума
Регистрация
30.09.2022
Сообщения
462
Реакции
84
После изменения формата изображений актеров, какой файл нужно изменить, чтобы изменить путь по умолчанию к изображениям папки "People"? data-bg="<%- actor.image %>"

По умолчанию изображение находится здесь:

data-bg="https://www.example.com/files/poster/people/David Howard Thornton.jpg">

После изменения формата изображения я хотел бы изменить путь следующим образом:

data-bg="https://www.example.com/files/poster/people/David Howard Thornton.webp">

Я попробовал изменить файл default.conf example.com/config/production/nginx/conf.d/default.conf следующим образом, а затем перезапустить nginx:

Код:
    location ~* ^/+files/+poster/+people/+.*\.webp {
        expire 1y;
        access_log off;
        error_log off;
        autoindex off;
        add_header Cache-Control "public, no-transform";
        try_files $uri /files/poster/people/no.webp=404;
    }

Но это не работает. Может у кого-то есть идеи?

С уважением
/lib/CP_structure.js
Ctrl+f
.jpg replace .webp
 

NZT48

Продвинутый пользователь
Регистрация
04.10.2022
Сообщения
49
Реакции
14
/lib/CP_structure.js
Ctrl+f
.jpg replace .webp
Великолепно (y)! Спасибо большое, все отлично работает, теперь у меня есть фотографии актеров в формате webp, которые отображаются на страницах.

Однако, я поместил изображения no.jpg и no.webp (в корень папки "people"), которые отображаются, когда у актера нет фотографии, но всегда отображается no.jpg, а не no.webp. Какой файл нужно отредактировать, чтобы поставить расширение no.jpg в no.webp в пути?

И последний вопрос о poster и picture: <%- movie.poster_big %> <%- movie.poster %> <%- picture.picture_big %>.

Какой файл нужно отредактировать, чтобы изменить путь по умолчанию ( .jpg на .webp) для poster и picture в этих папках:

Код:
/files/poster/medium
/files/poster/original
/files/picture/medium
/files/picture/original
/files/picture/small

С уважением
 

admin

Администратор
Команда форума
Регистрация
30.09.2022
Сообщения
462
Реакции
84
Какой файл нужно отредактировать, чтобы изменить путь по умолчанию ( .jpg на .webp) для poster и picture в этих папках:
Поищите в папке lib в файлах.
Я далеко от компьютера.
 

NZT48

Продвинутый пользователь
Регистрация
04.10.2022
Сообщения
49
Реакции
14
CP_structure.js
Ctrl+f
no.jpg replace no.webp

Спасибо, теперь все работает (y) Я забыл изменить jpg на no.jpg в default.conf:

location ~* ^/+files/+poster/+people/+.*\.webp { expire 1y; access_log off; error_log off; autoindex off; add_header Cache-Control "public, no-transform"; try_files $uri /files/poster/people/no.webp=404; }

Код:
location ~* ^/+files/+poster/+people/+.*\.webp {
         expire 1y;
         access_log off;
         error_log off;
         autoindex off;
         add_header Cache-Control "public, no-transform";
         try_files $uri /files/poster/people/no.jpg =404;
     }

Поищите в папке lib в файлах.
Я далеко от компьютера.

Я выполнил расширенный поиск с помощью ctrl+f+jpg во всех .js файлах, содержащихся в Lib, но единственный файл, содержащий "jpg" - это CP_structure.js. Я пытаюсь искать в других файлах.

Еще раз спасибо!
С уважением
 

NZT48

Продвинутый пользователь
Регистрация
04.10.2022
Сообщения
49
Реакции
14
Я использую Tmdb для сбора информации, poster и pictures. Изменить путь к poster и pictures не просто, потому что расширение .jpg содержится в id (CP_structure.js строка 835)

Код:
    case 'imdb':
    case 'tmdb':
    case 'tvmaze':
    case 'shikimori':
      image = '/files/' + type + '/' + size + id;
      break;

Для poster:

Код:
'/files/' + type + '/' + size + id = files/poster/original/hYALH5NPM7xk2XQd2J8wrfmliIW.jpg
  • type = poster
  • size = original
  • id = hYALH5NPM7xk2XQd2J8wrfmliIW.jpg
Для picture:

Код:
'/files/' + type + '/' + size + id = files/picture/original/zZOitKW7TTexnUgXtBDL16J9EZ2.jpg
  • type = picture
  • size = original
  • id = /zZOitKW7TTexnUgXtBDL16J9EZ2.jpg
Идентификатор получен с помощью этих строк скрипта:

~ poster_path <> poster! ~ ~ backdrop_path <> pictures <> 3 ~

Что дает следующее:

Код:
  pictures: '/zZOitKW7TTexnUgXtBDL16J9EZ2.jpg,/lRTvSsK2GsIwfKxQt5MCtUC9V6R.jpg,/zEkgjxI57Or8YtdqM32WsUBmf5w.jpg',
  id: 200436270,
  kp_id: 200436270,
  rating: 73,
  vote: 2279,
  kp_rating: 0,
  kp_vote: 0,
  imdb_rating: 0,
  imdb_vote: 0,
  premiere: 738812,
  type: 0,
  poster: '/hYALH5NPM7xk2XQd2J8wrfmliIW.jpg',
  title_ru: '',
  title_en: 'Black Adam',
  title_page: ''

Единственное решение, которое я нашел, чтобы изменить путь Picture и poster, немного сложное, и я не знаю, стоит ли оно того, но для тех, кто интересуется, вот обзор. Перед началом публикации вы должны загрузить на VPS все фотографии (средние, оригинальные, маленькие) и постеры (средние, оригинальные, маленькие) фильмов/сериалов, которые вы собираетесь опубликовать. Затем вы должны конвертировать все jpg изображения в webp в каждой из 6 папок, сохраняя имя исходного изображения:

hYALH5NPM7xk2XQd2J8wrfmliIW.jpg >hYALH5NPM7xk2XQd2J8wrfmliIW.webp

Как только это будет сделано, мы можем перейти к шагу публикации:

Перейдите по адресу: example.com/admin-secret/main и выберите опцию Cервер картинок > Не сохранять изображения (Все изображения уже находятся на вашем VPS в формате webp)

Перейдите к: example.com/admin-secret/movies и добавьте "_VALUE_".replace(".jpg", ".webp") следующим образом:

Код:
~ poster_path <> poster! <> <> <> "_VALUE_".replace(".jpg", ".webp") ~

Этот скрипт изменит путь poster с hYALH5NPM7xk2XQd2J8wrfmliIW.jpg на hYALH5NPM7xk2XQd2J8wrfmliIW.webp

Код:
~ backdrop_path <> pictures <> 3 <> <> "_VALUE_".replace(".jpg", ".webp").replace(". jpg", ".webp").replace(". jpg", ".webp") ~

скрипт изменит путь picture .jpg на .webp. Я поставил 3 раза .replace(".jpg", ".webp"), потому что всего я настроил 3 изображения. Если вы настроите в общей сложности 5 изображений, вам нужно будет поставить 5 раз .replace(".jpg", ".webp")

publish.png
Результаты будут такими:

Код:
  pictures: '/zZOitKW7TTexnUgXtBDL16J9EZ2.webp,/lRTvSsK2GsIwfKxQt5MCtUC9V6R.webp,/zEkgjxI57Or8YtdqM32WsUBmf5w.webp',
  id: 200436270,
  kp_id: 200436270,
  rating: 73,
  vote: 2279,
  kp_rating: 0,
  kp_vote: 0,
  imdb_rating: 0,
  imdb_vote: 0,
  premiere: 738812,
  type: 0,
  poster: '/hYALH5NPM7xk2XQd2J8wrfmliIW.webp',
  title_ru: '',
  title_en: 'Black Adam',
  title_page: ''

Этот метод работает, но имеет довольно много недостатков, возможно, кто-то сможет найти лучший метод.

С уважением
 
Последнее редактирование:
Верх