mirror of
https://github.com/VueTorrent/VueTorrent.git
synced 2024-11-28 13:08:53 +03:00
0.4.4 (#65)
This commit is contained in:
parent
e509d3b4a5
commit
80d1c1f6a0
14 changed files with 103 additions and 73 deletions
98
README.md
98
README.md
|
@ -6,80 +6,58 @@ The sleekest looking WEBUI for qBittorrent made with Vuejs!
|
|||
|
||||
## Screenshots
|
||||
|
||||
<p align="center">
|
||||
![Desktop screenshot](https://imgur.com/hpjuVYb.png)
|
||||
|
||||
<a href="https://imgur.com/hpjuVYb.png"><img src="https://imgur.com/hpjuVYb.png" title="Desktop" alt="Desktop Screenshot" ></a>
|
||||
| | | |
|
||||
| :--------------------------------: | :--------------------------------: | :--------------------------------: |
|
||||
| ![](https://imgur.com/Zcm98H3.png) | ![](https://imgur.com/OujrH0f.png) | ![](https://imgur.com/OkukwYY.png) |
|
||||
| ![](https://imgur.com/QYpNCXs.png) | ![](https://imgur.com/6j5wxhl.png) | ![](https://imgur.com/jnzDKjW.png) |
|
||||
|
||||
<p align="center">
|
||||
<img src="https://imgur.com/U3mes8r.png" width="300" alt="Mobile screenshot">
|
||||
</p>
|
||||
|
||||
| | | |
|
||||
| :------------------------------------------------------------------------------------------------: | :------------------------------------------------------------------------------------------------: | :------------------------------------------------------------------------------------------------: |
|
||||
| <img width="1604" alt="screen shot 2017-08-07 at 12 18 15 pm" src="https://imgur.com/Zcm98H3.png"> | <img width="1604" alt="screen shot 2017-08-07 at 12 18 15 pm" src="https://imgur.com/OujrH0f.png"> | <img width="1604" alt="screen shot 2017-08-07 at 12 18 15 pm" src="https://imgur.com/OkukwYY.png"> |
|
||||
| <img width="1604" alt="screen shot 2017-015 pm" src="https://imgur.com/QYpNCXs.png"> | <img width="1604" alt="screen shot 2017-08-07 at 12 18 15 pm" src="https://imgur.com/6j5wxhl.png"> | <img width="1604" alt="screen shot 2017-08-07 at 12 18 15 pm" src="https://imgur.com/jnzDKjW.png"> |
|
||||
|
||||
<p align="center">
|
||||
<a href="https://imgur.com/U3mes8r.png"><img src="https://imgur.com/U3mes8r.png" title="Desktop" width="300" alt="Mobile" >
|
||||
</a>
|
||||
</p>
|
||||
|
||||
|
||||
## Installation
|
||||
|
||||
- ### manual
|
||||
### manual
|
||||
|
||||
- Visit the releases page!
|
||||
- Visit the releases page!
|
||||
- Download the latest release.zip
|
||||
- Unzip this folder
|
||||
- Point your Alternate WEBUI location to the 'vuetorrent' folder
|
||||
|
||||
- Download the latest release.zip
|
||||
### 'automatic'
|
||||
|
||||
- Unzip this folder
|
||||
|
||||
- Point your Alternate WEBUI location to the 'vuetorrent' folder
|
||||
|
||||
- ### 'automatic'
|
||||
|
||||
- head over to the 'latest_release' branch
|
||||
- clone it
|
||||
- pull every once in a while
|
||||
- head over to the 'latest_release' branch
|
||||
- clone it
|
||||
- `git clone --single-branch --branch latest-release https://github.com/WDaan/VueTorrent.git`
|
||||
- pull every once in a while
|
||||
|
||||
## Development
|
||||
|
||||
- clone the repo
|
||||
|
||||
- npm install
|
||||
|
||||
- npm run serve
|
||||
|
||||
- docker-compose up -d (to start qbittorrent docker)
|
||||
- clone the repo
|
||||
- npm install
|
||||
- npm run serve
|
||||
- docker-compose up -d (to start qbittorrent docker)
|
||||
|
||||
## Features
|
||||
|
||||
- viewing sessions status ( down / upload speed, session uploaded / downloaded )
|
||||
|
||||
- adding / removing / pausing / resuming / renaming torrents
|
||||
|
||||
- selectively downloading torrents
|
||||
|
||||
- filtering powered by Fuse.js!
|
||||
|
||||
- mobile friendly! (can be installed as a PWA)
|
||||
|
||||
- torrent info / trackers / peers / content
|
||||
|
||||
- searching for new torrents straight from the WEBUI!
|
||||
|
||||
- changing the most common settings
|
||||
|
||||
- tag & category support
|
||||
|
||||
- viewing sessions status ( down / upload speed, session uploaded / downloaded )
|
||||
- adding / removing / pausing / resuming / renaming torrents
|
||||
- selectively downloading torrents
|
||||
- filtering powered by Fuse.js!
|
||||
- mobile friendly! (can be installed as a PWA)
|
||||
- torrent info / trackers / peers / content
|
||||
- searching for new torrents straight from the WEBUI!
|
||||
- changing the most common settings
|
||||
- tag & category support
|
||||
- Keyboard shortcuts!
|
||||
- select all torrents with ctrl+A
|
||||
- delete selected with delete button
|
||||
- select with ctrl+click or from right-click-menu (regular tap on mobile still works)
|
||||
- shift + click to select from one torrent until another
|
||||
|
||||
- select all torrents with ctrl+A
|
||||
- delete selected with delete button
|
||||
- select with ctrl+click or from right-click-menu (regular tap on mobile still works)
|
||||
- shift + click to select from one torrent until another
|
||||
- Which torrent properties are shown is configurable in the dashboard (for both busy and completed torrents)
|
||||
|
||||
- works on QBittorrent V4.2 and later
|
||||
- works on QBittorrent V4.2 and later
|
||||
|
||||
## Contributing
|
||||
|
||||
|
@ -87,14 +65,12 @@ I'll gladly accept help/pull requests & advice!
|
|||
|
||||
## Support
|
||||
|
||||
* Open up an issue 😛
|
||||
- Open up an issue 😛
|
||||
|
||||
[<img src="https://cdn.buymeacoffee.com/buttons/lato-blue.png" alt="drawing" width="180"/>](https://www.buymeacoffee.com/wdaan 'Buy me a coffee')
|
||||
<a href="https://www.buymeacoffee.com/wdaan"><img src="https://img.buymeacoffee.com/button-api/?text=Buy me a coffee&emoji=&slug=wdaan&button_colour=FFDD00&font_colour=000000&font_family=Arial&outline_colour=000000&coffee_colour=ffffff"></a>
|
||||
|
||||
## Credits
|
||||
|
||||
- Dashboard design heavily inspired by: '[Net Ninja - Vuetify](https://github.com/iamshaunjp/vuetify-playlist)'.
|
||||
|
||||
- This repo '[CzBiX qb-web ](https://github.com/CzBiX/qb-web)'
|
||||
|
||||
- Muertocaloh's [fork](https://github.com/muertocaloh/VueTorrent)
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
{
|
||||
"name": "vuetorrent",
|
||||
"version": "0.4.3",
|
||||
"version": "0.4.4",
|
||||
"private": true,
|
||||
"scripts": {
|
||||
"start" : "npm run serve",
|
||||
|
|
|
@ -45,6 +45,9 @@
|
|||
.sideborder.metadata {
|
||||
border-left: 4px solid #{$torrent-metadata};
|
||||
}
|
||||
.sideborder.moving {
|
||||
border-left: 4px solid #{$torrent-moving};
|
||||
}
|
||||
.v-chip.done {
|
||||
background: #{$torrent-done} !important;
|
||||
}
|
||||
|
@ -72,6 +75,9 @@
|
|||
.v-chip.metadata {
|
||||
background: #{$torrent-metadata} !important;
|
||||
}
|
||||
.v-chip.moving {
|
||||
background: #{$torrent-moving} !important;
|
||||
}
|
||||
.noselect {
|
||||
-webkit-touch-callout: none; /* iOS Safari */
|
||||
-webkit-user-select: none; /* Safari */
|
||||
|
@ -100,3 +106,14 @@
|
|||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
}
|
||||
|
||||
body {
|
||||
&::-webkit-scrollbar {
|
||||
width: 6px;
|
||||
}
|
||||
|
||||
&::-webkit-scrollbar-thumb {
|
||||
background: #E2E8F0;
|
||||
border-radius: 20px;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -131,7 +131,10 @@ export default {
|
|||
skip_checking: false,
|
||||
fileInputRules: [
|
||||
v => {
|
||||
const result = v.every(f => f.type === 'application/x-bittorrent' )
|
||||
const result = v.every(f => {
|
||||
if (f.type) return f.type === 'application/x-bittorrent'
|
||||
else return /^.*\.torrent$/.test(f.name)
|
||||
})
|
||||
return result ? result : 'One or more files is not a valid torrent'
|
||||
}
|
||||
],
|
||||
|
|
|
@ -82,6 +82,14 @@
|
|||
<p class="mb-2">{{ version }}</p>
|
||||
</v-col>
|
||||
</v-row>
|
||||
<v-row dense>
|
||||
<v-col cols="10" sm="10" md="11">
|
||||
<p class="subtitle-1">QBittorrent Version:</p>
|
||||
</v-col>
|
||||
<v-col cols="2" sm="2" md="1">
|
||||
<p class="mb-2">{{ Qbitversion }}</p>
|
||||
</v-col>
|
||||
</v-row>
|
||||
</v-container>
|
||||
</v-form>
|
||||
</div>
|
||||
|
@ -92,11 +100,13 @@
|
|||
|
||||
<script>
|
||||
import { mapState, mapGetters } from 'vuex'
|
||||
import qbit from '@/services/qbit'
|
||||
export default {
|
||||
name: 'General',
|
||||
data() {
|
||||
return {
|
||||
paginationSizes: [5, 15, 30, 50]
|
||||
paginationSizes: [5, 15, 30, 50],
|
||||
Qbitversion: 0
|
||||
}
|
||||
},
|
||||
computed: {
|
||||
|
@ -161,6 +171,14 @@ export default {
|
|||
version() {
|
||||
return this.getAppVersion()
|
||||
}
|
||||
},
|
||||
methods : {
|
||||
async fetchQbitVersion(){
|
||||
this.Qbitversion = await qbit.getAppVersion()
|
||||
}
|
||||
},
|
||||
created() {
|
||||
this.fetchQbitVersion()
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
<template>
|
||||
<v-card flat>
|
||||
<perfect-scrollbar>
|
||||
<v-card-text :style="{ minHeight: phoneLayout ? '' : '75vh'}">
|
||||
<v-card-text :style="{ minHeight: phoneLayout ? '' : '75vh', maxHeight: '75vh'}">
|
||||
<v-treeview
|
||||
v-model="selected"
|
||||
:items="fileTree"
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
<perfect-scrollbar>
|
||||
<v-card-text
|
||||
style="font-size: 1.1em"
|
||||
:style="{ minHeight: phoneLayout ? '' : '75vh'}"
|
||||
:style="{ minHeight: phoneLayout ? '' : '75vh', maxHeight: '75vh'}"
|
||||
>
|
||||
<v-simple-table>
|
||||
<tbody>
|
||||
|
|
|
@ -6,7 +6,7 @@
|
|||
:items="peers"
|
||||
:items-per-page="-1"
|
||||
:hide-default-footer="true"
|
||||
:style="{ minHeight: phoneLayout ? '' : '75vh'}"
|
||||
:style="{ minHeight: phoneLayout ? '' : '75vh', maxHeight: '75vh'}"
|
||||
>
|
||||
<template v-slot:item="row">
|
||||
<tr>
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
:headers="headers"
|
||||
:items="trackers"
|
||||
:hide-default-footer="true"
|
||||
:style="{ minHeight: phoneLayout ? '' : '75vh'}"
|
||||
:style="{ minHeight: phoneLayout ? '' : '75vh', maxHeight: '75vh'}"
|
||||
>
|
||||
<template v-slot:item="row">
|
||||
<tr>
|
||||
|
|
|
@ -62,7 +62,7 @@ export default {
|
|||
{ value: 'stalled', name: 'Stalled' },
|
||||
{ value: 'stalled_uploading', name: 'Stalled Uploading' },
|
||||
{ value: 'stalled_downloading', name: 'Stalled Downloading' },
|
||||
{ value: 'errored', name: 'Erorred' }
|
||||
{ value: 'errored', name: 'Errored' }
|
||||
],
|
||||
selectedState: { value: 'all', name: 'All' },
|
||||
selectedCategory: null
|
||||
|
|
|
@ -25,11 +25,10 @@
|
|||
<v-navigation-drawer
|
||||
app
|
||||
v-model="drawer"
|
||||
class="primary"
|
||||
class="primary drawer"
|
||||
style="position: fixed; height: 100%"
|
||||
disable-resize-watcher
|
||||
>
|
||||
<!--current download speeds -->
|
||||
<v-flex class="mt-3" v-if="status">
|
||||
<CurrentSpeed
|
||||
v-if="webuiSettings.showCurrentSpeed"
|
||||
|
@ -105,3 +104,16 @@ export default {
|
|||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="scss">
|
||||
#app > div > nav > nav > div.v-navigation-drawer__content {
|
||||
height: 95%;
|
||||
&::-webkit-scrollbar {
|
||||
width: 6px;
|
||||
}
|
||||
&::-webkit-scrollbar-thumb {
|
||||
background: #56718c;
|
||||
border-radius: 20px;
|
||||
}
|
||||
}
|
||||
</style>
|
|
@ -47,8 +47,9 @@ export default class Torrent {
|
|||
case 'checkingDL':
|
||||
case 'checkingUP':
|
||||
case 'checkingResumeData':
|
||||
case 'moving':
|
||||
return 'Checking'
|
||||
case 'moving':
|
||||
return 'Moving'
|
||||
case 'unknown':
|
||||
case 'missingFiles':
|
||||
return 'Fail'
|
||||
|
|
|
@ -12,6 +12,7 @@ class Qbit {
|
|||
|
||||
getAppVersion() {
|
||||
return this.axios.get('/app/version')
|
||||
.then(res => res.data)
|
||||
}
|
||||
|
||||
getApiVersion() {
|
||||
|
|
|
@ -7,6 +7,7 @@ $torrent-seeding: #26a69a;
|
|||
$torrent-checking: #ff7043;
|
||||
$torrent-stalled: #81c784;
|
||||
$torrent-metadata: #7e57c2;
|
||||
$torrent-moving: #ffaa2c;
|
||||
|
||||
:export {
|
||||
torrent-done-color: $torrent-done;
|
||||
|
@ -18,4 +19,5 @@ $torrent-metadata: #7e57c2;
|
|||
torrent-checking-color: $torrent-checking;
|
||||
torrent-stalled-color: $torrent-stalled;
|
||||
torrent-metadata-color: $torrent-metadata;
|
||||
torrent-moving-color: $torrent-moving;
|
||||
}
|
Loading…
Reference in a new issue