mirror of
https://github.com/StuffAnThings/qbit_manage.git
synced 2024-12-27 02:11:10 +08:00
Add docker functionality
This commit is contained in:
parent
f0af005a87
commit
57e98f0f8a
10 changed files with 244 additions and 2 deletions
21
.dockerignore
Normal file
21
.dockerignore
Normal file
|
@ -0,0 +1,21 @@
|
|||
**/dist
|
||||
**/build
|
||||
*.spec
|
||||
**/__pycache__
|
||||
/.vscode
|
||||
**/log
|
||||
README.md
|
||||
LICENSE
|
||||
.gitignore
|
||||
.dockerignore
|
||||
.git
|
||||
.github
|
||||
.vscode
|
||||
*.psd
|
||||
config/**/*
|
||||
config
|
||||
Dockerfile
|
||||
venv
|
||||
.idea
|
||||
test.py
|
||||
!config/config.yml.sample
|
1
.github/FUNDING.yml
vendored
Normal file
1
.github/FUNDING.yml
vendored
Normal file
|
@ -0,0 +1 @@
|
|||
github: bobokun
|
38
.github/workflows/develop.yml
vendored
Normal file
38
.github/workflows/develop.yml
vendored
Normal file
|
@ -0,0 +1,38 @@
|
|||
name: Docker Develop Release
|
||||
|
||||
on:
|
||||
push:
|
||||
branches: [ develop ]
|
||||
pull_request:
|
||||
branches: [ develop ]
|
||||
|
||||
jobs:
|
||||
|
||||
docker-develop:
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
|
||||
- name: Check Out Repo
|
||||
uses: actions/checkout@v2
|
||||
with:
|
||||
ref: develop
|
||||
|
||||
- name: Login to Docker Hub
|
||||
uses: docker/login-action@v1
|
||||
with:
|
||||
username: ${{ secrets.DOCKER_HUB_USERNAME }}
|
||||
password: ${{ secrets.DOCKER_HUB_ACCESS_TOKEN }}
|
||||
|
||||
- name: Set up Docker Buildx
|
||||
id: buildx
|
||||
uses: docker/setup-buildx-action@v1
|
||||
|
||||
- name: Build and push
|
||||
id: docker_build
|
||||
uses: docker/build-push-action@v2
|
||||
with:
|
||||
context: ./
|
||||
file: ./Dockerfile
|
||||
push: true
|
||||
tags: ${{ secrets.DOCKER_HUB_USERNAME }}/qbit_manage:develop
|
36
.github/workflows/latest.yml
vendored
Normal file
36
.github/workflows/latest.yml
vendored
Normal file
|
@ -0,0 +1,36 @@
|
|||
name: Docker Latest Release
|
||||
|
||||
on:
|
||||
push:
|
||||
branches: [ master ]
|
||||
pull_request:
|
||||
branches: [ master ]
|
||||
|
||||
jobs:
|
||||
|
||||
docker-latest:
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
|
||||
- name: Check Out Repo
|
||||
uses: actions/checkout@v2
|
||||
|
||||
- name: Login to Docker Hub
|
||||
uses: docker/login-action@v1
|
||||
with:
|
||||
username: ${{ secrets.DOCKER_HUB_USERNAME }}
|
||||
password: ${{ secrets.DOCKER_HUB_ACCESS_TOKEN }}
|
||||
|
||||
- name: Set up Docker Buildx
|
||||
id: buildx
|
||||
uses: docker/setup-buildx-action@v1
|
||||
|
||||
- name: Build and push
|
||||
id: docker_build
|
||||
uses: docker/build-push-action@v2
|
||||
with:
|
||||
context: ./
|
||||
file: ./Dockerfile
|
||||
push: true
|
||||
tags: ${{ secrets.DOCKER_HUB_USERNAME }}/qbit_manage:latest
|
18
.github/workflows/tag.yml
vendored
Normal file
18
.github/workflows/tag.yml
vendored
Normal file
|
@ -0,0 +1,18 @@
|
|||
name: Tag
|
||||
|
||||
on:
|
||||
push:
|
||||
branches: [ master ]
|
||||
|
||||
jobs:
|
||||
tag-new-versions:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
with:
|
||||
token: ${{ secrets.PAT }}
|
||||
fetch-depth: 2
|
||||
- uses: salsify/action-detect-and-tag-new-version@v1.0.3
|
||||
with:
|
||||
version-command: |
|
||||
cat VERSION
|
39
.github/workflows/version.yml
vendored
Normal file
39
.github/workflows/version.yml
vendored
Normal file
|
@ -0,0 +1,39 @@
|
|||
name: Docker Version Release
|
||||
|
||||
on:
|
||||
create:
|
||||
tags:
|
||||
- v*
|
||||
|
||||
jobs:
|
||||
|
||||
docker-develop:
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
|
||||
- name: Check Out Repo
|
||||
uses: actions/checkout@v2
|
||||
|
||||
- name: Login to Docker Hub
|
||||
uses: docker/login-action@v1
|
||||
with:
|
||||
username: ${{ secrets.DOCKER_HUB_USERNAME }}
|
||||
password: ${{ secrets.DOCKER_HUB_ACCESS_TOKEN }}
|
||||
|
||||
- name: Set up Docker Buildx
|
||||
id: buildx
|
||||
uses: docker/setup-buildx-action@v1
|
||||
|
||||
- name: Get the version
|
||||
id: get_version
|
||||
run: echo ::set-output name=VERSION::${GITHUB_REF/refs\/tags\//}
|
||||
|
||||
- name: Build and push
|
||||
id: docker_build
|
||||
uses: docker/build-push-action@v2
|
||||
with:
|
||||
context: ./
|
||||
file: ./Dockerfile
|
||||
push: true
|
||||
tags: ${{ secrets.DOCKER_HUB_USERNAME }}/qbit_manage:${{ steps.get_version.outputs.VERSION }}
|
3
.gitignore
vendored
3
.gitignore
vendored
|
@ -1,3 +1,4 @@
|
|||
*.log*
|
||||
*.yml
|
||||
.vscode/settings.json
|
||||
.vscode/*
|
||||
!.github/**
|
10
Dockerfile
Normal file
10
Dockerfile
Normal file
|
@ -0,0 +1,10 @@
|
|||
FROM python:3.9-slim
|
||||
COPY requirements.txt /
|
||||
RUN echo "**** install python packages ****" \
|
||||
&& pip3 install --no-cache-dir --upgrade --requirement /requirements.txt \
|
||||
&& apt-get autoremove -y \
|
||||
&& apt-get clean \
|
||||
&& rm -rf /requirements.txt /tmp/* /var/tmp/* /var/lib/apt/lists/*
|
||||
COPY . /
|
||||
VOLUME /config
|
||||
ENTRYPOINT ["python3","qbit_manage.py"]
|
78
config.yml.sample
Normal file
78
config.yml.sample
Normal file
|
@ -0,0 +1,78 @@
|
|||
# qBittorrent parameters
|
||||
qbt:
|
||||
host: "localhost:8080"
|
||||
user: "username"
|
||||
pass: "password"
|
||||
|
||||
directory:
|
||||
# Do not remove these
|
||||
# Cross-seed var: </your/path/here/> #Output directory of cross-seed
|
||||
# root_dir var: </your/path/here/> #Root downloads directory used to check for orphaned files and used in RecycleBin
|
||||
# <OPTIONAL> remote_dir var: </your/path/here/> # Path of docker host mapping of root_dir. Must be set if you are using docker!
|
||||
cross_seed: "/your/path/here/"
|
||||
root_dir: "/data/torrents/"
|
||||
remote_dir: "/mnt/user/data/torrents/"
|
||||
|
||||
# Category/Pathing Parameters
|
||||
cat:
|
||||
# <Category Name> : <save_path> #Path of your save directory. Can be a keyword or full path
|
||||
movies: "/data/torrents/Movies"
|
||||
tv: "TV"
|
||||
|
||||
# Tag Parameters
|
||||
tags:
|
||||
# <Tracker URL Keyword>: <Tag Name>
|
||||
animebytes.tv: AnimeBytes
|
||||
avistaz: Avistaz
|
||||
beyond-hd: Beyond-HD
|
||||
blutopia: Blutopia
|
||||
cartoonchaos: CartoonChaos
|
||||
digitalcore: DigitalCore
|
||||
gazellegames: GGn
|
||||
hdts: HDTorrents
|
||||
landof.tv: BroadcasTheNet
|
||||
myanonamouse: MaM
|
||||
passthepopcorn: PassThePopcorn
|
||||
privatehd: PrivateHD
|
||||
tleechreload: TorrentLeech
|
||||
torrentdb: TorrentDB
|
||||
torrentleech: TorrentLeech
|
||||
tv-vault: TV-Vault
|
||||
|
||||
#Tag Movies/Series that are not hard linked
|
||||
nohardlinks:
|
||||
# Mandatory to fill out directory parameter above to use this function (root_dir/remote_dir)
|
||||
# This variable should be set to your category name of your completed movies/completed series in qbit. Acceptable variable can be any category you would like to tag if there are no hardlinks found
|
||||
movies-completed:
|
||||
#<OPTIONAL> exclude_tags var: Will exclude the following tags when searching through the category.
|
||||
exclude_tags:
|
||||
- Beyond-HD
|
||||
- AnimeBytes
|
||||
- MaM
|
||||
#<OPTIONAL> cleanup var: WARNING!! Setting this as true Will remove and delete contents of any torrents that are in paused state and has the NoHL tag
|
||||
cleanup: false
|
||||
#<OPTIONAL> max_ratio var: Will set the torrent Maximum share ratio until torrent is stopped from seeding/uploading
|
||||
max_ratio: 4.0
|
||||
#<OPTIONAL> seeding time var: Will set the torrent Maximum seeding time (min) until torrent is stopped from seeding
|
||||
max_seeding_time: 86400
|
||||
|
||||
#Can have additional categories set with separate ratio/seeding times defined.
|
||||
series-completed:
|
||||
#<OPTIONAL> exclude_tags var: Will exclude the following tags when searching through the category.
|
||||
exclude_tags:
|
||||
- Beyond-HD
|
||||
- BroadcasTheNet
|
||||
#<OPTIONAL> cleanup var: WARNING!! Setting this as true Will remove and delete contents of any torrents that are in paused state and has the NoHL tag
|
||||
cleanup: false
|
||||
#<OPTIONAL> max_ratio var: Will set the torrent Maximum share ratio until torrent is stopped from seeding/uploading
|
||||
max_ratio: 4.0
|
||||
#<OPTIONAL> seeding time var: Will set the torrent Maximum seeding time (min) until torrent is stopped from seeding
|
||||
max_seeding_time: 86400
|
||||
|
||||
#Recycle Bin method of deletion will move files into the recycle bin instead of directly deleting them in qbit
|
||||
recyclebin:
|
||||
enabled: true
|
||||
#<OPTIONAL> empty_after_x_days var: Will automatically remove all files and folders in recycle bin after x days.
|
||||
# If this variable is not defined it, the RecycleBin will never be emptied.
|
||||
# Setting this variable to 0 will delete files immediately.
|
||||
empty_after_x_days: 60
|
|
@ -285,7 +285,7 @@ def recheck():
|
|||
logger.info(f'\n - Resuming {new_tag} - {torrent.name}')
|
||||
torrent.resume()
|
||||
#Recheck
|
||||
elif torrent.progress == 0 and torrentdict[torrent.name]['is_complete']:
|
||||
elif torrent.progress == 0 and torrentdict[torrent.name]['is_complete'] and 'checking' not in torrent.state:
|
||||
if args.dry_run == 'dry_run':
|
||||
logger.dryrun(f'\n - Not Rechecking {new_tag} - {torrent.name}')
|
||||
else:
|
||||
|
|
Loading…
Reference in a new issue