redditwarp.siteprocs.collection.ASYNC#
- class redditwarp.siteprocs.collection.ASYNC.CollectionProcedures(client: Client)[source]#
Bases:
object- async create(sr_id: int | str, title: str, description: str | None = None, display_layout: str | None = None) SubmissionCollection[source]#
Create a collection.
Returns the newly created collection.
- Parameters:
sr_id (int | str) – Subreddit ID.
title (str) – A string no longer than 300 characters.
description (Optional[str]) – A string no longer than 500 characters.
display_layout (Optional[str]) –
Either
TIMELINEorGALLERY.Default is
TIMELINE.
- Return type:
- Raises:
redditwarp.exceptions.RedditError –
USER_REQUIRED:There is no user context.
SUBREDDIT_NOEXIST:The specified subreddit (
sr_id) does not exist.
NO_TEXT:The specified
titlewas empty.
TOO_LONG:The specified
titlewas longer than 300 characters.The specified
descriptionwas longer than 500 characters.
INVALID_OPTION:The value specified for
display_layoutis not valid.The options are case-sensitive.
- async add_post(uuid: str, subm_id: int | str) None[source]#
Add a submission to a collection.
Collections have a capacity of 100 posts. Attempting to add to a full collection will result in an
INVALID_COLLECTION_UPDATEAPI error.- Parameters:
uuid (str) –
subm_id (int | str) –
- Return type:
None
- Raises:
redditwarp.exceptions.RedditError –
USER_REQUIRED:There is no user context.
NO_TEXT:The specified
uuidwas empty.
TOO_SHORT:The specified
uuidwas under 36 characters.
TOO_LONG:The specified
uuidwas over 36 characters.The specified
descriptionwas longer than 500 characters.
INVALID_COLLECTION_UPDATE:The specified
uuiddoes not exist.The submission specified by
subm_idalready exists in the collection.The submission specified by
subm_iddoes not match the collection’s subreddit.The collection is full (it contains 100 posts).
redditwarp.http.exceptions.StatusCodeException –
404:The submission specified by
subm_iddoes not exist.
500:The value specified by
uuidis not a valid UUID.
- async remove_post(uuid: str, subm_id: int | str) None[source]#
Remove a submission from a collection.
- Parameters:
uuid (str) –
subm_id (int | str) –
- Return type:
None
- Raises:
redditwarp.exceptions.RedditError –
USER_REQUIRED:There is no user context.
NO_TEXT:The specified
uuidwas empty.
TOO_SHORT:The specified
uuidwas under 36 characters.
TOO_LONG:The specified
uuidwas over 36 characters.The specified
descriptionwas longer than 500 characters.
INVALID_COLLECTION_UPDATE:The specified
uuiddoes not exist.The submission specified by
subm_iddoes not exist in the collection.
redditwarp.http.exceptions.StatusCodeException –
404:The submission specified by
subm_iddoes not exist.
500:The value specified by
uuidis not a valid UUID.
- async get_full(uuid: str) SubmissionCollection | None[source]#
Get a collection, including its submissions.
- Parameters:
uuid (str) –
- Return type:
Optional[SubmissionCollection]
- Raises:
redditwarp.exceptions.RedditError –
NO_TEXT:The specified
uuidwas empty.
TOO_SHORT:The specified
uuidwas under 36 characters.
TOO_LONG:The specified
uuidwas over 36 characters.
- async get_info(uuid: str) SubmissionCollectionInfo | None[source]#
Get a collection, excluding its submissions.
- Parameters:
uuid (str) –
- Return type:
Optional[SubmissionCollectionInfo]
- Raises:
redditwarp.exceptions.RedditError –
NO_TEXT:The specified
uuidwas empty.
TOO_SHORT:The specified
uuidwas under 36 characters.
TOO_LONG:The specified
uuidwas over 36 characters.
- async get_subreddit_collections_info(sr_id: int | str) Sequence[SubmissionCollectionInfo][source]#
Get a list of collections’ details from the subreddit.
- Parameters:
id (int | str) – Subreddit ID.
- Return type:
Sequence[SubmissionCollectionInfo]
- Raises:
redditwarp.exceptions.RedditError –
SUBREDDIT_NOEXIST:The specified subreddit could not be found.
- async delete(uuid: str) None[source]#
Delete a collection.
- Parameters:
uuid (str) –
- Return type:
None
- Raises:
redditwarp.exceptions.RedditError –
USER_REQUIRED:There is no user context.
NO_TEXT:The specified
uuidwas empty.
TOO_SHORT:The specified
uuidwas under 36 characters.
TOO_LONG:The specified
uuidwas over 36 characters.
INVALID_COLLECTION_ID:The specified does not exist.
- async reorder(uuid: str, subm_ids: Sequence[int] | Sequence[str]) None[source]#
Reorder posts in a collection.
An API error is returned (
INVALID_COLLECTION_UPDATE) if an ID in the given list is not found in the collection.If only a subset of the IDs in the collection are specified then those submissions will be moved to the top of the collection in the order specified. The rest are moved down, maintaining their order.
- Parameters:
uuid (str) –
subm_ids (Sequence[int] | Sequence[str]) –
- Return type:
None
- Raises:
redditwarp.exceptions.RedditError –
USER_REQUIRED:There is no user context.
INVALID_COLLECTION_UPDATE:One of the IDs specified in the
subm_idslist does not exist in the collection.
redditwarp.http.exceptions.StatusCodeException –
404:The specified
uuidwas empty.The specified
uuidis invalid.The specified
uuiddoes not exist.
- async set_title(uuid: str, title: str) None[source]#
Update a collection’s title.
- Parameters:
uuid (str) –
title (str) –
New title for the collection, up to 300 characters long.
It should not be an empty string.
- Return type:
None
- Raises:
redditwarp.exceptions.RedditError –
USER_REQUIRED:There is no user context.
NO_TEXT:The specified
uuidwas empty.The specified
titlewas empty.
TOO_SHORT:The specified
uuidwas under 36 characters.
TOO_LONG:The specified
uuidwas over 36 characters.The specified
titlewas over 300 characters.
INVALID_COLLECTION_ID:The specified
uuiddoes not exist.
- async set_description(uuid: str, desc: str) None[source]#
Update a collection’s description.
- Parameters:
uuid (str) –
title (str) –
New description for the collection, up to 500 characters long.
Can be an empty string.
- Return type:
None
- Raises:
redditwarp.exceptions.RedditError –
USER_REQUIRED:There is no user context.
NO_TEXT:The specified
uuidwas empty.The specified
titlewas empty.
TOO_SHORT:The specified
uuidwas under 36 characters.
TOO_LONG:The specified
uuidwas over 36 characters.The specified
descriptionwas over 500 characters.
INVALID_COLLECTION_ID:The specified
uuiddoes not exist.
- async set_display_layout(uuid: str, layout: str | None) None[source]#
Update a collection’s display layout.
- Parameters:
uuid (str) –
layout (Optional[str]) –
Either
TIMELINEorGALLERY.Case-sensitive.
If not specified or an empty string, the
display_layoutfield on the collection object will be set to null, which is treated the same asTIMELINE.
- Return type:
None
- Raises:
redditwarp.exceptions.RedditError –
USER_REQUIRED:There is no user context.
NO_TEXT:The specified
uuidwas empty.
TOO_SHORT:The specified
uuidwas under 36 characters.
TOO_LONG:The specified
uuidwas over 36 characters.
INVALID_COLLECTION_ID:The specified
uuiddoes not exist.
INVALID_OPTION:The value specified for
display_layoutis not valid.The options are case-sensitive.
- async follow(uuid: str) None[source]#
Follow a collection.
This actually has a similar effect to
follow_event(). When you follow a collection, all submissions in the collection will be followed, even if there is no event information on any of the posts.When a new submission is added to a followed collection, the submission is automatically followed. If any of the individual submissions are unfollowed via
unfollow_event()then the whole collection and all of its submissions are unfollowed, having the same effect asunfollow().To tell if a collection is followed, check if one of its submissions is:
coll = await client.p.collection.get_full('84359211-be58-4c98-87cd-26bc10c59fb3') if coll is None: raise Exception followed = any(subm.me.is_following_event for subm in coll) print(followed)
- Parameters:
uuid (str) –
- Return type:
None
- Raises:
redditwarp.exceptions.RedditError –
USER_REQUIRED:There is no user context.
NO_TEXT:The specified
uuidwas empty.
TOO_SHORT:The specified
uuidwas under 36 characters.
TOO_LONG:The specified
uuidwas over 36 characters.
redditwarp.http.exceptions.StatusCodeException –
500:The specified
uuiddoes not exist.