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
делает, и отправьте им запрос на удаление, так как похоже, что они еще не успели реализовать это, и я уверен, что другие люди также хотели бы иметь этот метод:)