Создание онлайн кинотеатра с дорамами/аниме + автодобавление новых (20 000+ фильмов)

Думает, что помогает
Регистрация
15 Дек 2017
Сообщения
4,970
#1
1616080182242.png

Если у Вас после установки сайта уже есть фильмы, Вам их лучше все удалить и заново наполнить с помощью автозаполнения.
  • Удаление всех фильмов из автоматической базы делается командой:
    • cinemapress zero
  • Удаление всех фильмов, которые Вы видите в админ-панели делается командой:
    • cinemapress zero_realtime
Теперь когда всё обнулилось, можно запускать команды автозаполнения и после этого перевести их на ежечасное автодобавление.

1616077000030.png

Код:
# Заполнение всей информции с kodik, и основным делать ID КиноПоиска.
0 ~ http://kodikapi.com/list?limit=100&with_material_data=true&token=45c53578f11ecfb74e31267b634cc6a8&page=[page][next_page] ~ results ~ ~ kinopoisk_id <> kp_id ~ material_data.title <> title_ru ~ material_data.title_en <> title_en ~ material_data.year <> year ~ material_data.description <> description ~ material_data.poster_url <> poster ~ material_data.screenshots <> pictures ~ material_data.countries <> country ~ material_data.genres <> genre ~ material_data.premiere_world <> premiere ~ material_data.actors <> actor ~ material_data.directors <> director ~ type <> type

# Заполнение ID IMDb для фильмов, у которых уже есть ID КиноПоиска.
0 ~ http://kodikapi.com/list?limit=100&with_material_data=true&token=45c53578f11ecfb74e31267b634cc6a8&page=[page][next_page] ~ results ~ ~ kinopoisk_id <> kp_id ~ imdb_id <> custom.imdb_id

# Заполнение ID Shikimori для фильмов, у которых уже есть ID КиноПоиска.
0 ~ http://kodikapi.com/list?limit=100&with_material_data=true&token=45c53578f11ecfb74e31267b634cc6a8&page=[page][next_page] ~ results ~ ~ kinopoisk_id <> kp_id ~ shikimori_id <> custom.movie_id

# Заполнение ID TMDb + постер + красивое фото для фильмов, у которых уже есть ID IMDb
0 ~ db ~ custom.imdb_id ~ https://api.themoviedb.org/3/find/tt[imdb_id]?api_key=269890f657dddf4635473cf4cf456576&external_source=imdb_id ~ movie_results.0.id <> custom.tmdb_id <> 1 ~ movie_results.0.poster_path <> poster <> 1 ~ movie_results.0.backdrop_path <> pictures <> 1

# Заполнение ID TMDb + постер + красивое фото для сериалов, у которых уже есть ID IMDb
0 ~ db ~ custom.imdb_id ~ https://api.themoviedb.org/3/find/tt[imdb_id]?api_key=269890f657dddf4635473cf4cf456576&external_source=imdb_id ~ tv_results.0.id <> custom.tmdb_id <> 1 ~ tv_results.0.poster_path <> poster <> 1 ~ tv_results.0.backdrop_path <> pictures <> 1

# Заполнение рейтинга КиноПоиск и IMDb, напрямую с КиноПоиска.
0 ~ db ~ kp_id ~ https://rating.kinopoisk.ru/[id].xml ~ rating.kp_rating._attributes.num_vote <> kp_vote ~ rating.kp_rating._text <> kp_rating ~ rating.imdb_rating._attributes.num_vote <> imdb_vote ~ rating.imdb_rating._text <> imdb_rating

После получения, делаете обход только первой страницы для получения новых аниме каждый час (удаляете &page=[page][next_page])

Код:
# Заполнение всей информции с kodik, и основным делать ID КиноПоиска.
1 ~ http://kodikapi.com/list?limit=100&with_material_data=true&token=45c53578f11ecfb74e31267b634cc6a8 ~ results ~ ~ kinopoisk_id <> kp_id ~ material_data.title <> title_ru ~ material_data.title_en <> title_en ~ material_data.year <> year ~ material_data.description <> description ~ material_data.poster_url <> poster ~ material_data.screenshots <> pictures ~ material_data.countries <> country ~ material_data.genres <> genre ~ material_data.premiere_world <> premiere ~ material_data.actors <> actor ~ material_data.directors <> director ~ type <> type

# Заполнение ID IMDb для фильмов, у которых уже есть ID КиноПоиска.
1 ~ http://kodikapi.com/list?limit=100&with_material_data=true&token=45c53578f11ecfb74e31267b634cc6a8 ~ results ~ ~ kinopoisk_id <> kp_id ~ imdb_id <> custom.imdb_id

