Commit graph

328 commits

Author SHA1 Message Date
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
82bd1753e2 Changes from code review 2017-02-07 23:26:58 -05:00
Michael Shepanski
745feabff9 Fix to use _fetchItem instead of _findItem 2017-02-07 02:21:12 -05:00
Michael Shepanski
bc421490db myplex tests passing 2017-02-07 01:58:29 -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
cf99256450 Fix tests 2017-02-04 14:18:10 -05:00
Michael Shepanski
7c766337b6 Remove all references to NA 2017-02-04 12:43:50 -05:00
Michael Shepanski
065a753d77 Merge branch 'master' of github.com:mjs7231/python-plexapi 2017-02-04 03:09:04 -05:00
Michael Shepanski
6e893d8fbf Started work on script to analyze Plex attributes with what we defined in plexapi so we can easily find mismatches 2017-02-04 03:08:47 -05:00
Michael Shepanski
a2cdc97453 Fix tests; comment out a few that were breaking because of timezone aware datetimes; Perhaps converting datetimes to timestamps then comparing the int values will be more reliable. 2017-02-03 11:39:46 -05:00
Michael Shepanski
19d25537a8 Revert hubsearch merge changes to cast() function 2017-02-03 10:25:11 -05:00
Michael Shepanski
0a66414fcd Add ability to dig deeper in the MediaTag search results. For example: Genre.items() will return the list of items for that tag if the key attribute is available 2017-02-03 02:15:41 -05:00
Michael Shepanski
0e7a158836 Cleanup HubSearch code a bit (contribution is awesome); Add a whole bunch of new attributes to server.Server object; Finish documenting server.py 2017-02-03 01:29:19 -05:00
Michael Shepanski
f479b8453b Merge branch 'master' into hub 2017-02-02 22:23:46 -05:00
Michael Shepanski
2a680a18d5 Rollback last pull request 2017-02-02 09:09:34 -05:00
Michael Shepanski
a32f447d13 Merge pull request #94 from mjs7231/Hellowlol-patch-1
fixup after ratingkey was changed to int.
2017-02-02 01:48:38 -05:00
Michael Shepanski
16a55316f1 Bug #74 - getting error on clients 2017-02-02 01:42:12 -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
b5e29fdb28 Add ability to put username, password, baseurl, token into config.ini (make sure you set proper permission on that file); Fix first example in README 2017-02-02 00:49:12 -05:00
Michael Shepanski
cec0ab07e8 Cleanup formatting 2017-02-01 22:53:05 -05:00
Hellowlol
e2efc5f3f2 remove backup files, add .orgin to gitignore
- delete .travis....
2017-02-01 22:41:41 +01:00
Hellowlol
d19d602455 revert NA to _NA so its still compat with the tests.
- this allows for casting str and check for __NA__ in addition to is
instance.
- some indentation fixes
2017-02-01 22:32:00 +01:00
Hellowlol
e06f6250a3 mroe cov 2017-02-01 20:55:08 +01:00
Hellowlol
bbcefe2d53 add client base. 2017-02-01 20:49:13 +01:00
Hellowlol
5562108472 remove 2017-02-01 20:49:12 +01:00
Hellowlol
a72dd6256a more cov 2017-02-01 20:49:11 +01:00
Hellowlol
19506e272d more cov 2017-02-01 20:46:53 +01:00
Hellowlol
5ddf9a0ace oh loard 2017-02-01 20:45:54 +01:00
Hellowlol
7e9bd51d55 testing testing, 1, 2, 3. 2017-02-01 20:41:20 +01:00
Michael Shepanski
5f9c230dce Add missing swigglies 2017-01-30 23:48:21 -05: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
Michael Shepanski
e873d857c9 Only replace on string_types 2017-01-26 01:44:55 -05:00
Michael Shepanski
d357b3e628 Hide secrets (X-PLEX-TOKEN) in logging by default; Set the config value logging.show_secrets = true in your config file to re-enable this 2017-01-26 01:33:01 -05:00
Michael Shepanski
6e60d1107d Optional environment variable PLEX_CONFIG_PATH if you want something other than the default 2017-01-26 00:43:19 -05:00
Michael Shepanski
355f4686c9 Finish documenting utils.py 2017-01-26 00:25:13 -05:00
Michael Shepanski
b61d1888b4 Finished documenting library.py 2017-01-25 23:21:13 -05:00
Michael Shepanski
706b974b05 Finished updating socs for client, config, exceptions 2017-01-23 00:15:51 -05:00
Michael Shepanski
db18f2640f Remove watched filters for audio; It doesn't make sense 2017-01-22 01:39:47 -05:00
Michael Shepanski
5ba1c4df8e Finish updating audio.py for Sphinx docs 2017-01-22 01:37:39 -05:00
Michael Shepanski
07e9bbd1ab Finished updating myplex documentation for Sphinx 2017-01-22 00:19:52 -05:00
Michael Shepanski
df59247741 Merge branch 'master' of github.com:mjs7231/python-plexapi 2017-01-21 23:07:35 -05:00
Michael Shepanski
c684552792 Started work on better documentation 2017-01-21 23:06:55 -05:00
Hellowlol
7472fd7238 See https://github.com/mjs7231/python-plexapi/pull/93 2017-01-17 08:55:48 +01:00
Hellowlol
114cb1dc89 fixup after ratingkey was changed to int. 2017-01-17 08:48:57 +01:00
Michael Shepanski
0c3ad6b6ac Sphinx docs are on their way. 2017-01-10 01:54:19 -05:00
Michael Shepanski
8eb8d4c709 Start working on Sphinx Docs 2017-01-09 01:35:29 -05:00
Michael Shepanski
35ea5ae18a Much cleaner test layout; Move test config to config.ini 2017-01-08 23:40:39 -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
1abb1456f8 Inital hub. 2017-01-04 00:00:28 +01:00
Hellowlol
e94c92bada fix my mess. 2017-01-02 23:38:19 +01:00
Hellowlol
04d2a4b6d7 Merge pull request #88 from Hellowlol/omg
Fix all, fix thumb.
2017-01-02 22:53:01 +01:00
Hellowlol
9826cc1a4b Merge pull request #87 from WyseNynja/master
cast viewCount to int
2017-01-02 22:31:16 +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
Bryan Stitt
b864cd3b45 case viewCount to int 2016-12-31 15:16:31 -08:00
Hellowlol
7c04305b29 Fix bug after ratingKey was made int. 2016-12-21 14:17:28 +01:00
Hellowlol
1bcc650c8e client ffs. 2016-12-17 02:09:01 +01:00
Hellowlol
3839b9f2d8 autopep 2016-12-17 00:51:16 +01:00
Hellowlol
740e7a5b9b f 2016-12-17 00:38:08 +01:00
Hellowlol
8d05808236 f 2016-12-16 01:22:18 +01:00
Hellowlol
21f376051c s 2016-12-16 01:17:02 +01:00
Hellowlol
f0bf9117cc more 2016-12-16 00:55:48 +01:00
Hellowlol
42003d61bd fix a small bug, start on docs strings 2016-12-16 00:06:12 +01:00
Michael Shepanski
ff62e38910 Merge pull request #67 from logaritmisk/add-fields
Added Field tag to Video.
2016-11-03 23:21:37 -04:00
Chris Hamilton
bc44161f86 Adding PlexApiException as a base exception for all other python-plexapi exceptions. 2016-10-19 11:39:18 -04:00
logaritmisk
1cb35da6f1 Added Field tag to video. 2016-10-02 22:05:37 +02:00
Michael Shepanski
db089156ac Up version for pip 2016-07-07 23:39:48 -04:00
Michael Shepanski
98671d7e79 Add missing section() function to Photo object; Work on showing photos on client (not working yet) 2016-07-07 22:41:11 -04:00
Michael Shepanski
322ac63130 Minor updates for release to pip 2016-05-23 22:13:26 -04:00
Michael Shepanski
3d28b5309e Recently added is missing from LibrarySection #58 2016-05-23 21:41:02 -04:00
Michael Shepanski
0c8587ceac Option to include paused content when requesting is media is playing. 2016-05-23 19:33:56 -04: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
5701af7ed4 Ability to play playlists 2016-04-13 22:36:12 -04:00
Michael Shepanski
ba9eab0229 Minor bugfixes 2016-04-12 23:52:47 -04:00
Michael Shepanski
e5fc43a85f Fix thing I broke 2016-04-12 23:26:04 -04:00
Michael Shepanski
c75db1df10 Fix broken utils.searchType() 2016-04-12 22:55:45 -04:00
Michael Shepanski
1a679411dc Ability to list all albums; Fix setting object values when not found (NA) and we know its the full object 2016-04-12 22:47:46 -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
09a7ae80db Basic support for photos complete 2016-04-09 23:59:47 -04:00
Michael Shepanski
81e22147c0 Get examples working again; Add new examples most_streamed_titles and most_active_users 2016-04-07 22:48:45 -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
610bf16ce3 Client control via proxy working; Re-enable control via proxy tests 2016-04-05 23:32:49 -04:00
Michael Shepanski
a30f9a73a5 Add comments 2016-04-05 22:30:18 -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
3889c49b30 Add new missing items to MyPlexAccount 2016-04-03 22:46:25 -04:00
Michael Shepanski
84a6999ed7 Ability to directly create a PlexClient object (without needing a PlexServer object); Cleaned up MyPlex code; Removed duplicated Client navigation code from myplex (everything uses PlexClient now) 2016-04-02 02:19:32 -04:00
Michael Shepanski
7bb700d395 New test for client.timeline(); Fix bug in missing proper headers for timeline 2016-03-31 23:39:09 -04:00
Michael Shepanski
7bce1c4b32 Add note to library.search() that its basically not tested. 2016-03-31 18:39:08 -04:00
Michael Shepanski
d63339bd24 Cleanup search a bit; Get existing tests passing and add a few new search tests 2016-03-31 18:36:54 -04:00
Michael Shepanski
b10faf8560 Checkpoint: New implementation for search 2016-03-31 16:52:48 -04:00
Michael Shepanski
03469a7f55 Cleanup playback commands; Remove proxy tests, it needs a bit more expirimentation 2016-03-24 22:36:25 -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
a0cfaafb68 Initial cleanup of playlist support; getStreamURL not working; Needs tests 2016-03-21 23:52:58 -04:00
Michael Shepanski
5763db2c4d Merge dev 2016-03-21 23:19:52 -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
bd07a16d6e Cleaner name for _NA 2016-03-17 01:15:58 -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
cc58b87c9b Default to always use a session 2016-03-15 23:53:04 -04:00
Michael Shepanski
c76c69cb93 Convenience function to reset_base_headers is overriding X_PLEX headers 2016-03-15 23:47:13 -04:00
Michael Shepanski
3fe228bbb9 Checkpoint: Work on client code a bit 2016-03-15 22:56:06 -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
8c82651ce1 Level for a media object might not always be an integer 2016-03-14 22:28:21 -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
Michael Shepanski
4399bc6190 Minor cleanup after merging pull request 2016-03-14 22:20:02 -04:00
Michael Shepanski
443d1e76d8 Merge pull request #41 from havardgulldahl/master
Add support for Plex Audio
2016-03-14 22:07:05 -04:00
Michael Shepanski
63892f092f Merge pull request #40 from abibouba/master
Add original title
2016-03-14 22:04:18 -04:00
Michael Shepanski
649dcf2cfd Implement __eq__ for NA; Test apostrophe in titles; Test fetching detailed metadata (using NA) 2016-03-14 00:19:48 -04:00
Håvard Gulldahl
1299c1811f Add support for Plex Playlists to server.py. Introduces the method PlexServer.playlists() 2016-02-03 19:17:09 +01:00
Håvard Gulldahl
42364b09b9 add list_items() method to list playlists and return Playlist objects 2016-02-03 19:16:39 +01:00
Håvard Gulldahl
6a99e1ef49 Add initial support for Plex Playlists 2016-02-03 19:07:53 +01:00
Håvard Gulldahl
b51d7548b5 Read .parentTitle element for class Track 2016-01-31 02:04:51 +01:00
Håvard Gulldahl
b6569dc6a3 Add preliminary session support 2016-01-30 00:13:57 +01:00
Håvard Gulldahl
382a4f45aa Add year attribute to albums 2016-01-30 00:02:00 +01:00
Håvard Gulldahl
ec8c20d0fa We need this fix to make sure .reload() doesn't pull the wrong objects from the server 2016-01-29 22:51:01 +01:00
Håvard Gulldahl
0229226448 add .searchAudio method to PlexServer, to specifically search for audio 2016-01-28 13:09:36 +01:00
Håvard Gulldahl
e437e857cd add titleSort for Artist 2016-01-28 13:08:57 +01:00
Håvard Gulldahl
36b7252742 Get metadata like .media and .genres 2016-01-26 19:10:35 +01:00
sebastientrosset
72ce96f987 Add original title 2016-01-19 21:38:08 +01:00
Håvard Gulldahl
23874f4555 Don't bother with extra metadata just yet 2016-01-19 14:28:35 +01:00
Håvard Gulldahl
f6a1f37a9a Be media agnostic in server.search()
In the long run we should probably merge the audio and video code paths
2016-01-19 11:59:00 +01:00
Håvard Gulldahl
668d5f67f1 Flesh out a .search() method for the MusicSection
This is more of a hack than a long run solution. We really should merge
the video and audio search code paths.
2016-01-19 11:58:10 +01:00
Håvard Gulldahl
9896965efa Remember to import new audio class in libary.py 2016-01-19 11:57:20 +01:00
Håvard Gulldahl
3ca226e897 Fix build_item() to deal with audio 2016-01-19 11:56:46 +01:00
Håvard Gulldahl
0b9509da27 Fix url endpoint of .getSTreamUrl() 2016-01-19 11:56:34 +01:00
Håvard Gulldahl
1c1592ec29 Add proper metadata for Audio, Artist and Track 2016-01-19 11:56:16 +01:00
Håvard Gulldahl
a50c9457af Rename .search() to .searchVideo, but keep the API for now
getting ready to add code to search both video and audio, but keep old
functionality intact for now
2016-01-19 10:53:10 +01:00
Håvard Gulldahl
9ca97c5fac Add searchAudio() method to Library
It will only search for audio content (Track, Album, Artist)
2016-01-19 10:50:31 +01:00
Håvard Gulldahl
1e28eebbf6 Add MusicSection,
with .search(), .searchAlbums() and .searchTracks() methods
2016-01-19 10:41:12 +01:00
Håvard Gulldahl
bbc6a036fb A naive copy of video.py, adding Album, Artist and Track classes 2016-01-19 10:31:45 +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
e34f8cdbd4 Minor cleanup 2015-11-04 22:57:08 -05:00
Michael Shepanski
28081a23ba Merge pull request #27 from adrienbrault/devices
Get devices and implement play/navigation control
2015-11-04 22:54:44 -05: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
0fc4202e75 Up version number 2015-10-02 09:21:39 -04:00
Michael Shepanski
9dd520d032 Fix merge conflict 2015-10-02 09:18:44 -04:00
Adrien Brault
5e77480611 Get devices and implement play/navigation control 2015-09-29 21:34:04 +02: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
8c0abf0b36 Update version 2015-08-30 21:00:44 -04:00
Michael Shepanski
b2c9a29d1e Update timeline() to use server.query to include proper headers and timeout 2015-08-30 20:59:25 -04:00
Michael Shepanski
457046f174 Convert filter back to list to make Python3 happy 2015-06-17 22:39:57 -04:00
Michael Shepanski
ad4be508a1 Bump minor revision number 2015-06-15 20:54:31 -04:00
Michael Shepanski
6b21d856d3 Fix for issue #19: Connecting to main acount from a remote location failed 2015-06-15 19:55:12 -04:00
Michael Shepanski
dad550fc5f Lets call this 1.0.0 2015-06-14 22:45:51 -04:00
Michael Shepanski
7daa127603 All example and tests working; A few minor changes in the api provided by plex required some rejiggering 2015-06-14 22:45:22 -04:00
Michael Shepanski
f2f8306a65 Test SSL and non-SSL connections when connecting to server 2015-06-09 00:17:55 -04:00
Michael Shepanski
bfec0496ef Fix / in playQueues; Update iphone-name 2015-06-08 22:19:20 -04: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
69e0abd50c Fix Bug-13 - getStreamUrl produces a malformed URL; Cleanup logging if logfile is not defined 2015-06-04 10:43:50 -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
eb1e508638 Update version and homepage. 2015-03-09 00:28:32 -04:00
Michael Shepanski
edb29fa0d7 Include plex token on all urls 2015-02-23 22:42:29 -05:00
Michael Shepanski
0489efdb1f Search by hostname or ip as well 2015-02-20 15:06:41 -05:00
Michael Shepanski
699843f150 Updates to work with Python3 2015-02-17 15:35:17 -05:00
gz
b6e063c702 Fixed a typo caused by a naming convention refactor 2014-12-30 22:43:40 +02:00
Michael Shepanski
352696147e Move from Bitbucket 2014-12-28 22:21:58 -05:00