# Multireddit

class `praw.models.``Multireddit`(reddit: Reddit, _data: Dict[str, Any])

  A class for users’ Multireddits.

  This is referred to as a Custom Feed on the Reddit UI.

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

  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: Reddit, _data: Dict[str, Any])

    Construct an instance of the Multireddit object.

  `add`(subreddit: praw.models.reddit.subreddit.Subreddit)

    Add a subreddit to this multireddit.

    Parameters

      subreddit – The subreddit to add to this multi.

    For example, to add subreddit `r/test` to multireddit `bboe/test`:

        subreddit = reddit.subreddit("test")
        reddit.multireddit("bboe", "test").add(subreddit)

  `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: str = 'all', **generator_kwargs: Union[str, int, Dict[str, str]]) → Iterator[Any]

    Return a `ListingGenerator` for controversial submissions.

    Parameters

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

    Raises

      `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: Optional[str] = None) → praw.models.reddit.multi.Multireddit

    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.

    To copy the multireddit `bboe/test` with a name of `testing`:

        reddit.multireddit("bboe", "test").copy("testing")

  `delete`()

    Delete this multireddit.

    For example, to delete multireddit``bboe/test``:

        reddit.multireddit("bboe", "test").delete()

  `gilded`(**generator_kwargs: Union[str, int, Dict[str, str]]) → Iterator[Any]

    Return a `ListingGenerator` for gilded items.

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

    For example, to get gilded items in subreddit `r/test`:

        for item in reddit.subreddit("test").gilded():
            print(item.id)

  `hot`(**generator_kwargs: Union[str, int, Dict[str, str]]) → Iterator[Any]

    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: Union[str, int, Dict[str, str]]) → Iterator[Any]

    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: Dict[str, Any], reddit: Reddit) → Any

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

    Parameters

      - data – The structured data.

      - reddit – An instance of `Reddit`.

  `random_rising`(**generator_kwargs: Union[str, int, Dict[str, str]]) → Iterator[Submission]

    Return a `ListingGenerator` for random rising submissions.

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

    For example, to get random rising submissions for subreddit `r/test`:

        for submission in reddit.subreddit("test").random_rising():
            print(submission.title)

  `remove`(subreddit: praw.models.reddit.subreddit.Subreddit)

    Remove a subreddit from this multireddit.

    Parameters

      subreddit – The subreddit to remove from this multi.

    For example, to remove subreddit `r/test` from multireddit `bboe/test`:

        subreddit = reddit.subreddit("test")
        reddit.multireddit("bboe", "test").remove(subreddit)

  `rising`(**generator_kwargs: Union[str, int, Dict[str, str]]) → Iterator[Submission]

    Return a `ListingGenerator` for rising submissions.

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

    For example, to get rising submissions for subreddit `r/test`:

        for submission in reddit.subreddit("test").rising():
            print(submission.title)

  static `sluggify`(title: str)

    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 multireddit, 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 new submissions to the multireddit are fetched:

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

  `top`(time_filter: str = 'all', **generator_kwargs: Union[str, int, Dict[str, str]]) → Iterator[Any]

    Return a `ListingGenerator` for top submissions.

    Parameters

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

    Raises

      `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: Union[str, List[Union[str, praw.models.reddit.subreddit.Subreddit, Dict[str, str]]]])

    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. Must be no longer than 50 characters.

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

    For example, to rename multireddit `bboe/test` to `bboe/testing`:

        reddit.multireddit("bboe", "test").update(display_name="testing")