###############################################################################
# YaBBC.pl #
###############################################################################
# YaBB: Yet another Bulletin Board #
# Open-Source Community Software for Webmasters #
# Version: YaBB 1 Gold - SP 1.3.1 #
# Released: December 2001; Updated April 18, 2003 #
# Distributed by: http://www.yabbforum.com #
# =========================================================================== #
# Copyright (c) 2000-2003 YaBB (www.yabbforum.com) - All Rights Reserved. #
# Software by: The YaBB Development Team #
# with assistance from the YaBB community. #
# Sponsored by: Xnull Internet Media, Inc. - http://www.ximinc.com #
###############################################################################
$yabbcplver = "1 Gold - SP 1.3.1";
$yyYaBBCloaded = 1;
sub decode_direction {
$_ = $_[0];
$_ =~ s~left~270~ig;
$_ =~ s~right~90~ig;
$_ =~ s~top~0~ig;
$_ =~ s~bottom~180~ig;
$_ =~ s~topright~45~ig;
$_ =~ s~bottomright~135~ig;
$_ =~ s~bottomleft~225~ig;
$_ =~ s~topleft~315~ig;
return $_;
}
sub validwidth {
return ( $_[0] > 400 ? 400 : $_[0] );
}
### Add More Smilies 3.0 - Make Smilies ###
sub MakeSmileys {
if ($SmilieURL[0] eq "") {&LoadSmilies;}
for( my $i = @SmilieURL; $i >= 0; $i-- ) {
if ($SmilieURL[$i]=~ /\//i) {$tmpurl = $SmilieURL[$i];} else {$tmpurl = qq~$smiliesurl/$SmilieURL[$i]~;}
foreach $tmpCode (split (/\s+/, $SmilieCode[$i])) {
$message =~ s~\Q$tmpCode\E~ $1~sg;
}
}
$message =~ s~\[smilie=(\w+)\.(gif|jpg|jpeg|png|bmp)\]~
~isg;
$message =~ s~\[smiley=(\w+)\.(gif|jpg|jpeg|png|bmp)\]~
~isg;
}
### Add More Smilies 3.0 - Make Smilies ###
$MAXIMGWIDTH = 400;
$MAXIMGHEIGHT = 500;
sub restrictimage {
my($w,$h,$s) = @_;
$w = $w <= $MAXIMGWIDTH ? $w : $MAXIMGWIDTH;
$h = $h <= $MAXIMGHEIGHT ? $h : $MAXIMGHEIGHT;
return qq~
~;
}
sub quotemsg {
my( $qauthor, $qlink, $qdate, $qmessage ) = @_;
$qmessage =~ s~\/me\s+(.*?)(\n.*?)~* $qauthor $1$2~ig;
$qmessage =~ s~(.*?)\/me~$1\&\#47\;me~ig;
$qmessage =~ s~\/me\s+([\s\S]*)~* $qauthor $1~ig;
$qdate = &timeformat($qdate);
$_ = $txt{'704'};
$_ =~ s~AUTHOR~$qauthor~g;
$_ =~ s~QUOTELINK~$scripturl?action=display;$qlink~g;
$_ =~ s~DATE~$qdate~g;
$_ =~ s~QUOTE~$qmessage~g;
return $_;
}
sub simplequotemsg {
my $qmessage = $_[0];
$qmessage =~ s~\/me\s+(.*?)(\n.*?)~* $1~ig;
$qmessage =~ s~(.*?)\/me~$1\&\#47\;me~ig;
$qmessage =~ s~\/me\s+([\s\S]*)~* $1~ig;
$qmessage =~ s~\/me~\&\#47\;me~ig;
$_ = $txt{'705'};
$_ =~ s~QUOTE~$qmessage~g;
return $_;
}
{
my %killhash = (
';' => ';',
'!' => '!',
'(' => '(',
')' => ')',
'-' => '-',
'.' => '.',
'/' => '/',
':' => ':',
'?' => '?',
'[' => '[',
'\\' => '\',
']' => ']',
'^' => '^'
);
sub codemsg {
my $code = $_[0];
if($code !~ /&\S*;/) { $code =~ s/;/;/g; }
$code =~ s~([\(\)\-\:\\\/\?\!\]\[\.\^])~$killhash{$1}~g;
$_ = $txt{'706'};
$_ =~ s~CODE~$code~g;
return $_;
}
}
sub DoUBBC {
$message =~ s~\[code\]~ \[code\]~ig;
$message =~ s~\[/code\]~ \[/code\]~ig;
$message =~ s~\[quote\]~ \[quote\]~ig;
$message =~ s~\[/quote\]~ \[/quote\]~ig;
$message =~ s~\[glow\]~ \[glow\]~ig;
$message =~ s~\[/glow\]~ \[/glow\]~ig;
$message =~ s~
~\n~ig;
$message =~ s~\[code\]\n*(.+?)\n*\[/code\]~&codemsg($1)~eisg;
if ($message =~ /\#nosmileys/isg || $ns =~ "NS") {$message =~ s/\#nosmileys//isg;} else { &MakeSmileys; }
$message =~ s~\[([^\]]{0,30})\n([^\]]{0,30})\]~\[$1$2\]~g;
$message =~ s~\[/([^\]]{0,30})\n([^\]]{0,30})\]~\[/$1$2\]~g;
$message =~ s~(\w+://[^<>\s\n\"\]\[]+)\n([^<>\s\n\"\]\[]+)~$1\n$2~g;
$message =~ s~\[b\](.+?)\[/b\]~$1~isg;
$message =~ s~\[i\](.+?)\[/i\]~$1~isg;
$message =~ s~\[u\](.+?)\[/u\]~$1~isg;
$message =~ s~\[s\](.+?)\[/s\]~$1~isg;
$message =~ s~\[move\](.+?)\[/move\]~~isg;
$message =~ s~\[glow(.*?)\](.*?)\[/glow\]~qq^[glow$1]^ . &elimnests($2) . q^[/glow]^~eisg;
$message =~ s~\[shadow(.*?)\](.*?)\[/shadow\]~qq^[shadow$1]^ . &elimnests($2) . q^[/shadow]^~eisg;
$message =~ s~\[shadow=(\S+?),(\D\S+?),(\d+)\](.+?)\[/shadow\]~qq^\[shadow=$1,^ . &decode_direction($2) . qq^,$3\]$4\[/shadow\]^~eisg;
$message =~ s~\[shadow=(\S+?),(\d+),(\d+)\](.+?)\[/shadow\]~qq^[&table width="^ . validwidth($3) . qq^" style="filter:shadow\(color=$1, direction=$2\)"\]$4\[/\&table\]^~eisg;
$message =~ s~\[glow=(\S+?),(\d+),(\d+)\](.+?)\[/glow\]~qq^[&table width="^ . validwidth($3) . qq^" style="filter:glow\(color=$1, strength=$2\)"\]$4\[/\&table\]^~eisg;
$message =~(s~\[color=(.+?)\](.+?)\[/color\]~$2~isg;
$message =~ s~\[black\](.*?)\[/black\]~$1~isg;
$message =~ s~\[white\](.*?)\[/white\]~$1~isg;
$message =~ s~\[red\](.*?)\[/red\]~$1~isg;
$message =~ s~\[green\](.*?)\[/green\]~$1~isg;
$message =~ s~\[blue\](.*?)\[/blue\]~$1~isg;
$message =~ s~\[font=(.+?)\](.+?)\[/font\]~$2~isg;
$message =~ s~\[size=(.+?)\](.+?)\[/size\]~$2~isg;
$char_160 = chr(160);
$message =~ s~\[img\][\s*\t*\n*( )*($char_160)*]*(http\:\/\/)*(.+?)[\s*\t*\n*( )*($char_160)*]*\[/img\]~~isg;
$message =~ s~\[img width=(\d+) height=(\d+)\][\s*\t*\n*( )*($char_160)*]*(http\:\/\/)*(.+?)[\s*\t*\n*( )*($char_160)*]*\[/img\]~restrictimage($1,$2,'http://'.$4)~eisg;
$message =~ s~\[tt\](.*?)\[/tt\]~$1~isg;
$message =~ s~\[left\](.+?)\[/left\]~
$1
~isg; $message =~ s~\[sub\](.+?)\[/sub\]~$1~isg; $message =~ s~\[sup\](.+?)\[/sup\]~$1~isg; $message =~ s~\[fixed\](.+?)\[/fixed\]~$1~isg; $message =~ s~\[hr\]\n~' . dopre($1) . ''~iseg; $message =~ /\[flash\=(\S+?),(\S+?)](\S+?)\[\/flash\]/; $width = $1; $height = $2; if ($width > 500) { $width = 500; } if ($height > 500) { $height = 500; } $message =~ s~\[flash\=(\S+?),(\S+?)](\S+?)\[\/flash\]~~g; if( $message =~ m~\[table\](?:.*?)\[/table\]~is ) { while( $message =~ s~~~s ) {} while( $message =~ s~(.*?)\[/table\]~$3\[//table\]~s ) {} while( $message =~ s~\[table\](.*?)~\[//table\]$1~s ) {} $message =~ s~\n{0,1}\[table\]\n*(.+?)\n*\[/table\]\n{0,1}~
| | |
| | |