Fixes + Roller Listings (Pin)

This commit is contained in:
Cyrille L 2022-03-10 14:47:00 +01:00
parent 94bc7af2ab
commit eff3b78fa9
5 changed files with 109 additions and 42 deletions

View File

@ -144,10 +144,6 @@ fi
touch "$gsl_file_db_post"
# Check webserver files
[[ -f $gsl_srv_wip_page ]] \
&& gsl_process=wip
# Main Print
printf '%s\n%s\n%s\n' \
"Post:${PWD}/$gsl_post:$gsl_post_hash:$gsl_post_size" \

View File

@ -26,14 +26,15 @@ cat -n "$gsl_srv_wip_page"
#======================================================================
gsl__srv_sync() {
# Sync Files and Folders
mkdir -p "$gsl_srv_wip"
for folder in `find $gsl_this_conf_domain/* -type d`
do
rsync -a "$folder" "$gsl_srv_wip" && \
rsync -a --delete "$folder" "$gsl_srv_wip" && \
gsl__logs_print \
"$gsl_log_w" \
"Server" \
"Sync" \
"$folder" \
"$folder in" \
"$gsl_srv_wip"
done
}
@ -79,9 +80,9 @@ fi
}
#======================================================================
# Create Post Listing
# latest Posts listing Manager
#======================================================================
gsl__page_create_listing() {
gsl__page_listing_create() {
# Check if Post is in list ; Status Made
gsl_checker_war=true
gsl_listing_file="$gsl_dir_domain_listings/$gsl_post.list"
@ -90,47 +91,46 @@ if [[ `ls -1 "$gsl_listing_file"* 2>/dev/null` ]];then
gsl__logs_print \
"$gsl_log_w" \
"Post" \
"List" \
"$gsl_post_list $gsl_post already added to Latests" \
"Latest" \
"$gsl_post_list $gsl_post ; already added to Listing" \
"$gsl_dir_domain_listings/"
return
fi
case "$gsl_post_list" in
Pin)
gsl__page_create_listing_file "$gsl_listing_file.1"
gsl_listing_start_n=1
[[ $gsl_post_pin ]] \
&& sed -i "s|gsl_post_pin.*|gsl_post_pin=$gsl_header_title|" \
"$gsl_this_conf_domain/$gsl_find_domain.conf" \
|| echo "gsl_post_pin=$gsl_header_title" \
>> "$gsl_this_conf_domain/$gsl_find_domain.conf"
;;
Add)
# search for last listing number
gsl_listing_last=`
ls -1 *"$gsl_dir_domain_listings/"*".list."* \
| tail -1 2>/dev/null`
# Get Last listing number
! [[ $gsl_listing_last ]] \
&& gsl_listing_last_n=0 \
|| gsl_listing_last_n=${gsl_listing_last: -1}
# Set last listing number for this post
(( $gsl_listing_last_n <= $(( gsl_list_max_posts - 1)) )) \
&& gsl_listing_last_n=$(( $gsl_listing_last_n + 1 ))
gsl__page_create_listing_file \
"$gsl_listing_file.$gsl_listing_last_n"
# Check if a post is pinned
[[ $gsl_post_pin ]] \
&& gsl_listing_start_n=2 \
|| gsl_listing_start_n=1
;;
esac
cat "$gsl_dir_domain_listings/"*.list.* \
gsl__page_listing_roller
gsl__page_listing_create_file "$gsl_listing_file.$gsl_listing_start_n"
cat `ls -1r "$gsl_dir_domain_listings/"*.list.*` \
> "$gsl_dir_domain_tpl/last-posts-list.html" \
&& gsl__logs_print \
"$gsl_log_w" \
"Post" \
"List" \
"Create Latest Listing (Merged .list.*)"\
"Latest" \
"Create Listing (Merged .list.*)"\
"$gsl_dir_domain_tpl/last-post-list.html"
}
gsl__page_create_listing_file() {
#======================================================================
# Create HTML List from selected Post
#======================================================================
gsl__page_listing_create_file() {
cat << EOPostSide > "$1"
<li>
<span class="${gsl_site_css}_list-post-title">$gsl_header_title</span>
@ -142,11 +142,76 @@ EOPostSide
gsl__logs_print \
"$gsl_log_w" \
"Post" \
"List" \
"$gsl_post_list $gsl_post to Latests"\
"Latest" \
"$gsl_post_list $gsl_post to Listing" \
"$1"
}
#======================================================================
# latest Posts listing Rolling
#======================================================================
gsl__page_listing_roller() {
gsl__page_listing_file_mv() {
for n in `seq $gsl_listing_start_n $(( gsl_listing_last_n )) | sort -r`
do
gsl_listing_this_post=`ls -1 "$gsl_dir_domain_listings/"*".list.$n"`
gsl_listing_tmp_no_n=`echo ${gsl_listing_this_post%.*}`
gsl_listing_new_post="$gsl_listing_tmp_no_n.$(( n + 1 ))"
mv "$gsl_listing_this_post" \
"$gsl_listing_new_post"
done
gsl__logs_print \
"$gsl_log_w" \
"Post" \
"Latest" \
"Roll from Listing" \
"$gsl_dir_domain_listings/*.list.*"
}
# search for last listing number
gsl_listing_last=`
ls -1 "$gsl_dir_domain_listings/"*".list."* 2>/dev/null \
| tail -1`
if [[ $gsl_listing_last ]];then
# A Post is Pinned
if [[ $gsl_post_pin ]];then
gsl__logs_print \
"$gsl_log_w" \
"Post" \
"Latest" \
"Remove Pin $gsl_listing_rm_post_name from Listing" \
"$gsl_listing_rm_post_uri"
fi
# Get Last listing number
gsl_listing_last_n=${gsl_listing_last: -1}
# Remove last file
if (( $gsl_listing_last_n == $gsl_list_max_posts ));then
gsl_listing_rm_post_uri=`
ls -1 "$gsl_dir_domain_listings/"*".list.$gsl_list_max_posts"`
gsl_listing_rm_post_name=`
basename "$gsl_listing_rm_post_uri" | awk -F"." '{print $1"."$2}'`
rm -f "$gsl_dir_domain_listings/"*".list.$gsl_list_max_posts" && \
gsl__logs_print \
"$gsl_log_w" \
"Post" \
"Latest" \
"Remove $gsl_listing_rm_post_name from Listing" \
"$gsl_listing_rm_post_uri"
gsl_listing_last_n=4
fi
# Roll each ones + 1
gsl__page_listing_file_mv
fi
}
#----------------------------------------------------------------------
# Create Final HTML Post/Page
#----------------------------------------------------------------------

View File

@ -93,14 +93,16 @@ case "$gsl_post_type" in
"${PWD}/$gsl_post"
;;
*)
sed -i "s|$gsl_marker_type.*|${gsl_marker_type}post|" \
gsl_post_type="post"
sed -i "1i$gsl_marker_type$gsl_post_type" \
"$gsl_post" && \
gsl__logs_print \
"$gsl_log_w" \
"Post" \
"Set as" \
"Default $gsl_post_type: $gsl_post" \
"Default: $gsl_post_type for $gsl_post" \
"${PWD}/$gsl_post"
gsl__get_sum "$gsl_post"
;;
esac
}
@ -205,9 +207,9 @@ if (( "$gsl_count_links" > 0 ));then
# Check URL
gsl_url_status=`
curl -o /dev/null --silent --head --write-out \
timeout 3 curl -o /dev/null --silent --head --write-out \
'%{http_code}' \
"$gsl_post_hf_2" 2>/dev/null`
"$gsl_post_hf_2" 2>/dev/null || gsl_utl_status=408`
case "$gsl_url_status" in
1*|2*|3*)
@ -562,6 +564,7 @@ if ! [[ "$gsl_slug_err" ]];then
"Changed: $gsl_header_slug_test" \
"${PWD}/$gsl_post"
gsl__get_sum "$gsl_post"
gsl_header_slug=$gsl_header_slug_test
gsl_checker_war=true

View File

@ -19,11 +19,10 @@ unset gsl_check_done
gsl_a11y_post=`mktemp`
gsl__post_content_only
mkdir -p "$gsl_srv_wip"
gsl__srv_sync
# Create Listng Page
gsl__page_create_listing
gsl__page_listing_create Add
gsl__do_italics "make" "$gsl_tmp_post" # First
gsl__do_header "make" "$gsl_marker_link" "$gsl_post"
@ -50,8 +49,11 @@ echo -ne "\r\033[2K"
rm -f "$gsl_tmp_post" # No more Needed tmp file post
# Create SRV folder according to post type
[[ "$gsl_post_type" == "post" ]] \
&& mkdir -p "$gsl_srv_wip/$gsl_header_slug/"
# Create HTML Page using gsl_a11y_post
# cat "$gsl_a11y_post"
gsl__page_creator
gsl__db_set_post_status

View File

@ -30,11 +30,12 @@ do
# Post too small
if (( "$gsl_post_size" <= $gsl_post_min_size ));then
gsl__logs_print \
"$gsl_log_e" \
"$gsl_log_w" \
"Post" \
"Size" \
"$gsl_post - Too small $gsl_post_size <= $gsl_post_min_size" \
"${PWD}/$gsl_post"
gsl_checker_war=true
continue
fi
@ -112,7 +113,7 @@ do
gsl__post_begin
gsl__get_needed_headers
gsl__page_prepare_datas
gsl__page_create_listing
gsl__page_listing_create "$gsl_post_list"
;;
*)
gsl__logs_print \