@ -8,17 +8,19 @@ class Config:
self . url = os . getenv ( ' WHOOGLE_CONFIG_URL ' , ' ' )
self . lang_search = os . getenv ( ' WHOOGLE_CONFIG_LANGUAGE ' , ' ' )
self . lang_interface = os . getenv ( ' WHOOGLE_CONFIG_LANGUAGE ' , ' ' )
self . style = open ( os . path . join ( app_config [ ' STATIC_FOLDER ' ] ,
' css/variables.css ' ) ) . read ( )
self . style = os . getenv (
' WHOOGLE_CONFIG_STYLE ' ,
open ( os . path . join ( app_config [ ' STATIC_FOLDER ' ] ,
' css/variables.css ' ) ) . read ( ) )
self . ctry = os . getenv ( ' WHOOGLE_CONFIG_COUNTRY ' , ' ' )
self . safe = bool ( os . getenv ( ' WHOOGLE_CONFIG_SAFE ' , False ) )
self . dark = bool ( os . getenv ( ' WHOOGLE_CONFIG_DARK ' , False ) )
self . alts = bool ( os . getenv ( ' WHOOGLE_CONFIG_ALTS ' , False ) )
self . nojs = bool ( os . getenv ( ' WHOOGLE_CONFIG_NOJS ' , False ) )
self . tor = bool ( os . getenv ( ' WHOOGLE_CONFIG_TOR ' , False ) )
self . safe = int ( os . getenv ( ' WHOOGLE_CONFIG_SAFE ' , ' 0 ' ) )
self . dark = int ( os . getenv ( ' WHOOGLE_CONFIG_DARK ' , ' 0 ' ) )
self . alts = int ( os . getenv ( ' WHOOGLE_CONFIG_ALTS ' , ' 0 ' ) )
self . nojs = int ( os . getenv ( ' WHOOGLE_CONFIG_NOJS ' , ' 0 ' ) )
self . tor = int ( os . getenv ( ' WHOOGLE_CONFIG_TOR ' , ' 0 ' ) )
self . near = os . getenv ( ' WHOOGLE_CONFIG_NEAR ' , ' ' )
self . new_tab = bool ( os . getenv ( ' WHOOGLE_CONFIG_NEW_TAB ' , False ) )
self . get_only = bool ( os . getenv ( ' WHOOGLE_CONFIG_GET_ONLY ' , False ) )
self . new_tab = int ( os . getenv ( ' WHOOGLE_CONFIG_NEW_TAB ' , ' 0 ' ) )
self . get_only = int ( os . getenv ( ' WHOOGLE_CONFIG_GET_ONLY ' , ' 0 ' ) )
self . safe_keys = [
' lang_search ' ,
' lang_interface ' ,
@ -26,10 +28,13 @@ class Config:
' dark '
]
for key , value in kwargs . items ( ) :
if not value :
continue
setattr ( self , key , value )
# Skip setting custom config if there isn't one
if kwargs :
for attr in self . get_mutable_attrs ( ) :
if attr not in kwargs . keys ( ) :
setattr ( self , attr , ' ' )
else :
setattr ( self , attr , kwargs [ attr ] )
def __getitem__ ( self , name ) :
return getattr ( self , name )
@ -43,6 +48,11 @@ class Config:
def __contains__ ( self , name ) :
return hasattr ( self , name )
def get_mutable_attrs ( self ) :
return { name : attr for name , attr in self . __dict__ . items ( )
if not name . startswith ( " __ " )
and ( type ( attr ) is int or type ( attr ) is str ) }
def is_safe_key ( self , key ) - > bool :
""" Establishes a group of config options that are safe to set
in the url .