Spaces:
Running
Running
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 |