diff --git a/CHANGELOG.md b/CHANGELOG.md index b5dbd096..cfcf5201 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,26 +2,32 @@ ## [2.13.0](https://github.com/VueTorrent/VueTorrent/compare/v2.12.0...v2.13.0) (2024-09-19) - ### Features -* **backend:** Auto-configure on load ([#1904](https://github.com/VueTorrent/VueTorrent/issues/1904)) ([909d26a](https://github.com/VueTorrent/VueTorrent/commit/909d26a568de7d5d2d0bac5701a8cb3acb77316f)) -* responsive search bar placement ([#1883](https://github.com/VueTorrent/VueTorrent/issues/1883)) ([8b9a3a3](https://github.com/VueTorrent/VueTorrent/commit/8b9a3a36ce9197392c84757363d3340444e565fd)) -* **settings:** Add pagination position configuration ([#1870](https://github.com/VueTorrent/VueTorrent/issues/1870)) ([b82c124](https://github.com/VueTorrent/VueTorrent/commit/b82c1245f14c220c6a58812390c9016eff4e116f)) -* tooltip on torrent state indicator for table view ([#1890](https://github.com/VueTorrent/VueTorrent/issues/1890)) ([c6722b1](https://github.com/VueTorrent/VueTorrent/commit/c6722b17b54808e081d407ed411d1b546f3c195d)) - +- **backend:** Auto-configure on load ([#1904](https://github.com/VueTorrent/VueTorrent/issues/1904)) + ([909d26a](https://github.com/VueTorrent/VueTorrent/commit/909d26a568de7d5d2d0bac5701a8cb3acb77316f)) +- responsive search bar placement ([#1883](https://github.com/VueTorrent/VueTorrent/issues/1883)) + ([8b9a3a3](https://github.com/VueTorrent/VueTorrent/commit/8b9a3a36ce9197392c84757363d3340444e565fd)) +- **settings:** Add pagination position configuration ([#1870](https://github.com/VueTorrent/VueTorrent/issues/1870)) + ([b82c124](https://github.com/VueTorrent/VueTorrent/commit/b82c1245f14c220c6a58812390c9016eff4e116f)) +- tooltip on torrent state indicator for table view ([#1890](https://github.com/VueTorrent/VueTorrent/issues/1890)) + ([c6722b1](https://github.com/VueTorrent/VueTorrent/commit/c6722b17b54808e081d407ed411d1b546f3c195d)) ### Bug Fixes -* Increase menu overflow threshold ([#1887](https://github.com/VueTorrent/VueTorrent/issues/1887)) ([d02a29b](https://github.com/VueTorrent/VueTorrent/commit/d02a29b409611ced6201506e5fcea1453aad24a3)) -* **RSS:** "mark as read" on feed not working ([#1897](https://github.com/VueTorrent/VueTorrent/issues/1897)) ([c290202](https://github.com/VueTorrent/VueTorrent/commit/c290202e21e5609be207564daee27ea93431a9bb)) - +- Increase menu overflow threshold ([#1887](https://github.com/VueTorrent/VueTorrent/issues/1887)) + ([d02a29b](https://github.com/VueTorrent/VueTorrent/commit/d02a29b409611ced6201506e5fcea1453aad24a3)) +- **RSS:** "mark as read" on feed not working ([#1897](https://github.com/VueTorrent/VueTorrent/issues/1897)) + ([c290202](https://github.com/VueTorrent/VueTorrent/commit/c290202e21e5609be207564daee27ea93431a9bb)) ### Improvements -* Disallow robots indexing of the WebUI to reduce exposure ([#1903](https://github.com/VueTorrent/VueTorrent/issues/1903)) ([b829924](https://github.com/VueTorrent/VueTorrent/commit/b8299245817b77f1c0826ed3cd33f7d9c7e25132)) -* **Login:** Improve error message ([#1901](https://github.com/VueTorrent/VueTorrent/issues/1901)) ([7c3fb61](https://github.com/VueTorrent/VueTorrent/commit/7c3fb619f92c7726974f0fe0ed37f80138793afa)) -* **router:** Add catch-all route ([#1886](https://github.com/VueTorrent/VueTorrent/issues/1886)) ([e7abdb2](https://github.com/VueTorrent/VueTorrent/commit/e7abdb2ab382604f3b69672abf57f42ce9a58346)) +- Disallow robots indexing of the WebUI to reduce exposure ([#1903](https://github.com/VueTorrent/VueTorrent/issues/1903)) + ([b829924](https://github.com/VueTorrent/VueTorrent/commit/b8299245817b77f1c0826ed3cd33f7d9c7e25132)) +- **Login:** Improve error message ([#1901](https://github.com/VueTorrent/VueTorrent/issues/1901)) + ([7c3fb61](https://github.com/VueTorrent/VueTorrent/commit/7c3fb619f92c7726974f0fe0ed37f80138793afa)) +- **router:** Add catch-all route ([#1886](https://github.com/VueTorrent/VueTorrent/issues/1886)) + ([e7abdb2](https://github.com/VueTorrent/VueTorrent/commit/e7abdb2ab382604f3b69672abf57f42ce9a58346)) ## [2.12.0](https://github.com/VueTorrent/VueTorrent/compare/v2.11.2...v2.12.0) (2024-08-18) diff --git a/docker-compose.yml b/docker-compose.yml index 01cdd64e..95b2dbc3 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -15,5 +15,5 @@ services: - ./docker/downloads:/downloads ports: - '8080:8080' - - "6881:6881" - - "6881:6881/udp" + - '6881:6881' + - '6881:6881/udp' diff --git a/index.html b/index.html index d1e1a14b..f14555a3 100644 --- a/index.html +++ b/index.html @@ -12,7 +12,7 @@ - + VueTorrent diff --git a/src/components/Dashboard/Views/Table/TableView.vue b/src/components/Dashboard/Views/Table/TableView.vue index 8d0a1739..0a06d679 100644 --- a/src/components/Dashboard/Views/Table/TableView.vue +++ b/src/components/Dashboard/Views/Table/TableView.vue @@ -65,15 +65,11 @@ const getTorrentRowColorClass = (torrent: TorrentType) => [isTorrentSelected(tor @touchstart="$emit('startPress', $event.touches.item(0)!, torrent)" @click="$emit('onTorrentClick', $event, torrent)" @dblclick="$emit('onTorrentDblClick', torrent)"> - - {{$t(`torrent.state.${getTorrentStateValue(torrent.state)}`)}} + {{ $t(`torrent.state.${getTorrentStateValue(torrent.state)}`) }} diff --git a/src/locales/cs.json b/src/locales/cs.json index 9a302151..ffd60d45 100644 --- a/src/locales/cs.json +++ b/src/locales/cs.json @@ -245,6 +245,8 @@ }, "torrent": { "properties": { + "avg_download_speed": "Průměrná rychlost stahování", + "avg_upload_speed": "Průměrná rychlost nahrávání", "priority": "Priorita" } } diff --git a/src/locales/en.json b/src/locales/en.json index 0a119727..50755648 100644 --- a/src/locales/en.json +++ b/src/locales/en.json @@ -215,8 +215,8 @@ "availability": "Availability", "available_peers": "Peers (swarm)", "available_seeds": "Seeds (swarm)", - "avg_download_speed": "Avg DL Speed", - "avg_upload_speed": "Avg UL Speed", + "avg_download_speed": "Avg. DL Speed", + "avg_upload_speed": "Avg. UL Speed", "basename_content_path": "Content Path (basename)", "basename_download_path": "Download Path (basename)", "basename_save_path": "Save Path (basename)", @@ -245,7 +245,7 @@ "num_incomplete": "Peers (swarm)", "num_leechs": "Peers (connected)", "num_seeds": "Seeds (connected)", - "priority": "Queue Position", + "priority": "Queue position", "progress": "Progress", "ratio": "Ratio", "ratio_limit": "Ratio Limit", @@ -1300,7 +1300,7 @@ "num_leechs": "Peers (connected)", "num_seeds": "Seeds (connected)", "peers": "Peers", - "priority": "Queue", + "priority": "Queue Pos.", "progress": "Progress", "progress_bar": "Progress Bar", "ratio": "Ratio", @@ -1328,24 +1328,24 @@ "upload_speed": "UL Speed" }, "state": { - "checking_disk": "🔍 Checking Disk Files", - "checking_resume_data": "🔍 Checking Resume Data", - "dl_forced": "📥 Downloading [F]", + "checking_disk": "\uD83D\uDD0D Checking Disk Files", + "checking_resume_data": "\uD83D\uDD0D Checking Resume Data", + "dl_forced": "\uD83D\uDCE5 Downloading [F]", "dl_paused": "⏸️ Paused", "dl_queued": "⏳ Queued (DL)", - "dl_stalled": "🕔 Stalled", - "downloading": "📥 Downloading", + "dl_stalled": "\uD83D\uDD54 Stalled", + "downloading": "\uD83D\uDCE5 Downloading", "error": "❌ Error", - "forced_meta_download": "📝 Metadata [F]", - "meta_download": "📝 Metadata", + "forced_meta_download": "\uD83D\uDCDD Metadata [F]", + "meta_download": "\uD83D\uDCDD Metadata", "missing_files": "⚠️ Missing Files", - "moving": "🚚 Moving", - "ul_forced": "📤 Uploading [F]", + "moving": "\uD83D\uDE9A Moving", + "ul_forced": "\uD83D\uDCE4 Uploading [F]", "ul_paused": "✅ Done", "ul_queued": "⏳ Queued (UP)", - "ul_stalled": "🌱 Seeding", + "ul_stalled": "\uD83C\uDF31 Seeding", "unknown": "❓ Unknown", - "uploading": "📤 Uploading" + "uploading": "\uD83D\uDCE4 Uploading" } }, "units": { diff --git a/src/locales/hu.json b/src/locales/hu.json index e5b87f38..dafc5aab 100644 --- a/src/locales/hu.json +++ b/src/locales/hu.json @@ -1194,7 +1194,7 @@ "reannounce": "Következő újrahirdetés", "save_path": "Mentési Útvonal", "seeding_time": "Seedelési idő", - "seeding_time_limit": "Seedelési időkorlát", + "seeding_time_limit": "Seedelési idő korlát", "seeds": "Seedek", "seen_complete": "Teljesként Látva", "seq_dl": "Szekvenciális Letöltés", diff --git a/src/locales/it.json b/src/locales/it.json index 39bad200..ee530166 100644 --- a/src/locales/it.json +++ b/src/locales/it.json @@ -505,7 +505,11 @@ }, "torrent": { "properties": { - "priority": "Priorità" + "avg_download_speed": "Velocità DL Media", + "avg_upload_speed": "Velocità UL Media", + "priority": "Priorità", + "seeding_time": "Tempo di Seeding", + "seeding_time_limit": "Limite Tempo di Seeding" } } } diff --git a/src/locales/ko.json b/src/locales/ko.json index 2786d9c0..bc7896a4 100644 --- a/src/locales/ko.json +++ b/src/locales/ko.json @@ -1162,6 +1162,7 @@ "ratio_limit": "비율 제한", "save_path": "저장 경로", "seeding_time": "시딩 시간", + "seeding_time_limit": "시딩 시간 제한", "seeds": "시드", "seen_complete": "완료됨", "seq_dl": "순차 다운로드", diff --git a/src/locales/pt-BR.json b/src/locales/pt-BR.json index fe98d9b0..f700155e 100644 --- a/src/locales/pt-BR.json +++ b/src/locales/pt-BR.json @@ -157,7 +157,36 @@ "save_path": "Definir caminho de salvamento", "seq_dl": "Download sequencial", "title": "Avançado" + }, + "copy": { + "magnet": "Magnético", + "name": "Nome", + "title": "Copiar" + }, + "info": "Exibir informações", + "priority": { + "decrease": "Diminuir", + "increase": "Aumentar", + "title": "Definir posição da fila" + }, + "speed_limit": { + "download": "Definir limite do download" + }, + "tags": { + "disabled_title": "Sem tags", + "remove_all": "Remover todos" + }, + "top": { + "delete": "Excluir", + "force_resume": "Forçar início", + "pause": "Pausar", + "resume": "Iniciar" } + }, + "searchInputLabel": "Buscar", + "sortBy": { + "availability": "Disponibilidade", + "category": "Categoria" } }, "navbar": { diff --git a/src/locales/ru.json b/src/locales/ru.json index 09993c1b..a288e0b4 100644 --- a/src/locales/ru.json +++ b/src/locales/ru.json @@ -981,7 +981,8 @@ "title": "Параметры", "vuetorrent": { "general": { - "backendUrl": "Серверный URL", + "backendUrl": "Переопределение серверного URL", + "backendUrlHint": "Оставить пустым для автоматического определения", "canvasRefreshThreshold": "Количество фрагментов, при котором отключается обновление их визуализации", "canvasRenderThreshold": "Количество фрагментов для отключения их визуализации", "check_new": "Проверить обновление", @@ -1286,7 +1287,7 @@ "global_speed": "Общая скорость", "global_volume": "Отдано/загружено всего", "hash": "Хэш", - "inactive_seeding_time_limit": "Ограничение по времени неактивного сидирования", + "inactive_seeding_time_limit": "Ограничению по времени неактивного сидирования", "infohash_v1": "Хеш-сумма v1", "infohash_v2": "Хеш-сумма v2", "is_private": "Приватный торрент", @@ -1306,7 +1307,7 @@ "reannounce": "Будет переанонсировано в", "save_path": "Путь сохранения", "seeding_time": "Время сидирования", - "seeding_time_limit": "Ограничение времени сидирования", + "seeding_time_limit": "Ограничению времени сидирования", "seeds": "Сиды", "seen_complete": "Замечен целиком", "seq_dl": "Последовательная загрузка", @@ -1328,22 +1329,22 @@ "state": { "checking_disk": "Проверка файлов на диске", "checking_resume_data": "Возобновление", - "dl_forced": "[П] Загрузка", - "dl_paused": "На паузе", - "dl_queued": "Очередь (Загр)", - "dl_stalled": "Простаивает", - "downloading": "Загрузка", - "error": "Ошибка", - "forced_meta_download": "[П] Метадата", - "meta_download": "Метадата", - "missing_files": "Нет файлов", - "moving": "Перемещение", - "ul_forced": "[П] Раздача", - "ul_paused": "Завершено", - "ul_queued": "Очередь (Разд)", - "ul_stalled": "Сидирование", - "unknown": "Неизвестно", - "uploading": "Раздача" + "dl_forced": "\uD83D\uDCE5 Загрузка [П]", + "dl_paused": "⏸️ Пауза", + "dl_queued": "⏳ Очередь (Загр)", + "dl_stalled": "\uD83D\uDD54 Простаивает", + "downloading": "\uD83D\uDCE5 Загрузка", + "error": "❌ Ошибка", + "forced_meta_download": "\uD83D\uDCDD Метадата [П]", + "meta_download": "\uD83D\uDCDD Метадата", + "missing_files": "⚠️ Нет файлов", + "moving": "\uD83D\uDE9A Перемещение", + "ul_forced": "\uD83D\uDCE4 Раздача [П]", + "ul_paused": "✅ Завершено", + "ul_queued": "⏳ Очередь (Разд)", + "ul_stalled": "\uD83C\uDF31 Сидирование", + "unknown": "❓ Неизвестно", + "uploading": "\uD83D\uDCE4 Раздача" } }, "units": { diff --git a/src/locales/uk.json b/src/locales/uk.json index 7df77e85..ee40f10e 100644 --- a/src/locales/uk.json +++ b/src/locales/uk.json @@ -284,6 +284,12 @@ } }, "torrent": { + "properties": { + "avg_download_speed": "Середня швидкість завантаження", + "avg_upload_speed": "Середня швидкість роздачі", + "seeding_time": "Час сідування", + "seeding_time_limit": "Обмеження часу сідування" + }, "state": { "checking_resume_data": "Перевірка для відновлення", "dl_forced": "[Ф] Завантаження", diff --git a/src/services/qbit/MockProvider.ts b/src/services/qbit/MockProvider.ts index 33b93666..4da674ba 100644 --- a/src/services/qbit/MockProvider.ts +++ b/src/services/qbit/MockProvider.ts @@ -1,11 +1,4 @@ -import { - ConnectionStatus, - FilePriority, - LogType, - PieceState, - TorrentOperatingMode, - TorrentState -} from '@/constants/qbit' +import { ConnectionStatus, FilePriority, LogType, PieceState, TorrentOperatingMode, TorrentState } from '@/constants/qbit' import { ContentLayout, ProxyType, ResumeDataStorageType, StopCondition } from '@/constants/qbit/AppPreferences' import type { ApplicationVersion, @@ -54,8 +47,7 @@ export default class MockProvider implements IProvider { .fill('') .map((_, i) => (i + 1).toString(16).padStart(40, '0')) - private constructor() { - } + private constructor() {} static getInstance(): MockProvider { if (!MockProvider.instance) { @@ -95,7 +87,7 @@ export default class MockProvider implements IProvider { infohash_v1: hash, infohash_v2: '', last_activity: last_activity.getTime() / 1000, - magnet_uri: `magnet:?xt=urn:btih:${ hash }&dn=${ name }&tr=${ tracker }`, + magnet_uri: `magnet:?xt=urn:btih:${hash}&dn=${name}&tr=${tracker}`, max_inactive_seeding_time: -1, max_ratio: -1, max_seeding_time: -1, @@ -406,7 +398,7 @@ export default class MockProvider implements IProvider { result: { data: 'Ok.', status: 200, - statusText: 'OK', + statusText: 'OK' } as AxiosResponse }) }