# Заполнение ID Shikimori для фильмов, у которых уже есть ID КиноПоиска.
1 ~ http://kodikapi.com/list?limit=100&with_material_data=true&token=45c53578f11ecfb74e31267b634cc6a8 ~ results ~ ~ kinopoisk_id <> kp_id ~ shikimori_id <> custom.movie_id

1616077727668.png

Если Вы будете использовать только базу Kodik, для информации о фильмах, то можете сделать основными несколько ID (IMDb + КиноПоиск + Shikimori), вместо одного ID КиноПоиска. В таком случае Вам удастся выгрузить абсолютно все аниме, которые у них есть. Учтите что у них много повторов, неточностей и дублей контента. Одно и то же аниме может добавиться по несколько раз.
Код:
# Заполнение всей информции с kodik, и основным делать ID КиноПоиска или ID IMDb или ID Shikimori.
0 ~ http://kodikapi.com/list?limit=100&with_material_data=true&token=45c53578f11ecfb74e31267b634cc6a8&page=[page][next_page] ~ results ~ ~ kinopoisk_id <> kp_id ~ imdb_id <> custom.imdb_id ~ shikimori_id <> custom.movie_id ~ material_data.title <> title_ru ~ material_data.title_en <> title_en ~ material_data.year <> year ~ material_data.description <> description ~ material_data.poster_url <> poster ~ material_data.screenshots <> pictures ~ material_data.countries <> country ~ material_data.genres <> genre ~ material_data.premiere_world <> premiere ~ material_data.actors <> actor ~ material_data.directors <> director ~ type <> type

# Заполнение ID TMDb + постер + красивое фото для фильмов, у которых уже есть ID IMDb
# Код выше

# Заполнение ID TMDb + постер + красивое фото для сериалов, у которых уже есть ID IMDb
# Код выше

# Заполнение рейтинга КиноПоиск и IMDb, напрямую с КиноПоиска.
# Код выше
Основные моменты, которые стоит понять, чтобы самому составлять такие строки получения информации.

Параметры разделяются волнистой чертой - ~
Если у параметра несколько функций, разделение знаком больше-меньше - <>

Первый параметр, это кратность часов, с которой система будет выполнять команду:
  • 0 - команду можно запустить только по кнопке
  • 4 - каждые 4 часа
  • 23 - раз в день в 23 часа
Второй параметр, это URL API со списком всех фильмов или Ваша база данных сайта:
  • https://example.com/api?page=1 - зайти только на первую страницу API
  • https://example.com/api?page=[page] - пройтись по всем страницам 1,2,3,... пока API будет отдавать успешные ответы
  • https://example.com/api?page=[page][data.next_page] - переход на след. страницу API по URL, который находится в свойстве {data: {next_page: 'https://example.com/api?page=2'}}
  • database или db или пустое поле - получение всех фильмов с Вашей локальной базы данных
  • xmlpipe2 - получение фильмов с автоматической базы (у Вас там может быть 40к и больше фильмов)
  • saved - получение всех фильмов из JSON файлов в папке /files/saved/
  • lastmod - получение всех фильмов, которые были обновлены в течении последнего часа, например Вы добавляете фильм из разных API у которых рейтинг не всегда актуальный, Вы сразу в след. строке можете прописать им рейтинг, который Вы получите напрямую с КиноПоиска
Третий параметр, это получение ID каждого фильма из всего списка на странице:
  • results.0.id - путь к ID из JSON API списка
  • results - если четвертый параметр пустой, то Вы можете дать путь к массиву и сразу из него получать всю информацию о фильме
  • custom.imdb_id - если второй параметр локальная база, то Вы можете из нее получить любое ID, например IMDb
  • пустое поле - можно оставлять пустым, если получаете из локальной базы, в этом случае ID будет считаться ID КиноПоиска
Четверный параметр, это URL адрес на который зайдет система для получения информации по ID конкретного фильма:
  • https://example.com/api?id=[id] - вместо [id] система подставит ID из третьего параметра
  • https://rating.kinopoisk.ru/[id].xml - Вы можете использовать и XML, который преобразуется в JSON
  • [url] - если второй параметр состоит из массива URL-адресов, то указав [url], Вы говорите пройтись по всем адресам API
