SoFunction
Updated on 2025-04-12

(c#) Ubb Processing Class


using System;
using ;
using ;
using ;
namespace
{
/// <summary>
/// Summary description of UbbCode.
/// </summary>
public class UbbCode
{
Root theroot=new Root();
HttpContext context = ;
public UbbCode()
{
//
// TODO: Add constructor logic here
//
}

public String unhtml(string str)
{
str = (str);
str = ("&","&");
return str;
}
public String turnit(string str)
{
Regex r;
Match m;
str = ("[","[|");
str = ("]","|]");
r = new Regex(@"(http|mms|rtsp|ftp|https)(:\/\/)");
for (m = (str); ; m = ())
{
str = ([0].ToString(), [1].ToString() + "$"+[2].ToString());
}
return str;
}
public String turnof(string str)
{
Regex r;
Match m;
str = ("[|","[");
str = ("|]","]");
r = new Regex(@"(http|mms|rtsp|ftp|https)(\$:\/\/)");
for (m = (str); ; m = ())
{
str = ([0].ToString(), [1].ToString() + [2].ToString().Replace("$",""));
}

return str;
}

public String UBB(string sDetail)
{
Regex r;
Match m;
sDetail = ("[swf]","[swf=300,250]");
sDetail = ("[rm]","[rm=300,250]");
sDetail = ("[mp]","[mp=300,250]");
sDetail = unhtml(sDetail);
sDetail = ("\n","<br />");
//sDetail = ("  "," ");
//[code] tag
r = new Regex(@"(\[code\])([\s\S]+?)(\[\/code\])",);
for (m = (sDetail); ; m = ())
{
sDetail = ([0].ToString(),"<textarea style=\"border: 1px solid #94BBE2;width:98%;OVERFLOW: hidden;cursor:default;\" rows=\"15\" onclick=\"=\">" + turnit([2].ToString().Replace("<br />","\n")) + "</textarea>");
}
int i=1;
r = new Regex(@"(\[html\])([\s\S]+?)(\[\/html\])",);
for (m = (sDetail); ; m = ())
{
i=i+1;
sDetail = ([0].ToString(),"<TEXTAREA rows=\"12\" style=\"width:98%\" id=\"rid"+i+"\">" + turnit([2].ToString().Replace("<br />","\n")) + "</TEXTAREA><INPUT onclick=\"runEx('rid"+i+"')\" type=button value=\"Have A Try\" class=\"input1\"> [Ctrl+A Select all Tip: You can modify some code first, and then press Run] ");
//sDetail = ("<br />","");
}
sDetail=turnhtm(sDetail);
return turnof(sDetail);
}
public String turnhtm(string sDetail)
{
Regex r;
Match m;
//////////[b][/b]
r = new Regex(@"(\[b\])([ \S\t]*?)(\[\/b\])",);
for (m = (sDetail); ; m = ())
{
sDetail = ([0].ToString(),"<B>" + [2].ToString() + "</B>");
}
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
r = new Regex(@"(\[face=)([0-9]*)\]",);
for (m = (sDetail); ; m = ())
{
sDetail = ([0].ToString(),"<img src='"+()+"images/face/"+ [2].ToString() +".gif'>");
}

r = new Regex(@"(\[i\])([ \S\t]*?)(\[\/i\])",);
for (m = (sDetail); ; m = ())
{
sDetail = ([0].ToString(),"<I>" + [2].ToString() + "</I>");
}

r = new Regex(@"(\[U\])([ \S\t]*?)(\[\/U\])",);
for (m = (sDetail); ; m = ())
{
sDetail = ([0].ToString(),"<U>" + [2].ToString() + "</U>");
}

//The [p][/p] mark
r = new Regex(@"((\r\n)*\[p\])(.+?)((\r\n)*\[\/p\])",|);
for (m = (sDetail); ; m = ())
{
sDetail = ([0].ToString(),"<P class=\"pstyle\">" + [3].ToString() + "</P>");
}

//The [quote][/quote] mark
r = new Regex(@"(\[quote\])([\s\S]+?)(\[\/quote\])",);
for (m = (sDetail); ; m = ())
{
sDetail = ([0].ToString(),"Quote:<br /><p class=\"qstyle\">" + [2].ToString() + "</p>");
}


// Mark it
r = new Regex(@"(\[url\])([ \S\t]*?)(\[\/url\])",);
for (m = (sDetail); ; m = ())
{
sDetail = ([0].ToString(),
"<A href=\"" + [2].ToString() + "\" target=\"_blank\">" +
[2].ToString() + "</A>");
}

//The [url=xxx][/url] mark
r = new Regex(@"(\[url=([ \S\t]+)\])([ \S\t]*?)(\[\/url\])",);
for (m = (sDetail); ; m = ())
{
sDetail = ([0].ToString(),
"<A href=\"" + [2].ToString() + "\" target=\"_blank\">" +
[3].ToString() + "</A>");
}

//The [email][/email] mark
r = new Regex(@"(\[email\])([ \S\t]*?)(\[\/email\])",);
for (m = (sDetail); ; m = ())
{
sDetail = ([0].ToString(),
"<A href=\"mailto:" + [2].ToString() + "\" target=\"_blank\">" +
[2].ToString() + "</A>");
}
//The [down][/down] mark
r = new Regex(@"(\[down\])([ \S\t]*?)(\[\/down\])",);
for (m = (sDetail); ; m = ())
{
sDetail = ([0].ToString(),
"<A href=\"" + [2].ToString() + "\" target=\"_blank\"><img src=images/ width=16 height=16 title='Click to download' border=0></A>");
}
//The [w][/w] mark
r = new Regex(@"(\[w\])([ \S\t]*?)(\[\/w\])",);
for (m = (sDetail); ; m = ())
{
sDetail = ([0].ToString(),
"<iframe src=\"" + [2].ToString() + "\" frameborder='0' width='100%' height='300' style='border:1 solid #999999;margin-top:4px;margin-bottom:4px'></iframe><a href=\"" + [2].ToString() + "\" title=\"Browse in a new window\" target=_blank>"+[2]+"</A>");
}

//The [email=xxx][/email] mark
r = new Regex(@"(\[email=([ \S\t]+)\])([ \S\t]*?)(\[\/email\])",);
for (m = (sDetail); ; m = ())
{
sDetail = ([0].ToString(),
"<A href=\"mailto:" + [2].ToString() + "\" target=\"_blank\">" +
[3].ToString() + "</A>");
}

//The [size=x][/size] mark
r = new Regex(@"(\[size=([1-7])\])([ \S\t]*?)(\[\/size\])",);
for (m = (sDetail); ; m = ())
{
sDetail = ([0].ToString(),
"<FONT SIZE=" + [2].ToString() + ">" +
[3].ToString() + "</FONT>");
}

//The [color=x][/color] mark
r = new Regex(@"(\[color=([\S]+)\])([ \S\t]*?)(\[\/color\])",);
for (m = (sDetail); ; m = ())
{
sDetail = ([0].ToString(),
"<FONT COLOR=" + [2].ToString() + ">" +
[3].ToString() + "</FONT>");
}

//The [font=x][/font] mark
r = new Regex(@"(\[font=(\w+)\])([ \S\t]*?)(\[\/font\])",);
for (m = (sDetail); ; m = ())
{
sDetail = ([0].ToString(),
"<FONT FACE=" + [2].ToString() + ">" +
[3].ToString() + "</FONT>");
}

//Processing image link
r = new Regex(@"(\[img\])(.+?)(\[\/img\])",);
for (m = (sDetail); ; m = ())
{
if([0].ToString().IndexOf("http://")>=0)
{
sDetail = ([0].ToString(),"<img src=\""+[2].ToString()+"\" border=\"0\" class=\"imgborder\" onload=\"if(>600) {=600};\" ondblclick=\"('"+[2].ToString()+"')\" title=\"Double-click to open in a new window\" />");
}
else
{
sDetail = ([0].ToString(),"<img src=\""+()+"?f="+[2].ToString()+"\" border=\"0\" class=\"imgborder\" onload=\"if(>600) {=600};\" ondblclick=\"('"+[2].ToString()+"')\" title=\"Double-click to open in a new window\" />");
}
}

//deal with

r = new Regex(@"(\[align=(\w+)\])([ \S\t]*?)(\[\/align\])",);
for (m = (sDetail); ; m = ())
{
sDetail = ([0].ToString(),
"<P align=" + [2].ToString() + ">" +
[3].ToString() + "</P>");
}




//Processing [list=x][*][/list]
r = new Regex(@"(\[list(=(A|a|I|i| ))?\]([ \S\t]*)\r\n)((\[\*\]([ \S\t]*\r\n))*?)(\[\/list\])",);
for (m = (sDetail); ; m = ())
{
string strLI = [5].ToString();
Regex rLI = new Regex(@"\[\*\]([ \S\t]*\r\n?)",);
Match mLI;
for (mLI = (strLI); ; mLI = ())
{
strLI = ([0].ToString(),"<LI>" + [1]);
}
sDetail = ([0].ToString(),
"<UL TYPE=\"" + [3].ToString() + "\"><B>" + [4].ToString() + "</B>" +
strLI + "</UL>");
}


r = new Regex(@"\[swf=([0-9]*),([0-9]*)\](.+?)\[\/swf\]",);
for (m = (sDetail); ; m = ())
{
sDetail = ([0].ToString(),"<object classid=clsid:D27CDB6E-AE6D-11cf-96B8-444553540000 codebase=/pub/shockwave/cabs/flash/#version=5,0,0,0 width="+ [1].ToString() +" height="+ [2].ToString() +"><param name=movie value='"+ [3].ToString() +"'><param name=quality value=high><embed src='"+ [3].ToString() +"' quality=high pluginspage=/shockwave/download/?P1_Prod_Version=ShockwaveFlash type=application/x-shockwave-flash width="+ [1].ToString() +" height="+ [2].ToString() +"></embed></object>");
}
r = new Regex(@"\[rm=([0-9]*),([0-9]*)\](.+?)\[\/rm\]",);
for (m = (sDetail); ; m = ())
{
sDetail = ([0].ToString(),"<OBJECT classid=clsid:CFCDAA03-8BE4-11cf-B84B-0020AFBBCCFA class=OBJECT id=RAOCX width="+ [1].ToString() +" height="+ [2].ToString() +"><PARAM NAME=SRC VALUE='"+ [3].ToString() +"'><PARAM NAME=CONSOLE VALUE=Clip1><PARAM NAME=CONTROLS VALUE=imagewindow><PARAM NAME=AUTOSTART VALUE=false><PARAM NAME=loop VALUE=true></OBJECT><br /><OBJECT classid=CLSID:CFCDAA03-8BE4-11CF-B84B-0020AFBBCCFA height=32 id=video2 width="+ [1].ToString() +"><PARAM NAME=SRC VALUE='"+ [3].ToString() +"'><PARAM NAME=AUTOSTART VALUE=false><PARAM NAME=loop VALUE=true><PARAM NAME=CONTROLS VALUE=controlpanel><PARAM NAME=CONSOLE VALUE=Clip1></OBJECT>");
}
r = new Regex(@"\[mp=([0-9]*),([0-9]*)\](.+?)\[\/mp\]",);
for (m = (sDetail); ; m = ())
{
sDetail = ([0].ToString(),"<object classid='CLSID:22d6f312-b0f6-11d0-94ab-0080c74c7e95' class='OBJECT' id=MediaPlayer width="+ [1].ToString() +" height="+ [2].ToString() +" ><param name=ShowStatusBar value=-1><PARAM NAME=AUTOSTART VALUE=false><param name=loop value=true><param name=Filename value='"+ [3].ToString() +"'><embed type=application/x-oleobject codebase=/activex/controls/mplayer/en/#Version=5,1,52,701 flename=mp src='"+ [2].ToString() +"' width="+ [1].ToString() +" height="+ [2].ToString() +"></embed></object>");
}
/////////////////////// Processing link

r = new Regex(@"([^>=""\?\'])((http|mms|rtsp|ftp|https):\/\/([A-Za-z0-9\.\/=\?%\-&_~`@':+!]+))",);
for (m = (sDetail); ; m = ())
{
sDetail = ([0].ToString(),[1]+"<a href='" + [2].ToString() + "' target=_blank>" + [2].ToString() + "</a>");
}

r = new Regex(@"(^|\s|<br />|<p>)((http|https|ftp|rtsp|mms)(:\/\/)([A-Za-z0-9\.\/=\?%\-&_~`@':+!]+))",);
for (m = (sDetail); ; m = ())
{
sDetail = ([0].ToString(),[1]+"<a href='" + [2].ToString() + "' target=_blank>" + [2].ToString() + "</a>");
}
return sDetail;
}
}
}