Load the cover out of the config, options and conventions.
        Priority goes this way:

        1. if a --cover option is set, use it.
        2. if there's a "cover" key in the config file, use it.
        3. if a cover.(png|jpg|jpeg|svg) exists in the directory, use it.

        Once the choice is set, the program will check if the file exists
        before using it. If it doesn't exist, you'll be warned and the default
        (ugly) cover will be used.

def load_cover(self):
        """Load the cover out of the config, options and conventions.
        Priority goes this way:

        1. if a --cover option is set, use it.
        2. if there's a "cover" key in the config file, use it.
        3. if a cover.(png|jpg|jpeg|svg) exists in the directory, use it.

        Once the choice is set, the program will check if the file exists
        before using it. If it doesn't exist, you'll be warned and the default
        (ugly) cover will be used.
        """
        if not self.args:
            return False
        filename = self.args.get('--cover', None) \
            or self.config.get('cover', None) \
            or None
        if not filename:
            for extension in ('png', 'jpg', 'jpeg', 'svg'):
                temp_filename = 'cover.%s' % extension
                if exists(temp_filename):
                    filename = temp_filename
                    break
        if filename:
            if filename.startswith('http://') or \
               filename.startswith('https://'):
                return filename
            if not exists(filename):
                print error('The designated cover (%s) does not exists.'
                            ' Please check your settings.' % filename)
                filename = None
        if not filename:
            print warning('No cover is set, will use the default (ugly) one.')
            return False
        return abspath(filename)