Commit graph

304 commits

Author SHA1 Message Date
Ty Hahn
37727a69ed Add rate function to video 2019-08-07 05:45:21 +09:00
Peter Brink
4339626800 added collection to show object for tagging 2019-05-29 02:52:50 -04:00
gstacks13
77b1ee721d Get season from index instead of creating title 2019-02-21 11:56:51 -06:00
Michael Shepanski
e6ca501610
Merge pull request #339 from gstacks13/fix_show_season_0
Fix Show.season(0) not returning 'Specials'
2019-02-11 09:16:39 -05:00
gstacks13
433e4c402a Fix show.episode() not allowing season 0 2019-02-10 14:45:13 -06:00
gstacks13
58862b74ba Fix Show.season(0) not returning 'Specials' 2019-02-07 02:24:00 -06:00
David Roizenman
3719d4b599 Fix spelling of "original" 2019-01-07 08:04:53 -05:00
Andrey Yantsen
7a67417615 fix docs for Raises clauses 2018-10-03 11:09:43 +01:00
Andrey Yantsen
68fc970d7a Improvements in tests process (#297)
* lets begin

* skip plexpass tests if there is not plexpass on account

* test new myplex attrubutes

* bootstrap: proper photos organisation

* fix rest of photos tests

* fix myplex new attributes test

* fix music bootstrap by setting agent to lastfm

* fix sync tests

* increase bootstrap timeout

* remove timeout from .travis.yml

* do not create playlist-style photoalbums in plex-bootstraptest.py

* allow negative filtering in LibrarySection.search()

* fix sync tests once again

* use sendCrashReports in test_settings

* fix test_settings

* fix test_video

* do not accept eula in bootstrap

* fix PlexServer.isLatest()

* add test against old version of PlexServer

* fix MyPlexAccount.OutOut

* add flag for one-time testing in Travis

* fix test_library onDeck tests

* fix more tests

* use tqdm in plex-bootstraptest for media scanning progress

* create sections one-by-one

* update docs on AlertListener for timeline entries

* fix plex-bootstraptest for server version 1.3.2

* display skip/xpass/xfail reasons

* fix tests on 1.3

* wait for music to be fully processed in plex-bootstraptest

* fix misplaced TEST_ACCOUNT_ONCE

* fix test_myplex_users, not sure if in proper-way

* add pytest-rerunfailures; mark test_myplex_optout as flaky

* fix comment

* Revert "add pytest-rerunfailures; mark test_myplex_optout as flaky"

This reverts commit 580e4c95a7.

* restart plex container on failure

* add conftest.wait_until() and used where some retries are required

* add more wait_until() usage in test_sync

* fix managed user search

* fix updating managed users in myplex

* allow to add new servers to existent users

* add new server to a shared user while bootstrapping

* add some docs on testing process

* perform few attemps when unable to get the claim token

* unlock websocket-client in requirements_dev

* fix docblock in tools/plex-teardowntest

* do not hardcode mediapart size in test_video

* remove cache:pip from travis

* Revert "unlock websocket-client in requirements_dev"

This reverts commit 0d536bd06d.

* remove debug from server.py

* improve webhook tests

* fix type() check to isinstance()

* remove excessive `else` branch due to Hellowlol advice

* add `unknown` as allowed `myPlexMappingState` in test_server
2018-09-14 20:03:23 +02:00
Andrey Yantsen
54b26fdc25 Sync support (#282)
* [sync] initial commit

* fix populating of `state` field in sync.Status

* [connection] add posibliity to return first established connection faster

* [base] add timeout argument to PlexObject.fetchItems()

* [sync] add timeout arg to SyncItem.getMedia()

When you have multiple media within one SyncItem it takes a lot of time
to get all the info for this media (on my machine it takes about a
second for each movie).

* [sync] fix marking media as downloaded

* [sync] pass clientIdentifier to created SyncItem()

* [sync] override __repr__() for sync.Status

* fix after @mikes-nasuni`s review

* fix python2 compatibility

* get rid of sync.init()

* use list comprehension

* remove timeout from PlexObject.fetchItems()

* fix SyncItem under python 2.7

* fix __doc__ in sync module

* revert myplex._connect() back to it`s original state

* improve sync docs

* get rid of PlexObjects where not needed

* add X-Plex-Sync-Version=2 to headers

* add sync() method into Video, LibrarySection and MyPlexAccount

* add SyncItem.delete()

* add sync.Policy.create()

* use self._default_sync_title instead of _prettyfilename as default title

* let the tests begin

* add items for refreshing synclists to PlexServer

* fix sync tests

* sync for everybody!

* add TODO doctring for Audio._defaultSyncTitle()

* SyncItems tag may be presented only once, there is no need for loop

* add more TODO docstrings

* hello docs

* remove relative import

* remove unused variable from tests/test_sync.py
2018-09-08 17:25:16 +02:00
Hellowlol
f6aa27eb83 ffs 2018-03-02 20:13:51 +01:00
Hellowlol
a322574dc6 WTF. why is a key in history None?? 2018-03-02 20:13:38 +01:00
Hellowlol
30ec806536 fix some docs. 2018-03-02 18:43:31 +01:00
Hellowlol
eb337ce585 Add support for similar for tvshows and movies. 2018-03-02 18:27:57 +01:00
Hellowlol
bb55a00f52 really need to sanity check on this one.. 2018-03-02 17:08:10 +01:00
Hellowlol
9d364e4860 init chapters. 2018-03-02 13:15:15 +01:00
Hellowlol
a51d0225d1 Remove style error enforced by travis. 2018-02-22 12:36:31 +01:00
Hellowlol
807d833ceb move update progress so we can use it on music. 2018-02-22 12:29:39 +01:00
David Van Loon
f5af5d0e10
Add updateProgress function to Video 2018-02-17 23:32:29 -06:00
Michael Shepanski
61ede66ad5 Dont include token in URLs unless show_secrets set in config; All functions that return a URL such as stream urls and thumbnails still include token 2018-01-04 21:44:35 -05:00
Hellowlol
d3e4c63dd4 add url method, artUrl
change reload waning to debug.
2017-11-08 22:01:53 +01:00
Michael Shepanski
973e5558ee Merge pull request #211 from pkkid/add_missing_label_tvshow
Add missing labels to cls show
2017-10-11 23:26:22 -04:00
Hellowlol
e402c3227b make media iterable.
they will yield the next lower level. so a show will iter a season a
season will yield a episode etc.
2017-10-09 16:07:09 +02:00
Hellowlol
ef7b631e82 Add missing labels to cls show 2017-10-09 15:40:46 +02:00
Michael Shepanski
8507c603b4 Update video.py 2017-09-29 12:11:14 -04:00
Michael Shepanski
67c859d584 Update video.py 2017-09-29 12:10:55 -04:00
tdorsey
e0a213c5e4 Fix TypeError when viewCount is not set
Fixes #190
2017-09-28 06:43:49 -04:00
Nitemare
acdff9baa6 Update video.py
Undoing my error, not sure if this is necessary
2017-09-16 00:05:28 -03:00
Nitemare
e648f0d40b Update video.py
Adding seasonEpisode method that is listed in the documentation, but not in actually implimented
2017-09-15 23:19:33 -03:00
Nitemare
133d2f42ce Update video.py
Adding title and parentTitle to Episode variables (Lines 475 & 476)
2017-09-15 23:06:00 -03:00
Hellowlol
5d60f69610 rating should be a float, this slipped thru the cracks. 2017-08-20 22:30:50 +02:00
Hellowlol
72094fce40 More tests fixes 2017-08-18 21:44:40 +02:00
Michael Shepanski
d7276e2e82 Add tqdm requirement; Display download status in plex-download 2017-08-14 23:40:28 -04:00
Hellowlol
5bfa96b49c Add missing labels and collections from the classes 2017-07-22 01:07:31 +02:00
Michael Shepanski
650a88d638 Started movinf client tests into Pytest framework 2017-05-12 23:25:57 -04:00
Michael Shepanski
43444459e3 Tighten up download code a bit; downloadLogs and DownloadDatabases were reversed (oops) 2017-02-26 23:59:46 -05:00
Michael Shepanski
cd1a05d770 Make flake8 happy 2017-02-20 00:37:00 -05:00
Hellowlol
c7c04d2a42 Add indexes. Closes https://github.com/pkkid/python-plexapi/issues/121 2017-02-18 01:51:06 +01:00
Michael Shepanski
12406082ec Choose Closest Thumbnail for Audio Tracks #102 2017-02-15 00:13:22 -05:00
Michael Shepanski
de69ace19f Go over documentation a bit more; This will never end. 2017-02-13 23:32:27 -05:00
Michael Shepanski
fc1c10e554 Finish documenting video 2017-02-13 14:38:40 -05:00
Michael Shepanski
c0958a0edc only auto-connect to clients is baseurl and token passed 2017-02-13 01:37:23 -05:00
Michael Shepanski
9052cf7be2 Remove findLocations util function; All locations plural; Fix tests 2017-02-12 22:33:38 -05:00
Michael Shepanski
4b8f82291b Remove findLocations util function 2017-02-12 22:15:47 -05:00
Michael Shepanski
9b791b95e7 Add TAG constant to PlexObjects; Better method to save and build PLEXOBJECTS; All objects in media.py are now registered and can be looked up; Remove __len__ on Library class (it was causing URL to load twice). 2017-02-12 21:55:55 -05:00
Michael Shepanski
08e61960e7 Move common methods to PlexPartialObject; More documentation 2017-02-09 15:01:23 -05:00
Michael Shepanski
6fa7c12c48 Implement fetchItem filters; All tests passing? 2017-02-09 01:54:38 -05:00
Michael Shepanski
5443711b90 Make _query and _url public methods since we use it as such 2017-02-08 23:29:17 -05:00
Michael Shepanski
83a8c5733e Rename _root back to _server but keep it private 2017-02-08 23:13:54 -05:00
Michael Shepanski
76c0cb55a1 Rename variable to kwargs 2017-02-08 23:08:25 -05:00
Michael Shepanski
f676d4cbbf Most tests passing; Need to add better filters on fetchItems for watched / unwatched 2017-02-08 02:00:43 -05:00
Michael Shepanski
e3abfeeb0f Audio tests passing 2017-02-08 00:36:22 -05:00
Michael Shepanski
745feabff9 Fix to use _fetchItem instead of _findItem 2017-02-07 02:21:12 -05:00
Michael Shepanski
8212ca9c46 Much more stability from yesterday; Easier to use fetchItem funtions; Common __repr__ for all plexobjects; Fix all uses if listItems 2017-02-07 01:20:49 -05:00
Michael Shepanski
4624512356 A few more updates to get plexattrs.py fully running 2017-02-06 01:28:58 -05:00
Michael Shepanski
6a35f50a43 CHECKPOINT: Lots going on; Added new base class PlexObject that everything inherits from, this ensures all constructors are similar; Lots of work on new tool plexattrs that parses a full Plex library to find differences in attributes plexapi implements and what the Plex XML API offers up; Tests will most definetly be broken at this point, but I wanted to save my work. 2017-02-05 23:52:10 -05:00
Michael Shepanski
fc28f7c1e6 Move Playable and PlexPartialObject to new plexapi.base module 2017-02-04 14:46:51 -05:00
Michael Shepanski
7c766337b6 Remove all references to NA 2017-02-04 12:43:50 -05:00
Michael Shepanski
0aac1156a1 Add offset as optional playMedia() argument; Document it; Clenaup old tests as its the only way to test client actions right now 2017-02-02 01:32:38 -05:00
Michael Shepanski
cec0ab07e8 Cleanup formatting 2017-02-01 22:53:05 -05:00
Hellowlol
a72dd6256a more cov 2017-02-01 20:49:11 +01:00
Hellowlol
7e9bd51d55 testing testing, 1, 2, 3. 2017-02-01 20:41:20 +01:00
Michael Shepanski
04251d3805 Finish documenting Photo; Monkey-patch sphinx to not auto-link to unknown types; Remove links to ElementTree (not our code) 2017-01-30 23:44:03 -05:00
Hellowlol
169f208e87 Fix review comments,
prettier repr for season, and episode
2017-01-05 22:58:43 +01:00
Hellowlol
995e98f785 Suggestion for episode 2017-01-04 21:41:09 +01:00
Hellowlol
3aa4208d8b fix rebase 2017-01-02 22:19:07 +01:00
Hellowlol
1075f65bb4 Moredocs (#84)
* Docs and speedups.
2017-01-02 22:06:40 +01:00
Hellowlol
740e7a5b9b f 2016-12-17 00:38:08 +01:00
logaritmisk
1cb35da6f1 Added Field tag to video. 2016-10-02 22:05:37 +02:00
Michael Shepanski
36b5d12a19 Add back missing index value from Show,Season,Episode; Make season numbers a bit easier to fetch 2016-05-19 23:42:06 -04:00
Michael Shepanski
748fc68406 Cleanup playlist support; Fix UUID on URLs; Better method to store listTypes; Cache section IDs in library 2016-04-11 22:43:21 -04:00
Michael Shepanski
3138ad1087 Added playlist support 2016-04-10 23:49:23 -04:00
Michael Shepanski
80529a21c7 Rename MyPlexUser to MyPlexAccount; Add support for real MyPlexUsers; Add api for history; New tests for sessions() and history() 2016-04-07 01:39:04 -04:00
Michael Shepanski
50ac2f55e5 Create Playable object to put function specific to media that is playable like getStreamURL etc.. 2016-04-03 23:55:29 -04:00
Michael Shepanski
e81f2506e9 Move _find function from PlexPartialObject to generic utility functions 2016-04-03 23:17:29 -04:00
Michael Shepanski
b277facf10 Revisit client code; Add more testing around clients; Still cant get playback working through server proxy, but it works directly 2016-03-24 02:20:08 -04:00
Michael Shepanski
fbaa89933e I missed deleting an old occurance of getStreamURL 2016-03-22 23:42:04 -04:00
Michael Shepanski
bcf01fdcdf Move getStreamURL to PlexPartialObject; Remove duplicated code; Add getStreamURL tests (doesnt actualy test the stream works tho) 2016-03-22 23:38:06 -04:00
Michael Shepanski
a999df8e94 Audio support complete; Added more audio tests; renamed is_watched to isWatched 2016-03-21 23:12:12 -04:00
Michael Shepanski
d4e8bdba70 Checkpoint: Adding Audio support; Cleanup attribute definitions to only include what the Plex objects actually include. 2016-03-21 00:26:02 -04:00
Michael Shepanski
2e2ea93982 Cleanup imports; force registration of audio/video libtypes 2016-03-17 01:14:31 -04:00
Michael Shepanski
276ba26b77 Create registry of library items we may see in xml; Cleanup how we handle build_item and list_items 2016-03-17 00:51:20 -04:00
Michael Shepanski
fd83cbab8a Cleanup Audio/Video search at the server & library level. Start testing audio a bit more 2016-03-15 14:36:59 -04:00
Michael Shepanski
abb3fd901d Merge pull request #34 from bramwalet/patch-1
Update video.py: self.key already contains slash
2016-03-14 22:20:18 -04:00
sebastientrosset
72ce96f987 Add original title 2016-01-19 21:38:08 +01:00
Adam Charrett
98ce3f0149 Fix missing check for None in __eq__ 2015-12-05 22:16:48 +00:00
bramwalet
bd47ea157d Update video.py: self.key already contains slash
self.key already contains a leading slash therefore this call to the Plex server will fail with 404 not found.
When the slash from the query location is removed, the call will succeed.
2015-11-22 12:55:50 +01:00
Michael Shepanski
430fb25658 Add is_watched property; Fix python3 bug in examples 2015-11-04 22:49:09 -05:00
Michael Shepanski
1c27b9afb6 Merge branch 'master' of https://github.com/mjs7231/python-plexapi 2015-11-04 21:10:13 -05:00
Michael Shepanski
4e3f178dcb Add transcodeSession information to playing Video 2015-11-04 21:10:10 -05:00
Steven Smith
471a51d265 Plex needs the refresh to be a PUT request
Otherwise you get `plexapi.exceptions.BadRequest: (405) method_not_allowed`
2015-10-29 02:16:00 +08:00
Michael Shepanski
9dd520d032 Fix merge conflict 2015-10-02 09:18:44 -04:00
Jonathan Jordan
8b297109e2 Added protocol parameter to getStreamUrl for iOS/Quicktime support 2015-09-24 23:02:42 -04:00
Toomas Uudisaru
a03d67cfb4 Python3 fixes / urllib, printing, dict access
Python 3 fixes (compatible with Python 2):
- use urllib.parse module for quote() and urlencode() instead of urllib
- printing using parenthesis
- dict access: items() instead of iteritems(), keys() converted to list
- filter(): convert results to list
2015-09-05 17:09:15 +03:00
Michael Shepanski
1055917750 Merge dev 2015-06-08 12:43:15 -04:00
Michael Shepanski
433e0a18b4 Add support for SSL 2015-06-08 12:41:47 -04:00
Michael Shepanski
05ef43bddc Raise exception if trying to get streamURL for Show or Season 2015-06-04 10:55:30 -04:00
Michael Shepanski
527b0ee323 Add Video.getStreamURL() 2015-06-04 00:00:37 -04:00
Michael Shepanski
739feffc43 Get list of watched/unwatched episodes from Season or Show 2015-06-01 22:55:20 -04:00
Michael Shepanski
43e99e94ef Read all headers, logging, and core settings from config file; Add Show.refresh() method 2015-06-01 22:28:50 -04:00
Michael Shepanski
c5eee64030 Read all headers, logging, and core settings from config file; Add Show.refresh() method 2015-06-01 22:27:43 -04:00
Michael Shepanski
edb29fa0d7 Include plex token on all urls 2015-02-23 22:42:29 -05:00
Michael Shepanski
699843f150 Updates to work with Python3 2015-02-17 15:35:17 -05:00
Michael Shepanski
352696147e Move from Bitbucket 2014-12-28 22:21:58 -05:00