Skip to content

Forum Routes

ForumRouteInterface

Bases: ClientMixin

Source code in src/bungio/api/bungie/forum.py
 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
 62
 63
 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
108
109
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
138
139
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
179
180
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
208
209
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
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
@custom_define()
class ForumRouteInterface(ClientMixin):
    async def get_topics_paged(
        self,
        category_filter: Union[ForumTopicsCategoryFiltersEnum, int],
        group: int,
        page: int,
        page_size: int,
        quick_date: Union[ForumTopicsQuickDateEnum, int],
        sort: Union[ForumTopicsSortEnum, int],
        locales: Optional[str] = None,
        tagstring: Optional[str] = None,
        auth: Optional[AuthData] = None,
    ) -> PostSearchResponse:
        """
        Get topics from any forum.

        Args:
            category_filter: A category filter
            group: The group, if any.
            page: Zero paged page number
            page_size: Unused
            quick_date: A date filter.
            sort: The sort mode.
            locales: Comma seperated list of locales posts must match to return in the result list. Default 'en'
            tagstring: The tags to search, if any.
            auth: Authentication information. Required when users with a private profile are queried, or when Bungie feels like it

        Returns:
            The model which is returned by bungie. [General endpoint information.](https://bungie-net.github.io/multi/index.html)
        """

        response = await self._client.http.get_topics_paged(
            category_filter=getattr(category_filter, "value", category_filter),
            group=group,
            page=page,
            page_size=page_size,
            quick_date=getattr(quick_date, "value", quick_date),
            sort=getattr(sort, "value", sort),
            locales=locales if locales is not None else None,
            tagstring=tagstring if tagstring is not None else None,
            auth=auth,
        )
        return await PostSearchResponse.from_dict(
            data=response,
            client=self._client,
            category_filter=category_filter,
            group=group,
            page=page,
            page_size=page_size,
            quick_date=quick_date,
            sort=sort,
            locales=locales,
            tagstring=tagstring,
            auth=auth,
        )

    async def get_core_topics_paged(
        self,
        category_filter: Union[ForumTopicsCategoryFiltersEnum, int],
        page: int,
        quick_date: Union[ForumTopicsQuickDateEnum, int],
        sort: Union[ForumTopicsSortEnum, int],
        locales: Optional[str] = None,
        auth: Optional[AuthData] = None,
    ) -> PostSearchResponse:
        """
        Gets a listing of all topics marked as part of the core group.

        Args:
            category_filter: The category filter.
            page: Zero base page
            quick_date: The date filter.
            sort: The sort mode.
            locales: Comma seperated list of locales posts must match to return in the result list. Default 'en'
            auth: Authentication information. Required when users with a private profile are queried, or when Bungie feels like it

        Returns:
            The model which is returned by bungie. [General endpoint information.](https://bungie-net.github.io/multi/index.html)
        """

        response = await self._client.http.get_core_topics_paged(
            category_filter=getattr(category_filter, "value", category_filter),
            page=page,
            quick_date=getattr(quick_date, "value", quick_date),
            sort=getattr(sort, "value", sort),
            locales=locales if locales is not None else None,
            auth=auth,
        )
        return await PostSearchResponse.from_dict(
            data=response,
            client=self._client,
            category_filter=category_filter,
            page=page,
            quick_date=quick_date,
            sort=sort,
            locales=locales,
            auth=auth,
        )

    async def get_posts_threaded_paged(
        self,
        get_parent_post: bool,
        page: int,
        page_size: int,
        parent_post_id: int,
        reply_size: int,
        root_thread_mode: bool,
        sort_mode: Union[ForumPostSortEnum, int],
        showbanned: Optional[str] = None,
        auth: Optional[AuthData] = None,
    ) -> PostSearchResponse:
        """
        Returns a thread of posts at the given parent, optionally returning replies to those posts as well as the original parent.

        Args:
            get_parent_post:
            page:
            page_size:
            parent_post_id:
            reply_size:
            root_thread_mode:
            sort_mode:
            showbanned: If this value is not null or empty, banned posts are requested to be returned
            auth: Authentication information. Required when users with a private profile are queried, or when Bungie feels like it

        Returns:
            The model which is returned by bungie. [General endpoint information.](https://bungie-net.github.io/multi/index.html)
        """

        response = await self._client.http.get_posts_threaded_paged(
            get_parent_post=get_parent_post,
            page=page,
            page_size=page_size,
            parent_post_id=parent_post_id,
            reply_size=reply_size,
            root_thread_mode=root_thread_mode,
            sort_mode=getattr(sort_mode, "value", sort_mode),
            showbanned=showbanned if showbanned is not None else None,
            auth=auth,
        )
        return await PostSearchResponse.from_dict(
            data=response,
            client=self._client,
            get_parent_post=get_parent_post,
            page=page,
            page_size=page_size,
            parent_post_id=parent_post_id,
            reply_size=reply_size,
            root_thread_mode=root_thread_mode,
            sort_mode=sort_mode,
            showbanned=showbanned,
            auth=auth,
        )

    async def get_posts_threaded_paged_from_child(
        self,
        child_post_id: int,
        page: int,
        page_size: int,
        reply_size: int,
        root_thread_mode: bool,
        sort_mode: Union[ForumPostSortEnum, int],
        showbanned: Optional[str] = None,
        auth: Optional[AuthData] = None,
    ) -> PostSearchResponse:
        """
        Returns a thread of posts starting at the topicId of the input childPostId, optionally returning replies to those posts as well as the original parent.

        Args:
            child_post_id:
            page:
            page_size:
            reply_size:
            root_thread_mode:
            sort_mode:
            showbanned: If this value is not null or empty, banned posts are requested to be returned
            auth: Authentication information. Required when users with a private profile are queried, or when Bungie feels like it

        Returns:
            The model which is returned by bungie. [General endpoint information.](https://bungie-net.github.io/multi/index.html)
        """

        response = await self._client.http.get_posts_threaded_paged_from_child(
            child_post_id=child_post_id,
            page=page,
            page_size=page_size,
            reply_size=reply_size,
            root_thread_mode=root_thread_mode,
            sort_mode=getattr(sort_mode, "value", sort_mode),
            showbanned=showbanned if showbanned is not None else None,
            auth=auth,
        )
        return await PostSearchResponse.from_dict(
            data=response,
            client=self._client,
            child_post_id=child_post_id,
            page=page,
            page_size=page_size,
            reply_size=reply_size,
            root_thread_mode=root_thread_mode,
            sort_mode=sort_mode,
            showbanned=showbanned,
            auth=auth,
        )

    async def get_post_and_parent(
        self, child_post_id: int, showbanned: Optional[str] = None, auth: Optional[AuthData] = None
    ) -> PostSearchResponse:
        """
        Returns the post specified and its immediate parent.

        Args:
            child_post_id:
            showbanned: If this value is not null or empty, banned posts are requested to be returned
            auth: Authentication information. Required when users with a private profile are queried, or when Bungie feels like it

        Returns:
            The model which is returned by bungie. [General endpoint information.](https://bungie-net.github.io/multi/index.html)
        """

        response = await self._client.http.get_post_and_parent(
            child_post_id=child_post_id, showbanned=showbanned if showbanned is not None else None, auth=auth
        )
        return await PostSearchResponse.from_dict(
            data=response, client=self._client, child_post_id=child_post_id, showbanned=showbanned, auth=auth
        )

    async def get_post_and_parent_awaiting_approval(
        self, child_post_id: int, showbanned: Optional[str] = None, auth: Optional[AuthData] = None
    ) -> PostSearchResponse:
        """
        Returns the post specified and its immediate parent of posts that are awaiting approval.

        Args:
            child_post_id:
            showbanned: If this value is not null or empty, banned posts are requested to be returned
            auth: Authentication information. Required when users with a private profile are queried, or when Bungie feels like it

        Returns:
            The model which is returned by bungie. [General endpoint information.](https://bungie-net.github.io/multi/index.html)
        """

        response = await self._client.http.get_post_and_parent_awaiting_approval(
            child_post_id=child_post_id, showbanned=showbanned if showbanned is not None else None, auth=auth
        )
        return await PostSearchResponse.from_dict(
            data=response, client=self._client, child_post_id=child_post_id, showbanned=showbanned, auth=auth
        )

    async def get_topic_for_content(self, content_id: int, auth: Optional[AuthData] = None) -> int:
        """
        Gets the post Id for the given content item's comments, if it exists.

        Args:
            content_id:
            auth: Authentication information. Required when users with a private profile are queried, or when Bungie feels like it

        Returns:
            The model which is returned by bungie. [General endpoint information.](https://bungie-net.github.io/multi/index.html)
        """

        response = await self._client.http.get_topic_for_content(content_id=content_id, auth=auth)
        return response["Response"]

    async def get_forum_tag_suggestions(
        self, partialtag: Optional[str] = None, auth: Optional[AuthData] = None
    ) -> list[TagResponse]:
        """
        Gets tag suggestions based on partial text entry, matching them with other tags previously used in the forums.

        Args:
            partialtag: The partial tag input to generate suggestions from.
            auth: Authentication information. Required when users with a private profile are queried, or when Bungie feels like it

        Returns:
            The model which is returned by bungie. [General endpoint information.](https://bungie-net.github.io/multi/index.html)
        """

        response = await self._client.http.get_forum_tag_suggestions(
            partialtag=partialtag if partialtag is not None else None, auth=auth
        )
        return [
            await TagResponse.from_dict(data=value, client=self._client, partialtag=partialtag, auth=auth)
            for value in response["Response"]
        ]

    async def get_poll(self, topic_id: int, auth: Optional[AuthData] = None) -> PostSearchResponse:
        """
        Gets the specified forum poll.

        Args:
            topic_id: The post id of the topic that has the poll.
            auth: Authentication information. Required when users with a private profile are queried, or when Bungie feels like it

        Returns:
            The model which is returned by bungie. [General endpoint information.](https://bungie-net.github.io/multi/index.html)
        """

        response = await self._client.http.get_poll(topic_id=topic_id, auth=auth)
        return await PostSearchResponse.from_dict(data=response, client=self._client, topic_id=topic_id, auth=auth)

    async def get_recruitment_thread_summaries(
        self, data: list[int], auth: Optional[AuthData] = None
    ) -> list[ForumRecruitmentDetail]:
        """
        Allows the caller to get a list of to 25 recruitment thread summary information objects.

        Args:
            data: The required data for this request.
            auth: Authentication information. Required when users with a private profile are queried, or when Bungie feels like it

        Returns:
            The model which is returned by bungie. [General endpoint information.](https://bungie-net.github.io/multi/index.html)
        """

        response = await self._client.http.get_recruitment_thread_summaries(
            auth=auth, **data.to_dict(_return_to_bungie_case=False)
        )
        return [
            await ForumRecruitmentDetail.from_dict(data=value, client=self._client, auth=auth)
            for value in response["Response"]
        ]

