diff --git a/public/openapi/read.yaml b/public/openapi/read.yaml index eb62a11ae8..fc7634cf19 100644 --- a/public/openapi/read.yaml +++ b/public/openapi/read.yaml @@ -579,142 +579,85 @@ paths: content: application/json: schema: - type: object - properties: - version: - type: string - lookupFailed: - type: boolean - latestVersion: - type: string - upgradeAvailable: - type: boolean - currentPrerelease: - type: boolean - notices: - type: array - items: - type: object - properties: - done: - type: boolean - doneText: - type: string - notDoneText: - type: string - tooltip: - type: string - link: - type: string - stats: - type: array - items: - type: object - properties: - yesterday: - type: number - today: - type: number - lastweek: - type: number - thisweek: - type: number - lastmonth: - type: number - thismonth: - type: number - alltime: - type: number - dayIncrease: - type: string - dayTextClass: - type: string - weekIncrease: - type: string - weekTextClass: - type: string - monthIncrease: - type: string - monthTextClass: - type: string - name: - type: string - canRestart: - type: boolean - lastrestart: - type: object + allOf: + - type: object properties: - uid: - type: number - description: A user identifier - ip: - type: string - timestamp: - type: number - user: - $ref: 'components/schemas/UserObject.yaml#/UserObject' - timestampISO: + version: type: string - description: An ISO 8601 formatted date string (complementing `timestamp`) - loggedIn: - type: boolean - relative_path: - type: string - template: - type: object - properties: - name: + lookupFailed: + type: boolean + latestVersion: type: string - admin/general/dashboard: + upgradeAvailable: type: boolean - url: - type: string - bodyClass: - type: string - _header: - type: object - properties: - tags: - type: object - properties: - meta: - type: array - items: - type: object - properties: - name: - type: string - content: - type: string - noEscape: - type: boolean - property: - type: string - link: - type: array - items: - type: object - properties: - rel: - type: string - type: - type: string - href: - type: string - title: - type: string - sizes: - type: string - widgets: - type: object - properties: - footer: + currentPrerelease: + type: boolean + notices: type: array items: type: object properties: - html: + done: + type: boolean + doneText: + type: string + notDoneText: + type: string + tooltip: + type: string + link: + type: string + stats: + type: array + items: + type: object + properties: + yesterday: + type: number + today: + type: number + lastweek: + type: number + thisweek: + type: number + lastmonth: + type: number + thismonth: + type: number + alltime: + type: number + dayIncrease: + type: string + dayTextClass: + type: string + weekIncrease: + type: string + weekTextClass: + type: string + monthIncrease: + type: string + monthTextClass: type: string + name: + type: string + canRestart: + type: boolean + lastrestart: + type: object + properties: + uid: + type: number + description: A user identifier + ip: + type: string + timestamp: + type: number + user: + $ref: 'components/schemas/UserObject.yaml#/UserObject' + timestampISO: + type: string + description: An ISO 8601 formatted date string (complementing `timestamp`) + - $ref: 'components/schemas/CommonProps.yaml#/CommonProps' /api/admin/general/languages: get: tags: @@ -744,76 +687,19 @@ paths: content: application/json: schema: - type: object - properties: - routes: - type: array - items: - type: object - properties: - route: - type: string - name: - type: string - loggedIn: - type: boolean - relative_path: - type: string - template: - type: object - properties: - name: - type: string - admin/general/homepage: - type: boolean - url: - type: string - bodyClass: - type: string - _header: - type: object - properties: - tags: - type: object - properties: - meta: - type: array - items: - type: object - properties: - name: - type: string - content: - type: string - noEscape: - type: boolean - property: - type: string - link: - type: array - items: - type: object - properties: - rel: - type: string - type: - type: string - href: - type: string - title: - type: string - sizes: - type: string - widgets: - type: object + allOf: + - type: object properties: - footer: + routes: type: array items: type: object properties: - html: + route: + type: string + name: type: string + - $ref: 'components/schemas/CommonProps.yaml#/CommonProps' /api/admin/general/social: get: tags: @@ -831,67 +717,7 @@ paths: content: application/json: schema: - type: object - properties: - loggedIn: - type: boolean - relative_path: - type: string - template: - type: object - properties: - name: - type: string - admin/manage/categories: - type: boolean - url: - type: string - bodyClass: - type: string - _header: - type: object - properties: - tags: - type: object - properties: - meta: - type: array - items: - type: object - properties: - name: - type: string - content: - type: string - noEscape: - type: boolean - property: - type: string - link: - type: array - items: - type: object - properties: - rel: - type: string - type: - type: string - href: - type: string - title: - type: string - sizes: - type: string - widgets: - type: object - properties: - footer: - type: array - items: - type: object - properties: - html: - type: string + $ref: 'components/schemas/CommonProps.yaml#/CommonProps' "/api/admin/manage/categories/{category_id}": get: tags: @@ -909,65 +735,10 @@ paths: content: application/json: schema: - type: object - properties: - category: - type: object + allOf: + - type: object properties: - cid: - type: number - description: A category identifier - name: - type: string - description: - type: string - icon: - type: string - bgColor: - type: string - color: - type: string - slug: - type: string - parentCid: - type: number - description: The category identifier for the category that is the immediate ancestor of the current category - topic_count: - type: number - description: The number of topics in the category - post_count: - type: number - description: The number of posts in the category - disabled: - type: number - order: - type: number - link: - type: string - numRecentReplies: - type: number - class: - type: string - imageClass: - type: string - timesClicked: - type: number - isSection: - type: number - totalPostCount: - type: number - description: The number of posts in the category - totalTopicCount: - type: number - description: The number of topics in the category - descriptionParsed: - type: string - tagWhitelist: - type: array - items: {} - unread-class: - type: string - parent: + category: type: object properties: cid: @@ -1006,8 +777,8 @@ paths: type: string imageClass: type: string - descriptionParsed: - type: string + timesClicked: + type: number isSection: type: number totalPostCount: @@ -1016,79 +787,77 @@ paths: totalTopicCount: type: number description: The number of topics in the category - allCategories: - type: array - items: - type: object - properties: - text: - type: string - value: - type: number - selected: - type: boolean - customClasses: - type: array - items: {} - loggedIn: - type: boolean - relative_path: - type: string - template: - type: object - properties: - name: - type: string - admin/manage/category: - type: boolean - url: - type: string - bodyClass: - type: string - _header: - type: object - properties: - tags: - type: object - properties: - meta: - type: array - items: - type: object - properties: - name: - type: string - content: - type: string - noEscape: - type: boolean - property: - type: string - link: + descriptionParsed: + type: string + tagWhitelist: type: array - items: - type: object - properties: - rel: - type: string - type: - type: string - href: - type: string - title: - type: string - sizes: - type: string - widgets: - type: object - properties: - footer: + items: {} + unread-class: + type: string + parent: + type: object + properties: + cid: + type: number + description: A category identifier + name: + type: string + description: + type: string + icon: + type: string + bgColor: + type: string + color: + type: string + slug: + type: string + parentCid: + type: number + description: The category identifier for the category that is the immediate ancestor of the current category + topic_count: + type: number + description: The number of topics in the category + post_count: + type: number + description: The number of posts in the category + disabled: + type: number + order: + type: number + link: + type: string + numRecentReplies: + type: number + class: + type: string + imageClass: + type: string + descriptionParsed: + type: string + isSection: + type: number + totalPostCount: + type: number + description: The number of posts in the category + totalTopicCount: + type: number + description: The number of topics in the category + allCategories: type: array items: type: object properties: - html: + text: type: string + value: + type: number + selected: + type: boolean + customClasses: + type: array + items: {} + - $ref: 'components/schemas/CommonProps.yaml#/CommonProps' "/api/admin/manage/categories/{category_id}/analytics": get: tags: @@ -1106,88 +875,31 @@ paths: content: application/json: schema: - type: object - properties: - name: - type: string - analytics: - type: object - properties: - pageviews:hourly: - type: array - items: - type: number - pageviews:daily: - type: array - items: - type: number - topics:daily: - type: array - items: - type: number - posts:daily: - type: array - items: - type: number - loggedIn: - type: boolean - relative_path: - type: string - template: - type: object + allOf: + - type: object properties: name: type: string - admin/manage/category-analytics: - type: boolean - url: - type: string - bodyClass: - type: string - _header: - type: object - properties: - tags: + analytics: type: object properties: - meta: + pageviews:hourly: type: array items: - type: object - properties: - name: - type: string - content: - type: string - noEscape: - type: boolean - property: - type: string - link: + type: number + pageviews:daily: type: array items: - type: object - properties: - rel: - type: string - type: - type: string - href: - type: string - title: - type: string - sizes: - type: string - widgets: - type: object - properties: - footer: - type: array - items: - type: object - properties: - html: - type: string + type: number + topics:daily: + type: array + items: + type: number + posts:daily: + type: array + items: + type: number + - $ref: 'components/schemas/CommonProps.yaml#/CommonProps' "/api/admin/manage/privileges/{cid?}": get: tags: @@ -1205,21 +917,32 @@ paths: content: application/json: schema: - type: object - properties: - privileges: - type: object + allOf: + - type: object properties: - labels: + privileges: type: object properties: + labels: + type: object + properties: + users: + type: array + items: + type: object + properties: + name: + type: string + groups: + type: array + items: + type: object + properties: + name: + type: string users: type: array - items: - type: object - properties: - name: - type: string + items: {} groups: type: array items: @@ -1227,169 +950,101 @@ paths: properties: name: type: string - users: - type: array - items: {} - groups: - type: array - items: - type: object - properties: - name: - type: string - nameEscaped: - type: string - privileges: - type: object - properties: - groups:find: - type: boolean - groups:read: - type: boolean - groups:topics:read: - type: boolean - groups:topics:create: - type: boolean - groups:topics:reply: - type: boolean - groups:topics:tag: - type: boolean - groups:posts:edit: - type: boolean - groups:posts:history: - type: boolean - groups:posts:delete: - type: boolean - groups:posts:upvote: - type: boolean - groups:posts:downvote: - type: boolean - groups:topics:delete: - type: boolean - groups:posts:view_deleted: - type: boolean - groups:purge: - type: boolean - groups:moderate: - type: boolean - isPrivate: - type: boolean - columnCountUser: - type: number - columnCountUserOther: - type: number - columnCountGroup: - type: number - columnCountGroupOther: - type: number - categories: - type: array - items: - type: object - properties: - cid: - type: number - description: A category identifier - name: - type: string - icon: - type: string - selected: - type: boolean - level: - type: string - parentCid: - type: number - description: The category identifier for the category that is the immediate ancestor of the current category - color: - type: string - bgColor: - type: string - imageClass: - type: string - selectedCategory: - type: object - properties: - cid: - type: number - description: A category identifier - name: - type: string - level: - type: string - icon: - type: string - parentCid: - type: number - description: The category identifier for the category that is the immediate ancestor of the current category - color: - type: string - bgColor: - type: string - selected: - type: boolean - cid: - type: number - description: A category identifier - loggedIn: - type: boolean - relative_path: - type: string - template: - type: object - properties: - name: - type: string - admin/manage/privileges: - type: boolean - url: - type: string - bodyClass: - type: string - _header: - type: object - properties: - tags: - type: object - properties: - meta: - type: array - items: - type: object - properties: - name: + nameEscaped: type: string - content: - type: string - noEscape: + privileges: + type: object + properties: + groups:find: + type: boolean + groups:read: + type: boolean + groups:topics:read: + type: boolean + groups:topics:create: + type: boolean + groups:topics:reply: + type: boolean + groups:topics:tag: + type: boolean + groups:posts:edit: + type: boolean + groups:posts:history: + type: boolean + groups:posts:delete: + type: boolean + groups:posts:upvote: + type: boolean + groups:posts:downvote: + type: boolean + groups:topics:delete: + type: boolean + groups:posts:view_deleted: + type: boolean + groups:purge: + type: boolean + groups:moderate: + type: boolean + isPrivate: type: boolean - property: - type: string - link: - type: array - items: - type: object - properties: - rel: - type: string - type: - type: string - href: - type: string - title: - type: string - sizes: - type: string - widgets: - type: object - properties: - footer: + columnCountUser: + type: number + columnCountUserOther: + type: number + columnCountGroup: + type: number + columnCountGroupOther: + type: number + categories: type: array items: type: object properties: - html: + cid: + type: number + description: A category identifier + name: + type: string + icon: + type: string + selected: + type: boolean + level: + type: string + parentCid: + type: number + description: The category identifier for the category that is the immediate ancestor of the current category + color: type: string + bgColor: + type: string + imageClass: + type: string + selectedCategory: + type: object + properties: + cid: + type: number + description: A category identifier + name: + type: string + level: + type: string + icon: + type: string + parentCid: + type: number + description: The category identifier for the category that is the immediate ancestor of the current category + color: + type: string + bgColor: + type: string + selected: + type: boolean + cid: + type: number + description: A category identifier + - $ref: 'components/schemas/CommonProps.yaml#/CommonProps' /api/admin/manage/tags: get: tags: @@ -1419,153 +1074,96 @@ paths: content: application/json: schema: - type: object - properties: - users: - type: array - items: - $ref: 'components/schemas/UserObject.yaml#/UserObject' - page: - type: number - pageCount: - type: number - resultsPerPage: - type: number - latest: - type: boolean - search_display: - type: string - pagination: - type: object + allOf: + - type: object properties: - rel: - type: array - items: - type: object - properties: - rel: - type: string - href: - type: string - pages: + users: type: array items: - type: object - properties: - page: - type: number - active: - type: boolean - qs: - type: string - separator: - type: boolean - currentPage: + $ref: 'components/schemas/UserObject.yaml#/UserObject' + page: type: number pageCount: type: number - prev: - type: object - properties: - page: - type: number - active: - type: boolean - qs: - type: string - next: - type: object - properties: - page: - type: number - active: - type: boolean - qs: - type: string - first: - type: object - properties: - page: - type: number - active: - type: boolean - qs: - type: string - last: - type: object - properties: - page: - type: number - active: - type: boolean - qs: - type: string - requireEmailConfirmation: - type: number - inviteOnly: - type: boolean - adminInviteOnly: - type: boolean - loggedIn: - type: boolean - relative_path: - type: string - template: - type: object - properties: - name: - type: string - admin/manage/users: + resultsPerPage: + type: number + latest: type: boolean - url: - type: string - bodyClass: - type: string - _header: - type: object - properties: - tags: + search_display: + type: string + pagination: type: object properties: - meta: + rel: type: array items: type: object properties: - name: - type: string - content: + rel: type: string - noEscape: - type: boolean - property: + href: type: string - link: + pages: type: array items: type: object properties: - rel: - type: string - type: - type: string - href: - type: string - title: - type: string - sizes: + page: + type: number + active: + type: boolean + qs: type: string - widgets: - type: object - properties: - footer: - type: array - items: - type: object - properties: - html: - type: string - /api/admin/manage/users/search: + separator: + type: boolean + currentPage: + type: number + pageCount: + type: number + prev: + type: object + properties: + page: + type: number + active: + type: boolean + qs: + type: string + next: + type: object + properties: + page: + type: number + active: + type: boolean + qs: + type: string + first: + type: object + properties: + page: + type: number + active: + type: boolean + qs: + type: string + last: + type: object + properties: + page: + type: number + active: + type: boolean + qs: + type: string + requireEmailConfirmation: + type: number + inviteOnly: + type: boolean + adminInviteOnly: + type: boolean + - $ref: 'components/schemas/CommonProps.yaml#/CommonProps' + /api/admin/manage/users/search: get: tags: - admin @@ -1576,72 +1174,15 @@ paths: content: application/json: schema: - type: object - properties: - search_display: - type: string - users: - type: array - items: {} - loggedIn: - type: boolean - relative_path: - type: string - template: - type: object + allOf: + - type: object properties: - name: + search_display: type: string - admin/manage/users: - type: boolean - url: - type: string - bodyClass: - type: string - _header: - type: object - properties: - tags: - type: object - properties: - meta: - type: array - items: - type: object - properties: - name: - type: string - content: - type: string - noEscape: - type: boolean - property: - type: string - link: - type: array - items: - type: object - properties: - rel: - type: string - type: - type: string - href: - type: string - title: - type: string - sizes: - type: string - widgets: - type: object - properties: - footer: + users: type: array - items: - type: object - properties: - html: - type: string + items: {} + - $ref: 'components/schemas/CommonProps.yaml#/CommonProps' /api/admin/manage/users/latest: get: tags: @@ -1653,152 +1194,95 @@ paths: content: application/json: schema: - type: object - properties: - users: - type: array - items: - $ref: 'components/schemas/UserObject.yaml#/UserObject' - page: - type: number - pageCount: - type: number - resultsPerPage: - type: number - latest: - type: boolean - search_display: - type: string - pagination: - type: object + allOf: + - type: object properties: - rel: - type: array - items: - type: object - properties: - rel: - type: string - href: - type: string - pages: + users: type: array items: - type: object - properties: - page: - type: number - active: - type: boolean - qs: - type: string - separator: - type: boolean - currentPage: + $ref: 'components/schemas/UserObject.yaml#/UserObject' + page: type: number pageCount: type: number - prev: - type: object - properties: - page: - type: number - active: - type: boolean - qs: - type: string - next: - type: object - properties: - page: - type: number - active: - type: boolean - qs: - type: string - first: - type: object - properties: - page: - type: number - active: - type: boolean - qs: - type: string - last: - type: object - properties: - page: - type: number - active: - type: boolean - qs: - type: string - requireEmailConfirmation: - type: number - inviteOnly: - type: boolean - adminInviteOnly: - type: boolean - loggedIn: - type: boolean - relative_path: - type: string - template: - type: object - properties: - name: - type: string - admin/manage/users: + resultsPerPage: + type: number + latest: type: boolean - url: - type: string - bodyClass: - type: string - _header: - type: object - properties: - tags: + search_display: + type: string + pagination: type: object properties: - meta: + rel: type: array items: type: object properties: - name: - type: string - content: + rel: type: string - noEscape: - type: boolean - property: + href: type: string - link: + pages: type: array items: type: object properties: - rel: - type: string - type: - type: string - href: - type: string - title: - type: string - sizes: + page: + type: number + active: + type: boolean + qs: type: string - widgets: - type: object - properties: - footer: - type: array - items: - type: object - properties: - html: - type: string + separator: + type: boolean + currentPage: + type: number + pageCount: + type: number + prev: + type: object + properties: + page: + type: number + active: + type: boolean + qs: + type: string + next: + type: object + properties: + page: + type: number + active: + type: boolean + qs: + type: string + first: + type: object + properties: + page: + type: number + active: + type: boolean + qs: + type: string + last: + type: object + properties: + page: + type: number + active: + type: boolean + qs: + type: string + requireEmailConfirmation: + type: number + inviteOnly: + type: boolean + adminInviteOnly: + type: boolean + - $ref: 'components/schemas/CommonProps.yaml#/CommonProps' /api/admin/manage/users/not-validated: get: tags: @@ -1810,152 +1294,95 @@ paths: content: application/json: schema: - type: object - properties: - users: - type: array - items: - $ref: 'components/schemas/UserObject.yaml#/UserObject' - page: - type: number - pageCount: - type: number - resultsPerPage: - type: number - notvalidated: - type: boolean - search_display: - type: string - pagination: - type: object + allOf: + - type: object properties: - rel: - type: array - items: - type: object - properties: - rel: - type: string - href: - type: string - pages: + users: type: array items: - type: object - properties: - page: - type: number - active: - type: boolean - qs: - type: string - separator: - type: boolean - currentPage: + $ref: 'components/schemas/UserObject.yaml#/UserObject' + page: type: number pageCount: type: number - prev: - type: object - properties: - page: - type: number - active: - type: boolean - qs: - type: string - next: - type: object - properties: - page: - type: number - active: - type: boolean - qs: - type: string - first: - type: object - properties: - page: - type: number - active: - type: boolean - qs: - type: string - last: - type: object - properties: - page: - type: number - active: - type: boolean - qs: - type: string - requireEmailConfirmation: - type: number - inviteOnly: - type: boolean - adminInviteOnly: - type: boolean - loggedIn: - type: boolean - relative_path: - type: string - template: - type: object - properties: - name: - type: string - admin/manage/users: + resultsPerPage: + type: number + notvalidated: type: boolean - url: - type: string - bodyClass: - type: string - _header: - type: object - properties: - tags: + search_display: + type: string + pagination: type: object properties: - meta: + rel: type: array items: type: object properties: - name: - type: string - content: + rel: type: string - noEscape: - type: boolean - property: + href: type: string - link: + pages: type: array items: type: object properties: - rel: - type: string - type: - type: string - href: - type: string - title: - type: string - sizes: + page: + type: number + active: + type: boolean + qs: type: string - widgets: - type: object - properties: - footer: - type: array - items: - type: object - properties: - html: - type: string + separator: + type: boolean + currentPage: + type: number + pageCount: + type: number + prev: + type: object + properties: + page: + type: number + active: + type: boolean + qs: + type: string + next: + type: object + properties: + page: + type: number + active: + type: boolean + qs: + type: string + first: + type: object + properties: + page: + type: number + active: + type: boolean + qs: + type: string + last: + type: object + properties: + page: + type: number + active: + type: boolean + qs: + type: string + requireEmailConfirmation: + type: number + inviteOnly: + type: boolean + adminInviteOnly: + type: boolean + - $ref: 'components/schemas/CommonProps.yaml#/CommonProps' /api/admin/manage/users/no-posts: get: tags: @@ -2015,330 +1442,216 @@ paths: content: application/json: schema: - type: object - properties: - groups: - type: array - items: - type: object - properties: - name: - type: string - description: - type: string - deleted: - oneOf: - - type: number - - type: string - hidden: - type: number - system: - type: number - userTitle: - type: string - icon: - type: string - labelColor: - type: string - slug: - type: string - createtime: - type: number - memberCount: - type: number - private: - type: number - cover:url: - type: string - cover:position: - type: string - userTitleEnabled: - type: number - disableJoinRequests: - type: number - disableLeave: - type: number - nameEncoded: - type: string - displayName: - type: string - textColor: - type: string - createtimeISO: - type: string - cover:thumb:url: - type: string - ownerUid: - type: number - pagination: - type: object - properties: - prev: - type: object - properties: - page: - type: number - active: - type: boolean - next: - type: object - properties: - page: - type: number - active: - type: boolean - first: - type: object - properties: - page: - type: number - active: - type: boolean - last: - type: object - properties: - page: - type: number - active: - type: boolean - rel: - type: array - items: {} - pages: - type: array - items: {} - currentPage: - type: number - pageCount: - type: number - yourid: - type: number - loggedIn: - type: boolean - relative_path: - type: string - template: - type: object - properties: - name: - type: string - admin/manage/groups: - type: boolean - url: - type: string - bodyClass: - type: string - _header: - type: object - properties: - tags: - type: object - properties: - meta: - type: array - items: - type: object - properties: - name: - type: string - content: - type: string - noEscape: - type: boolean - property: - type: string - link: - type: array - items: - type: object - properties: - rel: - type: string - type: - type: string - href: - type: string - title: - type: string - sizes: - type: string - widgets: - type: object + allOf: + - type: object properties: - footer: + groups: type: array items: type: object properties: - html: + name: type: string - "/api/admin/manage/groups/{name}": - get: - tags: - - admin - summary: /api/admin/manage/groups/{name} - parameters: - - name: name - in: path - required: true - schema: - type: string - responses: - "200": - description: "" + description: + type: string + deleted: + oneOf: + - type: number + - type: string + hidden: + type: number + system: + type: number + userTitle: + type: string + icon: + type: string + labelColor: + type: string + slug: + type: string + createtime: + type: number + memberCount: + type: number + private: + type: number + cover:url: + type: string + cover:position: + type: string + userTitleEnabled: + type: number + disableJoinRequests: + type: number + disableLeave: + type: number + nameEncoded: + type: string + displayName: + type: string + textColor: + type: string + createtimeISO: + type: string + cover:thumb:url: + type: string + ownerUid: + type: number + pagination: + type: object + properties: + prev: + type: object + properties: + page: + type: number + active: + type: boolean + next: + type: object + properties: + page: + type: number + active: + type: boolean + first: + type: object + properties: + page: + type: number + active: + type: boolean + last: + type: object + properties: + page: + type: number + active: + type: boolean + rel: + type: array + items: {} + pages: + type: array + items: {} + currentPage: + type: number + pageCount: + type: number + yourid: + type: number + - $ref: 'components/schemas/CommonProps.yaml#/CommonProps' + "/api/admin/manage/groups/{name}": + get: + tags: + - admin + summary: /api/admin/manage/groups/{name} + parameters: + - name: name + in: path + required: true + schema: + type: string + responses: + "200": + description: "" content: application/json: schema: - type: object - properties: - group: - type: object - properties: - name: - type: string - slug: - type: string - createtime: - type: number - userTitle: - type: string - userTitleEnabled: - type: number - description: - type: string - memberCount: - type: number - hidden: - type: number - system: - type: number - private: - type: number - disableJoinRequests: - type: number - disableLeave: - type: number - icon: - type: string - labelColor: - type: string - textColor: - type: string - nameEncoded: - type: string - displayName: - type: string - createtimeISO: - type: string - cover:thumb:url: - type: string - cover:url: - type: string - cover:position: - type: string - descriptionParsed: - type: string - members: - type: array - items: - allOf: - - $ref: 'components/schemas/UserObject.yaml#/UserObject' - - type: object - properties: - isOwner: - type: boolean - membersNextStart: - type: number - pending: - type: array - items: {} - invited: - type: array - items: {} - isMember: - type: boolean - isPending: - type: boolean - isInvited: - type: boolean - isOwner: - type: boolean - groupNames: - type: array - items: - type: object - properties: - encodedName: - type: string - displayName: - type: string - selected: - type: boolean - allowPrivateGroups: - type: number - maximumGroupNameLength: - type: number - maximumGroupTitleLength: - type: number - loggedIn: - type: boolean - relative_path: - type: string - template: - type: object - properties: - name: - type: string - admin/manage/group: - type: boolean - url: - type: string - bodyClass: - type: string - _header: - type: object + allOf: + - type: object properties: - tags: + group: type: object properties: - meta: + name: + type: string + slug: + type: string + createtime: + type: number + userTitle: + type: string + userTitleEnabled: + type: number + description: + type: string + memberCount: + type: number + hidden: + type: number + system: + type: number + private: + type: number + disableJoinRequests: + type: number + disableLeave: + type: number + icon: + type: string + labelColor: + type: string + textColor: + type: string + nameEncoded: + type: string + displayName: + type: string + createtimeISO: + type: string + cover:thumb:url: + type: string + cover:url: + type: string + cover:position: + type: string + descriptionParsed: + type: string + members: type: array items: - type: object - properties: - name: - type: string - content: - type: string - noEscape: - type: boolean - property: - type: string - link: + allOf: + - $ref: 'components/schemas/UserObject.yaml#/UserObject' + - type: object + properties: + isOwner: + type: boolean + membersNextStart: + type: number + pending: type: array - items: - type: object - properties: - rel: - type: string - type: - type: string - href: - type: string - title: - type: string - sizes: - type: string - widgets: - type: object - properties: - footer: + items: {} + invited: + type: array + items: {} + isMember: + type: boolean + isPending: + type: boolean + isInvited: + type: boolean + isOwner: + type: boolean + groupNames: type: array items: type: object properties: - html: + encodedName: + type: string + displayName: type: string + selected: + type: boolean + allowPrivateGroups: + type: number + maximumGroupNameLength: + type: number + maximumGroupTitleLength: + type: number + - $ref: 'components/schemas/CommonProps.yaml#/CommonProps' /api/admin/manage/uploads: get: tags: @@ -2356,162 +1669,106 @@ paths: content: application/json: schema: - type: object - properties: - title: - type: string - delivery: - type: array - items: - type: object - properties: - username: - type: string - description: A friendly name for a given user account - picture: - nullable: true - type: string - uid: - type: number - description: A user identifier - icon:text: - type: string - description: A single-letter representation of a username. This is used in the auto-generated icon given to users without an avatar - icon:bgColor: - type: string - description: A six-character hexadecimal colour code assigned to the user. This value is used in conjunction with `icon:text` for the user's auto-generated icon - example: "#f44336" - lastDelivery: - type: string - setting: - type: boolean - default: - type: string - pagination: - type: object + allOf: + - type: object properties: - rel: + title: + type: string + delivery: type: array items: type: object properties: - rel: + username: type: string - href: + description: A friendly name for a given user account + picture: + nullable: true type: string - pages: - type: array - items: - type: object - properties: - page: + uid: type: number - active: - type: boolean - qs: + description: A user identifier + icon:text: + type: string + description: A single-letter representation of a username. This is used in the auto-generated icon given to users without an avatar + icon:bgColor: + type: string + description: A six-character hexadecimal colour code assigned to the user. This value is used in conjunction with `icon:text` for the user's auto-generated icon + example: "#f44336" + lastDelivery: type: string - separator: + setting: type: boolean - currentPage: - type: number - pageCount: - type: number - prev: - type: object - properties: - page: - type: number - active: - type: boolean - qs: - type: string - next: - type: object - properties: - page: - type: number - active: - type: boolean - qs: - type: string - first: - type: object - properties: - page: - type: number - active: - type: boolean - qs: - type: string - last: - type: object - properties: - page: - type: number - active: - type: boolean - qs: - type: string - loggedIn: - type: boolean - relative_path: - type: string - template: - type: object - properties: - name: + default: type: string - admin/manage/digest: - type: boolean - url: - type: string - bodyClass: - type: string - _header: - type: object - properties: - tags: + pagination: type: object properties: - meta: + rel: type: array items: type: object properties: - name: - type: string - content: + rel: type: string - noEscape: - type: boolean - property: + href: type: string - link: + pages: type: array items: type: object properties: - rel: - type: string - type: - type: string - href: - type: string - title: - type: string - sizes: + page: + type: number + active: + type: boolean + qs: type: string - widgets: - type: object - properties: - footer: - type: array - items: - type: object - properties: - html: - type: string + separator: + type: boolean + currentPage: + type: number + pageCount: + type: number + prev: + type: object + properties: + page: + type: number + active: + type: boolean + qs: + type: string + next: + type: object + properties: + page: + type: number + active: + type: boolean + qs: + type: string + first: + type: object + properties: + page: + type: number + active: + type: boolean + qs: + type: string + last: + type: object + properties: + page: + type: number + active: + type: boolean + qs: + type: string + - $ref: 'components/schemas/CommonProps.yaml#/CommonProps' "/api/admin/settings/{term?}": + # TODO: The responses seem totally wrong here, maybe use additionalProperties get: tags: - admin @@ -2528,76 +1785,19 @@ paths: content: application/json: schema: - type: object - properties: - notificationSettings: - type: array - items: - type: object - properties: - name: - type: string - label: - type: string - loggedIn: - type: boolean - relative_path: - type: string - template: - type: object - properties: - name: - type: string - admin/settings/user: - type: boolean - url: - type: string - bodyClass: - type: string - _header: - type: object - properties: - tags: - type: object - properties: - meta: - type: array - items: - type: object - properties: - name: - type: string - content: - type: string - noEscape: - type: boolean - property: - type: string - link: - type: array - items: - type: object - properties: - rel: - type: string - type: - type: string - href: - type: string - title: - type: string - sizes: - type: string - widgets: - type: object + allOf: + - type: object properties: - footer: + notificationSettings: type: array items: type: object properties: - html: + name: + type: string + label: type: string + - $ref: 'components/schemas/CommonProps.yaml#/CommonProps' "/api/admin/appearance/{term?}": get: tags: @@ -2615,67 +1815,7 @@ paths: content: application/json: schema: - type: object - properties: - loggedIn: - type: boolean - relative_path: - type: string - template: - type: object - properties: - name: - type: string - admin/appearance/customise: - type: boolean - url: - type: string - bodyClass: - type: string - _header: - type: object - properties: - tags: - type: object - properties: - meta: - type: array - items: - type: object - properties: - name: - type: string - content: - type: string - noEscape: - type: boolean - property: - type: string - link: - type: array - items: - type: object - properties: - rel: - type: string - type: - type: string - href: - type: string - title: - type: string - sizes: - type: string - widgets: - type: object - properties: - footer: - type: array - items: - type: object - properties: - html: - type: string + $ref: 'components/schemas/CommonProps.yaml#/CommonProps' /api/admin/extend/plugins: get: tags: @@ -2687,171 +1827,114 @@ paths: content: application/json: schema: - type: object - properties: - installed: - type: array - items: - type: object - properties: - latest: - type: string - description: - type: string - name: - type: string - updated: - type: string - url: - type: string - numInstalls: - type: number - isCompatible: - type: boolean - id: - type: string - installed: - type: boolean - active: - type: boolean - isTheme: - type: boolean - error: - type: boolean - version: - type: string - license: + allOf: + - type: object + properties: + installed: + type: array + items: type: object properties: + latest: + type: string + description: + type: string name: type: string - text: + updated: type: string - outdated: - type: boolean - settingsRoute: - type: string - installedCount: - type: number - activeCount: - type: number - inactiveCount: - type: number - upgradeCount: - type: number - download: - type: array - items: - type: object - properties: - name: - type: string - updated: - type: string - description: - type: string - latest: - type: string - url: - type: string - numInstalls: - type: number - isCompatible: - type: boolean - id: - type: string - installed: - type: boolean - active: - type: boolean - incompatible: - type: array - items: - type: object - properties: - latest: - type: string - description: - type: string - name: - type: string - updated: - type: string - url: - type: string - numInstalls: - type: number - isCompatible: - type: boolean - id: - type: string - installed: - type: boolean - active: - type: boolean - submitPluginUsage: - type: number - version: - type: string - loggedIn: - type: boolean - relative_path: - type: string - template: - type: object - properties: - name: - type: string - admin/extend/plugins: - type: boolean - url: - type: string - bodyClass: - type: string - _header: - type: object - properties: - tags: - type: object - properties: - meta: - type: array - items: + url: + type: string + numInstalls: + type: number + isCompatible: + type: boolean + id: + type: string + installed: + type: boolean + active: + type: boolean + isTheme: + type: boolean + error: + type: boolean + version: + type: string + license: type: object properties: name: type: string - content: - type: string - noEscape: - type: boolean - property: - type: string - link: - type: array - items: - type: object - properties: - rel: - type: string - type: - type: string - href: - type: string - title: - type: string - sizes: + text: type: string - widgets: - type: object - properties: - footer: + outdated: + type: boolean + settingsRoute: + type: string + installedCount: + type: number + activeCount: + type: number + inactiveCount: + type: number + upgradeCount: + type: number + download: type: array items: type: object properties: - html: + name: + type: string + updated: + type: string + description: + type: string + latest: + type: string + url: + type: string + numInstalls: + type: number + isCompatible: + type: boolean + id: + type: string + installed: + type: boolean + active: + type: boolean + incompatible: + type: array + items: + type: object + properties: + latest: type: string + description: + type: string + name: + type: string + updated: + type: string + url: + type: string + numInstalls: + type: number + isCompatible: + type: boolean + id: + type: string + installed: + type: boolean + active: + type: boolean + submitPluginUsage: + type: number + version: + type: string + - $ref: 'components/schemas/CommonProps.yaml#/CommonProps' /api/admin/extend/widgets: get: tags: @@ -2863,145 +1946,86 @@ paths: content: application/json: schema: - type: object - properties: - templates: - type: array - items: - type: object - properties: - template: - type: string - areas: - type: array - items: - type: object - properties: - name: - type: string - location: - type: string - areas: - type: array - items: - type: object - properties: - name: - type: string - template: - type: string - location: - type: string - data: - type: array - items: - type: object - properties: - widget: - type: string - data: - type: object - properties: - html: - type: string - cid: - type: string - title: - type: string - container: - type: string - groups: - type: array - items: {} - groupsHideFrom: - type: array - items: {} - hide-mobile: - type: string - numTags: - type: string - numUsers: - type: string - text: - type: string - parseAsPost: - type: string - numTopics: - type: string - availableWidgets: - type: array - items: - type: object - properties: - widget: - type: string - name: - type: string - description: - type: string - content: - type: string - loggedIn: - type: boolean - relative_path: - type: string - template: - type: object - properties: - name: - type: string - admin/extend/widgets: - type: boolean - url: - type: string - bodyClass: - type: string - _header: - type: object - properties: - tags: - type: object - properties: - meta: - type: array - items: - type: object - properties: - name: - type: string - content: - type: string - noEscape: - type: boolean - property: - type: string - link: - type: array - items: - type: object - properties: - rel: - type: string - type: - type: string - href: - type: string - title: - type: string - sizes: - type: string - widgets: - type: object + allOf: + - type: object properties: - footer: + templates: type: array items: type: object properties: - html: + template: type: string - "304": - description: "" + areas: + type: array + items: + type: object + properties: + name: + type: string + location: + type: string + areas: + type: array + items: + type: object + properties: + name: + type: string + template: + type: string + location: + type: string + data: + type: array + items: + type: object + properties: + widget: + type: string + data: + type: object + properties: + html: + type: string + cid: + type: string + title: + type: string + container: + type: string + groups: + type: array + items: {} + groupsHideFrom: + type: array + items: {} + hide-mobile: + type: string + numTags: + type: string + numUsers: + type: string + text: + type: string + parseAsPost: + type: string + numTopics: + type: string + availableWidgets: + type: array + items: + type: object + properties: + widget: + type: string + name: + type: string + description: + type: string + content: + type: string + - $ref: 'components/schemas/CommonProps.yaml#/CommonProps' /api/admin/extend/rewards: get: tags: @@ -3019,315 +2043,257 @@ paths: content: application/json: schema: - type: object - properties: - redis: - type: object + allOf: + - type: object properties: - aof_current_rewrite_time_sec: - type: string - aof_enabled: - type: string - aof_last_bgrewrite_status: - type: string - aof_last_rewrite_time_sec: - type: string - aof_rewrite_in_progress: - type: string - aof_rewrite_scheduled: - type: string - arch_bits: - type: string - blocked_clients: - type: string - client_biggest_input_buf: - type: string - client_longest_output_list: - type: string - config_file: - type: string - connected_clients: - type: string - connected_slaves: - type: string - db0: - type: string - evicted_keys: - type: string - expired_keys: - type: string - gcc_version: - type: string - hz: - type: string - instantaneous_ops_per_sec: - type: string - keyspace_hits: - type: string - keyspace_misses: - type: string - latest_fork_usec: - type: string - loading: - type: string - lru_clock: - type: string - master_repl_offset: - type: string - mem_allocator: - type: string - mem_fragmentation_ratio: - type: string - multiplexing_api: - type: string - os: - type: string - process_id: - type: string - pubsub_channels: - type: string - pubsub_patterns: - type: string - rdb_bgsave_in_progress: - type: string - rdb_changes_since_last_save: - type: string - rdb_current_bgsave_time_sec: - type: string - rdb_last_bgsave_status: - type: string - rdb_last_bgsave_time_sec: - type: string - rdb_last_save_time: - type: string - redis_build_id: - type: string - redis_git_dirty: - type: string - redis_git_sha1: - type: string - redis_mode: - type: string - redis_version: - type: string - rejected_connections: - type: string - repl_backlog_active: - type: string - repl_backlog_first_byte_offset: - type: string - repl_backlog_histlen: - type: string - repl_backlog_size: - type: string - role: - type: string - run_id: - type: string - sync_full: - type: string - sync_partial_err: - type: string - sync_partial_ok: - type: string - tcp_port: - type: string - total_commands_processed: - type: string - total_connections_received: - type: string - uptime_in_days: - type: string - uptime_in_seconds: - type: string - used_cpu_sys: - type: string - used_cpu_sys_children: - type: string - used_cpu_user: - type: string - used_cpu_user_children: - type: string - used_memory: - type: string - used_memory_human: - type: string - used_memory_lua: - type: string - used_memory_peak: - type: string - used_memory_peak_human: - type: string - used_memory_rss: - type: string - keys: - type: string - expires: - type: string - avg_ttl: - type: string - instantaneous_input: - type: string - instantaneous_output: - type: string - total_net_input: - type: string - total_net_output: - type: string - raw: - type: string redis: - type: boolean - mongo: - type: object - properties: - db: - type: string - collections: - type: number - objects: - type: number - avgObjSize: - type: string - dataSize: - type: string - storageSize: - type: string - numExtents: - type: number - indexes: - type: number - indexSize: - type: string - ok: - type: number - mem: type: object properties: - bits: - type: number - resident: + aof_current_rewrite_time_sec: + type: string + aof_enabled: + type: string + aof_last_bgrewrite_status: + type: string + aof_last_rewrite_time_sec: + type: string + aof_rewrite_in_progress: + type: string + aof_rewrite_scheduled: + type: string + arch_bits: + type: string + blocked_clients: + type: string + client_biggest_input_buf: + type: string + client_longest_output_list: + type: string + config_file: + type: string + connected_clients: + type: string + connected_slaves: + type: string + db0: + type: string + evicted_keys: + type: string + expired_keys: + type: string + gcc_version: + type: string + hz: + type: string + instantaneous_ops_per_sec: + type: string + keyspace_hits: + type: string + keyspace_misses: + type: string + latest_fork_usec: + type: string + loading: + type: string + lru_clock: + type: string + master_repl_offset: + type: string + mem_allocator: + type: string + mem_fragmentation_ratio: + type: string + multiplexing_api: + type: string + os: + type: string + process_id: + type: string + pubsub_channels: + type: string + pubsub_patterns: + type: string + rdb_bgsave_in_progress: + type: string + rdb_changes_since_last_save: + type: string + rdb_current_bgsave_time_sec: + type: string + rdb_last_bgsave_status: + type: string + rdb_last_bgsave_time_sec: + type: string + rdb_last_save_time: + type: string + redis_build_id: + type: string + redis_git_dirty: + type: string + redis_git_sha1: + type: string + redis_mode: + type: string + redis_version: + type: string + rejected_connections: + type: string + repl_backlog_active: + type: string + repl_backlog_first_byte_offset: + type: string + repl_backlog_histlen: + type: string + repl_backlog_size: type: string - virtual: + role: type: string - supported: + run_id: + type: string + sync_full: + type: string + sync_partial_err: + type: string + sync_partial_ok: + type: string + tcp_port: + type: string + total_commands_processed: + type: string + total_connections_received: + type: string + uptime_in_days: + type: string + uptime_in_seconds: + type: string + used_cpu_sys: + type: string + used_cpu_sys_children: + type: string + used_cpu_user: + type: string + used_cpu_user_children: + type: string + used_memory: + type: string + used_memory_human: + type: string + used_memory_lua: + type: string + used_memory_peak: + type: string + used_memory_peak_human: + type: string + used_memory_rss: + type: string + keys: + type: string + expires: + type: string + avg_ttl: + type: string + instantaneous_input: + type: string + instantaneous_output: + type: string + total_net_input: + type: string + total_net_output: + type: string + raw: + type: string + redis: type: boolean - mapped: + mongo: + type: object + properties: + db: type: string - mappedWithJournal: + collections: type: number - collectionData: - type: array - items: - type: object - properties: - name: - type: string - count: - type: number - size: - type: number - avgObjSize: - type: number - storageSize: - type: number - totalIndexSize: - type: number - indexSizes: + objects: + type: number + avgObjSize: + type: string + dataSize: + type: string + storageSize: + type: string + numExtents: + type: number + indexes: + type: number + indexSize: + type: string + ok: + type: number + mem: + type: object + properties: + bits: + type: number + resident: + type: string + virtual: + type: string + supported: + type: boolean + mapped: + type: string + mappedWithJournal: + type: number + collectionData: + type: array + items: type: object properties: - _id_: + name: + type: string + count: type: number - expireAt_1: + size: type: number - _key_1_score_-1: + avgObjSize: type: number - _key_1_value_-1: + storageSize: type: number - content_text_uid_1_cid_1: + totalIndexSize: type: number - network: - type: object - properties: - bytesIn: - type: string - bytesOut: + indexSizes: + type: object + properties: + _id_: + type: number + expireAt_1: + type: number + _key_1_score_-1: + type: number + _key_1_value_-1: + type: number + content_text_uid_1_cid_1: + type: number + network: + type: object + properties: + bytesIn: + type: string + bytesOut: + type: string + numRequests: + type: string + raw: type: string - numRequests: + fileSize: + type: number + storageEngine: type: string - raw: - type: string - fileSize: - type: number - storageEngine: - type: string - host: - type: string - version: - type: string - uptime: - type: number - mongo: - type: boolean - loggedIn: - type: boolean - relative_path: - type: string - template: - type: object - properties: - name: - type: string - admin/advanced/database: - type: boolean - url: - type: string - bodyClass: - type: string - _header: - type: object - properties: - tags: - type: object - properties: - meta: - type: array - items: - type: object - properties: - name: - type: string - content: - type: string - noEscape: - type: boolean - property: - type: string - link: - type: array - items: - type: object - properties: - rel: - type: string - type: - type: string - href: - type: string - title: - type: string - sizes: - type: string - widgets: - type: object - properties: - footer: - type: array - items: - type: object - properties: - html: - type: string + host: + type: string + version: + type: string + uptime: + type: number + mongo: + type: boolean /api/admin/advanced/events: get: tags: @@ -3369,139 +2335,82 @@ paths: content: application/json: schema: - type: object - properties: - postCache: - type: object - properties: - length: - type: number - max: - type: number - itemCount: - type: number - percentFull: - type: string - avgPostSize: - type: number - hits: - type: string - misses: - type: string - hitRatio: - type: string - groupCache: - type: object - properties: - length: - type: number - max: - type: number - itemCount: - type: number - percentFull: - type: string - hits: - type: string - misses: - type: string - hitRatio: - type: string - localCache: - type: object - properties: - length: - type: number - max: - type: number - itemCount: - type: number - percentFull: - type: string - dump: - type: boolean - hits: - type: string - misses: - type: string - hitRatio: - type: string - objectCache: - type: object - properties: - length: - type: number - max: - type: number - itemCount: - type: number - percentFull: - type: string - hits: - type: string - misses: - type: string - hitRatio: - type: string - loggedIn: - type: boolean - relative_path: - type: string - template: - type: object - properties: - name: - type: string - admin/advanced/cache: - type: boolean - url: - type: string - bodyClass: - type: string - _header: - type: object + allOf: + - type: object properties: - tags: + postCache: type: object properties: - meta: - type: array - items: - type: object - properties: - name: - type: string - content: - type: string - noEscape: - type: boolean - property: - type: string - link: - type: array - items: - type: object - properties: - rel: - type: string - type: - type: string - href: - type: string - title: - type: string - sizes: - type: string - widgets: - type: object - properties: - footer: - type: array - items: - type: object - properties: - html: - type: string + length: + type: number + max: + type: number + itemCount: + type: number + percentFull: + type: string + avgPostSize: + type: number + hits: + type: string + misses: + type: string + hitRatio: + type: string + groupCache: + type: object + properties: + length: + type: number + max: + type: number + itemCount: + type: number + percentFull: + type: string + hits: + type: string + misses: + type: string + hitRatio: + type: string + localCache: + type: object + properties: + length: + type: number + max: + type: number + itemCount: + type: number + percentFull: + type: string + dump: + type: boolean + hits: + type: string + misses: + type: string + hitRatio: + type: string + objectCache: + type: object + properties: + length: + type: number + max: + type: number + itemCount: + type: number + percentFull: + type: string + hits: + type: string + misses: + type: string + hitRatio: + type: string + - $ref: 'components/schemas/CommonProps.yaml#/CommonProps' /api/admin/development/logger: get: tags: @@ -3513,67 +2422,7 @@ paths: content: application/json: schema: - type: object - properties: - loggedIn: - type: boolean - relative_path: - type: string - template: - type: object - properties: - name: - type: string - admin/development/logger: - type: boolean - url: - type: string - bodyClass: - type: string - _header: - type: object - properties: - tags: - type: object - properties: - meta: - type: array - items: - type: object - properties: - name: - type: string - content: - type: string - noEscape: - type: boolean - property: - type: string - link: - type: array - items: - type: object - properties: - rel: - type: string - type: - type: string - href: - type: string - title: - type: string - sizes: - type: string - widgets: - type: object - properties: - footer: - type: array - items: - type: object - properties: - html: - type: string + $ref: 'components/schemas/CommonProps.yaml#/CommonProps' /api/admin/development/info: get: tags: @@ -4015,455 +2864,386 @@ paths: content: application/json: schema: - type: object - properties: - title: - description: The category title - type: string - categories: - description: A collection of category data objects - type: array - items: - type: object - properties: - cid: - type: number - description: A category identifier - name: - type: string - description: - type: string - icon: - type: string - slug: - type: string - topic_count: - type: number - description: The number of topics in the category - order: - type: number - bgColor: - type: string - link: - type: string - class: - type: string - numRecentReplies: - type: number - color: - type: string - post_count: - type: number - description: The number of posts in the category - descriptionParsed: - type: string - parentCid: - type: number - description: The category identifier for the category that is the immediate ancestor of the current category - disabled: - type: number - isSection: - type: number - totalPostCount: - type: number - description: The number of posts in the category - totalTopicCount: - type: number - description: The number of topics in the category - tagWhitelist: - type: array - items: {} - unread-class: - type: string - children: - type: array - items: - type: object - properties: - cid: - type: number - description: A category identifier - name: - type: string - description: - type: string - icon: - type: string - slug: - type: string - topic_count: - type: number - description: The number of topics in the category - order: - type: number - bgColor: - type: string - link: - type: string - class: - type: string - numRecentReplies: - type: number - color: - type: string - post_count: - type: number - description: The number of posts in the category - parentCid: - type: number - description: The category identifier for the category that is the immediate ancestor of the current category - disabled: - type: number - isSection: - type: number - totalPostCount: - type: number - description: The number of posts in the category - totalTopicCount: - type: number - description: The number of topics in the category - descriptionParsed: - type: string - tagWhitelist: - type: array - items: {} - unread-class: - type: string - children: - type: array - items: {} - parent: + allOf: + - type: object + properties: + title: + description: The category title + type: string + categories: + description: A collection of category data objects + type: array + items: + type: object + properties: + cid: + type: number + description: A category identifier + name: + type: string + description: + type: string + icon: + type: string + slug: + type: string + topic_count: + type: number + description: The number of topics in the category + order: + type: number + bgColor: + type: string + link: + type: string + class: + type: string + numRecentReplies: + type: number + color: + type: string + post_count: + type: number + description: The number of posts in the category + descriptionParsed: + type: string + parentCid: + type: number + description: The category identifier for the category that is the immediate ancestor of the current category + disabled: + type: number + isSection: + type: number + totalPostCount: + type: number + description: The number of posts in the category + totalTopicCount: + type: number + description: The number of topics in the category + tagWhitelist: + type: array + items: {} + unread-class: + type: string + children: + type: array + items: type: object properties: - link: + cid: + type: number + description: A category identifier + name: type: string - class: + description: type: string icon: type: string - description: + slug: type: string - order: - type: number topic_count: type: number description: The number of topics in the category - name: - type: string - cid: - type: number - description: A category identifier - post_count: - type: number - description: The number of posts in the category - numRecentReplies: + order: type: number bgColor: type: string - slug: + link: type: string - color: + class: type: string - disabled: + numRecentReplies: type: number - descriptionParsed: + color: type: string - isSection: + post_count: type: number + description: The number of posts in the category parentCid: type: number description: The category identifier for the category that is the immediate ancestor of the current category + disabled: + type: number + isSection: + type: number totalPostCount: type: number description: The number of posts in the category totalTopicCount: type: number description: The number of topics in the category + descriptionParsed: + type: string tagWhitelist: type: array items: {} unread-class: type: string - imageClass: - type: string - posts: - type: array - items: - type: object - properties: - pid: - type: number - timestamp: - type: number - content: - type: string - timestampISO: - type: string - description: An ISO 8601 formatted date string (complementing `timestamp`) - user: + children: + type: array + items: {} + parent: + type: object + properties: + link: + type: string + class: + type: string + icon: + type: string + description: + type: string + order: + type: number + topic_count: + type: number + description: The number of topics in the category + name: + type: string + cid: + type: number + description: A category identifier + post_count: + type: number + description: The number of posts in the category + numRecentReplies: + type: number + bgColor: + type: string + slug: + type: string + color: + type: string + disabled: + type: number + descriptionParsed: + type: string + isSection: + type: number + parentCid: + type: number + description: The category identifier for the category that is the immediate ancestor of the current category + totalPostCount: + type: number + description: The number of posts in the category + totalTopicCount: + type: number + description: The number of topics in the category + tagWhitelist: + type: array + items: {} + unread-class: + type: string + imageClass: + type: string + posts: + type: array + items: type: object properties: - uid: + pid: type: number - description: A user identifier - username: - type: string - description: A friendly name for a given user account - userslug: - type: string - description: An URL-safe variant of the username (i.e. lower-cased, spaces removed, etc.) - picture: - nullable: true - type: string - icon:text: + timestamp: + type: number + content: type: string - description: A single-letter representation of a username. This is used in the auto-generated icon given to users without an avatar - icon:bgColor: + timestampISO: type: string - description: A six-character hexadecimal colour code assigned to the user. This value is used in conjunction with `icon:text` for the user's auto-generated icon - example: "#f44336" - index: - type: number - cid: - type: number - description: A category identifier - parentCid: - type: number - description: The category identifier for the category that is the immediate ancestor of the current category - topic: - type: object - properties: - slug: - type: string - title: - type: string - imageClass: - type: string - timesClicked: - type: number - posts: - type: array - items: - type: object - properties: - pid: - type: number - timestamp: - type: number - content: - type: string - timestampISO: - type: string - description: An ISO 8601 formatted date string (complementing `timestamp`) - user: - type: object - properties: - uid: - type: number - description: A user identifier - username: - type: string - description: A friendly name for a given user account - userslug: - type: string - description: An URL-safe variant of the username (i.e. lower-cased, spaces removed, etc.) - picture: - nullable: true - type: string - icon:text: - type: string - description: A single-letter representation of a username. This is used in the auto-generated icon given to users without an avatar - icon:bgColor: + description: An ISO 8601 formatted date string (complementing `timestamp`) + user: + type: object + properties: + uid: + type: number + description: A user identifier + username: + type: string + description: A friendly name for a given user account + userslug: + type: string + description: An URL-safe variant of the username (i.e. lower-cased, spaces removed, etc.) + picture: + nullable: true + type: string + icon:text: + type: string + description: A single-letter representation of a username. This is used in the auto-generated icon given to users without an avatar + icon:bgColor: + type: string + description: A six-character hexadecimal colour code assigned to the user. This value is used in conjunction with `icon:text` for the user's auto-generated icon + example: "#f44336" + index: + type: number + cid: + type: number + description: A category identifier + parentCid: + type: number + description: The category identifier for the category that is the immediate ancestor of the current category + topic: + type: object + properties: + slug: + type: string + title: + type: string + imageClass: type: string - description: A six-character hexadecimal colour code assigned to the user. This value is used in conjunction with `icon:text` for the user's auto-generated icon - example: "#f44336" - index: - type: number - cid: - type: number - description: A category identifier - parentCid: - type: number - description: The category identifier for the category that is the immediate ancestor of the current category - topic: + timesClicked: + type: number + posts: + type: array + items: type: object properties: - slug: + pid: + type: number + timestamp: + type: number + content: type: string - title: + timestampISO: type: string - teaser: - type: object - properties: - url: - type: string - timestampISO: - type: string - description: An ISO 8601 formatted date string (complementing `timestamp`) - pid: - type: number - topic: + description: An ISO 8601 formatted date string (complementing `timestamp`) + user: + type: object + properties: + uid: + type: number + description: A user identifier + username: + type: string + description: A friendly name for a given user account + userslug: + type: string + description: An URL-safe variant of the username (i.e. lower-cased, spaces removed, etc.) + picture: + nullable: true + type: string + icon:text: + type: string + description: A single-letter representation of a username. This is used in the auto-generated icon given to users without an avatar + icon:bgColor: + type: string + description: A six-character hexadecimal colour code assigned to the user. This value is used in conjunction with `icon:text` for the user's auto-generated icon + example: "#f44336" + index: + type: number + cid: + type: number + description: A category identifier + parentCid: + type: number + description: The category identifier for the category that is the immediate ancestor of the current category + topic: + type: object + properties: + slug: + type: string + title: + type: string + teaser: type: object properties: - slug: + url: type: string - title: + timestampISO: type: string - imageClass: - type: string - breadcrumbs: - type: array - items: - type: object - properties: - text: - type: string - url: - type: string - loggedIn: - type: boolean - relative_path: - type: string - template: - type: object - properties: - name: - type: string - categories: - type: boolean - url: - type: string - bodyClass: - type: string - topics: - type: array - items: - type: object - properties: - tid: - type: number - description: A topic identifier - uid: - type: number - description: A user identifier - cid: - type: number - description: A category identifier - mainPid: - type: number - description: The post id of the first post in this topic (also called the "original post") - title: - type: string - slug: - type: string - timestamp: - type: number - lastposttime: - type: number - postcount: - type: number - viewcount: - type: number - teaserPid: - type: number - upvotes: - type: number - downvotes: - type: number - deleted: - type: number - locked: - type: number - pinned: - type: number - description: Whether or not this particular topic is pinned to the top of the category - titleRaw: - type: string - timestampISO: - type: string - description: An ISO 8601 formatted date string (complementing `timestamp`) - lastposttimeISO: - type: string - votes: - type: number - category: - type: object - properties: - cid: - type: number - description: A category identifier - name: - type: string - slug: - type: string - icon: - type: string - image: - nullable: true + description: An ISO 8601 formatted date string (complementing `timestamp`) + pid: + type: number + topic: + type: object + properties: + slug: + type: string + title: + type: string imageClass: - nullable: true type: string - bgColor: + breadcrumbs: + type: array + items: + type: object + properties: + text: type: string - color: + url: type: string - disabled: - type: number - user: + topics: + type: array + items: type: object properties: + tid: + type: number + description: A topic identifier uid: type: number description: A user identifier - username: - type: string - description: A friendly name for a given user account - fullname: + cid: + type: number + description: A category identifier + mainPid: + type: number + description: The post id of the first post in this topic (also called the "original post") + title: type: string - userslug: + slug: type: string - description: An URL-safe variant of the username (i.e. lower-cased, spaces removed, etc.) - reputation: + timestamp: + type: number + lastposttime: type: number postcount: type: number - picture: - nullable: true - type: string - signature: - nullable: true - type: string - banned: + viewcount: type: number - status: - type: string - icon:text: - type: string - description: A single-letter representation of a username. This is used in the auto-generated icon given to users without an avatar - icon:bgColor: - type: string - description: A six-character hexadecimal colour code assigned to the user. This value is used in conjunction with `icon:text` for the user's auto-generated icon - example: "#f44336" - banned_until_readable: - type: string - teaser: - type: object - properties: - pid: + teaserPid: type: number - uid: + upvotes: type: number - description: A user identifier - timestamp: + downvotes: type: number - tid: + deleted: type: number - description: A topic identifier - content: + locked: + type: number + pinned: + type: number + description: Whether or not this particular topic is pinned to the top of the category + titleRaw: type: string timestampISO: type: string description: An ISO 8601 formatted date string (complementing `timestamp`) + lastposttimeISO: + type: string + votes: + type: number + category: + type: object + properties: + cid: + type: number + description: A category identifier + name: + type: string + slug: + type: string + icon: + type: string + image: + nullable: true + imageClass: + nullable: true + type: string + bgColor: + type: string + color: + type: string + disabled: + type: number user: type: object properties: @@ -4473,12 +3253,25 @@ paths: username: type: string description: A friendly name for a given user account + fullname: + type: string userslug: type: string description: An URL-safe variant of the username (i.e. lower-cased, spaces removed, etc.) + reputation: + type: number + postcount: + type: number picture: nullable: true type: string + signature: + nullable: true + type: string + banned: + type: number + status: + type: string icon:text: type: string description: A single-letter representation of a username. This is used in the auto-generated icon given to users without an avatar @@ -4486,122 +3279,85 @@ paths: type: string description: A six-character hexadecimal colour code assigned to the user. This value is used in conjunction with `icon:text` for the user's auto-generated icon example: "#f44336" - index: - type: number - tags: - type: array - items: - type: object - properties: - value: - type: string - valueEscaped: - type: string - color: - type: string - bgColor: - type: string - score: - type: number - isOwner: - type: boolean - ignored: - type: boolean - unread: - type: boolean - bookmark: - nullable: true - unreplied: - type: boolean - icons: - type: array - items: {} - index: - type: number - thumb: - type: string - isQuestion: - nullable: true - recentCards: - type: object - properties: - title: - type: string - opacity: - type: string - textShadow: - type: string - enableCarousel: - type: number - enableCarouselPagination: - type: number - _header: - type: object - properties: - tags: - type: object - properties: - meta: - type: array - items: - type: object - properties: - name: - type: string - content: - type: string - noEscape: - type: boolean - property: + banned_until_readable: type: string - link: - type: array - items: + teaser: type: object properties: - rel: - type: string - type: - type: string - href: - type: string - title: + pid: + type: number + uid: + type: number + description: A user identifier + timestamp: + type: number + tid: + type: number + description: A topic identifier + content: type: string - sizes: + timestampISO: type: string - widgets: - type: object - properties: - sidebar: - type: array - items: - type: object - properties: - html: - type: string - header: - type: array - items: - type: object - properties: - html: - type: string - footer: - type: array - items: - type: object - properties: - html: - type: string - motd: - type: array - items: - type: object - properties: - html: + description: An ISO 8601 formatted date string (complementing `timestamp`) + user: + type: object + properties: + uid: + type: number + description: A user identifier + username: + type: string + description: A friendly name for a given user account + userslug: + type: string + description: An URL-safe variant of the username (i.e. lower-cased, spaces removed, etc.) + picture: + nullable: true + type: string + icon:text: + type: string + description: A single-letter representation of a username. This is used in the auto-generated icon given to users without an avatar + icon:bgColor: + type: string + description: A six-character hexadecimal colour code assigned to the user. This value is used in conjunction with `icon:text` for the user's auto-generated icon + example: "#f44336" + index: + type: number + tags: + type: array + items: + type: object + properties: + value: + type: string + valueEscaped: + type: string + color: + type: string + bgColor: + type: string + score: + type: number + isOwner: + type: boolean + ignored: + type: boolean + unread: + type: boolean + bookmark: + nullable: true + unreplied: + type: boolean + icons: + type: array + items: {} + index: + type: number + thumb: type: string - example: - + isQuestion: + nullable: true + - $ref: 'components/schemas/CommonProps.yaml#/CommonProps' "/api/categories/{cid}/moderators": get: tags: @@ -4969,117 +3725,51 @@ paths: content: application/json: schema: - type: object - properties: - loginFormEntry: - type: array - items: {} - alternate_logins: - type: boolean - authentication: - type: array - items: - type: object - properties: - name: - type: string - url: - type: string - callbackURL: - type: string - icon: - type: string - scope: - type: string - prompt: - type: string - allowRegistration: - type: boolean - allowLoginWith: - type: string - breadcrumbs: - type: array - items: - type: object - properties: - text: - type: string - url: - type: string - title: - type: string - allowPasswordReset: - type: boolean - allowLocalLogin: - type: boolean - loggedIn: - type: boolean - relative_path: - type: string - template: - type: object + allOf: + - type: object properties: - name: - type: string - login: + loginFormEntry: + type: array + items: {} + alternate_logins: type: boolean - url: - type: string - bodyClass: - type: string - captcha: - type: object - properties: - label: - type: string - html: - type: string - styleName: + authentication: + type: array + items: + type: object + properties: + name: + type: string + url: + type: string + callbackURL: + type: string + icon: + type: string + scope: + type: string + prompt: + type: string + allowRegistration: + type: boolean + allowLoginWith: type: string - _header: - type: object - properties: - tags: - type: object - properties: - meta: - type: array - items: - type: object - properties: - name: - type: string - content: - type: string - noEscape: - type: boolean - property: - type: string - link: - type: array - items: - type: object - properties: - rel: - type: string - type: - type: string - href: - type: string - title: - type: string - sizes: - type: string - widgets: - type: object - properties: - footer: + breadcrumbs: type: array items: type: object properties: - html: + text: type: string + url: + type: string + title: + type: string + allowPasswordReset: + type: boolean + allowLocalLogin: + type: boolean + - $ref: 'components/schemas/CommonProps.yaml#/CommonProps' /api/register: get: tags: @@ -5091,120 +3781,61 @@ paths: content: application/json: schema: - type: object - properties: - register_window:spansize: - type: string - alternate_logins: - type: boolean - authentication: - type: array - items: - type: object - properties: - name: - type: string - url: - type: string - callbackURL: - type: string - icon: - type: string - scope: - type: string - prompt: - type: string - minimumUsernameLength: - type: number - maximumUsernameLength: - type: number - minimumPasswordLength: - type: number - minimumPasswordStrength: - type: number - breadcrumbs: - type: array - items: - type: object - properties: - text: - type: string - url: - type: string - regFormEntry: - type: array - items: - type: object - properties: - label: - type: string - html: - type: string - styleName: - type: string - title: - type: string - loggedIn: - type: boolean - relative_path: - type: string - template: - type: object + allOf: + - type: object properties: - name: + register_window:spansize: type: string - register: + alternate_logins: type: boolean - url: - type: string - bodyClass: - type: string - _header: - type: object - properties: - tags: - type: object - properties: - meta: - type: array - items: - type: object - properties: - name: - type: string - content: - type: string - noEscape: - type: boolean - property: - type: string - link: - type: array - items: - type: object - properties: - rel: - type: string - type: - type: string - href: - type: string - title: - type: string - sizes: - type: string - widgets: - type: object - properties: - footer: + authentication: + type: array + items: + type: object + properties: + name: + type: string + url: + type: string + callbackURL: + type: string + icon: + type: string + scope: + type: string + prompt: + type: string + minimumUsernameLength: + type: number + maximumUsernameLength: + type: number + minimumPasswordLength: + type: number + minimumPasswordStrength: + type: number + breadcrumbs: + type: array + items: + type: object + properties: + text: + type: string + url: + type: string + regFormEntry: type: array items: type: object properties: + label: + type: string html: type: string - "304": - description: "" + styleName: + type: string + title: + type: string + - $ref: 'components/schemas/CommonProps.yaml#/CommonProps' /api/register/complete: get: tags: @@ -5216,3657 +3847,811 @@ paths: content: application/json: schema: - type: object - properties: - title: - type: string - errors: - type: array - items: {} - sections: - type: array - items: - type: string - loggedIn: - type: boolean - relative_path: - type: string - template: - type: object + allOf: + - type: object properties: - name: + title: type: string - registerComplete: - type: boolean - url: - type: string - bodyClass: - type: string - _header: - type: object - properties: - tags: - type: object - properties: - meta: - type: array - items: - type: object - properties: - name: - type: string - content: - type: string - noEscape: - type: boolean - property: - type: string - link: - type: array - items: - type: object - properties: - rel: - type: string - type: - type: string - href: - type: string - title: - type: string - sizes: - type: string - widgets: - type: object + errors: + type: array + items: {} + sections: + type: array + items: + type: string + - $ref: 'components/schemas/CommonProps.yaml#/CommonProps' + /api/search: + get: + tags: + - search + summary: /api/search + responses: + "200": + description: "" + content: + application/json: + schema: + allOf: + - type: object properties: - footer: + posts: type: array items: type: object properties: - html: + pid: + type: number + tid: + type: number + description: A topic identifier + content: type: string - text/plain: - schema: - type: object - properties: - title: - type: string - errors: - type: array - items: {} - sections: - type: array - items: - type: string - loggedIn: - type: boolean - relative_path: - type: string - template: - type: object - properties: - name: - type: string - registerComplete: - type: boolean - url: - type: string - bodyClass: - type: string - _header: - type: object - properties: - tags: - type: object - properties: - meta: - type: array - items: + uid: + type: number + description: A user identifier + timestamp: + type: number + deleted: + type: boolean + upvotes: + type: number + downvotes: + type: number + votes: + type: number + timestampISO: + type: string + description: An ISO 8601 formatted date string (complementing `timestamp`) + user: type: object properties: - name: + uid: + type: number + description: A user identifier + username: type: string - content: + description: A friendly name for a given user account + userslug: type: string - noEscape: - type: boolean - property: + description: An URL-safe variant of the username (i.e. lower-cased, spaces removed, etc.) + picture: + nullable: true + status: type: string - link: - type: array - items: + icon:text: + type: string + description: A single-letter representation of a username. This is used in the auto-generated icon given to users without an avatar + icon:bgColor: + type: string + description: A six-character hexadecimal colour code assigned to the user. This value is used in conjunction with `icon:text` for the user's auto-generated icon + example: "#f44336" + topic: type: object properties: - rel: + uid: + type: number + description: A user identifier + tid: + type: number + description: A topic identifier + title: type: string - type: + cid: + type: number + description: A category identifier + slug: type: string - href: + deleted: + type: number + postcount: + type: number + mainPid: + type: number + description: The post id of the first post in this topic (also called the "original post") + titleRaw: type: string - title: + category: + type: object + properties: + cid: + type: number + description: A category identifier + name: type: string - sizes: + icon: type: string - widgets: - type: object - properties: - footer: + slug: + type: string + parentCid: + type: number + description: The category identifier for the category that is the immediate ancestor of the current category + bgColor: + type: string + color: + type: string + image: + nullable: true + imageClass: + nullable: true + type: string + isMainPost: + type: boolean + matchCount: + type: number + pageCount: + type: number + time: + type: string + pagination: + type: object + properties: + prev: + type: object + properties: + page: + type: number + active: + type: boolean + next: + type: object + properties: + page: + type: number + active: + type: boolean + first: + type: object + properties: + page: + type: number + active: + type: boolean + last: + type: object + properties: + page: + type: number + active: + type: boolean + rel: + type: array + items: {} + pages: + type: array + items: {} + currentPage: + type: number + pageCount: + type: number + multiplePages: + type: boolean + search_query: + type: string + term: + type: string + categories: type: array items: type: object properties: - html: + value: + oneOf: + - type: string + - type: number + text: type: string - "302": - description: "" - content: - application/json: - schema: - type: string - example: Found. Redirecting to /register - text/plain: - schema: - type: string - example: Found. Redirecting to /register - /api/search: + categoriesCount: + type: number + breadcrumbs: + type: array + items: + type: object + properties: + text: + type: string + url: + type: string + expandSearch: + type: boolean + showAsPosts: + type: boolean + showAsTopics: + type: boolean + title: + type: string + searchDefaultSortBy: + type: string + - $ref: 'components/schemas/CommonProps.yaml#/CommonProps' + "/api/reset/{code?}": get: tags: - - search - summary: /api/search + - authentication + summary: /api/reset/{code?} + parameters: + - name: code? + in: path + required: true + schema: + type: string + responses: {} + "/api/email/unsubscribe/{token}": + get: + tags: + - emails + summary: /api/email/unsubscribe/{token} + parameters: + - name: token + in: path + required: true + schema: + type: string + responses: {} + "/api/topic/{topic_id}/{slug}/{post_index?}": + get: + tags: + - topics + summary: /api/topic/{topic_id}/{slug}/{post_index?} + parameters: + - name: topic_id + in: path + required: true + schema: + type: string + - name: slug + in: path + required: true + schema: + type: string + - name: post_index? + in: path + required: true + schema: + type: string responses: "200": description: "" content: application/json: schema: - type: object - properties: - posts: - type: array - items: - type: object - properties: - pid: - type: number - tid: - type: number - description: A topic identifier - content: - type: string - uid: - type: number - description: A user identifier - timestamp: - type: number - deleted: - type: boolean - upvotes: - type: number - downvotes: - type: number - votes: - type: number - timestampISO: - type: string - description: An ISO 8601 formatted date string (complementing `timestamp`) - user: + allOf: + - type: object + properties: + tid: + type: number + description: A topic identifier + uid: + type: number + description: A user identifier + cid: + type: number + description: A category identifier + mainPid: + type: number + description: The post id of the first post in this topic (also called the "original post") + title: + type: string + slug: + type: string + timestamp: + type: number + lastposttime: + type: number + postcount: + type: number + viewcount: + type: number + teaserPid: + type: number + upvotes: + type: number + downvotes: + type: number + deleted: + type: number + locked: + type: number + pinned: + type: number + description: Whether or not this particular topic is pinned to the top of the category + titleRaw: + type: string + timestampISO: + type: string + description: An ISO 8601 formatted date string (complementing `timestamp`) + lastposttimeISO: + type: string + votes: + type: number + tags: + type: array + items: type: object properties: - uid: - type: number - description: A user identifier - username: - type: string - description: A friendly name for a given user account - userslug: + value: type: string - description: An URL-safe variant of the username (i.e. lower-cased, spaces removed, etc.) - picture: - nullable: true - status: + valueEscaped: type: string - icon:text: + color: type: string - description: A single-letter representation of a username. This is used in the auto-generated icon given to users without an avatar - icon:bgColor: + bgColor: type: string - description: A six-character hexadecimal colour code assigned to the user. This value is used in conjunction with `icon:text` for the user's auto-generated icon - example: "#f44336" - topic: + score: + type: number + posts: + type: array + items: type: object properties: + pid: + type: number uid: type: number description: A user identifier tid: type: number description: A topic identifier - title: + content: type: string - cid: + timestamp: + type: number + votes: type: number - description: A category identifier - slug: - type: string deleted: type: number - postcount: + upvotes: type: number - mainPid: + downvotes: type: number - description: The post id of the first post in this topic (also called the "original post") - titleRaw: - type: string - category: - type: object - properties: - cid: + deleterUid: type: number - description: A category identifier - name: - type: string - icon: - type: string - slug: - type: string - parentCid: + edited: type: number - description: The category identifier for the category that is the immediate ancestor of the current category - bgColor: - type: string - color: + timestampISO: type: string - image: - nullable: true - imageClass: - nullable: true + description: An ISO 8601 formatted date string (complementing `timestamp`) + editedISO: type: string - isMainPost: - type: boolean - matchCount: - type: number - pageCount: - type: number - time: - type: string - pagination: - type: object - properties: - prev: - type: object - properties: - page: - type: number - active: - type: boolean - next: - type: object - properties: - page: - type: number - active: - type: boolean - first: - type: object - properties: - page: - type: number - active: - type: boolean - last: - type: object - properties: - page: - type: number - active: - type: boolean - rel: - type: array - items: {} - pages: - type: array - items: {} - currentPage: - type: number - pageCount: - type: number - multiplePages: - type: boolean - search_query: - type: string - term: - type: string - categories: - type: array - items: - type: object - properties: - value: - oneOf: - - type: string - - type: number - text: - type: string - categoriesCount: - type: number - breadcrumbs: - type: array - items: - type: object - properties: - text: - type: string - url: - type: string - expandSearch: - type: boolean - showAsPosts: - type: boolean - showAsTopics: - type: boolean - title: - type: string - searchDefaultSortBy: - type: string - loggedIn: - type: boolean - relative_path: - type: string - template: - type: object - properties: - name: - type: string - search: - type: boolean - url: - type: string - bodyClass: - type: string - _header: - type: object - properties: - tags: - type: object - properties: - meta: - type: array - items: + index: + type: number + user: type: object properties: - name: + uid: + type: number + description: A user identifier + username: type: string - content: + description: A friendly name for a given user account + userslug: type: string - noEscape: - type: boolean - property: + description: An URL-safe variant of the username (i.e. lower-cased, spaces removed, etc.) + reputation: + type: number + postcount: + type: number + topiccount: + type: number + picture: type: string - link: - type: array - items: - type: object - properties: - rel: + signature: type: string - type: + banned: + type: number + banned:expire: + type: number + status: type: string - href: + lastonline: + type: number + groupTitle: + nullable: true type: string - title: + groupTitleArray: + type: array + items: + type: string + icon:text: type: string - sizes: + description: A single-letter representation of a username. This is used in the auto-generated icon given to users without an avatar + icon:bgColor: type: string - widgets: - type: object - properties: - footer: - type: array - items: - type: object - properties: - html: - type: string - "304": - description: "" - "401": - description: "" - content: - application/json: - schema: - title: not-authorized - type: undefined - "403": - description: "" - content: - application/json: - schema: - type: object - properties: - path: - type: string - loggedIn: - type: boolean - title: - type: string - "/api/reset/{code?}": - get: - tags: - - authentication - summary: /api/reset/{code?} - parameters: - - name: code? - in: path - required: true - schema: - type: string - responses: {} - "/api/email/unsubscribe/{token}": - get: - tags: - - emails - summary: /api/email/unsubscribe/{token} - parameters: - - name: token - in: path - required: true - schema: - type: string - responses: {} - "/api/topic/{topic_id}/{slug}/{post_index?}": - get: - tags: - - topics - summary: /api/topic/{topic_id}/{slug}/{post_index?} - parameters: - - name: topic_id - in: path - required: true - schema: - type: string - - name: slug - in: path - required: true - schema: - type: string - - name: post_index? - in: path - required: true - schema: - type: string - responses: - "200": - description: "" - content: - application/json: - schema: - type: object - properties: - tid: - type: number - description: A topic identifier - uid: - type: number - description: A user identifier - cid: - type: number - description: A category identifier - mainPid: - type: number - description: The post id of the first post in this topic (also called the "original post") - title: - type: string - slug: - type: string - timestamp: - type: number - lastposttime: - type: number - postcount: - type: number - viewcount: - type: number - teaserPid: - type: number - upvotes: - type: number - downvotes: - type: number - deleted: - type: number - locked: - type: number - pinned: - type: number - description: Whether or not this particular topic is pinned to the top of the category - titleRaw: - type: string - timestampISO: - type: string - description: An ISO 8601 formatted date string (complementing `timestamp`) - lastposttimeISO: - type: string - votes: - type: number - tags: - type: array - items: - type: object - properties: - value: - type: string - valueEscaped: - type: string - color: - type: string - bgColor: - type: string - score: - type: number - posts: - type: array - items: - type: object - properties: - pid: - type: number - uid: - type: number - description: A user identifier - tid: - type: number - description: A topic identifier - content: - type: string - timestamp: - type: number - votes: - type: number - deleted: - type: number - upvotes: - type: number - downvotes: - type: number - deleterUid: - type: number - edited: - type: number - timestampISO: - type: string - description: An ISO 8601 formatted date string (complementing `timestamp`) - editedISO: - type: string - index: - type: number - user: - type: object - properties: - uid: - type: number - description: A user identifier - username: - type: string - description: A friendly name for a given user account - userslug: - type: string - description: An URL-safe variant of the username (i.e. lower-cased, spaces removed, etc.) - reputation: - type: number - postcount: - type: number - topiccount: - type: number - picture: - type: string - signature: - type: string - banned: - type: number - banned:expire: - type: number - status: - type: string - lastonline: - type: number - groupTitle: - nullable: true - type: string - groupTitleArray: - type: array - items: - type: string - icon:text: - type: string - description: A single-letter representation of a username. This is used in the auto-generated icon given to users without an avatar - icon:bgColor: - type: string - description: A six-character hexadecimal colour code assigned to the user. This value is used in conjunction with `icon:text` for the user's auto-generated icon - example: "#f44336" - lastonlineISO: - type: string - banned_until: - type: number - banned_until_readable: - type: string - selectedGroups: - type: array - items: - type: object - properties: - name: - type: string - slug: - type: string - labelColor: - type: string - textColor: - type: string - icon: - type: string - userTitle: - type: string - custom_profile_info: - type: array - items: {} - editor: - nullable: true - bookmarked: - type: boolean - upvoted: - type: boolean - downvoted: - type: boolean - replies: - type: object - properties: - hasMore: - type: boolean - users: - type: array - items: {} - text: - type: string - count: - type: number - selfPost: - type: boolean - display_edit_tools: - type: boolean - display_delete_tools: - type: boolean - display_moderator_tools: - type: boolean - display_move_tools: - type: boolean - display_post_menu: - type: boolean - category: - type: object - properties: - link: - type: string - class: - type: string - icon: - type: string - description: - type: string - order: - type: number - topic_count: - type: number - description: The number of topics in the category - name: - type: string - cid: - type: number - description: A category identifier - post_count: - type: number - description: The number of posts in the category - numRecentReplies: - type: number - bgColor: - type: string - slug: - type: string - color: - type: string - disabled: - type: number - descriptionParsed: - type: string - isSection: - type: number - parentCid: - type: number - description: The category identifier for the category that is the immediate ancestor of the current category - totalPostCount: - type: number - description: The number of posts in the category - totalTopicCount: - type: number - description: The number of topics in the category - tagWhitelist: - type: array - items: {} - thread_tools: - type: array - items: - type: object - properties: - class: - type: string - title: - type: string - icon: - type: string - isFollowing: - type: boolean - isNotFollowing: - type: boolean - isIgnoring: - type: boolean - bookmark: - nullable: true - postSharing: - type: array - items: - type: object - properties: - id: - type: string - name: - type: string - class: - type: string - activated: - type: boolean - deleter: - nullable: true - merger: - nullable: true - related: - type: array - items: {} - unreplied: - type: boolean - icons: - type: array - items: {} - breadcrumbs: - type: array - items: - type: object - properties: - text: - type: string - url: - type: string - privileges: - type: object - properties: - topics:reply: - type: boolean - topics:read: - type: boolean - topics:tag: - type: boolean - topics:delete: - type: boolean - posts:edit: - type: boolean - posts:history: - type: boolean - posts:delete: - type: boolean - posts:view_deleted: - type: boolean - read: - type: boolean - purge: - type: boolean - view_thread_tools: - type: boolean - editable: - type: boolean - deletable: - type: boolean - view_deleted: - type: boolean - isAdminOrMod: - type: boolean - disabled: - type: number - tid: - type: string - uid: - type: number - description: A user identifier - topicStaleDays: - type: number - reputation:disabled: - type: number - downvote:disabled: - type: number - feeds:disableRSS: - type: number - bookmarkThreshold: - type: number - postEditDuration: - type: number - postDeleteDuration: - type: number - scrollToMyPost: - type: boolean - allowMultipleBadges: - type: boolean - privateUploads: - type: boolean - rssFeedUrl: - type: string - postIndex: - type: number - pagination: - type: object - properties: - rel: - type: array - items: - type: object - properties: - rel: - type: string - href: - type: string - pages: - type: array - items: - type: object - properties: - page: - type: number - active: - type: boolean - qs: - type: string - currentPage: - type: number - pageCount: - type: number - prev: - type: object - properties: - page: - type: number - active: - type: boolean - qs: - type: string - next: - type: object - properties: - page: - type: number - active: - type: boolean - qs: - type: string - first: - type: object - properties: - page: - type: number - active: - type: boolean - qs: - type: string - last: - type: object - properties: - page: - type: number - active: - type: boolean - qs: - type: string - loggedIn: - type: boolean - relative_path: - type: string - template: - type: object - properties: - name: - type: string - topic: - type: boolean - url: - type: string - bodyClass: - type: string - loggedInUser: - type: object - properties: - uid: - type: number - description: A user identifier - username: - type: string - description: A friendly name for a given user account - picture: - type: string - icon:text: - type: string - description: A single-letter representation of a username. This is used in the auto-generated icon given to users without an avatar - icon:bgColor: - type: string - description: A six-character hexadecimal colour code assigned to the user. This value is used in conjunction with `icon:text` for the user's auto-generated icon - example: "#f44336" - _header: - type: object - properties: - tags: - type: object - properties: - meta: - type: array - items: - type: object - properties: - name: - type: string - content: - type: string - noEscape: - type: boolean - property: - type: string - link: - type: array - items: - type: object - properties: - rel: - type: string - type: - type: string - href: - type: string - title: - type: string - sizes: - type: string - widgets: - type: object - properties: - footer: - type: array - items: - type: object - properties: - html: - type: string - text/plain: - schema: - type: object - properties: - tid: - type: number - description: A topic identifier - uid: - type: number - description: A user identifier - cid: - type: number - description: A category identifier - mainPid: - type: number - description: The post id of the first post in this topic (also called the "original post") - title: - type: string - slug: - type: string - timestamp: - type: number - lastposttime: - type: number - postcount: - type: number - viewcount: - type: number - teaserPid: - type: number - upvotes: - type: number - downvotes: - type: number - deleted: - type: number - locked: - type: number - pinned: - type: number - description: Whether or not this particular topic is pinned to the top of the category - titleRaw: - type: string - timestampISO: - type: string - description: An ISO 8601 formatted date string (complementing `timestamp`) - lastposttimeISO: - type: string - votes: - type: number - tags: - type: array - items: - type: object - properties: - value: - type: string - valueEscaped: - type: string - color: - type: string - bgColor: - type: string - score: - type: number - posts: - type: array - items: - type: object - properties: - pid: - type: number - uid: - type: number - description: A user identifier - tid: - type: number - description: A topic identifier - content: - type: string - timestamp: - type: number - votes: - type: number - deleted: - type: number - upvotes: - type: number - downvotes: - type: number - deleterUid: - type: number - edited: - type: number - timestampISO: - type: string - description: An ISO 8601 formatted date string (complementing `timestamp`) - editedISO: - type: string - index: - type: number - user: - type: object - properties: - uid: - type: number - description: A user identifier - username: - type: string - description: A friendly name for a given user account - userslug: - type: string - description: An URL-safe variant of the username (i.e. lower-cased, spaces removed, etc.) - reputation: - type: number - postcount: - type: number - topiccount: - type: number - picture: - type: string - signature: - type: string - banned: - type: number - banned:expire: - type: number - status: - type: string - lastonline: - type: number - groupTitle: - nullable: true - type: string - groupTitleArray: - type: array - items: - type: string - icon:text: - type: string - description: A single-letter representation of a username. This is used in the auto-generated icon given to users without an avatar - icon:bgColor: - type: string - description: A six-character hexadecimal colour code assigned to the user. This value is used in conjunction with `icon:text` for the user's auto-generated icon - example: "#f44336" - lastonlineISO: - type: string - banned_until: - type: number - banned_until_readable: - type: string - selectedGroups: - type: array - items: - type: object - properties: - name: - type: string - slug: - type: string - labelColor: - type: string - textColor: - type: string - icon: - type: string - userTitle: - type: string - custom_profile_info: - type: array - items: {} - editor: - nullable: true - bookmarked: - type: boolean - upvoted: - type: boolean - downvoted: - type: boolean - replies: - type: object - properties: - hasMore: - type: boolean - users: - type: array - items: {} - text: - type: string - count: - type: number - selfPost: - type: boolean - display_edit_tools: - type: boolean - display_delete_tools: - type: boolean - display_moderator_tools: - type: boolean - display_move_tools: - type: boolean - display_post_menu: - type: boolean - category: - type: object - properties: - link: - type: string - class: - type: string - icon: - type: string - description: - type: string - order: - type: number - topic_count: - type: number - description: The number of topics in the category - name: - type: string - cid: - type: number - description: A category identifier - post_count: - type: number - description: The number of posts in the category - numRecentReplies: - type: number - bgColor: - type: string - slug: - type: string - color: - type: string - disabled: - type: number - descriptionParsed: - type: string - isSection: - type: number - parentCid: - type: number - description: The category identifier for the category that is the immediate ancestor of the current category - totalPostCount: - type: number - description: The number of posts in the category - totalTopicCount: - type: number - description: The number of topics in the category - tagWhitelist: - type: array - items: {} - thread_tools: - type: array - items: - type: object - properties: - class: - type: string - title: - type: string - icon: - type: string - isFollowing: - type: boolean - isNotFollowing: - type: boolean - isIgnoring: - type: boolean - bookmark: - nullable: true - postSharing: - type: array - items: - type: object - properties: - id: - type: string - name: - type: string - class: - type: string - activated: - type: boolean - deleter: - nullable: true - merger: - nullable: true - related: - type: array - items: {} - unreplied: - type: boolean - icons: - type: array - items: {} - breadcrumbs: - type: array - items: - type: object - properties: - text: - type: string - url: - type: string - privileges: - type: object - properties: - topics:reply: - type: boolean - topics:read: - type: boolean - topics:tag: - type: boolean - topics:delete: - type: boolean - posts:edit: - type: boolean - posts:history: - type: boolean - posts:delete: - type: boolean - posts:view_deleted: - type: boolean - read: - type: boolean - purge: - type: boolean - view_thread_tools: - type: boolean - editable: - type: boolean - deletable: - type: boolean - view_deleted: - type: boolean - isAdminOrMod: - type: boolean - disabled: - type: number - tid: - type: string - uid: - type: number - description: A user identifier - topicStaleDays: - type: number - reputation:disabled: - type: number - downvote:disabled: - type: number - feeds:disableRSS: - type: number - bookmarkThreshold: - type: number - postEditDuration: - type: number - postDeleteDuration: - type: number - scrollToMyPost: - type: boolean - allowMultipleBadges: - type: boolean - privateUploads: - type: boolean - rssFeedUrl: - type: string - postIndex: - type: number - pagination: - type: object - properties: - rel: - type: array - items: - type: object - properties: - rel: - type: string - href: - type: string - pages: - type: array - items: - type: object - properties: - page: - type: number - active: - type: boolean - qs: - type: string - currentPage: - type: number - pageCount: - type: number - prev: - type: object - properties: - page: - type: number - active: - type: boolean - qs: - type: string - next: - type: object - properties: - page: - type: number - active: - type: boolean - qs: - type: string - first: - type: object - properties: - page: - type: number - active: - type: boolean - qs: - type: string - last: - type: object - properties: - page: - type: number - active: - type: boolean - qs: - type: string - loggedIn: - type: boolean - relative_path: - type: string - template: - type: object - properties: - name: - type: string - topic: - type: boolean - url: - type: string - bodyClass: - type: string - loggedInUser: - type: object - properties: - uid: - type: number - description: A user identifier - username: - type: string - description: A friendly name for a given user account - picture: - type: string - icon:text: - type: string - description: A single-letter representation of a username. This is used in the auto-generated icon given to users without an avatar - icon:bgColor: - type: string - description: A six-character hexadecimal colour code assigned to the user. This value is used in conjunction with `icon:text` for the user's auto-generated icon - example: "#f44336" - _header: - type: object - properties: - tags: - type: object - properties: - meta: - type: array - items: - type: object - properties: - name: - type: string - content: - type: string - noEscape: - type: boolean - property: - type: string - link: - type: array - items: - type: object - properties: - rel: - type: string - type: - type: string - href: - type: string - title: - type: string - sizes: - type: string - widgets: - type: object - properties: - footer: - type: array - items: - type: object - properties: - html: - type: string - "401": - description: "" - content: - application/json: - schema: - title: not-authorized - type: undefined - text/plain: - schema: - title: not-authorized - type: undefined - "404": - description: "" - content: - application/json: - schema: - type: string - example: Not Found - text/plain: - schema: - type: string - example: Not Found - "/api/topic/{topic_id}/{slug?}": - get: - tags: - - topics - summary: /api/topic/{topic_id}/{slug?} - parameters: - - name: topic_id - in: path - required: true - schema: - type: string - - name: slug? - in: path - required: true - schema: - type: string - responses: - "200": - description: "" - content: - application/json: - schema: - type: object - properties: - tid: - type: number - description: A topic identifier - uid: - type: number - description: A user identifier - cid: - type: number - description: A category identifier - mainPid: - type: number - description: The post id of the first post in this topic (also called the "original post") - title: - type: string - slug: - type: string - timestamp: - type: number - lastposttime: - type: number - postcount: - type: number - viewcount: - type: number - teaserPid: - type: number - upvotes: - type: number - downvotes: - type: number - deleted: - type: number - locked: - type: number - pinned: - type: number - description: Whether or not this particular topic is pinned to the top of the category - titleRaw: - type: string - timestampISO: - type: string - description: An ISO 8601 formatted date string (complementing `timestamp`) - lastposttimeISO: - type: string - votes: - type: number - tags: - type: array - items: - type: object - properties: - value: - type: string - valueEscaped: - type: string - color: - type: string - bgColor: - type: string - score: - type: number - posts: - type: array - items: - type: object - properties: - editor: - properties: - uid: - type: number - description: A user identifier - username: - type: string - description: A friendly name for a given user account - userslug: - type: string - description: An URL-safe variant of the username (i.e. lower-cased, spaces removed, etc.) - nullable: true - type: object - votes: - type: number - timestamp: - type: number - tid: - type: number - description: A topic identifier - content: - type: string - pid: - type: number - edited: - type: number - uid: - type: number - description: A user identifier - upvotes: - type: number - bookmarks: - type: number - replies: - type: object - properties: - hasMore: - type: boolean - users: - type: array - items: - type: object - properties: - uid: - type: number - description: A user identifier - username: - type: string - description: A friendly name for a given user account - userslug: - type: string - description: An URL-safe variant of the username (i.e. lower-cased, spaces removed, etc.) - picture: - nullable: true - icon:text: - type: string - description: A single-letter representation of a username. This is used in the auto-generated icon given to users without an avatar - icon:bgColor: - type: string - description: A six-character hexadecimal colour code assigned to the user. This value is used in conjunction with `icon:text` for the user's auto-generated icon - example: "#f44336" - administrator: - type: boolean - text: - type: string - count: - type: number - timestampISO: - type: string - description: An ISO 8601 formatted date string (complementing `timestamp`) - deleted: - type: number - downvotes: - type: number - deleterUid: - type: number - timestampISO: - type: string - description: An ISO 8601 formatted date string (complementing `timestamp`) - editedISO: - type: string - index: - type: number - user: - type: object - properties: - uid: - type: number - description: A user identifier - username: - type: string - description: A friendly name for a given user account - fullname: - type: string - userslug: - type: string - description: An URL-safe variant of the username (i.e. lower-cased, spaces removed, etc.) - reputation: - type: number - postcount: - type: number - topiccount: - type: number - picture: - nullable: true - type: string - signature: - type: string - banned: - type: number - banned:expire: - type: number - status: - type: string - lastonline: - type: number - groupTitle: - nullable: true - type: string - groupTitleArray: - type: array - items: - type: string - icon:text: - type: string - description: A single-letter representation of a username. This is used in the auto-generated icon given to users without an avatar - icon:bgColor: - type: string - description: A six-character hexadecimal colour code assigned to the user. This value is used in conjunction with `icon:text` for the user's auto-generated icon - example: "#f44336" - lastonlineISO: - type: string - banned_until: - type: number - banned_until_readable: - type: string - selectedGroups: - type: array - items: - type: object - properties: - name: - type: string - slug: - type: string - labelColor: - type: string - textColor: - type: string - icon: - type: string - userTitle: - type: string - custom_profile_info: - type: array - items: {} - bookmarked: - type: boolean - upvoted: - type: boolean - downvoted: - type: boolean - selfPost: - type: boolean - display_edit_tools: - type: boolean - display_delete_tools: - type: boolean - display_moderator_tools: - type: boolean - display_move_tools: - type: boolean - display_post_menu: - type: boolean - toPid: - type: number - parent: - type: object - properties: - username: - type: string - description: A friendly name for a given user account - category: - type: object - properties: - link: - type: string - class: - type: string - icon: - type: string - description: - type: string - order: - type: number - topic_count: - type: number - description: The number of topics in the category - name: - type: string - cid: - type: number - description: A category identifier - post_count: - type: number - description: The number of posts in the category - numRecentReplies: - type: number - bgColor: - type: string - slug: - type: string - color: - type: string - disabled: - type: number - descriptionParsed: - type: string - isSection: - type: number - parentCid: - type: number - description: The category identifier for the category that is the immediate ancestor of the current category - totalPostCount: - type: number - description: The number of posts in the category - totalTopicCount: - type: number - description: The number of topics in the category - tagWhitelist: - type: array - items: {} - thread_tools: - type: array - items: - type: object - properties: - class: - type: string - title: - type: string - icon: - type: string - isFollowing: - type: boolean - isNotFollowing: - type: boolean - isIgnoring: - type: boolean - bookmark: - nullable: true - postSharing: - type: array - items: - type: object - properties: - id: - type: string - name: - type: string - class: - type: string - activated: - type: boolean - deleter: - nullable: true - merger: - nullable: true - related: - type: array - items: {} - unreplied: - type: boolean - icons: - type: array - items: {} - breadcrumbs: - type: array - items: - type: object - properties: - text: - type: string - url: - type: string - privileges: - type: object - properties: - topics:reply: - type: boolean - topics:read: - type: boolean - topics:tag: - type: boolean - topics:delete: - type: boolean - posts:edit: - type: boolean - posts:history: - type: boolean - posts:delete: - type: boolean - posts:view_deleted: - type: boolean - read: - type: boolean - purge: - type: boolean - view_thread_tools: - type: boolean - editable: - type: boolean - deletable: - type: boolean - view_deleted: - type: boolean - isAdminOrMod: - type: boolean - disabled: - type: number - tid: - type: string - uid: - type: number - description: A user identifier - topicStaleDays: - type: number - reputation:disabled: - type: number - downvote:disabled: - type: number - feeds:disableRSS: - type: number - bookmarkThreshold: - type: number - postEditDuration: - type: number - postDeleteDuration: - type: number - scrollToMyPost: - type: boolean - allowMultipleBadges: - type: boolean - privateUploads: - type: boolean - rssFeedUrl: - type: string - postIndex: - type: number - pagination: - type: object - properties: - rel: - type: array - items: - type: object - properties: - rel: - type: string - href: - type: string - pages: - type: array - items: - type: object - properties: - page: - type: number - active: - type: boolean - qs: - type: string - currentPage: - type: number - pageCount: - type: number - prev: - type: object - properties: - page: - type: number - active: - type: boolean - qs: - type: string - next: - type: object - properties: - page: - type: number - active: - type: boolean - qs: - type: string - first: - type: object - properties: - page: - type: number - active: - type: boolean - qs: - type: string - last: - type: object - properties: - page: - type: number - active: - type: boolean - qs: - type: string - loggedIn: - type: boolean - relative_path: - type: string - template: - type: object - properties: - name: - type: string - topic: - type: boolean - url: - type: string - bodyClass: - type: string - loggedInUser: - type: object - properties: - uid: - type: number - description: A user identifier - username: - type: string - description: A friendly name for a given user account - picture: - type: string - icon:text: - type: string - description: A single-letter representation of a username. This is used in the auto-generated icon given to users without an avatar - icon:bgColor: - type: string - description: A six-character hexadecimal colour code assigned to the user. This value is used in conjunction with `icon:text` for the user's auto-generated icon - example: "#f44336" - _header: - type: object - properties: - tags: - type: object - properties: - meta: - type: array - items: - type: object - properties: - name: - type: string - content: - type: string - noEscape: - type: boolean - property: - type: string - link: - type: array - items: - type: object - properties: - rel: - type: string - type: - type: string - href: - type: string - title: - type: string - sizes: - type: string - widgets: - type: object - properties: - footer: - type: array - items: - type: object - properties: - html: - type: string - text/plain: - schema: - type: object - properties: - tid: - type: number - description: A topic identifier - uid: - type: number - description: A user identifier - cid: - type: number - description: A category identifier - mainPid: - type: number - description: The post id of the first post in this topic (also called the "original post") - title: - type: string - slug: - type: string - timestamp: - type: number - lastposttime: - type: number - postcount: - type: number - viewcount: - type: number - teaserPid: - type: number - upvotes: - type: number - downvotes: - type: number - deleted: - type: number - locked: - type: number - pinned: - type: number - description: Whether or not this particular topic is pinned to the top of the category - titleRaw: - type: string - timestampISO: - type: string - description: An ISO 8601 formatted date string (complementing `timestamp`) - lastposttimeISO: - type: string - votes: - type: number - tags: - type: array - items: - type: object - properties: - value: - type: string - valueEscaped: - type: string - color: - type: string - bgColor: - type: string - score: - type: number - posts: - type: array - items: - type: object - properties: - editor: - properties: - uid: - type: number - description: A user identifier - username: - type: string - description: A friendly name for a given user account - userslug: - type: string - description: An URL-safe variant of the username (i.e. lower-cased, spaces removed, etc.) - nullable: true - type: object - votes: - type: number - timestamp: - type: number - tid: - type: number - description: A topic identifier - content: - type: string - pid: - type: number - edited: - type: number - uid: - type: number - description: A user identifier - upvotes: - type: number - bookmarks: - type: number - replies: - type: object - properties: - hasMore: - type: boolean - users: - type: array - items: - type: object - properties: - uid: - type: number - description: A user identifier - username: - type: string - description: A friendly name for a given user account - userslug: - type: string - description: An URL-safe variant of the username (i.e. lower-cased, spaces removed, etc.) - picture: - nullable: true - icon:text: - type: string - description: A single-letter representation of a username. This is used in the auto-generated icon given to users without an avatar - icon:bgColor: - type: string - description: A six-character hexadecimal colour code assigned to the user. This value is used in conjunction with `icon:text` for the user's auto-generated icon - example: "#f44336" - administrator: - type: boolean - text: - type: string - count: - type: number - timestampISO: - type: string - description: An ISO 8601 formatted date string (complementing `timestamp`) - deleted: - type: number - downvotes: - type: number - deleterUid: - type: number - timestampISO: - type: string - description: An ISO 8601 formatted date string (complementing `timestamp`) - editedISO: - type: string - index: - type: number - user: - type: object - properties: - uid: - type: number - description: A user identifier - username: - type: string - description: A friendly name for a given user account - fullname: - type: string - userslug: - type: string - description: An URL-safe variant of the username (i.e. lower-cased, spaces removed, etc.) - reputation: - type: number - postcount: - type: number - topiccount: - type: number - picture: - nullable: true - type: string - signature: - type: string - banned: - type: number - banned:expire: - type: number - status: - type: string - lastonline: - type: number - groupTitle: - nullable: true - type: string - groupTitleArray: - type: array - items: - type: string - icon:text: - type: string - description: A single-letter representation of a username. This is used in the auto-generated icon given to users without an avatar - icon:bgColor: - type: string - description: A six-character hexadecimal colour code assigned to the user. This value is used in conjunction with `icon:text` for the user's auto-generated icon - example: "#f44336" - lastonlineISO: - type: string - banned_until: - type: number - banned_until_readable: - type: string - selectedGroups: - type: array - items: - type: object - properties: - name: - type: string - slug: - type: string - labelColor: - type: string - textColor: - type: string - icon: - type: string - userTitle: - type: string - custom_profile_info: - type: array - items: {} - bookmarked: - type: boolean - upvoted: - type: boolean - downvoted: - type: boolean - selfPost: - type: boolean - display_edit_tools: - type: boolean - display_delete_tools: - type: boolean - display_moderator_tools: - type: boolean - display_move_tools: - type: boolean - display_post_menu: - type: boolean - toPid: - type: number - parent: - type: object - properties: - username: - type: string - description: A friendly name for a given user account - category: - type: object - properties: - link: - type: string - class: - type: string - icon: - type: string - description: - type: string - order: - type: number - topic_count: - type: number - description: The number of topics in the category - name: - type: string - cid: - type: number - description: A category identifier - post_count: - type: number - description: The number of posts in the category - numRecentReplies: - type: number - bgColor: - type: string - slug: - type: string - color: - type: string - disabled: - type: number - descriptionParsed: - type: string - isSection: - type: number - parentCid: - type: number - description: The category identifier for the category that is the immediate ancestor of the current category - totalPostCount: - type: number - description: The number of posts in the category - totalTopicCount: - type: number - description: The number of topics in the category - tagWhitelist: - type: array - items: {} - thread_tools: - type: array - items: - type: object - properties: - class: - type: string - title: - type: string - icon: - type: string - isFollowing: - type: boolean - isNotFollowing: - type: boolean - isIgnoring: - type: boolean - bookmark: - nullable: true - postSharing: - type: array - items: - type: object - properties: - id: - type: string - name: - type: string - class: - type: string - activated: - type: boolean - deleter: - nullable: true - merger: - nullable: true - related: - type: array - items: {} - unreplied: - type: boolean - icons: - type: array - items: {} - breadcrumbs: - type: array - items: - type: object - properties: - text: - type: string - url: - type: string - privileges: - type: object - properties: - topics:reply: - type: boolean - topics:read: - type: boolean - topics:tag: - type: boolean - topics:delete: - type: boolean - posts:edit: - type: boolean - posts:history: - type: boolean - posts:delete: - type: boolean - posts:view_deleted: - type: boolean - read: - type: boolean - purge: - type: boolean - view_thread_tools: - type: boolean - editable: - type: boolean - deletable: - type: boolean - view_deleted: - type: boolean - isAdminOrMod: - type: boolean - disabled: - type: number - tid: - type: string - uid: - type: number - description: A user identifier - topicStaleDays: - type: number - reputation:disabled: - type: number - downvote:disabled: - type: number - feeds:disableRSS: - type: number - bookmarkThreshold: - type: number - postEditDuration: - type: number - postDeleteDuration: - type: number - scrollToMyPost: - type: boolean - allowMultipleBadges: - type: boolean - privateUploads: - type: boolean - rssFeedUrl: - type: string - postIndex: - type: number - pagination: - type: object - properties: - rel: - type: array - items: - type: object - properties: - rel: - type: string - href: - type: string - pages: - type: array - items: - type: object - properties: - page: - type: number - active: - type: boolean - qs: - type: string - currentPage: - type: number - pageCount: - type: number - prev: - type: object - properties: - page: - type: number - active: - type: boolean - qs: - type: string - next: - type: object - properties: - page: - type: number - active: - type: boolean - qs: - type: string - first: - type: object - properties: - page: - type: number - active: - type: boolean - qs: - type: string - last: - type: object - properties: - page: - type: number - active: - type: boolean - qs: - type: string - loggedIn: - type: boolean - relative_path: - type: string - template: - type: object - properties: - name: - type: string - topic: - type: boolean - url: - type: string - bodyClass: - type: string - loggedInUser: - type: object - properties: - uid: - type: number - description: A user identifier - username: - type: string - description: A friendly name for a given user account - picture: - type: string - icon:text: - type: string - description: A single-letter representation of a username. This is used in the auto-generated icon given to users without an avatar - icon:bgColor: - type: string - description: A six-character hexadecimal colour code assigned to the user. This value is used in conjunction with `icon:text` for the user's auto-generated icon - example: "#f44336" - _header: - type: object - properties: - tags: - type: object - properties: - meta: - type: array - items: - type: object - properties: - name: - type: string - content: - type: string - noEscape: - type: boolean - property: - type: string - link: - type: array - items: - type: object - properties: - rel: - type: string - type: - type: string - href: - type: string - title: - type: string - sizes: - type: string - widgets: - type: object - properties: - footer: - type: array - items: - type: object - properties: - html: - type: string - "401": - description: "" - content: - application/json: - schema: - title: not-authorized - type: undefined - text/plain: - schema: - title: not-authorized - type: undefined - "403": - description: "" - content: - application/json: - schema: - type: object - properties: - path: - type: string - loggedIn: - type: boolean - title: - type: string - text/plain: - schema: - type: object - properties: - path: - type: string - loggedIn: - type: boolean - title: - type: string - "404": - description: "" - content: - application/json: - schema: - type: string - example: Not Found - text/plain: - schema: - type: string - example: Not Found - "/api/post/{pid}": - get: - tags: - - shorthand - summary: /api/post/{pid} - parameters: - - name: pid - in: path - required: true - schema: - type: string - responses: - "200": - description: "" - content: - application/json: - schema: - title: /topic/9995/cannot-post-or-reply-to-posts-in-nodebb-mobile-version/14?_=1574522486637&lang=en-US - type: undefined - text/plain: - schema: - title: /topic/9995/cannot-post-or-reply-to-posts-in-nodebb-mobile-version/14?_=1574522486637&lang=en-US - type: undefined - "404": - description: "" - content: - application/json: - schema: - type: string - example: Not Found - text/plain: - schema: - type: string - example: Not Found - /api/flags: - get: - tags: - - flags - summary: /api/flags - responses: - "200": - description: "" - content: - application/json: - schema: - type: object - properties: - flags: - type: array - items: - type: object - properties: - state: - type: string - flagId: - type: number - type: - type: string - targetId: - oneOf: - - type: string - - type: number - description: - type: string - uid: - type: number - description: A user identifier - datetime: - type: number - reporter: - type: object - properties: - username: - type: string - description: A friendly name for a given user account - picture: - nullable: true - type: string - icon:bgColor: - type: string - description: A six-character hexadecimal colour code assigned to the user. This value is used in conjunction with `icon:text` for the user's auto-generated icon - example: "#f44336" - icon:text: - type: string - description: A single-letter representation of a username. This is used in the auto-generated icon given to users without an avatar - labelClass: - type: string - target_readable: - type: string - datetimeISO: - type: string - assignee: - type: string - analytics: - type: array - items: - type: number - categories: - type: object - properties: - "1": - type: string - "2": - type: string - "3": - type: string - "4": - type: string - "5": - type: string - "6": - type: string - "7": - type: string - "10": - type: string - "13": - type: string - "14": - type: string - "15": - type: string - "16": - type: string - "17": - type: string - "18": - type: string - "19": - type: string - "21": - type: string - "22": - type: string - "26": - type: string - hasFilter: - type: boolean - filters: - type: object - properties: - page: - type: number - perPage: - type: number - title: - type: string - pagination: - type: object - properties: - rel: - type: array - items: - type: object - properties: - rel: - type: string - href: - type: string - pages: - type: array - items: - type: object - properties: - page: - type: number - active: - type: boolean - qs: - type: string - separator: - type: boolean - currentPage: - type: number - pageCount: - type: number - prev: - type: object - properties: - page: - type: number - active: - type: boolean - qs: - type: string - next: - type: object - properties: - page: - type: number - active: - type: boolean - qs: - type: string - first: - type: object - properties: - page: - type: number - active: - type: boolean - qs: - type: string - last: - type: object - properties: - page: - type: number - active: - type: boolean - qs: - type: string - loggedIn: - type: boolean - relative_path: - type: string - template: - type: object - properties: - name: - type: string - flags/list: - type: boolean - url: - type: string - bodyClass: - type: string - _header: - type: object - properties: - tags: - type: object - properties: - meta: - type: array - items: - type: object - properties: - name: - type: string - content: - type: string - noEscape: - type: boolean - property: - type: string - link: - type: array - items: - type: object - properties: - rel: - type: string - type: - type: string - href: - type: string - title: - type: string - sizes: - type: string - widgets: - type: object - properties: - footer: - type: array - items: - type: object - properties: - html: - type: string - "/api/flags/{flagId}": - get: - tags: - - flags - summary: /api/flags/{flagId} - parameters: - - name: flagId - in: path - required: true - schema: - type: string - responses: - "200": - description: "" - content: - application/json: - schema: - type: object - properties: - state: - type: string - flagId: - type: number - type: - type: string - targetId: - type: string - description: - type: string - uid: - type: number - description: A user identifier - datetime: - type: number - datetimeISO: - type: string - target_readable: - type: string - target: - type: object - properties: {} - history: - type: array - items: - type: object - properties: - uid: - type: number - description: A user identifier - fields: - type: object - properties: - state: - type: string - datetime: - type: number - datetimeISO: - type: string - user: - type: object - properties: - username: - type: string - description: A friendly name for a given user account - userslug: - type: string - description: An URL-safe variant of the username (i.e. lower-cased, spaces removed, etc.) - picture: - nullable: true - uid: - type: number - description: A user identifier - icon:text: - type: string - description: A single-letter representation of a username. This is used in the auto-generated icon given to users without an avatar - icon:bgColor: - type: string - description: A six-character hexadecimal colour code assigned to the user. This value is used in conjunction with `icon:text` for the user's auto-generated icon - example: "#f44336" - notes: - type: array - items: {} - reporter: - type: object - properties: - username: - type: string - description: A friendly name for a given user account - userslug: - type: string - description: An URL-safe variant of the username (i.e. lower-cased, spaces removed, etc.) - picture: - nullable: true - reputation: - type: number - uid: - type: number - description: A user identifier - icon:text: - type: string - description: A single-letter representation of a username. This is used in the auto-generated icon given to users without an avatar - icon:bgColor: - type: string - description: A six-character hexadecimal colour code assigned to the user. This value is used in conjunction with `icon:text` for the user's auto-generated icon - example: "#f44336" - type_path: - type: string - assignees: - type: array - items: - $ref: 'components/schemas/UserObject.yaml#/UserObject' - type_bool: - type: object - properties: - post: - type: boolean - user: - type: boolean - empty: - type: boolean - title: - type: string - categories: - type: object - properties: - "1": - type: string - "2": - type: string - "3": - type: string - "4": - type: string - "5": - type: string - "6": - type: string - "7": - type: string - "10": - type: string - "13": - type: string - "14": - type: string - "15": - type: string - "16": - type: string - "17": - type: string - "18": - type: string - "19": - type: string - "21": - type: string - "22": - type: string - "26": - type: string - loggedIn: - type: boolean - relative_path: - type: string - template: - type: object - properties: - name: - type: string - flags/detail: - type: boolean - url: - type: string - bodyClass: - type: string - _header: - type: object - properties: - tags: - type: object - properties: - meta: - type: array - items: - type: object - properties: - name: - type: string - content: - type: string - noEscape: - type: boolean - property: - type: string - link: - type: array - items: - type: object - properties: - rel: - type: string - type: - type: string - href: - type: string - title: - type: string - sizes: - type: string - widgets: - type: object - properties: - footer: - type: array - items: - type: object - properties: - html: - type: string - /api/post-queue: - get: - tags: - - admin - summary: /api/post-queue - responses: - "200": - description: "" - content: - application/json: - schema: - type: object - properties: - title: - type: string - posts: - type: array - items: - type: object - properties: - id: - type: string - uid: - type: number - description: A user identifier - type: - type: string - data: - type: object - properties: - title: - type: string - content: - type: string - thumb: - type: string - cid: - oneOf: - - type: number - - type: string - tags: - type: array - items: {} - uid: - type: number - description: A user identifier - req: - type: object - properties: - uid: - type: number - description: A user identifier - ip: - type: string - host: + description: A six-character hexadecimal colour code assigned to the user. This value is used in conjunction with `icon:text` for the user's auto-generated icon + example: "#f44336" + lastonlineISO: type: string - protocol: + banned_until: + type: number + banned_until_readable: type: string - secure: + selectedGroups: + type: array + items: + type: object + properties: + name: + type: string + slug: + type: string + labelColor: + type: string + textColor: + type: string + icon: + type: string + userTitle: + type: string + custom_profile_info: + type: array + items: {} + editor: + nullable: true + bookmarked: + type: boolean + upvoted: + type: boolean + downvoted: + type: boolean + replies: + type: object + properties: + hasMore: type: boolean - url: - type: string - path: + users: + type: array + items: {} + text: type: string - headers: - type: object - properties: - x-real-ip: - type: string - x-forwarded-for: - type: string - x-forwarded-proto: - type: string - host: - type: string - x-nginx-proxy: - type: string - connection: - type: string - accept: - type: string - user-agent: - type: string - sec-fetch-site: - type: string - sec-fetch-mode: - type: string - referer: - type: string - accept-encoding: - type: string - accept-language: - type: string - cookie: - type: string - timestamp: - type: number - fromQueue: + count: + type: number + selfPost: type: boolean - timestampISO: - type: string - description: An ISO 8601 formatted date string (complementing `timestamp`) - rawContent: - type: string - tid: - type: number - description: A topic identifier - toPid: - nullable: true - user: + display_edit_tools: + type: boolean + display_delete_tools: + type: boolean + display_moderator_tools: + type: boolean + display_move_tools: + type: boolean + display_post_menu: + type: boolean + category: + type: object + properties: + link: + type: string + class: + type: string + icon: + type: string + description: + type: string + order: + type: number + topic_count: + type: number + description: The number of topics in the category + name: + type: string + cid: + type: number + description: A category identifier + post_count: + type: number + description: The number of posts in the category + numRecentReplies: + type: number + bgColor: + type: string + slug: + type: string + color: + type: string + disabled: + type: number + descriptionParsed: + type: string + isSection: + type: number + parentCid: + type: number + description: The category identifier for the category that is the immediate ancestor of the current category + totalPostCount: + type: number + description: The number of posts in the category + totalTopicCount: + type: number + description: The number of topics in the category + tagWhitelist: + type: array + items: {} + thread_tools: + type: array + items: type: object properties: - username: - type: string - description: A friendly name for a given user account - userslug: - type: string - description: An URL-safe variant of the username (i.e. lower-cased, spaces removed, etc.) - picture: - nullable: true - type: string - uid: - type: number - description: A user identifier - icon:text: - type: string - description: A single-letter representation of a username. This is used in the auto-generated icon given to users without an avatar - icon:bgColor: + class: type: string - description: A six-character hexadecimal colour code assigned to the user. This value is used in conjunction with `icon:text` for the user's auto-generated icon - example: "#f44336" - topic: - type: object - properties: - cid: - oneOf: - - type: number - - type: string title: type: string - titleRaw: + icon: type: string - category: + isFollowing: + type: boolean + isNotFollowing: + type: boolean + isIgnoring: + type: boolean + bookmark: + nullable: true + postSharing: + type: array + items: type: object properties: - cid: - type: number - description: A category identifier - name: - type: string - description: - type: string - icon: - type: string - bgColor: - type: string - color: - type: string - slug: + id: type: string - parentCid: - type: number - description: The category identifier for the category that is the immediate ancestor of the current category - topic_count: - type: number - description: The number of topics in the category - post_count: - type: number - description: The number of posts in the category - disabled: - type: number - order: - type: number - link: + name: type: string - numRecentReplies: - type: number class: type: string - imageClass: + activated: + type: boolean + deleter: + nullable: true + merger: + nullable: true + related: + type: array + items: {} + unreplied: + type: boolean + icons: + type: array + items: {} + breadcrumbs: + type: array + items: + type: object + properties: + text: type: string - descriptionParsed: + url: type: string - isSection: - type: number - totalPostCount: - type: number - description: The number of posts in the category - totalTopicCount: - type: number - description: The number of topics in the category - pagination: - type: object - properties: - prev: + privileges: type: object properties: - page: - type: number - active: + topics:reply: type: boolean - next: - type: object - properties: - page: - type: number - active: + topics:read: type: boolean - first: - type: object - properties: - page: - type: number - active: + topics:tag: type: boolean - last: - type: object - properties: - page: - type: number - active: + topics:delete: type: boolean - rel: - type: array - items: {} - pages: - type: array - items: {} - currentPage: + posts:edit: + type: boolean + posts:history: + type: boolean + posts:delete: + type: boolean + posts:view_deleted: + type: boolean + read: + type: boolean + purge: + type: boolean + view_thread_tools: + type: boolean + editable: + type: boolean + deletable: + type: boolean + view_deleted: + type: boolean + isAdminOrMod: + type: boolean + disabled: + type: number + tid: + type: string + uid: + type: number + description: A user identifier + topicStaleDays: + type: number + reputation:disabled: type: number - pageCount: + downvote:disabled: type: number - loggedIn: - type: boolean - relative_path: - type: string - template: - type: object - properties: - name: - type: string - admin/manage/post-queue: + feeds:disableRSS: + type: number + bookmarkThreshold: + type: number + postEditDuration: + type: number + postDeleteDuration: + type: number + scrollToMyPost: type: boolean - url: - type: string - bodyClass: - type: string - _header: - type: object - properties: - tags: + allowMultipleBadges: + type: boolean + privateUploads: + type: boolean + rssFeedUrl: + type: string + postIndex: + type: number + pagination: type: object properties: - meta: + rel: type: array items: type: object properties: - name: - type: string - content: + rel: type: string - noEscape: - type: boolean - property: + href: type: string - link: + pages: type: array items: type: object properties: - rel: - type: string - type: - type: string - href: - type: string - title: - type: string - sizes: + page: + type: number + active: + type: boolean + qs: type: string - widgets: - type: object - properties: - footer: - type: array - items: - type: object - properties: - html: - type: string - /api/ip-blacklist: - get: - tags: - - admin - summary: /api/ip-blacklist - responses: {} - /api/registration-queue: - get: - tags: - - admin - summary: /api/registration-queue - responses: {} - "/api/tags/{tag}": + currentPage: + type: number + pageCount: + type: number + prev: + type: object + properties: + page: + type: number + active: + type: boolean + qs: + type: string + next: + type: object + properties: + page: + type: number + active: + type: boolean + qs: + type: string + first: + type: object + properties: + page: + type: number + active: + type: boolean + qs: + type: string + last: + type: object + properties: + page: + type: number + active: + type: boolean + qs: + type: string + - $ref: 'components/schemas/CommonProps.yaml#/CommonProps' + "/api/topic/{topic_id}/{slug?}": get: tags: - - tags - summary: /api/tags/{tag} - description: Returns a list of topics that are tagged with {tag} + - topics + summary: /api/topic/{topic_id}/{slug?} parameters: - - name: tag - description: The tag used to retrieve the topics + - name: topic_id in: path required: true schema: type: string - - name: page - description: Page number used in pagination - in: query - required: false + - name: slug? + in: path + required: true schema: - type: number + type: string responses: "200": description: "" content: application/json: schema: - type: object - properties: - topics: - type: array - description: An array of topics that are all tagged with {tag} - items: - type: object - properties: - tid: - type: number - description: A topic identifier - uid: - type: number - description: A user identifier - cid: - type: number - description: A category identifier - mainPid: - type: number - description: The post id of the first post in this topic (also called the "original post") - title: - type: string - slug: - type: string - timestamp: - type: number - lastposttime: - type: number - postcount: - type: number - viewcount: - type: number - teaserPid: - oneOf: - - type: number - - type: string - deleted: - type: number - locked: - type: number - pinned: - type: number - description: Whether or not this particular topic is pinned to the top of the category - upvotes: - type: number - downvotes: - type: number - titleRaw: - type: string - timestampISO: - type: string - description: An ISO 8601 formatted date string (complementing `timestamp`) - lastposttimeISO: - type: string - votes: - type: number - category: - type: object - properties: - cid: - type: number - description: A category identifier - name: - type: string - slug: - type: string - icon: - type: string - image: - nullable: true - imageClass: - nullable: true - type: string - bgColor: - type: string - color: - type: string - disabled: - type: number - user: + allOf: + - type: object + properties: + tid: + type: number + description: A topic identifier + uid: + type: number + description: A user identifier + cid: + type: number + description: A category identifier + mainPid: + type: number + description: The post id of the first post in this topic (also called the "original post") + title: + type: string + slug: + type: string + timestamp: + type: number + lastposttime: + type: number + postcount: + type: number + viewcount: + type: number + teaserPid: + type: number + upvotes: + type: number + downvotes: + type: number + deleted: + type: number + locked: + type: number + pinned: + type: number + description: Whether or not this particular topic is pinned to the top of the category + titleRaw: + type: string + timestampISO: + type: string + description: An ISO 8601 formatted date string (complementing `timestamp`) + lastposttimeISO: + type: string + votes: + type: number + tags: + type: array + items: type: object properties: - uid: - type: number - description: A user identifier - username: - type: string - description: A friendly name for a given user account - userslug: - type: string - description: An URL-safe variant of the username (i.e. lower-cased, spaces removed, etc.) - reputation: - type: number - postcount: - type: number - picture: - nullable: true - type: string - signature: - nullable: true - type: string - banned: - type: number - status: - type: string - icon:text: - type: string - description: A single-letter representation of a username. This is used in the auto-generated icon given to users without an avatar - icon:bgColor: - type: string - description: A six-character hexadecimal colour code assigned to the user. This value is used in conjunction with `icon:text` for the user's auto-generated icon - example: "#f44336" - banned_until_readable: + value: type: string - fullname: + valueEscaped: type: string - teaser: + color: + type: string + bgColor: + type: string + score: + type: number + posts: + type: array + items: type: object properties: - pid: - type: number - uid: + editor: + properties: + uid: + type: number + description: A user identifier + username: + type: string + description: A friendly name for a given user account + userslug: + type: string + description: An URL-safe variant of the username (i.e. lower-cased, spaces removed, etc.) + nullable: true + type: object + votes: type: number - description: A user identifier timestamp: type: number tid: @@ -8874,9 +4659,67 @@ paths: description: A topic identifier content: type: string + pid: + type: number + edited: + type: number + uid: + type: number + description: A user identifier + upvotes: + type: number + bookmarks: + type: number + replies: + type: object + properties: + hasMore: + type: boolean + users: + type: array + items: + type: object + properties: + uid: + type: number + description: A user identifier + username: + type: string + description: A friendly name for a given user account + userslug: + type: string + description: An URL-safe variant of the username (i.e. lower-cased, spaces removed, etc.) + picture: + nullable: true + icon:text: + type: string + description: A single-letter representation of a username. This is used in the auto-generated icon given to users without an avatar + icon:bgColor: + type: string + description: A six-character hexadecimal colour code assigned to the user. This value is used in conjunction with `icon:text` for the user's auto-generated icon + example: "#f44336" + administrator: + type: boolean + text: + type: string + count: + type: number + timestampISO: + type: string + description: An ISO 8601 formatted date string (complementing `timestamp`) + deleted: + type: number + downvotes: + type: number + deleterUid: + type: number timestampISO: type: string description: An ISO 8601 formatted date string (complementing `timestamp`) + editedISO: + type: string + index: + type: number user: type: object properties: @@ -8886,12 +4729,37 @@ paths: username: type: string description: A friendly name for a given user account + fullname: + type: string userslug: type: string description: An URL-safe variant of the username (i.e. lower-cased, spaces removed, etc.) + reputation: + type: number + postcount: + type: number + topiccount: + type: number picture: nullable: true type: string + signature: + type: string + banned: + type: number + banned:expire: + type: number + status: + type: string + lastonline: + type: number + groupTitle: + nullable: true + type: string + groupTitleArray: + type: array + items: + type: string icon:text: type: string description: A single-letter representation of a username. This is used in the auto-generated icon given to users without an avatar @@ -8899,472 +4767,583 @@ paths: type: string description: A six-character hexadecimal colour code assigned to the user. This value is used in conjunction with `icon:text` for the user's auto-generated icon example: "#f44336" - index: + lastonlineISO: + type: string + banned_until: + type: number + banned_until_readable: + type: string + selectedGroups: + type: array + items: + type: object + properties: + name: + type: string + slug: + type: string + labelColor: + type: string + textColor: + type: string + icon: + type: string + userTitle: + type: string + custom_profile_info: + type: array + items: {} + bookmarked: + type: boolean + upvoted: + type: boolean + downvoted: + type: boolean + selfPost: + type: boolean + display_edit_tools: + type: boolean + display_delete_tools: + type: boolean + display_moderator_tools: + type: boolean + display_move_tools: + type: boolean + display_post_menu: + type: boolean + toPid: type: number - tags: - type: array - items: - type: object - properties: - value: - type: string - valueEscaped: - type: string - color: - type: string - bgColor: - type: string - score: - type: number - isOwner: - type: boolean - ignored: - type: boolean - unread: - type: boolean - bookmark: - nullable: true - unreplied: - type: boolean - icons: - type: array - items: {} - index: - type: number - thumb: - type: string - isQuestion: - nullable: true - type: number - isSolved: - type: number - tag: - type: string - breadcrumbs: - type: array - items: - type: object - properties: - text: - type: string - url: - type: string - title: - type: string - categories: - type: array - items: - type: object - properties: - cid: - type: number - description: A category identifier - name: - type: string - level: - type: string - icon: - type: string - parentCid: - type: number - description: The category identifier for the category that is the immediate ancestor of the current category - color: - type: string - bgColor: - type: string - selected: - type: boolean - imageClass: - type: string - pagination: - type: object - properties: - rel: + parent: + type: object + properties: + username: + type: string + description: A friendly name for a given user account + category: + type: object + properties: + link: + type: string + class: + type: string + icon: + type: string + description: + type: string + order: + type: number + topic_count: + type: number + description: The number of topics in the category + name: + type: string + cid: + type: number + description: A category identifier + post_count: + type: number + description: The number of posts in the category + numRecentReplies: + type: number + bgColor: + type: string + slug: + type: string + color: + type: string + disabled: + type: number + descriptionParsed: + type: string + isSection: + type: number + parentCid: + type: number + description: The category identifier for the category that is the immediate ancestor of the current category + totalPostCount: + type: number + description: The number of posts in the category + totalTopicCount: + type: number + description: The number of topics in the category + tagWhitelist: + type: array + items: {} + thread_tools: + type: array + items: + type: object + properties: + class: + type: string + title: + type: string + icon: + type: string + isFollowing: + type: boolean + isNotFollowing: + type: boolean + isIgnoring: + type: boolean + bookmark: + nullable: true + postSharing: type: array items: type: object properties: - rel: + id: + type: string + name: type: string - href: + class: type: string - pages: + activated: + type: boolean + deleter: + nullable: true + merger: + nullable: true + related: + type: array + items: {} + unreplied: + type: boolean + icons: + type: array + items: {} + breadcrumbs: type: array items: type: object properties: - page: - type: number - active: - type: boolean - qs: + text: type: string - separator: - type: boolean - currentPage: - type: number - pageCount: - type: number - prev: + url: + type: string + privileges: type: object properties: - page: - type: number - active: + topics:reply: type: boolean - qs: - type: string - next: - type: object - properties: - page: - type: number - active: + topics:read: type: boolean - qs: - type: string - first: - type: object - properties: - page: - type: number - active: + topics:tag: type: boolean - qs: - type: string - last: - type: object - properties: - page: - type: number - active: + topics:delete: + type: boolean + posts:edit: + type: boolean + posts:history: + type: boolean + posts:delete: type: boolean - qs: + posts:view_deleted: + type: boolean + read: + type: boolean + purge: + type: boolean + view_thread_tools: + type: boolean + editable: + type: boolean + deletable: + type: boolean + view_deleted: + type: boolean + isAdminOrMod: + type: boolean + disabled: + type: number + tid: type: string - rssFeedUrl: - type: string - loggedIn: - type: boolean - relative_path: - type: string - template: - type: object - properties: - name: - type: string - tag: + uid: + type: number + description: A user identifier + topicStaleDays: + type: number + reputation:disabled: + type: number + downvote:disabled: + type: number + feeds:disableRSS: + type: number + bookmarkThreshold: + type: number + postEditDuration: + type: number + postDeleteDuration: + type: number + scrollToMyPost: type: boolean - url: - type: string - bodyClass: - type: string - _header: - type: object - properties: - tags: + allowMultipleBadges: + type: boolean + privateUploads: + type: boolean + rssFeedUrl: + type: string + postIndex: + type: number + pagination: type: object properties: - meta: + rel: type: array items: type: object properties: - name: - type: string - content: + rel: type: string - noEscape: - type: boolean - property: + href: type: string - link: + pages: type: array items: type: object properties: - rel: - type: string - type: - type: string - href: - type: string - title: - type: string - sizes: + page: + type: number + active: + type: boolean + qs: type: string - widgets: - type: object - properties: - footer: - type: array - items: - type: object - properties: - html: - type: string - /api/tags: + currentPage: + type: number + pageCount: + type: number + prev: + type: object + properties: + page: + type: number + active: + type: boolean + qs: + type: string + next: + type: object + properties: + page: + type: number + active: + type: boolean + qs: + type: string + first: + type: object + properties: + page: + type: number + active: + type: boolean + qs: + type: string + last: + type: object + properties: + page: + type: number + active: + type: boolean + qs: + type: string + loggedInUser: + type: object + properties: + uid: + type: number + description: A user identifier + username: + type: string + description: A friendly name for a given user account + picture: + type: string + icon:text: + type: string + description: A single-letter representation of a username. This is used in the auto-generated icon given to users without an avatar + icon:bgColor: + type: string + description: A six-character hexadecimal colour code assigned to the user. This value is used in conjunction with `icon:text` for the user's auto-generated icon + example: "#f44336" + - $ref: 'components/schemas/CommonProps.yaml#/CommonProps' + "/api/post/{pid}": get: tags: - - tags - summary: /api/tags - description: Returns a list of tags sorted by the most topics + - shorthand + summary: /api/post/{pid} + parameters: + - name: pid + in: path + required: true + schema: + type: string responses: "200": description: "" content: application/json: schema: - type: object - properties: - tags: - type: array - description: An array of tags sorted by the most topics - items: - type: object - properties: - value: - type: string - description: The raw tag - score: - type: number - description: Number of topics tagged by this tag - valueEscaped: - type: string - description: This is the escaped tag value, equal to validator.escape(value) - color: - type: string - bgColor: - type: string - displayTagSearch: - type: boolean - nextStart: - type: number - breadcrumbs: - type: array - items: - type: object - properties: - text: - type: string - url: - type: string - title: - type: string - loggedIn: - type: boolean - relative_path: - type: string - template: - type: object - properties: - name: - type: string - tags: - type: boolean - url: - type: string - bodyClass: - type: string - _header: - type: object + title: /topic/9995/cannot-post-or-reply-to-posts-in-nodebb-mobile-version/14?_=1574522486637&lang=en-US + type: undefined + text/plain: + schema: + title: /topic/9995/cannot-post-or-reply-to-posts-in-nodebb-mobile-version/14?_=1574522486637&lang=en-US + type: undefined + "404": + description: "" + content: + application/json: + schema: + type: string + example: Not Found + text/plain: + schema: + type: string + example: Not Found + /api/flags: + get: + tags: + - flags + summary: /api/flags + responses: + "200": + description: "" + content: + application/json: + schema: + allOf: + - type: object properties: - tags: - type: object - properties: - meta: - type: array - items: + flags: + type: array + items: + type: object + properties: + state: + type: string + flagId: + type: number + type: + type: string + targetId: + oneOf: + - type: string + - type: number + description: + type: string + uid: + type: number + description: A user identifier + datetime: + type: number + reporter: type: object properties: - name: + username: type: string - content: + description: A friendly name for a given user account + picture: + nullable: true type: string - noEscape: - type: boolean - property: + icon:bgColor: type: string - link: + description: A six-character hexadecimal colour code assigned to the user. This value is used in conjunction with `icon:text` for the user's auto-generated icon + example: "#f44336" + icon:text: + type: string + description: A single-letter representation of a username. This is used in the auto-generated icon given to users without an avatar + labelClass: + type: string + target_readable: + type: string + datetimeISO: + type: string + assignee: + type: string + analytics: + type: array + items: + type: number + categories: + type: object + properties: + "1": + type: string + "2": + type: string + "3": + type: string + "4": + type: string + "5": + type: string + "6": + type: string + "7": + type: string + "10": + type: string + "13": + type: string + "14": + type: string + "15": + type: string + "16": + type: string + "17": + type: string + "18": + type: string + "19": + type: string + "21": + type: string + "22": + type: string + "26": + type: string + hasFilter: + type: boolean + filters: + type: object + properties: + page: + type: number + perPage: + type: number + title: + type: string + pagination: + type: object + properties: + rel: type: array items: type: object properties: rel: type: string - type: - type: string href: type: string - title: - type: string - sizes: + pages: + type: array + items: + type: object + properties: + page: + type: number + active: + type: boolean + qs: type: string - widgets: - type: object - properties: - footer: - type: array - items: - type: object - properties: - html: - type: string - /api/popular: + separator: + type: boolean + currentPage: + type: number + pageCount: + type: number + prev: + type: object + properties: + page: + type: number + active: + type: boolean + qs: + type: string + next: + type: object + properties: + page: + type: number + active: + type: boolean + qs: + type: string + first: + type: object + properties: + page: + type: number + active: + type: boolean + qs: + type: string + last: + type: object + properties: + page: + type: number + active: + type: boolean + qs: + type: string + - $ref: 'components/schemas/CommonProps.yaml#/CommonProps' + "/api/flags/{flagId}": get: tags: - - topics - summary: Popular Topics - description: Returns a list of topics sorted by most replies. In an event of a tie breaker, the topic with the most views. Can be filtered by All Time, Day, Week, or Month. + - flags + summary: /api/flags/{flagId} + parameters: + - name: flagId + in: path + required: true + schema: + type: string responses: "200": - description: An array of topic objects sorted by most replies and views. + description: "" content: application/json: schema: - type: object - properties: - nextStart: - type: number - topicCount: - type: number - topics: - type: array - items: - type: object - properties: - tid: - type: number - description: A topic identifier - uid: - type: number - description: A user identifier - cid: - type: number - description: A category identifier - title: - type: string - slug: - type: string - timestamp: - type: number - lastposttime: - type: number - postcount: - type: number - viewcount: - type: number - pinned: - type: number - description: Whether or not this particular topic is pinned to the top of the category - thumb: - type: string - mainPid: - type: number - description: The post id of the first post in this topic (also called the "original post") - teaserPid: - oneOf: - - type: number - - type: string - upvotes: - type: number - downvotes: - type: number - deleted: - type: number - locked: - type: number - titleRaw: - type: string - timestampISO: - type: string - description: An ISO 8601 formatted date string (complementing `timestamp`) - lastposttimeISO: - type: string - votes: - type: number - category: - type: object - properties: - cid: - type: number - description: A category identifier - name: - type: string - slug: - type: string - icon: - type: string - image: - nullable: true - imageClass: - nullable: true - bgColor: - type: string - color: - type: string - disabled: - type: number - user: - type: object - properties: - uid: - type: number - description: A user identifier - username: - type: string - description: A friendly name for a given user account - fullname: - type: string - userslug: - type: string - description: An URL-safe variant of the username (i.e. lower-cased, spaces removed, etc.) - reputation: - type: number - postcount: - type: number - picture: - nullable: true - type: string - signature: - nullable: true - type: string - banned: - type: number - status: - type: string - icon:text: - type: string - description: A single-letter representation of a username. This is used in the auto-generated icon given to users without an avatar - icon:bgColor: - type: string - description: A six-character hexadecimal colour code assigned to the user. This value is used in conjunction with `icon:text` for the user's auto-generated icon - example: "#f44336" - banned_until_readable: - type: string - teaser: + allOf: + - type: object + properties: + state: + type: string + flagId: + type: number + type: + type: string + targetId: + type: string + description: + type: string + uid: + type: number + description: A user identifier + datetime: + type: number + datetimeISO: + type: string + target_readable: + type: string + target: + type: object + properties: {} + history: + type: array + items: type: object properties: - pid: - type: number uid: type: number description: A user identifier - timestamp: - type: number - tid: + fields: + type: object + properties: + state: + type: string + datetime: type: number - description: A topic identifier - content: - type: string - timestampISO: + datetimeISO: type: string - description: An ISO 8601 formatted date string (complementing `timestamp`) user: type: object properties: - uid: - type: number - description: A user identifier username: type: string description: A friendly name for a given user account @@ -9373,7 +5352,9 @@ paths: description: An URL-safe variant of the username (i.e. lower-cased, spaces removed, etc.) picture: nullable: true - type: string + uid: + type: number + description: A user identifier icon:text: type: string description: A single-letter representation of a username. This is used in the auto-generated icon given to users without an avatar @@ -9381,408 +5362,405 @@ paths: type: string description: A six-character hexadecimal colour code assigned to the user. This value is used in conjunction with `icon:text` for the user's auto-generated icon example: "#f44336" - index: - type: number - tags: - type: array - items: - type: object - properties: - value: - type: string - valueEscaped: - type: string - color: - type: string - bgColor: - type: string - score: - type: number - isOwner: - type: boolean - ignored: - type: boolean - unread: - type: boolean - bookmark: - nullable: true - unreplied: - type: boolean - icons: - type: array - items: {} - index: - type: number - tids: - type: array - items: - type: number - canPost: - type: boolean - categories: - type: array - items: - type: object - properties: - cid: - type: number - description: A category identifier - name: - type: string - level: - type: string - icon: - type: string - parentCid: - type: number - description: The category identifier for the category that is the immediate ancestor of the current category - color: - type: string - bgColor: - type: string - selected: - type: boolean - imageClass: - type: string - allCategoriesUrl: - type: string - selectedCids: - type: array - items: {} - feeds:disableRSS: - type: number - rssFeedUrl: - type: string - title: - type: string - filters: - type: array - items: - type: object - properties: - name: - type: string - url: - type: string - selected: - type: boolean - filter: - type: string - selectedFilter: - type: object - properties: - name: - type: string - url: - type: string - selected: - type: boolean - filter: - type: string - terms: - type: array - items: - type: object - properties: - name: - type: string - url: - type: string - selected: - type: boolean - term: - type: string - selectedTerm: - type: object - properties: - name: - type: string - url: - type: string - selected: - type: boolean - term: - type: string - pagination: - type: object - properties: - rel: - type: array - items: - type: object - properties: - rel: - type: string - href: - type: string - pages: + notes: type: array - items: - type: object - properties: - page: - type: number - active: - type: boolean - qs: - type: string - separator: - type: boolean - currentPage: - type: number - pageCount: - type: number - prev: + items: {} + reporter: type: object properties: - page: - type: number - active: - type: boolean - qs: + username: type: string - next: - type: object - properties: - page: - type: number - active: - type: boolean - qs: + description: A friendly name for a given user account + userslug: type: string - first: - type: object - properties: - page: + description: An URL-safe variant of the username (i.e. lower-cased, spaces removed, etc.) + picture: + nullable: true + reputation: type: number - active: - type: boolean - qs: + uid: + type: number + description: A user identifier + icon:text: + type: string + description: A single-letter representation of a username. This is used in the auto-generated icon given to users without an avatar + icon:bgColor: type: string - last: + description: A six-character hexadecimal colour code assigned to the user. This value is used in conjunction with `icon:text` for the user's auto-generated icon + example: "#f44336" + type_path: + type: string + assignees: + type: array + items: + $ref: 'components/schemas/UserObject.yaml#/UserObject' + type_bool: type: object properties: - page: - type: number - active: + post: type: boolean - qs: - type: string - breadcrumbs: - type: array - items: - type: object - properties: - text: - type: string - url: + user: + type: boolean + empty: + type: boolean + title: + type: string + categories: + type: object + additionalProperties: type: string - loggedIn: - type: boolean - relative_path: - type: string - template: - type: object + - $ref: 'components/schemas/CommonProps.yaml#/CommonProps' + /api/post-queue: + get: + tags: + - admin + summary: /api/post-queue + responses: + "200": + description: "" + content: + application/json: + schema: + allOf: + - type: object properties: - name: + title: type: string - popular: - type: boolean - url: - type: string - bodyClass: - type: string - _header: - type: object - properties: - tags: - type: object - properties: - meta: - type: array - items: + posts: + type: array + items: + type: object + properties: + id: + type: string + uid: + type: number + description: A user identifier + type: + type: string + data: + type: object + properties: + title: + type: string + content: + type: string + thumb: + type: string + cid: + oneOf: + - type: number + - type: string + tags: + type: array + items: {} + uid: + type: number + description: A user identifier + req: + type: object + properties: + uid: + type: number + description: A user identifier + ip: + type: string + host: + type: string + protocol: + type: string + secure: + type: boolean + url: + type: string + path: + type: string + headers: + type: object + properties: + x-real-ip: + type: string + x-forwarded-for: + type: string + x-forwarded-proto: + type: string + host: + type: string + x-nginx-proxy: + type: string + connection: + type: string + accept: + type: string + user-agent: + type: string + sec-fetch-site: + type: string + sec-fetch-mode: + type: string + referer: + type: string + accept-encoding: + type: string + accept-language: + type: string + cookie: + type: string + timestamp: + type: number + fromQueue: + type: boolean + timestampISO: + type: string + description: An ISO 8601 formatted date string (complementing `timestamp`) + rawContent: + type: string + tid: + type: number + description: A topic identifier + toPid: + nullable: true + user: + type: object + properties: + username: + type: string + description: A friendly name for a given user account + userslug: + type: string + description: An URL-safe variant of the username (i.e. lower-cased, spaces removed, etc.) + picture: + nullable: true + type: string + uid: + type: number + description: A user identifier + icon:text: + type: string + description: A single-letter representation of a username. This is used in the auto-generated icon given to users without an avatar + icon:bgColor: + type: string + description: A six-character hexadecimal colour code assigned to the user. This value is used in conjunction with `icon:text` for the user's auto-generated icon + example: "#f44336" + topic: type: object properties: - name: - type: string - content: + cid: + oneOf: + - type: number + - type: string + title: type: string - noEscape: - type: boolean - property: + titleRaw: type: string - link: - type: array - items: + category: type: object properties: - rel: + cid: + type: number + description: A category identifier + name: type: string - type: + description: type: string - href: + icon: type: string - title: + bgColor: type: string - sizes: + color: type: string - widgets: - type: object - properties: - footer: - type: array - items: - type: object - properties: - html: - type: string - /api/recent: + slug: + type: string + parentCid: + type: number + description: The category identifier for the category that is the immediate ancestor of the current category + topic_count: + type: number + description: The number of topics in the category + post_count: + type: number + description: The number of posts in the category + disabled: + type: number + order: + type: number + link: + type: string + numRecentReplies: + type: number + class: + type: string + imageClass: + type: string + descriptionParsed: + type: string + isSection: + type: number + totalPostCount: + type: number + description: The number of posts in the category + totalTopicCount: + type: number + description: The number of topics in the category + pagination: + type: object + properties: + prev: + type: object + properties: + page: + type: number + active: + type: boolean + next: + type: object + properties: + page: + type: number + active: + type: boolean + first: + type: object + properties: + page: + type: number + active: + type: boolean + last: + type: object + properties: + page: + type: number + active: + type: boolean + rel: + type: array + items: {} + pages: + type: array + items: {} + currentPage: + type: number + pageCount: + type: number + - $ref: 'components/schemas/CommonProps.yaml#/CommonProps' + /api/ip-blacklist: get: tags: - - topics - summary: Recent Topics - description: Returns a list of topics sorted by timestamp. + - admin + summary: /api/ip-blacklist + responses: {} + /api/registration-queue: + get: + tags: + - admin + summary: /api/registration-queue + responses: {} + "/api/tags/{tag}": + get: + tags: + - tags + summary: /api/tags/{tag} + description: Returns a list of topics that are tagged with {tag} + parameters: + - name: tag + description: The tag used to retrieve the topics + in: path + required: true + schema: + type: string + - name: page + description: Page number used in pagination + in: query + required: false + schema: + type: number responses: "200": - description: An array of topic objects sorted by timestamp. + description: "" content: application/json: schema: - type: object - properties: - nextStart: - type: number - topicCount: - type: number - topics: - type: array - items: - type: object - properties: - tid: - type: number - description: A topic identifier - uid: - type: number - description: A user identifier - cid: - type: number - description: A category identifier - mainPid: - type: number - description: The post id of the first post in this topic (also called the "original post") - title: - type: string - slug: - type: string - timestamp: - type: number - lastposttime: - type: number - postcount: - type: number - viewcount: - type: number - teaserPid: - type: number - upvotes: - type: number - downvotes: - type: number - deleted: - type: number - locked: - type: number - pinned: - type: number - description: Whether or not this particular topic is pinned to the top of the category - titleRaw: - type: string - timestampISO: - type: string - description: An ISO 8601 formatted date string (complementing `timestamp`) - lastposttimeISO: - type: string - votes: - type: number - category: + allOf: + - type: object + properties: + topics: + type: array + description: An array of topics that are all tagged with {tag} + items: type: object properties: + tid: + type: number + description: A topic identifier + uid: + type: number + description: A user identifier cid: type: number description: A category identifier - name: + mainPid: + type: number + description: The post id of the first post in this topic (also called the "original post") + title: type: string slug: type: string - icon: - type: string - image: - nullable: true - imageClass: - nullable: true - type: string - bgColor: - type: string - color: - type: string - disabled: - type: number - user: - type: object - properties: - uid: + timestamp: type: number - description: A user identifier - username: - type: string - description: A friendly name for a given user account - fullname: - type: string - userslug: - type: string - description: An URL-safe variant of the username (i.e. lower-cased, spaces removed, etc.) - reputation: + lastposttime: type: number postcount: type: number - picture: - nullable: true - type: string - signature: - nullable: true - type: string - banned: + viewcount: type: number - status: - type: string - icon:text: - type: string - description: A single-letter representation of a username. This is used in the auto-generated icon given to users without an avatar - icon:bgColor: - type: string - description: A six-character hexadecimal colour code assigned to the user. This value is used in conjunction with `icon:text` for the user's auto-generated icon - example: "#f44336" - banned_until_readable: - type: string - teaser: - type: object - properties: - pid: + teaserPid: + oneOf: + - type: number + - type: string + deleted: type: number - uid: + locked: type: number - description: A user identifier - timestamp: + pinned: type: number - tid: + description: Whether or not this particular topic is pinned to the top of the category + upvotes: + type: number + downvotes: type: number - description: A topic identifier - content: + titleRaw: type: string timestampISO: type: string description: An ISO 8601 formatted date string (complementing `timestamp`) + lastposttimeISO: + type: string + votes: + type: number + category: + type: object + properties: + cid: + type: number + description: A category identifier + name: + type: string + slug: + type: string + icon: + type: string + image: + nullable: true + imageClass: + nullable: true + type: string + bgColor: + type: string + color: + type: string + disabled: + type: number user: type: object properties: @@ -9795,9 +5773,20 @@ paths: userslug: type: string description: An URL-safe variant of the username (i.e. lower-cased, spaces removed, etc.) + reputation: + type: number + postcount: + type: number picture: nullable: true type: string + signature: + nullable: true + type: string + banned: + type: number + status: + type: string icon:text: type: string description: A single-letter representation of a username. This is used in the auto-generated icon given to users without an avatar @@ -9805,411 +5794,341 @@ paths: type: string description: A six-character hexadecimal colour code assigned to the user. This value is used in conjunction with `icon:text` for the user's auto-generated icon example: "#f44336" + banned_until_readable: + type: string + fullname: + type: string + teaser: + type: object + properties: + pid: + type: number + uid: + type: number + description: A user identifier + timestamp: + type: number + tid: + type: number + description: A topic identifier + content: + type: string + timestampISO: + type: string + description: An ISO 8601 formatted date string (complementing `timestamp`) + user: + type: object + properties: + uid: + type: number + description: A user identifier + username: + type: string + description: A friendly name for a given user account + userslug: + type: string + description: An URL-safe variant of the username (i.e. lower-cased, spaces removed, etc.) + picture: + nullable: true + type: string + icon:text: + type: string + description: A single-letter representation of a username. This is used in the auto-generated icon given to users without an avatar + icon:bgColor: + type: string + description: A six-character hexadecimal colour code assigned to the user. This value is used in conjunction with `icon:text` for the user's auto-generated icon + example: "#f44336" + index: + type: number + tags: + type: array + items: + type: object + properties: + value: + type: string + valueEscaped: + type: string + color: + type: string + bgColor: + type: string + score: + type: number + isOwner: + type: boolean + ignored: + type: boolean + unread: + type: boolean + bookmark: + nullable: true + unreplied: + type: boolean + icons: + type: array + items: {} index: type: number - tags: - type: array - items: - type: object - properties: - value: - type: string - valueEscaped: - type: string - color: - type: string - bgColor: - type: string - score: - type: number - isOwner: - type: boolean - ignored: - type: boolean - unread: - type: boolean - bookmark: - nullable: true - unreplied: - type: boolean - icons: - type: array - items: {} - index: - type: number - thumb: - type: string - isQuestion: - nullable: true - tids: - type: array - items: - type: number - canPost: - type: boolean - categories: - type: array - items: - type: object - properties: - cid: - type: number - description: A category identifier - name: - type: string - level: - type: string - icon: - type: string - parentCid: - type: number - description: The category identifier for the category that is the immediate ancestor of the current category - color: - type: string - bgColor: - type: string - selected: - type: boolean - imageClass: - type: string - allCategoriesUrl: - type: string - selectedCids: - type: array - items: {} - feeds:disableRSS: - type: number - rssFeedUrl: - type: string - title: - type: string - filters: - type: array - items: - type: object - properties: - name: - type: string - url: - type: string - selected: - type: boolean - filter: - type: string - selectedFilter: - type: object - properties: - name: - type: string - url: - type: string - selected: - type: boolean - filter: - type: string - terms: - type: array - items: - type: object - properties: - name: - type: string - url: - type: string - selected: - type: boolean - term: - type: string - selectedTerm: - type: object - properties: - name: - type: string - url: - type: string - selected: - type: boolean - term: - type: string - pagination: - type: object - properties: - rel: - type: array - items: - type: object - properties: - rel: - type: string - href: + thumb: type: string - pages: - type: array - items: - type: object - properties: - page: + isQuestion: + nullable: true type: number - active: - type: boolean - qs: - type: string - separator: - type: boolean - currentPage: - type: number - pageCount: - type: number - prev: - type: object - properties: - page: - type: number - active: - type: boolean - qs: - type: string - next: - type: object - properties: - page: - type: number - active: - type: boolean - qs: - type: string - first: - type: object - properties: - page: - type: number - active: - type: boolean - qs: - type: string - last: - type: object - properties: - page: - type: number - active: - type: boolean - qs: - type: string - breadcrumbs: - type: array - items: - type: object - properties: - text: - type: string - url: - type: string - loggedIn: - type: boolean - relative_path: - type: string - template: - type: object - properties: - name: + isSolved: + type: number + tag: type: string - recent: - type: boolean - url: - type: string - bodyClass: - type: string - _header: - type: object - properties: - tags: + breadcrumbs: + type: array + items: + type: object + properties: + text: + type: string + url: + type: string + title: + type: string + categories: + type: array + items: + type: object + properties: + cid: + type: number + description: A category identifier + name: + type: string + level: + type: string + icon: + type: string + parentCid: + type: number + description: The category identifier for the category that is the immediate ancestor of the current category + color: + type: string + bgColor: + type: string + selected: + type: boolean + imageClass: + type: string + pagination: type: object properties: - meta: + rel: type: array items: type: object properties: - name: - type: string - content: + rel: type: string - noEscape: - type: boolean - property: + href: type: string - link: + pages: type: array items: type: object properties: - rel: - type: string - type: - type: string - href: - type: string - title: - type: string - sizes: + page: + type: number + active: + type: boolean + qs: type: string - widgets: - type: object + separator: + type: boolean + currentPage: + type: number + pageCount: + type: number + prev: + type: object + properties: + page: + type: number + active: + type: boolean + qs: + type: string + next: + type: object + properties: + page: + type: number + active: + type: boolean + qs: + type: string + first: + type: object + properties: + page: + type: number + active: + type: boolean + qs: + type: string + last: + type: object + properties: + page: + type: number + active: + type: boolean + qs: + type: string + rssFeedUrl: + type: string + - $ref: 'components/schemas/CommonProps.yaml#/CommonProps' + /api/tags: + get: + tags: + - tags + summary: /api/tags + description: Returns a list of tags sorted by the most topics + responses: + "200": + description: "" + content: + application/json: + schema: + allOf: + - type: object properties: - footer: + tags: type: array + description: An array of tags sorted by the most topics items: type: object properties: - html: + value: type: string - /api/top: + description: The raw tag + score: + type: number + description: Number of topics tagged by this tag + valueEscaped: + type: string + description: This is the escaped tag value, equal to validator.escape(value) + color: + type: string + bgColor: + type: string + displayTagSearch: + type: boolean + nextStart: + type: number + breadcrumbs: + type: array + items: + type: object + properties: + text: + type: string + url: + type: string + title: + type: string + - $ref: 'components/schemas/CommonProps.yaml#/CommonProps' + /api/popular: get: tags: - topics - summary: Top Topics - description: Returns a list of topics sorted by most upvotes. + summary: Popular Topics + description: Returns a list of topics sorted by most replies. In an event of a tie breaker, the topic with the most views. Can be filtered by All Time, Day, Week, or Month. responses: "200": - description: An array of topic objects sorted by most upvotes. + description: An array of topic objects sorted by most replies and views. content: application/json: schema: - type: object - properties: - nextStart: - type: number - topicCount: - type: number - topics: - type: array - items: - type: object - properties: - tid: - type: number - description: A topic identifier - uid: - type: number - description: A user identifier - cid: - type: number - description: A category identifier - mainPid: - type: number - description: The post id of the first post in this topic (also called the "original post") - title: - type: string - slug: - type: string - timestamp: - type: number - lastposttime: - type: number - postcount: - type: number - viewcount: - type: number - teaserPid: - type: string - upvotes: - type: number - downvotes: - type: number - deleted: - type: number - locked: - type: number - pinned: - type: number - description: Whether or not this particular topic is pinned to the top of the category - titleRaw: - type: string - timestampISO: - type: string - description: An ISO 8601 formatted date string (complementing `timestamp`) - lastposttimeISO: - type: string - votes: - type: number - category: + allOf: + - type: object + properties: + nextStart: + type: number + topicCount: + type: number + topics: + type: array + items: type: object properties: + tid: + type: number + description: A topic identifier + uid: + type: number + description: A user identifier cid: type: number description: A category identifier - name: + title: type: string slug: type: string - icon: - type: string - image: - nullable: true - imageClass: - nullable: true - bgColor: - type: string - color: - type: string - disabled: - type: number - user: - type: object - properties: - uid: + timestamp: type: number - description: A user identifier - username: - type: string - description: A friendly name for a given user account - userslug: - type: string - description: An URL-safe variant of the username (i.e. lower-cased, spaces removed, etc.) - reputation: + lastposttime: type: number postcount: type: number - picture: - nullable: true - type: string - signature: - nullable: true - type: string - banned: + viewcount: type: number - status: - type: string - icon:text: - type: string - description: A single-letter representation of a username. This is used in the auto-generated icon given to users without an avatar - icon:bgColor: - type: string - description: A six-character hexadecimal colour code assigned to the user. This value is used in conjunction with `icon:text` for the user's auto-generated icon - example: "#f44336" - banned_until_readable: - type: string - fullname: + pinned: + type: number + description: Whether or not this particular topic is pinned to the top of the category + thumb: type: string - teaser: - type: object - properties: - pid: + mainPid: type: number - uid: + description: The post id of the first post in this topic (also called the "original post") + teaserPid: + oneOf: + - type: number + - type: string + upvotes: type: number - description: A user identifier - timestamp: + downvotes: type: number - tid: + deleted: type: number - description: A topic identifier - content: + locked: + type: number + titleRaw: type: string timestampISO: type: string description: An ISO 8601 formatted date string (complementing `timestamp`) + lastposttimeISO: + type: string + votes: + type: number + category: + type: object + properties: + cid: + type: number + description: A category identifier + name: + type: string + slug: + type: string + icon: + type: string + image: + nullable: true + imageClass: + nullable: true + bgColor: + type: string + color: + type: string + disabled: + type: number user: type: object properties: @@ -10219,12 +6138,25 @@ paths: username: type: string description: A friendly name for a given user account + fullname: + type: string userslug: type: string description: An URL-safe variant of the username (i.e. lower-cased, spaces removed, etc.) + reputation: + type: number + postcount: + type: number picture: nullable: true type: string + signature: + nullable: true + type: string + banned: + type: number + status: + type: string icon:text: type: string description: A single-letter representation of a username. This is used in the auto-generated icon given to users without an avatar @@ -10232,432 +6164,338 @@ paths: type: string description: A six-character hexadecimal colour code assigned to the user. This value is used in conjunction with `icon:text` for the user's auto-generated icon example: "#f44336" + banned_until_readable: + type: string + teaser: + type: object + properties: + pid: + type: number + uid: + type: number + description: A user identifier + timestamp: + type: number + tid: + type: number + description: A topic identifier + content: + type: string + timestampISO: + type: string + description: An ISO 8601 formatted date string (complementing `timestamp`) + user: + type: object + properties: + uid: + type: number + description: A user identifier + username: + type: string + description: A friendly name for a given user account + userslug: + type: string + description: An URL-safe variant of the username (i.e. lower-cased, spaces removed, etc.) + picture: + nullable: true + type: string + icon:text: + type: string + description: A single-letter representation of a username. This is used in the auto-generated icon given to users without an avatar + icon:bgColor: + type: string + description: A six-character hexadecimal colour code assigned to the user. This value is used in conjunction with `icon:text` for the user's auto-generated icon + example: "#f44336" + index: + type: number + tags: + type: array + items: + type: object + properties: + value: + type: string + valueEscaped: + type: string + color: + type: string + bgColor: + type: string + score: + type: number + isOwner: + type: boolean + ignored: + type: boolean + unread: + type: boolean + bookmark: + nullable: true + unreplied: + type: boolean + icons: + type: array + items: {} index: type: number - tags: - type: array - items: - type: object - properties: - value: - type: string - valueEscaped: - type: string - color: - type: string - bgColor: - type: string - score: - type: number - isOwner: - type: boolean - ignored: - type: boolean - unread: - type: boolean - bookmark: - nullable: true - unreplied: - type: boolean - icons: - type: array - items: {} - index: - type: number - thumb: - type: string - tids: - type: array - items: - type: number - canPost: - type: boolean - categories: - type: array - items: - type: object - properties: - cid: - type: number - description: A category identifier - name: - type: string - level: - type: string - icon: - type: string - parentCid: + tids: + type: array + items: type: number - description: The category identifier for the category that is the immediate ancestor of the current category - color: - type: string - bgColor: - type: string - selected: - type: boolean - imageClass: - type: string - allCategoriesUrl: - type: string - selectedCategory: - type: object - properties: - cid: - type: number - description: A category identifier - name: - type: string - level: - type: string - icon: - type: string - parentCid: - type: number - description: The category identifier for the category that is the immediate ancestor of the current category - color: - type: string - bgColor: - type: string - selected: - type: boolean - selectedCids: - type: array - items: - type: number - feeds:disableRSS: - type: number - rssFeedUrl: - type: string - title: - type: string - filters: - type: array - items: - type: object - properties: - name: - type: string - url: - type: string - selected: - type: boolean - filter: - type: string - selectedFilter: - type: object - properties: - name: - type: string - url: - type: string - selected: + canPost: type: boolean - filter: - type: string - terms: - type: array - items: - type: object - properties: - name: - type: string - url: - type: string - selected: - type: boolean - term: - type: string - selectedTerm: - type: object - properties: - name: + categories: + type: array + items: + type: object + properties: + cid: + type: number + description: A category identifier + name: + type: string + level: + type: string + icon: + type: string + parentCid: + type: number + description: The category identifier for the category that is the immediate ancestor of the current category + color: + type: string + bgColor: + type: string + selected: + type: boolean + imageClass: + type: string + allCategoriesUrl: type: string - url: + selectedCids: + type: array + items: {} + feeds:disableRSS: + type: number + rssFeedUrl: type: string - selected: - type: boolean - term: + title: type: string - pagination: - type: object - properties: - rel: + filters: type: array items: type: object properties: - rel: + name: type: string - href: + url: type: string - pages: - type: array - items: - type: object - properties: - page: - type: number - active: + selected: type: boolean - qs: + filter: type: string - separator: - type: boolean - currentPage: - type: number - pageCount: - type: number - prev: + selectedFilter: type: object properties: - page: - type: number - active: - type: boolean - qs: + name: type: string - next: - type: object - properties: - page: - type: number - active: - type: boolean - qs: + url: type: string - first: - type: object - properties: - page: - type: number - active: + selected: type: boolean - qs: + filter: type: string - last: + terms: + type: array + items: + type: object + properties: + name: + type: string + url: + type: string + selected: + type: boolean + term: + type: string + selectedTerm: type: object properties: - page: - type: number - active: + name: + type: string + url: + type: string + selected: type: boolean - qs: + term: type: string - breadcrumbs: - type: array - items: - type: object - properties: - text: - type: string - url: - type: string - loggedIn: - type: boolean - relative_path: - type: string - template: - type: object - properties: - name: - type: string - top: - type: boolean - url: - type: string - bodyClass: - type: string - _header: - type: object - properties: - tags: + pagination: type: object properties: - meta: + rel: type: array items: type: object properties: - name: - type: string - content: + rel: type: string - noEscape: - type: boolean - property: + href: type: string - link: + pages: type: array items: type: object properties: - rel: - type: string - type: - type: string - href: - type: string - title: - type: string - sizes: + page: + type: number + active: + type: boolean + qs: type: string - widgets: - type: object - properties: - footer: + separator: + type: boolean + currentPage: + type: number + pageCount: + type: number + prev: + type: object + properties: + page: + type: number + active: + type: boolean + qs: + type: string + next: + type: object + properties: + page: + type: number + active: + type: boolean + qs: + type: string + first: + type: object + properties: + page: + type: number + active: + type: boolean + qs: + type: string + last: + type: object + properties: + page: + type: number + active: + type: boolean + qs: + type: string + breadcrumbs: type: array items: type: object properties: - html: + text: type: string - /api/unread: + url: + type: string + - $ref: 'components/schemas/CommonProps.yaml#/CommonProps' + /api/recent: get: tags: - topics - summary: Unread Topics - description: Returns a list of the current user's unread topics, sorted by the last post's timestamp. + summary: Recent Topics + description: Returns a list of topics sorted by timestamp. responses: "200": - description: An array of unread topic objects sorted by the last post's timestamp. + description: An array of topic objects sorted by timestamp. content: application/json: schema: - type: object - properties: - showSelect: - type: boolean - nextStart: - type: number - topics: - type: array - items: - type: object - properties: - tid: - type: number - description: A topic identifier - uid: - type: number - description: A user identifier - cid: - type: number - description: A category identifier - mainPid: - type: number - description: The post id of the first post in this topic (also called the "original post") - title: - type: string - slug: - type: string - timestamp: - type: number - lastposttime: - type: number - postcount: - type: number - viewcount: - type: number - teaserPid: - type: number - upvotes: - type: number - downvotes: - type: number - deleted: - type: number - locked: - type: number - pinned: - type: number - description: Whether or not this particular topic is pinned to the top of the category - titleRaw: - type: string - timestampISO: - type: string - description: An ISO 8601 formatted date string (complementing `timestamp`) - lastposttimeISO: - type: string - votes: - type: number - category: + allOf: + - type: object + properties: + nextStart: + type: number + topicCount: + type: number + topics: + type: array + items: type: object properties: - cid: - type: number - description: A category identifier - name: - type: string - slug: - type: string - icon: - type: string - image: - nullable: true - imageClass: - nullable: true - type: string - bgColor: - type: string - color: - type: string - disabled: + tid: type: number - user: - type: object - properties: + description: A topic identifier uid: type: number description: A user identifier - username: - type: string - description: A friendly name for a given user account - fullname: - type: string - userslug: - type: string - description: An URL-safe variant of the username (i.e. lower-cased, spaces removed, etc.) - reputation: - type: number - postcount: + cid: type: number - picture: - nullable: true - type: string - signature: - nullable: true - type: string - banned: + description: A category identifier + mainPid: type: number - status: - type: string - icon:text: - type: string - description: A single-letter representation of a username. This is used in the auto-generated icon given to users without an avatar - icon:bgColor: + description: The post id of the first post in this topic (also called the "original post") + title: type: string - description: A six-character hexadecimal colour code assigned to the user. This value is used in conjunction with `icon:text` for the user's auto-generated icon - example: "#f44336" - banned_until_readable: + slug: type: string - teaser: - type: object - properties: - pid: + timestamp: type: number - uid: + lastposttime: type: number - description: A user identifier - timestamp: + postcount: type: number - tid: + viewcount: type: number - description: A topic identifier - content: + teaserPid: + type: number + upvotes: + type: number + downvotes: + type: number + deleted: + type: number + locked: + type: number + pinned: + type: number + description: Whether or not this particular topic is pinned to the top of the category + titleRaw: type: string timestampISO: type: string description: An ISO 8601 formatted date string (complementing `timestamp`) + lastposttimeISO: + type: string + votes: + type: number + category: + type: object + properties: + cid: + type: number + description: A category identifier + name: + type: string + slug: + type: string + icon: + type: string + image: + nullable: true + imageClass: + nullable: true + type: string + bgColor: + type: string + color: + type: string + disabled: + type: number user: type: object properties: @@ -10667,12 +6505,25 @@ paths: username: type: string description: A friendly name for a given user account + fullname: + type: string userslug: type: string description: An URL-safe variant of the username (i.e. lower-cased, spaces removed, etc.) + reputation: + type: number + postcount: + type: number picture: nullable: true type: string + signature: + nullable: true + type: string + banned: + type: number + status: + type: string icon:text: type: string description: A single-letter representation of a username. This is used in the auto-generated icon given to users without an avatar @@ -10680,425 +6531,341 @@ paths: type: string description: A six-character hexadecimal colour code assigned to the user. This value is used in conjunction with `icon:text` for the user's auto-generated icon example: "#f44336" + banned_until_readable: + type: string + teaser: + type: object + properties: + pid: + type: number + uid: + type: number + description: A user identifier + timestamp: + type: number + tid: + type: number + description: A topic identifier + content: + type: string + timestampISO: + type: string + description: An ISO 8601 formatted date string (complementing `timestamp`) + user: + type: object + properties: + uid: + type: number + description: A user identifier + username: + type: string + description: A friendly name for a given user account + userslug: + type: string + description: An URL-safe variant of the username (i.e. lower-cased, spaces removed, etc.) + picture: + nullable: true + type: string + icon:text: + type: string + description: A single-letter representation of a username. This is used in the auto-generated icon given to users without an avatar + icon:bgColor: + type: string + description: A six-character hexadecimal colour code assigned to the user. This value is used in conjunction with `icon:text` for the user's auto-generated icon + example: "#f44336" + index: + type: number + tags: + type: array + items: + type: object + properties: + value: + type: string + valueEscaped: + type: string + color: + type: string + bgColor: + type: string + score: + type: number + isOwner: + type: boolean + ignored: + type: boolean + unread: + type: boolean + bookmark: + nullable: true + unreplied: + type: boolean + icons: + type: array + items: {} index: type: number - tags: - type: array - items: - type: object - properties: - value: - type: string - valueEscaped: - type: string - color: - type: string - bgColor: - type: string - score: - type: number - isOwner: - type: boolean - ignored: - type: boolean - unread: - type: boolean - bookmark: - nullable: true - unreplied: - type: boolean - icons: - type: array - items: {} - index: - type: number - isQuestion: - nullable: true - topicCount: - type: number - title: - type: string - pageCount: - type: number - pagination: - type: object - properties: - prev: - type: object - properties: - page: - type: number - active: - type: boolean - next: - type: object - properties: - page: - type: number - active: - type: boolean - first: - type: object - properties: - page: - type: number - active: - type: boolean - last: - type: object - properties: - page: - type: number - active: - type: boolean - rel: - type: array - items: {} - pages: + thumb: + type: string + isQuestion: + nullable: true + tids: type: array - items: {} - currentPage: - type: number - pageCount: - type: number - categories: - type: array - items: - type: object - properties: - cid: - type: number - description: A category identifier - name: - type: string - level: - type: string - icon: - type: string - parentCid: + items: type: number - description: The category identifier for the category that is the immediate ancestor of the current category - color: - type: string - bgColor: - type: string - selected: - type: boolean - imageClass: - type: string - allCategoriesUrl: - type: string - selectedCids: - type: array - items: {} - breadcrumbs: - type: array - items: - type: object - properties: - text: - type: string - url: - type: string - filters: - type: array - items: - type: object - properties: - name: - type: string - url: - type: string - selected: - type: boolean - filter: - type: string - selectedFilter: - type: object - properties: - name: - type: string - url: + canPost: + type: boolean + categories: + type: array + items: + type: object + properties: + cid: + type: number + description: A category identifier + name: + type: string + level: + type: string + icon: + type: string + parentCid: + type: number + description: The category identifier for the category that is the immediate ancestor of the current category + color: + type: string + bgColor: + type: string + selected: + type: boolean + imageClass: + type: string + allCategoriesUrl: type: string - selected: - type: boolean - filter: + selectedCids: + type: array + items: {} + feeds:disableRSS: + type: number + rssFeedUrl: type: string - loggedIn: - type: boolean - relative_path: - type: string - template: - type: object - properties: - name: + title: type: string - unread: - type: boolean - url: - type: string - bodyClass: - type: string - _header: - type: object - properties: - tags: + filters: + type: array + items: + type: object + properties: + name: + type: string + url: + type: string + selected: + type: boolean + filter: + type: string + selectedFilter: + type: object + properties: + name: + type: string + url: + type: string + selected: + type: boolean + filter: + type: string + terms: + type: array + items: + type: object + properties: + name: + type: string + url: + type: string + selected: + type: boolean + term: + type: string + selectedTerm: type: object properties: - meta: + name: + type: string + url: + type: string + selected: + type: boolean + term: + type: string + pagination: + type: object + properties: + rel: type: array items: type: object properties: - name: - type: string - content: + rel: type: string - noEscape: - type: boolean - property: + href: type: string - link: + pages: type: array items: type: object properties: - rel: - type: string - type: - type: string - href: - type: string - title: - type: string - sizes: + page: + type: number + active: + type: boolean + qs: type: string - widgets: - type: object - properties: - footer: + separator: + type: boolean + currentPage: + type: number + pageCount: + type: number + prev: + type: object + properties: + page: + type: number + active: + type: boolean + qs: + type: string + next: + type: object + properties: + page: + type: number + active: + type: boolean + qs: + type: string + first: + type: object + properties: + page: + type: number + active: + type: boolean + qs: + type: string + last: + type: object + properties: + page: + type: number + active: + type: boolean + qs: + type: string + breadcrumbs: type: array items: type: object properties: - html: + text: type: string - "401": - description: "" - content: - application/json: - schema: - title: not-authorized - type: undefined - "/api/category/{category_id}/{slug}/{topic_index}": + url: + type: string + - $ref: 'components/schemas/CommonProps.yaml#/CommonProps' + /api/top: get: tags: - - categories - summary: /api/category/{category_id}/{slug}/{topic_index} - parameters: - - name: category_id - in: path - required: true - schema: - type: string - - name: slug - in: path - required: true - schema: - type: string - - name: topic_index - in: path - required: true - schema: - type: string + - topics + summary: Top Topics + description: Returns a list of topics sorted by most upvotes. responses: "200": - description: "" + description: An array of topic objects sorted by most upvotes. content: application/json: schema: - type: object - properties: - link: - type: string - class: - type: string - icon: - type: string - description: - type: string - order: - type: number - topic_count: - type: number - description: The number of topics in the category - name: - type: string - cid: - type: number - description: A category identifier - post_count: - type: number - description: The number of posts in the category - numRecentReplies: - type: number - bgColor: - type: string - slug: - type: string - color: - type: string - parentCid: - type: number - description: The category identifier for the category that is the immediate ancestor of the current category - disabled: - type: number - isSection: - type: number - totalPostCount: - type: number - description: The number of posts in the category - totalTopicCount: - type: number - description: The number of topics in the category - descriptionParsed: - type: string - tagWhitelist: - type: array - items: {} - unread-class: - type: string - children: - type: array - items: {} - topics: - type: array - items: - type: object - properties: - tid: - type: number - description: A topic identifier - uid: - type: number - description: A user identifier - cid: - type: number - description: A category identifier - title: - type: string - slug: - type: string - timestamp: - type: number - lastposttime: - type: number - postcount: - type: number - viewcount: - type: number - thumb: - type: string - mainPid: - type: number - description: The post id of the first post in this topic (also called the "original post") - upvotes: - type: number - downvotes: - type: number - deleted: - type: number - locked: - type: number - pinned: - type: number - description: Whether or not this particular topic is pinned to the top of the category - titleRaw: - type: string - timestampISO: - type: string - description: An ISO 8601 formatted date string (complementing `timestamp`) - lastposttimeISO: - type: string - votes: - type: number - category: + allOf: + - type: object + properties: + nextStart: + type: number + topicCount: + type: number + topics: + type: array + items: type: object properties: - cid: - type: number - description: A category identifier - name: - type: string - slug: - type: string - icon: - type: string - image: - nullable: true - imageClass: - nullable: true - bgColor: - type: string - color: - type: string - disabled: + tid: type: number - user: - type: object - properties: + description: A topic identifier uid: type: number description: A user identifier - username: + cid: + type: number + description: A category identifier + mainPid: + type: number + description: The post id of the first post in this topic (also called the "original post") + title: type: string - description: A friendly name for a given user account - userslug: + slug: type: string - description: An URL-safe variant of the username (i.e. lower-cased, spaces removed, etc.) - reputation: + timestamp: + type: number + lastposttime: type: number postcount: type: number - picture: - nullable: true - type: string - signature: - nullable: true - type: string - banned: + viewcount: type: number - status: - type: string - icon:text: - type: string - description: A single-letter representation of a username. This is used in the auto-generated icon given to users without an avatar - icon:bgColor: - type: string - description: A six-character hexadecimal colour code assigned to the user. This value is used in conjunction with `icon:text` for the user's auto-generated icon - example: "#f44336" - banned_until_readable: - type: string - fullname: + teaserPid: type: string - teaser: - type: object - properties: - pid: + upvotes: type: number - uid: + downvotes: type: number - description: A user identifier - timestamp: + deleted: type: number - tid: + locked: type: number - description: A topic identifier - content: + pinned: + type: number + description: Whether or not this particular topic is pinned to the top of the category + titleRaw: type: string timestampISO: type: string description: An ISO 8601 formatted date string (complementing `timestamp`) + lastposttimeISO: + type: string + votes: + type: number + category: + type: object + properties: + cid: + type: number + description: A category identifier + name: + type: string + slug: + type: string + icon: + type: string + image: + nullable: true + imageClass: + nullable: true + bgColor: + type: string + color: + type: string + disabled: + type: number user: type: object properties: @@ -11111,9 +6878,20 @@ paths: userslug: type: string description: An URL-safe variant of the username (i.e. lower-cased, spaces removed, etc.) + reputation: + type: number + postcount: + type: number picture: nullable: true type: string + signature: + nullable: true + type: string + banned: + type: number + status: + type: string icon:text: type: string description: A single-letter representation of a username. This is used in the auto-generated icon given to users without an avatar @@ -11121,410 +6899,365 @@ paths: type: string description: A six-character hexadecimal colour code assigned to the user. This value is used in conjunction with `icon:text` for the user's auto-generated icon example: "#f44336" + banned_until_readable: + type: string + fullname: + type: string + teaser: + type: object + properties: + pid: + type: number + uid: + type: number + description: A user identifier + timestamp: + type: number + tid: + type: number + description: A topic identifier + content: + type: string + timestampISO: + type: string + description: An ISO 8601 formatted date string (complementing `timestamp`) + user: + type: object + properties: + uid: + type: number + description: A user identifier + username: + type: string + description: A friendly name for a given user account + userslug: + type: string + description: An URL-safe variant of the username (i.e. lower-cased, spaces removed, etc.) + picture: + nullable: true + type: string + icon:text: + type: string + description: A single-letter representation of a username. This is used in the auto-generated icon given to users without an avatar + icon:bgColor: + type: string + description: A six-character hexadecimal colour code assigned to the user. This value is used in conjunction with `icon:text` for the user's auto-generated icon + example: "#f44336" + index: + type: number + tags: + type: array + items: + type: object + properties: + value: + type: string + valueEscaped: + type: string + color: + type: string + bgColor: + type: string + score: + type: number + isOwner: + type: boolean + ignored: + type: boolean + unread: + type: boolean + bookmark: + nullable: true + unreplied: + type: boolean + icons: + type: array + items: {} index: type: number - tags: - type: array - items: {} - isOwner: - type: boolean - ignored: - type: boolean - unread: - type: boolean - bookmark: - nullable: true - unreplied: - type: boolean - icons: - type: array - items: {} - index: - type: number - teaserPid: + thumb: + type: string + tids: + type: array + items: type: number - nextStart: - type: number - isWatched: - type: boolean - isNotWatched: - type: boolean - isIgnored: - type: boolean - breadcrumbs: - type: array - items: - type: object - properties: - text: - type: string - url: - type: string - title: - type: string - privileges: - type: object - properties: - topics:create: - type: boolean - topics:read: - type: boolean - topics:tag: - type: boolean - read: - type: boolean - cid: - type: string - uid: - type: number - description: A user identifier - editable: - type: boolean - view_deleted: + canPost: type: boolean - isAdminOrMod: - type: boolean - showSelect: - type: boolean - rssFeedUrl: - type: string - feeds:disableRSS: - type: number - reputation:disabled: - type: number - pagination: - type: object - properties: - rel: + categories: type: array items: type: object properties: - rel: + cid: + type: number + description: A category identifier + name: type: string - href: + level: type: string - pages: - type: array - items: - type: object - properties: - page: + icon: + type: string + parentCid: type: number - active: - type: boolean - qs: + description: The category identifier for the category that is the immediate ancestor of the current category + color: + type: string + bgColor: type: string - separator: + selected: type: boolean - currentPage: - type: number - pageCount: - type: number - prev: + imageClass: + type: string + allCategoriesUrl: + type: string + selectedCategory: type: object properties: - page: + cid: type: number - active: - type: boolean - qs: + description: A category identifier + name: type: string - next: - type: object - properties: - page: + level: + type: string + icon: + type: string + parentCid: type: number - active: - type: boolean - qs: + description: The category identifier for the category that is the immediate ancestor of the current category + color: + type: string + bgColor: type: string - first: + selected: + type: boolean + selectedCids: + type: array + items: + type: number + feeds:disableRSS: + type: number + rssFeedUrl: + type: string + title: + type: string + filters: + type: array + items: + type: object + properties: + name: + type: string + url: + type: string + selected: + type: boolean + filter: + type: string + selectedFilter: type: object properties: - page: - type: number - active: + name: + type: string + url: + type: string + selected: type: boolean - qs: + filter: type: string - last: + terms: + type: array + items: + type: object + properties: + name: + type: string + url: + type: string + selected: + type: boolean + term: + type: string + selectedTerm: type: object properties: - page: - type: number - active: + name: + type: string + url: + type: string + selected: type: boolean - qs: + term: type: string - loggedIn: - type: boolean - relative_path: - type: string - template: - type: object - properties: - name: - type: string - category: - type: boolean - url: - type: string - bodyClass: - type: string - _header: - type: object - properties: - tags: + pagination: type: object properties: - meta: + rel: type: array items: type: object properties: - name: - type: string - content: + rel: type: string - noEscape: - type: boolean - property: + href: type: string - link: + pages: type: array items: type: object properties: - rel: - type: string - type: - type: string - href: - type: string - title: - type: string - sizes: + page: + type: number + active: + type: boolean + qs: type: string - widgets: - type: object - properties: - header: - type: array - items: {} - footer: + separator: + type: boolean + currentPage: + type: number + pageCount: + type: number + prev: + type: object + properties: + page: + type: number + active: + type: boolean + qs: + type: string + next: + type: object + properties: + page: + type: number + active: + type: boolean + qs: + type: string + first: + type: object + properties: + page: + type: number + active: + type: boolean + qs: + type: string + last: + type: object + properties: + page: + type: number + active: + type: boolean + qs: + type: string + breadcrumbs: type: array items: type: object properties: - html: + text: type: string - "/api/category/{category_id}/{slug?}": + url: + type: string + - $ref: 'components/schemas/CommonProps.yaml#/CommonProps' + /api/unread: get: tags: - - categories - summary: /api/category/{category_id}/{slug?} - parameters: - - name: category_id - in: path - required: true - schema: - type: string - - name: slug? - in: path - required: true - schema: - type: string + - topics + summary: Unread Topics + description: Returns a list of the current user's unread topics, sorted by the last post's timestamp. + # TODO: querystring params? responses: "200": - description: "" + description: An array of unread topic objects sorted by the last post's timestamp. content: application/json: schema: - type: object - properties: - cid: - type: number - description: A category identifier - name: - type: string - description: - type: string - icon: - type: string - slug: - type: string - topic_count: - type: number - description: The number of topics in the category - order: - type: number - bgColor: - type: string - link: - type: string - class: - type: string - numRecentReplies: - type: number - color: - type: string - post_count: - type: number - description: The number of posts in the category - descriptionParsed: - type: string - parentCid: - type: number - description: The category identifier for the category that is the immediate ancestor of the current category - disabled: - type: number - isSection: - type: number - totalPostCount: - type: number - description: The number of posts in the category - totalTopicCount: - type: number - description: The number of topics in the category - tagWhitelist: - type: array - items: {} - unread-class: - type: string - children: - type: array - items: {} - topics: - type: array - items: - type: object - properties: - tid: - type: number - description: A topic identifier - uid: - type: number - description: A user identifier - cid: - type: number - description: A category identifier - title: - type: string - slug: - type: string - timestamp: - type: number - lastposttime: - type: number - postcount: - type: number - viewcount: - type: number - pinned: - type: number - description: Whether or not this particular topic is pinned to the top of the category - thumb: - type: string - mainPid: - type: number - description: The post id of the first post in this topic (also called the "original post") - teaserPid: - type: number - upvotes: - type: number - downvotes: - type: number - deleted: - type: number - locked: - type: number - titleRaw: - type: string - timestampISO: - type: string - description: An ISO 8601 formatted date string (complementing `timestamp`) - lastposttimeISO: - type: string - votes: - type: number - category: - type: object - properties: - cid: - type: number - description: A category identifier - name: - type: string - slug: - type: string - icon: - type: string - image: - nullable: true - imageClass: - nullable: true - bgColor: - type: string - color: - type: string - disabled: - type: number - user: - type: object - properties: - uid: - type: number - description: A user identifier - username: - type: string - description: A friendly name for a given user account - fullname: - type: string - userslug: - type: string - description: An URL-safe variant of the username (i.e. lower-cased, spaces removed, etc.) - reputation: - type: number - postcount: - type: number - picture: - nullable: true - type: string - signature: - nullable: true - type: string - banned: - type: number - status: - type: string - icon:text: - type: string - description: A single-letter representation of a username. This is used in the auto-generated icon given to users without an avatar - icon:bgColor: - type: string - description: A six-character hexadecimal colour code assigned to the user. This value is used in conjunction with `icon:text` for the user's auto-generated icon - example: "#f44336" - banned_until_readable: - type: string - teaser: + allOf: + - type: object + properties: + showSelect: + type: boolean + nextStart: + type: number + topics: + type: array + items: type: object properties: - pid: + tid: type: number + description: A topic identifier uid: type: number description: A user identifier + cid: + type: number + description: A category identifier + mainPid: + type: number + description: The post id of the first post in this topic (also called the "original post") + title: + type: string + slug: + type: string timestamp: type: number - tid: + lastposttime: type: number - description: A topic identifier - content: + postcount: + type: number + viewcount: + type: number + teaserPid: + type: number + upvotes: + type: number + downvotes: + type: number + deleted: + type: number + locked: + type: number + pinned: + type: number + description: Whether or not this particular topic is pinned to the top of the category + titleRaw: type: string timestampISO: type: string description: An ISO 8601 formatted date string (complementing `timestamp`) + lastposttimeISO: + type: string + votes: + type: number + category: + type: object + properties: + cid: + type: number + description: A category identifier + name: + type: string + slug: + type: string + icon: + type: string + image: + nullable: true + imageClass: + nullable: true + type: string + bgColor: + type: string + color: + type: string + disabled: + type: number user: type: object properties: @@ -11534,12 +7267,25 @@ paths: username: type: string description: A friendly name for a given user account + fullname: + type: string userslug: type: string description: An URL-safe variant of the username (i.e. lower-cased, spaces removed, etc.) + reputation: + type: number + postcount: + type: number picture: nullable: true type: string + signature: + nullable: true + type: string + banned: + type: number + status: + type: string icon:text: type: string description: A single-letter representation of a username. This is used in the auto-generated icon given to users without an avatar @@ -11547,252 +7293,210 @@ paths: type: string description: A six-character hexadecimal colour code assigned to the user. This value is used in conjunction with `icon:text` for the user's auto-generated icon example: "#f44336" + banned_until_readable: + type: string + teaser: + type: object + properties: + pid: + type: number + uid: + type: number + description: A user identifier + timestamp: + type: number + tid: + type: number + description: A topic identifier + content: + type: string + timestampISO: + type: string + description: An ISO 8601 formatted date string (complementing `timestamp`) + user: + type: object + properties: + uid: + type: number + description: A user identifier + username: + type: string + description: A friendly name for a given user account + userslug: + type: string + description: An URL-safe variant of the username (i.e. lower-cased, spaces removed, etc.) + picture: + nullable: true + type: string + icon:text: + type: string + description: A single-letter representation of a username. This is used in the auto-generated icon given to users without an avatar + icon:bgColor: + type: string + description: A six-character hexadecimal colour code assigned to the user. This value is used in conjunction with `icon:text` for the user's auto-generated icon + example: "#f44336" + index: + type: number + tags: + type: array + items: + type: object + properties: + value: + type: string + valueEscaped: + type: string + color: + type: string + bgColor: + type: string + score: + type: number + isOwner: + type: boolean + ignored: + type: boolean + unread: + type: boolean + bookmark: + nullable: true + unreplied: + type: boolean + icons: + type: array + items: {} index: type: number - tags: - type: array - items: + isQuestion: + nullable: true + topicCount: + type: number + title: + type: string + pageCount: + type: number + pagination: + type: object + properties: + prev: type: object properties: - value: - type: string - valueEscaped: - type: string - color: - type: string - bgColor: - type: string - score: + page: type: number - isOwner: - type: boolean - ignored: - type: boolean - unread: - type: boolean - bookmark: - nullable: true - unreplied: - type: boolean - icons: - type: array - items: {} - index: - type: number - isQuestion: - type: number - isSolved: - type: number - nextStart: - type: number - isWatched: - type: boolean - isNotWatched: - type: boolean - isIgnored: - type: boolean - breadcrumbs: - type: array - items: - type: object - properties: - text: - type: string - url: - type: string - title: - type: string - privileges: - type: object - properties: - topics:create: - type: boolean - topics:read: - type: boolean - topics:tag: - type: boolean - read: - type: boolean - cid: - type: string - uid: - type: number - description: A user identifier - editable: - type: boolean - view_deleted: - type: boolean - isAdminOrMod: - type: boolean - showSelect: - type: boolean - rssFeedUrl: - type: string - feeds:disableRSS: - type: number - reputation:disabled: - type: number - pagination: - type: object - properties: - rel: + active: + type: boolean + next: + type: object + properties: + page: + type: number + active: + type: boolean + first: + type: object + properties: + page: + type: number + active: + type: boolean + last: + type: object + properties: + page: + type: number + active: + type: boolean + rel: + type: array + items: {} + pages: + type: array + items: {} + currentPage: + type: number + pageCount: + type: number + categories: + type: array + items: + type: object + properties: + cid: + type: number + description: A category identifier + name: + type: string + level: + type: string + icon: + type: string + parentCid: + type: number + description: The category identifier for the category that is the immediate ancestor of the current category + color: + type: string + bgColor: + type: string + selected: + type: boolean + imageClass: + type: string + allCategoriesUrl: + type: string + selectedCids: + type: array + items: {} + breadcrumbs: type: array items: type: object properties: - rel: + text: type: string - href: + url: type: string - pages: + filters: type: array items: type: object properties: - page: - type: number - active: - type: boolean - qs: + name: + type: string + url: type: string - separator: + selected: type: boolean - currentPage: - type: number - pageCount: - type: number - prev: - type: object - properties: - page: - type: number - active: - type: boolean - qs: - type: string - next: + filter: + type: string + selectedFilter: type: object properties: - page: - type: number - active: - type: boolean - qs: + name: type: string - first: - type: object - properties: - page: - type: number - active: - type: boolean - qs: + url: type: string - last: - type: object - properties: - page: - type: number - active: + selected: type: boolean - qs: + filter: type: string - loggedIn: - type: boolean - relative_path: - type: string - template: - type: object - properties: - name: - type: string - category: - type: boolean - url: - type: string - bodyClass: - type: string - _header: - type: object - properties: - tags: - type: object - properties: - meta: - type: array - items: - type: object - properties: - name: - type: string - content: - type: string - noEscape: - type: boolean - property: - type: string - link: - type: array - items: - type: object - properties: - rel: - type: string - type: - type: string - href: - type: string - title: - type: string - sizes: - type: string - widgets: - type: object - properties: - header: - type: array - items: {} - footer: - type: array - items: - type: object - properties: - html: - type: string - "304": - description: "" - /api/me/*: - get: - tags: - - shorthand - summary: /api/me/* - responses: {} - "/api/uid/{uid*}": + - $ref: 'components/schemas/CommonProps.yaml#/CommonProps' + "/api/category/{category_id}/{slug}/{topic_index}": get: tags: - - shorthand - summary: /api/uid/{uid*} + - categories + summary: /api/category/{category_id}/{slug}/{topic_index} parameters: - - name: uid* + - name: category_id in: path required: true schema: type: string - responses: - "200": - description: "" - content: - application/json: - schema: - title: /user/the-penultimate-defenestrator - type: undefined - "/api/user/{userslug}": - get: - tags: - - users - summary: Get user profile - parameters: - - name: userslug + - name: slug + in: path + required: true + schema: + type: string + - name: topic_index in: path required: true schema: @@ -11804,186 +7508,111 @@ paths: application/json: schema: allOf: - - $ref: 'components/schemas/UserObject.yaml#/UserObjectFull' - type: object properties: - posts: - type: array - items: - type: object - properties: - pid: - type: number - tid: - type: number - description: A topic identifier - content: - type: string - uid: - type: number - description: A user identifier - timestamp: - type: number - deleted: - type: boolean - upvotes: - type: number - downvotes: - type: number - votes: - type: number - timestampISO: - type: string - description: An ISO 8601 formatted date string (complementing `timestamp`) - user: - type: object - properties: - uid: - type: number - description: A user identifier - username: - type: string - description: A friendly name for a given user account - userslug: - type: string - description: An URL-safe variant of the username (i.e. lower-cased, spaces removed, etc.) - picture: - type: string - status: - type: string - icon:text: - type: string - description: A single-letter representation of a username. This is used in the auto-generated icon given to users without an avatar - icon:bgColor: - type: string - description: A six-character hexadecimal colour code assigned to the user. This value is used in conjunction with `icon:text` for the user's auto-generated icon - example: "#f44336" - topic: - type: object - properties: - uid: - type: number - description: A user identifier - tid: - type: number - description: A topic identifier - title: - type: string - cid: - type: number - description: A category identifier - slug: - type: string - deleted: - type: number - postcount: - type: number - mainPid: - type: number - description: The post id of the first post in this topic (also called the "original post") - titleRaw: - type: string - category: - type: object - properties: - cid: - type: number - description: A category identifier - name: - type: string - icon: - type: string - slug: - type: string - parentCid: - type: number - description: The category identifier for the category that is the immediate ancestor of the current category - bgColor: - type: string - color: - type: string - image: - nullable: true - imageClass: - nullable: true - isMainPost: - type: boolean - latestPosts: + link: + type: string + class: + type: string + icon: + type: string + description: + type: string + order: + type: number + topic_count: + type: number + description: The number of topics in the category + name: + type: string + cid: + type: number + description: A category identifier + post_count: + type: number + description: The number of posts in the category + numRecentReplies: + type: number + bgColor: + type: string + slug: + type: string + color: + type: string + parentCid: + type: number + description: The category identifier for the category that is the immediate ancestor of the current category + disabled: + type: number + isSection: + type: number + totalPostCount: + type: number + description: The number of posts in the category + totalTopicCount: + type: number + description: The number of topics in the category + descriptionParsed: + type: string + tagWhitelist: + type: array + items: {} + unread-class: + type: string + children: + type: array + items: {} + topics: type: array items: type: object properties: - pid: - type: number tid: type: number description: A topic identifier - content: - type: string uid: type: number description: A user identifier + cid: + type: number + description: A category identifier + title: + type: string + slug: + type: string timestamp: type: number - deleted: - type: boolean + lastposttime: + type: number + postcount: + type: number + viewcount: + type: number + thumb: + type: string + mainPid: + type: number + description: The post id of the first post in this topic (also called the "original post") upvotes: type: number downvotes: type: number - votes: + deleted: + type: number + locked: + type: number + pinned: type: number + description: Whether or not this particular topic is pinned to the top of the category + titleRaw: + type: string timestampISO: type: string description: An ISO 8601 formatted date string (complementing `timestamp`) - user: - type: object - properties: - uid: - type: number - description: A user identifier - username: - type: string - description: A friendly name for a given user account - userslug: - type: string - description: An URL-safe variant of the username (i.e. lower-cased, spaces removed, etc.) - picture: - type: string - status: - type: string - icon:text: - type: string - description: A single-letter representation of a username. This is used in the auto-generated icon given to users without an avatar - icon:bgColor: - type: string - description: A six-character hexadecimal colour code assigned to the user. This value is used in conjunction with `icon:text` for the user's auto-generated icon - example: "#f44336" - topic: - type: object - properties: - uid: - type: number - description: A user identifier - tid: - type: number - description: A topic identifier - title: - type: string - cid: - type: number - description: A category identifier - slug: - type: string - deleted: - type: number - postcount: - type: number - mainPid: - type: number - description: The post id of the first post in this topic (also called the "original post") - titleRaw: - type: string + lastposttimeISO: + type: string + votes: + type: number category: type: object properties: @@ -11992,51 +7621,20 @@ paths: description: A category identifier name: type: string - icon: - type: string slug: type: string - parentCid: - type: number - description: The category identifier for the category that is the immediate ancestor of the current category - bgColor: - type: string - color: + icon: type: string image: nullable: true imageClass: nullable: true - isMainPost: - type: boolean - bestPosts: - type: array - items: - type: object - properties: - pid: - type: number - tid: - type: number - description: A topic identifier - content: - type: string - uid: - type: number - description: A user identifier - timestamp: - type: number - deleted: - type: boolean - upvotes: - type: number - downvotes: - type: number - votes: - type: number - timestampISO: - type: string - description: An ISO 8601 formatted date string (complementing `timestamp`) + bgColor: + type: string + color: + type: string + disabled: + type: number user: type: object properties: @@ -12049,8 +7647,18 @@ paths: userslug: type: string description: An URL-safe variant of the username (i.e. lower-cased, spaces removed, etc.) + reputation: + type: number + postcount: + type: number picture: + nullable: true + type: string + signature: + nullable: true type: string + banned: + type: number status: type: string icon:text: @@ -12060,59 +7668,80 @@ paths: type: string description: A six-character hexadecimal colour code assigned to the user. This value is used in conjunction with `icon:text` for the user's auto-generated icon example: "#f44336" - topic: + banned_until_readable: + type: string + fullname: + type: string + teaser: type: object properties: + pid: + type: number uid: type: number description: A user identifier + timestamp: + type: number tid: type: number description: A topic identifier - title: - type: string - cid: - type: number - description: A category identifier - slug: - type: string - deleted: - type: number - postcount: - type: number - mainPid: - type: number - description: The post id of the first post in this topic (also called the "original post") - titleRaw: - type: string - category: - type: object - properties: - cid: - type: number - description: A category identifier - name: - type: string - icon: + content: type: string - slug: + timestampISO: type: string - parentCid: + description: An ISO 8601 formatted date string (complementing `timestamp`) + user: + type: object + properties: + uid: + type: number + description: A user identifier + username: + type: string + description: A friendly name for a given user account + userslug: + type: string + description: An URL-safe variant of the username (i.e. lower-cased, spaces removed, etc.) + picture: + nullable: true + type: string + icon:text: + type: string + description: A single-letter representation of a username. This is used in the auto-generated icon given to users without an avatar + icon:bgColor: + type: string + description: A six-character hexadecimal colour code assigned to the user. This value is used in conjunction with `icon:text` for the user's auto-generated icon + example: "#f44336" + index: type: number - description: The category identifier for the category that is the immediate ancestor of the current category - bgColor: - type: string - color: - type: string - image: - nullable: true - imageClass: - nullable: true - type: string - isMainPost: + tags: + type: array + items: {} + isOwner: + type: boolean + ignored: + type: boolean + unread: + type: boolean + bookmark: + nullable: true + unreplied: type: boolean - hasPrivateChat: + icons: + type: array + items: {} + index: + type: number + teaserPid: + type: number + nextStart: type: number + isWatched: + type: boolean + isNotWatched: + type: boolean + isIgnored: + type: boolean breadcrumbs: type: array items: @@ -12124,159 +7753,118 @@ paths: type: string title: type: string - allowCoverPicture: + privileges: + type: object + properties: + topics:create: + type: boolean + topics:read: + type: boolean + topics:tag: + type: boolean + read: + type: boolean + cid: + type: string + uid: + type: number + description: A user identifier + editable: + type: boolean + view_deleted: + type: boolean + isAdminOrMod: + type: boolean + showSelect: type: boolean - selectedGroup: - type: array - items: - type: object - properties: - name: - type: string - slug: - type: string - createtime: - type: number - userTitle: - type: string - description: - type: string - memberCount: - type: number - deleted: - type: string - hidden: - type: number - system: - type: number - private: - type: number - ownerUid: - type: number - icon: - type: string - labelColor: - type: string - cover:url: - type: string - cover:position: - type: string - userTitleEnabled: - type: number - disableJoinRequests: - type: number - disableLeave: - type: number - nameEncoded: - type: string - displayName: - type: string - textColor: - type: string - createtimeISO: - type: string - cover:thumb:url: - type: string + rssFeedUrl: + type: string + feeds:disableRSS: + type: number + reputation:disabled: + type: number + pagination: + type: object + properties: + rel: + type: array + items: + type: object + properties: + rel: + type: string + href: + type: string + pages: + type: array + items: + type: object + properties: + page: + type: number + active: + type: boolean + qs: + type: string + separator: + type: boolean + currentPage: + type: number + pageCount: + type: number + prev: + type: object + properties: + page: + type: number + active: + type: boolean + qs: + type: string + next: + type: object + properties: + page: + type: number + active: + type: boolean + qs: + type: string + first: + type: object + properties: + page: + type: number + active: + type: boolean + qs: + type: string + last: + type: object + properties: + page: + type: number + active: + type: boolean + qs: + type: string - $ref: 'components/schemas/CommonProps.yaml#/CommonProps' - "/api/user/{userslug}/following": + "/api/category/{category_id}/{slug?}": get: tags: - - users - summary: Get followed users + - categories + summary: /api/category/{category_id}/{slug?} parameters: - - name: userslug + - name: category_id in: path required: true schema: type: string - - name: page - in: query - schema: - type: number - responses: - "200": - description: "" - content: - application/json: - schema: - allOf: - - $ref: 'components/schemas/UserObject.yaml#/UserObjectFull' - - type: object - properties: - title: - type: string - users: - type: array - items: - type: object - properties: - uid: - type: number - description: A user identifier - username: - type: string - description: A friendly name for a given user account - userslug: - type: string - description: An URL-safe variant of the username (i.e. lower-cased, spaces removed, etc.) - picture: - nullable: true - type: string - status: - type: string - postcount: - type: number - reputation: - type: number - email:confirmed: - type: number - description: Whether the user has confirmed their email address or not - lastonline: - type: number - flags: - nullable: true - banned: - type: number - banned:expire: - type: number - joindate: - type: number - description: A UNIX timestamp representing the moment the user's account was created - icon:text: - type: string - description: A single-letter representation of a username. This is used in the auto-generated icon given to users without an avatar - icon:bgColor: - type: string - description: A six-character hexadecimal colour code assigned to the user. This value is used in conjunction with `icon:text` for the user's auto-generated icon - example: "#f44336" - joindateISO: - type: string - lastonlineISO: - type: string - banned_until: - type: number - banned_until_readable: - type: string - administrator: - type: boolean - - $ref: 'components/schemas/Breadcrumbs.yaml#/Breadcrumbs' - - $ref: 'components/schemas/Pagination.yaml#/Pagination' - - $ref: 'components/schemas/CommonProps.yaml#/CommonProps' - "/api/user/{userslug}/followers": - get: - tags: - - users - summary: Get followers - parameters: - - name: userslug + - name: slug? in: path required: true schema: type: string - - name: page - in: query - schema: - type: number responses: "200": description: "" @@ -12284,186 +7872,376 @@ paths: application/json: schema: allOf: - - $ref: 'components/schemas/UserObject.yaml#/UserObjectFull' - type: object properties: - title: + cid: + type: number + description: A category identifier + name: + type: string + description: + type: string + icon: + type: string + slug: + type: string + topic_count: + type: number + description: The number of topics in the category + order: + type: number + bgColor: type: string - users: + link: + type: string + class: + type: string + numRecentReplies: + type: number + color: + type: string + post_count: + type: number + description: The number of posts in the category + descriptionParsed: + type: string + parentCid: + type: number + description: The category identifier for the category that is the immediate ancestor of the current category + disabled: + type: number + isSection: + type: number + totalPostCount: + type: number + description: The number of posts in the category + totalTopicCount: + type: number + description: The number of topics in the category + tagWhitelist: + type: array + items: {} + unread-class: + type: string + children: + type: array + items: {} + topics: type: array items: type: object properties: + tid: + type: number + description: A topic identifier uid: type: number description: A user identifier - username: - type: string - description: A friendly name for a given user account - userslug: - type: string - description: An URL-safe variant of the username (i.e. lower-cased, spaces removed, etc.) - picture: - nullable: true + cid: + type: number + description: A category identifier + title: type: string - status: + slug: type: string + timestamp: + type: number + lastposttime: + type: number postcount: type: number - reputation: + viewcount: type: number - email:confirmed: + pinned: type: number - description: Whether the user has confirmed their email address or not - lastonline: + description: Whether or not this particular topic is pinned to the top of the category + thumb: + type: string + mainPid: type: number - flags: - nullable: true - banned: + description: The post id of the first post in this topic (also called the "original post") + teaserPid: type: number - banned:expire: + upvotes: type: number - joindate: + downvotes: type: number - description: A UNIX timestamp representing the moment the user's account was created - icon:text: - type: string - description: A single-letter representation of a username. This is used in the auto-generated icon given to users without an avatar - icon:bgColor: + deleted: + type: number + locked: + type: number + titleRaw: type: string - description: A six-character hexadecimal colour code assigned to the user. This value is used in conjunction with `icon:text` for the user's auto-generated icon - example: "#f44336" - joindateISO: + timestampISO: type: string - lastonlineISO: + description: An ISO 8601 formatted date string (complementing `timestamp`) + lastposttimeISO: type: string - banned_until: + votes: type: number - banned_until_readable: - type: string - administrator: + category: + type: object + properties: + cid: + type: number + description: A category identifier + name: + type: string + slug: + type: string + icon: + type: string + image: + nullable: true + imageClass: + nullable: true + bgColor: + type: string + color: + type: string + disabled: + type: number + user: + type: object + properties: + uid: + type: number + description: A user identifier + username: + type: string + description: A friendly name for a given user account + fullname: + type: string + userslug: + type: string + description: An URL-safe variant of the username (i.e. lower-cased, spaces removed, etc.) + reputation: + type: number + postcount: + type: number + picture: + nullable: true + type: string + signature: + nullable: true + type: string + banned: + type: number + status: + type: string + icon:text: + type: string + description: A single-letter representation of a username. This is used in the auto-generated icon given to users without an avatar + icon:bgColor: + type: string + description: A six-character hexadecimal colour code assigned to the user. This value is used in conjunction with `icon:text` for the user's auto-generated icon + example: "#f44336" + banned_until_readable: + type: string + teaser: + type: object + properties: + pid: + type: number + uid: + type: number + description: A user identifier + timestamp: + type: number + tid: + type: number + description: A topic identifier + content: + type: string + timestampISO: + type: string + description: An ISO 8601 formatted date string (complementing `timestamp`) + user: + type: object + properties: + uid: + type: number + description: A user identifier + username: + type: string + description: A friendly name for a given user account + userslug: + type: string + description: An URL-safe variant of the username (i.e. lower-cased, spaces removed, etc.) + picture: + nullable: true + type: string + icon:text: + type: string + description: A single-letter representation of a username. This is used in the auto-generated icon given to users without an avatar + icon:bgColor: + type: string + description: A six-character hexadecimal colour code assigned to the user. This value is used in conjunction with `icon:text` for the user's auto-generated icon + example: "#f44336" + index: + type: number + tags: + type: array + items: + type: object + properties: + value: + type: string + valueEscaped: + type: string + color: + type: string + bgColor: + type: string + score: + type: number + isOwner: type: boolean - - $ref: 'components/schemas/Pagination.yaml#/Pagination' - - $ref: 'components/schemas/Breadcrumbs.yaml#/Breadcrumbs' - - $ref: 'components/schemas/CommonProps.yaml#/CommonProps' - "/api/user/{userslug}/categories": - get: - tags: - - users - summary: /api/user/{userslug}/categories - parameters: - - name: userslug - in: path - required: true - schema: - type: string - responses: - "200": - description: "" - content: - application/json: - schema: - allOf: - - $ref: 'components/schemas/UserObject.yaml#/UserObjectFull' - - type: object - properties: - categories: + ignored: + type: boolean + unread: + type: boolean + bookmark: + nullable: true + unreplied: + type: boolean + icons: + type: array + items: {} + index: + type: number + isQuestion: + type: number + isSolved: + type: number + nextStart: + type: number + isWatched: + type: boolean + isNotWatched: + type: boolean + isIgnored: + type: boolean + breadcrumbs: type: array items: type: object properties: - cid: - type: number - description: A category identifier - name: - type: string - level: - type: string - icon: - type: string - parentCid: - type: number - description: The category identifier for the category that is the immediate ancestor of the current category - color: - type: string - bgColor: - type: string - descriptionParsed: - type: string - depth: - type: number - slug: + text: type: string - isIgnored: - type: boolean - isWatched: - type: boolean - isNotWatched: - type: boolean - imageClass: + url: type: string title: type: string - template: + privileges: type: object properties: - name: + topics:create: + type: boolean + topics:read: + type: boolean + topics:tag: + type: boolean + read: + type: boolean + cid: type: string - account/categories: + uid: + type: number + description: A user identifier + editable: type: boolean - "/api/user/{userslug}/posts": - get: - tags: - - users - summary: /api/user/{userslug}/posts - parameters: - - name: userslug - in: path - required: true - schema: - type: string - responses: - "200": - description: "" - content: - application/json: - schema: - allOf: - - $ref: 'components/schemas/UserObject.yaml#/UserObjectFull' - - type: object - properties: - posts: - type: array - items: {} - nextStart: - type: number - noItemsFoundKey: - type: string - title: - type: string - showSort: + view_deleted: + type: boolean + isAdminOrMod: + type: boolean + showSelect: type: boolean - sortOptions: - type: array - items: - type: object - properties: - url: - type: string - name: - type: string - selected: - type: boolean - - $ref: 'components/schemas/Pagination.yaml#/Pagination' - - $ref: 'components/schemas/Breadcrumbs.yaml#/Breadcrumbs' + rssFeedUrl: + type: string + feeds:disableRSS: + type: number + reputation:disabled: + type: number + pagination: + type: object + properties: + rel: + type: array + items: + type: object + properties: + rel: + type: string + href: + type: string + pages: + type: array + items: + type: object + properties: + page: + type: number + active: + type: boolean + qs: + type: string + separator: + type: boolean + currentPage: + type: number + pageCount: + type: number + prev: + type: object + properties: + page: + type: number + active: + type: boolean + qs: + type: string + next: + type: object + properties: + page: + type: number + active: + type: boolean + qs: + type: string + first: + type: object + properties: + page: + type: number + active: + type: boolean + qs: + type: string + last: + type: object + properties: + page: + type: number + active: + type: boolean + qs: + type: string - $ref: 'components/schemas/CommonProps.yaml#/CommonProps' - "/api/user/{userslug}/topics": + /api/me/*: get: tags: - - users - summary: /api/user/{userslug}/topics + - shorthand + summary: /api/me/* + responses: {} + "/api/uid/{uid*}": + get: + tags: + - shorthand + summary: /api/uid/{uid*} parameters: - - name: userslug + - name: uid* in: path required: true schema: @@ -12471,159 +8249,60 @@ paths: responses: "200": description: "" - content: - application/json: - schema: - allOf: - - $ref: 'components/schemas/UserObject.yaml#/UserObject' - - type: object - properties: - age: - type: number - emailClass: - type: string - moderationNote: - type: string - isBlocked: - type: boolean - yourid: - type: number - theirid: - type: number - isTargetAdmin: - type: boolean - isAdmin: - type: boolean - isGlobalModerator: - type: boolean - isModerator: - type: boolean - isAdminOrGlobalModerator: - type: boolean - isAdminOrGlobalModeratorOrModerator: - type: boolean - isSelfOrAdminOrGlobalModerator: - type: boolean - canEdit: - type: boolean - canBan: - type: boolean - canChangePassword: - type: boolean - isSelf: - type: boolean - isFollowing: - type: boolean - showHidden: - type: boolean - groups: - type: array - items: {} - disableSignatures: - type: boolean - reputation:disabled: - type: boolean - downvote:disabled: - type: boolean - profile_links: - type: array - items: {} - sso: - type: array - items: - type: object - properties: - associated: - type: boolean - url: - type: string - name: - type: string - icon: - type: string - websiteLink: - type: string - websiteName: - type: string - username:disableEdit: - type: number - email:disableEdit: - type: number - topics: + content: + application/json: + schema: + title: /user/the-penultimate-defenestrator + type: undefined + "/api/user/{userslug}": + get: + tags: + - users + summary: Get user profile + parameters: + - name: userslug + in: path + required: true + schema: + type: string + responses: + "200": + description: "" + content: + application/json: + schema: + allOf: + - $ref: 'components/schemas/UserObject.yaml#/UserObjectFull' + - type: object + properties: + posts: type: array items: type: object properties: + pid: + type: number tid: type: number description: A topic identifier + content: + type: string uid: type: number description: A user identifier - cid: - type: number - description: A category identifier - title: - type: string - slug: - type: string timestamp: type: number - lastposttime: - type: number - postcount: - type: number - viewcount: - type: number - thumb: - type: string - mainPid: - type: number - description: The post id of the first post in this topic (also called the "original post") - teaserPid: - type: number + deleted: + type: boolean upvotes: type: number downvotes: type: number - deleted: - type: number - locked: - type: number - pinned: + votes: type: number - description: Whether or not this particular topic is pinned to the top of the category - titleRaw: - type: string timestampISO: type: string description: An ISO 8601 formatted date string (complementing `timestamp`) - lastposttimeISO: - type: string - votes: - type: number - category: - type: object - properties: - cid: - type: number - description: A category identifier - name: - type: string - slug: - type: string - icon: - type: string - image: - nullable: true - imageClass: - nullable: true - bgColor: - type: string - color: - type: string - disabled: - type: number user: type: object properties: @@ -12636,16 +8315,8 @@ paths: userslug: type: string description: An URL-safe variant of the username (i.e. lower-cased, spaces removed, etc.) - reputation: - type: number - postcount: - type: number picture: - nullable: true - signature: type: string - banned: - type: number status: type: string icon:text: @@ -12655,160 +8326,158 @@ paths: type: string description: A six-character hexadecimal colour code assigned to the user. This value is used in conjunction with `icon:text` for the user's auto-generated icon example: "#f44336" - banned_until_readable: - type: string - teaser: + topic: type: object properties: - pid: - type: number uid: type: number description: A user identifier - timestamp: - type: number tid: type: number description: A topic identifier - content: + title: type: string - timestampISO: + cid: + type: number + description: A category identifier + slug: type: string - description: An ISO 8601 formatted date string (complementing `timestamp`) - user: - type: object - properties: - uid: - type: number - description: A user identifier - username: - type: string - description: A friendly name for a given user account - userslug: - type: string - description: An URL-safe variant of the username (i.e. lower-cased, spaces removed, etc.) - picture: - nullable: true - type: string - icon:text: - type: string - description: A single-letter representation of a username. This is used in the auto-generated icon given to users without an avatar - icon:bgColor: - type: string - description: A six-character hexadecimal colour code assigned to the user. This value is used in conjunction with `icon:text` for the user's auto-generated icon - example: "#f44336" - index: + deleted: type: number - tags: - type: array - items: {} - isOwner: - type: boolean - ignored: - type: boolean - unread: - type: boolean - bookmark: - nullable: true - unreplied: + postcount: + type: number + mainPid: + type: number + description: The post id of the first post in this topic (also called the "original post") + titleRaw: + type: string + category: + type: object + properties: + cid: + type: number + description: A category identifier + name: + type: string + icon: + type: string + slug: + type: string + parentCid: + type: number + description: The category identifier for the category that is the immediate ancestor of the current category + bgColor: + type: string + color: + type: string + image: + nullable: true + imageClass: + nullable: true + isMainPost: type: boolean - icons: - type: array - items: {} - index: - type: number - nextStart: - type: number - pagination: - type: object - properties: - prev: - type: object - properties: - page: - type: number - active: - type: boolean - next: - type: object - properties: - page: - type: number - active: - type: boolean - first: - type: object - properties: - page: - type: number - active: - type: boolean - last: - type: object - properties: - page: - type: number - active: - type: boolean - rel: - type: array - items: {} - pages: - type: array - items: {} - currentPage: - type: number - pageCount: - type: number - noItemsFoundKey: - type: string - title: - type: string - breadcrumbs: - type: array - items: - type: object - properties: - text: - type: string - url: - type: string - showSort: - type: boolean - sortOptions: + latestPosts: type: array items: type: object properties: - url: + pid: + type: number + tid: + type: number + description: A topic identifier + content: type: string - name: + uid: + type: number + description: A user identifier + timestamp: + type: number + deleted: + type: boolean + upvotes: + type: number + downvotes: + type: number + votes: + type: number + timestampISO: type: string - selected: + description: An ISO 8601 formatted date string (complementing `timestamp`) + user: + type: object + properties: + uid: + type: number + description: A user identifier + username: + type: string + description: A friendly name for a given user account + userslug: + type: string + description: An URL-safe variant of the username (i.e. lower-cased, spaces removed, etc.) + picture: + type: string + status: + type: string + icon:text: + type: string + description: A single-letter representation of a username. This is used in the auto-generated icon given to users without an avatar + icon:bgColor: + type: string + description: A six-character hexadecimal colour code assigned to the user. This value is used in conjunction with `icon:text` for the user's auto-generated icon + example: "#f44336" + topic: + type: object + properties: + uid: + type: number + description: A user identifier + tid: + type: number + description: A topic identifier + title: + type: string + cid: + type: number + description: A category identifier + slug: + type: string + deleted: + type: number + postcount: + type: number + mainPid: + type: number + description: The post id of the first post in this topic (also called the "original post") + titleRaw: + type: string + category: + type: object + properties: + cid: + type: number + description: A category identifier + name: + type: string + icon: + type: string + slug: + type: string + parentCid: + type: number + description: The category identifier for the category that is the immediate ancestor of the current category + bgColor: + type: string + color: + type: string + image: + nullable: true + imageClass: + nullable: true + isMainPost: type: boolean - - $ref: 'components/schemas/CommonProps.yaml#/CommonProps' - "/api/user/{userslug}/best": - get: - tags: - - users - summary: /api/user/{userslug}/best - parameters: - - name: userslug - in: path - required: true - schema: - type: string - responses: - "200": - description: "" - content: - application/json: - schema: - allOf: - - $ref: 'components/schemas/UserObject.yaml#/UserObjectFull' - - type: object - properties: - posts: + bestPosts: type: array items: type: object @@ -12849,7 +8518,7 @@ paths: type: string description: An URL-safe variant of the username (i.e. lower-cased, spaces removed, etc.) picture: - nullable: true + type: string status: type: string icon:text: @@ -12907,41 +8576,175 @@ paths: nullable: true imageClass: nullable: true + type: string isMainPost: type: boolean - nextStart: + hasPrivateChat: type: number - noItemsFoundKey: - type: string + breadcrumbs: + type: array + items: + type: object + properties: + text: + type: string + url: + type: string title: type: string - showSort: + allowCoverPicture: type: boolean - sortOptions: + selectedGroup: type: array items: type: object properties: - url: - type: string name: type: string - selected: + slug: + type: string + createtime: + type: number + userTitle: + type: string + description: + type: string + memberCount: + type: number + deleted: + type: string + hidden: + type: number + system: + type: number + private: + type: number + ownerUid: + type: number + icon: + type: string + labelColor: + type: string + cover:url: + type: string + cover:position: + type: string + userTitleEnabled: + type: number + disableJoinRequests: + type: number + disableLeave: + type: number + nameEncoded: + type: string + displayName: + type: string + textColor: + type: string + createtimeISO: + type: string + cover:thumb:url: + type: string + - $ref: 'components/schemas/CommonProps.yaml#/CommonProps' + "/api/user/{userslug}/following": + get: + tags: + - users + summary: Get followed users + parameters: + - name: userslug + in: path + required: true + schema: + type: string + - name: page + in: query + schema: + type: number + responses: + "200": + description: "" + content: + application/json: + schema: + allOf: + - $ref: 'components/schemas/UserObject.yaml#/UserObjectFull' + - type: object + properties: + title: + type: string + users: + type: array + items: + type: object + properties: + uid: + type: number + description: A user identifier + username: + type: string + description: A friendly name for a given user account + userslug: + type: string + description: An URL-safe variant of the username (i.e. lower-cased, spaces removed, etc.) + picture: + nullable: true + type: string + status: + type: string + postcount: + type: number + reputation: + type: number + email:confirmed: + type: number + description: Whether the user has confirmed their email address or not + lastonline: + type: number + flags: + nullable: true + banned: + type: number + banned:expire: + type: number + joindate: + type: number + description: A UNIX timestamp representing the moment the user's account was created + icon:text: + type: string + description: A single-letter representation of a username. This is used in the auto-generated icon given to users without an avatar + icon:bgColor: + type: string + description: A six-character hexadecimal colour code assigned to the user. This value is used in conjunction with `icon:text` for the user's auto-generated icon + example: "#f44336" + joindateISO: + type: string + lastonlineISO: + type: string + banned_until: + type: number + banned_until_readable: + type: string + administrator: type: boolean - - $ref: 'components/schemas/Pagination.yaml#/Pagination' - $ref: 'components/schemas/Breadcrumbs.yaml#/Breadcrumbs' + - $ref: 'components/schemas/Pagination.yaml#/Pagination' - $ref: 'components/schemas/CommonProps.yaml#/CommonProps' - "/api/user/{userslug}/groups": + "/api/user/{userslug}/followers": get: tags: - users - summary: /api/user/{userslug}/groups + summary: Get followers parameters: - name: userslug in: path required: true schema: type: string + - name: page + in: query + schema: + type: number responses: "200": description: "" @@ -12954,20 +8757,68 @@ paths: properties: title: type: string - template: - type: object - properties: - name: - type: string - account/groups: - type: boolean - "304": - description: "" - "/api/user/{userslug}/bookmarks": + users: + type: array + items: + type: object + properties: + uid: + type: number + description: A user identifier + username: + type: string + description: A friendly name for a given user account + userslug: + type: string + description: An URL-safe variant of the username (i.e. lower-cased, spaces removed, etc.) + picture: + nullable: true + type: string + status: + type: string + postcount: + type: number + reputation: + type: number + email:confirmed: + type: number + description: Whether the user has confirmed their email address or not + lastonline: + type: number + flags: + nullable: true + banned: + type: number + banned:expire: + type: number + joindate: + type: number + description: A UNIX timestamp representing the moment the user's account was created + icon:text: + type: string + description: A single-letter representation of a username. This is used in the auto-generated icon given to users without an avatar + icon:bgColor: + type: string + description: A six-character hexadecimal colour code assigned to the user. This value is used in conjunction with `icon:text` for the user's auto-generated icon + example: "#f44336" + joindateISO: + type: string + lastonlineISO: + type: string + banned_until: + type: number + banned_until_readable: + type: string + administrator: + type: boolean + - $ref: 'components/schemas/Pagination.yaml#/Pagination' + - $ref: 'components/schemas/Breadcrumbs.yaml#/Breadcrumbs' + - $ref: 'components/schemas/CommonProps.yaml#/CommonProps' + "/api/user/{userslug}/categories": get: tags: - users - summary: /api/user/{userslug}/bookmarks + summary: /api/user/{userslug}/categories parameters: - name: userslug in: path @@ -12981,172 +8832,77 @@ paths: application/json: schema: allOf: - - $ref: 'components/schemas/UserObject.yaml#/UserObject' + - $ref: 'components/schemas/UserObject.yaml#/UserObjectFull' - type: object properties: - age: - type: number - emailClass: - type: string - ips: - type: array - items: - type: string - moderationNote: - type: string - isBlocked: - type: boolean - blocksCount: - type: number - yourid: - type: number - theirid: - type: number - isTargetAdmin: - type: boolean - isAdmin: - type: boolean - isGlobalModerator: - type: boolean - isModerator: - type: boolean - isAdminOrGlobalModerator: - type: boolean - isAdminOrGlobalModeratorOrModerator: - type: boolean - isSelfOrAdminOrGlobalModerator: - type: boolean - canEdit: - type: boolean - canBan: - type: boolean - canChangePassword: - type: boolean - isSelf: - type: boolean - isFollowing: - type: boolean - showHidden: - type: boolean - groups: - type: array - items: {} - disableSignatures: - type: boolean - reputation:disabled: - type: boolean - downvote:disabled: - type: boolean - profile_links: + categories: type: array items: type: object properties: - id: - type: string - route: - type: string + cid: + type: number + description: A category identifier name: type: string - visibility: - type: object - properties: - self: - type: boolean - other: - type: boolean - moderator: - type: boolean - globalMod: - type: boolean - admin: - type: boolean - canViewInfo: - type: boolean - public: - type: boolean + level: + type: string icon: type: string - sso: - type: array - items: - type: object - properties: - associated: - type: boolean - url: + parentCid: + type: number + description: The category identifier for the category that is the immediate ancestor of the current category + color: type: string - name: + bgColor: type: string - icon: + descriptionParsed: type: string - websiteLink: - type: string - websiteName: + depth: + type: number + slug: + type: string + isIgnored: + type: boolean + isWatched: + type: boolean + isNotWatched: + type: boolean + imageClass: + type: string + title: type: string - username:disableEdit: - type: number - email:disableEdit: - type: number - posts: - type: array - items: {} - nextStart: - type: number - pagination: - type: object - properties: - prev: - type: object - properties: - page: - type: number - active: - type: boolean - next: - type: object - properties: - page: - type: number - active: - type: boolean - first: - type: object - properties: - page: - type: number - active: - type: boolean - last: - type: object - properties: - page: - type: number - active: - type: boolean - rel: - type: array - items: {} - pages: - type: array - items: {} - currentPage: - type: number - pageCount: - type: number + - $ref: 'components/schemas/CommonProps.yaml#/CommonProps' + "/api/user/{userslug}/posts": + get: + tags: + - users + summary: /api/user/{userslug}/posts + parameters: + - name: userslug + in: path + required: true + schema: + type: string + responses: + "200": + description: "" + content: + application/json: + schema: + allOf: + - $ref: 'components/schemas/UserObject.yaml#/UserObjectFull' + - type: object + properties: + posts: + type: array + items: {} + nextStart: + type: number noItemsFoundKey: type: string title: type: string - breadcrumbs: - type: array - items: - type: object - properties: - text: - type: string - url: - type: string showSort: type: boolean sortOptions: @@ -13160,70 +8916,14 @@ paths: type: string selected: type: boolean - loggedIn: - type: boolean - relative_path: - type: string - template: - type: object - properties: - name: - type: string - account/bookmarks: - type: boolean - url: - type: string - bodyClass: - type: string - _header: - type: object - properties: - tags: - type: object - properties: - meta: - type: array - items: - type: object - properties: - name: - type: string - content: - type: string - noEscape: - type: boolean - property: - type: string - link: - type: array - items: - type: object - properties: - rel: - type: string - type: - type: string - href: - type: string - title: - type: string - sizes: - type: string - widgets: - type: object - properties: - footer: - type: array - items: - type: object - properties: - html: - type: string - "/api/user/{userslug}/watched": + - $ref: 'components/schemas/Pagination.yaml#/Pagination' + - $ref: 'components/schemas/Breadcrumbs.yaml#/Breadcrumbs' + - $ref: 'components/schemas/CommonProps.yaml#/CommonProps' + "/api/user/{userslug}/topics": get: tags: - users - summary: /api/user/{userslug}/watched + summary: /api/user/{userslug}/topics parameters: - name: userslug in: path @@ -13240,20 +8940,14 @@ paths: - $ref: 'components/schemas/UserObject.yaml#/UserObject' - type: object properties: - aboutmeParsed: - type: string age: type: number emailClass: type: string - ips: - type: array - items: - type: string + moderationNote: + type: string isBlocked: type: boolean - blocksCount: - type: number yourid: type: number theirid: @@ -13282,63 +8976,11 @@ paths: type: boolean isFollowing: type: boolean - hasPrivateChat: - type: number showHidden: type: boolean groups: type: array - items: - type: object - properties: - name: - type: string - slug: - type: string - createtime: - type: number - userTitle: - type: string - description: - type: string - memberCount: - type: number - deleted: - oneOf: - - type: string - - type: number - hidden: - type: number - system: - type: number - private: - type: number - ownerUid: - type: number - icon: - type: string - labelColor: - type: string - userTitleEnabled: - type: number - disableJoinRequests: - type: number - disableLeave: - type: number - nameEncoded: - type: string - displayName: - type: string - textColor: - type: string - createtimeISO: - type: string - cover:thumb:url: - type: string - cover:url: - type: string - cover:position: - type: string + items: {} disableSignatures: type: boolean reputation:disabled: @@ -13347,34 +8989,7 @@ paths: type: boolean profile_links: type: array - items: - type: object - properties: - id: - type: string - route: - type: string - name: - type: string - visibility: - type: object - properties: - self: - type: boolean - other: - type: boolean - moderator: - type: boolean - globalMod: - type: boolean - admin: - type: boolean - canViewInfo: - type: boolean - public: - type: boolean - icon: - type: string + items: {} sso: type: array items: @@ -13384,8 +8999,6 @@ paths: type: boolean url: type: string - deauthUrl: - type: string name: type: string icon: @@ -13394,12 +9007,10 @@ paths: type: string websiteName: type: string - moderationNote: - type: string username:disableEdit: - type: boolean + type: number email:disableEdit: - type: boolean + type: number topics: type: array items: @@ -13414,9 +9025,6 @@ paths: cid: type: number description: A category identifier - mainPid: - type: number - description: The post id of the first post in this topic (also called the "original post") title: type: string slug: @@ -13429,10 +9037,13 @@ paths: type: number viewcount: type: number + thumb: + type: string + mainPid: + type: number + description: The post id of the first post in this topic (also called the "original post") teaserPid: - oneOf: - - type: number - - type: string + type: number upvotes: type: number downvotes: @@ -13444,8 +9055,6 @@ paths: pinned: type: number description: Whether or not this particular topic is pinned to the top of the category - deleterUid: - type: number titleRaw: type: string timestampISO: @@ -13469,10 +9078,8 @@ paths: type: string image: nullable: true - type: string imageClass: nullable: true - type: string bgColor: type: string color: @@ -13496,9 +9103,8 @@ paths: postcount: type: number picture: - type: string - signature: nullable: true + signature: type: string banned: type: number @@ -13513,8 +9119,6 @@ paths: example: "#f44336" banned_until_readable: type: string - fullname: - type: string teaser: type: object properties: @@ -13559,70 +9163,27 @@ paths: type: number tags: type: array - items: - type: object - properties: - value: - type: string - valueEscaped: - type: string - color: - type: string - bgColor: - type: string - score: - type: number + items: {} isOwner: type: boolean ignored: type: boolean - unread: - type: boolean - bookmark: - nullable: true - type: number - unreplied: - type: boolean - icons: - type: array - items: {} - index: - type: number - thumb: - type: string - isQuestion: - type: number - isSolved: - type: number - nextStart: - type: number - pagination: - type: object - properties: - rel: - type: array - items: - type: object - properties: - rel: - type: string - href: - type: string - pages: - type: array - items: - type: object - properties: - page: - type: number - active: - type: boolean - qs: - type: string - currentPage: - type: number - pageCount: - type: number + unread: + type: boolean + bookmark: + nullable: true + unreplied: + type: boolean + icons: + type: array + items: {} + index: + type: number + nextStart: + type: number + pagination: + type: object + properties: prev: type: object properties: @@ -13630,8 +9191,6 @@ paths: type: number active: type: boolean - qs: - type: string next: type: object properties: @@ -13639,8 +9198,6 @@ paths: type: number active: type: boolean - qs: - type: string first: type: object properties: @@ -13648,8 +9205,6 @@ paths: type: number active: type: boolean - qs: - type: string last: type: object properties: @@ -13657,8 +9212,16 @@ paths: type: number active: type: boolean - qs: - type: string + rel: + type: array + items: {} + pages: + type: array + items: {} + currentPage: + type: number + pageCount: + type: number noItemsFoundKey: type: string title: @@ -13685,13 +9248,12 @@ paths: type: string selected: type: boolean - - $ref: 'components/schemas/Breadcrumbs.yaml#/Breadcrumbs' - $ref: 'components/schemas/CommonProps.yaml#/CommonProps' - "/api/user/{userslug}/ignored": + "/api/user/{userslug}/best": get: tags: - users - summary: /api/user/{userslug}/ignored + summary: /api/user/{userslug}/best parameters: - name: userslug in: path @@ -13708,145 +9270,134 @@ paths: - $ref: 'components/schemas/UserObject.yaml#/UserObjectFull' - type: object properties: - topics: - type: array - items: {} - nextStart: - type: number - noItemsFoundKey: - type: string - title: - type: string - showSort: - type: boolean - sortOptions: + posts: type: array items: type: object properties: - url: + pid: + type: number + tid: + type: number + description: A topic identifier + content: type: string - name: + uid: + type: number + description: A user identifier + timestamp: + type: number + deleted: + type: boolean + upvotes: + type: number + downvotes: + type: number + votes: + type: number + timestampISO: type: string - selected: + description: An ISO 8601 formatted date string (complementing `timestamp`) + user: + type: object + properties: + uid: + type: number + description: A user identifier + username: + type: string + description: A friendly name for a given user account + userslug: + type: string + description: An URL-safe variant of the username (i.e. lower-cased, spaces removed, etc.) + picture: + nullable: true + status: + type: string + icon:text: + type: string + description: A single-letter representation of a username. This is used in the auto-generated icon given to users without an avatar + icon:bgColor: + type: string + description: A six-character hexadecimal colour code assigned to the user. This value is used in conjunction with `icon:text` for the user's auto-generated icon + example: "#f44336" + topic: + type: object + properties: + uid: + type: number + description: A user identifier + tid: + type: number + description: A topic identifier + title: + type: string + cid: + type: number + description: A category identifier + slug: + type: string + deleted: + type: number + postcount: + type: number + mainPid: + type: number + description: The post id of the first post in this topic (also called the "original post") + titleRaw: + type: string + category: + type: object + properties: + cid: + type: number + description: A category identifier + name: + type: string + icon: + type: string + slug: + type: string + parentCid: + type: number + description: The category identifier for the category that is the immediate ancestor of the current category + bgColor: + type: string + color: + type: string + image: + nullable: true + imageClass: + nullable: true + isMainPost: type: boolean - - $ref: 'components/schemas/Pagination.yaml#/Pagination' - - $ref: 'components/schemas/Breadcrumbs.yaml#/Breadcrumbs' - - $ref: 'components/schemas/CommonProps.yaml#/CommonProps' - "/api/user/{userslug}/upvoted": - get: - tags: - - users - summary: /api/user/{userslug}/upvoted - parameters: - - name: userslug - in: path - required: true - schema: - type: string - responses: {} - "/api/user/{userslug}/downvoted": - get: - tags: - - users - summary: /api/user/{userslug}/downvoted - parameters: - - name: userslug - in: path - required: true - schema: - type: string - responses: {} - "/api/user/{userslug}/edit": - get: - tags: - - users - summary: /api/user/{userslug}/edit - parameters: - - name: userslug - in: path - required: true - schema: - type: string - responses: - "200": - description: "" - content: - application/json: - schema: - allOf: - - $ref: 'components/schemas/UserObject.yaml#/UserObjectFull' - - type: object - properties: - maximumSignatureLength: - type: number - maximumAboutMeLength: - type: number - maximumProfileImageSize: - type: number - allowProfilePicture: - type: boolean - allowCoverPicture: - type: boolean - allowProfileImageUploads: - type: number - allowedProfileImageExtensios: - type: string - allowMultipleBadges: - type: boolean - allowAccountDelete: - type: boolean - allowWebsite: - type: boolean - allowAboutMe: - type: boolean - allowSignature: - type: boolean - profileImageDimension: - type: number - defaultAvatar: - type: string - groupSelectSize: - type: number - title: - type: string - editButtons: - type: array - items: {} - - $ref: 'components/schemas/Breadcrumbs.yaml#/Breadcrumbs' - - $ref: 'components/schemas/CommonProps.yaml#/CommonProps' - "/api/user/{userslug}/edit/username": - get: - tags: - - users - summary: /api/user/{userslug}/edit/username - parameters: - - name: userslug - in: path - required: true - schema: - type: string - responses: - "200": - description: "" - content: - application/json: - schema: - allOf: - - $ref: 'components/schemas/UserObject.yaml#/UserObjectFull' - - type: object - properties: - hasPassword: - type: boolean + nextStart: + type: number + noItemsFoundKey: + type: string title: type: string + showSort: + type: boolean + sortOptions: + type: array + items: + type: object + properties: + url: + type: string + name: + type: string + selected: + type: boolean + - $ref: 'components/schemas/Pagination.yaml#/Pagination' - $ref: 'components/schemas/Breadcrumbs.yaml#/Breadcrumbs' - $ref: 'components/schemas/CommonProps.yaml#/CommonProps' - "/api/user/{userslug}/edit/email": + "/api/user/{userslug}/groups": get: tags: - users - summary: /api/user/{userslug}/edit/email + summary: /api/user/{userslug}/groups parameters: - name: userslug in: path @@ -13863,17 +9414,22 @@ paths: - $ref: 'components/schemas/UserObject.yaml#/UserObjectFull' - type: object properties: - hasPassword: - type: boolean title: type: string - - $ref: 'components/schemas/Breadcrumbs.yaml#/Breadcrumbs' - - $ref: 'components/schemas/CommonProps.yaml#/CommonProps' - "/api/user/{userslug}/edit/password": + template: + type: object + properties: + name: + type: string + account/groups: + type: boolean + "304": + description: "" + "/api/user/{userslug}/bookmarks": get: tags: - users - summary: /api/user/{userslug}/edit/password + summary: /api/user/{userslug}/bookmarks parameters: - name: userslug in: path @@ -13887,122 +9443,191 @@ paths: application/json: schema: allOf: - - $ref: 'components/schemas/UserObject.yaml#/UserObjectFull' + - $ref: 'components/schemas/UserObject.yaml#/UserObject' - type: object properties: - hasPassword: + age: + type: number + emailClass: + type: string + ips: + type: array + items: + type: string + moderationNote: + type: string + isBlocked: type: boolean - minimumPasswordLength: + blocksCount: type: number - minimumPasswordStrength: + yourid: type: number - title: - type: string - - $ref: 'components/schemas/Breadcrumbs.yaml#/Breadcrumbs' - - $ref: 'components/schemas/CommonProps.yaml#/CommonProps' - "/api/user/{userslug}/info": - get: - tags: - - users - summary: /api/user/{userslug}/info - parameters: - - name: userslug - in: path - required: true - schema: - type: string - responses: - "200": - description: "" - content: - application/json: - schema: - allOf: - - $ref: 'components/schemas/UserObject.yaml#/UserObjectFull' - - type: object - properties: - history: - type: object - properties: - flags: - type: array - items: - type: object - properties: - pid: - type: number - timestamp: - type: number - timestampISO: - type: string - description: An ISO 8601 formatted date string (complementing `timestamp`) - timestampReadable: - type: string - title: - type: string - titleRaw: - type: string - bans: - type: array - items: {} - sessions: + theirid: + type: number + isTargetAdmin: + type: boolean + isAdmin: + type: boolean + isGlobalModerator: + type: boolean + isModerator: + type: boolean + isAdminOrGlobalModerator: + type: boolean + isAdminOrGlobalModeratorOrModerator: + type: boolean + isSelfOrAdminOrGlobalModerator: + type: boolean + canEdit: + type: boolean + canBan: + type: boolean + canChangePassword: + type: boolean + isSelf: + type: boolean + isFollowing: + type: boolean + showHidden: + type: boolean + groups: + type: array + items: {} + disableSignatures: + type: boolean + reputation:disabled: + type: boolean + downvote:disabled: + type: boolean + profile_links: type: array items: type: object properties: - ip: - type: string - uuid: - type: string - datetime: - type: number - platform: + id: type: string - browser: + route: type: string - version: + name: type: string - current: + visibility: + type: object + properties: + self: + type: boolean + other: + type: boolean + moderator: + type: boolean + globalMod: + type: boolean + admin: + type: boolean + canViewInfo: + type: boolean + public: type: boolean - datetimeISO: + icon: type: string - usernames: + sso: type: array items: type: object properties: - value: + associated: + type: boolean + url: type: string - timestamp: - type: number - timestampISO: + name: type: string - description: An ISO 8601 formatted date string (complementing `timestamp`) - emails: + icon: + type: string + websiteLink: + type: string + websiteName: + type: string + username:disableEdit: + type: number + email:disableEdit: + type: number + posts: + type: array + items: {} + nextStart: + type: number + pagination: + type: object + properties: + prev: + type: object + properties: + page: + type: number + active: + type: boolean + next: + type: object + properties: + page: + type: number + active: + type: boolean + first: + type: object + properties: + page: + type: number + active: + type: boolean + last: + type: object + properties: + page: + type: number + active: + type: boolean + rel: + type: array + items: {} + pages: + type: array + items: {} + currentPage: + type: number + pageCount: + type: number + noItemsFoundKey: + type: string + title: + type: string + breadcrumbs: + type: array + items: + type: object + properties: + text: + type: string + url: + type: string + showSort: + type: boolean + sortOptions: type: array items: type: object properties: - value: + url: type: string - timestamp: - type: number - timestampISO: + name: type: string - description: An ISO 8601 formatted date string (complementing `timestamp`) - moderationNotes: - type: array - items: {} - title: - type: string - - $ref: 'components/schemas/Pagination.yaml#/Pagination' - - $ref: 'components/schemas/Breadcrumbs.yaml#/Breadcrumbs' + selected: + type: boolean - $ref: 'components/schemas/CommonProps.yaml#/CommonProps' - "/api/user/{userslug}/settings": + "/api/user/{userslug}/watched": get: tags: - users - summary: /api/user/{userslug}/settings + summary: /api/user/{userslug}/watched parameters: - name: userslug in: path @@ -14016,300 +9641,616 @@ paths: application/json: schema: allOf: - - $ref: 'components/schemas/UserObject.yaml#/UserObjectFull' + - $ref: 'components/schemas/UserObject.yaml#/UserObject' - type: object properties: - settings: - type: object - properties: - showemail: - type: boolean - usePagination: - type: boolean - topicsPerPage: - type: number - postsPerPage: - type: number - notificationSounds: - type: number - topicPostSort: - type: string - openOutgoingLinksInNewTab: - type: boolean - dailyDigestFreq: - type: string - language: - type: string - showfullname: - type: boolean - followTopicsOnCreate: - type: boolean - followTopicsOnReply: - type: boolean - restrictChat: - type: boolean - topicSearchEnabled: - type: boolean - categoryTopicSort: - type: string - userLang: - type: string - groupTitle: - nullable: true - pushbullet:enabled: - type: number - pushbullet:target: - type: string - bootswatchSkin: - type: string - homePageRoute: - type: string - scrollToMyPost: - type: boolean - delayImageLoading: - type: number - notificationSound: - type: string - incomingChatSound: - type: string - outgoingChatSound: - type: string - notificationType_new-chat: - type: string - notificationType_new-reply: - type: string - sendChatNotifications: - nullable: true - sendPostNotifications: - nullable: true - notificationType_upvote: - type: string - notificationType_new-topic: - type: string - notificationType_follow: - type: string - notificationType_group-invite: - type: string - upvoteNotifFreq: - type: string - notificationType_mention: - type: string - acpLang: - type: string - notificationType_new-register: - type: string - notificationType_post-queue: - type: string - notificationType_new-post-flag: - type: string - notificationType_new-user-flag: - type: string - categoryWatchState: - type: string - notificationType_group-request-membership: - type: string - uid: - type: number - description: A user identifier - languages: + aboutmeParsed: + type: string + age: + type: number + emailClass: + type: string + ips: type: array items: - type: object - properties: - name: - type: string - code: - type: string - dir: - type: string - selected: - type: boolean - acpLanguages: + type: string + isBlocked: + type: boolean + blocksCount: + type: number + yourid: + type: number + theirid: + type: number + isTargetAdmin: + type: boolean + isAdmin: + type: boolean + isGlobalModerator: + type: boolean + isModerator: + type: boolean + isAdminOrGlobalModerator: + type: boolean + isAdminOrGlobalModeratorOrModerator: + type: boolean + isSelfOrAdminOrGlobalModerator: + type: boolean + canEdit: + type: boolean + canBan: + type: boolean + canChangePassword: + type: boolean + isSelf: + type: boolean + isFollowing: + type: boolean + hasPrivateChat: + type: number + showHidden: + type: boolean + groups: type: array items: type: object properties: name: type: string - code: + slug: type: string - dir: + createtime: + type: number + userTitle: type: string - selected: - type: boolean - notification-sound: - type: array - items: - type: object - properties: - name: + description: type: string - sounds: - type: array - items: - type: object - properties: - name: - type: string - value: - type: string - selected: - type: boolean - notificationSound: - type: array - items: - type: object - properties: - name: + memberCount: + type: number + deleted: + oneOf: + - type: string + - type: number + hidden: + type: number + system: + type: number + private: + type: number + ownerUid: + type: number + icon: type: string - selected: - type: boolean - chat-incoming-sound: - type: array - items: - type: object - properties: - name: + labelColor: type: string - sounds: - type: array - items: - type: object - properties: - name: - type: string - value: - type: string - selected: - type: boolean - incomingChatSound: - type: array - items: - type: object - properties: - name: + userTitleEnabled: + type: number + disableJoinRequests: + type: number + disableLeave: + type: number + nameEncoded: + type: string + displayName: type: string - selected: - type: boolean - chat-outgoing-sound: - type: array - items: - type: object - properties: - name: + textColor: type: string - sounds: - type: array - items: - type: object - properties: - name: - type: string - value: - type: string - selected: - type: boolean - outgoingChatSound: + createtimeISO: + type: string + cover:thumb:url: + type: string + cover:url: + type: string + cover:position: + type: string + disableSignatures: + type: boolean + reputation:disabled: + type: boolean + downvote:disabled: + type: boolean + profile_links: type: array items: type: object properties: + id: + type: string + route: + type: string name: type: string - selected: + visibility: + type: object + properties: + self: + type: boolean + other: + type: boolean + moderator: + type: boolean + globalMod: + type: boolean + admin: + type: boolean + canViewInfo: + type: boolean + public: type: boolean - customSettings: - type: array - items: {} - homePageRoutes: + icon: + type: string + sso: type: array items: type: object properties: - route: + associated: + type: boolean + url: + type: string + deauthUrl: type: string name: type: string - selected: - type: boolean - notificationSettings: + icon: + type: string + websiteLink: + type: string + websiteName: + type: string + moderationNote: + type: string + username:disableEdit: + type: boolean + email:disableEdit: + type: boolean + topics: type: array items: type: object properties: - name: + tid: + type: number + description: A topic identifier + uid: + type: number + description: A user identifier + cid: + type: number + description: A category identifier + mainPid: + type: number + description: The post id of the first post in this topic (also called the "original post") + title: type: string - label: + slug: type: string - none: + timestamp: + type: number + lastposttime: + type: number + postcount: + type: number + viewcount: + type: number + teaserPid: + oneOf: + - type: number + - type: string + upvotes: + type: number + downvotes: + type: number + deleted: + type: number + locked: + type: number + pinned: + type: number + description: Whether or not this particular topic is pinned to the top of the category + deleterUid: + type: number + titleRaw: + type: string + timestampISO: + type: string + description: An ISO 8601 formatted date string (complementing `timestamp`) + lastposttimeISO: + type: string + votes: + type: number + category: + type: object + properties: + cid: + type: number + description: A category identifier + name: + type: string + slug: + type: string + icon: + type: string + image: + nullable: true + type: string + imageClass: + nullable: true + type: string + bgColor: + type: string + color: + type: string + disabled: + type: number + user: + type: object + properties: + uid: + type: number + description: A user identifier + username: + type: string + description: A friendly name for a given user account + userslug: + type: string + description: An URL-safe variant of the username (i.e. lower-cased, spaces removed, etc.) + reputation: + type: number + postcount: + type: number + picture: + type: string + signature: + nullable: true + type: string + banned: + type: number + status: + type: string + icon:text: + type: string + description: A single-letter representation of a username. This is used in the auto-generated icon given to users without an avatar + icon:bgColor: + type: string + description: A six-character hexadecimal colour code assigned to the user. This value is used in conjunction with `icon:text` for the user's auto-generated icon + example: "#f44336" + banned_until_readable: + type: string + fullname: + type: string + teaser: + type: object + properties: + pid: + type: number + uid: + type: number + description: A user identifier + timestamp: + type: number + tid: + type: number + description: A topic identifier + content: + type: string + timestampISO: + type: string + description: An ISO 8601 formatted date string (complementing `timestamp`) + user: + type: object + properties: + uid: + type: number + description: A user identifier + username: + type: string + description: A friendly name for a given user account + userslug: + type: string + description: An URL-safe variant of the username (i.e. lower-cased, spaces removed, etc.) + picture: + nullable: true + type: string + icon:text: + type: string + description: A single-letter representation of a username. This is used in the auto-generated icon given to users without an avatar + icon:bgColor: + type: string + description: A six-character hexadecimal colour code assigned to the user. This value is used in conjunction with `icon:text` for the user's auto-generated icon + example: "#f44336" + index: + type: number + tags: + type: array + items: + type: object + properties: + value: + type: string + valueEscaped: + type: string + color: + type: string + bgColor: + type: string + score: + type: number + isOwner: type: boolean - notification: + ignored: type: boolean - email: + unread: type: boolean - notificationemail: + bookmark: + nullable: true + type: number + unreplied: type: boolean - disableEmailSubscriptions: + icons: + type: array + items: {} + index: + type: number + thumb: + type: string + isQuestion: + type: number + isSolved: + type: number + nextStart: type: number - dailyDigestFreqOptions: + pagination: + type: object + properties: + rel: + type: array + items: + type: object + properties: + rel: + type: string + href: + type: string + pages: + type: array + items: + type: object + properties: + page: + type: number + active: + type: boolean + qs: + type: string + currentPage: + type: number + pageCount: + type: number + prev: + type: object + properties: + page: + type: number + active: + type: boolean + qs: + type: string + next: + type: object + properties: + page: + type: number + active: + type: boolean + qs: + type: string + first: + type: object + properties: + page: + type: number + active: + type: boolean + qs: + type: string + last: + type: object + properties: + page: + type: number + active: + type: boolean + qs: + type: string + noItemsFoundKey: + type: string + title: + type: string + breadcrumbs: type: array items: type: object properties: - value: + text: type: string - name: + url: type: string - selected: - type: boolean - bootswatchSkinOptions: + showSort: + type: boolean + sortOptions: type: array items: type: object properties: - name: + url: type: string - value: + name: type: string selected: type: boolean - upvoteNotifFreq: + - $ref: 'components/schemas/Breadcrumbs.yaml#/Breadcrumbs' + - $ref: 'components/schemas/CommonProps.yaml#/CommonProps' + "/api/user/{userslug}/ignored": + get: + tags: + - users + summary: /api/user/{userslug}/ignored + parameters: + - name: userslug + in: path + required: true + schema: + type: string + responses: + "200": + description: "" + content: + application/json: + schema: + allOf: + - $ref: 'components/schemas/UserObject.yaml#/UserObjectFull' + - type: object + properties: + topics: + type: array + items: {} + nextStart: + type: number + noItemsFoundKey: + type: string + title: + type: string + showSort: + type: boolean + sortOptions: type: array items: type: object properties: + url: + type: string name: type: string selected: type: boolean - categoryWatchState: - type: object - properties: - watching: - type: boolean - disableCustomUserSkins: + - $ref: 'components/schemas/Pagination.yaml#/Pagination' + - $ref: 'components/schemas/Breadcrumbs.yaml#/Breadcrumbs' + - $ref: 'components/schemas/CommonProps.yaml#/CommonProps' + "/api/user/{userslug}/upvoted": + get: + tags: + - users + summary: /api/user/{userslug}/upvoted + parameters: + - name: userslug + in: path + required: true + schema: + type: string + responses: {} + "/api/user/{userslug}/downvoted": + get: + tags: + - users + summary: /api/user/{userslug}/downvoted + parameters: + - name: userslug + in: path + required: true + schema: + type: string + responses: {} + "/api/user/{userslug}/edit": + get: + tags: + - users + summary: /api/user/{userslug}/edit + parameters: + - name: userslug + in: path + required: true + schema: + type: string + responses: + "200": + description: "" + content: + application/json: + schema: + allOf: + - $ref: 'components/schemas/UserObject.yaml#/UserObjectFull' + - type: object + properties: + maximumSignatureLength: type: number - allowUserHomePage: + maximumAboutMeLength: type: number - hideFullname: + maximumProfileImageSize: type: number - hideEmail: + allowProfilePicture: + type: boolean + allowCoverPicture: + type: boolean + allowProfileImageUploads: type: number - inTopicSearchAvailable: + allowedProfileImageExtensios: + type: string + allowMultipleBadges: + type: boolean + allowAccountDelete: + type: boolean + allowWebsite: + type: boolean + allowAboutMe: + type: boolean + allowSignature: + type: boolean + profileImageDimension: + type: number + defaultAvatar: + type: string + groupSelectSize: + type: number + title: + type: string + editButtons: + type: array + items: {} + - $ref: 'components/schemas/Breadcrumbs.yaml#/Breadcrumbs' + - $ref: 'components/schemas/CommonProps.yaml#/CommonProps' + "/api/user/{userslug}/edit/username": + get: + tags: + - users + summary: /api/user/{userslug}/edit/username + parameters: + - name: userslug + in: path + required: true + schema: + type: string + responses: + "200": + description: "" + content: + application/json: + schema: + allOf: + - $ref: 'components/schemas/UserObject.yaml#/UserObjectFull' + - type: object + properties: + hasPassword: type: boolean - maxTopicsPerPage: - type: number - maxPostsPerPage: - type: number title: type: string - $ref: 'components/schemas/Breadcrumbs.yaml#/Breadcrumbs' - $ref: 'components/schemas/CommonProps.yaml#/CommonProps' - "/api/user/{userslug}/uploads": + "/api/user/{userslug}/edit/email": get: tags: - users - summary: /api/user/{userslug}/uploads + summary: /api/user/{userslug}/edit/email parameters: - name: userslug in: path @@ -14326,21 +10267,17 @@ paths: - $ref: 'components/schemas/UserObject.yaml#/UserObjectFull' - type: object properties: - uploads: - type: array - items: {} - privateUploads: + hasPassword: type: boolean title: type: string - - $ref: 'components/schemas/Pagination.yaml#/Pagination' - $ref: 'components/schemas/Breadcrumbs.yaml#/Breadcrumbs' - $ref: 'components/schemas/CommonProps.yaml#/CommonProps' - "/api/user/{userslug}/consent": + "/api/user/{userslug}/edit/password": get: tags: - users - summary: /api/user/{userslug}/consent + summary: /api/user/{userslug}/edit/password parameters: - name: userslug in: path @@ -14357,24 +10294,21 @@ paths: - $ref: 'components/schemas/UserObject.yaml#/UserObjectFull' - type: object properties: - gdpr_consent: + hasPassword: type: boolean - digest: - type: object - properties: - frequency: - type: string - enabled: - type: boolean + minimumPasswordLength: + type: number + minimumPasswordStrength: + type: number title: type: string - $ref: 'components/schemas/Breadcrumbs.yaml#/Breadcrumbs' - $ref: 'components/schemas/CommonProps.yaml#/CommonProps' - "/api/user/{userslug}/blocks": + "/api/user/{userslug}/info": get: tags: - users - summary: /api/user/{userslug}/blocks + summary: /api/user/{userslug}/info parameters: - name: userslug in: path @@ -14391,7 +10325,76 @@ paths: - $ref: 'components/schemas/UserObject.yaml#/UserObjectFull' - type: object properties: - users: + history: + type: object + properties: + flags: + type: array + items: + type: object + properties: + pid: + type: number + timestamp: + type: number + timestampISO: + type: string + description: An ISO 8601 formatted date string (complementing `timestamp`) + timestampReadable: + type: string + title: + type: string + titleRaw: + type: string + bans: + type: array + items: {} + sessions: + type: array + items: + type: object + properties: + ip: + type: string + uuid: + type: string + datetime: + type: number + platform: + type: string + browser: + type: string + version: + type: string + current: + type: boolean + datetimeISO: + type: string + usernames: + type: array + items: + type: object + properties: + value: + type: string + timestamp: + type: number + timestampISO: + type: string + description: An ISO 8601 formatted date string (complementing `timestamp`) + emails: + type: array + items: + type: object + properties: + value: + type: string + timestamp: + type: number + timestampISO: + type: string + description: An ISO 8601 formatted date string (complementing `timestamp`) + moderationNotes: type: array items: {} title: @@ -14399,11 +10402,11 @@ paths: - $ref: 'components/schemas/Pagination.yaml#/Pagination' - $ref: 'components/schemas/Breadcrumbs.yaml#/Breadcrumbs' - $ref: 'components/schemas/CommonProps.yaml#/CommonProps' - "/api/user/{userslug}/sessions": + "/api/user/{userslug}/settings": get: tags: - users - summary: /api/user/{userslug}/sessions + summary: /api/user/{userslug}/settings parameters: - name: userslug in: path @@ -14420,771 +10423,490 @@ paths: - $ref: 'components/schemas/UserObject.yaml#/UserObjectFull' - type: object properties: - sessions: + settings: + type: object + properties: + showemail: + type: boolean + usePagination: + type: boolean + topicsPerPage: + type: number + postsPerPage: + type: number + notificationSounds: + type: number + topicPostSort: + type: string + openOutgoingLinksInNewTab: + type: boolean + dailyDigestFreq: + type: string + language: + type: string + showfullname: + type: boolean + followTopicsOnCreate: + type: boolean + followTopicsOnReply: + type: boolean + restrictChat: + type: boolean + topicSearchEnabled: + type: boolean + categoryTopicSort: + type: string + userLang: + type: string + groupTitle: + nullable: true + pushbullet:enabled: + type: number + pushbullet:target: + type: string + bootswatchSkin: + type: string + homePageRoute: + type: string + scrollToMyPost: + type: boolean + delayImageLoading: + type: number + notificationSound: + type: string + incomingChatSound: + type: string + outgoingChatSound: + type: string + notificationType_new-chat: + type: string + notificationType_new-reply: + type: string + sendChatNotifications: + nullable: true + sendPostNotifications: + nullable: true + notificationType_upvote: + type: string + notificationType_new-topic: + type: string + notificationType_follow: + type: string + notificationType_group-invite: + type: string + upvoteNotifFreq: + type: string + notificationType_mention: + type: string + acpLang: + type: string + notificationType_new-register: + type: string + notificationType_post-queue: + type: string + notificationType_new-post-flag: + type: string + notificationType_new-user-flag: + type: string + categoryWatchState: + type: string + notificationType_group-request-membership: + type: string + uid: + type: number + description: A user identifier + languages: + type: array + items: + type: object + properties: + name: + type: string + code: + type: string + dir: + type: string + selected: + type: boolean + acpLanguages: + type: array + items: + type: object + properties: + name: + type: string + code: + type: string + dir: + type: string + selected: + type: boolean + notification-sound: + type: array + items: + type: object + properties: + name: + type: string + sounds: + type: array + items: + type: object + properties: + name: + type: string + value: + type: string + selected: + type: boolean + notificationSound: + type: array + items: + type: object + properties: + name: + type: string + selected: + type: boolean + chat-incoming-sound: type: array - items: {} - title: - type: string - breadcrumbs: + items: + type: object + properties: + name: + type: string + sounds: + type: array + items: + type: object + properties: + name: + type: string + value: + type: string + selected: + type: boolean + incomingChatSound: type: array items: type: object properties: - text: + name: type: string - url: + selected: + type: boolean + chat-outgoing-sound: + type: array + items: + type: object + properties: + name: type: string - - $ref: 'components/schemas/CommonProps.yaml#/CommonProps' - "/api/user/{userslug}/session/{uuid}": - delete: - tags: - - users - summary: /api/user/{userslug}/session/{uuid} - parameters: - - name: userslug - in: path - required: true - schema: - type: string - - name: uuid - in: path - required: true - schema: - type: string - responses: {} - /api/notifications: - get: - tags: - - notifications - summary: /api/notifications - responses: - "200": - description: "" - content: - application/json: - schema: - type: object - properties: - notifications: - type: array - items: - type: object - properties: - type: - type: string - bodyShort: - type: string - bodyLong: - type: string - pid: - oneOf: - - type: number - - type: string - tid: - type: number - description: A topic identifier - path: - type: string - nid: - type: string - from: - type: number - mergeId: - type: string - topicTitle: - type: string - importance: - type: number - datetime: - type: number - datetimeISO: - type: string - user: + sounds: + type: array + items: + type: object + properties: + name: + type: string + value: + type: string + selected: + type: boolean + outgoingChatSound: + type: array + items: type: object properties: - username: + name: type: string - description: A friendly name for a given user account - userslug: + selected: + type: boolean + customSettings: + type: array + items: {} + homePageRoutes: + type: array + items: + type: object + properties: + route: type: string - description: An URL-safe variant of the username (i.e. lower-cased, spaces removed, etc.) - picture: + name: type: string - uid: - type: number - description: A user identifier - icon:text: + selected: + type: boolean + notificationSettings: + type: array + items: + type: object + properties: + name: type: string - description: A single-letter representation of a username. This is used in the auto-generated icon given to users without an avatar - icon:bgColor: + label: type: string - description: A six-character hexadecimal colour code assigned to the user. This value is used in conjunction with `icon:text` for the user's auto-generated icon - example: "#f44336" - image: - type: string - read: - type: boolean - readClass: - type: string - subject: - type: string - pagination: - type: object - properties: - prev: - type: object - properties: - page: - type: number - active: - type: boolean - next: - type: object - properties: - page: - type: number - active: - type: boolean - first: - type: object - properties: - page: - type: number - active: - type: boolean - last: - type: object - properties: - page: - type: number - active: - type: boolean - rel: - type: array - items: {} - pages: - type: array - items: {} - currentPage: - type: number - pageCount: + none: + type: boolean + notification: + type: boolean + email: + type: boolean + notificationemail: + type: boolean + disableEmailSubscriptions: type: number - filters: - type: array - items: - type: object - properties: - name: - type: string - filter: - type: string - selected: - type: boolean - regularFilters: - type: array - items: - type: object - properties: - name: - type: string - filter: - type: string - selected: - type: boolean - moderatorFilters: - type: array - items: - type: object - properties: - name: - type: string - filter: - type: string - selectedFilter: - type: object - properties: - name: - type: string - filter: - type: string - selected: - type: boolean - title: - type: string - breadcrumbs: - type: array - items: - type: object - properties: - text: - type: string - url: - type: string - loggedIn: - type: boolean - relative_path: - type: string - template: - type: object - properties: - name: - type: string - notifications: - type: boolean - url: - type: string - bodyClass: - type: string - _header: - type: object - properties: - tags: - type: object - properties: - meta: - type: array - items: - type: object - properties: - name: - type: string - content: - type: string - noEscape: - type: boolean - property: - type: string - link: - type: array - items: - type: object - properties: - rel: - type: string - type: - type: string - href: - type: string - title: - type: string - sizes: - type: string - widgets: - type: object - properties: - footer: + dailyDigestFreqOptions: + type: array + items: + type: object + properties: + value: + type: string + name: + type: string + selected: + type: boolean + bootswatchSkinOptions: type: array items: type: object properties: - html: + name: type: string - "401": - description: "" - content: - application/json: - schema: - title: not-authorized - type: undefined - "/api/user/{userslug}/chats/{roomid?}": + value: + type: string + selected: + type: boolean + upvoteNotifFreq: + type: array + items: + type: object + properties: + name: + type: string + selected: + type: boolean + categoryWatchState: + type: object + properties: + watching: + type: boolean + disableCustomUserSkins: + type: number + allowUserHomePage: + type: number + hideFullname: + type: number + hideEmail: + type: number + inTopicSearchAvailable: + type: boolean + maxTopicsPerPage: + type: number + maxPostsPerPage: + type: number + title: + type: string + - $ref: 'components/schemas/Breadcrumbs.yaml#/Breadcrumbs' + - $ref: 'components/schemas/CommonProps.yaml#/CommonProps' + "/api/user/{userslug}/uploads": get: tags: - users - summary: /api/user/{userslug}/chats/{roomid?} + summary: /api/user/{userslug}/uploads parameters: - name: userslug in: path required: true schema: type: string - - name: roomid? - in: path - required: true - schema: - type: string responses: "200": description: "" content: application/json: schema: - type: object - properties: - owner: - type: number - roomId: - type: number - roomName: - type: string - messages: - type: array - items: - type: object - properties: - content: - type: string - timestamp: - type: number - fromuid: - type: number - roomId: - type: string - deleted: - type: boolean - system: - type: boolean - edited: - type: number - timestampISO: - type: string - description: An ISO 8601 formatted date string (complementing `timestamp`) - editedISO: - type: string - messageId: - type: number - fromUser: - type: object - properties: - uid: - type: number - description: A user identifier - username: - type: string - description: A friendly name for a given user account - userslug: - type: string - description: An URL-safe variant of the username (i.e. lower-cased, spaces removed, etc.) - picture: - type: string - status: - type: string - banned: - type: boolean - icon:text: - type: string - description: A single-letter representation of a username. This is used in the auto-generated icon given to users without an avatar - icon:bgColor: - type: string - description: A six-character hexadecimal colour code assigned to the user. This value is used in conjunction with `icon:text` for the user's auto-generated icon - example: "#f44336" - banned_until_readable: - type: string - deleted: - type: boolean - self: - type: number - newSet: - type: boolean - index: - type: number - cleanedContent: - type: string - isOwner: - type: boolean - users: - type: array - items: - type: object - properties: - uid: - type: number - description: A user identifier - username: - type: string - description: A friendly name for a given user account - picture: - type: string - status: - type: string - icon:text: - type: string - description: A single-letter representation of a username. This is used in the auto-generated icon given to users without an avatar - icon:bgColor: - type: string - description: A six-character hexadecimal colour code assigned to the user. This value is used in conjunction with `icon:text` for the user's auto-generated icon - example: "#f44336" - isOwner: - type: boolean - canReply: - type: boolean - groupChat: - type: boolean - usernames: - type: string - maximumUsersInChatRoom: - type: number - maximumChatMessageLength: - type: number - showUserInput: - type: boolean - isAdminOrGlobalMod: - type: boolean - rooms: - type: array - items: - type: object - properties: - owner: - oneOf: - - type: number - - type: string - roomId: - type: number - roomName: - type: string - users: - type: array - items: - type: object - properties: - uid: - type: number - description: A user identifier - username: - type: string - description: A friendly name for a given user account - userslug: - type: string - description: An URL-safe variant of the username (i.e. lower-cased, spaces removed, etc.) - picture: - nullable: true - type: string - status: - type: string - lastonline: - type: number - icon:text: - type: string - description: A single-letter representation of a username. This is used in the auto-generated icon given to users without an avatar - icon:bgColor: - type: string - description: A six-character hexadecimal colour code assigned to the user. This value is used in conjunction with `icon:text` for the user's auto-generated icon - example: "#f44336" - lastonlineISO: - type: string - groupChat: - type: boolean - unread: - type: boolean - teaser: - type: object - properties: - fromuid: - type: number - content: - type: string - timestamp: - type: number - timestampISO: - type: string - description: An ISO 8601 formatted date string (complementing `timestamp`) - user: - type: object - properties: - uid: - type: number - description: A user identifier - username: - type: string - description: A friendly name for a given user account - userslug: - type: string - description: An URL-safe variant of the username (i.e. lower-cased, spaces removed, etc.) - picture: - nullable: true - type: string - status: - type: string - lastonline: - type: number - icon:text: - type: string - description: A single-letter representation of a username. This is used in the auto-generated icon given to users without an avatar - icon:bgColor: - type: string - description: A six-character hexadecimal colour code assigned to the user. This value is used in conjunction with `icon:text` for the user's auto-generated icon - example: "#f44336" - lastonlineISO: - type: string - lastUser: - type: object - properties: - uid: - type: number - description: A user identifier - username: - type: string - description: A friendly name for a given user account - userslug: - type: string - description: An URL-safe variant of the username (i.e. lower-cased, spaces removed, etc.) - picture: - nullable: true - type: string - status: - type: string - lastonline: - type: number - icon:text: - type: string - description: A single-letter representation of a username. This is used in the auto-generated icon given to users without an avatar - icon:bgColor: - type: string - description: A six-character hexadecimal colour code assigned to the user. This value is used in conjunction with `icon:text` for the user's auto-generated icon - example: "#f44336" - lastonlineISO: - type: string - usernames: - type: string - nextStart: - type: number - title: - type: string - uid: - type: number - description: A user identifier - userslug: - type: string - description: An URL-safe variant of the username (i.e. lower-cased, spaces removed, etc.) - canViewInfo: - type: boolean - loggedIn: - type: boolean - relative_path: - type: string - template: - type: object + allOf: + - $ref: 'components/schemas/UserObject.yaml#/UserObjectFull' + - type: object + properties: + uploads: + type: array + items: {} + privateUploads: + type: boolean + title: + type: string + - $ref: 'components/schemas/Pagination.yaml#/Pagination' + - $ref: 'components/schemas/Breadcrumbs.yaml#/Breadcrumbs' + - $ref: 'components/schemas/CommonProps.yaml#/CommonProps' + "/api/user/{userslug}/consent": + get: + tags: + - users + summary: /api/user/{userslug}/consent + parameters: + - name: userslug + in: path + required: true + schema: + type: string + responses: + "200": + description: "" + content: + application/json: + schema: + allOf: + - $ref: 'components/schemas/UserObject.yaml#/UserObjectFull' + - type: object properties: - name: - type: string - chats: + gdpr_consent: type: boolean - url: - type: string - bodyClass: - type: string - _header: - type: object - properties: - tags: + digest: type: object properties: - meta: - type: array - items: - type: object - properties: - name: - type: string - content: - type: string - noEscape: - type: boolean - property: - type: string - link: - type: array - items: - type: object - properties: - rel: - type: string - type: - type: string - href: - type: string - title: - type: string - sizes: - type: string - widgets: - type: object + frequency: + type: string + enabled: + type: boolean + title: + type: string + - $ref: 'components/schemas/Breadcrumbs.yaml#/Breadcrumbs' + - $ref: 'components/schemas/CommonProps.yaml#/CommonProps' + "/api/user/{userslug}/blocks": + get: + tags: + - users + summary: /api/user/{userslug}/blocks + parameters: + - name: userslug + in: path + required: true + schema: + type: string + responses: + "200": + description: "" + content: + application/json: + schema: + allOf: + - $ref: 'components/schemas/UserObject.yaml#/UserObjectFull' + - type: object + properties: + users: + type: array + items: {} + title: + type: string + - $ref: 'components/schemas/Pagination.yaml#/Pagination' + - $ref: 'components/schemas/Breadcrumbs.yaml#/Breadcrumbs' + - $ref: 'components/schemas/CommonProps.yaml#/CommonProps' + "/api/user/{userslug}/sessions": + get: + tags: + - users + summary: /api/user/{userslug}/sessions + parameters: + - name: userslug + in: path + required: true + schema: + type: string + responses: + "200": + description: "" + content: + application/json: + schema: + allOf: + - $ref: 'components/schemas/UserObject.yaml#/UserObjectFull' + - type: object properties: - footer: + sessions: + type: array + items: {} + title: + type: string + breadcrumbs: type: array items: type: object properties: - html: + text: type: string - text/plain: + url: + type: string + - $ref: 'components/schemas/CommonProps.yaml#/CommonProps' + "/api/user/{userslug}/session/{uuid}": + delete: + tags: + - users + summary: /api/user/{userslug}/session/{uuid} + parameters: + - name: userslug + in: path + required: true + schema: + type: string + - name: uuid + in: path + required: true + schema: + type: string + responses: {} + /api/notifications: + get: + tags: + - notifications + summary: /api/notifications + responses: + "200": + description: "" + content: + application/json: schema: - type: object - properties: - owner: - type: number - roomId: - type: number - roomName: - type: string - messages: - type: array - items: - type: object - properties: - content: - type: string - timestamp: - type: number - fromuid: - type: number - roomId: - type: string - deleted: - type: boolean - system: - type: boolean - edited: - type: number - timestampISO: - type: string - description: An ISO 8601 formatted date string (complementing `timestamp`) - editedISO: - type: string - messageId: - type: number - fromUser: + allOf: + - type: object + properties: + notifications: + type: array + items: type: object properties: - uid: - type: number - description: A user identifier - username: - type: string - description: A friendly name for a given user account - userslug: - type: string - description: An URL-safe variant of the username (i.e. lower-cased, spaces removed, etc.) - picture: - type: string - status: - type: string - banned: - type: boolean - icon:text: - type: string - description: A single-letter representation of a username. This is used in the auto-generated icon given to users without an avatar - icon:bgColor: + type: type: string - description: A six-character hexadecimal colour code assigned to the user. This value is used in conjunction with `icon:text` for the user's auto-generated icon - example: "#f44336" - banned_until_readable: + bodyShort: type: string - deleted: - type: boolean - self: - type: number - newSet: - type: boolean - index: - type: number - cleanedContent: - type: string - isOwner: - type: boolean - users: - type: array - items: - type: object - properties: - uid: - type: number - description: A user identifier - username: - type: string - description: A friendly name for a given user account - picture: - type: string - status: - type: string - icon:text: - type: string - description: A single-letter representation of a username. This is used in the auto-generated icon given to users without an avatar - icon:bgColor: - type: string - description: A six-character hexadecimal colour code assigned to the user. This value is used in conjunction with `icon:text` for the user's auto-generated icon - example: "#f44336" - isOwner: - type: boolean - canReply: - type: boolean - groupChat: - type: boolean - usernames: - type: string - maximumUsersInChatRoom: - type: number - maximumChatMessageLength: - type: number - showUserInput: - type: boolean - isAdminOrGlobalMod: - type: boolean - rooms: - type: array - items: - type: object - properties: - owner: - oneOf: - - type: number - - type: string - roomId: - type: number - roomName: - type: string - users: - type: array - items: - type: object - properties: - uid: - type: number - description: A user identifier - username: - type: string - description: A friendly name for a given user account - userslug: - type: string - description: An URL-safe variant of the username (i.e. lower-cased, spaces removed, etc.) - picture: - nullable: true - type: string - status: - type: string - lastonline: - type: number - icon:text: - type: string - description: A single-letter representation of a username. This is used in the auto-generated icon given to users without an avatar - icon:bgColor: - type: string - description: A six-character hexadecimal colour code assigned to the user. This value is used in conjunction with `icon:text` for the user's auto-generated icon - example: "#f44336" - lastonlineISO: - type: string - groupChat: - type: boolean - unread: - type: boolean - teaser: - type: object - properties: - fromuid: + bodyLong: + type: string + pid: + oneOf: + - type: number + - type: string + tid: type: number - content: + description: A topic identifier + path: type: string - timestamp: + nid: + type: string + from: type: number - timestampISO: + mergeId: + type: string + topicTitle: + type: string + importance: + type: number + datetime: + type: number + datetimeISO: type: string - description: An ISO 8601 formatted date string (complementing `timestamp`) user: type: object properties: - uid: - type: number - description: A user identifier username: type: string description: A friendly name for a given user account @@ -15192,12 +10914,10 @@ paths: type: string description: An URL-safe variant of the username (i.e. lower-cased, spaces removed, etc.) picture: - nullable: true - type: string - status: type: string - lastonline: + uid: type: number + description: A user identifier icon:text: type: string description: A single-letter representation of a username. This is used in the auto-generated icon given to users without an avatar @@ -15205,860 +10925,934 @@ paths: type: string description: A six-character hexadecimal colour code assigned to the user. This value is used in conjunction with `icon:text` for the user's auto-generated icon example: "#f44336" - lastonlineISO: - type: string - lastUser: + image: + type: string + read: + type: boolean + readClass: + type: string + subject: + type: string + pagination: + type: object + properties: + prev: + type: object + properties: + page: + type: number + active: + type: boolean + next: + type: object + properties: + page: + type: number + active: + type: boolean + first: + type: object + properties: + page: + type: number + active: + type: boolean + last: + type: object + properties: + page: + type: number + active: + type: boolean + rel: + type: array + items: {} + pages: + type: array + items: {} + currentPage: + type: number + pageCount: + type: number + filters: + type: array + items: type: object properties: - uid: - type: number - description: A user identifier - username: - type: string - description: A friendly name for a given user account - userslug: + name: type: string - description: An URL-safe variant of the username (i.e. lower-cased, spaces removed, etc.) - picture: - nullable: true + filter: type: string - status: + selected: + type: boolean + regularFilters: + type: array + items: + type: object + properties: + name: type: string - lastonline: - type: number - icon:text: + filter: type: string - description: A single-letter representation of a username. This is used in the auto-generated icon given to users without an avatar - icon:bgColor: + selected: + type: boolean + moderatorFilters: + type: array + items: + type: object + properties: + name: type: string - description: A six-character hexadecimal colour code assigned to the user. This value is used in conjunction with `icon:text` for the user's auto-generated icon - example: "#f44336" - lastonlineISO: + filter: type: string - usernames: - type: string - nextStart: - type: number - title: - type: string - uid: - type: number - description: A user identifier - userslug: - type: string - description: An URL-safe variant of the username (i.e. lower-cased, spaces removed, etc.) - canViewInfo: - type: boolean - loggedIn: - type: boolean - relative_path: - type: string - template: - type: object - properties: - name: - type: string - chats: - type: boolean - url: - type: string - bodyClass: - type: string - _header: - type: object - properties: - tags: + selectedFilter: type: object properties: - meta: - type: array - items: - type: object - properties: - name: - type: string - content: - type: string - noEscape: - type: boolean - property: - type: string - link: - type: array - items: - type: object - properties: - rel: - type: string - type: - type: string - href: - type: string - title: - type: string - sizes: - type: string - widgets: - type: object - properties: - footer: + name: + type: string + filter: + type: string + selected: + type: boolean + title: + type: string + breadcrumbs: type: array items: type: object properties: - html: + text: type: string - "304": - description: "" - "404": - description: "" - content: - application/json: - schema: - type: string - example: Not Found - text/plain: - schema: - type: string - example: Not Found - "/api/chats/{roomid?}": - get: - tags: - - shorthand - summary: /api/chats/{roomid?} - parameters: - - name: roomid? - in: path - required: true - schema: - type: string - responses: - "200": - description: "" - content: - application/json: - schema: - title: /user/baris/chats/3499 - type: undefined - /api/users: - get: - tags: - - users - summary: /api/users - responses: - "200": - description: "" - content: - application/json: - schema: - type: object - properties: - users: - type: array - items: - type: object - properties: - uid: - type: number - description: A user identifier - username: - type: string - description: A friendly name for a given user account - userslug: - type: string - description: An URL-safe variant of the username (i.e. lower-cased, spaces removed, etc.) - picture: - nullable: true - type: string - status: - type: string - postcount: - type: number - reputation: - type: number - email:confirmed: - type: number - description: Whether the user has confirmed their email address or not - lastonline: - type: number - flags: - nullable: true - banned: - type: number - banned:expire: - type: number - joindate: - type: number - description: A UNIX timestamp representing the moment the user's account was created - icon:text: - type: string - description: A single-letter representation of a username. This is used in the auto-generated icon given to users without an avatar - icon:bgColor: - type: string - description: A six-character hexadecimal colour code assigned to the user. This value is used in conjunction with `icon:text` for the user's auto-generated icon - example: "#f44336" - joindateISO: - type: string - lastonlineISO: - type: string - banned_until: - type: number - banned_until_readable: - type: string - administrator: - type: boolean - pagination: - type: object + url: + type: string + - $ref: 'components/schemas/CommonProps.yaml#/CommonProps' + "/api/user/{userslug}/chats/{roomid?}": + get: + tags: + - users + summary: /api/user/{userslug}/chats/{roomid?} + parameters: + - name: userslug + in: path + required: true + schema: + type: string + - name: roomid? + in: path + required: true + schema: + type: string + responses: + "200": + description: "" + content: + application/json: + schema: + allOf: + - type: object properties: - rel: + owner: + type: number + roomId: + type: number + roomName: + type: string + messages: type: array items: type: object properties: - rel: + content: + type: string + timestamp: + type: number + fromuid: + type: number + roomId: type: string - href: + deleted: + type: boolean + system: + type: boolean + edited: + type: number + timestampISO: + type: string + description: An ISO 8601 formatted date string (complementing `timestamp`) + editedISO: + type: string + messageId: + type: number + fromUser: + type: object + properties: + uid: + type: number + description: A user identifier + username: + type: string + description: A friendly name for a given user account + userslug: + type: string + description: An URL-safe variant of the username (i.e. lower-cased, spaces removed, etc.) + picture: + type: string + status: + type: string + banned: + type: boolean + icon:text: + type: string + description: A single-letter representation of a username. This is used in the auto-generated icon given to users without an avatar + icon:bgColor: + type: string + description: A six-character hexadecimal colour code assigned to the user. This value is used in conjunction with `icon:text` for the user's auto-generated icon + example: "#f44336" + banned_until_readable: + type: string + deleted: + type: boolean + self: + type: number + newSet: + type: boolean + index: + type: number + cleanedContent: type: string - pages: + isOwner: + type: boolean + users: type: array items: type: object properties: - page: + uid: type: number - active: - type: boolean - qs: + description: A user identifier + username: + type: string + description: A friendly name for a given user account + picture: + type: string + status: + type: string + icon:text: + type: string + description: A single-letter representation of a username. This is used in the auto-generated icon given to users without an avatar + icon:bgColor: type: string - separator: + description: A six-character hexadecimal colour code assigned to the user. This value is used in conjunction with `icon:text` for the user's auto-generated icon + example: "#f44336" + isOwner: type: boolean - currentPage: + canReply: + type: boolean + groupChat: + type: boolean + usernames: + type: string + maximumUsersInChatRoom: type: number - pageCount: + maximumChatMessageLength: type: number - prev: - type: object - properties: - page: - type: number - active: - type: boolean - qs: - type: string - next: - type: object - properties: - page: - type: number - active: - type: boolean - qs: - type: string - first: - type: object - properties: - page: - type: number - active: - type: boolean - qs: - type: string - last: - type: object - properties: - page: - type: number - active: - type: boolean - qs: - type: string - userCount: - type: number - title: - type: string - breadcrumbs: - type: array - items: - type: object - properties: - text: - type: string - url: - type: string - isAdminOrGlobalMod: - type: boolean - isAdmin: - type: boolean - isGlobalMod: - type: boolean - displayUserSearch: - type: boolean - section_joindate: - type: boolean - maximumInvites: - type: number - inviteOnly: - type: boolean - adminInviteOnly: - type: boolean - invites: - type: number - showInviteButton: - type: boolean - reputation:disabled: - type: number - loggedIn: - type: boolean - relative_path: - type: string - template: - type: object - properties: - name: - type: string - users: + showUserInput: type: boolean - url: - type: string - bodyClass: - type: string - _header: - type: object - properties: - tags: - type: object - properties: - meta: - type: array - items: + isAdminOrGlobalMod: + type: boolean + rooms: + type: array + items: + type: object + properties: + owner: + oneOf: + - type: number + - type: string + roomId: + type: number + roomName: + type: string + users: + type: array + items: + type: object + properties: + uid: + type: number + description: A user identifier + username: + type: string + description: A friendly name for a given user account + userslug: + type: string + description: An URL-safe variant of the username (i.e. lower-cased, spaces removed, etc.) + picture: + nullable: true + type: string + status: + type: string + lastonline: + type: number + icon:text: + type: string + description: A single-letter representation of a username. This is used in the auto-generated icon given to users without an avatar + icon:bgColor: + type: string + description: A six-character hexadecimal colour code assigned to the user. This value is used in conjunction with `icon:text` for the user's auto-generated icon + example: "#f44336" + lastonlineISO: + type: string + groupChat: + type: boolean + unread: + type: boolean + teaser: type: object properties: - name: - type: string + fromuid: + type: number content: type: string - noEscape: - type: boolean - property: + timestamp: + type: number + timestampISO: type: string - link: - type: array - items: + description: An ISO 8601 formatted date string (complementing `timestamp`) + user: + type: object + properties: + uid: + type: number + description: A user identifier + username: + type: string + description: A friendly name for a given user account + userslug: + type: string + description: An URL-safe variant of the username (i.e. lower-cased, spaces removed, etc.) + picture: + nullable: true + type: string + status: + type: string + lastonline: + type: number + icon:text: + type: string + description: A single-letter representation of a username. This is used in the auto-generated icon given to users without an avatar + icon:bgColor: + type: string + description: A six-character hexadecimal colour code assigned to the user. This value is used in conjunction with `icon:text` for the user's auto-generated icon + example: "#f44336" + lastonlineISO: + type: string + lastUser: type: object properties: - rel: + uid: + type: number + description: A user identifier + username: type: string - type: + description: A friendly name for a given user account + userslug: type: string - href: + description: An URL-safe variant of the username (i.e. lower-cased, spaces removed, etc.) + picture: + nullable: true type: string - title: + status: + type: string + lastonline: + type: number + icon:text: + type: string + description: A single-letter representation of a username. This is used in the auto-generated icon given to users without an avatar + icon:bgColor: type: string - sizes: + description: A six-character hexadecimal colour code assigned to the user. This value is used in conjunction with `icon:text` for the user's auto-generated icon + example: "#f44336" + lastonlineISO: type: string - widgets: - type: object - properties: - footer: - type: array - items: - type: object - properties: - html: + usernames: type: string - "304": + nextStart: + type: number + title: + type: string + uid: + type: number + description: A user identifier + userslug: + type: string + description: An URL-safe variant of the username (i.e. lower-cased, spaces removed, etc.) + canViewInfo: + type: boolean + - $ref: 'components/schemas/CommonProps.yaml#/CommonProps' + "/api/chats/{roomid?}": + get: + tags: + - shorthand + summary: /api/chats/{roomid?} + parameters: + - name: roomid? + in: path + required: true + schema: + type: string + responses: + "200": description: "" - /api/groups: + content: + application/json: + schema: + title: /user/baris/chats/3499 + type: undefined + /api/users: get: tags: - - groups - summary: /api/groups + - users + summary: /api/users responses: "200": description: "" content: application/json: schema: - type: object - properties: - groups: - type: array - items: - type: object - properties: - name: - type: string - description: - type: string - deleted: - oneOf: - - type: number - - type: string - hidden: - type: number - system: - type: number - userTitle: - type: string - icon: - type: string - labelColor: - type: string - createtime: - type: number - slug: - type: string - memberCount: - type: number - private: - type: number - userTitleEnabled: - type: number - disableJoinRequests: - type: number - disableLeave: - type: number - nameEncoded: - type: string - displayName: - type: string - textColor: - type: string - createtimeISO: - type: string - cover:thumb:url: - type: string - cover:url: - type: string - cover:position: - type: string - members: - type: array - items: - type: object - properties: - uid: - type: number - description: A user identifier - username: - type: string - description: A friendly name for a given user account - picture: - nullable: true - type: string - userslug: - type: string - description: An URL-safe variant of the username (i.e. lower-cased, spaces removed, etc.) - icon:text: - type: string - description: A single-letter representation of a username. This is used in the auto-generated icon given to users without an avatar - icon:bgColor: - type: string - description: A six-character hexadecimal colour code assigned to the user. This value is used in conjunction with `icon:text` for the user's auto-generated icon - example: "#f44336" - truncated: - type: boolean - ownerUid: - type: number - allowGroupCreation: - type: boolean - nextStart: - type: number - title: - type: string - breadcrumbs: - type: array - items: - type: object - properties: - text: - type: string - url: - type: string - loggedIn: - type: boolean - relative_path: - type: string - template: - type: object - properties: - name: - type: string - groups/list: - type: boolean - url: - type: string - bodyClass: - type: string - _header: - type: object + allOf: + - type: object properties: - tags: + users: + type: array + items: + type: object + properties: + uid: + type: number + description: A user identifier + username: + type: string + description: A friendly name for a given user account + userslug: + type: string + description: An URL-safe variant of the username (i.e. lower-cased, spaces removed, etc.) + picture: + nullable: true + type: string + status: + type: string + postcount: + type: number + reputation: + type: number + email:confirmed: + type: number + description: Whether the user has confirmed their email address or not + lastonline: + type: number + flags: + nullable: true + banned: + type: number + banned:expire: + type: number + joindate: + type: number + description: A UNIX timestamp representing the moment the user's account was created + icon:text: + type: string + description: A single-letter representation of a username. This is used in the auto-generated icon given to users without an avatar + icon:bgColor: + type: string + description: A six-character hexadecimal colour code assigned to the user. This value is used in conjunction with `icon:text` for the user's auto-generated icon + example: "#f44336" + joindateISO: + type: string + lastonlineISO: + type: string + banned_until: + type: number + banned_until_readable: + type: string + administrator: + type: boolean + pagination: type: object properties: - meta: + rel: type: array items: type: object properties: - name: - type: string - content: + rel: type: string - noEscape: - type: boolean - property: + href: type: string - link: + pages: type: array items: type: object properties: - rel: - type: string - type: - type: string - href: - type: string - title: - type: string - sizes: + page: + type: number + active: + type: boolean + qs: type: string - widgets: - type: object - properties: - footer: + separator: + type: boolean + currentPage: + type: number + pageCount: + type: number + prev: + type: object + properties: + page: + type: number + active: + type: boolean + qs: + type: string + next: + type: object + properties: + page: + type: number + active: + type: boolean + qs: + type: string + first: + type: object + properties: + page: + type: number + active: + type: boolean + qs: + type: string + last: + type: object + properties: + page: + type: number + active: + type: boolean + qs: + type: string + userCount: + type: number + title: + type: string + breadcrumbs: type: array items: type: object properties: - html: + text: type: string - "304": - description: "" - "/api/groups/{slug}": + url: + type: string + isAdminOrGlobalMod: + type: boolean + isAdmin: + type: boolean + isGlobalMod: + type: boolean + displayUserSearch: + type: boolean + section_joindate: + type: boolean + maximumInvites: + type: number + inviteOnly: + type: boolean + adminInviteOnly: + type: boolean + invites: + type: number + showInviteButton: + type: boolean + reputation:disabled: + type: number + - $ref: 'components/schemas/CommonProps.yaml#/CommonProps' + /api/groups: get: tags: - groups - summary: /api/groups/{slug} - parameters: - - name: slug - in: path - required: true - schema: - type: string + summary: /api/groups responses: "200": description: "" content: application/json: schema: - type: object - properties: - title: - type: string - group: - type: object + allOf: + - type: object properties: - name: - type: string - description: - type: string - deleted: - type: number - hidden: - type: number - system: - type: number - userTitle: - type: string - icon: - type: string - labelColor: - type: string - slug: - type: string - createtime: - type: number - memberCount: - type: number - private: - type: number - cover:url: - type: string - cover:position: - type: string - userTitleEnabled: - type: number - disableJoinRequests: - type: number - disableLeave: - type: number - nameEncoded: - type: string - displayName: - type: string - textColor: - type: string - createtimeISO: - type: string - cover:thumb:url: - type: string - descriptionParsed: - type: string - members: + groups: type: array items: type: object properties: - uid: - type: number - description: A user identifier - username: - type: string - description: A friendly name for a given user account - userslug: - type: string - description: An URL-safe variant of the username (i.e. lower-cased, spaces removed, etc.) - picture: + name: type: string - status: + description: type: string - postcount: + deleted: + oneOf: + - type: number + - type: string + hidden: type: number - reputation: + system: type: number - email:confirmed: + userTitle: + type: string + icon: + type: string + labelColor: + type: string + createtime: type: number - description: Whether the user has confirmed their email address or not - lastonline: + slug: + type: string + memberCount: type: number - flags: - nullable: true + private: type: number - banned: + userTitleEnabled: type: number - banned:expire: + disableJoinRequests: type: number - joindate: + disableLeave: type: number - description: A UNIX timestamp representing the moment the user's account was created - icon:text: + nameEncoded: type: string - description: A single-letter representation of a username. This is used in the auto-generated icon given to users without an avatar - icon:bgColor: + displayName: type: string - description: A six-character hexadecimal colour code assigned to the user. This value is used in conjunction with `icon:text` for the user's auto-generated icon - example: "#f44336" - joindateISO: + textColor: type: string - lastonlineISO: + createtimeISO: type: string - banned_until: - type: number - banned_until_readable: + cover:thumb:url: type: string - administrator: - type: boolean - isOwner: + cover:url: + type: string + cover:position: + type: string + members: + type: array + items: + type: object + properties: + uid: + type: number + description: A user identifier + username: + type: string + description: A friendly name for a given user account + picture: + nullable: true + type: string + userslug: + type: string + description: An URL-safe variant of the username (i.e. lower-cased, spaces removed, etc.) + icon:text: + type: string + description: A single-letter representation of a username. This is used in the auto-generated icon given to users without an avatar + icon:bgColor: + type: string + description: A six-character hexadecimal colour code assigned to the user. This value is used in conjunction with `icon:text` for the user's auto-generated icon + example: "#f44336" + truncated: type: boolean - membersNextStart: + ownerUid: + type: number + allowGroupCreation: + type: boolean + nextStart: type: number - pending: - type: array - items: {} - invited: + title: + type: string + breadcrumbs: type: array - items: {} - isMember: - type: boolean - isPending: - type: boolean - isInvited: - type: boolean - isOwner: - type: boolean - posts: - type: array - items: - type: object - properties: - pid: - type: number - tid: - type: number - description: A topic identifier - content: - type: string - uid: - type: number - description: A user identifier - timestamp: - type: number - deleted: - type: boolean - upvotes: - type: number - downvotes: - type: number - votes: - type: number - timestampISO: - type: string - description: An ISO 8601 formatted date string (complementing `timestamp`) - user: + items: type: object properties: - uid: - type: number - description: A user identifier - username: - type: string - description: A friendly name for a given user account - userslug: - type: string - description: An URL-safe variant of the username (i.e. lower-cased, spaces removed, etc.) - picture: - type: string - status: - type: string - icon:text: + text: type: string - description: A single-letter representation of a username. This is used in the auto-generated icon given to users without an avatar - icon:bgColor: + url: type: string - description: A six-character hexadecimal colour code assigned to the user. This value is used in conjunction with `icon:text` for the user's auto-generated icon - example: "#f44336" - topic: + - $ref: 'components/schemas/CommonProps.yaml#/CommonProps' + "/api/groups/{slug}": + get: + tags: + - groups + summary: /api/groups/{slug} + parameters: + - name: slug + in: path + required: true + schema: + type: string + responses: + "200": + description: "" + content: + application/json: + schema: + allOf: + - type: object + properties: + title: + type: string + group: + type: object + properties: + name: + type: string + description: + type: string + deleted: + type: number + hidden: + type: number + system: + type: number + userTitle: + type: string + icon: + type: string + labelColor: + type: string + slug: + type: string + createtime: + type: number + memberCount: + type: number + private: + type: number + cover:url: + type: string + cover:position: + type: string + userTitleEnabled: + type: number + disableJoinRequests: + type: number + disableLeave: + type: number + nameEncoded: + type: string + displayName: + type: string + textColor: + type: string + createtimeISO: + type: string + cover:thumb:url: + type: string + descriptionParsed: + type: string + members: + type: array + items: + type: object + properties: + uid: + type: number + description: A user identifier + username: + type: string + description: A friendly name for a given user account + userslug: + type: string + description: An URL-safe variant of the username (i.e. lower-cased, spaces removed, etc.) + picture: + type: string + status: + type: string + postcount: + type: number + reputation: + type: number + email:confirmed: + type: number + description: Whether the user has confirmed their email address or not + lastonline: + type: number + flags: + nullable: true + type: number + banned: + type: number + banned:expire: + type: number + joindate: + type: number + description: A UNIX timestamp representing the moment the user's account was created + icon:text: + type: string + description: A single-letter representation of a username. This is used in the auto-generated icon given to users without an avatar + icon:bgColor: + type: string + description: A six-character hexadecimal colour code assigned to the user. This value is used in conjunction with `icon:text` for the user's auto-generated icon + example: "#f44336" + joindateISO: + type: string + lastonlineISO: + type: string + banned_until: + type: number + banned_until_readable: + type: string + administrator: + type: boolean + isOwner: + type: boolean + membersNextStart: + type: number + pending: + type: array + items: {} + invited: + type: array + items: {} + isMember: + type: boolean + isPending: + type: boolean + isInvited: + type: boolean + isOwner: + type: boolean + posts: + type: array + items: type: object properties: - uid: + pid: type: number - description: A user identifier tid: type: number description: A topic identifier - title: - type: string - cid: - type: number - description: A category identifier - slug: + content: type: string - deleted: + uid: type: number - postcount: + description: A user identifier + timestamp: type: number - mainPid: + deleted: + type: boolean + upvotes: type: number - description: The post id of the first post in this topic (also called the "original post") - titleRaw: - type: string - category: - type: object - properties: - cid: + downvotes: type: number - description: A category identifier - name: - type: string - icon: - type: string - slug: - type: string - parentCid: + votes: type: number - description: The category identifier for the category that is the immediate ancestor of the current category - bgColor: - type: string - color: - type: string - image: - nullable: true - imageClass: - nullable: true + timestampISO: type: string - isMainPost: - type: boolean - isAdmin: - type: boolean - isGlobalMod: - type: boolean - allowPrivateGroups: - type: number - breadcrumbs: - type: array - items: - type: object - properties: - text: - type: string - url: - type: string - loggedIn: - type: boolean - relative_path: - type: string - template: - type: object - properties: - name: - type: string - groups/details: - type: boolean - url: - type: string - bodyClass: - type: string - _header: - type: object - properties: - tags: - type: object - properties: - meta: - type: array - items: + description: An ISO 8601 formatted date string (complementing `timestamp`) + user: type: object properties: - name: + uid: + type: number + description: A user identifier + username: type: string - content: + description: A friendly name for a given user account + userslug: type: string - noEscape: - type: boolean - property: + description: An URL-safe variant of the username (i.e. lower-cased, spaces removed, etc.) + picture: type: string - link: - type: array - items: + status: + type: string + icon:text: + type: string + description: A single-letter representation of a username. This is used in the auto-generated icon given to users without an avatar + icon:bgColor: + type: string + description: A six-character hexadecimal colour code assigned to the user. This value is used in conjunction with `icon:text` for the user's auto-generated icon + example: "#f44336" + topic: type: object properties: - rel: + uid: + type: number + description: A user identifier + tid: + type: number + description: A topic identifier + title: type: string - type: + cid: + type: number + description: A category identifier + slug: type: string - href: + deleted: + type: number + postcount: + type: number + mainPid: + type: number + description: The post id of the first post in this topic (also called the "original post") + titleRaw: type: string - title: + category: + type: object + properties: + cid: + type: number + description: A category identifier + name: type: string - sizes: + icon: type: string - widgets: - type: object - properties: - footer: + slug: + type: string + parentCid: + type: number + description: The category identifier for the category that is the immediate ancestor of the current category + bgColor: + type: string + color: + type: string + image: + nullable: true + imageClass: + nullable: true + type: string + isMainPost: + type: boolean + isAdmin: + type: boolean + isGlobalMod: + type: boolean + allowPrivateGroups: + type: number + breadcrumbs: type: array items: type: object properties: - html: + text: type: string + url: + type: string + - $ref: 'components/schemas/CommonProps.yaml#/CommonProps' "/api/groups/{slug}/members": get: tags: - groups - summary: /api/user/{userslug}/push-notifications + summary: Get user group members parameters: - name: userslug in: path @@ -16071,64 +11865,12 @@ paths: content: application/json: schema: - type: object - properties: - loggedIn: - type: boolean - relative_path: - type: string - template: - type: object - properties: - name: - type: string - account/push-notifications: - type: boolean - url: - type: string - bodyClass: - type: string - _header: - type: object - properties: - tags: - type: object - properties: - meta: - type: array - items: - type: object - properties: - name: - type: string - content: - type: string - noEscape: - type: boolean - property: - type: string - link: - type: array - items: - type: object - properties: - rel: - type: string - type: - type: string - href: - type: string - title: - type: string - sizes: - type: string - widgets: - type: object + allOf: + - type: object properties: - footer: + users: type: array - items: - type: object - properties: - html: - type: string + # TODO: Fix this, should have a user data object here.... + - $ref: 'components/schemas/Pagination.yaml#/Pagination' + - $ref: 'components/schemas/Breadcrumbs.yaml#/Breadcrumbs' + - $ref: 'components/schemas/CommonProps.yaml#/CommonProps'