mirror of
https://github.com/meeb/tubesync.git
synced 2025-06-24 14:06:36 +00:00
POST to /Items/{ID}/Refresh
This commit is contained in:
parent
cf3630f78b
commit
f4aef97e17
@ -47,7 +47,7 @@ class MediaServer:
|
||||
timeout=self.TIMEOUT,
|
||||
))
|
||||
|
||||
def make_request(self, uri='/', headers={}, params={}):
|
||||
def make_request(self, uri='/', /, *, headers={}, params={}):
|
||||
'''
|
||||
A very simple implementation is:
|
||||
url, kwargs = self.make_request_args(uri=uri, headers=headers, params=params)
|
||||
@ -87,7 +87,7 @@ class PlexMediaServer(MediaServer):
|
||||
'<a href="https://www.plexopedia.com/plex-media-server/api/server/libraries/" '
|
||||
'target="_blank">here</a></p>.')
|
||||
|
||||
def make_request(self, uri='/', headers={}, params={}):
|
||||
def make_request(self, uri='/', /, *, headers={}, params={}):
|
||||
url, kwargs = self.make_request_args(uri=uri, headers=headers, token_param='X-Plex-Token', params=params)
|
||||
log.debug(f'[plex media server] Making HTTP GET request to: {url}')
|
||||
if kwargs['verify']:
|
||||
@ -207,7 +207,9 @@ class JellyfinMediaServer(MediaServer):
|
||||
'<p>The "API Key" <strong>token</strong> is required for API access. Your Jellyfin administrator can generate an "API Key" token for use with TubeSync for you.</p>'
|
||||
'<p>The <strong>libraries</strong> is a comma-separated list of library IDs in Jellyfin. Leave this blank to see a list.</p>')
|
||||
|
||||
def make_request(self, uri='/', headers={}, params={}):
|
||||
def make_request(self, uri='/', /, *, headers={}, params={}, data={}, json=None, method='GET'):
|
||||
assert method in {'GET', 'POST'}, f'Unimplemented method: {method}'
|
||||
|
||||
headers.update({'Content-Type': 'application/json'})
|
||||
url, kwargs = self.make_request_args(uri=uri, token_header='X-Emby-Token', headers=headers, params=params)
|
||||
# From the Emby source code;
|
||||
@ -222,11 +224,17 @@ class JellyfinMediaServer(MediaServer):
|
||||
if token:
|
||||
kwargs['headers'].update({
|
||||
'X-MediaBrowser-Token': token,
|
||||
'X-Emby-Authorization': f'Emby Token={token}, Client=TubeSync, Version={settings.VERSION!s}',
|
||||
'Authorization': f'MediaBrowser Token="{token}", Client="TubeSync", Version="{settings.VERSION!s}"',
|
||||
'X-Emby-Authorization': f'Emby Token={token}, Client=TubeSync, Version={settings.VERSION}',
|
||||
'Authorization': f'MediaBrowser Token="{token}", Client="TubeSync", Version="{settings.VERSION}"',
|
||||
})
|
||||
log.debug(f'[jellyfin media server] Making HTTP GET request to: {url}')
|
||||
return requests.get(url, **kwargs)
|
||||
|
||||
log.debug(f'[jellyfin media server] Making HTTP {method} request to: {url}')
|
||||
return requests.request(
|
||||
method, url,
|
||||
data=data,
|
||||
json=json,
|
||||
**kwargs,
|
||||
)
|
||||
|
||||
def validate(self):
|
||||
if not self.object.host:
|
||||
@ -287,8 +295,8 @@ class JellyfinMediaServer(MediaServer):
|
||||
def update(self):
|
||||
libraries = self.object.loaded_options.get('libraries', '').split(',')
|
||||
for library_id in map(str.strip, libraries):
|
||||
uri = f'/Library/{library_id}/Refresh'
|
||||
response = self.make_request(uri)
|
||||
uri = f'/Items/{library_id}/Refresh'
|
||||
response = self.make_request(uri, method='POST')
|
||||
if response.status_code != 204: # 204 No Content is expected for successful refresh
|
||||
raise MediaServerError(f'Failed to refresh Jellyfin library "{library_id}", status code: {response.status_code}')
|
||||
return True
|
||||
|
Loading…
Reference in New Issue
Block a user