get_core_topics_paged(category_filter, page, quick_date, sort, locales=None, auth=None) async

Gets a listing of all topics marked as part of the core group.

Parameters:

Name Type Description Default
category_filter Union[ForumTopicsCategoryFiltersEnum, int]

The category filter.

required
page int

Zero base page

required
quick_date Union[ForumTopicsQuickDateEnum, int]

The date filter.

required
sort Union[ForumTopicsSortEnum, int]

The sort mode.

required
locales Optional[str]

Comma seperated list of locales posts must match to return in the result list. Default 'en'

None
auth Optional[AuthData]

Authentication information. Required when users with a private profile are queried, or when Bungie feels like it

None

Returns:

Type Description
PostSearchResponse

The model which is returned by bungie. General endpoint information.

Source code in src/bungio/api/bungie/forum.py
 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
108
109
110
111
112
113
114
115
116
117
118
async def get_core_topics_paged(
    self,
    category_filter: Union[ForumTopicsCategoryFiltersEnum, int],
    page: int,
    quick_date: Union[ForumTopicsQuickDateEnum, int],
    sort: Union[ForumTopicsSortEnum, int],
    locales: Optional[str] = None,
    auth: Optional[AuthData] = None,
) -> PostSearchResponse:
    """
    Gets a listing of all topics marked as part of the core group.

    Args:
        category_filter: The category filter.
        page: Zero base page
        quick_date: The date filter.
        sort: The sort mode.
        locales: Comma seperated list of locales posts must match to return in the result list. Default 'en'
        auth: Authentication information. Required when users with a private profile are queried, or when Bungie feels like it

    Returns:
        The model which is returned by bungie. [General endpoint information.](https://bungie-net.github.io/multi/index.html)
    """

    response = await self._client.http.get_core_topics_paged(
        category_filter=getattr(category_filter, "value", category_filter),
        page=page,
        quick_date=getattr(quick_date, "value", quick_date),
        sort=getattr(sort, "value", sort),
        locales=locales if locales is not None else None,
        auth=auth,
    )
    return await PostSearchResponse.from_dict(
        data=response,
        client=self._client,
        category_filter=category_filter,
        page=page,
        quick_date=quick_date,
        sort=sort,
        locales=locales,
        auth=auth,
    )

