From 3ee152c31ead928793b3d5565138d707e7e58211 Mon Sep 17 00:00:00 2001 From: Vincent Riquer Date: Mon, 2 Feb 2015 01:50:53 +0100 Subject: [PATCH 1/4] OCR PoC --- image | 175 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 175 insertions(+) create mode 100755 image diff --git a/image b/image new file mode 100755 index 0000000..e71b43e --- /dev/null +++ b/image @@ -0,0 +1,175 @@ +#!/bin/bash + +source settings +for file in lib/* +do + source $file +done + +declare -A values + +#for indice in ${!uinames[@]} +#do +# uitods[$indice]="${uinames[$indice]}" +#done + +tmpfile=$(mktemp --suffix=.png) +convert -contrast "$1" "$tmpfile" +readarray -t tactout < <(tesseract -l eng -psm 4 "$tmpfile" stdout) +rm "$tmpfile" + +for line in "${tactout[@]}" +do + case "$line" in + #14,522,411 AP 144mm AP + *' AP'*) + read value junk <<<"$line" + values[AP]=${value//,/} + ;; + #Unique Portals Visited 718 + 'Unique Portals Visited'*) + value="${line#Unique Portals Visited }" + read values[Explorer] junk <<<"${value//,}" + ;; + #Portals Discovered 9 + 'Portals Discovered'*) + value="${line#Portals Discovered }" + read values[Seer] junk <<<"${value//,/}" + ;; + #XM Collected 130,908,527 XM + 'XM Collected'*) + value="${line#XM Collected}" + read values[XM] junk <<<"${value//,/}" + ;; + #Distance Walked 1,785 km + 'Distance Walked'*) + value="${line#Distance Walked }" + read values[Walked] junk <<<"${value//,/}" + ;; + #Resonators Deployed 24,451 + 'Resonators Deployed'*) + value="${line#Resonators Deployed }" + read values[Builder] junk <<<"${value//,/}" + ;; + #Links Created 4,479 + 'Links Created'*) + value="${line#Links Created }" + read values[Connector] junk <<<"${value//,/}" + ;; + #Control Fields Created 2,340 + 'Control Fields Created'*) + value="${line#Control Fields Created }" + read values[Mind_Controller] junk <<<"${value//,/}" + ;; + #Mind Units Captured 155,815 MUs + 'Mind Units Captured'*) + value="${line#Mind Units Captured }" + read values[MU] junk <<<"${value//,/}" + ;; + #Longest Link Ever Created 3 km + 'Longest Link Ever Created'*) + value="${line#Longest Link Ever Created }" + read values[Longest_Link] junk <<<"${value//,/}" + ;; + #Largest Control Field 11,588 MUs + 'Largest Control Field'*) + value="${line#Largest Control Field }" + read values[Largest_Field] junk <<<"${value//,/}" + ;; + #XM Recharged 92,120,959 XM + 'XM Recharged'*) + value="${line#XM Recharged }" + read values[Recharger] junk <<<"${value//,/}" + ;; + #Portals Captured 2,022 + 'Portals Captured'*) + value="${line#Portals Captured }" + read values[Liberator] junk <<<"${value//,/}" + ;; + #Unique Portals Captured 375 + 'Unique Portals Captured'*) + value="${line#Unique Portals Captured }" + read values[Pioneer] junk <<<"${value//,/}" + ;; + #Mods Deployed 995 + 'Mods Deployed'*) + value="${line#Mods Deployed }" + read values[Engineer] junk <<<"${value//,/}" + ;; + #Resonators Destroyed 15,855 + 'Resonators Destroyed'*) + value="${line#Resonators Destroyed }" + read values[Purifier] junk <<<"${value//,/}" + ;; + #Portals Neutralized 2,145 + 'Portals Neutralized'*) + value="${line#Portals Neutralized }" + read values[Neutralized] junk <<<"${value//,/}" + ;; + #Enemy Links Destroyed 2,725 + 'Enemy Links Destroyed'*) + value="${line#Enemy Links Destroyed }" + read values[Links_Destroyed] junk <<<"${value//,/}" + ;; + #Enemy Control Fields Destroyed 1,418 + 'Enemy Control Fields Destroyed'*) + value="${line#Enemy Control Fields Destroyed }" + read values[Fields_Destroyed] junk <<<"${value//,/}" + ;; + #Max Time Portal Held 105 days + 'Max Time Portal Held'*) + value="${line#Max Time Portal Held }" + read values[Guardian] junk <<<"${value//,/}" + ;; + #Max Time Link Maintained 75 days + 'Max Time Link Maintained'*) + value="${line#Max Time Link Maintained }" + read values[Link_Maintained] junk <<<"${value//,/}" + ;; + #Max Link Length x Days 89 km-days + 'Max Link Length x Days'*) + value="${line#Max Link Length x Days }" + read values[Link_Length_x_Days] junk <<<"${value//,/}" + ;; + #Max Time Field Held 55 days + 'Max Time Field Held'*) + value="${line#Max Time Field Held }" + read values[Field_Held] junk <<<"${value//,/}" + ;; + #Largest Field MUs x Days 58,959 MU-days + 'Largest Field MUs x Days'*) + value="${line#Largest Field MUs x Days }" + read values[Field_x_Days] junk <<<"${value//,/}" + ;; + #Unique Missions Completed 1 + 'Unique Missions Completed'*) + value="${line#Unique Missions Completed }" + read values[Mercenary] junk <<<"${value//,/}" + ;; + #Hacks 25,741 + 'Hacks'*) + value="${line#Hacks }" + read values[Hacker] junk <<<"${value//,/}" + ;; + #Glyph Hack Points 1,022 + 'Glyph Hack Points'*) + value="${line#Glyph Hack Points }" + read values[Translator] junk <<<"${value//,/}" + ;; + #Agents Recruited 1 + 'Agents Recruited'*) + value="${line#Agents Recruited }" + read values[Recruiter] junk <<<"${value//,/}" + ;; + esac +done + +for indice in ${!uinames[@]} +do + if [[ -n "${values[$indice]}" ]] + then + echo "$indice: ${values[$indice]}" + else + echo "Missing $indice (${uinames[$indice]})" + fi +done From 1b67f9fd395181094dc2d77512ea6e232c65675b Mon Sep 17 00:00:00 2001 From: Vincent Riquer Date: Mon, 2 Feb 2015 11:21:25 +0100 Subject: [PATCH 2/4] Show the correct medal --- index | 16 ++++++++-------- lib/print_medal | 3 ++- 2 files changed, 10 insertions(+), 9 deletions(-) diff --git a/index b/index index c162e65..1af0782 100755 --- a/index +++ b/index @@ -179,7 +179,7 @@ then && maxtimestamp=$timestamp for stat in ${nextsilver[timestamp]} do - tableline+=( "$(print_medal $timestamp $stat ${upsilver[$stat]})" ) + tableline+=( "$(print_medal $timestamp $stat ${upsilver[$stat]} silver)" ) tableline+=( '
' ) (( ++count == lvlsilver[level] - silvercount )) && break 2 done @@ -189,7 +189,7 @@ then do (( count >= lvlsilver[level] - silvercount )) && break 1 (( count < lvlsilver[level] - silvercount )) && never=1 - tableline+=( "$(print_medal $timestamp $stat ${upsilver[$stat]})" ) + tableline+=( "$(print_medal $timestamp $stat ${upsilver[$stat]} silver)" ) tableline+=( '
' ) (( count++ )) done @@ -210,7 +210,7 @@ then && maxtimestamp=$timestamp for stat in ${nextgold[timestamp]} do - tableline+=( "$(print_medal $timestamp $stat ${upgold[$stat]})" ) + tableline+=( "$(print_medal $timestamp $stat ${upgold[$stat]} gold)" ) tableline+=( '
' ) (( ++count == lvlgold[level] - goldcount )) && break 2 done @@ -220,7 +220,7 @@ then do (( count >= lvlgold[level] - goldcount )) && break 1 (( count < lvlgold[level] - goldcount )) && never=1 - tableline+=( "$(print_medal $timestamp $stat ${upgold[$stat]})" ) + tableline+=( "$(print_medal $timestamp $stat ${upgold[$stat]} gold)" ) tableline+=( '
' ) (( count++ )) done @@ -241,7 +241,7 @@ then && maxtimestamp=$timestamp for stat in ${nextplatinum[timestamp]} do - tableline+=( "$(print_medal $timestamp $stat ${upplatinum[$stat]})" ) + tableline+=( "$(print_medal $timestamp $stat ${upplatinum[$stat]} platinum)" ) tableline+=( '
' ) (( ++count == lvlplatinum[level] - platinumcount )) && break 2 done @@ -251,7 +251,7 @@ then do (( count >= lvlplatinum[level] - platinumcount )) && break 1 (( count < lvlplatinum[level] - platinumcount )) && never=1 - tableline+=( "$(print_medal $timestamp $stat ${upplatinum[$stat]})" ) + tableline+=( "$(print_medal $timestamp $stat ${upplatinum[$stat]} platinum)" ) tableline+=( '
' ) (( count++ )) done @@ -272,7 +272,7 @@ then && maxtimestamp=$timestamp for stat in ${nextblack[timestamp]} do - tableline+=( "$(print_medal $timestamp $stat ${upblack[$stat]})" ) + tableline+=( "$(print_medal $timestamp $stat ${upblack[$stat]} black)" ) tableline+=( '
' ) (( ++count == lvlblack[level] - blackcount )) && break 2 done @@ -282,7 +282,7 @@ then do (( count >= lvlblack[level] - blackcount )) && break 1 (( count < lvlblack[level] - blackcount )) && never=1 - tableline+=( "$(print_medal $timestamp $stat ${upblack[$stat]})" ) + tableline+=( "$(print_medal $timestamp $stat ${upblack[$stat]} black)" ) tableline+=( '
' ) (( count++ )) done diff --git a/lib/print_medal b/lib/print_medal index 0ed5c62..bba52a8 100644 --- a/lib/print_medal +++ b/lib/print_medal @@ -5,6 +5,7 @@ print_medal() { timestamp=$1 \ stat=$2 \ percent=$3 \ + level=$4 \ if (( timestamp )) then @@ -22,7 +23,7 @@ print_medal() { href="?hist&start=$start&end=$end#$stat"> $stat silver  ($thisdate) From 187bd18058a1ca95fae5c9c5982b0d3067aea648 Mon Sep 17 00:00:00 2001 From: Vincent Riquer Date: Mon, 2 Feb 2015 11:29:12 +0100 Subject: [PATCH 3/4] show correct medal --- lib/print_medal | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/print_medal b/lib/print_medal index bba52a8..7ae0962 100644 --- a/lib/print_medal +++ b/lib/print_medal @@ -25,7 +25,7 @@ print_medal() { class="badge" src="/${img//_/-}-$level.png" title="$stat $percent%" - alt="$stat silver" /> + alt="$stat $level" />  ($thisdate) EOHTML } From 7482c81b31365cbfb824e1c472d1769c4e2eadfc Mon Sep 17 00:00:00 2001 From: Vincent Riquer Date: Mon, 2 Feb 2015 11:35:58 +0100 Subject: [PATCH 4/4] up may not be set --- index | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/index b/index index 1af0782..2c1d6b6 100755 --- a/index +++ b/index @@ -179,7 +179,7 @@ then && maxtimestamp=$timestamp for stat in ${nextsilver[timestamp]} do - tableline+=( "$(print_medal $timestamp $stat ${upsilver[$stat]} silver)" ) + tableline+=( "$(print_medal $timestamp $stat ${upsilver[$stat]:-0} silver)" ) tableline+=( '
' ) (( ++count == lvlsilver[level] - silvercount )) && break 2 done @@ -189,7 +189,7 @@ then do (( count >= lvlsilver[level] - silvercount )) && break 1 (( count < lvlsilver[level] - silvercount )) && never=1 - tableline+=( "$(print_medal $timestamp $stat ${upsilver[$stat]} silver)" ) + tableline+=( "$(print_medal $timestamp $stat ${upsilver[$stat]:-0} silver)" ) tableline+=( '
' ) (( count++ )) done @@ -210,7 +210,7 @@ then && maxtimestamp=$timestamp for stat in ${nextgold[timestamp]} do - tableline+=( "$(print_medal $timestamp $stat ${upgold[$stat]} gold)" ) + tableline+=( "$(print_medal $timestamp $stat ${upgold[$stat]:-0} gold)" ) tableline+=( '
' ) (( ++count == lvlgold[level] - goldcount )) && break 2 done @@ -220,7 +220,7 @@ then do (( count >= lvlgold[level] - goldcount )) && break 1 (( count < lvlgold[level] - goldcount )) && never=1 - tableline+=( "$(print_medal $timestamp $stat ${upgold[$stat]} gold)" ) + tableline+=( "$(print_medal $timestamp $stat ${upgold[$stat]:-0} gold)" ) tableline+=( '
' ) (( count++ )) done @@ -241,7 +241,7 @@ then && maxtimestamp=$timestamp for stat in ${nextplatinum[timestamp]} do - tableline+=( "$(print_medal $timestamp $stat ${upplatinum[$stat]} platinum)" ) + tableline+=( "$(print_medal $timestamp $stat ${upplatinum[$stat]:-0} platinum)" ) tableline+=( '
' ) (( ++count == lvlplatinum[level] - platinumcount )) && break 2 done @@ -251,7 +251,7 @@ then do (( count >= lvlplatinum[level] - platinumcount )) && break 1 (( count < lvlplatinum[level] - platinumcount )) && never=1 - tableline+=( "$(print_medal $timestamp $stat ${upplatinum[$stat]} platinum)" ) + tableline+=( "$(print_medal $timestamp $stat ${upplatinum[$stat]:-0} platinum)" ) tableline+=( '
' ) (( count++ )) done @@ -272,7 +272,7 @@ then && maxtimestamp=$timestamp for stat in ${nextblack[timestamp]} do - tableline+=( "$(print_medal $timestamp $stat ${upblack[$stat]} black)" ) + tableline+=( "$(print_medal $timestamp $stat ${upblack[$stat]:-0} black)" ) tableline+=( '
' ) (( ++count == lvlblack[level] - blackcount )) && break 2 done @@ -282,7 +282,7 @@ then do (( count >= lvlblack[level] - blackcount )) && break 1 (( count < lvlblack[level] - blackcount )) && never=1 - tableline+=( "$(print_medal $timestamp $stat ${upblack[$stat]} black)" ) + tableline+=( "$(print_medal $timestamp $stat ${upblack[$stat]:-0} black)" ) tableline+=( '
' ) (( count++ )) done