Tournament schedule: the possibility to link games added.
This commit is contained in:
parent
405a947ff9
commit
2f5175d8ed
54
schedule
54
schedule
@ -6,7 +6,7 @@ REPO=fat0troll/lorchess
|
|||||||
TOURNAMENT=2014/1-tabiyas
|
TOURNAMENT=2014/1-tabiyas
|
||||||
|
|
||||||
# Variables
|
# Variables
|
||||||
date_re="[0-9?]{2}\\.[0-9?]{2}\\.[0-9?]{4}"
|
date_re="([0-9?]{2})\\.([0-9?]{2})\\.([0-9?]{4})"
|
||||||
res_re="(0|1|0\\.5):(0|1|0\\.5)"
|
res_re="(0|1|0\\.5):(0|1|0\\.5)"
|
||||||
|
|
||||||
show_tour_sequence() {
|
show_tour_sequence() {
|
||||||
@ -38,7 +38,7 @@ show_tour_sequence() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
fetch_info_array() {
|
fetch_info_array() {
|
||||||
local url="https://raw.github.com/${REPO}/master/${TOURNAMENT}/tours/${1}/tour_info"
|
local url="${BASEURL}/tours/${1}/tour_info"
|
||||||
|
|
||||||
# Store 'tour_info' in an array of lines.
|
# Store 'tour_info' in an array of lines.
|
||||||
# *NOTE* The incorporation of a newline at the end of 'tour_info'
|
# *NOTE* The incorporation of a newline at the end of 'tour_info'
|
||||||
@ -47,7 +47,7 @@ fetch_info_array() {
|
|||||||
info_array=()
|
info_array=()
|
||||||
while read line; do
|
while read line; do
|
||||||
info_array+=("$line")
|
info_array+=("$line")
|
||||||
done <<< "$(curl --fail -q --silent --write-out '\n' $url)"
|
done <<< "$(curl -q --fail --silent --write-out '\n' $url)"
|
||||||
|
|
||||||
return `[[ -n $info_array ]]`
|
return `[[ -n $info_array ]]`
|
||||||
}
|
}
|
||||||
@ -79,7 +79,7 @@ show_tour_info() {
|
|||||||
local tour_num="${BASH_REMATCH[1]}"
|
local tour_num="${BASH_REMATCH[1]}"
|
||||||
|
|
||||||
[[ "${info_array[3]}" =~ ($date_re)" "*[-—]" "*($date_re) ]]
|
[[ "${info_array[3]}" =~ ($date_re)" "*[-—]" "*($date_re) ]]
|
||||||
local date_beg="${BASH_REMATCH[1]}" date_end="${BASH_REMATCH[2]}"
|
local date_beg="${BASH_REMATCH[1]}" date_end="${BASH_REMATCH[5]}"
|
||||||
# Use short dates
|
# Use short dates
|
||||||
date_beg="${date_beg:0:5}"; date_end="${date_end:0:5}"
|
date_beg="${date_beg:0:5}"; date_end="${date_end:0:5}"
|
||||||
|
|
||||||
@ -90,21 +90,39 @@ show_tour_info() {
|
|||||||
|
|
||||||
if keep_info_line "$line"; then
|
if keep_info_line "$line"; then
|
||||||
[[ "$line" =~ ($date_re)" "*[-—]" "*([^" "]+)" "*($res_re)?" "*([^" "]+) ]]
|
[[ "$line" =~ ($date_re)" "*[-—]" "*([^" "]+)" "*($res_re)?" "*([^" "]+) ]]
|
||||||
local white="${BASH_REMATCH[2]}" black="${BASH_REMATCH[6]}" result
|
local white="${BASH_REMATCH[5]}" black="${BASH_REMATCH[9]}" result="" url=""
|
||||||
case "${BASH_REMATCH[3]}" in
|
local game_date="${BASH_REMATCH[4]}-${BASH_REMATCH[3]}-${BASH_REMATCH[2]}"
|
||||||
|
case "${BASH_REMATCH[6]}" in
|
||||||
1:0) result="1-0";;
|
1:0) result="1-0";;
|
||||||
0:1) result="0-1";;
|
0:1) result="0-1";;
|
||||||
0.5:0.5) result="1/2";;
|
0.5:0.5) result="1/2";;
|
||||||
*) result="";;
|
|
||||||
esac
|
esac
|
||||||
|
|
||||||
output_lines+="${white} ${black} ${result}\n"
|
# Store the link of game in variable '$url'
|
||||||
|
if $SHOW_LINK; then
|
||||||
|
[[ -n "$result" ]] && store_game_url
|
||||||
|
fi
|
||||||
|
|
||||||
|
output_lines+="${white} ${black} ${result} ${url}\n"
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
|
|
||||||
eval "info_output_$FORMAT \"${output_lines}\""
|
eval "info_output_$FORMAT \"${output_lines}\""
|
||||||
}
|
}
|
||||||
|
|
||||||
|
store_game_url() {
|
||||||
|
local tour=$(printf "%02g" "$tour_num")
|
||||||
|
local game_dir="${game_date}-${white}-vs-${black}"
|
||||||
|
local game_url="${BASEURL}/tours/${tour}/${game_dir}/1.pgn"
|
||||||
|
|
||||||
|
while read line; do
|
||||||
|
# Search for an URL inside PGN file
|
||||||
|
[[ "$line" =~ "[Site \""([a-z]+:[^"\""]+)"\"]" ]]
|
||||||
|
url="${BASH_REMATCH[1]}"
|
||||||
|
[[ -n "$url" ]] && break
|
||||||
|
done <<< "$(curl -q --fail --silent $game_url)"
|
||||||
|
}
|
||||||
|
|
||||||
info_output_term() {
|
info_output_term() {
|
||||||
echo -n "$(tput setaf 2)${tour_num} тур "
|
echo -n "$(tput setaf 2)${tour_num} тур "
|
||||||
echo "$(tput setaf 6)(${date_beg} - ${date_end})$(tput sgr0)"
|
echo "$(tput setaf 6)(${date_beg} - ${date_end})$(tput sgr0)"
|
||||||
@ -119,7 +137,7 @@ info_output_term() {
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
# Highlight result
|
# Highlight result
|
||||||
line=$(sed "s/\(1-0\|0-1\|1\\/2\)$/\\$(tput setaf 6)\0\\$(tput sgr0)/g" <<< "$line")
|
line=$(sed "s/\(1-0\|0-1\|1\\/2\)/\\$(tput setaf 6)\0\\$(tput sgr0)/g" <<< "$line")
|
||||||
|
|
||||||
echo "$line"
|
echo "$line"
|
||||||
done
|
done
|
||||||
@ -131,7 +149,8 @@ info_output_lor() {
|
|||||||
echo "[b]${tour_num} тур (${date_beg} - ${date_end})[/b]"
|
echo "[b]${tour_num} тур (${date_beg} - ${date_end})[/b]"
|
||||||
echo "[list]"
|
echo "[list]"
|
||||||
|
|
||||||
echo -en "$1" | while read white black result; do
|
echo -en "$1" | while read white black result url; do
|
||||||
|
[[ -n "$url" ]] && result="[url=${url}]${result}[/url]"
|
||||||
local line=" [*] [user]${white}[/user] - [user]${black}[/user] ${result}"
|
local line=" [*] [user]${white}[/user] - [user]${black}[/user] ${result}"
|
||||||
|
|
||||||
# Highlight player's name
|
# Highlight player's name
|
||||||
@ -154,13 +173,15 @@ info_output_lor() {
|
|||||||
|
|
||||||
info_output_html() {
|
info_output_html() {
|
||||||
echo "<div class=\"tour-info\">"
|
echo "<div class=\"tour-info\">"
|
||||||
echo " <table class=\"table table-striped table-condensed\">"
|
echo " <table class=\"table table-striped table-condensed table-bordered\">"
|
||||||
echo " <caption>"
|
echo " <caption>"
|
||||||
echo " <strong>${tour_num} тур (${date_beg} - ${date_end})</strong>"
|
echo " <strong>${tour_num} тур (${date_beg} - ${date_end})</strong>"
|
||||||
echo " </caption>"
|
echo " </caption>"
|
||||||
echo " <tbody>"
|
echo " <tbody>"
|
||||||
|
|
||||||
echo -en "$1" | while read white black result; do
|
echo -en "$1" | while read white black result url; do
|
||||||
|
[[ -n "$url" ]] && result="<a href=\"${url}\">${result}</a>"
|
||||||
|
|
||||||
# Highlight player's name
|
# Highlight player's name
|
||||||
if [[ -n "$PLAYER" ]]; then
|
if [[ -n "$PLAYER" ]]; then
|
||||||
[[ "$white" =~ $PLAYER ]] && white="<strong>${white}</strong>"
|
[[ "$white" =~ $PLAYER ]] && white="<strong>${white}</strong>"
|
||||||
@ -181,8 +202,8 @@ info_output_html() {
|
|||||||
# Note that we use '"$@"' to let each command-line parameter expand to a
|
# Note that we use '"$@"' to let each command-line parameter expand to a
|
||||||
# separate word. The quotes around '$@' are essential!
|
# separate word. The quotes around '$@' are essential!
|
||||||
# We need 'opts' as the 'eval set --' would nuke the return value of getopt
|
# We need 'opts' as the 'eval set --' would nuke the return value of getopt
|
||||||
opts=$(getopt --options ap:f:h \
|
opts=$(getopt --options ap:f:lh \
|
||||||
--longoptions all,player:,format:,help \
|
--longoptions all,player:,format:,link,help \
|
||||||
-- "$@")
|
-- "$@")
|
||||||
|
|
||||||
# Note the quotes around '$opts': they are essential!
|
# Note the quotes around '$opts': they are essential!
|
||||||
@ -191,6 +212,8 @@ eval set -- "$opts"
|
|||||||
SHOW_ALL=false
|
SHOW_ALL=false
|
||||||
PLAYER=""
|
PLAYER=""
|
||||||
FORMAT=term
|
FORMAT=term
|
||||||
|
SHOW_LINK=false
|
||||||
|
BASEURL="https://raw.github.com/${REPO}/master/${TOURNAMENT}"
|
||||||
|
|
||||||
while true; do
|
while true; do
|
||||||
case "$1" in
|
case "$1" in
|
||||||
@ -203,6 +226,9 @@ while true; do
|
|||||||
-f|--format)
|
-f|--format)
|
||||||
FORMAT="$2"
|
FORMAT="$2"
|
||||||
shift 2;;
|
shift 2;;
|
||||||
|
-l|--link)
|
||||||
|
SHOW_LINK=true
|
||||||
|
shift;;
|
||||||
-h|--help)
|
-h|--help)
|
||||||
usage
|
usage
|
||||||
break;;
|
break;;
|
||||||
|
Loading…
Reference in New Issue
Block a user