<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def get_channels(self, current=True, publish_only=False, settings=False):
 """ if "current" is false it will return all channels that a user has published to in the past. if publish_only is set to true, then return only the channels that are publishable. if settings is true, the API will make extra queries to return the settings for each channel. """

        if publish_only:
            if current:
                endpoint = 'channels/setting/publish/current'
            else:
                endpoint = 'channels/setting/publish'
        else:
            if current:
                endpoint = 'channels/current'
            else:
                endpoint = 'channels'

        result = self._call(endpoint, content_type='application/json', params=dict(settings=settings))
        return [Channel(c) for c in result]