diff --git a/.gitignore b/.gitignore index 258bdc6..ae14af3 100644 --- a/.gitignore +++ b/.gitignore @@ -2,6 +2,7 @@ /rsc*/ /md5/ /src/cfg*.py +/log.txt # Virtual environment /venv* diff --git a/cron.sh b/cron.sh new file mode 100755 index 0000000..f7fba52 --- /dev/null +++ b/cron.sh @@ -0,0 +1,46 @@ +#! /usr/bin/env bash + +# Yandere Lewd Bot, an image posting bot for Pleroma +# Copyright (C) 2022 Anon +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +# WARNING: This script has not been thoroughly tested. Use at your own risk. + +# Get the runtime path of the bot +ABS_PATH="$(readlink -f "$0")" +RUN_DIR="$(dirname "$ABS_PATH")" + +# Relative paths to the entry point and log file +# Make sure the relative path is the same as the absolute path in your cron file +LOG='./log.txt' +ENTRY='./run.sh' + +# cd into the bot's root path, set up the virtual environment, and run +cd "$RUN_DIR" +[ ! -f "$ENTRY" ] && echo "Cannot find entry: ${ENTRY}" && cd - > /dev/null && exit 1 +if [ ! -f "$LOG" ]; then + "$ENTRY" +else + INDEX="$(expr `grep "^Profile" "$LOG" | cut -d ' ' -f5 | tail -n 1` + 1)" + STATE="$(grep "^State" "$LOG" | cut -d ' ' -f2 | tail -n 1 | awk -F ',' "{sub(\$${INDEX},\$${INDEX}+1,\$${INDEX})}7" | tr ' ' ',')" + "$ENTRY" -i "$INDEX" -s "$STATE" +fi + +RETURN_CODE="$?" + +# Cleanup +cd - > /dev/null + +exit "$RETURN_CODE"