Submission
**********

class praw.models.Submission(reddit, id=None, url=None, _data=None)

   A class for submissions to reddit.

   __init__(reddit, id=None, url=None, _data=None)

      Initialize a Submission instance.

      Parameters:
         * **reddit** – An instance of "Reddit".

         * **id** – A reddit base36 submission ID, e.g., "2gmzqe".

         * **url** – A URL supported by "id_from_url()".

      Either "id" or "url" can be provided, but not both.

   clear_vote()

      Clear the authenticated user’s vote on the object.

      Note: Votes must be cast by humans. That is, API clients
        proxying a human’s action one-for-one are OK, but bots
        deciding how to vote on content or amplifying a human’s vote
        are not. See the reddit rules for more details on what
        constitutes vote cheating. [Ref]

   comments

      Provide an instance of "CommentForest".

      This attribute can use used, for example, to obtain a flat list
      of comments, with any "MoreComments" removed:

         submission.comments.replace_more(limit=0)
         comments = submission.comments.list()

      Sort order and comment limit can be set with the "comment_sort"
      and "comment_limit" attributes before comments are fetched,
      including any call to "replace_more()":

         submission.comment_sort = 'new'
         comments = submission.comments.list()

      See Extracting comments with PRAW for more on working with a
      "CommentForest".

   crosspost(subreddit, title=None, send_replies=True)

      Crosspost the submission to a subreddit.

      Parameters:
         * **subreddit** – Name of the subreddit or "Subreddit"
           object to crosspost into.

         * **title** – Title of the submission. Will use this
           submission’s title if *None* (default: None).

         * **send_replies** – When True, messages will be sent to
           the submission author when comments are made to the
           submission (default: True).

      Returns:
         A "Submission" object for the newly created submission.

   delete()

      Delete the object.

   disable_inbox_replies()

      Disable inbox replies for the item.

   downvote()

      Downvote the object.

      Note: Votes must be cast by humans. That is, API clients
        proxying a human’s action one-for-one are OK, but bots
        deciding how to vote on content or amplifying a human’s vote
        are not. See the reddit rules for more details on what
        constitutes vote cheating. [Ref]

   duplicates(**generator_kwargs)

      Return a ListingGenerator for the submission’s duplicates.

      Additional keyword arguments are passed in the initialization of
      "ListingGenerator".

   edit(body)

      Replace the body of the object with "body".

      Parameters:
         **body** – The markdown formatted content for the updated
         object.

      Returns:
         The current instance after updating its attributes.

   enable_inbox_replies()

      Enable inbox replies for the item.

   flair

      Provide an instance of "SubmissionFlair".

      This attribute is used to work with flair as a regular user of
      the subreddit the submission belongs to. Moderators can directly
      use "flair()".

      For example, to select an arbitrary editable flair text
      (assuming there is one) and set a custom value try:

         choices = submission.flair.choices()
         template_id = next(x for x in choices
                            if x['flair_text_editable'])['flair_template_id']
         submission.flair.select(template_id, 'my custom value')

   fullname

      Return the object’s fullname.

      A fullname is an object’s kind mapping like "t3" followed by an
      underscore and the object’s base36 ID, e.g., "t1_c5s96e0".

   gild()

      Gild the author of the item.

   hide(other_submissions=None)

      Hide Submission.

      Parameters:
         **other_submissions** – When provided, additionally hide this
         list of "Submission" instances as part of a single request
         (default: None).

   static id_from_url(url)

      Return the ID contained within a submission URL.

      Parameters:
         **url** – A url to a submission in one of the following
         formats (http urls will also work): * https://redd.it/2gmzqe
         * https://reddit.com/comments/2gmzqe/ * https://www.reddit.c
         om/r/redditdev/comments/2gmzqe/praw_https/

      Raise "ClientException" if URL is not a valid submission URL.

   mod

      Provide an instance of "SubmissionModeration".

   parse(data, reddit)

      Return an instance of "cls" from "data".

      Parameters:
         * **data** – The structured data.

         * **reddit** – An instance of "Reddit".

   reply(body)

      Reply to the object.

      Parameters:
         **body** – The markdown formatted content for a comment.

      Returns:
         A "Comment" object for the newly created comment.

   report(reason)

      Report this object to the moderators of its subreddit.

      Parameters:
         **reason** – The reason for reporting.

   save(category=None)

      Save the object.

      Parameters:
         **category** – (Gold) The category to save to. If your user
         does not have gold this value is ignored by Reddit (default:
         None).

   shortlink

      Return a shortlink to the submission.

      For example http://redd.it/eorhm is a shortlink for https://www
      .reddit.com/r/announcements/comments/eorhm/reddit_30_less_typin
      g/.

   unhide(other_submissions=None)

      Unhide Submission.

      Parameters:
         **other_submissions** – When provided, additionally unhide
         this list of "Submission" instances as part of a single
         request (default: None).

   unsave()

      Unsave the object.

   upvote()

      Upvote the object.

      Note: Votes must be cast by humans. That is, API clients
        proxying a human’s action one-for-one are OK, but bots
        deciding how to vote on content or amplifying a human’s vote
        are not. See the reddit rules for more details on what
        constitutes vote cheating. [Ref]
