1
0
Fork 0
mirror of https://github.com/aclist/dztui.git synced 2024-12-28 21:32:36 +01:00

fix: automod WIP

This commit is contained in:
aclist 2024-01-24 17:50:47 +09:00
parent 8effa44a08
commit 04cb132219
3 changed files with 25 additions and 26 deletions

View file

@ -1,7 +1,7 @@
#!/usr/bin/env bash
set -o pipefail
version=5.0.0.rc-28
version=5.0.0.rc-29
#CONSTANTS
aid=221100
@ -536,10 +536,10 @@ fetch_dzq(){
fetch_helpers_by_sum(){
declare -A sums
sums=(
["ui.py"]="9b6c643d096c5b2e677b4eb17ec09750"
["ui.py"]="12fac5997612367c0716f8575046ac6d"
["query_v2.py"]="1822bd1769ce7d7cb0d686a60f9fa197"
["vdf2json.py"]="2f49f6f5d3af919bebaab2e9c220f397"
["funcs"]="bd5dbe82a840a25704b899e62aab0c5b"
["funcs"]="d2afc23090f4f1e670ac8eb1a5412579"
)
local author="aclist"
local repo="dztui"

View file

@ -1,6 +1,6 @@
#!/usr/bin/env bash
set -o pipefail
version=5.0.0.rc-28
version=5.0.0.rc-29
#CONSTANTS
aid=221100
@ -161,15 +161,6 @@ validate_and_connect(){
esac
try_connect "$record"
}
force_update(){
if [[ ! $auto_install -eq 1 ]]; then
printf "Only available when mod auto-install is ON"
return 1
fi
#TODO: force update
printf "Currently does nothing"
return 0
}
map_id_to_ip(){
local id="$1"
local res=$(curl -s "$bm_api" -H "Authorization: Bearer "$api_key"" \
@ -1084,12 +1075,13 @@ auto_mod_install(){
$steam_cmd steam://open/downloads
local total=$(<<< "$diff" wc -l)
until [[ -z $(compare $diff) ]]; do
local missing=$(compare $diff | wc -l)
until [[ -z $(compare "$diff") ]]; do
local missing=$(compare "$diff" | wc -l)
echo "# Downloaded $(($total-missing)) of $total mods. ESC cancels"
done | $steamsafe_zenity --pulsate --progress --title="DZG Watcher" --auto-close --no-cancel --width=500 2>/dev/null
if [[ ! $? -eq 0 ]]; then
exit 7
echo "User canceled connect process. Steam may have mods pending for download."
exit 1
fi
local diff=$(compare "$sanitized_mods")
@ -1103,10 +1095,15 @@ auto_mod_install(){
fi
}
force_update(){
if [[ ! $auto_install -eq 1 ]]; then
printf "Only available when mod auto-install is ON"
return 1
fi
rm "$versions_file"
local update=$(check_timestamps)
console_dl "$update" &&
$steam_cmd steam://open/downloads
return 8
}
console_dl(){
readarray -t modids <<< "$@"
@ -1157,21 +1154,21 @@ check_timestamps(){
local aligned=$(<<< "$local_stamps" jq -r '.response.publishedfiledetails[]|"\(.publishedfileid),\(.time_updated)"')
readarray -t remote_ids < <(<<< "$aligned" awk -F, '{print $1}')
readarray -t remote_times < <(<<< "$aligned" awk -F, '{print $2}')
readarray -t old_ids < <(< $versions_file awk -F, '{print 1}')
readarray -t old_times < <(< $versions_file awk -F, '{print 2}')
readarray -t old_ids < <(< $versions_file awk -F, '{print $1}')
readarray -t old_times < <(< $versions_file awk -F, '{print $2}')
if [[ ! -f $versions_file ]]; then
logger INFO "No prior versions file found, creating"
update_stamps "$aligned"
#force refresh all mods if versions file was missing
printf "%s\n" "${old_ids[$@]}"
printf "%s\n" "${remote_ids[$@]}"
return 0
fi
declare -A remote_version
declare -A local_version
for((i = 0; i < ${remote_ids[@]}; ++i)); do
for((i = 0; i < ${#remote_ids[@]}; ++i)); do
remote_version[${remote_ids[$i]}]=${remote_times[$i]}
done
@ -1184,7 +1181,7 @@ check_timestamps(){
needs_update+=($id)
fi
done
echo "${needs_update[@]}"
printf "%s\n" "${needs_update[@]}"
}
merge_modlists(){
local diff="$1"
@ -1196,7 +1193,8 @@ merge_modlists(){
if [[ -z "$diff" ]] && [[ ${#needs_update[@]} -gt 0 ]]; then
printf "%s\n" "${needs_update[@]}"
else
printf "%s\n%s\n" "$diff" "${needs_update[@]}"
printf "%s\n" "$diff"
printf "%s\n" "${needs_update[@]}"
fi
}
concat_mods(){

View file

@ -16,7 +16,7 @@ locale.setlocale(locale.LC_ALL, '')
gi.require_version("Gtk", "3.0")
from gi.repository import Gtk, GLib, Gdk, GObject, Pango
# 5.0.0-rc.28
# 5.0.0-rc.29
app_name = "DZGUI"
cache = {}
@ -309,10 +309,11 @@ def process_shell_return_code(transient_parent, msg, code, original_input):
# return silently
pass
case 7:
# catch zenity dialog cancel and rewrite message
msg = "User canceled connect process. Steam may have mods pending for download."
msg = "Some mods may have failed to download. Try connecting again to resync."
spawn_dialog(transient_parent, msg, "NOTIFY")
case 8:
msg = "Finished requesting mod updates. Steam may have mods pending for download."
spawn_dialog(transient_parent, msg, "NOTIFY")
case 90:
# used to update configs and metadata in-place
treeview = transient_parent.grid.scrollable_treelist.treeview