Spaces:
Sleeping
Sleeping
| openapi: 3.0.0 | |
| info: | |
| title: StihiRus Reader API | |
| description: Provides access to author data and poems from stihirus.ru via the stihirus-reader library. | |
| version: 1.2.0 | |
| servers: | |
| - url: / | |
| description: Current server | |
| paths: | |
| /author/{identifier}: | |
| get: | |
| summary: Get Author Data and Poems | |
| description: Fetches author profile information and optionally poems based on the page parameter. | |
| parameters: | |
| - name: identifier | |
| in: path | |
| required: true | |
| description: Author identifier (numeric ID or string username/URL part). | |
| schema: | |
| type: string # Use string even for ID to simplify path handling | |
| example: "oreh-orehov" | |
| - name: page | |
| in: query | |
| required: false | |
| description: Controls poem fetching. `null` or empty = all poems, `0` = profile only, `N > 0` = specific page N. Defaults to `null`. | |
| schema: | |
| type: string # Allow 'null', '0', or positive integers as strings | |
| example: "1" | |
| - name: delay | |
| in: query | |
| required: false | |
| description: Delay in ms between requests when fetching all pages (`page=null`). Defaults to 500ms. | |
| schema: | |
| type: integer | |
| format: int32 | |
| minimum: 0 | |
| example: 500 | |
| responses: | |
| '200': | |
| description: Successful response with author data. | |
| content: | |
| application/json: | |
| schema: | |
| $ref: '#/components/schemas/StihirusSuccessResponse' | |
| '400': | |
| description: Invalid input parameter (identifier, page, or delay). | |
| content: | |
| application/json: | |
| schema: | |
| $ref: '#/components/schemas/StihirusErrorResponse' | |
| '404': | |
| description: Author not found. | |
| content: | |
| application/json: | |
| schema: | |
| $ref: '#/components/schemas/StihirusErrorResponse' | |
| '500': | |
| description: Internal server error or error fetching/parsing data from stihirus.ru. | |
| content: | |
| application/json: | |
| schema: | |
| $ref: '#/components/schemas/StihirusErrorResponse' | |
| '502': | |
| description: Bad Gateway (HTTP error from stihirus.ru). | |
| content: | |
| application/json: | |
| schema: | |
| $ref: '#/components/schemas/StihirusErrorResponse' | |
| '503': | |
| description: Service Unavailable (Network error connecting to stihirus.ru). | |
| content: | |
| application/json: | |
| schema: | |
| $ref: '#/components/schemas/StihirusErrorResponse' | |
| /author/{identifier}/filters: | |
| get: | |
| summary: Get Author Poem Filters | |
| description: Fetches available filter options (rubrics, dates) for an author's poems. | |
| parameters: | |
| - name: identifier | |
| in: path | |
| required: true | |
| description: Author identifier (numeric ID or string username/URL part). | |
| schema: | |
| type: string | |
| example: "14260" | |
| responses: | |
| '200': | |
| description: Successful response with filter data. | |
| content: | |
| application/json: | |
| schema: | |
| $ref: '#/components/schemas/StihirusFiltersSuccessResponse' | |
| '400': | |
| description: Invalid identifier format. | |
| content: | |
| application/json: | |
| schema: | |
| $ref: '#/components/schemas/StihirusErrorResponse' | |
| '404': | |
| description: Author not found. | |
| content: | |
| application/json: | |
| schema: | |
| $ref: '#/components/schemas/StihirusErrorResponse' | |
| '500': | |
| description: Internal server error or error fetching/parsing data from stihirus.ru. | |
| content: | |
| application/json: | |
| schema: | |
| $ref: '#/components/schemas/StihirusErrorResponse' | |
| '502': | |
| description: Bad Gateway (HTTP error from stihirus.ru). | |
| content: | |
| application/json: | |
| schema: | |
| $ref: '#/components/schemas/StihirusErrorResponse' | |
| '503': | |
| description: Service Unavailable (Network error connecting to stihirus.ru). | |
| content: | |
| application/json: | |
| schema: | |
| $ref: '#/components/schemas/StihirusErrorResponse' | |
| components: | |
| schemas: | |
| StihirusError: | |
| type: object | |
| properties: | |
| code: | |
| type: integer | |
| format: int32 | |
| description: HTTP status or custom error code. | |
| message: | |
| type: string | |
| description: Error message. | |
| originalMessage: | |
| type: string | |
| description: Optional underlying error message. | |
| required: | |
| - code | |
| - message | |
| StihirusErrorResponse: | |
| type: object | |
| properties: | |
| status: | |
| type: string | |
| enum: [error] | |
| error: | |
| $ref: '#/components/schemas/StihirusError' | |
| required: | |
| - status | |
| - error | |
| StihirusAuthorStats: | |
| type: object | |
| properties: | |
| poems: | |
| type: integer | |
| description: Total number of poems (from profile HTML). | |
| reviewsSent: | |
| type: integer | |
| description: Number of reviews sent. | |
| reviewsReceived: | |
| type: integer | |
| description: Number of reviews received. | |
| required: | |
| - poems | |
| - reviewsSent | |
| - reviewsReceived | |
| StihirusCollectionInfo: | |
| type: object | |
| properties: | |
| name: | |
| type: string | |
| description: Collection name. | |
| url: | |
| type: string | |
| format: url | |
| description: Full URL to the collection. | |
| required: | |
| - name | |
| - url | |
| StihirusPoemRubric: | |
| type: object | |
| properties: | |
| name: | |
| type: string | |
| description: Rubric name. | |
| url: | |
| type: string | |
| format: url | |
| nullable: true | |
| description: Full URL to the rubric page, or null. | |
| required: | |
| - name | |
| - url | |
| StihirusPoem: | |
| type: object | |
| properties: | |
| id: | |
| type: integer | |
| format: int64 | |
| description: Unique ID. | |
| title: | |
| type: string | |
| description: Title (or '***'). | |
| text: | |
| type: string | |
| description: Full text. | |
| created: | |
| type: string | |
| description: Creation date/time string (e.g., "27.03.2025 20:19"). | |
| rubric: | |
| $ref: '#/components/schemas/StihirusPoemRubric' | |
| collection: | |
| type: string | |
| nullable: true | |
| description: Author's collection name, or null. | |
| rating: | |
| type: integer | |
| description: Likes count. | |
| commentsCount: | |
| type: integer | |
| description: Comments count. | |
| imageUrl: | |
| type: string | |
| format: url | |
| nullable: true | |
| description: URL to poem's image, or null. | |
| hasCertificate: | |
| type: boolean | |
| description: Whether it has a certificate. | |
| required: | |
| - id | |
| - title | |
| - text | |
| - created | |
| - rubric | |
| - collection | |
| - rating | |
| - commentsCount | |
| - imageUrl | |
| - hasCertificate | |
| StihirusAuthorData: | |
| type: object | |
| properties: | |
| authorId: | |
| type: integer | |
| format: int64 | |
| username: | |
| type: string | |
| profileUrl: | |
| type: string | |
| format: url | |
| canonicalUsername: | |
| type: string | |
| description: | |
| type: string | |
| avatarUrl: | |
| type: string | |
| format: url | |
| nullable: true | |
| headerUrl: | |
| type: string | |
| format: url | |
| nullable: true | |
| status: | |
| type: string | |
| lastVisit: | |
| type: string | |
| stats: | |
| $ref: '#/components/schemas/StihirusAuthorStats' | |
| collections: | |
| type: array | |
| items: | |
| $ref: '#/components/schemas/StihirusCollectionInfo' | |
| poems: | |
| type: array | |
| items: | |
| $ref: '#/components/schemas/StihirusPoem' | |
| required: | |
| - authorId | |
| - username | |
| - profileUrl | |
| - canonicalUsername | |
| - description | |
| - avatarUrl | |
| - headerUrl | |
| - status | |
| - lastVisit | |
| - stats | |
| - collections | |
| - poems | |
| StihirusSuccessResponse: | |
| type: object | |
| properties: | |
| status: | |
| type: string | |
| enum: [success] | |
| data: | |
| $ref: '#/components/schemas/StihirusAuthorData' | |
| required: | |
| - status | |
| - data | |
| StihirusFilterRubric: | |
| type: object | |
| properties: | |
| id: | |
| type: integer | |
| description: Rubric ID used for filtering. | |
| name: | |
| type: string | |
| description: Display name of the rubric. | |
| count: | |
| type: integer | |
| description: Number of poems in this rubric. | |
| required: | |
| - id | |
| - name | |
| - count | |
| StihirusFilterDate: | |
| type: object | |
| properties: | |
| year: | |
| type: integer | |
| description: Year used for filtering. | |
| month: | |
| type: integer | |
| description: Month used for filtering (1-12). | |
| count: | |
| type: integer | |
| description: Number of poems published in this month/year. | |
| required: | |
| - year | |
| - month | |
| - count | |
| StihirusAuthorFiltersData: | |
| type: object | |
| properties: | |
| rubrics: | |
| type: array | |
| items: | |
| $ref: '#/components/schemas/StihirusFilterRubric' | |
| dates: | |
| type: array | |
| items: | |
| $ref: '#/components/schemas/StihirusFilterDate' | |
| required: | |
| - rubrics | |
| - dates | |
| StihirusFiltersSuccessResponse: | |
| type: object | |
| properties: | |
| status: | |
| type: string | |
| enum: [success] | |
| data: | |
| $ref: '#/components/schemas/StihirusAuthorFiltersData' | |
| required: | |
| - status | |
| - data |