Fixes Issue #2 #4
@ -6,6 +6,7 @@ import shutil
|
||||
|
||||
import requests
|
||||
from requests.auth import HTTPBasicAuth
|
||||
from requests.sessions import Session
|
||||
|
||||
from daisy import DaisyHandler
|
||||
|
||||
@ -46,19 +47,25 @@ class Mediasite:
|
||||
if 'id' in data:
|
||||
mypackage['notification_id'] = data['id']
|
||||
|
||||
mypackage['thumb'] = self._download(base, data['thumb'], self.auth)
|
||||
with requests.Session() as session:
|
||||
session.auth = self.auth
|
||||
session.stream = True
|
||||
mypackage['thumb'] = self._download(base, data['thumb'], session)
|
||||
for source in data['sources']:
|
||||
mysource = {'video': self._download(base, source['video']),
|
||||
'poster': self._download(base, source['poster'],
|
||||
self.auth),
|
||||
mysource = {'video': self._download(base, source['video'], session),
|
||||
'poster': self._download(base, source['poster'], session),
|
||||
'playAudio': source['playAudio']}
|
||||
mypackage['sources'].append(mysource)
|
||||
|
||||
mypackage['slides'] = [
|
||||
setattr(elem, 'url', os.path.join(base, self._download(base, elem['url'], session))) for elem in data['slides']
|
||||
]
|
||||
return mypackage
|
||||
|
||||
def _download(self, base, remotefile, auth=None):
|
||||
def _download(self, base, remotefile, session: Session):
|
||||
localname = remotefile.split('/')[-1]
|
||||
localpath = os.path.join(base, localname)
|
||||
with requests.get(remotefile, stream=True, auth=auth) as r:
|
||||
r = session.get(remotefile)
|
||||
r.raise_for_status()
|
||||
with open(localpath, 'xb') as f:
|
||||
for chunk in r.iter_content(chunk_size=self.chunk_size):
|
||||
|
Loading…
x
Reference in New Issue
Block a user