My take on The imgur game
authorEinar Jørgen Haraldseid <einar@prefect.home.slaskete.net>
Sun, 1 Jun 2014 21:18:21 +0000 (23:18 +0200)
committerEinar Jørgen Haraldseid <einar@prefect.home.slaskete.net>
Sun, 1 Jun 2014 21:18:21 +0000 (23:18 +0200)
imgurgame.bash [new file with mode: 0755]

diff --git a/imgurgame.bash b/imgurgame.bash
new file mode 100755 (executable)
index 0000000..66bbe4e
--- /dev/null
@@ -0,0 +1,39 @@
+#!/bin/bash
+# Because why not? curl must be installed
+
+readonly BROWSER="google-chrome"
+
+# Create a random imgur url that may or may not be valid
+imgururl() {
+  # 1/3% chance for length of 5, 6 or 7 length string
+  STRLN=$((5 + ${RANDOM} % 3))
+  local ID=$(cat /dev/urandom | tr -dc 'a-zA-Z0-9' | fold -w ${STRLN} | head -n 1)
+  echo "http://i.imgur.com/${ID}.jpg"
+}
+
+# Test if we found a valid URL
+testimgur() {
+  local URL=${1}
+  local RESULT=$(curl -s -o /dev/null -I -w "%{http_code}" ${URL})
+  if [[ ${RESULT} == 200 ]]; then
+    echo true
+  else
+    echo false
+  fi
+}
+
+main() {
+  local FAIL=0
+  while true; do
+    local URL=$(imgururl)
+    if [[ $(testimgur ${URL}) == "true" ]]; then
+      echo "Found ${URL} after ${FAIL} failed tries"
+      ${BROWSER} ${URL} > /dev/null 2>&1
+      local FAIL=0
+    else
+      FAIL=$(( ${FAIL}+1 ))
+    fi
+  done
+}
+
+main