gsl-statique-litterateur/var/lib/gsl/scripts/gsl__db_manager

130 lines
4.0 KiB
Plaintext
Raw Normal View History

#!/bin/bash
# file: gsl__db_manager
# Folder: /var/lib/gsl/scripts
# By echolib
# License: GNU AFFERO GENERAL PUBLIC LICENSE Version 3, 19 November 2007
#=======================================================================
# Get Post Hash FROM DB posts.db
#=======================================================================
gsl__db_post_hash() {
gsl_db_post_hash=`
2022-02-14 02:57:58 +01:00
grep "$gsl_post" \
"$gsl_file_db_posts" \
| awk -F"|" '{print $3}'`
}
#=======================================================================
2022-02-17 17:21:35 +01:00
# Check Post exists and get line NBR in DB | $1 DB file
#=======================================================================
gsl__db_post_exists() {
2022-02-17 17:21:35 +01:00
case "$1" in
"$gsl_file_db_posts")
gsl_db_post_exists=`
grep -n "$gsl_post" "$1"`
gsl_db_post_line_nbr=`
awk -F":" '{print $1}' <<< "$gsl_db_post_exists"`
gsl_db_post_status=`
awk -F"|" '{print $4}' <<< "$gsl_db_post_exists"`
;;
"$gsl_file_db_stats")
gsl_db_stat_exists=`
grep -n "$gsl_post" "$1"`
gsl_db_stat_line_nbr=`
awk -F":" '{print $1}' <<< "$gsl_db_stat_exists"`
;;
esac
}
#=======================================================================
# From gsl__loop_posts: Write DB
#=======================================================================
gsl__db_line_post() {
case "$gsl_process" in
2022-02-14 02:57:58 +01:00
Checked)
2022-02-17 17:21:35 +01:00
#-------------------------------------------------------------------
# Check if post exists in DB stats.db and get line
#-------------------------------------------------------------------
if ! [[ "$gsl_checker_err" ]];then
gsl_db_stat_line=`
printf '%s%s%s%s%s%s%s%s%s%s\n' \
"$gsl_post|" \
"$gsl_post_stat_w|" \
"$gsl_post_stat_p|" \
"$gsl_post_stat_abbr|" \
"$gsl_post_stat_link|" \
"$gsl_post_stat_image|" \
"$gsl_post_stat_file|" \
"$gsl_post_stat_bq|" \
"$gsl_post_stat_bcode|" \
"${gsl_post_stat_mdb// /|}|"`
gsl__db_post_exists "$gsl_file_db_stats"
if [[ "$gsl_db_stat_line_nbr" ]];then
sed -i "${gsl_db_stat_line_nbr}s/.*/$gsl_db_stat_line/" \
"$gsl_file_db_stats" && \
gsl__logs_print \
"$gsl_log_w" \
"DB" \
"Stat" \
"Line:$gsl_db_stat_line_nbr $gsl_post" \
"$gsl_file_db_stats"
else
echo "$gsl_db_stat_line" >> "$gsl_file_db_stats" && \
gsl__logs_print \
"$gsl_log_w" \
"DB" \
"Stat" \
"Line:NEW $gsl_db_stat_line" \
"$gsl_file_db_stats"
fi
fi
#-------------------------------------------------------------------
2022-02-17 11:28:04 +01:00
# Check if post exists in DB posts.db and get line / status
2022-02-17 17:21:35 +01:00
#-------------------------------------------------------------------
2022-02-17 11:28:04 +01:00
gsl__db_post_exists "$gsl_file_db_posts"
[[ "$gsl_checker_err" ]] && \
[[ "$gsl_db_post_line_nbr" ]] \
&& sed -i "${gsl_db_post_line_nbr}d" "$gsl_file_db_posts" \
&& gsl__logs_print \
"$gsl_log_w" \
"DB" \
"Post" \
"Line:$gsl_db_post_line_nbr removed. Error in $gsl_post" \
"$gsl_file_db_posts" \
&& return
2022-02-17 17:21:35 +01:00
gsl_db_post_line=`
2022-02-14 02:57:58 +01:00
printf '%s%s%s%s%s\n' \
"$gsl_post_type|" \
2022-02-14 02:57:58 +01:00
"$gsl_post|" \
"$gsl_post_hash|" \
"$gsl_post_size|" \
"$gsl_process|"`
2022-02-17 11:28:04 +01:00
2022-02-14 02:57:58 +01:00
if [[ "$gsl_db_post_exists" ]];then
2022-02-17 17:21:35 +01:00
sed -i "${gsl_db_post_line_nbr}s/.*/$gsl_db_post_line/" \
2022-02-14 02:57:58 +01:00
"$gsl_file_db_posts" && \
gsl__logs_print \
"$gsl_log_w" \
"DB" \
"Post" \
2022-02-17 11:28:04 +01:00
"Line:REPLACED - $gsl_post - Hash: $gsl_post_hash" \
2022-02-14 02:57:58 +01:00
"$gsl_file_db_posts"
gsl_checker_war=true
else
2022-02-17 17:21:35 +01:00
echo "$gsl_db_post_line" \
2022-02-14 02:57:58 +01:00
>> "$gsl_file_db_posts" && \
gsl__logs_print \
"$gsl_log_i" \
"DB" \
"Post" \
2022-02-17 11:28:04 +01:00
"Line:NEW - $gsl_post - Hash: $gsl_post_hash" \
2022-02-14 02:57:58 +01:00
"$gsl_file_db_posts"
fi
;;
esac
}