Страница 1 из 3

[Устарело] Поиск по Кинопоиску

Добавлено: Пт апр 15, 2016 4:33 pm
m-malva
Вдруг кто искал
КиноПоиск. Все фильмы планеты
http://www.kinopoisk.ru
СпойлерПоказать

Код: Выделить всё

$kino=$params['kino'];
$kino = str_replace(' ', '_', $kino);
//Ищем на страничке
$url="http://api.kinopoisk.cf/searchFilms?keyword=".$kino;
//Работаем со строкой JSON
$data = json_decode(file_get_contents($url), true);
    $keyword=$data["keyword"]; // что искали
    $id=$data["searchFilms"][0]["id"]; // ид на кинопоиске
    $nameRU=$data["searchFilms"][0]["nameRU"]; // название в рус
    $description=$data["searchFilms"][0]["description"]; //жанр
    $year=$data["searchFilms"][0]["year"]; 
    $genre=$data["searchFilms"][0]["genre"];
    $rating=$data["searchFilms"][0]["rating"];//рейтинг
    $img="http://st.kp.yandex.net/images/film/".$id.".jpg";
    //Рассказываем о фильме
    say('Найден фильм "'.$nameRU.'" '.$year.' года.',10);
    say($description,10);
    say('Рейтинг фильма '.$rating,10);

 
//скачиваем картинку
$url=$img;
$jpg="./cached/film/".$id.".jpg";
  $dest_file = @fopen($jpg, "w");
  $resource = curl_init();
  curl_setopt($resource, CURLOPT_URL, $url);
  curl_setopt($resource, CURLOPT_FILE, $dest_file);
  curl_setopt($resource, CURLOPT_HEADER, 0);
  curl_exec($resource);
  curl_close($resource);
  fclose($dest_file);

//отправляем картинку в телеграмм
$img='C:/_majordomo/htdocs/cached/film/'.$id.'.jpg';
include_once(DIR_MODULES . 'telegram/telegram.class.php');
$telegram_module = new telegram();
$telegram_module->sendImageToAll($img);

Re: Поиск по Кинопоиску

Добавлено: Ср май 04, 2016 11:23 am
portos
Попробовал данный скрипт в ответ приходит ода и та же картинка и пустой отвеи

Найден фильм "" года.
Рейтинг фильма

Re: Поиск по Кинопоиску

Добавлено: Ср май 04, 2016 4:17 pm
AirKing
Во первых в /htdocs/cached/ создай папку film
во вторых скрипт вызывай с параметром kino к примеру так http://ip_Алисы/objects/?script=kino&kino=matrix

Re: Поиск по Кинопоиску

Добавлено: Ср май 04, 2016 4:50 pm
portos
Естественно, и права и пользователи намести.

Re: Поиск по Кинопоиску

Добавлено: Ср май 04, 2016 5:21 pm
skysilver
portos писал(а):Попробовал данный скрипт в ответ приходит ода и та же картинка и пустой ответ
Тоже попробовал - все работает. Сведения о фильме сначала пишутся в общий чат, а потом дублируются в телеграмм. Картинка сразу засылается в телегу. Единственное, подправил пути в коде сценария, т.к. у меня MjD на линуксе.

Re: Поиск по Кинопоиску

Добавлено: Ср май 04, 2016 5:25 pm
portos
так тоже на linux
Путь поправлен /var/www/cached/film/
но что то идет не так. Где логи смотреть ?

Re: Поиск по Кинопоиску

Добавлено: Ср май 04, 2016 5:32 pm
skysilver
portos писал(а):но что то идет не так
Вставьте после

Код: Выделить всё

$data = json_decode(file_get_contents($url), true);
строчку

Код: Выделить всё

var_dump($data);
Запустите сценарий в браузере. Выдает простыню с найденными фильмами? Вот такую:
СпойлерПоказать

Код: Выделить всё

array (size=4)
  'keyword' => string 'экипаж' (length=12)
  'pagesCount' => int 1
  'searchFilms' => 
    array (size=16)
      0 => 
        array (size=11)
          'id' => string '839818' (length=6)
          'type' => string 'KPFilm' (length=6)
          'nameRU' => string 'Экипаж' (length=12)
          'nameEN' => string '' (length=0)
          'description' => string 'Россия, Николай Лебедев(драма)' (length=55)
          'posterURL' => string 'film_iphone/iphone60_839818.jpg' (length=31)
          'filmLength' => string '2:18' (length=4)
          'year' => string '2016' (length=4)
          'country' => string 'Россия' (length=12)
          'genre' => string 'драма, приключения, триллер' (length=50)
          'rating' => string '8.3 (17 735)' (length=12)
      1 => 
        array (size=11)
          'id' => string '592203' (length=6)
          'type' => string 'KPFilm' (length=6)
          'nameRU' => string 'Экипаж' (length=12)
          'nameEN' => string 'Flight' (length=6)
          'description' => string 'США, Роберт Земекис(триллер)' (length=51)
          'posterURL' => string 'film_iphone/iphone60_592203.jpg' (length=31)
          'filmLength' => string '2:18' (length=4)
          'year' => string '2012' (length=4)
          'country' => string 'США' (length=6)
          'genre' => string 'триллер, драма' (length=26)
          'rating' => string '7.5 (54 984)' (length=12)
      2 => 
        array (size=11)
          'id' => string '41982' (length=5)
          'type' => string 'KPFilm' (length=6)
          'nameRU' => string 'Экипаж' (length=12)
          'nameEN' => string '' (length=0)
          'description' => string 'СССР, Александр Митта(боевик)' (length=53)
          'posterURL' => string 'film_iphone/iphone60_41982.jpg' (length=30)
          'filmLength' => string '2:24' (length=4)
          'year' => string '1979' (length=4)
          'country' => string 'СССР' (length=8)
          'genre' => string 'боевик, триллер, драма' (l

Re: Поиск по Кинопоиску

Добавлено: Ср май 04, 2016 5:49 pm
portos
Так. а по порядку этот код в "Шаблоны поведения" или в "Сценарии" должен быть?

Re: Поиск по Кинопоиску

Добавлено: Ср май 04, 2016 5:56 pm
skysilver
Не имеет особого значения, кому как нравится. У меня вот сценарии, в нем проще отладку делать, запуская сценарий в браузере или в командной строке. Если в сценарии работает, то можно и к шаблонам переходить, - т.е. сначала добиться, чтобы шаблон правильно выделял название фильма из команды, а потом уж запускал сценарий

Код: Выделить всё

runScript('kinopoisk', array('kino'=>$moviename));

Re: Поиск по Кинопоиску

Добавлено: Ср май 04, 2016 6:15 pm
portos
ну вроде гет запросом сценарий отрабатывает.
но все равно вначале лезить та картинка а топом запрашиваемого фильма.