#!/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=` grep "$gsl_post" \ "$gsl_file_db_posts" \ | awk -F"|" '{print $3}'` } #======================================================================= # Check Post exists and get line NBR in DB | $1 DB file #======================================================================= gsl__db_post_exists() { 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 Checked) #------------------------------------------------------------------- # 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 #------------------------------------------------------------------- # Check if post exists in DB posts.db and get line / status #------------------------------------------------------------------- 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 gsl_db_post_line=` printf '%s%s%s%s%s\n' \ "$gsl_post_type|" \ "$gsl_post|" \ "$gsl_post_hash|" \ "$gsl_post_size|" \ "$gsl_process|"` if [[ "$gsl_db_post_exists" ]];then sed -i "${gsl_db_post_line_nbr}s/.*/$gsl_db_post_line/" \ "$gsl_file_db_posts" && \ gsl__logs_print \ "$gsl_log_w" \ "DB" \ "Post" \ "Line:REPLACED - $gsl_post - Hash: $gsl_post_hash" \ "$gsl_file_db_posts" gsl_checker_war=true else echo "$gsl_db_post_line" \ >> "$gsl_file_db_posts" && \ gsl__logs_print \ "$gsl_log_i" \ "DB" \ "Post" \ "Line:NEW - $gsl_post - Hash: $gsl_post_hash" \ "$gsl_file_db_posts" fi ;; esac }