mirror of
				https://github.com/devine-dl/pywidevine.git
				synced 2025-11-04 03:44:50 +00:00 
			
		
		
		
	serve: Handle TooManySessions on /open
This commit is contained in:
		
							parent
							
								
									5c1b0e89ef
								
							
						
					
					
						commit
						64ae5709d3
					
				@ -3,6 +3,8 @@ import sys
 | 
				
			|||||||
from pathlib import Path
 | 
					from pathlib import Path
 | 
				
			||||||
from typing import Optional, Union
 | 
					from typing import Optional, Union
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					from pywidevine.exceptions import TooManySessions
 | 
				
			||||||
 | 
					
 | 
				
			||||||
try:
 | 
					try:
 | 
				
			||||||
    from aiohttp import web
 | 
					    from aiohttp import web
 | 
				
			||||||
except ImportError:
 | 
					except ImportError:
 | 
				
			||||||
@ -60,7 +62,14 @@ async def open(request: web.Request) -> web.Response:
 | 
				
			|||||||
    device = Device.load(request.app["config"]["devices"][device])
 | 
					    device = Device.load(request.app["config"]["devices"][device])
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    cdm = Cdm(device)
 | 
					    cdm = Cdm(device)
 | 
				
			||||||
    session_id = cdm.open()
 | 
					    try:
 | 
				
			||||||
 | 
					        session_id = cdm.open()
 | 
				
			||||||
 | 
					    except TooManySessions as e:
 | 
				
			||||||
 | 
					        return web.json_response({
 | 
				
			||||||
 | 
					            "status": 400,
 | 
				
			||||||
 | 
					            "message": str(e)
 | 
				
			||||||
 | 
					        }, status=400)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    request.app["sessions"][session_id] = cdm
 | 
					    request.app["sessions"][session_id] = cdm
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    return web.json_response({
 | 
					    return web.json_response({
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user