Add moonraker-telegram-bot to kiauh

This commit is contained in:
Evgenii
2021-09-11 00:50:41 +03:00
parent 89dc6d2d14
commit e2407b3a92
12 changed files with 241 additions and 20 deletions

View File

@@ -38,6 +38,9 @@ OCTOPRINT_DIR=${HOME}/OctoPrint
#KlipperScreen
KLIPPERSCREEN_DIR=${HOME}/KlipperScreen
KLIPPERSCREEN_ENV_DIR=${HOME}/.KlipperScreen-env
#moonraker-telegram-bot
MOONRAKERTELEGRAMBOT_DIR=${HOME}/moonraker-telegram-bot
MOONRAKERTELEGRAMBOT_ENV_DIR=${HOME}/moonraker-telegram-bot-env
#misc
INI_FILE=${HOME}/.kiauh.ini
BACKUP_DIR=${HOME}/kiauh-backups
@@ -48,6 +51,7 @@ ARKSINE_REPO=https://github.com/Arksine/klipper.git
DMBUTYUGIN_REPO=https://github.com/dmbutyugin/klipper.git
DWC2FK_REPO=https://github.com/Stephan3/dwc2-for-klipper-socket.git
KLIPPERSCREEN_REPO=https://github.com/jordanruthe/KlipperScreen.git
NLEF_REPO=https://github.com/nlef/moonraker-telegram-bot.git
#branches
BRANCH_SCURVE_SMOOTHING=dmbutyugin/scurve-smoothing
BRANCH_SCURVE_SHAPING=dmbutyugin/scurve-shaping

View File

@@ -179,3 +179,17 @@ backup_klipperscreen(){
ERROR_MSG=" Can't backup KlipperScreen directory!\n Not found!"
fi
}
backup_klipperscreen(){
if [ -d $MOONRAKERTELEGRAMBOT_DIR ] ; then
status_msg "Creating moonraker-telegram-bot backup ..."
check_for_backup_dir
get_date
status_msg "Timestamp: $current_date"
mkdir -p $BACKUP_DIR/moonraker-telegram-bot-backups/"$current_date"
cp -r $MOONRAKERTELEGRAMBOT_DIR $_
ok_msg "Backup complete!"
else
ERROR_MSG=" Can't backup KlipperScreen directory!\n Not found!"
fi
}

View File

@@ -270,6 +270,21 @@ restart_klipperscreen(){
sudo systemctl restart KlipperScreen && ok_msg "KlipperScreen Service restarted!"
}
start_moonraker-telegram-bot(){
status_msg "Starting moonraker-telegram-bot Service ..."
sudo systemctl start moonraker-telegram-bot && ok_msg "moonraker-telegram-bot Service started!"
}
stop_moonraker-telegram-bot(){
status_msg "Stopping moonraker-telegram-bot Service ..."
sudo systemctl stop moonraker-telegram-bot && ok_msg "moonraker-telegram-bot Service stopped!"
}
restart_moonraker-telegram-bot(){
status_msg "Restarting moonraker-telegram-bot Service ..."
sudo systemctl restart moonraker-telegram-bot && ok_msg "moonraker-telegram-bot Service restarted!"
}
restart_nginx(){
if [ "$(systemctl list-units --full -all -t service --no-legend | grep -F "nginx.service")" ]; then
status_msg "Restarting NGINX Service ..."

View File

@@ -0,0 +1,67 @@
install_moonraker-telegram-bot(){
source_kiauh_ini
system_check_moonraker-telegram-bot
#ask user for customization
get_user_selections_moonraker-telegram-bot
#moonraker-telegram-bot main installation
moonraker-telegram-bot_setup
#execute customizations
symlinks_moonraker-telegram-bot
#after install actions
restart_moonraker-telegram-bot
}
system_check_moonraker-telegram-bot(){
source_kiauh_ini
if [ ! -e $klipper_cfg_loc/telegram.log ]; then
MOONRAKERTELEGRAMBOT_SL_FOUND="false"
else
MOONRAKERTELEGRAMBOT_SL_FOUND="true"
fi
}
get_user_selections_moonraker-telegram-bot(){
#user selection for telegram.log symlink
if [ "$KMOONRAKERTELEGRAMBOT_SL_FOUND" = "false" ]; then
while true; do
echo
read -p "${cyan}###### Create telegram.log symlink? (y/N):${default} " yn
case "$yn" in
Y|y|Yes|yes)
echo -e "###### > Yes"
SEL_MTBLOG_SL="true"
break;;
N|n|No|no|"")
echo -e "###### > No"
SEL_MTBLOG_SL="false"
break;;
*)
print_unkown_cmd
print_msg && clear_msg;;
esac
done
fi
}
moonraker-telegram-bot_setup(){
dep=(wget curl unzip dfu-util)
dependency_check
status_msg "Downloading moonraker-telegram-bot ..."
#force remove existing moonraker-telegram-bot dir
[ -d $MOONRAKERTELEGRAMBOT_DIR ] && rm -rf $MOONRAKERTELEGRAMBOT_DIR
#clone into fresh moonraker-telegram-bot dir
cd ${HOME} && git clone $MOONRAKERTELEGRAMBOT_REPO
ok_msg "Download complete!"
status_msg "Installing moonraker-telegram-bot ..."
$MOONRAKERTELEGRAMBOT_DIR/install.sh
echo; ok_msg "moonraker-telegram-bot successfully installed!"
}
symlinks_moonraker-telegram-bot(){
#create a telegram.log symlink in klipper_config-dir
if [ "$SEL_MTBLOG_SL" = "true" ] && [ ! -e $klipper_cfg_loc/telegram.log ]; then
status_msg "Creating telegram.log symlink ..."
ln -s /tmp/telegram.log $klipper_cfg_loc
ok_msg "Symlink created!"
fi
}