Пятый и последующие параметры, это пути к JSON данным и сопоставление их с Вашей локальной базой:
  • data.actors <> actor - добавление массива actors в поле базы сайта actor
  • results.0.id <> custom.tmdb_id - добавление {results: [ { id: '111' } ]} в кастомное поле базы сайта custom.tmdb_id
  • data.directors <> director <> 1 - добавление только одного режиссера из массива directors в поле базы сайта director
  • data.genres <> genre <> <> <> "_VALUE_".split(",") - если жанры имеют в списке лишние пробелы, например комедия, драма, ужасы Вы можете разделить их по запятой "_VALUE_".split(",") и система сама всё корректно занесет в базу комедия,драма,ужасы. Это eval команда и Вы можете ипользовать в ней любые JS функции. _VALUE_ - используйте если data.genres является строкой и _OBJECT_ - если является объектом.
Объяснение остальных моментов, уже будет дополняться по мере использования.

1616081095819.png

Теперь создаёте новую автоматическую коллекцию, например anime-dorama и выводите её на главной.

http://kodikapi.com/list?token=b7cc4293ed475c4ad1fd599d114f4435 ~ results.0.kinopoisk_id ~ anime-dorama

PS: Очень много информации, будет создано видео.
 
Енот
Новичо́к, через «о́»
Регистрация
13 Янв 2018
Сообщения
379
#2
http://kodikapi.com/list?token=b7cc4293ed475c4ad1fd599d114f4435 ~ results.0.kinopoisk_id ~ anime-dorama

