plexutil 3.4.1__tar.gz → 3.5.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (86) hide show
  1. {plexutil-3.4.1 → plexutil-3.5.0}/PKG-INFO +8 -13
  2. {plexutil-3.4.1 → plexutil-3.5.0}/README.md +7 -12
  3. {plexutil-3.4.1 → plexutil-3.5.0}/git-hooks/pre-commit +1 -1
  4. {plexutil-3.4.1 → plexutil-3.5.0}/init.sh +2 -0
  5. {plexutil-3.4.1 → plexutil-3.5.0}/pyproject.toml +1 -1
  6. {plexutil-3.4.1 → plexutil-3.5.0}/src/plexutil/core/prompt.py +1 -1
  7. {plexutil-3.4.1 → plexutil-3.5.0}/src/plexutil/graphical/selection_window.py +4 -1
  8. {plexutil-3.4.1 → plexutil-3.5.0}/src/plexutil/util/file_importer.py +4 -1
  9. {plexutil-3.4.1 → plexutil-3.5.0}/src/plexutil.egg-info/PKG-INFO +8 -13
  10. {plexutil-3.4.1 → plexutil-3.5.0}/.github/workflows/python-publish.yml +0 -0
  11. {plexutil-3.4.1 → plexutil-3.5.0}/.gitignore +0 -0
  12. {plexutil-3.4.1 → plexutil-3.5.0}/LICENSE +0 -0
  13. {plexutil-3.4.1 → plexutil-3.5.0}/MANIFEST.in +0 -0
  14. {plexutil-3.4.1 → plexutil-3.5.0}/git-hooks/commit-msg +0 -0
  15. {plexutil-3.4.1 → plexutil-3.5.0}/requirements.txt +0 -0
  16. {plexutil-3.4.1 → plexutil-3.5.0}/ruff.toml +0 -0
  17. {plexutil-3.4.1 → plexutil-3.5.0}/setup.cfg +0 -0
  18. {plexutil-3.4.1 → plexutil-3.5.0}/src/plexutil/__init__.py +0 -0
  19. {plexutil-3.4.1 → plexutil-3.5.0}/src/plexutil/__main__.py +0 -0
  20. {plexutil-3.4.1 → plexutil-3.5.0}/src/plexutil/config/log_config.yaml +0 -0
  21. {plexutil-3.4.1 → plexutil-3.5.0}/src/plexutil/core/__init__.py +0 -0
  22. {plexutil-3.4.1 → plexutil-3.5.0}/src/plexutil/core/auth.py +0 -0
  23. {plexutil-3.4.1 → plexutil-3.5.0}/src/plexutil/core/library.py +0 -0
  24. {plexutil-3.4.1 → plexutil-3.5.0}/src/plexutil/core/library_factory.py +0 -0
  25. {plexutil-3.4.1 → plexutil-3.5.0}/src/plexutil/core/movie_library.py +0 -0
  26. {plexutil-3.4.1 → plexutil-3.5.0}/src/plexutil/core/music_library.py +0 -0
  27. {plexutil-3.4.1 → plexutil-3.5.0}/src/plexutil/core/music_playlist.py +0 -0
  28. {plexutil-3.4.1 → plexutil-3.5.0}/src/plexutil/core/tv_library.py +0 -0
  29. {plexutil-3.4.1 → plexutil-3.5.0}/src/plexutil/dto/__init__.py +0 -0
  30. {plexutil-3.4.1 → plexutil-3.5.0}/src/plexutil/dto/bootstrap_paths_dto.py +0 -0
  31. {plexutil-3.4.1 → plexutil-3.5.0}/src/plexutil/dto/dropdown_item_dto.py +0 -0
  32. {plexutil-3.4.1 → plexutil-3.5.0}/src/plexutil/dto/library_setting_dto.py +0 -0
  33. {plexutil-3.4.1 → plexutil-3.5.0}/src/plexutil/dto/movie_dto.py +0 -0
  34. {plexutil-3.4.1 → plexutil-3.5.0}/src/plexutil/dto/music_playlist_dto.py +0 -0
  35. {plexutil-3.4.1 → plexutil-3.5.0}/src/plexutil/dto/song_dto.py +0 -0
  36. {plexutil-3.4.1 → plexutil-3.5.0}/src/plexutil/dto/tv_episode_dto.py +0 -0
  37. {plexutil-3.4.1 → plexutil-3.5.0}/src/plexutil/dto/tv_series_dto.py +0 -0
  38. {plexutil-3.4.1 → plexutil-3.5.0}/src/plexutil/enums/__init__.py +0 -0
  39. {plexutil-3.4.1 → plexutil-3.5.0}/src/plexutil/enums/agent.py +0 -0
  40. {plexutil-3.4.1 → plexutil-3.5.0}/src/plexutil/enums/file_type.py +0 -0
  41. {plexutil-3.4.1 → plexutil-3.5.0}/src/plexutil/enums/language.py +0 -0
  42. {plexutil-3.4.1 → plexutil-3.5.0}/src/plexutil/enums/library_setting.py +0 -0
  43. {plexutil-3.4.1 → plexutil-3.5.0}/src/plexutil/enums/library_type.py +0 -0
  44. {plexutil-3.4.1 → plexutil-3.5.0}/src/plexutil/enums/scanner.py +0 -0
  45. {plexutil-3.4.1 → plexutil-3.5.0}/src/plexutil/enums/server_setting.py +0 -0
  46. {plexutil-3.4.1 → plexutil-3.5.0}/src/plexutil/enums/user_request.py +0 -0
  47. {plexutil-3.4.1 → plexutil-3.5.0}/src/plexutil/exception/__init__.py +0 -0
  48. {plexutil-3.4.1 → plexutil-3.5.0}/src/plexutil/exception/auth_error.py +0 -0
  49. {plexutil-3.4.1 → plexutil-3.5.0}/src/plexutil/exception/bootstrap_error.py +0 -0
  50. {plexutil-3.4.1 → plexutil-3.5.0}/src/plexutil/exception/database_connection_error.py +0 -0
  51. {plexutil-3.4.1 → plexutil-3.5.0}/src/plexutil/exception/device_error.py +0 -0
  52. {plexutil-3.4.1 → plexutil-3.5.0}/src/plexutil/exception/entity_not_found_error.py +0 -0
  53. {plexutil-3.4.1 → plexutil-3.5.0}/src/plexutil/exception/library_illegal_state_error.py +0 -0
  54. {plexutil-3.4.1 → plexutil-3.5.0}/src/plexutil/exception/library_op_error.py +0 -0
  55. {plexutil-3.4.1 → plexutil-3.5.0}/src/plexutil/exception/library_poll_timeout_error.py +0 -0
  56. {plexutil-3.4.1 → plexutil-3.5.0}/src/plexutil/exception/library_section_missing_error.py +0 -0
  57. {plexutil-3.4.1 → plexutil-3.5.0}/src/plexutil/exception/library_unsupported_error.py +0 -0
  58. {plexutil-3.4.1 → plexutil-3.5.0}/src/plexutil/exception/plex_media_missing_error.py +0 -0
  59. {plexutil-3.4.1 → plexutil-3.5.0}/src/plexutil/exception/server_connection_error.py +0 -0
  60. {plexutil-3.4.1 → plexutil-3.5.0}/src/plexutil/exception/unexpected_argument_error.py +0 -0
  61. {plexutil-3.4.1 → plexutil-3.5.0}/src/plexutil/exception/unexpected_naming_pattern_error.py +0 -0
  62. {plexutil-3.4.1 → plexutil-3.5.0}/src/plexutil/exception/user_error.py +0 -0
  63. {plexutil-3.4.1 → plexutil-3.5.0}/src/plexutil/graphical/__init__.py +0 -0
  64. {plexutil-3.4.1 → plexutil-3.5.0}/src/plexutil/mapper/__init__.py +0 -0
  65. {plexutil-3.4.1 → plexutil-3.5.0}/src/plexutil/mapper/music_playlist_mapper.py +0 -0
  66. {plexutil-3.4.1 → plexutil-3.5.0}/src/plexutil/mapper/song_mapper.py +0 -0
  67. {plexutil-3.4.1 → plexutil-3.5.0}/src/plexutil/model/__init__.py +0 -0
  68. {plexutil-3.4.1 → plexutil-3.5.0}/src/plexutil/model/music_playlist_entity.py +0 -0
  69. {plexutil-3.4.1 → plexutil-3.5.0}/src/plexutil/model/song_entity.py +0 -0
  70. {plexutil-3.4.1 → plexutil-3.5.0}/src/plexutil/model/song_music_playlist_entity.py +0 -0
  71. {plexutil-3.4.1 → plexutil-3.5.0}/src/plexutil/plex_util_logger.py +0 -0
  72. {plexutil-3.4.1 → plexutil-3.5.0}/src/plexutil/service/__init__.py +0 -0
  73. {plexutil-3.4.1 → plexutil-3.5.0}/src/plexutil/service/db_manager.py +0 -0
  74. {plexutil-3.4.1 → plexutil-3.5.0}/src/plexutil/service/music_playlist_service.py +0 -0
  75. {plexutil-3.4.1 → plexutil-3.5.0}/src/plexutil/service/song_music_playlist_composite_service.py +0 -0
  76. {plexutil-3.4.1 → plexutil-3.5.0}/src/plexutil/service/song_service.py +0 -0
  77. {plexutil-3.4.1 → plexutil-3.5.0}/src/plexutil/static.py +0 -0
  78. {plexutil-3.4.1 → plexutil-3.5.0}/src/plexutil/util/__init__.py +0 -0
  79. {plexutil-3.4.1 → plexutil-3.5.0}/src/plexutil/util/icons.py +0 -0
  80. {plexutil-3.4.1 → plexutil-3.5.0}/src/plexutil/util/plex_ops.py +0 -0
  81. {plexutil-3.4.1 → plexutil-3.5.0}/src/plexutil/util/query_builder.py +0 -0
  82. {plexutil-3.4.1 → plexutil-3.5.0}/src/plexutil.egg-info/SOURCES.txt +0 -0
  83. {plexutil-3.4.1 → plexutil-3.5.0}/src/plexutil.egg-info/dependency_links.txt +0 -0
  84. {plexutil-3.4.1 → plexutil-3.5.0}/src/plexutil.egg-info/entry_points.txt +0 -0
  85. {plexutil-3.4.1 → plexutil-3.5.0}/src/plexutil.egg-info/requires.txt +0 -0
  86. {plexutil-3.4.1 → plexutil-3.5.0}/src/plexutil.egg-info/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: plexutil
