Skip to content

Hints

BaseHint

Bases: ResponseModel

A base hint model. Not meant to be instantiated directly.

Parameters:

Name Type Description Default
id int

The ID of the hint

required
type HintType

The type of the hint

required
challenge int

Alias for challenge_id

required
challenge_id int

The ID of the challenge associated with the hint

required
cost int

The cost of the hint

required

Attributes:

Name Type Description
id int

The ID of the hint, read-only

type HintType

The type of the hint

challenge_id int

The ID of the challenge associated with the hint

cost int

The cost of the hint

Source code in ctfdpy\models\hints.py
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
class BaseHint(ResponseModel):
    """
    A base hint model. Not meant to be instantiated directly.

    Parameters
    ----------
    id : int
        The ID of the hint
    type : HintType
        The type of the hint
    challenge : int
        Alias for `challenge_id`
    challenge_id : int
        The ID of the challenge associated with the hint
    cost : int
        The cost of the hint

    Attributes
    ----------
    id : int
        The ID of the hint, read-only
    type : HintType
        The type of the hint
    challenge_id : int
        The ID of the challenge associated with the hint
    cost : int
        The cost of the hint
    """

    id: int = Field(frozen=True, exclude=True)
    type: HintType
    challenge_id: int = Field(
        validation_alias=AliasChoices("challenge_id", "challenge")
    )
    cost: int

    def to_update_payload(self) -> UpdateHintPayload:
        """
        Converts the hint to a payload for updating hints.

        Returns
        -------
        HintUpdatePayload
            The payload for updating hints
        """
        return UpdateHintPayload.model_validate(self, from_attributes=True)

to_update_payload

to_update_payload() -> UpdateHintPayload

Converts the hint to a payload for updating hints.

Returns:

Type Description
HintUpdatePayload

The payload for updating hints

Source code in ctfdpy\models\hints.py
52
53
54
55
56
57
58
59
60
61
def to_update_payload(self) -> UpdateHintPayload:
    """
    Converts the hint to a payload for updating hints.

    Returns
    -------
    HintUpdatePayload
        The payload for updating hints
    """
    return UpdateHintPayload.model_validate(self, from_attributes=True)

Hint

Bases: BaseHint

Represents a hint in CTFd.

Parameters:

Name Type Description Default
id int

The ID of the hint

required
type HintType

The type of the hint

required
challenge int

Alias for challenge_id

required
challenge_id int

The ID of the challenge associated with the hint

required
content str

The content of the hint

required
html str

The HTML content of the hint

required
cost int

The cost of the hint

required
requirements HintRequirementsDict | None

The requirements of the hint

required

Attributes:

Name Type Description
id int

The ID of the hint, read-only

type HintType

The type of the hint

challenge_id int

The ID of the challenge associated with the hint

content str

The content of the hint

html str

The HTML content of the hint, read-only

cost int

The cost of the hint

requirements HintRequirementsDict | None

The requirements of the hint

Source code in ctfdpy\models\hints.py
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
class Hint(BaseHint):
    """
    Represents a hint in CTFd.

    Parameters
    ----------
    id : int
        The ID of the hint
    type : HintType
        The type of the hint
    challenge : int
        Alias for `challenge_id`
    challenge_id : int
        The ID of the challenge associated with the hint
    content : str
        The content of the hint
    html : str
        The HTML content of the hint
    cost : int
        The cost of the hint
    requirements : HintRequirementsDict | None
        The requirements of the hint

    Attributes
    ----------
    id : int
        The ID of the hint, read-only
    type : HintType
        The type of the hint
    challenge_id : int
        The ID of the challenge associated with the hint
    content : str
        The content of the hint
    html : str
        The HTML content of the hint, read-only
    cost : int
        The cost of the hint
    requirements : HintRequirementsDict | None
        The requirements of the hint
    """

    content: str
    html: str = Field(frozen=True, exclude=True)
    requirements: HintRequirementsDict | None = None

LockedHint

Bases: BaseHint

Represents a locked hint in CTFd.

Parameters:

Name Type Description Default
id int

The ID of the hint

required
type HintType

The type of the hint

required
challenge int

Alias for challenge_id

required
challenge_id int

The ID of the challenge associated with the hint

required
cost int

The cost of the hint

required

Attributes:

Name Type Description
id int

The ID of the hint, read-only

type HintType

The type of the hint

challenge_id int

The ID of the challenge associated with the hint

cost int

The cost of the hint

