\(.*\)\
.*$/\1/')
hs_info=$(echo "${info_html}" | tr '"' "\n" | grep -A 4 "High School" | tail -n 1 | sed 's/\>\
\(.*\)\<\/div\>\<\/div\>.*$/\1/')
friends_url=$(echo "${info_html}" | tr '"' "\n" | grep "friends.php?id" | sed 's/\&\;/\&/g' | head -n 1 | sed 's/.\(.*\)$/\1/')
if [ "${friends_url}" ]; then printf "Friends (%d)... " "${friends_tot}"; fi
wall_url=$(echo "${info_html}" | tr '"' "\n" | grep "feed" | sed 's/\&\;/\&/g' | sed 's/.\(.*\)$/\1/')
if [ "${wall_url}" ]; then printf "Wall... "; fi
photos_url=$(echo "${info_html}" | tr '"' "\n" | grep "v\=photos" | head -n 1 | sed 's/\&\;/\&/g' | sed 's/.\(.*\)$/\1/')
if [ "${photos_url}" ]; then printf "Photos... "; fi
echo
}
function parse_friends() {
printf "Parsing Friends [%s]...\n" "${fb_id}"
friends_html=$(curl -s -b ${cookie_path} -c ${cookie_path} -A 'Mozilla/5.0' --location "http://m.facebook.com/${friends_url}")
echo -n "${friends_html}" > "${output_path}/m.friends_[${fb_id}].htm"
}
function parse_photos() {
printf "Parsing Photos [%s]...\n" "${fb_id}"
local cnt="10"
photos_html=$(curl -s -b ${cookie_path} -c ${cookie_path} -A 'Mozilla/5.0' --location "http://m.facebook.com/${photos_url}")
echo -n "${photos_html}" > "${output_path}/m.photos-1_[${fb_id}].htm"
mkdir -p "${photo_path}/${fb_id}"
parse_albums "${photos_html}"
#allPhotos_url=$(echo "${photos_html}" | tr '"' "\n" | grep "set\=t" | sed 's/\&\;/\&/g' | sed 's/.\(.*\)$/\1/')
#if [ "${allPhotos_url}" ]; then printf "All Photos... ";fi
next_page=$(echo "${photos_html}" | tr '"' "\n" | grep "p\=${album_inc}" | sed 's/\&\;/\&/g' | sed 's/.\(.*\)$/\1/')
if [ "${next_page}" ]; then
album_inc=10
next_albums
fi
echo
}
function next_albums() {
photos_html=$(curl -s -b ${cookie_path} -c ${cookie_path} -A 'Mozilla/5.0' --location "http://m.facebook.com/photos.php?id=${fb_id}&p=${album_inc}&refid=${ref_id}")
echo -n "${photos_html}" > "${output_path}/m.photos-$(( ($album_inc / 10) + 1 ))_[${fb_id}].htm"
parse_albums "${photos_html}"
album_inc=$(( $album_inc + 10 ))
next_page=$(echo "${photos_html}" | tr '"' "\n" | grep "p\=${album_inc}" | sed 's/\&\;/\&/g' | sed 's/.\(.*\)$/\1/')
if [ "${next_page}" ]; then
next_albums; fi
}
function parse_albums() {
printf "Albums Page: %d [%s]\n" $(( ($album_inc / 10) + 1 )) "http://m.facebook.com/photos.php?id=${fb_id}&p=${album_inc}&refid=${ref_id}"
album_urls=$(echo "${1}" | tr '"' "\n" | grep "set\=a" | sed 's/\&\;/\&/g')
(IFS=$'\n'
for (( i=1; i<=`echo "${album_urls}" | wc -l`; i++ )); do
album_url=$(echo "${album_urls}" | sed -n "${i}"p | sed 's/\&\;/\&/g' | sed 's/.\(.*\)$/\1/')
album_id=$(echo "${album_url}" | sed 's/.*a\.\(.*\)\&.*$/\1/' | sed 's/\&op\='$album_inc'\&v//')
album_name=$(echo "${1}" | tr '"' "\n" | grep -A 1 "${album_id}" | tail -n 1 | sed 's/^\>\\(.*\)\<\/span\>.*$/\1/' | sed 's/\&\;/\&/g' | sed 's/^\>\.*$/Profile Pictures/' | sed 's/\&\#039\;/‘/g' | sed 's/\"\;/‘‘/g' | sed 's/\&hearts\;/♥/g')
photo_tot=$(echo "${1}" | tr '"' "\n" | grep -A 3 "${album_id}" | tail -n 1 | sed 's/.\(.*\) photos.*$/\1/' | sed 's/.*Profile Pictures.*/0/')
album_tot=$(( ($album_inc + $i) - 1 ))
album_page=0
photo_ind=0
printf "\t[%d] %s (%d) [%s]\n" $album_tot "${album_name}" "${photo_tot}" "${album_id}"
parse_album
done
)
}
function parse_album() {
printf "Parsing Album %s [%s]...\n" "${album_name}" "${album_id}"
short_id=$(echo "${album_id}" | awk -F\. '{print $2}')
photos_html=$(curl -s -b ${cookie_path} -c ${cookie_path} -A 'Mozilla/5.0' --location "http://m.facebook.com/${album_url}")
echo -n "${photos_html}" > "${output_path}/m.album-${short_id}-${album_page}_[${fb_id}].htm"
parse_photo "${photos_html}"
next_page=$(echo "${photos_html}" | tr '"' "\n" | grep "s\=12" | sed 's/\&\;/\&/g' | sed 's/.\(.*\)$/\1/')
if [ "${next_page}" ]; then
photo_inc=12
next_photos; fi
}
function parse_photo() {
photo_urls=$(echo "${1}" | tr '"' "\n" | grep "\_t\.jpg" | sed 's/_t/_n/')
if [ ! "${photo_urls}" ]; then
photo_urls=$(echo "${1}" | tr '"' "\n" | grep "\/t.*\.jpg" | sed 's/\/t\(.*\)\.jpg/\/n\1\.jpg/'); fi
(IFS=$'\n'
for (( i=1; i<=`echo "${photo_urls}" | wc -l`; i++ )); do
photo_url=$(echo "${photo_urls}" | sed -n "${i}"p)
photo_id=$(echo "${photo_url}" | awk -F\_ '{print $2}')
photo_page=$(printf "photo.php?fbid=%s&id=%s&set=%s&refid=%s" "${photo_id}" "${fb_id}" "${album_id}" "${ref_id}")
photo_name=$(echo "${photo_url}" | awk -F\/ '{print $NF}')
photo_ind=$(( $photo_ind + 1 ))
printf "\t[%d] %s\n" $photo_ind "${photo_url}"
echo "${photo_url}" >> "${photo_path}/${fb_id}/${short_id}_${album_name}.txt"
done
)
}
function next_photos() {
short_id=$(echo "${album_id}" | awk -F\. '{print $2}')
photos_html=$(curl -s -b ${cookie_path} -c ${cookie_path} -A 'Mozilla/5.0' --location "http://m.facebook.com/${album_url}&s=${photo_inc}")
echo -n "${photos_html}" > "${output_path}/m.album-${short_id}-${album_page}_[${fb_id}].htm"
parse_photo "${photos_html}"
photo_inc=$(( $photo_inc + 12 ))
next_page=$(echo "${photos_html}" | tr '"' "\n" | grep "s\=${photo_inc}" | sed 's/\&\;/\&/g' | sed 's/.\(.*\)$/\1/')
if [ "${next_page}" ]; then
next_photos; fi
}
function download_photos() {
(IFS=$'\n'
printf "Parsing Album %s [%s]...\n" "${album_name}" "${album_id}"
for f in `find "${photo_path}/${fb_id}" -type f -name "*.txt"`; do
echo "${f}"
album_id=$(echo `basename ${f}` | awk -F\_ '{print $1}')
album_name=$(echo `basename ${f}` | awk -F\_ '{print $2}' | sed 's/\.txt//')
album_path="${photo_path}/${fb_id}/albums/${album_id}_${album_name}"
mkdir -p "./${album_path}"
while read l; do
img_name=$(echo "${l}" | awk -F\/ '{print $NF}')
echo "${img_name}"
curl --silent --location "${l}" --output "./${album_path}/${img_name}"
done < $f
done
)
}
function parse_wall() {
wall_html=$(curl -s -b ${cookie_path} -c ${cookie_path} -A 'Mozilla/5.0' --location "http://m.facebook.com/${wall_url}")
echo -n "${wall_html}" > "${output_path}/m.wall_[${fb_id}].htm"
}
#LOGIN
function login_user() {
printf "Logging In...\n"
params="email=${email}&pass=${pass}&"`parse_form "${form_fields}"`
login_html=$(curl -s -b ${cookie_path} -c ${cookie_path} -A "Mozilla/5.0" -d "${params}" --location "${form_action}")
echo -n "${login_html}" > "${output_path}/m.login.htm"
home_html=$(curl -s -b ${cookie_path} -c ${cookie_path} -A "Mozilla/5.0" --location "${host_url}/profile.php")
echo -n "${home_html}" > "${output_path}/m.home.htm"
isDiff=$(echo "${login_html}" | grep "Log In")
if [ -z "$isDiff" ]; then
isLoggedIn=true
else
isLoggedIn=false;
echo "Can't login!"; fi
}
#LOGOUT
function logout_user() {
printf "Logging Out...\n"
logout_url=$(echo "${home_html}" | tr '"' "\n" | grep "/logout.php?")
logout_html=$(curl -s -b ${cookie_path} -c ${cookie_path} -A "Mozilla/5.0" --location "${host_url}${logout_url}")
echo -n "${logout_html}" > "${output_path}/m.logout.htm"
isLoggedIn=false
rm $cookie_path
}
login_user
if $isLoggedIn; then
parse_info "${fb_id}"
parse_wall
parse_friends
parse_photos
#download_photos
logout_user
fi
exit 1;