Source code for mopidy.httpclient

from __future__ import unicode_literals

import platform

import mopidy

"Helpers for configuring HTTP clients used in Mopidy extensions."


[docs]def format_proxy(proxy_config, auth=True): """Convert a Mopidy proxy config to the commonly used proxy string format. Outputs ``scheme://host:port``, ``scheme://user:pass@host:port`` or :class:`None` depending on the proxy config provided. You can also opt out of getting the basic auth by setting ``auth`` to :class:`False`. .. versionadded:: 1.1 """ if not proxy_config.get('hostname'): return None port = proxy_config.get('port') if not port or port < 0: port = 80 if proxy_config.get('username') and proxy_config.get('password') and auth: template = '{scheme}://{username}:{password}@{hostname}:{port}' else: template = '{scheme}://{hostname}:{port}' return template.format(scheme=proxy_config.get('scheme') or 'http', username=proxy_config.get('username'), password=proxy_config.get('password'), hostname=proxy_config['hostname'], port=port)
[docs]def format_user_agent(name=None): """Construct a User-Agent suitable for use in client code. This will identify use by the provided ``name`` (which should be on the format ``dist_name/version``), Mopidy version and Python version. .. versionadded:: 1.1 """ parts = ['Mopidy/%s' % (mopidy.__version__), '%s/%s' % (platform.python_implementation(), platform.python_version())] if name: parts.insert(0, name) return ' '.join(parts)