get_forum_tag_suggestions(partialtag=None, auth=None) async

Gets tag suggestions based on partial text entry, matching them with other tags previously used in the forums.

Parameters:

Name Type Description Default
partialtag Optional[str]

The partial tag input to generate suggestions from.

None
auth Optional[AuthData]

Authentication information. Required when users with a private profile are queried, or when Bungie feels like it

None

Returns:

Type Description
list[TagResponse]

The model which is returned by bungie. General endpoint information.

Source code in src/bungio/api/bungie/forum.py
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
async def get_forum_tag_suggestions(
    self, partialtag: Optional[str] = None, auth: Optional[AuthData] = None
) -> list[TagResponse]:
    """
    Gets tag suggestions based on partial text entry, matching them with other tags previously used in the forums.

    Args:
        partialtag: The partial tag input to generate suggestions from.
        auth: Authentication information. Required when users with a private profile are queried, or when Bungie feels like it

    Returns:
        The model which is returned by bungie. [General endpoint information.](https://bungie-net.github.io/multi/index.html)
    """

    response = await self._client.http.get_forum_tag_suggestions(
        partialtag=partialtag if partialtag is not None else None, auth=auth
    )
    return [
        await TagResponse.from_dict(data=value, client=self._client, partialtag=partialtag, auth=auth)
        for value in response["Response"]
    ]

