diff --git a/Dockerfile b/Dockerfile index 252c6d0..02ccf08 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,7 +1,12 @@ -FROM python:slim +FROM python:3.7-alpine +LABEL maintainer="Kevin Fronczak " +VOLUME /media + +RUN python -m pip install --upgrade pip RUN pip3 install blinkpy -COPY entrypoint.py . -ENTRYPOINT ["python3", "entrypoint.py"] +COPY app/ . + +ENTRYPOINT ["python", "./app.py"] CMD [] diff --git a/app/app.py b/app/app.py new file mode 100644 index 0000000..f831dc6 --- /dev/null +++ b/app/app.py @@ -0,0 +1,32 @@ +""" Script to run blinkpy as an app.""" +from os import environ +from datetime import datetime, timedelta +from blinkpy import blinkpy + + +USERNAME = environ.get('USERNAME') +PASSWORD = environ.get('PASSWORD') +TIMEDELTA = timedelta(environ.get('TIMEDELTA', 1)) + + +def get_date(): + """Returns now - timedelta for blinkpy.""" + return (datetime.now() - TIMEDELTA).isoformat() + + +def download_videos(blink, save_dir='/media'): + """Method to download videos.""" + blink.download_videos(save_dir, since=get_date()) + return + + +def start(): + """Startup blink app.""" + blink = blinkpy.Blink(username=USERNAME, password=PASSWORD) + blink.start() + return blink + +if __name__ == '__main__': + blink = start() + download_videos(blink) + diff --git a/app/build.sh b/app/build.sh new file mode 100644 index 0000000..d9c1b2b --- /dev/null +++ b/app/build.sh @@ -0,0 +1,2 @@ +#!/bin/bash +docker build -t fronzbot/blinkpy:latest ./ diff --git a/app/run.sh b/app/run.sh new file mode 100644 index 0000000..059053d --- /dev/null +++ b/app/run.sh @@ -0,0 +1,31 @@ +#!/bin/bash +# bash run.sh [username] [password] + +if [ "$#" -ne 2 ]; then + echo "" + echo "ERROR: Requries Blink username and password as arguments." + echo "bash run.sh [username] [password]" + echo "" + exit 1 +fi + +set -ex +USER=fronzbot +IMAGE=blinkpy +CONFIG=$HOME/blinkpy_media +USERNAME=$1 +PASSWORD=$2 + +mkdir -p $CONFIG + +result=$(docker images -q $IMAGE) +if [ $result ]; then + docker rm $IMAGE +fi +docker run -it --name ${IMAGE} \ + -v $CONFIG:/media \ + -e USERNAME=${USERNAME} \ + -e PASSWORD=${PASSWORD} \ + $USER/$IMAGE \ + /bin/bash + diff --git a/docker-compose.yml b/docker-compose.yml deleted file mode 100644 index a1f70e2..0000000 --- a/docker-compose.yml +++ /dev/null @@ -1,9 +0,0 @@ -version: "3" -services: - blinkpy: - image: 3ch01c/blinkpy - environment: - - USERNAME - - PASSWORD - volumes: - - ./media:/media/blinkpy diff --git a/entrypoint.py b/entrypoint.py deleted file mode 100644 index aa4730d..0000000 --- a/entrypoint.py +++ /dev/null @@ -1,15 +0,0 @@ -''' Download videos from Blink ''' -from os import environ -from datetime import datetime, timedelta -from blinkpy import blinkpy - -USERNAME = environ.get('USERNAME') -PASSWORD = environ.get('PASSWORD') -TIMEDELTA = int(environ.get('TIMEDELTA', 1)) - -blink = blinkpy.Blink(username=USERNAME, password=PASSWORD) -blink.start() -blink.download_videos('/media/blinkpy', since=(datetime.now() - - timedelta(days=TIMEDELTA) - ).isoformat() - )