@@ -349,3 +349,36 @@ async def set_flood_scope(self, scope):
349349 cmd_data .extend (scope_key )
350350
351351 return await self .send (cmd_data , [EventType .OK , EventType .ERROR ])
352+
353+ async def set_default_flood_scope (self , scope ):
354+ if scope is None :
355+ logger .debug (f"Resetting default scope" )
356+ scope_key = b"\0 " * 16
357+ scope_name = ""
358+ elif isinstance (scope , str ):
359+ if scope == "0" or scope == "None" or scope == "*" or scope == "" : # disable
360+ logger .debug ("Resetting default scope" )
361+ scope_key = b"\0 " * 16
362+ scope_name = ""
363+ else :
364+ logger .debug (f"Setting scope to { scope } " )
365+ if scope [0 ] != "#" :
366+ scope = "#" + scope
367+ scope_name = scope
368+ scope_key = sha256 (scope .encode ("utf-8" )).digest ()[0 :16 ]
369+ else :
370+ raise TypeError (f"set_flood_scope: unsupported scope type { type (scope ).__name__ } " )
371+
372+ logger .debug (f"Setting scope key to { scope_key .hex ()} " )
373+
374+ cmd_data = bytearray ([CommandType .SET_DEFAULT_FLOOD_SCOPE .value ])
375+ cmd_data .extend (scope_name .encode ("utf-8" ))
376+ cmd_data .extend ((31 - len (scope ))* b'\0 ' )
377+ cmd_data .extend (scope_key )
378+
379+ return await self .send (cmd_data , [EventType .OK , EventType .ERROR ])
380+
381+ async def get_default_flood_scope (self ):
382+ logger .debug (f"Getting default flood scope" )
383+ cmd_data = bytearray ([CommandType .GET_DEFAULT_FLOOD_SCOPE .value ])
384+ return await self .send (cmd_data , [EventType .DEFAULT_FLOOD_SCOPE , EventType .ERROR ])
0 commit comments