Translations of this page:

Desarrolladores: Coffee, TheLuciferSausage…

Configuración del foro

  • Idiomas disponibles: Español (por defecto), Inglés, Italiano, Rumano
  • Codificación de carácteres: UTF-8
  • Codificación del contenido: XHTML estricto
  • Canales públicos: Sí
  • Canales privados: Sí
  • Permitir anónimos: Sí
  • Permitir cambio de nick: No
  • Usuarios pueden borrar sus posts: No
  • Nombre del bot del chat: Server
  • Declarar inactividad de usuario: 2min
  • Máximo de mensajes en cada solicitud: 10
  • Máximo de usuarios: 100
  • Intervalo entre mensajes: 3seg
  • Longitud máxima de mensajes: 255
  • Kick: 5min
  • Duración de logs: 2 días
  • Logs públicos: No
  • Servidor por sockets: No ←— importante

Changelog

29 Abril 2008
  • Nuevo motor del chat en fase de pruebas
28 Abril 2008
  • Mostrar un mensaje en server tipo “Coffee connected to webchat” cuando alguien se conecta
27 Abril 2008
  • Límitación de carácteres
  • Protección contra XSS
  • Vincular Chat con SMF/QKEY
  • Añadida función “enviar sólo a web”
  • Añadida función “recibir sólo de web”
  • Los baneados del juego no pueden hablar
26 Abril 2008
  • Mejorada la sobrecarga de Ajax en el cliente
  • Colorear chat web
  • Server a web
  • Autovaciado de la BD
  • Web a Server sin el “console:”

Estado y lista de funciones por completar

  • Vincular Chat con QKEY
  • Colorear mensajes ^0-9
  • Cuando el usuario usa ^r o otros carácteres que no son números no se detecta. Hay alguna regla para eso? Pasarlo a ASCII o algo por el estilo?
  • Ver gente conectada al chat web con ”!info webchat”
  • Mostrar núm. de usuarios conectados al server y lista de ellos al lado del chat.
  • Poder activar un checkbox para ver detalles tipo connected, killed, deconstructed…
  • Poder enviar MPs al servidor y usar comandos admin
  • Soporte para SccServer y TremX

De Server a web:

Ya esta hecho el script tremchat.py:

#!/usr/bin/python
from popen2 import popen2
from os import access, F_OK, system
from sys import argv
from urllib import urlopen, urlencode
class Logger:
        def __init__(self, logname, url):
                self.players=0;
                self.r,self.w=popen2("tail -fn0 %s" % logname);
 
                self.url=url
 
 
        def nextline(self):
                return self.r.readline();
        def say(self, rest):
                rest=rest.split(':');
                who=rest[0]
                msg=':'.join(rest[1:])
                #if msg[:5]=='!test':
                #       print("bingo");
 
                params=urlencode({'who':who, 'msg':msg});
                u=urlopen(self.url, params);
                print(u.read())
 
 
        def run(self):
                while(1):
                        l=self.nextline()
                        rdate=l[:7]
                        cmd=l[7:].split(':')[0]
                        rest=(':'.join(l[7:].split(':')[1:])).strip()
                        if(cmd=='ClientConnect'):
                                self.players+=1
                        elif(cmd=='ClientDisconnect'):
                                self.players-=1
                                if self.players<0:
                                        self.players=0
                        elif(cmd=='InitGame'):
                                self.players=0
                        elif(cmd=='say'):
                                self.say(rest)
 
                        else:
                                continue
 
 
if not len(argv)==3:
        print "Uso: %s <games.log> <url>" % argv[0]
else:
        l=Logger(argv[1], argv[2]);
        l.run()

Lo he probado ejecutándolo de esta manera:

 screen -dmS tremchat ./tremchat.py  .tremulous/base/games.log http://tremulous-spain.com/tremchat/index.php

Para verlo funcionado http://tremulous-spain.com/tremchat/ Y el index.php que he usado para probar que funciona es este:

function colorize($s)   {
$colors=array('0'=>'#505050','1'=>'#AA0000',
'2'=>'#00AA00','3'=>'#AAAA00','4'=>'#0000FF',
'5'=>'#00AAAA','6'=>'#AA00AA','7'=>'white',
'8'=>'#888888','9'=>'red');
$s=str_replace("&", "&amp;",$s);
$s=str_replace("<", "&lt;",$s);
$s=str_replace(">", "&gt;",$s);
$s='^7'.$s;
$s=explode('^', $s);
$o='';
foreach($s as $w) {
if(strlen($w)>1) {
$o.="<font color=\"{$colors[$w[0]]}\">".substr($w,1)."</font>";                 }                                                                               }                                                                               return $o;                                                                      }                                                
 
if($_SERVER['REQUEST_METHOD']=='POST' && $_SERVER['REMOTE_ADDR']=='78.47.88.170')       {
        $f=fopen("log.html", "a+");
        $who=colorize($_POST['who']);
        $msg=colorize($_POST['msg']);
        fwrite($f, "$who: $msg<br/>\n");
        fclose($f);
        }
else {
?>
<html><header><title>Console</title></header><body style="color: #fff; background-color: #000;">
<?php include 'log.html'; ?>
</body></html>
<?
 
}
?>

Archivos importantes del chat

  • Configuración: /lib/config.php y /lib/class/AJAXChat.php
  • Template: /lib/template/loggedIn.html
  • Theme: /css
  • Idiomas: /lib/lang y /js/lang
  • Sonidos: /sounds
  • Logs: /lib/template/logs.html
  • Emoticonos: /lib/js/config.js
 
web-server_live_chat.txt · Última modificación: 2008/04/30 02:00 por 83.37.220.35
 
Recent changes RSS feed Creative Commons License Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki