Add favorite and boost counts to metadata line if they are greater than 0.

This commit is contained in:
Storm Dragon
2025-07-30 14:30:05 -04:00
parent 9d2dbca772
commit ab28e58018
+50 -13
View File
@@ -1407,6 +1407,7 @@ $dmmarkread = 1 if (!defined $dmmarkread); # Default to enabled
$notificationpause = 6 if (!defined $notificationpause); # NOT ||= ... zero is a VALID value! $notificationpause = 6 if (!defined $notificationpause); # NOT ||= ... zero is a VALID value!
$notificationpause = 0 if ($anonymous); $notificationpause = 0 if ($anonymous);
$notificationpause = 0 if ($pause eq '0'); $notificationpause = 0 if ($pause eq '0');
$notifies ||= 'boost,favourite,favorite'; # Default notification types for sound alerts (both spellings)
$ansi = ($noansi) ? 0 : $ansi = ($noansi) ? 0 :
(($ansi || $ENV{'TERM'} eq 'ansi' || $ENV{'TERM'} eq 'xterm-color') (($ansi || $ENV{'TERM'} eq 'ansi' || $ENV{'TERM'} eq 'xterm-color')
? 1 : 0); ? 1 : 0);
@@ -6492,7 +6493,7 @@ sub notifications_tdisplay {
my $sound_class = $type; my $sound_class = $type;
$sound_class = 'mention' if ($type eq 'mention'); $sound_class = 'mention' if ($type eq 'mention');
$sound_class = 'boost' if ($type eq 'reblog'); $sound_class = 'boost' if ($type eq 'reblog');
$sound_class = 'favourite' if ($type eq 'favourite'); $sound_class = 'favourite' if ($type eq 'favourite' || $type eq 'favorite');
$sound_class = 'follow' if ($type eq 'follow'); $sound_class = 'follow' if ($type eq 'follow');
# Process as individual post with proper class # Process as individual post with proper class
@@ -7025,10 +7026,11 @@ sub notificationrefresh {
my $sound_class = $type; my $sound_class = $type;
$sound_class = 'mention' if ($type eq 'mention'); $sound_class = 'mention' if ($type eq 'mention');
$sound_class = 'boost' if ($type eq 'reblog'); $sound_class = 'boost' if ($type eq 'reblog');
$sound_class = 'favourite' if ($type eq 'favourite'); $sound_class = 'favourite' if ($type eq 'favourite' || $type eq 'favorite');
$sound_class = 'follow' if ($type eq 'follow'); $sound_class = 'follow' if ($type eq 'follow');
print $stdout "-- DEBUG: Processing notification type '$type' as sound class '$sound_class'\n" if ($verbose); # Always debug notification types to help troubleshoot
print $stdout "-- DEBUG: Received notification type='$type', mapped to sound_class='$sound_class'\n" if ($verbose || $type eq 'favourite');
# Use existing notification display handler # Use existing notification display handler
if ($notification_display_only) { if ($notification_display_only) {
@@ -7144,12 +7146,21 @@ sub cordfav {
my $text = shift; my $text = shift;
my $verb = shift; my $verb = shift;
my ($en, $em) = &central_cd_dispatch("id=$id", $interactive, $basefav); # Substitute the post ID into the URL template
print $stdout "-- favourite $verb for post id #${id}: \"$text\"\n" my $fav_url = $basefav;
if ($interactive && !$en); $fav_url =~ s/%I/$id/;
print $stdout "*** (was the favourite already ${verb}?)\n"
if ($interactive && $en); print $stdout "-- DEBUG: cordfav called with id=$id, url=$fav_url\n" if ($verbose);
return 0; my ($en, $em) = &central_cd_dispatch("id=$id", $interactive, $fav_url);
print $stdout "-- DEBUG: central_cd_dispatch returned en=$en, em=$em\n" if ($verbose);
if ($interactive) {
if (!$en) {
print $stdout "-- favourite $verb for post id #${id}: \"$text\"\n";
} else {
print $stdout "*** (was the favourite already ${verb}?)\n";
}
}
return $en;
} }
# follow or unfollow a user # follow or unfollow a user
@@ -7399,10 +7410,27 @@ sub standardpost {
$info_line .= " [$cw_text]"; $info_line .= " [$cw_text]";
} }
# fediverse doesn't always do this right. # Add engagement stats (boosts and favorites) when > 0
$h = $ref->{'reblogs_count'}; $h += 0; #$h = "${h}+" if ($h >= 100); my $engagement_stats = '';
# fediverse doesn't always handle single reposts right. good f'n grief. my $boost_count = $ref->{'reblogs_count'} || 0;
$info_line = "(x${h}) $info_line" if ($h > 1 && !$noreblogs); my $fav_count = $ref->{'favorite_count'} || $ref->{'favourites_count'} || 0;
$boost_count += 0; # normalize to number
$fav_count += 0; # normalize to number
# Debug engagement counts
if ($verbose && ($boost_count > 0 || $fav_count > 0)) {
print $stdout "-- DEBUG: Engagement - boost_count=$boost_count, fav_count=$fav_count\n";
print $stdout "-- DEBUG: Fields - reblogs_count='" . ($ref->{'reblogs_count'} || 'undef') . "', favorite_count='" . ($ref->{'favorite_count'} || 'undef') . "', favourites_count='" . ($ref->{'favourites_count'} || 'undef') . "'\n";
}
# Build engagement stats for later use
if ($boost_count > 0 && !$noreblogs) {
$engagement_stats .= "boosts: ${boost_count}";
}
if ($fav_count > 0) {
$engagement_stats .= ($engagement_stats ? ", favorites: ${fav_count}" : "favorites: ${fav_count}");
}
# br3nda's modified timestamp patch (absolute timestamp) # br3nda's modified timestamp patch (absolute timestamp)
if ($timestamp) { if ($timestamp) {
@@ -7410,6 +7438,9 @@ sub standardpost {
$info_line = "[$ts] $info_line"; $info_line = "[$ts] $info_line";
} }
# Add engagement stats at the end of the info line
$info_line .= " ($engagement_stats)" if ($engagement_stats);
# Combine info line + content with newline separation # Combine info line + content with newline separation
$post = $info_line . "\n" . $post; $post = $info_line . "\n" . $post;
@@ -8032,6 +8063,12 @@ sub sendnotifies { # this is a default subroutine of a sort, right?
my $notify_enabled = $notify_list{$class} ? 'YES' : 'NO'; my $notify_enabled = $notify_list{$class} ? 'YES' : 'NO';
print $stdout "-- DEBUG: notify_list{$class} = $notify_enabled\n" if ($verbose); print $stdout "-- DEBUG: notify_list{$class} = $notify_enabled\n" if ($verbose);
# Special debug for favorite notifications
if ($class eq 'favourite' || $class eq 'favorite') {
print $stdout "-- DEBUG: FAVORITE NOTIFICATION - class='$class', enabled=$notify_enabled, initial_load=$initial_load_in_progress\n";
print $stdout "-- DEBUG: notify_list keys: " . join(',', keys %notify_list) . "\n";
}
# Send notification if we have a valid class, it's enabled, AND initial load is complete # Send notification if we have a valid class, it's enabled, AND initial load is complete
if (length($class) && $notify_list{$class} && !$initial_load_in_progress) { if (length($class) && $notify_list{$class} && !$initial_load_in_progress) {
print $stdout "-- DEBUG: Calling notifytype_dispatch for class='$class'\n" if ($verbose); print $stdout "-- DEBUG: Calling notifytype_dispatch for class='$class'\n" if ($verbose);