def split_by_first_occurence(string, character):
    """
    Split a function by first occurence of a character or a substring,
    and then strip the results.
    Like most song names can have artists name seperated with an '&'
    'Artist1 & Artist2' For this string, and character = '&',the
    function would return ['Artist1', 'Artist2']. This function
     also strips bracket content, to provide better search results.

    :param string: String in which to search
    :param character: character or substring which is to be searched

    :returns: A list of 2 strings, stripped of spaces at the beginning and end
    """
    if character not in string:
        return [string]
    first_half = string[:string.find(character)]
    first_half = first_half.strip()
    last_half = string[string.find(character) + len(character):]
    if '(' in last_half:
        # part after the brackets is mostly not required for song name
        last_half = last_half[:last_half.find('(')]
    elif '[' in last_half:
        last_half = last_half[:last_half.find('[')]
    last_half = last_half.strip()
    return [first_half, last_half]