get_poll(topic_id, auth=None) async

Gets the specified forum poll.

Parameters:

Name Type Description Default
topic_id int

The post id of the topic that has the poll.

required
auth Optional[AuthData]

Authentication information. Required when users with a private profile are queried, or when Bungie feels like it

None

Returns:

Type Description
PostSearchResponse

The model which is returned by bungie. General endpoint information.

Source code in src/bungio/api/bungie/forum.py
307
308
309
310
311
312
313
314
315
316
317
318
319
320
async def get_poll(self, topic_id: int, auth: Optional[AuthData] = None) -> PostSearchResponse:
    """
    Gets the specified forum poll.

    Args:
        topic_id: The post id of the topic that has the poll.
        auth: Authentication information. Required when users with a private profile are queried, or when Bungie feels like it

    Returns:
        The model which is returned by bungie. [General endpoint information.](https://bungie-net.github.io/multi/index.html)
    """

    response = await self._client.http.get_poll(topic_id=topic_id, auth=auth)
    return await PostSearchResponse.from_dict(data=response, client=self._client, topic_id=topic_id, auth=auth)

get_post_and_parent(child_post_id, showbanned=None, auth=None) async

Returns the post specified and its immediate parent.

Parameters:

Name Type Description Default
child_post_id int
required
showbanned Optional[str]

If this value is not null or empty, banned posts are requested to be returned

None
auth Optional[AuthData]

Authentication information. Required when users with a private profile are queried, or when Bungie feels like it

None

Returns:

Type Description
PostSearchResponse

The model which is returned by bungie. General endpoint information.

