|
1 |
| -# pyright: reportUnknownArgumentType=none,reportUnknownMemberType=none,reportUnknownVariableType=none |
| 1 | +# pyright: reportUnknownArgumentType=none,reportUnknownMemberType=none,reportUnknownVariableType=none,reportTypedDictNotRequiredAccess=none,reportOptionalMemberAccess=none,reportMissingTypeStubs=none |
2 | 2 |
|
3 | 3 | from .config import config
|
4 | 4 | from .discord import DiscordIpcService
|
5 | 5 | from .imgur import uploadToImgur
|
6 | 6 | from config.constants import name, plexClientID
|
7 | 7 | from plexapi.alert import AlertListener
|
8 |
| -from plexapi.base import PlexSession, PlexPartialObject |
9 | 8 | from plexapi.media import Genre, Guid
|
10 | 9 | from plexapi.myplex import MyPlexAccount, PlexServer
|
11 | 10 | from typing import Optional
|
@@ -56,7 +55,7 @@ def __init__(self, token: str, serverConfig: models.config.Server):
|
56 | 55 | self.daemon = True
|
57 | 56 | self.token = token
|
58 | 57 | self.serverConfig = serverConfig
|
59 |
| - self.logger = LoggerWithPrefix(f"[{self.serverConfig['name']}] ") # pyright: ignore[reportTypedDictNotRequiredAccess] |
| 58 | + self.logger = LoggerWithPrefix(f"[{self.serverConfig['name']}] ") |
60 | 59 | self.discordIpcService = DiscordIpcService(self.serverConfig.get("ipcPipeNumber"))
|
61 | 60 | self.updateTimeoutTimer: Optional[threading.Timer] = None
|
62 | 61 | self.connectionCheckTimer: Optional[threading.Timer] = None
|
@@ -94,7 +93,7 @@ def run(self) -> None:
|
94 | 93 | if not self.server:
|
95 | 94 | raise Exception("Server not found")
|
96 | 95 | except Exception as e:
|
97 |
| - self.logger.error("Failed to connect to %s '%s': %s", self.productName, self.serverConfig["name"], e) # pyright: ignore[reportTypedDictNotRequiredAccess] |
| 96 | + self.logger.error("Failed to connect to %s '%s': %s", self.productName, self.serverConfig["name"], e) |
98 | 97 | self.logger.error("Reconnecting in 10 seconds")
|
99 | 98 | time.sleep(10)
|
100 | 99 |
|
@@ -154,19 +153,19 @@ def handleAlert(self, alert: models.plex.Alert) -> None:
|
154 | 153 | self.logger.debug("Received alert: %s", stateNotification)
|
155 | 154 | ratingKey = int(stateNotification["ratingKey"])
|
156 | 155 | assert self.server
|
157 |
| - item: PlexPartialObject = self.server.fetchItem(ratingKey) |
| 156 | + item = self.server.fetchItem(ratingKey) |
158 | 157 | if item.key and item.key.startswith("/livetv"):
|
159 | 158 | mediaType = "live_episode"
|
160 | 159 | else:
|
161 |
| - mediaType: str = item.type |
| 160 | + mediaType = item.type |
162 | 161 | if mediaType not in validMediaTypes:
|
163 | 162 | self.logger.debug("Unsupported media type '%s', ignoring", mediaType)
|
164 | 163 | return
|
165 | 164 | state = stateNotification["state"]
|
166 | 165 | sessionKey = int(stateNotification["sessionKey"])
|
167 | 166 | viewOffset = int(stateNotification["viewOffset"])
|
168 | 167 | try:
|
169 |
| - libraryName: str = item.section().title |
| 168 | + libraryName = item.section().title |
170 | 169 | except:
|
171 | 170 | libraryName = "ERROR"
|
172 | 171 | if "blacklistedLibraries" in self.serverConfig and libraryName in self.serverConfig["blacklistedLibraries"]:
|
@@ -195,15 +194,15 @@ def handleAlert(self, alert: models.plex.Alert) -> None:
|
195 | 194 | return
|
196 | 195 | if self.isServerOwner:
|
197 | 196 | self.logger.debug("Searching sessions for session key %s", sessionKey)
|
198 |
| - sessions: list[PlexSession] = self.server.sessions() |
| 197 | + sessions = self.server.sessions() |
199 | 198 | if len(sessions) < 1:
|
200 | 199 | self.logger.debug("Empty session list, ignoring")
|
201 | 200 | return
|
202 | 201 | for session in sessions:
|
203 | 202 | self.logger.debug("%s, Session Key: %s, Usernames: %s", session, session.sessionKey, session.usernames)
|
204 | 203 | if session.sessionKey == sessionKey:
|
205 | 204 | self.logger.debug("Session found")
|
206 |
| - sessionUsername: str = session.usernames[0] |
| 205 | + sessionUsername = session.usernames[0] |
207 | 206 | if sessionUsername.lower() == self.listenForUser.lower():
|
208 | 207 | self.logger.debug("Username '%s' matches '%s', continuing", sessionUsername, self.listenForUser)
|
209 | 208 | break
|
@@ -268,7 +267,7 @@ def handleAlert(self, alert: models.plex.Alert) -> None:
|
268 | 267 | thumbUrl = getCacheKey(thumb)
|
269 | 268 | if not thumbUrl or not isinstance(thumbUrl, str):
|
270 | 269 | self.logger.debug("Uploading poster to Imgur")
|
271 |
| - thumbUrl = uploadToImgur(self.server.url(thumb, True), config["display"]["posters"]["maxSize"]) |
| 270 | + thumbUrl = uploadToImgur(self.server.url(thumb, True)) |
272 | 271 | setCacheKey(thumb, thumbUrl)
|
273 | 272 | activity: models.discord.Activity = {
|
274 | 273 | "details": truncate(title, 128),
|
@@ -326,9 +325,9 @@ def handleAlert(self, alert: models.plex.Alert) -> None:
|
326 | 325 | if state == "playing":
|
327 | 326 | currentTimestamp = int(time.time())
|
328 | 327 | if config["display"]["useRemainingTime"]:
|
329 |
| - activity["timestamps"] = {"end": round(currentTimestamp + ((item.duration - viewOffset) / 1000))} |
| 328 | + activity["timestamps"] = { "end": round(currentTimestamp + ((item.duration - viewOffset) / 1000)) } |
330 | 329 | else:
|
331 |
| - activity["timestamps"] = {"start": round(currentTimestamp - (viewOffset / 1000))} |
| 330 | + activity["timestamps"] = { "start": round(currentTimestamp - (viewOffset / 1000)) } |
332 | 331 | if not self.discordIpcService.connected:
|
333 | 332 | self.discordIpcService.connect()
|
334 | 333 | if self.discordIpcService.connected:
|
|
0 commit comments