Skip to content
Snippets Groups Projects
provider.py 1.56 KiB
Newer Older
  • Learn to ignore specific revisions
  • Kali Kaneko's avatar
    Kali Kaneko committed
    import datetime
    import os
    
    
    
    Kali Kaneko's avatar
    Kali Kaneko committed
    def getDefaultProviders(config):
        # returns a list of providers
    
        provider = os.environ.get('PROVIDER')
        if provider:
            print('[+] Got provider {} from environment'.format(provider))
        else:
    
    Kali Kaneko's avatar
    Kali Kaneko committed
            print('[+] Using default provider from config file')
            provider = config['default']['provider']
    
    Kali Kaneko's avatar
    Kali Kaneko committed
        return provider.split(',')
    
    Kali Kaneko's avatar
    Kali Kaneko committed
    
    
    def getProviderData(provider, config):
        print("[+] Configured provider:", provider)
    
        try:
            c = config[provider]
        except Exception:
            raise ValueError('Cannot find provider')
    
    Kali Kaneko's avatar
    Kali Kaneko committed
        d = dict()
    
        keys = ('name', 'applicationName', 'binaryName', 'auth', 'authEmptyPass',
    
    Kali Kaneko's avatar
    Kali Kaneko committed
                'providerURL', 'tosURL', 'helpURL',
    
                'askForDonations', 'donateURL', 'apiURL',
    
                'apiVersion', 'geolocationAPI', 'caCertString',
                'STUNServers', 'countryCodeLookupURL')
    
    kali's avatar
    kali committed
        boolValues = ['askForDonations', 'authEmptyPass']
    
        intValues = ['apiVersion', ]
    
    Kali Kaneko's avatar
    Kali Kaneko committed
    
        for value in keys:
    
            if value not in c:
                continue
    
    Kali Kaneko's avatar
    Kali Kaneko committed
            d[value] = c.get(value)
    
    kali's avatar
    kali committed
            if value in boolValues:
    
                d[value] = bool(d[value])
            elif value in intValues:
                d[value] = int(d[value])
    
            elif value in listValues:
                if d[value].strip() == "":
                    d[value] = []
                else:
                    d[value] = d[value].split(",")
                    # remove spaces
                    d[value] = [x.strip() for x in d[value]]
    
    Kali Kaneko's avatar
    Kali Kaneko committed
    
        d['timeStamp'] = '{:%Y-%m-%d %H:%M:%S}'.format(
            datetime.datetime.now())
    
        return d