commit
95ed20dde6
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
|
- 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
|
## [2.1.3] - 2022-05-29
|
||||||
|
|
||||||
### Fixed
|
### Fixed
|
||||||
|
|
|
@ -7,7 +7,7 @@ LABEL build_version="Version:- ${VERSION} Build-date:- ${BUILD_DATE}"
|
||||||
LABEL maintainer="Ivan Schaller"
|
LABEL maintainer="Ivan Schaller"
|
||||||
|
|
||||||
# manga-dlp version
|
# manga-dlp version
|
||||||
ENV MDLP_VERSION=2.1.3
|
ENV MDLP_VERSION=2.1.4
|
||||||
|
|
||||||
# install packages
|
# install packages
|
||||||
RUN \
|
RUN \
|
||||||
|
@ -28,7 +28,6 @@ RUN \
|
||||||
/var/tmp/*
|
/var/tmp/*
|
||||||
|
|
||||||
|
|
||||||
# copy files to container
|
|
||||||
# copy files to container
|
# copy files to container
|
||||||
COPY docker/rootfs /
|
COPY docker/rootfs /
|
||||||
COPY mangadlp/ /app/mangadlp/
|
COPY mangadlp/ /app/mangadlp/
|
||||||
|
|
|
@ -7,7 +7,7 @@ LABEL build_version="Version:- ${VERSION} Build-date:- ${BUILD_DATE}"
|
||||||
LABEL maintainer="Ivan Schaller"
|
LABEL maintainer="Ivan Schaller"
|
||||||
|
|
||||||
# manga-dlp version
|
# manga-dlp version
|
||||||
ENV MDLP_VERSION=2.1.3
|
ENV MDLP_VERSION=2.1.4
|
||||||
|
|
||||||
# install packages
|
# install packages
|
||||||
RUN \
|
RUN \
|
||||||
|
@ -28,7 +28,6 @@ RUN \
|
||||||
/var/tmp/*
|
/var/tmp/*
|
||||||
|
|
||||||
|
|
||||||
# copy files to container
|
|
||||||
# copy files to container
|
# copy files to container
|
||||||
COPY docker/rootfs /
|
COPY docker/rootfs /
|
||||||
COPY mangadlp/ /app/mangadlp/
|
COPY mangadlp/ /app/mangadlp/
|
||||||
|
|
|
@ -33,6 +33,8 @@ docker run -e PUID=<userid> -e PGID=<groupid>
|
||||||
|
|
||||||
## Run commands in container
|
## 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.
|
You can simply use the `docker exec` command to run the scripts like normal.
|
||||||
|
|
||||||
```sh
|
```sh
|
||||||
|
@ -41,21 +43,54 @@ docker exec <container name> python3 manga-dlp.py <options>
|
||||||
|
|
||||||
## Run your own schedule
|
## 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
|
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.
|
`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
|
```yml
|
||||||
# docker-compose.yml
|
# docker-compose.yml
|
||||||
volumes:
|
volumes:
|
||||||
- ./crontab:/etc/cron.d/01_manga-dlp # overwrites the default one
|
- ./crontab:/etc/cron.d/mangadlp # overwrites the default crontab
|
||||||
- ./crontab2:/etc/cron.d/02_something # adds a new one
|
- ./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
|
```sh
|
||||||
docker run -v ./crontab:/etc/cron.d/01_manga-dlp # overwrites the default one
|
docker run -v ./crontab:/etc/cron.d/mangadlp # overwrites the default crontab
|
||||||
docker run -v ./crontab2:/etc/cron.d/02_something # adds a new one
|
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
|
## 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
|
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
|
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
|
```yml
|
||||||
# docker-compose.yml
|
# docker-compose.yml
|
||||||
volumes:
|
volumes:
|
||||||
- ./media/mangas/:/app/downloads
|
- ./downloads/:/app/downloads
|
||||||
```
|
```
|
||||||
|
|
||||||
```sh
|
```sh
|
||||||
docker run -v ./media/mangas/:/app/downloads
|
docker run -v ./downloads/:/app/downloads
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|
|
@ -12,6 +12,8 @@ services:
|
||||||
volumes:
|
volumes:
|
||||||
- ./downloads/:/app/downloads/ # default manga download directory
|
- ./downloads/:/app/downloads/ # default manga download directory
|
||||||
- ./mangas.txt:/app/mangas.txt # default file for manga links to download
|
- ./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:
|
environment:
|
||||||
- TZ=Europe/Zurich
|
- TZ=Europe/Zurich
|
||||||
# - PUID= # custom userid - defaults to 4444
|
# - 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 -user abc -and -not -path '/app/downloads*' \) -exec chown abc '{}' \+
|
||||||
find '/app' \( -not -group 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
|
from mangadlp.input import get_args
|
||||||
|
|
||||||
mangadlp_version = "2.1.3"
|
mangadlp_version = "2.1.4"
|
||||||
|
|
||||||
|
|
||||||
def get_input():
|
def get_input():
|
||||||
|
|
|
@ -4,7 +4,7 @@ from pathlib import Path
|
||||||
|
|
||||||
import mangadlp.app as app
|
import mangadlp.app as app
|
||||||
|
|
||||||
mangadlp_version = "2.1.3"
|
mangadlp_version = "2.1.4"
|
||||||
|
|
||||||
|
|
||||||
def check_args(args):
|
def check_args(args):
|
||||||
|
|
2
setup.py
2
setup.py
|
@ -7,7 +7,7 @@ long_description = readme.read_text()
|
||||||
|
|
||||||
setuptools.setup(
|
setuptools.setup(
|
||||||
name="manga-dlp",
|
name="manga-dlp",
|
||||||
version="2.1.3",
|
version="2.1.4",
|
||||||
author="Ivan Schaller",
|
author="Ivan Schaller",
|
||||||
author_email="ivan@schaller.sh",
|
author_email="ivan@schaller.sh",
|
||||||
description="A cli manga downloader",
|
description="A cli manga downloader",
|
||||||
|
|
Loading…
Reference in a new issue