Source code in src/bungio/api/bungie/forum.py
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
async def get_post_and_parent(
    self, child_post_id: int, showbanned: Optional[str] = None, auth: Optional[AuthData] = None
) -> PostSearchResponse:
    """
    Returns the post specified and its immediate parent.

    Args:
        child_post_id:
        showbanned: If this value is not null or empty, banned posts are requested to be returned
        auth: Authentication information. Required when users with a private profile are queried, or when Bungie feels like it

    Returns:
        The model which is returned by bungie. [General endpoint information.](https://bungie-net.github.io/multi/index.html)
    """

    response = await self._client.http.get_post_and_parent(
        child_post_id=child_post_id, showbanned=showbanned if showbanned is not None else None, auth=auth
    )
    return await PostSearchResponse.from_dict(
        data=response, client=self._client, child_post_id=child_post_id, showbanned=showbanned, auth=auth
    )

get_post_and_parent_awaiting_approval(child_post_id, showbanned=None, auth=None) async

Returns the post specified and its immediate parent of posts that are awaiting approval.

Parameters:

Name Type Description Default
child_post_id int
required
showbanned Optional[str]

If this value is not null or empty, banned posts are requested to be returned

None
auth Optional[AuthData]

Authentication information. Required when users with a private profile are queried, or when Bungie feels like it

None

Returns:

Type Description
PostSearchResponse

The model which is returned by bungie. General endpoint information.

Source code in src/bungio/api/bungie/forum.py
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
async def get_post_and_parent_awaiting_approval(
    self, child_post_id: int, showbanned: Optional[str] = None, auth: Optional[AuthData] = None
) -> PostSearchResponse:
    """
    Returns the post specified and its immediate parent of posts that are awaiting approval.

    Args:
        child_post_id:
        showbanned: If this value is not null or empty, banned posts are requested to be returned
        auth: Authentication information. Required when users with a private profile are queried, or when Bungie feels like it

    Returns:
        The model which is returned by bungie. [General endpoint information.](https://bungie-net.github.io/multi/index.html)
    """

    response = await self._client.http.get_post_and_parent_awaiting_approval(
        child_post_id=child_post_id, showbanned=showbanned if showbanned is not None else None, auth=auth
    )
    return await PostSearchResponse.from_dict(
        data=response, client=self._client, child_post_id=child_post_id, showbanned=showbanned, auth=auth
    )

get_posts_threaded_paged(get_parent_post, page, page_size, parent_post_id, reply_size, root_thread_mode, sort_mode, showbanned=None, auth=None) async

Returns a thread of posts at the given parent, optionally returning replies to those posts as well as the original parent.

Parameters:

Name Type Description Default
get_parent_post bool
required
page int
required
page_size int
required
parent_post_id int
required
reply_size int
required
root_thread_mode bool
required
sort_mode Union[ForumPostSortEnum, int]
required
showbanned Optional[str]

If this value is not null or empty, banned posts are requested to be returned

None
auth Optional[AuthData]

Authentication information. Required when users with a private profile are queried, or when Bungie feels like it

None

Returns:

Type Description
PostSearchResponse

The model which is returned by bungie. General endpoint information.

Source code in src/bungio/api/bungie/forum.py
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
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
async def get_posts_threaded_paged(
    self,
    get_parent_post: bool,
    page: int,
    page_size: int,
    parent_post_id: int,
    reply_size: int,
    root_thread_mode: bool,
    sort_mode: Union[ForumPostSortEnum, int],
    showbanned: Optional[str] = None,
    auth: Optional[AuthData] = None,
) -> PostSearchResponse:
    """
    Returns a thread of posts at the given parent, optionally returning replies to those posts as well as the original parent.

    Args:
        get_parent_post:
        page:
        page_size:
        parent_post_id:
        reply_size:
        root_thread_mode:
        sort_mode:
        showbanned: If this value is not null or empty, banned posts are requested to be returned
        auth: Authentication information. Required when users with a private profile are queried, or when Bungie feels like it

    Returns:
        The model which is returned by bungie. [General endpoint information.](https://bungie-net.github.io/multi/index.html)
    """

    response = await self._client.http.get_posts_threaded_paged(
        get_parent_post=get_parent_post,
        page=page,
        page_size=page_size,
        parent_post_id=parent_post_id,
        reply_size=reply_size,
        root_thread_mode=root_thread_mode,
        sort_mode=getattr(sort_mode, "value", sort_mode),
        showbanned=showbanned if showbanned is not None else None,
        auth=auth,
    )
    return await PostSearchResponse.from_dict(
        data=response,
        client=self._client,
        get_parent_post=get_parent_post,
        page=page,
        page_size=page_size,
        parent_post_id=parent_post_id,
        reply_size=reply_size,
        root_thread_mode=root_thread_mode,
        sort_mode=sort_mode,
        showbanned=showbanned,
        auth=auth,
    )