View File

@@ -387,6 +387,49 @@ remove_klipperscreen(){
CONFIRM_MSG="KlipperScreen successfully removed!"
}
remove_moonraker-telegram-bot(){
source_kiauh_ini
### remove moonraker-telegram-bot dir
if [ -d $MOONRAKERTELEGRAMBOT_DIR ]; then
status_msg "Removing moonraker-telegram-bot directory ..."
rm -rf $MOONRAKERTELEGRAMBOT_DIR && ok_msg "Directory removed!"
fi
### remove moonraker-telegram-bot VENV dir
if [ -d $MOONRAKERTELEGRAMBOT_ENV_DIR ]; then
status_msg "Removing moonraker-telegram-bot VENV directory ..."
rm -rf $MOONRAKERTELEGRAMBOT_ENV_DIR && ok_msg "Directory removed!"
fi
### remove moonraker-telegram-bot service
if [ -e /etc/systemd/system/moonraker-telegram-bot.service ]; then
status_msg "Removing moonraker-telegram-bot service ..."
sudo systemctl stop moonraker-telegram-bot
sudo systemctl disable moonraker
sudo rm -f $SYSTEMDDIR/moonraker-telegram-bot.service
###reloading units
sudo systemctl daemon-reload
sudo systemctl reset-failed
ok_msg "moonraker-telegram-bot Service removed!"
fi
### remove moonraker-telegram-bot log
if [ -e /tmp/telegram.log ]; then
status_msg "Removing moonraker-telegram-bot log file ..."
rm -f /tmp/telegram.log && ok_msg "File removed!"
fi
### remove moonraker-telegram-bot log symlink in config dir
if [ -e $klipper_cfg_loc/telegram.log ]; then
status_msg "Removing moonraker-telegram-bot log symlink ..."
rm -f $klipper_cfg_loc/telegram.log && ok_msg "File removed!"
fi
CONFIRM_MSG="moonraker-telegram-bot successfully removed!"
}
remove_mjpg-streamer(){
### remove MJPG-Streamer service
if [ -e $SYSTEMDDIR/webcamd.service ]; then

View File

@@ -228,6 +228,36 @@ klipperscreen_status(){
fi
}
moonraker-telegram-bot_status(){
mtbcount=0
moonraker-telegram-bot_data=(
SERVICE
$MOONRAKERTELEGRAMBOT_DIR
$MOONRAKERTELEGRAMBOT_ENV_DIR
)
### count amount of moonraker-telegram-bot_data service files in /etc/systemd/system
SERVICE_FILE_COUNT=$(ls /etc/systemd/system | grep -E "moonraker-telegram-bot" | wc -l)
### remove the "SERVICE" entry from the moonraker-telegram-bot_data array if a moonraker-telegram-bot service is installed
[ $SERVICE_FILE_COUNT -gt 0 ] && unset moonraker-telegram-bot_data[0]
#count+1 for each found data-item from array
for mtbd in "${moonraker-telegram-bot_data[@]}"
do
if [ -e $mtbd ]; then
mtbcount=$(expr $mtbcount + 1)
fi
done
if [ "$mtbccount" == "${#moonraker-telegram-bot_data[*]}" ]; then
MOONRAKERTELEGRAMBOT_STATUS="${green}Installed!${default} "
elif [ "$klsccount" == 0 ]; then
MOONRAKERTELEGRAMBOT_STATUS="${red}Not installed!${default} "
else
MOONRAKERTELEGRAMBOT_STATUS="${yellow}Incomplete!${default} "
fi
}
#############################################################
#############################################################
@@ -517,6 +547,34 @@ compare_klipperscreen_versions(){
fi
}
read_moonraker-telegram-bot_versions(){
if [ -d $MOONRAKERTELEGRAMBOT_DIR ] && [ -d $MOONRAKERTELEGRAMBOT_DIR/.git ]; then
cd $MOONRAKERTELEGRAMBOT_DIR
git fetch origin master -q
LOCAL_MOONRAKERTELEGRAMBOT_COMMIT=$(git describe HEAD --always --tags | cut -d "-" -f 1,2)
REMOTE_MOONRAKERTELEGRAMBOT_COMMIT=$(git describe origin/master --always --tags | cut -d "-" -f 1,2)
else
LOCAL_MOONRAKERTELEGRAMBOT_COMMIT=$NONE
REMOTE_MOONRAKERTELEGRAMBOT_COMMIT=$NONE
fi
}
compare_moonraker-telegram-bot_versions(){
unset MOONRAKERTELEGRAMBOT_UPDATE_AVAIL
read_moonraker-telegram-bot_versions
if [ "$LOCAL_MOONRAKERTELEGRAMBOT_COMMIT" != "$REMOTE_MOONRAKERTELEGRAMBOT_COMMIT" ]; then
LOCAL_MOONRAKERTELEGRAMBOT_COMMIT="${yellow}$(printf "%-12s" "$LOCAL_MOONRAKERTELEGRAMBOT_COMMIT")${default}"
REMOTE_MOONRAKERTELEGRAMBOT_COMMIT="${green}$(printf "%-12s" "$REMOTE_MOONRAKERTELEGRAMBOT_COMMIT")${default}"
MOONRAKERTELEGRAMBOT_UPDATE_AVAIL="true"
update_arr+=(update_moonraker-telegram-bot)
else
LOCAL_MOONRAKERTELEGRAMBOT_COMMIT="${green}$(printf "%-12s" "$LOCAL_MOONRAKERTELEGRAMBOT_COMMIT")${default}"
REMOTE_MOONRAKERTELEGRAMBOT_COMMIT="${green}$(printf "%-12s" "$REMOTE_MOONRAKERTELEGRAMBOT_COMMIT")${default}"
MOONRAKERTELEGRAMBOT_UPDATE_AVAIL="false"
fi
}
#############################################################
#############################################################
@@ -533,4 +591,5 @@ ui_print_versions(){
compare_mainsail_versions
compare_fluidd_versions
compare_klipperscreen_versions
compare_moonraker-telegram-bot
}

View File

@@ -14,6 +14,7 @@ backup_ui(){
echo -e "| 2) [Moonraker] | Other: | "
echo -e "| 3) [Moonraker DB] | 7) [Duet Web Control] | "
echo -e "| | 8) [OctoPrint] | "
echo -e "| | 9) [MoonrakerTelegramBot] | "
quit_footer
}
@@ -40,6 +41,8 @@ backup_menu(){
do_action "backup_dwc2" "backup_ui";;
8)
do_action "backup_octoprint" "backup_ui";;
9)
do_action "backup_moonraker-telegram-bot" "backup_ui";;
Q|q)
clear; main_menu; break;;
*)

