<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def do_author_listing(parser, token):
 """ Get N listing objects that were published by given author recently and optionally omit a publishable object in results. **Usage**:: {% author_listing <author> <limit> as <result> [omit <obj>] %} **Parameters**:: ================================== ================================================ Option Description ================================== ================================================ ``author`` Author to load objects for. ``limit`` Maximum number of objects to store, ``result`` Store the resulting list in context under given name. ================================== ================================================ **Examples**:: {% author_listing object.authors.all.0 10 as article_listing %} """

    contents = token.split_contents()

    if len(contents) not in [5, 7]:
        raise template.TemplateSyntaxError('%r tag requires 4 or 6 arguments.' % contents[0])
    elif len(contents) == 5:
        tag, obj_var, count, fill, var_name = contents
        return AuthorListingNode(obj_var, count, var_name)
    else:
        tag, obj_var, count, fill, var_name, filll, omit_var = contents
        return AuthorListingNode(obj_var, count, var_name, omit_var)