PS: Очень много информации, будет создано видео.
А как быть с фильмами и сериалами не имеющих описания на кинопоиск, можно ли настроить вывод описания из tmdb
Код:
{"type":"foreign-serial","id":"serial-27642","title":"Великий правитель","title_orig":"Bei ling shao nian zhi zhi da zhu zai","other_title":"Верховный правитель / Великий мастер / Dominant / The Great Master / The Great Lord / The Great Thousand World / The Great Ruler","year":2020,"last_season":1,"last_episode":26,"episodes_count":26,"quality":"HDTVRip 720p","translate":"Vonneks","translation":{"id":1359,"title":"Vonneks","type":"voice"},"kp_link":"1291180","kinopoisk_id":"1291180","imdb_id":"tt11698258","mdl_id":null,"worldart_link":null,"shikimori_id":null,"link":"//kodik.cc/serial/27642/0b7efa5b964ab14879a6310d21e502bc/720p","player_link":
 
Думает, что помогает
Регистрация
15 Дек 2017
Сообщения
4,970
#8
Обновлена строка заполнения:

# Заполнение ID Shikimori для фильмов, у которых уже есть ID КиноПоиска.
0 ~ http://kodikapi.com/list?limit=100&with_material_data=true&token=45c53578f11ecfb74e31267b634cc6a8&page=[page][next_page] ~ results ~ ~ kinopoisk_id <> kp_id ~ shikimori_id <> custom.movie_id

Было shikimori_id <> custom.shikimori_id стало shikimori_id <> custom.movie_id, в системе нет shikimori_id, вместо этого Вы заносите его в movie_id.

не могли бы такое же для модуля серии написать
Сегодня будет большая тема с работой модуля Серии.
 
Думает, что помогает
Регистрация
15 Дек 2017
Сообщения
4,970
#10
@Kazik, если не нужны фильмы из kodik, а только аниме, укажите этот тип, как у них указано в API.
  • Фильмы: foreign-movie,soviet-cartoon,foreign-cartoon,russian-cartoon,anime,russian-movie
  • Сериалы: cartoon-serial,documentary-serial,russian-serial,foreign-serial,anime-serial,multi-part-film
К URL в строке заполнения добавить, через запятую: &types=anime,anime-serial

Чтобы удалить все фильмы из админ-панели, добавлена кнопка.

1616502598387.png
 
Новичо́к, через «о́»
Регистрация
8 Мар 2021
Сообщения
19
#11
@Alisa, при заполнении информации с collapse

# 0 ~ https://api1616358631.bhcesh.me/list?page=[page][next_page]&token=eedefb541aeba871dcfc756e6b31c02e&limit=100 ~ results ~ ~ kinopoisk_id <> kp_id ~ name <> title_ru ~ origin_name <> title_en ~ year <> year ~ country <> country ~ genre <> genre ~ type <> type ~ imdb_id <> custom.imdb_id ~ quality <> quality ~ age <> custom.age


И ещё хотел получать картинки с tmdb и pleer, но с pleer не подгружает (возможно не правильно составлен запрос), а с tmdb выходит вот такое:


0 ~ db ~ kp_id ~ https://pleer.video/[id].json ~ results ~ ~ pictures <> picture

# 0 ~ db ~ custom.imdb_id ~ https://api.themoviedb.org/3/find/tt[imdb_id]?api_key=269890f657dddf4635473cf4cf456576&external_source=imdb_id ~ movie_results.0.id <> custom.tmdb_id <> 1 ~ movie_results.0.backdrop_path <> picture <> 1
# 0 ~ db ~ custom.imdb_id ~ https://api.themoviedb.org/3/find/tt[imdb_id]?api_key=269890f657dddf4635473cf4cf456576&external_source=imdb_id ~ tv_results.0.id <> custom.tmdb_id <> 1 ~ tv_results.0.backdrop_path <> picture <> 1


Как исправить?
 
Енот
Новичо́к, через «о́»
Регистрация
15 Сен 2018
Сообщения
84
#12
@Kazik, если не нужны фильмы из kodik, а только аниме, укажите этот тип, как у них указано в API.
  • Фильмы: foreign-movie,soviet-cartoon,foreign-cartoon,russian-cartoon,anime,russian-movie
  • Сериалы: cartoon-serial,documentary-serial,russian-serial,foreign-serial,anime-serial,multi-part-film
К URL в строке заполнения добавить, через запятую: &types=anime,anime-serial

Чтобы удалить все фильмы из админ-панели, добавлена кнопка.

Посмотреть вложение 5776
Если есть ключ он будет работать через PUTTY что востановить базу?
 
Новичо́к, через «о́»
Регистрация
22 Мар 2021
Сообщения
8
#14
Подскажите как увеличить в этом месте количество фильмов? с 10 до 12, выглядит не красиво, будто фильмы закончились.
 

Вложения

Думает, что помогает
Регистрация
15 Дек 2017
Сообщения
4,970
#16
@YAhd, У них жанры - это объект, нужно так genre <> <> <> Object.values(_OBJECT_)

0 ~ https://apicollaps.cc/list?token=eedefb541aeba871dcfc756e6b31c02e&limit=99&page=[page] ~ results.0.id ~ https://apicollaps.cc/franchise/details?token=eedefb541aeba871dcfc756e6b31c02e&id=[id] ~ kinopoisk_id <> kp_id ~ imdb_id <> custom.imdb_id ~ name <> title_ru ~ name_eng <> title_en ~ year <> year ~ type <> type ~ quality <> quality ~ premier <> premiere ~ description <> description ~ country <> country <> <> <> Object.values(_OBJECT_) ~ genre <> genre <> <> <> Object.values(_OBJECT_) ~ director.0 <> director ~ actors.0 <> actor <> 5 ~ voiceActing <> translate <> 1

Код:
# Заполнение кадров в pleer.video
0 ~ db ~ kp_id ~ https://pleer.video/[id].json ~ pictures <> pictures

# Заполнение ID TMDb + постер + красивое фото для фильмов, у которых уже есть ID IMDb
0 ~ db ~ custom.imdb_id ~ https://api.themoviedb.org/3/find/tt[imdb_id]?api_key=269890f657dddf4635473cf4cf456576&external_source=imdb_id ~ movie_results.0.id <> custom.tmdb_id <> 1 ~ movie_results.0.poster_path <> poster <> 1 ~ movie_results.0.backdrop_path <> picture <> 1

# Заполнение ID TMDb + постер + красивое фото для сериалов, у которых уже есть ID IMDb
0 ~ db ~ custom.imdb_id ~ https://api.themoviedb.org/3/find/tt[imdb_id]?api_key=269890f657dddf4635473cf4cf456576&external_source=imdb_id ~ tv_results.0.id <> custom.tmdb_id <> 1 ~ tv_results.0.poster_path <> poster <> 1 ~ tv_results.0.backdrop_path <> pictures <> 1
 
Новичо́к, через «о́»
Регистрация
22 Мар 2021
Сообщения
8
#17
Подскажите, есть другие еще базы аниме кроме kodik? Как их добавить на сайт?
 
Думает, что помогает
Регистрация
15 Дек 2017
Сообщения
4,970
#18
Подскажите, есть другие еще базы аниме кроме kodik? Как их добавить на сайт?
Есть еще aniboom.one, если Вы получите документацию API, можно будет их добавить на сайт.
 
Енот
Новичо́к, через «о́»
Регистрация
13 Янв 2018
Сообщения
379
#19
@Alisa я спарсил контент с тмдб, кодика и коллапса, у большинства прописан id imdb можно ли для них подгрузить id кинопоиска, а то не могу получить рейтинг с кинопоиска, потому что не указан его ид
 
Думает, что помогает
Регистрация
15 Дек 2017
Сообщения
4,970
#20
@Alisa я спарсил контент с тмдб, кодика и коллапса, у большинства прописан id imdb можно ли для них подгрузить id кинопоиска, а то не могу получить рейтинг с кинопоиска, потому что не указан его ид
Основным должен быть какой-то один ID. Если нужен ID КиноПоиск, то Вы не должны загружать с TMDb.