View File

@@ -12,10 +12,10 @@ install_ui(){
echo -e "| Klipper API: | Other: | "
echo -e "| 2) [Moonraker] | 6) [Duet Web Control] | "
echo -e "| | 7) [OctoPrint] | "
echo -e "| Klipper Webinterface: | | "
echo -e "| 3) [Mainsail] | Webcam: | "
echo -e "| 4) [Fluidd] | 8) [MJPG-Streamer] | "
echo -e "| | | "
echo -e "| Klipper Webinterface: | 9) [MoonrakerTelegramBot]| "
echo -e "| 3) [Mainsail] | | "
echo -e "| 4) [Fluidd] | Webcam: | "
echo -e "| | 8) [MJPG-Streamer] | "
quit_footer
}

View File

@@ -11,7 +11,8 @@ main_ui(){
echo -e "| 4) [Advanced] | Mainsail: $MAINSAIL_STATUS|"
echo -e "| 5) [Backup] | Fluidd: $FLUIDD_STATUS|"
echo -e "| | KlipperScreen: $KLIPPERSCREEN_STATUS|"
echo -e "| 6) [Settings] | |"
echo -e "| 6) [Settings] | MTelegramBot: $MOONRAKERTELEGRAMBOT_STATUS|"
echo -e "| | |"
echo -e "| | DWC2: $DWC2_STATUS|"
echo -e "| ${cyan}$KIAUH_VER${default}| Octoprint: $OCTOPRINT_STATUS|"
quit_footer

View File

@@ -1,22 +1,22 @@
remove_ui(){
top_border
echo -e "| ${red}~~~~~~~~~~~~~~ [ Remove Menu ] ~~~~~~~~~~~~~~${default} | "
echo -e "| ${red}~~~~~~~~~~~~~~ [ Remove Menu ] ~~~~~~~~~~~~~~${default} | "
hr
echo -e "| Directories which remain untouched: | "
echo -e "| --> Your printer configuration directory | "
echo -e "| --> ~/kiauh-backups | "
echo -e "| You need remove them manually if you wish so. | "
echo -e "| Directories which remain untouched: | "
echo -e "| --> Your printer configuration directory | "
echo -e "| --> ~/kiauh-backups | "
echo -e "| You need remove them manually if you wish so. | "
hr
echo -e "| Firmware: | Touchscreen GUI: | "
echo -e "| 1) [Klipper] | 5) [KlipperScreen] | "
echo -e "| | | "
echo -e "| Klipper API: | Other: | "
echo -e "| 2) [Moonraker] | 6) [Duet Web Control] | "
echo -e "| | 7) [OctoPrint] | "
echo -e "| Klipper Webinterface: | 8) [NGINX] | "
echo -e "| 3) [Mainsail] | 9) [MJPG-Streamer] | "
echo -e "| 4) [Fluidd] | | "
echo -e "| | | "
echo -e "| Firmware: | Touchscreen GUI: | "
echo -e "| 1) [Klipper] | 5) [KlipperScreen] | "
echo -e "| | | "
echo -e "| Klipper API: | Other: | "
echo -e "| 2) [Moonraker] | 6) [Duet Web Control] | "
echo -e "| | 7) [OctoPrint] | "
echo -e "| Klipper Webinterface: | 8) [NGINX] | "
echo -e "| 3) [Mainsail] | 9) [MJPG-Streamer] | "
echo -e "| 4) [Fluidd] | 10) [MoonrakerTelegramBot] | "
echo -e "| | | "
quit_footer
}
@@ -43,6 +43,8 @@ remove_menu(){
do_action "remove_nginx" "remove_ui";;
9)
do_action "remove_mjpg-streamer" "remove_ui";;
10)
do_action "remove_moonraker-telegram-bot" "remove_ui";;
Q|q)
clear; main_menu; break;;
*)

