123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110 |
- <?PHP
- include("Source/cachefix.php");
- include("Source/sql.php");
- include("Source/sign.php");
- include("Source/userlist.php");
-
- $curLine = $_GET['lineNum'];
- $channel = "#omnimaga";
- if (isset($_GET['channel']))
- $channel = base64_url_decode($_GET['channel']);
- $nick = "0";
- if (isset($_GET['nick']))
- {
- $nick = base64_url_decode($_GET['nick']);
- $signature = base64_url_decode($_GET['signature']);
- if (!checkSignature($nick,$signature))
- $nick = "0";
- }
- $pm = false;
- if ($channel[0] == "*")
- {
- $sender = substr($channel,1);
- $channel = $nick;
- $pm = true;
- }
- $countBeforeQuit = 0;
- while (true)
- {
- if ($countBeforeQuit++ == 50)
- die();
- if ($nick != "0")
- UpdateUser($nick,$channel);
- CleanOfflineUsers();
- $query = sql_query("SELECT * FROM `irc_lines` WHERE `line_number` > %s AND (`channel` = '%s' OR `channel` = '%s' OR (`channel` = '%s' AND `name1` = '%s'))",$curLine + 0,$channel,$nick,$pm?$sender:"0", $nick);
- $result = mysql_fetch_array($query);
-
- $userSql = mysql_fetch_array(sql_query("SELECT * FROM `irc_ignorelist` WHERE name='%s'",strtolower($nick)));
- $ignorelist = "";
- if ($userSql["name"]!=NULL) {
- $ignorelist = $userSql["ignores"];
- }
-
- if (!isset($result[0]))
- {
- $result = mysql_fetch_array(sql_query("SELECT * FROM `irc_lines` WHERE `line_number` > %s AND locate('%s',`message`) != 0 AND NOT ((`type` = 'pm' AND `name1` <> '%s') OR (`type` = 'server'))",$curLine + 0,substr($nick,0,4), $nick));
- if (!isset($result[0])) {usleep(500000); continue;}
- if (strpos($userSql["ignores"],strtolower($result["name1"])."\n")===false) {
- echo $result['line_number'] . ":highlight:0:0:". base64_url_encode($result['channel']) . "::" . base64_url_encode($result['name1']) . ":" . base64_url_encode($result['message']);
- } else {
- echo $result['line_number'].":curline:0:0:";
- }
- die;
- }
- do {
- if (!isset($result['time'])) $result['time'] = time();
- if (strpos($userSql["ignores"],strtolower($result["name1"])."\n")===false) {
- switch (strtolower($result['type']))
- {
- case "pm":
- case "message":
- echo $result['line_number'] . ":" . $result['type'] . ":" . $result['Online'] . ":" . $result['time'] . ":" . base64_url_encode(htmlspecialchars($result['name1'])) . ":" . base64_url_encode(htmlspecialchars($result['message'])) . ':' . base64_url_encode(htmlspecialchars("0"));break;
- case "action":
- echo $result['line_number'] . ":" . $result['type'] . ":" . $result['Online'] . ":" . $result['time'] . ":" . base64_url_encode(htmlspecialchars($result['name1'])) . ":" . base64_url_encode(htmlspecialchars($result['message'])) . ':' . base64_url_encode(htmlspecialchars("0"));break;
- case "join":
- echo $result['line_number'] . ":" . $result['type'] . ":" . $result['Online'] . ":" . $result['time'] . ":" . base64_url_encode(htmlspecialchars($result['name1']));break;
- case "part":
- echo $result['line_number'] . ":" . $result['type'] . ":" . $result['Online'] . ":" . $result['time'] . ":" . base64_url_encode(htmlspecialchars($result['name1'])) . ":" . base64_url_encode(htmlspecialchars($result["message"]));break;
- case "kick":
- echo $result['line_number'] . ":" . $result['type'] . ":" . $result['Online'] . ":" . $result['time'] . ":" . base64_url_encode(htmlspecialchars($result['name1'])) . ":" . base64_url_encode(htmlspecialchars($result["name2"])) . ":" . base64_url_encode(htmlspecialchars($result["message"]));break;
- case "quit":
- echo $result['line_number'] . ":" . $result['type'] . ":" . $result['Online'] . ":" . $result['time'] . ":" . base64_url_encode(htmlspecialchars($result['name1'])) . ":" . base64_url_encode(htmlspecialchars($result["message"]));break;
- case "mode":
- echo $result['line_number'] . ":" . $result['type'] . ":" . $result['Online'] . ":" . $result['time'] . ":" . base64_url_encode(htmlspecialchars($result['name1'])) . ":" . base64_url_encode(htmlspecialchars($result["message"]));break;
- case "nick":
- echo $result['line_number'] . ":" . $result['type'] . ":" . $result['Online'] . ":" . $result['time'] . ":" . base64_url_encode(htmlspecialchars($result['name1'])) . ":" . base64_url_encode(htmlspecialchars($result["name2"]));break;
- case "topic":
- echo $result['line_number'] . ":" . $result['type'] . ":" . $result['Online'] . ":" . $result['time'] . ":" . base64_url_encode(htmlspecialchars($result['name1'])) . ":" . base64_url_encode(htmlspecialchars($result["message"]));break;
- case "reload":
- echo $result['line_number'] . ":" . $result['type'] . ":" . $result['Online'] . ":" . $result['time'] . "::";break;
- case "server":
- echo $result['line_number'] . ":" . $result['type'] . ":" . $result['Online'] . ":" . $result['time'] . ":" . base64_url_encode(htmlspecialchars($result['name1'])) . ":" . base64_url_encode(htmlspecialchars($result["message"]));break;
- case "topic":
- echo $result['line_number'] . ":" . $result['type'] . ":" . $result['Online'] . ":" . $result['time'] . ":" . base64_url_encode(htmlspecialchars($result['name1'])) . ":" . base64_url_encode(htmlspecialchars($result["message"]));break;
- }
- echo "\n";
- } else {
- echo $result['line_number'].":curline:0:0:";
- }
- } while ($result = mysql_fetch_array($query));
- break;
- }
- ?>
|