]> Dogcows Code - chaz/chatty/blobdiff - extra/cometd/Meteor/Message.pm
import meteord-1.06
[chaz/chatty] / extra / cometd / Meteor / Message.pm
diff --git a/extra/cometd/Meteor/Message.pm b/extra/cometd/Meteor/Message.pm
new file mode 100644 (file)
index 0000000..eb9ac03
--- /dev/null
@@ -0,0 +1,131 @@
+#!/usr/bin/perl -w
+###############################################################################
+#   Meteor
+#   An HTTP server for the 2.0 web
+#   Copyright (c) 2006 contributing authors
+#
+#   Subscriber.pm
+#
+#      Description:
+#      Meteor message object
+#
+###############################################################################
+#
+#   This program is free software; you can redistribute it and/or modify it
+#   under the terms of the GNU General Public License as published by the Free
+#   Software Foundation; either version 2 of the License, or (at your option)
+#   any later version.
+#
+#   This program is distributed in the hope that it will be useful, but WITHOUT
+#   ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+#   FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
+#   more details.
+#
+#   You should have received a copy of the GNU General Public License along
+#   with this program; if not, write to the Free Software Foundation, Inc.,
+#   59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+#
+#   For more information visit www.meteorserver.org
+#
+###############################################################################
+
+package Meteor::Message;
+###############################################################################
+# Configuration
+###############################################################################
+       
+       use strict;
+
+###############################################################################
+# Factory methods
+###############################################################################
+sub new {
+       #
+       # Create a new empty instance
+       #
+       my $class=shift;
+       
+       my $obj={};
+       
+       bless($obj,$class);
+}
+       
+sub newWithID {
+       #
+       # new instance from new server connection
+       #
+       my $self=shift->new();
+       my $id=shift;
+       my $text=shift || '';
+       
+       $self->{'timestamp'}=time;
+       $self->{'id'}=$id;
+       $self->{'text'}=$text;
+       
+       $::Statistics->{'unique_messages'}++;
+               
+       $self;
+}
+
+###############################################################################
+# Instance methods
+###############################################################################
+sub setText {
+       my $self=shift;
+       my $text=shift || '';
+       
+       $self->{'text'}=$text;
+}
+
+sub channelName {
+       shift->{'channel'};
+}
+
+sub setChannelName {
+       my $self=shift;
+       my $channelName=shift || '';
+       
+       $self->{'channel'}=$channelName;
+}
+
+sub text {
+       shift->{'text'};
+}
+
+sub id {
+       shift->{'id'};
+}
+
+sub timestamp {
+       shift->{'timestamp'};
+}
+
+sub message {
+       
+       shift->messageWithTemplate($::CONF{'MessageTemplate'});
+}
+
+sub messageWithTemplate {
+       my $self=shift;
+       my $msg=shift;
+       
+       $msg=~s/~([^~]*)~/
+               if(!defined($1) || $1 eq '')
+               {
+                       '~';
+               }
+               elsif(exists($self->{$1}))
+               {
+                       $self->{$1};
+               }
+               else
+               {
+                       '';
+               }
+       /gex;
+       
+       $msg;
+}
+
+1;
+############################################################################EOF
\ No newline at end of file
This page took 0.022275 seconds and 4 git commands to generate.