Multireddit
***********

class praw.models.Multireddit(reddit, _data)

   A class for users' Multireddits.

   **Typical Attributes**

   This table describes attributes that typically belong to objects of
   this class. Since attributes are dynamically provided (see
   Determine Available Attributes of an Object), there is not a
   guarantee that these attributes will always be present, nor is this
   list necessarily comprehensive.

   +-------------------------+-----------------------------------------------------+
   | Attribute               | Description                                         |
   +=========================+=====================================================+
   | "can_edit"              | A "bool" representing whether or not the            |
   |                         | authenticated user may edit the multireddit.        |
   +-------------------------+-----------------------------------------------------+
   | "copied_from"           | The multireddit that the multireddit was copied     |
   |                         | from, if it exists, otherwise "None".               |
   +-------------------------+-----------------------------------------------------+
   | "created_utc"           | When the multireddit was created, in Unix Time.     |
   +-------------------------+-----------------------------------------------------+
   | "description_html"      | The description of the multireddit, as HTML.        |
   +-------------------------+-----------------------------------------------------+
   | "description_md"        | The description of the multireddit, as Markdown.    |
   +-------------------------+-----------------------------------------------------+
   | "display_name"          | The display name of the multireddit.                |
   +-------------------------+-----------------------------------------------------+
   | "name"                  | The name of the multireddit.                        |
   +-------------------------+-----------------------------------------------------+
   | "over_18"               | A "bool" representing whether or not the            |
   |                         | multireddit is restricted for users over 18.        |
   +-------------------------+-----------------------------------------------------+
   | "subreddits"            | A "list" of "Subreddit"s that make up the           |
   |                         | multireddit.                                        |
   +-------------------------+-----------------------------------------------------+
   | "visibility"            | The visibility of the multireddit, either           |
   |                         | "private", "public", or "hidden".                   |
   +-------------------------+-----------------------------------------------------+

   __init__(reddit, _data)

      Construct an instance of the Multireddit object.

   add(subreddit)

      Add a subreddit to this multireddit.

      Parameters:
         **subreddit** -- The subreddit to add to this multi.

   comments

      Provide an instance of "CommentHelper".

      For example, to output the author of the 25 most recent comments
      of "/r/redditdev" execute:

         for comment in reddit.subreddit('redditdev').comments(limit=25):
             print(comment.author)

   controversial(time_filter='all', **generator_kwargs)

      Return a ListingGenerator for controversial submissions.

      Parameters:
         **time_filter** -- Can be one of: all, day, hour, month,
         week, year (default: all).

      Raise "ValueError" if "time_filter" is invalid.

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

      This method can be used like:

         reddit.domain('imgur.com').controversial('week')
         reddit.multireddit('samuraisam', 'programming').controversial('day')
         reddit.redditor('spez').controversial('month')
         reddit.redditor('spez').comments.controversial('year')
         reddit.redditor('spez').submissions.controversial('all')
         reddit.subreddit('all').controversial('hour')

   copy(display_name=None)

      Copy this multireddit and return the new multireddit.

      Parameters:
         **display_name** -- (optional) The display name for the
         copied multireddit. Reddit will generate the "name" field
         from this display name. When not provided the copy will use
         the same display name and name as this multireddit.

   delete()

      Delete this multireddit.

   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".

   gilded(**generator_kwargs)

      Return a ListingGenerator for gilded items.

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

   hot(**generator_kwargs)

      Return a ListingGenerator for hot items.

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

      This method can be used like:

         reddit.domain('imgur.com').hot()
         reddit.multireddit('samuraisam', 'programming').hot()
         reddit.redditor('spez').hot()
         reddit.redditor('spez').comments.hot()
         reddit.redditor('spez').submissions.hot()
         reddit.subreddit('all').hot()

   new(**generator_kwargs)

      Return a ListingGenerator for new items.

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

      This method can be used like:

         reddit.domain('imgur.com').new()
         reddit.multireddit('samuraisam', 'programming').new()
         reddit.redditor('spez').new()
         reddit.redditor('spez').comments.new()
         reddit.redditor('spez').submissions.new()
         reddit.subreddit('all').new()

   classmethod parse(data, reddit)

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

      Parameters:
         * **data** -- The structured data.

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

   random_rising(**generator_kwargs)

      Return a ListingGenerator for random rising submissions.

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

   remove(subreddit)

      Remove a subreddit from this multireddit.

      Parameters:
         **subreddit** -- The subreddit to remove from this multi.

   rename(display_name)

      Rename this multireddit.

      Parameters:
         **display_name** -- The new display name for this
         multireddit. Reddit will generate the "name" field from this
         display name.

   rising(**generator_kwargs)

      Return a ListingGenerator for rising submissions.

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

   static sluggify(title)

      Return a slug version of the title.

      Parameters:
         **title** -- The title to make a slug of.

      Adapted from reddit's utils.py.

   stream

      Provide an instance of "SubredditStream".

      Streams can be used to indefinitely retrieve new comments made
      to a subreddit, like:

         for comment in reddit.multireddit('spez', 'fun').stream.comments():
             print(comment)

      Additionally, new submissions can be retrieved via the stream.
      In the following example all submissions are fetched via the
      special subreddit "all":

         for submission in reddit.multireddit('bboe',
                                              'games').stream.submissions():
             print(submission)

   top(time_filter='all', **generator_kwargs)

      Return a ListingGenerator for top submissions.

      Parameters:
         **time_filter** -- Can be one of: all, day, hour, month,
         week, year (default: all).

      Raise "ValueError" if "time_filter" is invalid.

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

      This method can be used like:

         reddit.domain('imgur.com').top('week')
         reddit.multireddit('samuraisam', 'programming').top('day')
         reddit.redditor('spez').top('month')
         reddit.redditor('spez').comments.top('year')
         reddit.redditor('spez').submissions.top('all')
         reddit.subreddit('all').top('hour')

   update(**updated_settings)

      Update this multireddit.

      Keyword arguments are passed for settings that should be
      updated. They can any of:

      Parameters:
         * **display_name** -- The display name for this
           multireddit.

         * **subreddits** -- Subreddits for this multireddit.

         * **description_md** -- Description for this multireddit,
           formatted in markdown.

         * **icon_name** -- Can be one of: "art and design", "ask",
           "books", "business", "cars", "comics", "cute animals",
           "diy", "entertainment", "food and drink", "funny", "games",
           "grooming", "health", "life advice", "military", "models
           pinup", "music", "news", "philosophy", "pictures and gifs",
           "science", "shopping", "sports", "style", "tech", "travel",
           "unusual stories", "video", or "None".

         * **key_color** -- RGB hex color code of the form
           "'#FFFFFF'".

         * **visibility** -- Can be one of: "hidden", "private",
           "public".

         * **weighting_scheme** -- Can be one of: "classic",
           "fresh".