View File

@@ -21,6 +21,7 @@ update_ui(){
echo -e "| Other: |---------------|--------------| "
echo -e "| 6) [DWC2-for-Klipper] | $LOCAL_DWC2FK_COMMIT | $REMOTE_DWC2FK_COMMIT | "
echo -e "| 7) [DWC2 Web UI] | $DWC2_LOCAL_VER | $DWC2_REMOTE_VER | "
echo -e "| 5) [MTelegramBot] | $LOCAL_MOONRAKERTELEGRAMBOT_COMMIT | $REMOTE_MOONRAKERTELEGRAMBOT_COMMIT | "
echo -e "| |------------------------------| "
echo -e "| 8) [System] | $DISPLAY_SYS_UPDATE | "
quit_footer

View File

@@ -39,6 +39,9 @@ update_all(){
if [ "$KLIPPERSCREEN_UPDATE_AVAIL" = "true" ]; then
echo -e "| ${cyan}● KlipperScreen${default} |"
fi
if [ "$MOONRAKERTELEGRAMBOT_UPDATE_AVAIL" = "true" ]; then
echo -e "| ${cyan}● moonraker-telegram-bot${default} |"
fi
if [ "$SYS_UPDATE_AVAIL" = "true" ]; then
echo -e "| ${cyan}● System${default} |"
fi
@@ -170,6 +173,15 @@ update_klipperscreen(){
start_klipperscreen
}
update_moonraker-telegram-bot(){
stop_moonraker-telegram-bot
cd $MOONRAKERTELEGRAMBOT_DIR
git pull
./install.sh
ok_msg "Update complete!"
start_moonraker-telegram-bot
}
update_system(){
status_msg "Updating System ..."
sudo apt-get update && sudo apt-get upgrade -y