From de8264d0e636128d0d9d03a125ef426d68a07f8c Mon Sep 17 00:00:00 2001 From: "Kayashov.SM" Date: Wed, 10 Sep 2025 23:14:49 +0400 Subject: [PATCH] =?UTF-8?q?=D0=BF=D1=80=D0=B0=D0=B2=D0=BA=D0=B8=20=D0=BE?= =?UTF-8?q?=D1=88=D0=B8=D0=B1=D0=BE=D0=BA=20=D0=B8=20=D0=B2=D0=BD=D0=B5?= =?UTF-8?q?=D1=88=D0=BD=D0=B5=D0=B3=D0=BE=20=D0=B2=D0=B8=D0=B4=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/CardCompact.js | 24 +++++++--------------- src/components/RecommendationModal.js | 29 ++++++++++----------------- src/components/SceletonCompact.js | 16 --------------- src/components/SkeletonCompact.js | 18 +++++++++++++++++ src/contexts/client.js | 23 +++++++++++++++++++++ src/pages/HomePage.js | 9 ++++----- src/pages/RecommendationPage.js | 19 ++++++++---------- src/pages/SearchPage.js | 16 ++++++--------- 8 files changed, 77 insertions(+), 77 deletions(-) delete mode 100644 src/components/SceletonCompact.js create mode 100644 src/components/SkeletonCompact.js create mode 100644 src/contexts/client.js diff --git a/src/components/CardCompact.js b/src/components/CardCompact.js index 1043050..7ed593c 100644 --- a/src/components/CardCompact.js +++ b/src/components/CardCompact.js @@ -1,33 +1,23 @@ import React from 'react'; import {Card} from 'react-bootstrap'; -const descriptionDraw = (text) => { - return ( - <> - {text}
- - ) -} - const CardCompact = ({item}) => { - console.log(item); const image = item?.images?.length > 0 ? item.images[0]?.remoteUrl : null; const rating = item.ratings?.imdb?.value ?? null; const status = (item.monitored || item.hasFile) ? ( item.hasFile ? "Статус: Загружен" : "Статус: Загружается" ) : null; return ( - - {/**/} + {item.title} - - {descriptionDraw(`Год: ${item.year}`)} - {descriptionDraw(`Рейтинг: ${rating}`)} - {item.sizeOnDisk ? descriptionDraw(`Размер: ${(item.sizeOnDisk / 1000000000).toFixed(2)} Gb`) : null} - {status ? descriptionDraw(status) : null} - + +
Год: {item.year}
+
Рейтинг: {rating}
+ {status ?
{status}
: null} + {item.sizeOnDisk ?
Размер: {(item.sizeOnDisk / 1000000000).toFixed(2)} Gb
: null} +
); diff --git a/src/components/RecommendationModal.js b/src/components/RecommendationModal.js index 9681c10..5f6ad97 100644 --- a/src/components/RecommendationModal.js +++ b/src/components/RecommendationModal.js @@ -2,6 +2,7 @@ import React, {useEffect, useState} from 'react'; import {Button, Col, Container, FormCheck, FormSelect, Modal, Row} from 'react-bootstrap'; import axios from "axios"; import {useToast} from "../hooks/useToast"; +import {radarr} from "../contexts/client"; const movieMonitor = [ { @@ -22,24 +23,18 @@ const RecommendationModal = ({show, handleClose, item, serial, handleSave}) => { const {addToast} = useToast(); useEffect(() => { - axios.get(`${process.env.REACT_APP_RADARR_HOST}/api/v3/qualityprofile`, - { - headers: { - 'X-Api-Key': `${process.env.REACT_APP_RADARR_API_KEY}` - } - }) + radarr().get("api/v3/qualityprofile") .then((r) => { setMovieQuality(r.data) }) - .catch(console.error); + .catch((err) => addToast(err, 'danger')); }, []); const handleSubmit = () => { const request = !serial ? createMovieRequest : null; request() .then(res => { - axios.post(`${process.env.REACT_APP_RADARR_HOST}/api/v3/movie`, res, - {headers: {'X-Api-Key': `${process.env.REACT_APP_RADARR_API_KEY}`}}) + radarr().post("api/v3/movie", res) .then(() => handleSave(item, serial)) .catch((err) => addToast(err, 'danger')); }) @@ -47,11 +42,11 @@ const RecommendationModal = ({show, handleClose, item, serial, handleSave}) => { } const createMovieRequest = async () => { - if(!monitor) { + if (!monitor) { // eslint-disable-next-line no-throw-literal throw 'Проверьте пункт отслеживания'; } - if(!quality) { + if (!quality) { // eslint-disable-next-line no-throw-literal throw 'Необходимо указать качество'; } @@ -64,18 +59,16 @@ const RecommendationModal = ({show, handleClose, item, serial, handleSave}) => { monitor: monitor, searchForMovie: true } - const folders = await axios.get(`${process.env.REACT_APP_RADARR_HOST}/api/v3/rootFolder`, - {headers: {'X-Api-Key': `${process.env.REACT_APP_RADARR_API_KEY}`}}); + const folders = await radarr().get("api/v3/rootFolder"); request.rootFolderPath = folders.data.find((d) => d.path.includes(film ? "film" : "mult")).path; - const tags = await axios.get(`${process.env.REACT_APP_RADARR_HOST}/api/v3/tag`, - {headers: {'X-Api-Key': `${process.env.REACT_APP_RADARR_API_KEY}`}}); + const tags = await radarr().get("api/v3/tag"); request.tags = tags.data.filter((t) => t.label === (film ? "film" : "mult")).map((t) => t.id) return request; } - if(!item) { + if (!item) { return null; } @@ -90,7 +83,7 @@ const RecommendationModal = ({show, handleClose, item, serial, handleSave}) => { {item.title}/ -
+

{item.overview}

@@ -126,7 +119,7 @@ const RecommendationModal = ({show, handleClose, item, serial, handleSave}) => { -
+
diff --git a/src/components/SceletonCompact.js b/src/components/SceletonCompact.js deleted file mode 100644 index 0d0dd2c..0000000 --- a/src/components/SceletonCompact.js +++ /dev/null @@ -1,16 +0,0 @@ -export function SceletonCompact() { - return ( -