From e9192b3d42660a5781101df4357d276318151e8a Mon Sep 17 00:00:00 2001 From: Jules Laplace Date: Fri, 2 Aug 2013 17:14:41 -0500 Subject: cgi-bin & lib --- cgi-bin/users | 228 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 228 insertions(+) create mode 100755 cgi-bin/users (limited to 'cgi-bin/users') diff --git a/cgi-bin/users b/cgi-bin/users new file mode 100755 index 0000000..b82a823 --- /dev/null +++ b/cgi-bin/users @@ -0,0 +1,228 @@ +#!/usr/bin/perl +######################################### +# display userlist +######################################### + +use localbucky; +use invite; + +$dbh = DBI->connect ($dsn); + +($USER, $lastlog) = checkin(); +logout() if ($USER == -1); + + my $users = get_all_users(); + my $keywords = get_keywords(); + + header( $BUCKY_CONFIG->{USERLIST_TITLE} ); + menu(); + + our $command = -1; + + print qq(); + print qq(\n
\n); + + display_user_list($users); + + print qq(\n); + + invite_result_box($command, $hash, $result) if ($command != -1); + invite_create_box() if ($USER->{'ulevel'} > 1); + grass_box($users); + + print qq(
\n\n); + + footer(); + +sub grass_box + { + my ($users) = @_; + print qq(
); + print qq(newest users\n); + my $i = 0; + print ""; + foreach my $duder (sort_by_firstseen(@$users)) + { + next if ($duder->{ulevel} < 1); + next if ($duder->{firstseen} == 0); + my $z_date = verbosedate($duder->{firstseen}); + my $z_user = $duder->{username}; + my $z_grass = $duder->{grass}; + print qq(); + print qq(); + print qq(); + print qq(); + print qq(); + if (length($z_grass)) + { + print qq(); + print qq(); + print qq(); + } + last if (++$i == 20); + } + print qq(

\n
$z_user$z_date
); + print "$z_grass"; + print qq(
\n); + print qq(
\n); + } + +sub display_user_list + { + my ($users) = @_; + print qq[]; + print qq[\n]; + print qq(\n); +print <  + + + + +userrows + # print qq(\n) if ($USER->{ulevel} == 3); + print "\n"; + + my $r = 0; + my $i = 0; + my $today = 0; + my $neg = 0; + my $show_all = (exists($input->{showall})) ? 1 : 0; + + foreach my $duder (sort_by_username(@$users)) + { + next if ($duder->{ulevel} < 1); + my $vanished = + ( + $duder->{ccount} < 1 + && $duder->{fcount} < 1 + && (time - $duder->{lastseen}) > 14*24*3600 + ); + if ($vanished && !$show_all) + { + $neg++; + next; + } + print qq[]; + print_blank_cell(qq(profile · send message ·), "right", "blank"); + + my $image = get_profile_image($duder->{username}, $AVATAR_MED_PREFIX); + if ($image != -1) + { + my $av .= + qq(). + qq(). + qq(); + print_user_cell($av); + } + else + { + print_user_cell(qq()); + } + + if ($duder->{ulevel} > 1 && $USER->{ulevel} == 3 && $show_all) + { + print_user_cell("· ".$duder->{username}); + } + elsif ($vanished) + { + print_user_cell("".$duder->{username}.""); + } + else + { + $duder->{username} =~ s/\n/
/g; + print_user_cell($duder->{username}); + } + + $duder->{realname} =~ s/\s/ /g; + if ($vanished) + { print_user_cell("".$duder->{realname}.""); } + else + { print_user_cell($duder->{realname}); } + + my $col = carbondate($duder->{lastseen}, 0); + $today++ if ($col eq "new"); + if ($vanished) + { + print_user_cell(qq!!.(get_age($duder->{lastseen})).qq! ago!, "right"); + } + else + { + print_user_cell(qq!!.(get_age($duder->{lastseen})).qq!!, "right"); + } + + if ($USER->{ulevel} == 3) + { + if ($duder->{ccount} == 0) + { print_user_cell(" "); } + else + { print_user_cell(" ".hushnull($duder->{ccount}, "c", 1)."", "right"); } + + if ($duder->{fcount} == 0) + { print_user_cell(" "); } + else + { print_user_cell(" ".hushnull($duder->{fcount}, "f", 1)." ", "right"); } + } + + my $cell = ''; + foreach my $sticky (split_keys($duder->{stickies})) + { + my $key = $keywords->{$sticky}; + if ($key->{owner} eq $USER->{username} || check_op($key) || $USER->{ulevel} == 3) + { + $cell .= qq($sticky, ); + } + } + $cell =~ s/, $//; + print_user_cell($cell); + + print qq[]; + $r = $r ? 0 : 1; + $i++; + } + + print qq(\n); + print < +approvefoot + } + +sub print_user_cell + { + my ($v, $align) = @_; + my ($lpx, $rpx) = ("4px", "2px"); + ($lpx, $rpx) = ("2px", "4px") if ($align eq "right"); + $align = "left" unless ($align); + print qq[]; + } + +sub print_blank_cell + { + my ($v) = @_; + print qq[]; + } + +sub print_sinks + { + $cell = ' '; + foreach my $sticky (split_keys($duder->{sink})) + { + my $key = $keywords->{$sticky}; + if ($key->{owner} eq $USER->{username} || check_op($key) || $USER->{ulevel} == 3) + { + $cell .= qq($sticky, ); + } + } + $cell =~ s/, $//; + print_user_cell($cell); + } + +sub sort_by_username { sort { uc($a->{username}) cmp uc($b->{username}) } @_; } +sub sort_by_firstseen { sort { uc($b->{firstseen}) <=> uc($a->{firstseen}) } @_; } + +$dbh->disconnect (); +print "Users: " . &report_time() . "\n" if $timer; + -- cgit v1.2.3-70-g09d2
 usernamerealnameidle  
) . + qq(total: $i users \($today seen today); + print qq(, $neg vanished) if (!$show_all && $USER->{ulevel} > 2); + print qq(\) 
$v$v