View Snippet
#!/bin/bash -e
#
# "watches" over changes on the nexus4 url every 10 seconds and writes a twitter notification when something changes, then dies peacefully
#
# start it with nohup script_name.sh
# thanks to Luka on http://360percents.com/posts/command-line-twitter-status-update-for-linux-and-mac/
#REQUIRED PARAMS
URL=https://play.google.com/store/devices/details?id=nexus_4_8gb
username="PLACE HERE YOUR TWITTER EMAIL"
password="PLACE HERE YOUR TWITTER PASS"
#EXTRA OPTIONS
uagent="Mozilla/5.0" #user agent (fake a browser)
sleeptime=0 #add pause between requests
while true; do
#clear
if [[ -f new_page.html ]]; then
mv new_page.html old_page.html
fi
wget $URL -O new_page.html > /dev/null 2>&1
diff ./new_page.html ./old_page.html > /tmp/changes.diff
if [[ $? -ne 0 ]]; then
echo "The file has changed!!!"
value=`cat /tmp/changes.diff`
tweet="nexus4 URL change: $value"
date
if [ $(echo "$tweet" | wc -c) -gt 140 ]; then
# echo "[FAIL] Tweet must not be longer than 140 chars!" && exit 1
tweet=${tweet:0:140}
elif [ "$tweet" == "" ]; then
echo "[FAIL] Nothing to tweet. Enter your text as argument." && exit 1
fi
touch "cookie.txt" #create a temp. cookie file
#GRAB LOGIN TOKENS
echo "[ ] Fetching twitter.com..." && sleep $sleeptime
initpage=$(curl -s -b "cookie.txt" -c "cookie.txt" -L --sslv3 -A "$uagent" "https://mobile.twitter.com/session/new")
token=$(echo "$initpage" | grep "authenticity_token" | sed -e 's/.*value="//' | sed -e 's/" \/>.*//')
#LOGIN
echo "[ ] Submitting the login form..." && sleep $sleeptime
loginpage=$(curl -s -b "cookie.txt" -c "cookie.txt" -L --sslv3 -A "$uagent" -d "authenticity_token=$token&username=$username&password=$password" "https://mobile.twitter.com/session")
#GRAB COMPOSE TWEET TOKENS
echo "[ ] Getting compose tweet page..." && sleep $sleeptime
composepage=$(curl -s -b "cookie.txt" -c "cookie.txt" -L -A "$uagent" "https://mobile.twitter.com/compose/tweet")
#TWEET
echo "[ ] Posting a new tweet: $tweet..." && sleep $sleeptime
tweettoken=$(echo "$composepage" | grep "authenticity_token" | sed -e 's/.*value="//' | sed -e 's/" \/>.*//' | tail -n 1)
update=$(curl -s -b "cookie.txt" -c "cookie.txt" -L --sslv3 -A "$uagent" -d "authenticity_token=$tweettoken&tweet[text]=$tweet&tweet[display_coordinates]=false" "https://mobile.twitter.com/")
#GRAB LOGOUT TOKENS
logoutpage=$(curl -s -b "cookie.txt" -c "cookie.txt" -L --sslv3 -A "$uagent" "https://mobile.twitter.com/account")
#LOGOUT
echo "[ ] Logging out..." && sleep $sleeptime
logouttoken=$(echo "$logoutpage" | grep "authenticity_token" | sed -e 's/.*value="//' | sed -e 's/" \/>.*//' | tail -n 1)
logout=$(curl -s -b "cookie.txt" -c "cookie.txt" -L --sslv3 -A "$uagent" -d "authenticity_token=$logouttoken" "https://mobile.twitter.com/session/destroy")
rm "cookie.txt"
exit 1
else
echo "No change"
tweet="No_change URL: $URL"
date
fi
# sleep 10 secs
sleep 10
done