2.1.4 #13
12 changed files with 84 additions and 22 deletions
11
CHANGELOG.md
11
CHANGELOG.md
|
@ -9,6 +9,17 @@ to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|||
|
||||
- Add support for more sites
|
||||
|
||||
## [2.1.4] - 2022-05-29
|
||||
|
||||
### Fixed
|
||||
|
||||
- Docker container now works again
|
||||
- Fixed cron in docker container
|
||||
|
||||
### Changed
|
||||
|
||||
- Docker container scheduling is now more practical
|
||||
|
||||
## [2.1.3] - 2022-05-29
|
||||
|
||||
### Fixed
|
||||
|
|
|
@ -7,7 +7,7 @@ LABEL build_version="Version:- ${VERSION} Build-date:- ${BUILD_DATE}"
|
|||
LABEL maintainer="Ivan Schaller"
|
||||
|
||||
# manga-dlp version
|
||||
ENV MDLP_VERSION=2.1.3
|
||||
ENV MDLP_VERSION=2.1.4
|
||||
|
||||
# install packages
|
||||
RUN \
|
||||
|
@ -28,7 +28,6 @@ RUN \
|
|||
/var/tmp/*
|
||||
|
||||
|
||||
# copy files to container
|
||||
# copy files to container
|
||||
COPY docker/rootfs /
|
||||
COPY mangadlp/ /app/mangadlp/
|
||||
|
|
|
@ -7,7 +7,7 @@ LABEL build_version="Version:- ${VERSION} Build-date:- ${BUILD_DATE}"
|
|||
LABEL maintainer="Ivan Schaller"
|
||||
|
||||
# manga-dlp version
|
||||
ENV MDLP_VERSION=2.1.3
|
||||
ENV MDLP_VERSION=2.1.4
|
||||
|
||||
# install packages
|
||||
RUN \
|
||||
|
@ -28,7 +28,6 @@ RUN \
|
|||
/var/tmp/*
|
||||
|
||||
|
||||
# copy files to container
|
||||
# copy files to container
|
||||
COPY docker/rootfs /
|
||||
COPY mangadlp/ /app/mangadlp/
|
||||
|
|
|
@ -33,6 +33,8 @@ docker run -e PUID=<userid> -e PGID=<groupid>
|
|||
|
||||
## Run commands in container
|
||||
|
||||
> You don't need to use the full path of manga-dlp.py because `/app` already is the working directory
|
||||
|
||||
You can simply use the `docker exec` command to run the scripts like normal.
|
||||
|
||||
```sh
|
||||
|
@ -41,21 +43,54 @@ docker exec <container name> python3 manga-dlp.py <options>
|
|||
|
||||
## Run your own schedule
|
||||
|
||||
The default config runs manga-dlp.py once a day at 03:00 and fetches every chapter of the mangas listed in the file
|
||||
mangas.txt in the root directory of this repo.
|
||||
The default config runs `manga-dlp.py` once a day at 12:00 and fetches every chapter of the mangas listed in the file
|
||||
`mangas.txt` in the root directory of this repo.
|
||||
|
||||
To use your own schedule you need to mount (override) the default crontab or add new ones to the cron directory.
|
||||
#### The default schedule:
|
||||
|
||||
```sh
|
||||
#!/bin/bash
|
||||
|
||||
python3 /app/manga-dlp.py \
|
||||
--path /app/downloads \
|
||||
--read /app/mangas.txt \
|
||||
--chapters all \
|
||||
--wait 2
|
||||
```
|
||||
|
||||
To use your own schedule you need to mount (override) the default schedule or add new ones to the crontab.
|
||||
|
||||
> Don't forget to add the cron entries for every new schedule
|
||||
|
||||
```yml
|
||||
# docker-compose.yml
|
||||
volumes:
|
||||
- ./crontab:/etc/cron.d/01_manga-dlp # overwrites the default one
|
||||
- ./crontab2:/etc/cron.d/02_something # adds a new one
|
||||
- ./crontab:/etc/cron.d/mangadlp # overwrites the default crontab
|
||||
- ./crontab2:/etc/cron.d/something # adds a new one crontab file
|
||||
- ./schedule1:/app/schedules/daily # overwrites the default schedule
|
||||
- ./schedule2:/app/schedules/weekly # adds a new schedule
|
||||
```
|
||||
|
||||
```sh
|
||||
docker run -v ./crontab:/etc/cron.d/01_manga-dlp # overwrites the default one
|
||||
docker run -v ./crontab2:/etc/cron.d/02_something # adds a new one
|
||||
docker run -v ./crontab:/etc/cron.d/mangadlp # overwrites the default crontab
|
||||
docker run -v ./crontab2:/etc/cron.d/something # adds a new one crontab file
|
||||
docker run -v ./schedule1:/app/schedules/daily # overwrites the default schedule
|
||||
docker run -v ./schedule2:/app/schedules/weekly # adds a new schedule
|
||||
```
|
||||
|
||||
#### The default crontab file:
|
||||
|
||||
```sh
|
||||
SHELL=/bin/bash
|
||||
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
|
||||
|
||||
# default crontab to run manga-dlp once a day
|
||||
# and get all (new) chapters of the mangas in
|
||||
# the file mangas.txt
|
||||
# "/proc/1/fd/1 2>&1" is to show the logs in the container
|
||||
# "s6-setuidgid abc" is used to set the permissions
|
||||
|
||||
0 12 * * * root s6-setuidgid abc /app/schedules/daily > /proc/1/fd/1 2>&1
|
||||
```
|
||||
|
||||
## Add mangas to mangas.txt
|
||||
|
@ -77,15 +112,15 @@ docker run -v ./mangas.txt:/app/mangas.txt
|
|||
|
||||
Per default as in the script, it downloads everything to "downloads" in the scripts root directory. This data does not
|
||||
persist with container recreation, so you need to mount it. This is already done in the quick start section. If you want
|
||||
to change the path of the host, simply change `./media/mangas/` to a path of your choice.
|
||||
to change the path of the host, simply change `./downloads/` to a path of your choice.
|
||||
|
||||
```yml
|
||||
# docker-compose.yml
|
||||
volumes:
|
||||
- ./media/mangas/:/app/downloads
|
||||
- ./downloads/:/app/downloads
|
||||
```
|
||||
|
||||
```sh
|
||||
docker run -v ./media/mangas/:/app/downloads
|
||||
docker run -v ./downloads/:/app/downloads
|
||||
```
|
||||
|
||||
|
|
|
@ -12,6 +12,8 @@ services:
|
|||
volumes:
|
||||
- ./downloads/:/app/downloads/ # default manga download directory
|
||||
- ./mangas.txt:/app/mangas.txt # default file for manga links to download
|
||||
#- ./crontab:/etc/cron.d/mangadlp # path to default crontab
|
||||
#- ./schedule:/app/schedules/daily # path to the default schedule which is run daily
|
||||
environment:
|
||||
- TZ=Europe/Zurich
|
||||
# - PUID= # custom userid - defaults to 4444
|
||||
|
|
7
docker/rootfs/app/schedules/daily
Executable file
7
docker/rootfs/app/schedules/daily
Executable file
|
@ -0,0 +1,7 @@
|
|||
#!/bin/bash
|
||||
|
||||
python3 /app/manga-dlp.py \
|
||||
--path /app/downloads \
|
||||
--read /app/mangas.txt \
|
||||
--chapters all \
|
||||
--wait 2
|
|
@ -10,3 +10,6 @@ find '/app' -type 'f' \( -not -perm 664 -and -not -path '/app/downloads*' \) -ex
|
|||
|
||||
find '/app' \( -not -user abc -and -not -path '/app/downloads*' \) -exec chown abc '{}' \+
|
||||
find '/app' \( -not -group abc -and -not -path '/app/downloads*' \) -exec chown :abc '{}' \+
|
||||
|
||||
# fix schedules
|
||||
chmod -R +x /app/schedules
|
||||
|
|
|
@ -1,5 +0,0 @@
|
|||
# default crontab to run manga-dlp once a day
|
||||
# and get all (new) chapters of the mangas in
|
||||
# the file mangas.txt
|
||||
|
||||
0 3 * * * abc python3 /app/manga-dlp.py --read /app/mangas.txt -c all
|
11
docker/rootfs/etc/cron.d/mangadlp
Normal file
11
docker/rootfs/etc/cron.d/mangadlp
Normal file
|
@ -0,0 +1,11 @@
|
|||
SHELL=/bin/bash
|
||||
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
|
||||
|
||||
# default crontab to run manga-dlp once a day
|
||||
# and get all (new) chapters of the mangas in
|
||||
# the file mangas.txt
|
||||
# "/proc/1/fd/1 2>&1" is to show the logs in the container
|
||||
# "s6-setuidgid abc" is used to set the permissions
|
||||
|
||||
0 12 * * * root s6-setuidgid abc /app/schedules/daily > /proc/1/fd/1 2>&1
|
||||
|
|
@ -3,7 +3,7 @@ import sys
|
|||
|
||||
from mangadlp.input import get_args
|
||||
|
||||
mangadlp_version = "2.1.3"
|
||||
mangadlp_version = "2.1.4"
|
||||
|
||||
|
||||
def get_input():
|
||||
|
|
|
@ -4,7 +4,7 @@ from pathlib import Path
|
|||
|
||||
import mangadlp.app as app
|
||||
|
||||
mangadlp_version = "2.1.3"
|
||||
mangadlp_version = "2.1.4"
|
||||
|
||||
|
||||
def check_args(args):
|
||||
|
|
2
setup.py
2
setup.py
|
@ -7,7 +7,7 @@ long_description = readme.read_text()
|
|||
|
||||
setuptools.setup(
|
||||
name="manga-dlp",
|
||||
version="2.1.3",
|
||||
version="2.1.4",
|
||||
author="Ivan Schaller",
|
||||
author_email="ivan@schaller.sh",
|
||||
description="A cli manga downloader",
|
||||
|
|
Loading…
Reference in a new issue