mirror of
https://github.com/Ernous/TorrServerJellyfin.git
synced 2025-12-19 21:46:11 +05:00
translate details view
This commit is contained in:
@@ -4,6 +4,7 @@ import { playlistTorrHost, torrentsHost, viewedHost } from 'utils/Hosts'
|
||||
import { CopyToClipboard } from 'react-copy-to-clipboard'
|
||||
import { Button } from '@material-ui/core'
|
||||
import ptt from 'parse-torrent-title'
|
||||
import { useTranslation } from 'react-i18next'
|
||||
|
||||
import { SmallLabel, MainSectionButtonGroup } from './style'
|
||||
import { SectionSubName } from '../style'
|
||||
@@ -19,18 +20,20 @@ const TorrentFunctions = memo(
|
||||
axios.post(viewedHost(), { action: 'rem', hash, file_index: -1 }).then(() => setViewedFileList())
|
||||
const fullPlaylistLink = `${playlistTorrHost()}/${encodeURIComponent(name || title || 'file')}.m3u?link=${hash}&m3u`
|
||||
const partialPlaylistLink = `${fullPlaylistLink}&fromlast`
|
||||
// eslint-disable-next-line no-unused-vars
|
||||
const { t } = useTranslation()
|
||||
|
||||
return (
|
||||
<>
|
||||
{!isOnlyOnePlayableFile && !!viewedFileList?.length && (
|
||||
<>
|
||||
<SmallLabel>Download Playlist</SmallLabel>
|
||||
<SmallLabel>{t('DownloadPlaylist')}</SmallLabel>
|
||||
<SectionSubName mb={10}>
|
||||
<strong>Latest file played:</strong> {latestViewedFileData?.title}.
|
||||
<strong>{t('LatestFilePlayed')}</strong> {latestViewedFileData?.title}.
|
||||
{latestViewedFileData?.season && (
|
||||
<>
|
||||
{' '}
|
||||
Season: {latestViewedFileData?.season}. Episode: {latestViewedFileData?.episode}.
|
||||
{t('Season')}: {latestViewedFileData?.season}. {t('Episode')}: {latestViewedFileData?.episode}.
|
||||
</>
|
||||
)}
|
||||
</SectionSubName>
|
||||
@@ -38,39 +41,39 @@ const TorrentFunctions = memo(
|
||||
<MainSectionButtonGroup>
|
||||
<a style={{ textDecoration: 'none' }} href={fullPlaylistLink}>
|
||||
<Button style={{ width: '100%' }} variant='contained' color='primary' size='large'>
|
||||
full
|
||||
{t('Full')}
|
||||
</Button>
|
||||
</a>
|
||||
|
||||
<a style={{ textDecoration: 'none' }} href={partialPlaylistLink}>
|
||||
<Button style={{ width: '100%' }} variant='contained' color='primary' size='large'>
|
||||
from latest file
|
||||
{t('FromLatestFile')}
|
||||
</Button>
|
||||
</a>
|
||||
</MainSectionButtonGroup>
|
||||
</>
|
||||
)}
|
||||
<SmallLabel mb={10}>Torrent State</SmallLabel>
|
||||
<SmallLabel mb={10}>{t('TorrentState')}</SmallLabel>
|
||||
<MainSectionButtonGroup>
|
||||
<Button onClick={() => removeTorrentViews()} variant='contained' color='primary' size='large'>
|
||||
remove views
|
||||
{t('RemoveViews')}
|
||||
</Button>
|
||||
<Button onClick={() => dropTorrent()} variant='contained' color='primary' size='large'>
|
||||
reset torrent
|
||||
{t('DropTorrent')}
|
||||
</Button>
|
||||
</MainSectionButtonGroup>
|
||||
<SmallLabel mb={10}>Info</SmallLabel>
|
||||
<SmallLabel mb={10}>{t('Info')}</SmallLabel>
|
||||
<MainSectionButtonGroup>
|
||||
{(isOnlyOnePlayableFile || !viewedFileList?.length) && (
|
||||
<a style={{ textDecoration: 'none' }} href={fullPlaylistLink}>
|
||||
<Button style={{ width: '100%' }} variant='contained' color='primary' size='large'>
|
||||
download playlist
|
||||
{t('DownloadPlaylist')}
|
||||
</Button>
|
||||
</a>
|
||||
)}
|
||||
<CopyToClipboard text={hash}>
|
||||
<Button variant='contained' color='primary' size='large'>
|
||||
copy hash
|
||||
{t('CopyHash')}
|
||||
</Button>
|
||||
</CopyToClipboard>
|
||||
</MainSectionButtonGroup>
|
||||
|
||||
@@ -7,6 +7,7 @@ import axios from 'axios'
|
||||
import { viewedHost } from 'utils/Hosts'
|
||||
import { GETTING_INFO, IN_DB } from 'torrentStates'
|
||||
import CircularProgress from '@material-ui/core/CircularProgress'
|
||||
import { useTranslation } from 'react-i18next'
|
||||
|
||||
import { useUpdateCache, useGetSettings } from './customHooks'
|
||||
import DialogHeader from './DialogHeader'
|
||||
@@ -44,6 +45,9 @@ export default function DialogTorrentDetailsContent({ closeDialog, torrent }) {
|
||||
const [seasonAmount, setSeasonAmount] = useState(null)
|
||||
const [selectedSeason, setSelectedSeason] = useState()
|
||||
|
||||
// eslint-disable-next-line no-unused-vars
|
||||
const { t } = useTranslation()
|
||||
|
||||
const {
|
||||
poster,
|
||||
hash,
|
||||
@@ -115,7 +119,7 @@ export default function DialogTorrentDetailsContent({ closeDialog, torrent }) {
|
||||
<>
|
||||
<DialogHeader
|
||||
onClose={closeDialog}
|
||||
title={isDetailedCacheView ? 'Detailed Cache View' : 'Torrent Details'}
|
||||
title={isDetailedCacheView ? t('DetailedCacheView') : t('TorrentDetails')}
|
||||
{...(isDetailedCacheView && { onBack: () => setIsDetailedCacheView(false) })}
|
||||
/>
|
||||
|
||||
@@ -171,7 +175,7 @@ export default function DialogTorrentDetailsContent({ closeDialog, torrent }) {
|
||||
|
||||
<CacheSection>
|
||||
<SectionHeader>
|
||||
<SectionTitle mb={20}>Buffer</SectionTitle>
|
||||
<SectionTitle mb={20}>{t('Buffer')}</SectionTitle>
|
||||
{!settings?.PreloadBuffer && (
|
||||
<SectionSubName>Enable "Preload Buffer" in settings to change buffer size</SectionSubName>
|
||||
)}
|
||||
@@ -190,16 +194,16 @@ export default function DialogTorrentDetailsContent({ closeDialog, torrent }) {
|
||||
size='large'
|
||||
onClick={() => setIsDetailedCacheView(true)}
|
||||
>
|
||||
Detailed cache view
|
||||
{t('DetailedCacheView')}
|
||||
</Button>
|
||||
</CacheSection>
|
||||
|
||||
<TorrentFilesSection>
|
||||
<SectionTitle mb={20}>Torrent Content</SectionTitle>
|
||||
<SectionTitle mb={20}>{t('TorrentContent')}</SectionTitle>
|
||||
|
||||
{seasonAmount?.length > 1 && (
|
||||
<>
|
||||
<SectionSubName mb={7}>Select Season</SectionSubName>
|
||||
<SectionSubName mb={7}>{t('SelectSeason')}</SectionSubName>
|
||||
<ButtonGroup style={{ marginBottom: '30px' }} color='primary'>
|
||||
{seasonAmount.map(season => (
|
||||
<Button
|
||||
@@ -212,7 +216,9 @@ export default function DialogTorrentDetailsContent({ closeDialog, torrent }) {
|
||||
))}
|
||||
</ButtonGroup>
|
||||
|
||||
<SectionTitle mb={20}>Season {selectedSeason}</SectionTitle>
|
||||
<SectionTitle mb={20}>
|
||||
{t('Season')} {selectedSeason}
|
||||
</SectionTitle>
|
||||
</>
|
||||
)}
|
||||
|
||||
|
||||
@@ -1,52 +1,68 @@
|
||||
{
|
||||
"About": "About",
|
||||
"AddFromLink": "Add from Link",
|
||||
"AddRetrackers": "Add retrackers",
|
||||
"Buffer": "Buffer",
|
||||
"CacheSize": "Cache Size (Megabytes)",
|
||||
"Cancel": "Cancel",
|
||||
"Close": "Close",
|
||||
"CloseServer": "Close Server",
|
||||
"ConnectionsLimit": "Connections Limit",
|
||||
"CopyHash": "Copy Hash",
|
||||
"Delete": "Delete",
|
||||
"DeleteTorrent?": "Delete Torrent?",
|
||||
"DeleteTorrents?": "Delete All Torrents?",
|
||||
"DetailedCacheView": "Detailed Cache View",
|
||||
"Details": "Details",
|
||||
"DhtConnectionLimit": "DHT Connection Limit",
|
||||
"DHT": "DHT (Distributed Hash Table)",
|
||||
"PEX": "PEX (Peer Exchange)",
|
||||
"TCP": "TCP (Transmission Control Protocol)",
|
||||
"Upload": "Upload (not recommended to disable)",
|
||||
"UPNP": "UPnP (Universal Plug and Play)",
|
||||
"UTP": "μTP (Micro Transport Protocol)",
|
||||
"DhtConnectionLimit": "DHT Connection Limit",
|
||||
"Donate": "Donate",
|
||||
"DontAddRetrackers": "Don't add retrackers",
|
||||
"DownloadPlaylist": "Download Playlist",
|
||||
"DownloadRateLimit": "Download Rate Limit (Kilobytes)",
|
||||
"Drop": "Drop",
|
||||
"DropTorrent": "Reset Torrent",
|
||||
"EnableIPv6": "IPv6",
|
||||
"Episode": "Episode",
|
||||
"ForceEncrypt": "Force Encrypt Headers",
|
||||
"FromLatestFile": "From Latest File",
|
||||
"Full": "Full",
|
||||
"Host": "Host",
|
||||
"Info": "Info",
|
||||
"LatestFilePlayed": "Latest file played:",
|
||||
"Name": "Name",
|
||||
"OK": "OK",
|
||||
"Peers": "Peers",
|
||||
"PeersListenPort": "Peers Listen Port",
|
||||
"PEX": "PEX (Peer Exchange)",
|
||||
"PlaylistAll": "Playlist All",
|
||||
"PreloadBuffer": "Preload Buffer",
|
||||
"ReaderReadAHead": "Reader Read Ahead (5-100%)",
|
||||
"RemoveAll": "Remove All",
|
||||
"RemoveCacheOnDrop": "Remove Cache from Disk on Drop Torrent",
|
||||
"RemoveCacheOnDropDesc": "If disabled, remove cache on delete torrent.",
|
||||
"RetrackersMode": "Retrackers Mode",
|
||||
"DontAddRetrackers": "Don't add retrackers",
|
||||
"AddRetrackers": "Add retrackers",
|
||||
"RemoveRetrackers": "Remove retrackers",
|
||||
"RemoveViews": "Remove View States",
|
||||
"ReplaceRetrackers": "Replace retrackers",
|
||||
"RetrackersMode": "Retrackers Mode",
|
||||
"Save": "Save",
|
||||
"Season": "Season",
|
||||
"SelectSeason": "Select Season",
|
||||
"Settings": "Settings",
|
||||
"Size": "Size",
|
||||
"SpecialThanks": "Special Thanks:",
|
||||
"Speed": "Speed",
|
||||
"TCP": "TCP (Transmission Control Protocol)",
|
||||
"ThanksToEveryone": "Thanks to everyone who tested and helped.",
|
||||
"TorrentContent": "Torrent Content",
|
||||
"TorrentDetails": "Torrent Details",
|
||||
"TorrentDisconnectTimeout": "Torrent Disconnect Timeout",
|
||||
"TorrentsSavePath": "Torrents Save Path",
|
||||
"TorrentState": "Torrent State",
|
||||
"Upload": "Upload (not recommended to disable)",
|
||||
"UploadFile": "Upload File",
|
||||
"UploadRateLimit": "Upload Rate Limit (Kilobytes)",
|
||||
"UseDisk": "Use Disk"
|
||||
"UPNP": "UPnP (Universal Plug and Play)",
|
||||
"UseDisk": "Use Disk",
|
||||
"UTP": "μTP (Micro Transport Protocol)"
|
||||
}
|
||||
@@ -1,52 +1,68 @@
|
||||
{
|
||||
"About": "О сервере",
|
||||
"AddFromLink": "Добавить",
|
||||
"AddRetrackers": "Добавлять",
|
||||
"Buffer": "Буфер",
|
||||
"CacheSize": "Размер кеша (Мегабайты)",
|
||||
"Cancel": "Отмена",
|
||||
"Close": "Закрыть",
|
||||
"CloseServer": "Выкл. сервер",
|
||||
"ConnectionsLimit": "Торрент-соединения (рек. 20-25)",
|
||||
"CopyHash": "Скопировать хеш",
|
||||
"Delete": "Удалить",
|
||||
"DeleteTorrent?": "Удалить торрент?",
|
||||
"DeleteTorrents?": "Удалить все торренты?",
|
||||
"Details": "Подробно",
|
||||
"DhtConnectionLimit": "Лимит подключений DHT",
|
||||
"DetailedCacheView": "Информация о заполнении кеша",
|
||||
"Details": "Инфо",
|
||||
"DHT": "DHT (Distributed Hash Table)",
|
||||
"PEX": "PEX (Peer Exchange)",
|
||||
"TCP": "TCP (Transmission Control Protocol)",
|
||||
"Upload": "Отдача (не рекомендуется отключать)",
|
||||
"UPNP": "UPnP (Universal Plug and Play)",
|
||||
"UTP": "μTP (Micro Transport Protocol)",
|
||||
"DhtConnectionLimit": "Лимит подключений DHT",
|
||||
"Donate": "Поддержка",
|
||||
"DontAddRetrackers": "Ничего не делать",
|
||||
"DownloadPlaylist": "Скачать плейлист",
|
||||
"DownloadRateLimit": "Ограничение скорости загрузки (Килобайты)",
|
||||
"Drop": "Отключить",
|
||||
"Drop": "Сброс",
|
||||
"DropTorrent": "Сбросить торрент",
|
||||
"EnableIPv6": "IPv6",
|
||||
"Episode": "Серия",
|
||||
"ForceEncrypt": "Принудительное шифрование заголовков",
|
||||
"FromLatestFile": "C последнего файла",
|
||||
"Full": "Полный",
|
||||
"Host": "Хост",
|
||||
"Info": "Инфо",
|
||||
"LatestFilePlayed": "Последний воспроизведенный файл:",
|
||||
"Name": "Имя",
|
||||
"OK": "OK",
|
||||
"Peers": "Подкл./Пиры",
|
||||
"PeersListenPort": "Порт для входящих подключений",
|
||||
"PEX": "PEX (Peer Exchange)",
|
||||
"PlaylistAll": "Плейлист всех",
|
||||
"PreloadBuffer": "Наполнять кеш перед началом воспроизведения",
|
||||
"ReaderReadAHead": "Кеш предзагрузки (5-100%, рек. 95%)",
|
||||
"RemoveAll": "Удалить все",
|
||||
"RemoveCacheOnDrop": "Очищать кеш на диске при отключении торрента",
|
||||
"RemoveCacheOnDropDesc": "Если отключено, кэш очищается при удалении торрента.",
|
||||
"RetrackersMode": "Ретрекеры",
|
||||
"DontAddRetrackers": "Ничего не делать",
|
||||
"AddRetrackers": "Добавлять",
|
||||
"RemoveRetrackers": "Удалять",
|
||||
"RemoveViews": "Удалить отметки просмотра",
|
||||
"ReplaceRetrackers": "Заменять",
|
||||
"RetrackersMode": "Ретрекеры",
|
||||
"Save": "Сохранить",
|
||||
"Season": "Сезон",
|
||||
"SelectSeason": "Выбор сезона",
|
||||
"Settings": "Настройки",
|
||||
"Size": "Размер",
|
||||
"SpecialThanks": "Отдельное спасибо:",
|
||||
"Speed": "Скорость",
|
||||
"TCP": "TCP (Transmission Control Protocol)",
|
||||
"ThanksToEveryone": "Спасибо всем, кто тестировал и помогал!",
|
||||
"TorrentContent": "Содержимое торрента",
|
||||
"TorrentDetails": "Информация о торренте",
|
||||
"TorrentDisconnectTimeout": "Тайм-аут отключения торрента (секунды)",
|
||||
"TorrentsSavePath": "Путь хранения кеша",
|
||||
"TorrentState": "Состояние",
|
||||
"Upload": "Отдача (не рекомендуется отключать)",
|
||||
"UploadFile": "Загрузить файл",
|
||||
"UploadRateLimit": "Ограничение скорости отдачи (Килобайты)",
|
||||
"UseDisk": "Использовать кеш на диске"
|
||||
"UPNP": "UPnP (Universal Plug and Play)",
|
||||
"UseDisk": "Использовать кеш на диске",
|
||||
"UTP": "μTP (Micro Transport Protocol)"
|
||||
}
|
||||
Reference in New Issue
Block a user