get_posts_threaded_paged_from_child(child_post_id, page, page_size, reply_size, root_thread_mode, sort_mode, showbanned=None, auth=None) async

Returns a thread of posts starting at the topicId of the input childPostId, optionally returning replies to those posts as well as the original parent.

Parameters:

Name Type Description Default
child_post_id int
required
page int
required
page_size int
required
reply_size int
required
root_thread_mode bool
required
sort_mode Union[ForumPostSortEnum, int]
required
showbanned Optional[str]

If this value is not null or empty, banned posts are requested to be returned

None
auth Optional[AuthData]

Authentication information. Required when users with a private profile are queried, or when Bungie feels like it

None

Returns:

Type Description
PostSearchResponse

The model which is returned by bungie. General endpoint information.

Source code in src/bungio/api/bungie/forum.py
175
176
177
178
179
180
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
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
async def get_posts_threaded_paged_from_child(
    self,
    child_post_id: int,
    page: int,
    page_size: int,
    reply_size: int,
    root_thread_mode: bool,
    sort_mode: Union[ForumPostSortEnum, int],
    showbanned: Optional[str] = None,
    auth: Optional[AuthData] = None,
) -> PostSearchResponse:
    """
    Returns a thread of posts starting at the topicId of the input childPostId, optionally returning replies to those posts as well as the original parent.

    Args:
        child_post_id:
        page:
        page_size:
        reply_size:
        root_thread_mode:
        sort_mode:
        showbanned: If this value is not null or empty, banned posts are requested to be returned
        auth: Authentication information. Required when users with a private profile are queried, or when Bungie feels like it

    Returns:
        The model which is returned by bungie. [General endpoint information.](https://bungie-net.github.io/multi/index.html)
    """

    response = await self._client.http.get_posts_threaded_paged_from_child(
        child_post_id=child_post_id,
        page=page,
        page_size=page_size,
        reply_size=reply_size,
        root_thread_mode=root_thread_mode,
        sort_mode=getattr(sort_mode, "value", sort_mode),
        showbanned=showbanned if showbanned is not None else None,
        auth=auth,
    )
    return await PostSearchResponse.from_dict(
        data=response,
        client=self._client,
        child_post_id=child_post_id,
        page=page,
        page_size=page_size,
        reply_size=reply_size,
        root_thread_mode=root_thread_mode,
        sort_mode=sort_mode,
        showbanned=showbanned,
        auth=auth,
    )

get_recruitment_thread_summaries(data, auth=None) async

Allows the caller to get a list of to 25 recruitment thread summary information objects.

Parameters:

Name Type Description Default
data list[int]

The required data for this request.

required
auth Optional[AuthData]

Authentication information. Required when users with a private profile are queried, or when Bungie feels like it

None

Returns:

Type Description
list[ForumRecruitmentDetail]

The model which is returned by bungie. General endpoint information.

Source code in src/bungio/api/bungie/forum.py
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
async def get_recruitment_thread_summaries(
    self, data: list[int], auth: Optional[AuthData] = None
) -> list[ForumRecruitmentDetail]:
    """
    Allows the caller to get a list of to 25 recruitment thread summary information objects.

    Args:
        data: The required data for this request.
        auth: Authentication information. Required when users with a private profile are queried, or when Bungie feels like it

    Returns:
        The model which is returned by bungie. [General endpoint information.](https://bungie-net.github.io/multi/index.html)
    """

    response = await self._client.http.get_recruitment_thread_summaries(
        auth=auth, **data.to_dict(_return_to_bungie_case=False)
    )
    return [
        await ForumRecruitmentDetail.from_dict(data=value, client=self._client, auth=auth)
        for value in response["Response"]
    ]

