- Added
in_watchlist
property toMovie
,Show
,Season
andEpisode
objects (#45)Trakt.site_url
setter to override automatic detectionHttpClient
now supports direct calls (#43)
- Changed
- Tests are now included in builds, but are excluded from installations
- Fixed
- Issue installing trakt.py when "six" hasn't been installed yet
- Added
Trakt['users'].likes()
methodCustomList.items()
methodComment
objectMedia.index
attribute (list item position/rank)- Basic documentation generation (#29)
NullHandler
to the logger to avoid "No handler found" warnings (#33)
- Changed
- 'movies' and 'shows' interface methods to support the
exceptions=True
parameter (#32) Interface.get_data()
to only parse the response body if the request is successful (#32)
- 'movies' and 'shows' interface methods to support the
- Fixed
TypeError
was raised inSummaryMapper
if the request failed (#30, #31)- Constructing "Special" episodes could raise an
AttributeError
(#38, #39) Media._update()
"images" attribute- Issue serializing
List
objects
- Fixed
- Issue where the "_client" attribute on objects was being serialized
- Issue installing trakt.py when "arrow" isn't available yet
- Added
trending()
method toTrakt['shows']
andTrakt['movies']
interfaces (#23)seasons()
andepisodes()
methods to theTrakt['sync/watchlist']
interface (#26)- Custom lists support (
Trakt['users/*/lists']
,Trakt['users/*/lists/*']
) (#26) __eq__()
method on theRating
classproxies
attribute onTrakt.http
- Changed
datetime
objects are now returned offset-aware (make sure you use offset-aware `datetime` objects when comparing timestamps now)- Force requests to use
ssl.PROTOCOL_TLSv1
connections for https:// (#25) - Return site url from
Trakt['oauth'].authorize_url()
- Use season number from parent when one isn't defined in the episode
- Changes
- Added support for PIN authentication
- Added automatic OAuth token refreshing (see "examples/pin.py" for an example)
- Added
Trakt.configuration.oauth.from_response()
configuration method - Added tests for the
Trakt['oauth']
interface - Added tests to ensure authentication headers are being sent
Trakt['oauth']
methods now raise an exception if you are missing required configuration parametersTrakt['oauth'].token()
method has been renamed toTrakt['oauth'].token_exchange()
(old method is still present for compatibility)
- Fixed
Trakt['oauth']
"_url" methods could raise an exception in some cases
- Changes
- Added unit tests (with travis-ci.org and coveralls.io integrations)
- Added
/movies
,/shows
,/search
and/users/settings
interfaces - Added parent properties ("show", "season")
- Added "images", "overview" and "score" properties to the
Media
class - Added "last_watched_at" property to movies and episodes
- Updated
/sync/playback
interface (to include type filtering) - "progress" and "paused_at" properties are now included in
to_dict()
- Fixed
- "year" property could be returned as a string in some cases
- Catch an exception in
trakt.media_mapper
- Catch a case where
Interface.get_data()
can raise aKeyError: 'content-type'
exception
- Changes
- Updated to use the new v2 API endpoint (api-v2launch.trakt.tv)
- Episode and Movie
to_dict()
method now always returns "plays" as an integer - Added "http.retry_sleep" and "http.timeout" configuration parameters
- Setup travis/coveralls services
- Fixed
- Python 3.x compatibility issues
- Changes
- Added "exceptions" and "parse" parameter to Interface.get_data()
- Added additional error messages (502, 504, 520)
- Renamed media object to_info() method to to_identifier()
- Added new to_dict() method which returns a dictionary representation of the media object
- Request retrying (on 5xx errors) can now be enabled with Trakt.configuration.http(retry=True)
- requests/urllib3 now retries requests on connection errors (default: 3 retries)
- Fixed
- Thread synchronization issue with trakt.core.configuration
- [/sync] last_activities() used an incorrect path
- Catch all response errors to avoid issues parsing the returned body
- Handle a case where [media_mapper] processes an item with an empty "ids" dict
- Switched to manual interface importing to avoid security restrictions
- Convert all datetime properties to UTC
- Allow for charset definitions in "Content-Type" response header
- Display request failed messages in log (with error name/desc)
- Fixed broken logging message
- Properly handle responses where trakt.tv returns errors without a json body
- Re-designed to support trakt 2.0 (note: this isn't a drop-in update - interfaces, objects and methods have changed to match the new API)
- Support for OAuth and xAuth authentication methods
- Simple configuration system
- "title" and "year" parameters are now optional on scrobble() and watching() methods
- [movie] Added unseen() method
- [show/episode] Added unseen() method
- Return None if an action fails validation (instead of raising an exception)
- Added Trakt.configure() method
- Rebuild session on socket.gaierror (workaround for urllib error)
- Fixed bugs sending media actions
- Renamed cancel_watching() to cancelwatching()
- "title" and "year" parameters are now optional on media actions
- [movie] Added seen(), library() and unlibrary() methods
- [movie] Implemented media mapping
- [rate] Added shows(), episodes() and movies() methods
- [show] Added unlibrary() method
- [show/episode] Added library() and seen() methods
- Added @authenticated to MediaInterface.send()
- Fixed missing imports
- Initial release