refactor: split devii catalog.py into package (ref.md 3.5)
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,106 @@
|
||||
# retoor <retoor@molodetz.nl>
|
||||
|
||||
from __future__ import annotations
|
||||
|
||||
from ..spec import Action
|
||||
from ._shared import confirm, path, query
|
||||
|
||||
|
||||
SOCIAL_ACTIONS: tuple[Action, ...] = (
|
||||
Action(
|
||||
name="follow_user",
|
||||
method="POST",
|
||||
path="/follow/{username}",
|
||||
summary="Follow a user",
|
||||
params=(path("username", "Username to follow."),),
|
||||
),
|
||||
Action(
|
||||
name="unfollow_user",
|
||||
method="POST",
|
||||
path="/follow/unfollow/{username}",
|
||||
summary="Unfollow a user",
|
||||
params=(path("username", "Username to unfollow."),),
|
||||
),
|
||||
Action(
|
||||
name="block_user",
|
||||
method="POST",
|
||||
path="/block/{username}",
|
||||
summary="Block a user so their posts, comments and messages are hidden and they cannot notify you",
|
||||
params=(path("username", "Username to block."),),
|
||||
),
|
||||
Action(
|
||||
name="unblock_user",
|
||||
method="POST",
|
||||
path="/block/unblock/{username}",
|
||||
summary="Unblock a user",
|
||||
params=(path("username", "Username to unblock."),),
|
||||
),
|
||||
Action(
|
||||
name="mute_user",
|
||||
method="POST",
|
||||
path="/mute/{username}",
|
||||
summary="Mute a user so they can no longer create notifications for you",
|
||||
params=(path("username", "Username to mute."),),
|
||||
),
|
||||
Action(
|
||||
name="unmute_user",
|
||||
method="POST",
|
||||
path="/mute/unmute/{username}",
|
||||
summary="Unmute a user",
|
||||
params=(path("username", "Username to unmute."),),
|
||||
),
|
||||
Action(
|
||||
name="list_followers",
|
||||
method="GET",
|
||||
path="/profile/{username}/followers",
|
||||
summary="List the users who follow a profile",
|
||||
requires_auth=False,
|
||||
params=(
|
||||
path("username", "Username whose followers to list."),
|
||||
query("page", "Page number, 25 per page."),
|
||||
),
|
||||
),
|
||||
Action(
|
||||
name="list_following",
|
||||
method="GET",
|
||||
path="/profile/{username}/following",
|
||||
summary="List the users a profile follows",
|
||||
requires_auth=False,
|
||||
params=(
|
||||
path("username", "Username whose following to list."),
|
||||
query("page", "Page number, 25 per page."),
|
||||
),
|
||||
),
|
||||
Action(
|
||||
name="list_media",
|
||||
method="GET",
|
||||
path="/profile/{username}",
|
||||
summary="List a user's uploaded media, newest first",
|
||||
requires_auth=False,
|
||||
params=(
|
||||
path("username", "Username whose media to list."),
|
||||
query("tab", "Profile tab (defaults to media for this action)."),
|
||||
query("page", "Page number, 24 per page."),
|
||||
),
|
||||
),
|
||||
Action(
|
||||
name="delete_media",
|
||||
method="POST",
|
||||
path="/media/{uid}/delete",
|
||||
summary="Delete an uploaded media attachment (your own, or anyone's when you are an administrator)",
|
||||
description=(
|
||||
"Removes the attachment from the user's Media tab and from any post, project, or "
|
||||
"gist where it was attached. Soft delete (restorable from admin trash). Show the user "
|
||||
"the exact media, get explicit confirmation, then call again with confirm=true."
|
||||
),
|
||||
requires_auth=True,
|
||||
params=(path("uid", "Attachment uid to delete."), confirm()),
|
||||
),
|
||||
Action(
|
||||
name="view_leaderboard",
|
||||
method="GET",
|
||||
path="/leaderboard",
|
||||
summary="View the leaderboard",
|
||||
requires_auth=False,
|
||||
),
|
||||
)
|
||||
Reference in New Issue
Block a user