import axios from 'axios' import { memo } from 'react' 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' const TorrentFunctions = memo( ({ hash, viewedFileList, playableFileList, name, title, setViewedFileList }) => { const latestViewedFileId = viewedFileList?.[viewedFileList?.length - 1] const latestViewedFile = playableFileList?.find(({ id }) => id === latestViewedFileId)?.path const isOnlyOnePlayableFile = playableFileList?.length === 1 const latestViewedFileData = latestViewedFile && ptt.parse(latestViewedFile) const dropTorrent = () => axios.post(torrentsHost(), { action: 'drop', hash }) const removeTorrentViews = () => 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 && ( <> {t('DownloadPlaylist')} {t('LatestFilePlayed')} {latestViewedFileData?.title}. {latestViewedFileData?.season && ( <> {' '} {t('Season')}: {latestViewedFileData?.season}. {t('Episode')}: {latestViewedFileData?.episode}. )} )} {t('TorrentState')} {t('Info')} {(isOnlyOnePlayableFile || !viewedFileList?.length) && ( )} ) }, () => true, ) export default TorrentFunctions