From 9791b149fe1ce142a8d0c82cfec681054a82e231 Mon Sep 17 00:00:00 2001 From: Bulat Kurbanov Date: Fri, 8 Apr 2022 12:57:01 +0300 Subject: [PATCH] Add genres --- src/bots/factory/bots/approved/format.ts | 12 +++++++++++- .../factory/bots/approved/services/book_library.ts | 9 ++++++++- 2 files changed, 19 insertions(+), 2 deletions(-) diff --git a/src/bots/factory/bots/approved/format.ts b/src/bots/factory/bots/approved/format.ts index db38a2f..1266d99 100644 --- a/src/bots/factory/bots/approved/format.ts +++ b/src/bots/factory/bots/approved/format.ts @@ -1,4 +1,4 @@ -import { AuthorBook, TranslatorBook, Book, Author, Sequence, BookAuthor, DetailBook } from './services/book_library'; +import { AuthorBook, TranslatorBook, Book, Author, Sequence, BookAuthor, DetailBook, Genre } from './services/book_library'; type AllBookTypes = Book | AuthorBook | TranslatorBook; @@ -95,6 +95,16 @@ export function formatDetailBook(book: DetailBook): string { addEmptyLine(); } + if (book.genres.length > 0) { + response.push('Жанры:'); + + const pushGenre = (genre: Genre) => response.push( + `🗂 ${genre.description}` + ); + book.genres.forEach(pushGenre); + addEmptyLine(); + } + response.push("Скачать: ") book.available_types.forEach(a_type => response.push(`📥 ${a_type}: /d_${a_type}_${book.id}`)); diff --git a/src/bots/factory/bots/approved/services/book_library.ts b/src/bots/factory/bots/approved/services/book_library.ts index 982eb24..4f35af2 100644 --- a/src/bots/factory/bots/approved/services/book_library.ts +++ b/src/bots/factory/bots/approved/services/book_library.ts @@ -45,12 +45,18 @@ export interface TranslatorBook extends BaseBook { } -export interface Book extends AuthorBook { +export interface Book extends BaseBook { authors: BookAuthor[]; translators: BookAuthor[]; } +export interface Genre { + id: number; + description: string; +} + + export interface Source { id: number; name: string; @@ -59,6 +65,7 @@ export interface Source { export interface DetailBook extends Book { sequences: Sequence[]; + genres: Genre[]; source: Source; remote_id: number; is_deleted: boolean;