Rails TMDB API Обзор, чтобы найти

TMDB.org недавно внес изменения в их API, что исключает возможность browseих база данных. В моем приложении Rails использовался гем tmdb-ruby для просмотра базы данных TMDB, но этот гем работал только с v2.0 API, который теперь не существует.

TMDB.org рекомендует использовать этот драгоценный камень, и, поскольку он разветвлен из драгоценного камня, который я использовал ранее, он делает его немного легче.

Моя база данных PostgreSQL уже заполнена данными, импортированными из TMDB, когда версия 2.0 все еще существовала и когда я мог использовать browse особенность.

Как теперь я могу использовать функцию поиска (например: @movie = TmdbMovie.find(:title => "Iron Man", :limit => 1)) найти случайный фильм, не предоставляя название фильма.

Это мой файл рейка, который работал со старым гемом.

Я хотел бы знать, как заставить его работать так же, но используя find вместо browse,

Спасибо

1 ответ

Решение

Я не думаю find это то, что вам нужно для того, чтобы получить то, что вы хотите (получить самые старые фильмы в базе данных и перейти к новейшему фильму). Глядя на документацию по TMDb API, похоже, что они теперь discover которые могли бы заменить browse что вы использовали

Я не вижу discover где-нибудь в форке ruby-tmdb Irio, но похоже, что большинство конкретных методов, которые у них есть (например, TmdbMovie.find), вызывают универсальный метод Tmdb.api_call.

Вы должны быть в состоянии использовать универсальный метод, чтобы сделать что-то вроде:

api_return = Tmdb.api_call(
  "discover/movie", 
  {
    page: 1, 
    sort_by: 'release_date.asc',
    query: '' # Necessary because Tmdb.api_call throws a nil error if you don't specify a query param value
  }, 
  "en"
)
results = api_return["results"]

results.flatten!(1)
results.uniq!
results.delete_if &:nil?

results.map!{|m| TmdbMovie.new(m, true)} # `true` tells TmdbMovie.new to expand results

Если это сработает, вы можете даже разветвить Irio, реализовать TmdbMovie.discover метод поддержки всех вариантов и обработки крайних случаев, таких как TmdbMovie.find делает, и отправьте им запрос на удаление, так как похоже, что они еще не успели реализовать это, и я уверен, что другие люди также хотели бы иметь этот метод:)

Другие вопросы по тегам