docs: def curl_setup(self, proxy=None, timeout=0):
          """
          Set curl options
          - http://pycurl.io/docs/latest/
          - https://curl.haxx.se/libcurl/c/curl_easy_setopt.html
  
          Proxy options (str or dict):
            proxy = 'https://example.com:80'  # pycurl.PROXY
            proxy = {
              'PROXY':   <str> host,      # pycurl.PROXY
              'PORT':    <int> port,      # pycurl.PROXYPORT
              'USERPWD': <str> user:pwd,  # pycurl.PROXYUSERPWD
            }
          """
  
          crl = pycurl.Curl()
          crl.setopt(pycurl.USERAGENT, user_agent())
          crl.setopt(pycurl.FOLLOWLOCATION, True)
          crl.setopt(pycurl.CAINFO, certifi.where())
  
          if isinstance(proxy, str):
              crl.setopt(pycurl.PROXY, proxy)
          if isinstance(proxy, dict):
              if proxy.get('PROXY'):
                  crl.setopt(pycurl.PROXY, proxy['PROXY'])
              if proxy.get('PORT'):
                  crl.setopt(pycurl.PROXYPORT, proxy['PORT'])
              if proxy.get('USERPWD'):
                  crl.setopt(pycurl.PROXYUSERPWD, proxy['USERPWD'])
  
          if timeout:  # 0 = wait forever
              crl.setopt(pycurl.CONNECTTIMEOUT, timeout)
              crl.setopt(pycurl.TIMEOUT, timeout)
          if self.verbose and not self.silent:
              crl.setopt(pycurl.VERBOSE, True)
  
          self.cobj = crl