|
|
@@ -194,19 +194,17 @@ class Config(dict): |
|
|
|
raise InvalidConfig(f'Invalid channel {key!r} path: collides with channel {seenPaths[channel["path"]]!r}') |
|
|
|
seenPaths[channel['path']] = key |
|
|
|
|
|
|
|
if 'auth' in channel: |
|
|
|
if channel['auth'] is not False and not isinstance(channel['auth'], str): |
|
|
|
raise InvalidConfig(f'Invalid channel {key!r} auth: must be false or a string') |
|
|
|
if isinstance(channel['auth'], str) and ':' not in channel['auth']: |
|
|
|
raise InvalidConfig(f'Invalid channel {key!r} auth: must contain a colon') |
|
|
|
else: |
|
|
|
if 'auth' not in channel: |
|
|
|
channel['auth'] = False |
|
|
|
if channel['auth'] is not False and not isinstance(channel['auth'], str): |
|
|
|
raise InvalidConfig(f'Invalid channel {key!r} auth: must be false or a string') |
|
|
|
if isinstance(channel['auth'], str) and ':' not in channel['auth']: |
|
|
|
raise InvalidConfig(f'Invalid channel {key!r} auth: must contain a colon') |
|
|
|
|
|
|
|
if 'active' in channel: |
|
|
|
if channel['active'] is not True and channel['active'] is not False: |
|
|
|
raise InvalidConfig(f'Invalid channel {key!r} active: must be true or false') |
|
|
|
else: |
|
|
|
if 'active' not in channel: |
|
|
|
channel['active'] = True |
|
|
|
if channel['active'] is not True and channel['active'] is not False: |
|
|
|
raise InvalidConfig(f'Invalid channel {key!r} active: must be true or false') |
|
|
|
|
|
|
|
if 'hidden' not in channel: |
|
|
|
channel['hidden'] = False |
|
|
|