commit 8c0406d5d7e55dc0414437f2d0e1c19f0a04e043 Author: Eric Taylor Date: Tue Sep 30 09:48:55 2025 -0400 Inital commit diff --git a/chart_asset_data.sh b/chart_asset_data.sh new file mode 100755 index 0000000..705d91f --- /dev/null +++ b/chart_asset_data.sh @@ -0,0 +1,126 @@ +#!/bin/bash + +# Define input CSV file and temporary file for formatted data +input_file="assets_data.csv" +temp_file="total_asset_data_for_plot.txt" +temp_file2="cash_data_for_plot.txt" +output_png="total_assets.png" +output_png2="diamonds_on_hand.png" + + +# Extract date (without time) and total_assets columns for gnuplot +awk -F, 'NR > 1 { print substr($1, 1, 10), $4 }' "$input_file" > "$temp_file" + +# Extract date (without time) and diamonds columns for gnuplot +awk -F, 'NR > 1 { print substr($1, 1, 10), $3 }' "$input_file" > "$temp_file2" + +# Debugging Step: Print the first few lines of the temporary file to verify the output +# echo "Sample data from $temp_file2:" +# head -n 5 "$temp_file2" + +# Plot with gnuplot in ASCII mode +gnuplot <<- EOF + set datafile separator " " + set xdata time + set timefmt "%Y-%m-%d" + set format x "%m-%d" # Display only month and day on x-axis + set format y "%.0f" # Display y-axis as plain numbers, no scientific notation + set title "Total Assets Over Time" + set xlabel "Date" + set ylabel "Total Assets" + set grid + set terminal dumb size 80,20 # ASCII output, size 80x20 + set autoscale xfixmin + set autoscale xfixmax + plot "$temp_file" using 1:2 with lines notitle +EOF + +# Plot with gnuplot in ASCII mode +gnuplot <<- EOF + set datafile separator " " + set xdata time + set timefmt "%Y-%m-%d" + set format x "%m-%d" # Display only month and day on x-axis + set format y "%.0f" # Display y-axis as plain numbers, no scientific notation + set title "On Hand Diamonds Over Time" + set xlabel "Date" + set ylabel "Diamonds" + set grid + set terminal dumb size 80,20 # ASCII output, size 80x20 + set autoscale xfixmin + set autoscale xfixmax + plot "$temp_file2" using 1:2 with lines notitle +EOF + +# Plot with gnuplot in PNG format (black background, white text, orange plot line) +#gnuplot <<- EOF +# set datafile separator " " +# set xdata time +# set timefmt "%Y-%m-%d" +# set format x "%m-%d" # Display only month and day on x-axis +# set format y "%.0f" # Display y-axis as plain numbers, no scientific notation +# set title "Total Assets Over Time" font ",14" textcolor rgb "#FFFFFF" +# set xlabel "Date" font ",12" textcolor rgb "#FFFFFF" #white +# set ylabel "Total Assets" font ",12" textcolor rgb "#FFFFFF" #white +# set grid linecolor rgb "#FFFFFF" # White grid lines +# set xtics textcolor rgb "#FFFFFF" # White x-axis labels +# set ytics textcolor rgb "#FFFFFF" # White y-axis labels +# set border linecolor rgb "#FFFFFF" # White border +# set terminal pngcairo size 800,600 enhanced font 'Arial,10' background rgb "black" # PNG output with black background +# set output "$output_png" +# set style line 1 linecolor rgb "#FE6A00" linetype 1 linewidth 2 # Orange plot curve (#FE6A00) +# set autoscale xfixmin +# set autoscale xfixmax +# plot "$temp_file" using 1:2 with lines ls 1 +#EOF + +# Plot with gnuplot in PNG format (transparent background, white text, orange plot line) +gnuplot <<- EOF + set datafile separator " " + set xdata time + set timefmt "%Y-%m-%d" + set format x "%m-%d" # Display only month and day on x-axis + set format y "%.0f" # Display y-axis as plain numbers, no scientific notation + set title "Total Assets Over Time" font ",14" textcolor "#FFFFFF" + set xlabel "Date" font ",12" textcolor "#FFFFFF" + set ylabel "Total Assets" font ",12" textcolor "#FFFFFF" + set grid linecolor rgb "#FFFFFF" # White grid lines + set xtics textcolor rgb "#FFFFFF" # White x-axis labels + set ytics textcolor rgb "#FFFFFF" # White y-axis labels + set border linecolor rgb "#FFFFFF" # White border + set terminal pngcairo size 400,300 enhanced font 'Arial,10' background rgb "black" # BLACK background + set output "$output_png" + set style line 1 linecolor rgb "#FE6A00" linetype 1 linewidth 2 # Orange plot curve (#FE6A00) + set autoscale xfixmin + set autoscale xfixmax + plot "$temp_file" using 1:2 with lines notitle ls 1 +EOF + + +gnuplot <<- EOF + set datafile separator " " + set xdata time + set timefmt "%Y-%m-%d" + set format x "%m-%d" # Display only month and day on x-axis + set format y "%.0f" # Display y-axis as plain numbers, no scientific notation + set title "Diamonds On Hand Over Time" font ",14" textcolor "#FFFFFF" + set xlabel "Date" font ",12" textcolor "#FFFFFF" + set ylabel "Diamonds" font ",12" textcolor "#FFFFFF" + set grid linecolor rgb "#FFFFFF" # White grid lines + set xtics textcolor rgb "#FFFFFF" # White x-axis labels + set ytics textcolor rgb "#FFFFFF" # White y-axis labels + set border linecolor rgb "#FFFFFF" # White border + set terminal pngcairo size 400,300 enhanced font 'Arial,10' background rgb "black" # BLACK background + set output "$output_png2" + set style line 1 linecolor rgb "#2CB9CF" linetype 1 linewidth 2 # teal plot curve + set autoscale xfixmin + set autoscale xfixmax + plot "$temp_file2" using 1:2 with lines notitle ls 1 +EOF + +# Copy the generated PNG file to the webserver via SSH +scp "$output_png" "$output_png2" root@taylors.life:/var/www/taylors/img/silver-dragon/ + +# Clean up temporary file +rm "$temp_file" +rm "$temp_file2" diff --git a/extract_assets.sh b/extract_assets.sh new file mode 100755 index 0000000..889be9b --- /dev/null +++ b/extract_assets.sh @@ -0,0 +1,39 @@ +#!/bin/bash + +# User ID (can be changed easily) +USER_ID="667" + +# URL of the webpage to extract the data from +URL="https://www.prismatic-imperium.com/user_page.php?user=$USER_ID" + +# CSV file to store the extracted data +CSV_FILE="/home/eric/assets_data.csv" + +# Check if the CSV file exists, if not, create it with headers +if [ ! -f "$CSV_FILE" ]; then + echo "CSV file does not exist. Creating it with headers." + echo "date,rank,diamonds,total_assets" > "$CSV_FILE" +fi + +# Fetch the webpage content and extract all the values within the user_assets_number span +values=$(curl -s "$URL" | grep -oP '(?<=)[^<]+') + +# Convert values to an array (this splits the values by newline) +IFS=$'\n' read -r -d '' -a value_array <<< "$values" + +# Remove commas from each value +user_rank=$(echo "${value_array[0]}" | tr -d ',') +liquid_assets=$(echo "${value_array[1]}" | tr -d ',') +total_assets=$(echo "${value_array[2]}" | tr -d ',') + +# Get the current date and time +current_datetime=$(date "+%Y-%m-%d %H:%M:%S") + +# Check if we have exactly 3 values (rank, diamonds, total_assets) +if [ ${#value_array[@]} -eq 3 ]; then + # Append the values to the CSV file + echo "$current_datetime,$user_rank,$liquid_assets,$total_assets" >> "$CSV_FILE" +else + # Error handling: print a message if values were not extracted properly + echo "Error: Could not extract all values or incorrect number of values." >&2 +fi