Source code in ctfdpy\models\hints.py
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
class LockedHint(BaseHint):
    """
    Represents a locked hint in CTFd.

    Parameters
    ----------
    id : int
        The ID of the hint
    type : HintType
        The type of the hint
    challenge : int
        Alias for `challenge_id`
    challenge_id : int
        The ID of the challenge associated with the hint
    cost : int
        The cost of the hint

    Attributes
    ----------
    id : int
        The ID of the hint, read-only
    type : HintType
        The type of the hint
    challenge_id : int
        The ID of the challenge associated with the hint
    cost : int
        The cost of the hint
    """

UnlockedHint

Bases: BaseHint

Represents an unlocked hint in CTFd.

Parameters:

Name Type Description Default
id int

The ID of the hint

required
type HintType

The type of the hint

required
challenge int

Alias for challenge_id

required
challenge_id int

The ID of the challenge associated with the hint

required
content str

The content of the hint

required
html str

The HTML content of the hint

required
cost int

The cost of the hint

required

Attributes:

Name Type Description
id int

The ID of the hint, read-only

type HintType

The type of the hint

challenge_id int

The ID of the challenge associated with the hint

content str

The content of the hint

html str

The HTML content of the hint, read-only

cost int

The cost of the hint

Source code in ctfdpy\models\hints.py
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
class UnlockedHint(BaseHint):
    """
    Represents an unlocked hint in CTFd.

    Parameters
    ----------
    id : int
        The ID of the hint
    type : HintType
        The type of the hint
    challenge : int
        Alias for `challenge_id`
    challenge_id : int
        The ID of the challenge associated with the hint
    content : str
        The content of the hint
    html : str
        The HTML content of the hint
    cost : int
        The cost of the hint

    Attributes
    ----------
    id : int
        The ID of the hint, read-only
    type : HintType
        The type of the hint
    challenge_id : int
        The ID of the challenge associated with the hint
    content : str
        The content of the hint
    html : str
        The HTML content of the hint, read-only
    cost : int
        The cost of the hint
    """

    content: str
    html: str = Field(frozen=True, exclude=True)

CreateHintPayload

Bases: CreatePayloadModel

Represents a hint create payload in CTFd.

Parameters:

Name Type Description Default
type HintType

The type of the hint

required
challenge int

Alias for challenge_id

required
challenge_id int

The ID of the challenge associated with the hint

required
cost int

The cost of the hint

required
content str

The content of the hint

required
requirements HintRequirementsDict | None

The requirements of the hint

required
Source code in ctfdpy\models\hints.py
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
class CreateHintPayload(CreatePayloadModel):
    """
    Represents a hint create payload in CTFd.

    Parameters
    ----------
    type : HintType
        The type of the hint
    challenge : int
        Alias for `challenge_id`
    challenge_id : int
        The ID of the challenge associated with the hint
    cost : int
        The cost of the hint
    content : str
        The content of the hint
    requirements : HintRequirementsDict | None
        The requirements of the hint
    """

    type: HintType
    challenge_id: int = (
        Field(validation_alias=AliasChoices("challenge_id", "challenge")),
    )
    cost: int
    content: str
    requirements: HintRequirementsDict | None

UpdateHintPayload

Bases: UpdatePayloadModel

Represents a hint update payload in CTFd.

Parameters:

Name Type Description Default
type HintType

The type of the hint

required
challenge int

Alias for challenge_id

required
challenge_id int

The ID of the challenge associated with the hint

required
cost int

The cost of the hint

required
content str

The content of the hint

required
requirements HintRequirementsDict | None

The requirements of the hint. Specify None to remove the requirements

required

Attributes:

Name Type Description
type HintType

The type of the hint

challenge_id int

The ID of the challenge associated with the hint

cost int

The cost of the hint

content str

The content of the hint

requirements HintRequirementsDict | None

The requirements of the hint

Source code in ctfdpy\models\hints.py
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
class UpdateHintPayload(UpdatePayloadModel):
    """
    Represents a hint update payload in CTFd.

    Parameters
    ----------
    type : HintType
        The type of the hint
    challenge : int
        Alias for `challenge_id`
    challenge_id : int
        The ID of the challenge associated with the hint
    cost : int
        The cost of the hint
    content : str
        The content of the hint
    requirements : HintRequirementsDict | None
        The requirements of the hint. Specify `None` to remove the requirements

    Attributes
    ----------
    type : HintType
        The type of the hint
    challenge_id : int
        The ID of the challenge associated with the hint
    cost : int
        The cost of the hint
    content : str
        The content of the hint
    requirements : HintRequirementsDict | None
        The requirements of the hint
    """

    type: HintType = MISSING
    challenge_id: int = Field(
        MISSING, validation_alias=AliasChoices("challenge_id", "challenge")
    )
    cost: int = MISSING
    content: str = MISSING
    requirements: HintRequirementsDict | None = MISSING