Esempio n. 1
0
 function showTop10()
 {
     $category = isset($this->info['text']) ? $this->info['text'] : "chars";
     if ($this->info['isQuery']) {
         $output = "Top10 ('" . $category . "'): ";
         switch ($category) {
             case "chars":
                 $sql = "SELECT nick, SUM(chars) number FROM stats GROUP BY nick ORDER BY number DESC LIMIT 10";
                 break;
             case "words":
                 $sql = "SELECT nick, SUM(words) number FROM stats GROUP BY nick ORDER BY number DESC LIMIT 10";
                 break;
             case "lines":
                 $sql = "SELECT nick, SUM(`lines`) number FROM stats GROUP BY nick ORDER BY number DESC LIMIT 10";
                 break;
             case "actions":
                 $sql = "SELECT nick, SUM(actions) number FROM stats GROUP BY nick ORDER BY number DESC LIMIT 10";
                 break;
             case "smilies":
                 $sql = "SELECT nick, SUM(smilies) number FROM stats GROUP BY nick ORDER BY number DESC LIMIT 10";
                 break;
             case "kicks":
                 $sql = "SELECT nick, SUM(kicks) number FROM stats GROUP BY nick ORDER BY number DESC LIMIT 10";
                 break;
             case "kicked":
                 $sql = "SELECT nick, SUM(kicked) number FROM stats GROUP BY nick ORDER BY number DESC LIMIT 10";
                 break;
             case "modes":
                 $sql = "SELECT nick, SUM(modes) number FROM stats GROUP BY nick ORDER BY number DESC LIMIT 10";
                 break;
             case "topics":
                 $sql = "SELECT nick, SUM(topics) number FROM stats GROUP BY nick ORDER BY number DESC LIMIT 10";
                 break;
             case "wpl":
                 $sql = "SELECT nick, ROUND(SUM(words)/SUM(`lines`),2) number FROM stats GROUP BY nick ORDER BY number DESC LIMIT 10";
                 break;
             case "cpl":
                 $sql = "SELECT nick, ROUND(SUM(chars)/SUM(`lines`),2) number FROM stats GROUP BY nick ORDER BY number DESC LIMIT 10";
                 break;
             default:
                 $this->sendOutput("The category '" . $category . "' doesn't exist.");
                 return;
         }
     } else {
         $output = "Top10 ('" . $category . "') in " . $this->info['channel'] . ": ";
         $channel = addslashes($this->info['channel']);
         switch ($category) {
             case "chars":
                 $sql = "SELECT nick, chars number FROM stats WHERE channel='" . $channel . "' ORDER BY chars DESC LIMIT 10";
                 break;
             case "words":
                 $sql = "SELECT nick, words number FROM stats WHERE channel='" . $channel . "' ORDER BY words DESC LIMIT 10";
                 break;
             case "lines":
                 $sql = "SELECT nick, `lines` number FROM stats WHERE channel='" . $channel . "' ORDER BY `lines` DESC LIMIT 10";
                 break;
             case "actions":
                 $sql = "SELECT nick, actions number FROM stats WHERE channel='" . $channel . "' ORDER BY actions DESC LIMIT 10";
                 break;
             case "smilies":
                 $sql = "SELECT nick, smilies number FROM stats WHERE channel='" . $channel . "' ORDER BY smilies DESC LIMIT 10";
                 break;
             case "kicks":
                 $sql = "SELECT nick, kicks number FROM stats WHERE channel='" . $channel . "' ORDER BY kicks DESC LIMIT 10";
                 break;
             case "kicked":
                 $sql = "SELECT nick, kicked number FROM stats WHERE channel='" . $channel . "' ORDER BY kicked DESC LIMIT 10";
                 break;
             case "modes":
                 $sql = "SELECT nick, modes number FROM stats WHERE channel='" . $channel . "' ORDER BY modes DESC LIMIT 10";
                 break;
             case "topics":
                 $sql = "SELECT nick, topics number FROM stats WHERE channel='" . $channel . "' ORDER BY topics DESC LIMIT 10";
                 break;
             case "wpl":
                 $sql = "SELECT nick, ROUND(words/`lines`,2) number FROM stats WHERE channel='" . $channel . "' ORDER BY number DESC LIMIT 10";
                 break;
             case "cpl":
                 $sql = "SELECT nick, ROUND(chars/`lines`,2) number FROM stats WHERE channel='" . $channel . "' ORDER BY number DESC LIMIT 10";
                 break;
             default:
                 $this->sendOutput("The category '" . $category . "' doesn't exist.");
                 return;
         }
     }
     $res = $this->MySQL->sendQuery($sql);
     foreach ($res['result'] as $data) {
         $output .= libString::softhyphe($data['nick']) . " (" . $data['number'] . "), ";
     }
     $output = substr($output, 0, -2);
     $this->sendOutput($output);
 }