Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- var http_server = context.CreateTcpServer();
- http_server.onaccept = 'http_server_accept';
- http_server.listen(5000, "0.0.0.0");
- function http_server_accept()
- {
- peer.onreadline = 'peer_readline';
- }
- function peer_readline()
- {
- if (peer.hand.length == 0)
- {
- var args = text.split(' ');
- if (args[0] == 'GET' || args[0] == 'POST')
- {
- peer.hand = args[1] + ' ' + args[2];
- }
- }
- else
- {
- if (text.length == 0)
- {
- processRequest(peer.hand.split(' ')[0]);
- peer.hand = '';
- }
- }
- }
- function sendResponse(response)
- {
- peer.sendline(peer.hand.split(' ')[1] + ' 200 OK');
- peer.sendline('Server: cubix 7.0');
- peer.sendline('Date: ' + new Date());
- peer.sendline('Content-Type: text/html');
- peer.sendline('Content-Length: ' + (response.length + 2));
- peer.sendline('');
- peer.sendline(response);
- //peer.disconnect();
- }
- function processRequest(document)
- {
- switch (document)
- {
- case '/':
- sendResponse("<h1>You are at the root directory</h1>");
- break;
- default:
- sendResponse(dumpChannel('#' + document.substring(1)));
- break;
- }
- }
- function dumpChannel(chan)
- {
- var chan = irc.channel(chan);
- var result = '';
- result += '<html>' + '\r\n';
- result += '<head>' + '\r\n';
- // result += '<meta http-equiv="refresh" content="5">' + '\r\n';
- result += '<style type="text/css">' + '\r\n';
- result += '<!--' + '\r\n';
- result += '@font-face { font-family:"Fixedsys Excelsior 2.00"; src: url("fixedsys.ttf"); }';
- result += 'table, td, th, h2 { border:1px solid orange; font-family:"Fixedsys Excelsior 2.00"; font-size: 11pt; }' + '\r\n';
- result += 'table { border-collapse:collapse; }' + '\r\n';
- result += 'th { background-color:orange; color:white; }' + '\r\n';
- result += 'h1 { font-weight: normal; }' + '\r\n';
- result += 'h2 { font-weight: normal; }' + '\r\n';
- result += 'title { font-size: 36pt; }' + '\r\n';
- result += 'a { text-decoration:none; }' + '\r\n';
- result += '--->' + '\r\n';
- result += '</style>' + '\r\n';
- result += '</head>' + '\r\n';
- result += '<body>' + '\r\n';
- result += '<h1><a href="http://chat.mibbit.com/?url=irc%3A%2F%2Fprog.ma%3A5556"><span class="title">' + chan + '</span></a> as of ' + new Date() + '</h1>' + '\r\n';
- result += '<h2><b>Topic:</b> ' + colorize(chan.topic) + '</h2>' + '\r\n';
- result += '<h2><b>Users:</b> ' + chan.users.count + '</h2>' + '\r\n';
- result += '<table border="0" width="100%" style="table-layout:fixed">' + '\r\n';
- result += '<col width="110">' + '\r\n';
- result += '<col width="550">' + '\r\n';
- result += '<col>' + '\r\n';
- result += '<tr>' + '\r\n';
- result += '<th>User</th>' + '\r\n';
- result += '<th>Full address</th>' + '\r\n';
- result += '<th>Real name</th>' + '\r\n';
- result += '</tr>' + '\r\n';
- for (var i = 0; i < chan.users.count; i++)
- {
- var user = chan.users(i);
- if (user.hasop(chan))
- {
- result += '<tr>' + '\r\n';
- result += '<td>@' + user.nickname + '</td>' + '\r\n';
- result += '<td>' + user.fulladdress + '</td>' + '\r\n';
- result += '<td>' + colorize(user.realname) + '</td>' + '\r\n';
- result += '</tr>' + '\r\n';
- }
- }
- for (var i = 0; i < chan.users.count; i++)
- {
- var user = chan.users(i);
- if (!user.hasop(chan) && user.hasvoice(chan))
- {
- result += '<tr>' + '\r\n';
- result += '<td>+' + user.nickname + '</td>' + '\r\n';
- result += '<td>' + user.fulladdress + '</td>' + '\r\n';
- result += '<td>' + colorize(user.realname) + '</td>' + '\r\n';
- result += '</tr>' + '\r\n';
- }
- }
- for (var i = 0; i < chan.users.count; i++)
- {
- var user = chan.users(i);
- if (!user.hasop(chan) && !user.hasvoice(chan))
- {
- result += '<tr>' + '\r\n';
- result += '<td> ' + user.nickname + '</td>' + '\r\n';
- result += '<td>' + user.fulladdress + '</td>' + '\r\n';
- result += '<td>' + colorize(user.realname) + '</td>' + '\r\n';
- result += '</tr>' + '\r\n';
- }
- }
- result += '</table>' + '\r\n';
- result += '</body>' + '\r\n';
- result += '</html>' + '\r\n';
- return result;
- }
- // Copyright (c) 2006 Chris Chabot <chabotc@xs4all.nl>
- //
- // this script is freely distributable under the terms of an MIT-style license.
- // For details, see the web site: http://www.chabotc.nl/
- function colorize (message) {
- var pageBack = 'white';
- var pageFront = 'black';
- var length = message.length;
- var newText = '';
- var bold = false;
- var color = false;
- var reverse = false;
- var underline = false;
- var foreColor = '';
- var backColor = '';
- for (var i = 0 ; i < length ; i++) {
- switch (message.charAt(i)) {
- case String.fromCharCode(2):
- if (bold) {
- newText += '</b>';
- bold = false;
- } else {
- newText += '<b>';
- bold = true;
- }
- break;
- case String.fromCharCode(3):
- if (color) {
- newText += '</span>';
- if (!backColor) {
- color = false;
- }
- }
- foreColor = '';
- if ((parseInt(message.charAt(i+1)) >= 0) && (parseInt(message.charAt(i+1)) <= 9)) {
- color = true;
- if ((parseInt(message.charAt(++i+1)) >= 0) && (parseInt(message.charAt(i+1)) <= 9)) {
- foreColor = getColor(parseInt(message.charAt(i)) * 10 + parseInt(message.charAt(++i)));
- } else {
- foreColor = getColor(parseInt(message.charAt(i)));
- }
- if ((message.charAt(i+1) == ',') && (parseInt(message.charAt(++i+1)) >= 0) && (parseInt(message.charAt(i+1)) <= 9)) {
- if ((parseInt(message.charAt(++i+1)) >= 0) && (parseInt(message.charAt(i+1)) <= 9)) {
- backColor = getColor(parseInt(message.charAt(i)) * 10 + parseInt(message.charAt(++i)));
- } else {
- backColor = getColor(parseInt(message.charAt(i)));
- }
- }
- }
- else {
- backColor = '';
- }
- if (foreColor) {
- newText += '<span style="color:'+foreColor;
- if (backColor) {
- newText += ';background-color:'+backColor;
- }
- newText += '">';
- }
- break;
- case String.fromCharCode(15):
- if (bold) {
- newText += '</b>';
- bold = false;
- }
- if (color) {
- newText += '</span>';
- color = false;
- }
- if (reverse) {
- newText += '</span>';
- reverse = false;
- }
- if (underline) {
- newText += '</u>';
- underline = false;
- }
- break;
- case String.fromCharCode(22):
- if (reverse) {
- newText += '</span>';
- reverse = false;
- } else {
- newText += '<span style="color:'+pageBack+';background-color:'+pageFront+'">';
- reverse = true;
- }
- case String.fromCharCode(31):
- if (underline) {
- newText += '</u>';
- underline = false;
- } else {
- newText += '<u>';
- underline = true;
- }
- default:
- newText += message.charAt(i);
- break;
- }
- }
- if (bold) newText += '</b>';
- if (color) newText += '</span>';
- if (reverse) newText += '</span>'
- if (underline) newText += '</u>';
- return newText;
- }
- function getColor(numeric)
- {
- var num = parseInt(numeric);
- switch (num) {
- case 0: return 'white';
- case 1: return 'black';
- case 2: return 'navy';
- case 3: return 'green';
- case 4: return 'red';
- case 5: return 'maroon';
- case 6: return 'purple';
- case 7: return 'orange';
- case 8: return 'yellow';
- case 9: return 'lime';
- case 10: return 'teal';
- case 11: return 'aqua';
- case 12: return 'blue';
- case 13: return 'fuchsia';
- case 14: return 'gray';
- default: return 'silver';
- }
- }
Add Comment
Please, Sign In to add comment