'Generate a local public room list.
There are multiple different lists: the main one plus one per third
party network. A client can ask for a specific list or to return all.
Args:
limit (int)
since_token (str)
search_filter (dict)
network_tuple (ThirdPartyInstanceID): Which public list to use.
This can be (None, None) to indicate the main list, or a particular
appservice and network id to use an appservice specific one.
Setting to None returns all public rooms across all lists.'

def get_local_public_room_list(self, limit=None, since_token=None, search_filter=None, network_tuple=EMTPY_THIRD_PARTY_ID):

    logger.info('Getting    public    room    list:    limit=%r,    since=%r,    search=%r,    network=%r', limit, since_token, bool(search_filter), network_tuple)
    if search_filter:
        return self._get_public_room_list(limit, since_token, search_filter, network_tuple=network_tuple)
    key = (limit, since_token, network_tuple)
    result = self.response_cache.get(key)
    if (not result):
        result = self.response_cache.set(key, self._get_public_room_list(limit, since_token, network_tuple=network_tuple))
    return result