3
- Version: 3.4.1
3
+ Version: 3.5.0
4
4
  Author-email: Carlos Florez <carlos@florez.co.uk>
5
5
  Maintainer-email: Carlos Florez <carlos@florez.co.uk>
6
6
  License: MIT License
@@ -72,7 +72,7 @@ CLI for Plex Media Server.
72
72
  * [Deleting a media library](#deleting-a-media-library-or-music-playlist)
73
73
  * [Exporting/Importing Music Playlists](#exportingimporting-music-playlists)
74
74
  * [Development](#development)
75
- * [Log Location](#log-location)
75
+ * [Logs](#logs)
76
76
 
77
77
 
78
78
  ## Installation
@@ -123,18 +123,13 @@ plexutil modify
123
123
  source init.sh
124
124
  ```
125
125
 
126
- ## Log Location
127
- The log directory of Plexutil is located:
126
+ ## Logs
127
+
128
128
  > [!NOTE]
129
- > Replace <YOUR_USER> with your Windows UserName
130
- - Windows
131
- ```bash
132
- C:\Users\<YOUR_USER>\Documents\plexutil\log
133
- ```
134
- - Linux
135
- ```bash
136
- $HOME/plexutil/log
137
- ```
129
+ > Logs can be found in:
130
+ > - Windows -> C:\Users\User\Documents\plexutil\log
131
+ > - Linux -> $XDG_STATE_HOME/plexutil/log
132
+ > - MacOS -> ~/Library/Application Support/plexutil/log
138
133
 
139
134
  ## License
140
135
  [MIT](https://choosealicense.com/licenses/mit/)
@@ -25,7 +25,7 @@ CLI for Plex Media Server.
25
25
  * [Deleting a media library](#deleting-a-media-library-or-music-playlist)
26
26
  * [Exporting/Importing Music Playlists](#exportingimporting-music-playlists)
27
27
  * [Development](#development)
28
- * [Log Location](#log-location)
28
+ * [Logs](#logs)
29
29
 
30
30
 
31
31
  ## Installation
@@ -76,18 +76,13 @@ plexutil modify
76
76
  source init.sh
77
77
  ```
78
78
 
79
- ## Log Location
80
- The log directory of Plexutil is located:
79
+ ## Logs
80
+
81
81
  > [!NOTE]
82
- > Replace <YOUR_USER> with your Windows UserName
83
- - Windows
84
- ```bash
85
- C:\Users\<YOUR_USER>\Documents\plexutil\log
86
- ```
87
- - Linux
88
- ```bash
89
- $HOME/plexutil/log
90
- ```
82
+ > Logs can be found in:
83
+ > - Windows -> C:\Users\User\Documents\plexutil\log
84
+ > - Linux -> $XDG_STATE_HOME/plexutil/log
85
+ > - MacOS -> ~/Library/Application Support/plexutil/log
91
86
 
92
87
  ## License
93
88
  [MIT](https://choosealicense.com/licenses/mit/)
@@ -1,4 +1,4 @@
1
1
  #!/bin/bash
2
- shellcheck source.init.sh
2
+ shellcheck init.sh
3
3
  ruff check --fix
4
4
  ruff format
@@ -1,7 +1,9 @@
1
1
  #!/bin/bash
2
2
 
3
3
  color_red=$(tput setaf 1)
4
+ # shellcheck disable=SC2034
4
5
  color_green=$(tput setaf 2)
6
+ # shellcheck disable=SC2034
5
7
  color_yellow=$(tput setaf 3)
6
8
  color_normal=$(tput sgr0)
7
9
  setopt aliases
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "plexutil"
7
- version = "3.4.1"
7
+ version = "3.5.0"
8
8
  requires-python = ">=3.11"
9
9
  authors = [
10
10
  {name = "Carlos Florez", email = "carlos@florez.co.uk"}
@@ -812,7 +812,7 @@ class Prompt(Static):
812
812
  def __halt_non_interactive() -> None:
813
813
  system = platform.system()
814
814
 
815
- if system == "Windows":
815
+ if system in {"Windows", "Darwin"}:
816
816
  return
817
817
  elif system == "Linux":
818
818
  session = os.getenv("XDG_SESSION_TYPE") or ""
@@ -47,7 +47,10 @@ class SelectionWindow:
47
47
  self.update_listbox()
48
48
 
49
49
  # Bind events
50
- self.search_var.trace("w", lambda *args: self.filter_list()) # noqa: ARG005
50
+
51
+ # https://github.com/orgs/Homebrew/discussions/5809#discussioncomment-11638857
52
+ # trace("w") not working in MacOS >= 3.12
53
+ self.search_var.trace_add("write", lambda *args: self.filter_list()) # noqa: ARG005
51
54
  self.tree.bind("<<TreeviewSelect>>", self.update_status)
52
55
  self.added_tree.bind("<<TreeviewSelect>>", self.update_added_status)
53
56
 
@@ -81,8 +81,11 @@ class FileImporter(Static):
81
81
  description = "Could not locate Documents folder"
82
82
  raise FileNotFoundError(description)
83
83
 
84
+ elif system == "Darwin":
85
+ home_folder = Path.home() / "Library/Application Support"
86
+
84
87
  elif system == "Linux":
85
- home_folder = os.getenv("HOME") or ""
88
+ home_folder = Path.home() / ".local/state"
86
89
  session = os.getenv("XDG_SESSION_TYPE") or ""
87
90
  session = session.lower()
88
91
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: plexutil
3
- Version: 3.4.1
3
+ Version: 3.5.0
4
4
  Author-email: Carlos Florez <carlos@florez.co.uk>
5
5
  Maintainer-email: Carlos Florez <carlos@florez.co.uk>
6
6
  License: MIT License
@@ -72,7 +72,7 @@ CLI for Plex Media Server.
72
72
  * [Deleting a media library](#deleting-a-media-library-or-music-playlist)
73
73
  * [Exporting/Importing Music Playlists](#exportingimporting-music-playlists)
74
74
  * [Development](#development)
75
- * [Log Location](#log-location)
75
+ * [Logs](#logs)
76
76
 
77
77
 
78
78
  ## Installation
@@ -123,18 +123,13 @@ plexutil modify
123
123
  source init.sh
124
124
  ```
125
125
 
126
- ## Log Location
127
- The log directory of Plexutil is located:
126
+ ## Logs
127
+
128
128
  > [!NOTE]
129
- > Replace <YOUR_USER> with your Windows UserName
130
- - Windows
131
- ```bash
132
- C:\Users\<YOUR_USER>\Documents\plexutil\log
133
- ```
134
- - Linux
135
- ```bash
136
- $HOME/plexutil/log
137
- ```
129
+ > Logs can be found in:
130
+ > - Windows -> C:\Users\User\Documents\plexutil\log
131
+ > - Linux -> $XDG_STATE_HOME/plexutil/log
132
+ > - MacOS -> ~/Library/Application Support/plexutil/log
138
133
 
139
134
  ## License
140
135
  [MIT](https://choosealicense.com/licenses/mit/)
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes