#!/usr/bin/env bash
# AUTHOR: gotbletu (@gmail|twitter|youtube|github|lbry)
# https://www.youtube.com/user/gotbletu
# DESC: my unfinish example shellnium script for craigslist
# DEMO: https://youtu.be/Q10dcPjmRTI
# DEPEND: jq chromium (or chrome)
# shellnium (https://github.com/Rasukarusan/shellnium)
# start chromedriver
chromedriver &
sleep 1
source ./lib/selenium.sh
ITEM_TITLE="Leaf Village"
ITEM_PRICE="10"
ITEM_CITY="North Hollywood"
ITEM_POSTAL="91601"
ITEM_DESCRIPTION="Village Hidden in the Leaf"
ITEM_CONTACTEMAIL="tobi@akatsuki.com"
ITEM_CONTACTNUM="818-333-4444"
ITEM_CONTACTNAME="Tobi"
ITEM_STREET="hatteras"
ITEM_CROSSSTREET="tujunga"
main() {
# 1. Open the apage.
navigate_to 'https://post.craigslist.org/c/lax'
# Click on radio "san fernado valley"
#
local radioclick_location=($(find_elements 'name' 'n'))
click ${radioclick_location[1]}
# 2. Click on radio "for sale by owner"
local radioclick_sale=($(find_elements 'name' 'id'))
click ${radioclick_sale[5]}
# 3. Click on radio "video gaming by owner"
local radioclick_videogame=($(find_elements 'name' 'id'))
click ${radioclick_videogame[43]}
# 4. Fill in Ad listing
# Post Title
#
local AD_TITLE=$(find_element 'name' 'PostingTitle')
send_keys $AD_TITLE "$ITEM_TITLE"
# Price
#
local AD_PRICE=$(find_element 'name' 'price')
send_keys $AD_PRICE "$ITEM_PRICE"
# City or neighborhood
#
local AD_CITY=$(find_element 'name' 'geographic_area')
send_keys $AD_CITY "$ITEM_CITY"
# Postal Code/Zip code
#
local AD_POSTAL=$(find_element 'name' 'postal')
send_keys $AD_POSTAL "$ITEM_POSTAL"
# Description
#
local AD_DESCRIPTION=$(find_element 'name' 'PostingBody')
send_keys $AD_DESCRIPTION "$ITEM_DESCRIPTION"
# [checkbox] include "more ads by this user" link
#
local checkbox_moreads=($(find_element 'name' 'see_my_other'))
click ${checkbox_moreads}
# [checkbox] contact info: phone/text options enable
#
local checkbox_phone=($(find_element 'name' 'show_phone_ok'))
click ${checkbox_phone}
# [checkbox] text/SMS OK
#
local checkbox_texting=($(find_element 'name' 'contact_text_ok'))
click ${checkbox_texting}
# Contact Email
#
local AD_CONTACTEMAIL=$(find_element 'name' 'FromEMail')
send_keys $AD_CONTACTEMAIL "$ITEM_CONTACTEMAIL"
# Contact Number: Phone Number/Texting Number
#
local AD_CONTACTNUM=$(find_element 'name' 'contact_phone')
send_keys $AD_CONTACTNUM "$ITEM_CONTACTNUM"
# Contact Name
#
local AD_CONTACTNAME=$(find_element 'name' 'contact_name')
send_keys $AD_CONTACTNAME "$ITEM_CONTACTNAME"
# Click Continue Button
#
local button_continue=($(find_element 'name' 'go'))
click ${button_continue}
# 5. Map Page
# Street
#
local AD_STREET=$(find_element 'name' 'xstreet0')
send_keys $AD_STREET "$ITEM_STREET"
# Cross Street
#
local AD_CROSSSTREET=$(find_element 'name' 'xstreet1')
send_keys $AD_CROSSSTREET "$ITEM_CROSSSTREET"
# City (use same variables as last page)
#
local AD_CITY=$(find_element 'name' 'city')
send_keys $AD_CITY "$ITEM_CITY"
# Postal (use same variables as last page)
#
local AD_POSTAL=$(find_element 'name' 'POSTAL')
send_keys $AD_POSTAL "$ITEM_POSTAL"
# Click Find Button
#
local button_find=$(find_element 'id' 'search_button')
click ${button_find}
# Click Continue Button (class name with space just ignore the anything after the 1st word)
#
local button_continue=($(find_element 'class name' 'continue'))
click ${button_continue}
# 6. Add Images: Max 24 images
# Add Images Button
# done with images
local button_donewithimages=($(find_element 'class name' 'done'))
click ${button_donewithimages}
}
main
# stop chromedriver
killall chromedriver