X-Git-Url: https://ruin.nu/git/?a=blobdiff_plain;ds=inline;f=Commands%2FMembers.pm;h=960728904c05feea288bba004d1757a5c0a231ec;hb=84f84122d6e27123f026630ad1fa78e0f00520ac;hp=dbfa1f416f6b01495dee17db37903bb7893b8b39;hpb=76262702ab0181b0ec9d4f748eb9f1932375a032;p=NDIRC.git
diff --git a/Commands/Members.pm b/Commands/Members.pm
index dbfa1f4..9607289 100644
--- a/Commands/Members.pm
+++ b/Commands/Members.pm
@@ -32,20 +32,19 @@ sub def
{
my ($self,$c,$msg) = @_;
my $f = $c->model->prepare(q{
-SELECT (c.landing_tick - tick()) AS eta, concat(i.shiptype||'/') AS shiptype
- , dc.username
+SELECT (c.landing_tick - tick()) AS eta
+ ,array_to_string(array_agg(i.shiptype),'/') AS shiptype
+ ,dc.username
FROM calls c
- JOIN incomings i ON i.call = c.id
+ JOIN incomings i USING (call)
LEFT OUTER JOIN users dc ON dc.uid = c.dc
- JOIN users u ON u.uid = c.member
-WHERE open AND (c.landing_tick - tick()) >= 7
-GROUP BY c.id,c.landing_tick,dc.username
+WHERE status = 'Open' AND (c.landing_tick - tick()) >= 7
+GROUP BY call,c.landing_tick,dc.username
ORDER BY c.landing_tick;
});
$f->execute();
my $calls = "";
while (my @row = $f->fetchrow()){
- chop($row[1]);
my $dc = $row[2] // '';
$calls .= " (Anti $row[1] ETA: $row[0] DC: $dc) |"
}
@@ -64,7 +63,7 @@ sub raids
my $f = $c->model->prepare(q{
SELECT id FROM raids
WHERE open AND not removed AND tick + waves - 7 > tick()
-AND id IN (SELECT raid FROM raid_access WHERE gid = 2)
+AND id IN (SELECT raid FROM raid_access WHERE gid = 'M')
});
$f->execute();
my $calls = "";
@@ -81,7 +80,7 @@ sub points
{
my ($self,$c,$msg) = @_;
my $f;
- my $nick = $c->host;
+ my $nick = $c->uid;
if ($msg =~ /(\S+)/ && $c->check_user_roles(qw/irc_points_others/)){
$nick = $1;
$f = $c->model->prepare(q{
@@ -91,7 +90,7 @@ FROM users WHERE username ILIKE ? LIMIT 5
}else{
$f = $c->model->prepare(q{
SELECT username, attack_points, defense_points, scan_points, humor_points
-FROM users WHERE hostmask ILIKE ?
+FROM users WHERE uid = ?
});
}
$f->execute($nick);
@@ -107,10 +106,13 @@ sub sms
my ($self,$c,$msg) = @_;
my ($nick) = $msg =~ /(\S+)/ or die 'ARGS';
my $f = $c->model->prepare(q{
-SELECT username,COALESCE(sms,'nothing added') FROM users WHERE username ILIKE ?
+SELECT username,COALESCE(sms,'nothing added'), call_if_needed, timezone, sms_note
+ ,to_char(NOW() AT TIME ZONE timezone,'HH24:MI') AS time
+FROM users WHERE username ILIKE ?
});
- if (my ($username,$sms) = $c->model->selectrow_array($f,undef,$nick)){
- $c->reply("$username has sms $sms");
+ if (my ($username,$sms, $call, $timezone, $note, $time) = $c->model->selectrow_array($f,undef,$nick)){
+ $call = $call ? 'Wake up if needed' : 'Do not wake up';
+ $c->reply("$username has sms $sms, $call, $time ($timezone), $note ");
}else{
$c->reply("No hit, maybe spelling mistake, or add % as wildcard");
}
@@ -123,4 +125,28 @@ sub links
$c->reply("https://nd.ruin.nu/");
}
+sub forum
+ : Help(syntax: .forum [nick] | not everyone have access to check for others.)
+{
+ my ($self,$c,$msg) = @_;
+ my $dbh = $c->model;
+
+ my $user;
+ if ($msg =~ /(\S+)/ && $c->check_user_roles('irc_forum_others')){
+ $user = $dbh->selectrow_hashref(q{
+SELECT uid,username FROM users WHERE username ILIKE ?
+ }, undef, $1);
+ }else{
+ $user = $dbh->selectrow_hashref(q{
+SELECT uid,username FROM users WHERE uid = ?
+ }, undef, $c->uid);
+ }
+ if ($user){
+ my $unread = $dbh->selectrow_hashref(q{SELECT * FROM unread_posts($1)},undef,$user->{uid});
+ if ($unread){
+ $c->reply("$user->{username} has $unread->{new} posts since your last forum visit ($unread->{unread} unread posts in total) https://nd.ruin.nu/forum/allUnread");
+ }
+ }
+}
+
1;