#!/usr/bin/env bash
#===============================================================================
#
# DIRECTORY:
# ---
#
# FILE:
# ./kik_plugin.sh
#
# USAGE:
# . kik_plugin.sh
# OR
# source kik_plugin.sh
#
# DESCRIPTION:
# Kik messenger plugin (library) to generate content with simple template engine.
#
# BUGS:
# ---
#
# TESTS:
# - shellcheck -s bash -e SC2034 ./kik_plugin.sh
# - shellcheck -s ksh -e SC2034 ./kik_plugin.sh
# - shellcheck -s dash -e SC2034 ./kik_plugin.sh
#
# AUTHOR:
# Patrick Neumann, patrick@neumannsland.de
#
# COAUTHOR(S):
# Odin Heitmann, odin.heitmann@gmail.com
#
# COMPANY:
# (privately)
#
# VERSION:
# 1.0
#
# LINK TO THE MOST CURRENT VERSION:
# (Sorry, we bet, I'm not allowed to publish it over GitHub!)
#
# CREATED:
# 2018-06-01
#
# COPYRIGHT (C):
# 2018 - Patrick Neumann & Odin Heitmann
#
# LICENSE:
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# WARRANTY:
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see .
#
# NOTES:
# ---
#
# TODO:
# ---
#
# HISTORY:
# 1.0 - P. N. & O. H. - Initial (for the trainers eyes only) release
#
#===============================================================================
#-------------------------------------------------------------------------------
# Check if functions library is loaded first.
#-------------------------------------------------------------------------------
if [ "${FUNCTIONS_LOADED}" != "true" ] ; then
printf "\\n\\033[01;31;40mERROR: functions library not loaded... EXIT!!!\\033[00m\\n\\n"
exit 200
fi
#-------------------------------------------------------------------------------
# Check if temblate engine library is loaded first.
#-------------------------------------------------------------------------------
if [ "${TEMPLATE_ENGINE_LOADED}" != "true" ] ; then
error_exit "template_engine.sh not loaded" 200
fi
#=== CONFIGURATION (static) ====================================================
#assign_binary "xyz" # (un)common
#=== FUNCTION ==================================================================
# NAME: get_kik_list
# DESCRIPTION: "Grep" information and store into vars.
# PARAMETERS: none (global vars will be used.)
#===============================================================================
get_kik_list () {
# "8e281be6657d4523710d96341b6f86ba89b56df7" in iTunes Backup.
readonly KIK_SQLITE="$( ${BIN_FIND} "${IOS_BACKUP}" -type f -name "kik.sqlite" )"
if ! [ -f "${KIK_SQLITE}" ] ; then
readonly KIK_SOURCE="kik.sqlite not found
"
error "kik.sqlite not found"
readonly KIK_CONTACTS="
ERROR: database not found! |
"
readonly KIK_MESSAGES="ERROR: database not found! |
"
else
KIK_SOURCE="${KIK_SQLITE/${IOS_BACKUP}/\/private\/var}
"
# Don't forget to copy write ahead log!
${BIN_CP} "${KIK_SQLITE}"* "${FOLDER}/"
readonly KIK_CONTACTS="$( ${BIN_SQLITE3} -html "${FOLDER}/kik.sqlite" \
"SELECT
Z_PK,
ZDISPLAYNAME,
ZFIRSTNAME,
ZLASTNAME,
ZUSERNAME
FROM
ZKIKUSER;" )"
readonly KIK_MESSAGES="$( ${BIN_SQLITE3} -html "${FOLDER}/kik.sqlite" \
"SELECT
m.Z_PK,
CASE WHEN m.ZTYPE=1 THEN 'received' WHEN m.ZTYPE=2 THEN 'sent' ELSE '(system)' END,
u.ZUSERNAME,
DATETIME(m.ZTIMESTAMP+978307200, 'unixepoch'),
m.ZBODY
FROM
ZKIKMESSAGE AS m,
ZKIKUSER AS u
WHERE
m.ZUSER=u.Z_PK;" )"
fi
if [ "${DEBUG}" = "on" ] ; then
${BIN_PRINTF} "INFO: kik_plugin processed.\\n" 1>&2
fi
}
#-------------------------------------------------------------------------------
# Partial template for hardware information for the simple template engine.
#-------------------------------------------------------------------------------
# SC2034: all "unused" vars are verified!
KIK_INFORMATION=$( ${BIN_CAT} <<'EOF'
Kik Messenger
Sources
Contacts
ID |
Displayname |
Firstname |
Lastname |
Username |
${KIK_CONTACTS}
Messages
ID |
Direction |
Username |
Date |
Message |
${KIK_MESSAGES}
EOF
)
readonly KIK_PLUGIN_LOADED="true"
if [ "${DEBUG}" = "on" ] ; then
${BIN_PRINTF} "INFO: kik_plugin.sh loaded.\\n" 1>&2
fi
# Do not use "exit" at the end of a sourced library!