Releases: jemus42/tRakt
tRakt 0.16.0
- Add GitHub actions via
usethis::use_github_actions()
- Use the tidy CI setup via
usethis::use_tidy_ci()
, this bumps the R dependency to>= 3.2
.
Authenticated requests
By default, all requests to the API are now made using authentication if a trakt_client_secret
is set. See ?trakt_credentials()
for details on how to set your credentials.
If no secret is available, unauthenticated requests are made as in previous versions. In this case, you still need either the built-in or your own trakt_client_id
.
OAuth2 support comes with the need to handle secrets, i.e. .httr-oauth
files. This can be a pain with headless/automated setups, which is why I am trying to keep "no auth needed" as the default, as most (implemented) endpoints don't strictly require authentication.
See vignette("Implemented-API-methods", package = "tRakt")
for an overview of implemented methods with an indicator on whether authentication is required (it usually isn't).
New functions
episodes_summary()
[shows/:id/seasons/:season/episodes/:episode
]: Whatseasons_season()
andseasons_summary()
do, but for a single episode. Only really implemented for completeness' sake. Wraps this method.user_profile()
[user/:id
]: Get a user's profile.user_lists()
[users/:id/lists
]: Get all user lists.user_list()
[users/:id/lists/:list_id
]: Get a single list.user_list_items()
[users/:id/lists/:list_id/items/:type
]: Get the items in said lists.
The Renamingering
Rename all the things to snake_case and drop the trakt.
prefix.
This results in (most) functions mapping directly to API endpoints in the form section_method
,
e.g. the API endpoint movies/collected
is handled by function movies_collected()
.
Search
trakt.search
->search_query()
trakt.search.byid
->search_id()
Dynamic Lists
trakt.popular
- ->
movies_popular()
- ->
shows_popular()
- ->
trakt.trending
- ->
movies_trending()
- ->
shows_trending()
- ->
trakt.anticipated
- ->
movies_anticipated()
- ->
shows_anticipated()
- ->
trakt.played
- ->
movies_played()
- ->
shows_played()
- ->
trakt.watched
- ->
movies_watched()
- ->
shows_watched()
- ->
trakt.collected()
- ->
movies_collected()
- ->
shows_collected()
- ->
trakt.updates()
- ->
movies_updates()
- ->
shows_updates()
- ->
Movies
trakt.movies.summary
->movies_summary()
trakt.movies.boxoffice
->movies_boxoffice()
trakt.movies.releases
->movies_releases()
trakt.movies.people
->movies_people()
Shows
trakt.shows.summary
->shows_summary()
trakt.shows.people
->shows_people()
Seasons
trakt.seasons.summary
->seasons_summary()
trakt.seasons.season
->seasons_season()
(It's silly, I know, but oh well)
Ratings
trakt.movies.ratings
->movies_ratings()
trakt.shows.ratings
->shows_ratings()
trakt.seasons.ratings
->seasons_ratings()
trakt.episodes.ratings
->episodes_ratings()
Related
trakt.movies.related
->movies_related()
trakt.shows.related
->shows_related()
Stats
trakt.movies.stats
->movies_stats()
trakt.shows.stats
->shows_stats()
trakt.seasons.stats
->seasons_stats()
trakt.episodes.stats
->episodes_stats()
People
trakt.people.summary
->people_summary()
trakt.people.movies
->people_movies()
trakt.people.shows
->people_shows()
User functions
trakt.user.network
- ->
user_followers()
- ->
user_following()
- ->
user_friends()
- ->
trakt.user.collection
->user_collection()
trakt.user.history
->user_history()
trakt.user.ratings
->user_ratings()
trakt.user.stats
->user_stats()
trakt.user.watched
->user_watched()
trakt.user.watchlist
->user_watchlist()
tRakt 0.15.0
This is a big one, but not 1.0.0 big one I guess.
This is a consolidation release with lots of internal improvements, but for the 1.0.0 I decided to overhaul the structure of the package again, so before I completely break any kind of backwards compatiblity, I thought I'd get this one out.
Consolidation for the people
-
Major refactor of the docs. Sadly, the user will only notice a little more consistency.
-
Consolidate related functions into the same Rd page
-
Centrally document common parameters and reuse them where needed
-
Also consolidate many similar functions by factoring out the relevant bits into more flexible helper functions. In some cases those are exported as well.
-
In the process, some functions where partially renamed (
.show.
->.shows.
,.movie.
->.movies.
) for consistency. -
Rename
get_trakt_credentials
->trakt_credentials
-
Many functions now return much flatter output, notably
*people*
functions. They return alist
withcast
andcrew
objects, which in turn are both flattibbles
.
Features
- Improved search function (
trakt.search
).- If the result has a
year
that isNA
but a searchscore == 1000
, that's probably bad and dropped.
- If the result has a
- Added more of the automated list methods, like most anticipated, most played and most watched items.
- Added
trakt.user.history
for user/:id/history methods
Is this thing still on?
tRakt 0.14.0
Many functions were refactored, which in some cases changes the output.
Not only do most functions return a tibble
now, but some additionally computed variables have been removed as well.
Starting to clean things up with some major housekeeping
usethis::use_*
all the things, basically.- Add a
pkgdown
site and aREADME.Rmd
- Use
codecov
- Apply
styler::style_pkg()
- Update documentation to use markdown
- Redo vignette
- Tests. So many tests.
Less plyr, more purrr
- Completely removed plyr dependency in favor of purrr
Less camelCase for the Greater Good
- Rename
trakt.getEpisodeData
->trakt.get_all_episodes
- Expand handling of
season_nums
argument to make it easier to get all episodes of a show. - Vectorize to enable multiple target input
- Expand handling of
- Rename
trakt.getFullShowData
->trakt.get_full_showdata
Vectorization, Generalization, Bugfixization
v0.12.0
API changes, functional fixes
- Add
dropunaired
param totrakt.seasons.summary
(defaults toTRUE
).- Requires
extended
to be more thanmin
since the requiredaired_episodes
field
is only present with higher levels of detail.
- Requires
- Add
extended
param totrakt.user.f*
- Fix
trakt.user.f*
now returnNULL
when the user is private instead of failing.
Internal changes
- User internal, generalized functions to reduce duplicate code for the following:
trakt.*.popular
trakt.*.related
trakt.*.trending
trakt.*.summary
trakt.*.ratings
Vectorization improvements
- Add multiple target input support (vectorization) for:
trakt.user.f*
functions: Results will berbind
ed together and asource_user
column is appended.trakt.seasons.season
: Soon to maketrakt.getEpisodeData
obsolete.trakt.*.summary
: Forcesforce_data_frame
toTRUE
to enablerbind
ing.trakt.*.related
: Appendssource
column containing respective inputid
.trakt.*.ratings
: Returns result as alist
with each entry containing data for each
show or movie to accommodate thedistribution
variable (data.frame
)trakt.people.summary
: Appendsperson
column withtarget
id.trakt.*.watching
: Returnsdata.frame
withsource
column containing eachtarget
.
v0.11.3
API changes, functional fixes
- Add
build_trakt_url
to ease trakt API URL assembly and reduce duplicate code. - Add
force_data_frame
option totrakt.*.summary
: Forces unnesting. - Rename
trakt.show.stats
totrakt.stats
, will work with both movies and shows
as soon as the API endpoint actually works.
Minor changes
- Expand
@family
tags in docs a little
Some New Stuff, Some Fixed Stuff
v0.11.2
API changes, functional fixes
- Add
trakt.movie.watching
andtrakt.show.watching
: Get trakt.tv users watching. - Add
trakt.movie.releases
: Gets release dates & certifications per movie. - Fix
trakt.search.byid
: Used to only work on shows, now actually works on movies. - Fix
convert_datetime
(internal): improve reliability.
Minor changes
- Fix documentation error in
*.movie.*
functions. - Added tests for new functions
Moving Stuff Around and Calling it Progress
- Internal restructuring (moving functionally similar functions together)
- TODO: Create generic functions for both movie and show functions to reduce duplicate code
- Add
extended
param totrakt.user.watchlist
- Improve consistency between
trakt.user.watched
andtrakt.user.collection
- Rename
slug
toid.slug
- Ensure proper datetime conversion
- Rename
- Fix error in
trakt.user.watchlist
whentype = shows
was ignored by accident
The "People… and also other stuff"-Update
- Rename
trakt.getSeasons
->trakt.seasons.summary
for consistency with the trakt API. - Rename
trakt.show.season
->trakt.seasons.season
for consistency with the trakt API. - Rename
getNameFromUrl
->parse_trakt_url
to be more descriptive. Also, de-camelCasezation. - Update vignette to reflect the above changes
- Add some
people
functions:trakt.people.summary
trakt.people.movies
trakt.people.shows
- Unify output of
trakt.show.people
andtrakt.movie.people
- Add
extended
argument totrakt.movies.related
andtrakt.shows.related
(defaults tomin
) - Add
page
param to paginated functions:trakt.shows.popular
trakt.shows.trending
trakt.movies.popular
trakt.movies.trending
- The usual bug fixes
Consistency is Good. Right?
trakt.user.stats
:- Tidy up rating distribution
- Remove
to.data.frame
option because the output is too messy
- Add another
@family
tag to docs for aggregation functions (.popular
,.trending
,.related
) - Individual functions don't have to warn about missing headers, that's
trakt.api.call
's job. trakt.getEpisodeData
:- Explicitly drop episodes with
NA
firstaired fields - The
episode_abs
field is usuallyNA
, so let's dumpepnum
on it
- Explicitly drop episodes with
- Use
extended = "min"
as default across functions for consistency with the trakt API