get_topic_for_content(content_id, auth=None) async

Gets the post Id for the given content item's comments, if it exists.

Parameters:

Name Type Description Default
content_id int
required
auth Optional[AuthData]

Authentication information. Required when users with a private profile are queried, or when Bungie feels like it

None

Returns:

Type Description
int

The model which is returned by bungie. General endpoint information.

Source code in src/bungio/api/bungie/forum.py
270
271
272
273
274
275
276
277
278
279
280
281
282
283
async def get_topic_for_content(self, content_id: int, auth: Optional[AuthData] = None) -> int:
    """
    Gets the post Id for the given content item's comments, if it exists.

    Args:
        content_id:
        auth: Authentication information. Required when users with a private profile are queried, or when Bungie feels like it

    Returns:
        The model which is returned by bungie. [General endpoint information.](https://bungie-net.github.io/multi/index.html)
    """

    response = await self._client.http.get_topic_for_content(content_id=content_id, auth=auth)
    return response["Response"]

get_topics_paged(category_filter, group, page, page_size, quick_date, sort, locales=None, tagstring=None, auth=None) async

Get topics from any forum.

Parameters:

Name Type Description Default
category_filter Union[ForumTopicsCategoryFiltersEnum, int]

A category filter

required
group int

The group, if any.

required
page int

Zero paged page number

required
page_size int

Unused

required
quick_date Union[ForumTopicsQuickDateEnum, int]

A date filter.

required
sort Union[ForumTopicsSortEnum, int]

The sort mode.

required
locales Optional[str]

Comma seperated list of locales posts must match to return in the result list. Default 'en'

None
tagstring Optional[str]

The tags to search, if any.

None
auth Optional[AuthData]

Authentication information. Required when users with a private profile are queried, or when Bungie feels like it

None

Returns:

Type Description
PostSearchResponse

The model which is returned by bungie. General endpoint information.

Source code in src/bungio/api/bungie/forum.py
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
62
63
64
65
66
67
68
69
70
71
72
73
74
75
async def get_topics_paged(
    self,
    category_filter: Union[ForumTopicsCategoryFiltersEnum, int],
    group: int,
    page: int,
    page_size: int,
    quick_date: Union[ForumTopicsQuickDateEnum, int],
    sort: Union[ForumTopicsSortEnum, int],
    locales: Optional[str] = None,
    tagstring: Optional[str] = None,
    auth: Optional[AuthData] = None,
) -> PostSearchResponse:
    """
    Get topics from any forum.

    Args:
        category_filter: A category filter
        group: The group, if any.
        page: Zero paged page number
        page_size: Unused
        quick_date: A date filter.
        sort: The sort mode.
        locales: Comma seperated list of locales posts must match to return in the result list. Default 'en'
        tagstring: The tags to search, if any.
        auth: Authentication information. Required when users with a private profile are queried, or when Bungie feels like it

    Returns:
        The model which is returned by bungie. [General endpoint information.](https://bungie-net.github.io/multi/index.html)
    """

    response = await self._client.http.get_topics_paged(
        category_filter=getattr(category_filter, "value", category_filter),
        group=group,
        page=page,
        page_size=page_size,
        quick_date=getattr(quick_date, "value", quick_date),
        sort=getattr(sort, "value", sort),
        locales=locales if locales is not None else None,
        tagstring=tagstring if tagstring is not None else None,
        auth=auth,
    )
    return await PostSearchResponse.from_dict(
        data=response,
        client=self._client,
        category_filter=category_filter,
        group=group,
        page=page,
        page_size=page_size,
        quick_date=quick_date,
        sort=sort,
        locales=locales,
        tagstring=tagstring,
        auth=auth,
    )