You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 

72 lines
1.7 KiB

#!/bin/bash
function usage {
cat <<- EOF
./scrape.sh [options]
Scrape facebook event pages.
OPTIONS:
-h --help -? print usage
--events File in JSON format that contains an array
of prevously parsed events.
-p --page Facebook page id. Scrape all events of a
specific facebook page.
--pages List of Facebook page ids. See examples for
format.
-o --output Output events into this path instead of
stdout.
NOTE:
Events and pages needs to be public. Private events or pages are not yet
supported.
EXAMPLES:
./scrape.sh -p livesentralen > events.json
./scrape.sh -p livesentralen -o events.json --events=events.json
EOF
}
function parse_args {
if [ "$1" = "" ]; then
usage
exit 0
fi
}
function install_node_dependencies {
if ! [ -d node_modules ]; then
yarn
fi
}
function check_dependencies {
local missing;
missing=false;
if [ ! $(command -v node) ]; then
echo "Dependency missing. Please install node.js and make it available to the path as 'node'."
missing=true
fi
if [ ! $(command -v yarn) ]; then
echo "Dependency missing. Please install yarn and make it available to the path as 'yarn'."
missing=true
fi
install_node_dependencies
if [ "${missing}" != "false" ]; then
exit 1;
fi
return 0;
}
function scrape {
node src/scrape.js "$1" || usage
}
check_dependencies \
&& parse_args "$@" \
&& scrape "$@"