summaryrefslogtreecommitdiff
path: root/ychat-0.7.7.0/src/mods/html
diff options
context:
space:
mode:
Diffstat (limited to 'ychat-0.7.7.0/src/mods/html')
-rw-r--r--ychat-0.7.7.0/src/mods/html/CVS/Entries9
-rw-r--r--ychat-0.7.7.0/src/mods/html/CVS/Repository1
-rw-r--r--ychat-0.7.7.0/src/mods/html/CVS/Root1
-rw-r--r--ychat-0.7.7.0/src/mods/html/Makefile25
-rwxr-xr-xychat-0.7.7.0/src/mods/html/Makefile.in18
-rw-r--r--ychat-0.7.7.0/src/mods/html/yc_admin.cpp72
-rwxr-xr-xychat-0.7.7.0/src/mods/html/yc_colors.cpp37
-rwxr-xr-xychat-0.7.7.0/src/mods/html/yc_help.cpp50
-rwxr-xr-xychat-0.7.7.0/src/mods/html/yc_loggedin.cpp29
-rwxr-xr-xychat-0.7.7.0/src/mods/html/yc_options.cpp56
-rwxr-xr-xychat-0.7.7.0/src/mods/html/yc_register.cpp96
11 files changed, 394 insertions, 0 deletions
diff --git a/ychat-0.7.7.0/src/mods/html/CVS/Entries b/ychat-0.7.7.0/src/mods/html/CVS/Entries
new file mode 100644
index 0000000..a8f2422
--- /dev/null
+++ b/ychat-0.7.7.0/src/mods/html/CVS/Entries
@@ -0,0 +1,9 @@
+/Makefile/1.24/Fri Feb 18 19:48:12 2005//
+/Makefile.in/1.8/Thu Jul 8 14:39:03 2004//
+/yc_admin.cpp/1.7/Mon Feb 21 01:55:50 2005//
+/yc_colors.cpp/1.9/Mon Feb 21 01:55:50 2005//
+/yc_help.cpp/1.12/Mon Feb 21 01:55:50 2005//
+/yc_loggedin.cpp/1.3/Mon Feb 21 01:55:50 2005//
+/yc_options.cpp/1.9/Mon Feb 21 01:55:50 2005//
+/yc_register.cpp/1.12/Mon Feb 21 01:55:50 2005//
+D
diff --git a/ychat-0.7.7.0/src/mods/html/CVS/Repository b/ychat-0.7.7.0/src/mods/html/CVS/Repository
new file mode 100644
index 0000000..bb3b6b7
--- /dev/null
+++ b/ychat-0.7.7.0/src/mods/html/CVS/Repository
@@ -0,0 +1 @@
+ychat/src/mods/html
diff --git a/ychat-0.7.7.0/src/mods/html/CVS/Root b/ychat-0.7.7.0/src/mods/html/CVS/Root
new file mode 100644
index 0000000..745de68
--- /dev/null
+++ b/ychat-0.7.7.0/src/mods/html/CVS/Root
@@ -0,0 +1 @@
+:pserver:anonymous@buetow.org:/usr/home/cvs/cvsroot
diff --git a/ychat-0.7.7.0/src/mods/html/Makefile b/ychat-0.7.7.0/src/mods/html/Makefile
new file mode 100644
index 0000000..98deaf7
--- /dev/null
+++ b/ychat-0.7.7.0/src/mods/html/Makefile
@@ -0,0 +1,25 @@
+SRCS=yc_admin.cpp yc_colors.cpp yc_help.cpp yc_loggedin.cpp yc_options.cpp yc_register.cpp
+MODS=$(addprefix ../../../mods/html/, $(SRCS:.cpp=.so))
+CC=g++
+INCLUDES=`cat ../../includes.add`
+CFLAGS=`cat ../cflags.add`
+all: mods
+$(MODS):
+ @echo -n "Compiling html module `basename $@` "
+ @if ! test -d `dirname $@`; then mkdir -p `dirname $@`; fi
+ @$(CC) $(CFLAGS) $(INCLUDES) -shared -s -o $@ `echo $(notdir $@) | sed s/.so/.cpp/`
+ @du -hc $@ | tail -n 1 | sed s/total// | sed "s/ //g"
+infotext:
+ @echo Compiling html modules
+mods: infotext $(MODS)
+ @echo "Num of html modules: "
+ @ls ../../../mods/html/*.so | wc -l
+clean:
+ @echo Cleaning html modules
+ @if test -d ../../../mods/html; then rm -Rf ../../../mods/html; fi
+../../../mods/html/yc_admin.so: yc_admin.cpp
+../../../mods/html/yc_colors.so: yc_colors.cpp
+../../../mods/html/yc_help.so: yc_help.cpp
+../../../mods/html/yc_loggedin.so: yc_loggedin.cpp
+../../../mods/html/yc_options.so: yc_options.cpp
+../../../mods/html/yc_register.so: yc_register.cpp
diff --git a/ychat-0.7.7.0/src/mods/html/Makefile.in b/ychat-0.7.7.0/src/mods/html/Makefile.in
new file mode 100755
index 0000000..30f1782
--- /dev/null
+++ b/ychat-0.7.7.0/src/mods/html/Makefile.in
@@ -0,0 +1,18 @@
+MODS=$(addprefix ../../../mods/html/, $(SRCS:.cpp=.so))
+CC=COMPILER
+INCLUDES=`cat ../../includes.add`
+CFLAGS=`cat ../cflags.add`
+all: mods
+$(MODS):
+ @echo -n "Compiling html module `basename $@` "
+ @if ! test -d `dirname $@`; then mkdir -p `dirname $@`; fi
+ @$(CC) $(CFLAGS) $(INCLUDES) -shared -s -o $@ `echo $(notdir $@) | sed s/.so/.cpp/`
+ @du -hc $@ | tail -n 1 | sed s/total// | sed "s/ //g"
+infotext:
+ @echo Compiling html modules
+mods: infotext $(MODS)
+ @echo "Num of html modules: "
+ @ls ../../../mods/html/*.so | wc -l
+clean:
+ @echo Cleaning html modules
+ @if test -d ../../../mods/html; then rm -Rf ../../../mods/html; fi
diff --git a/ychat-0.7.7.0/src/mods/html/yc_admin.cpp b/ychat-0.7.7.0/src/mods/html/yc_admin.cpp
new file mode 100644
index 0000000..f3811f9
--- /dev/null
+++ b/ychat-0.7.7.0/src/mods/html/yc_admin.cpp
@@ -0,0 +1,72 @@
+#include "../../incl.h"
+#include "../../tool/tool.h"
+
+/*
+ gcc -shared -o yc_name.so yc_name.cpp
+*/
+
+using namespace std;
+
+extern "C"
+{
+ string replace_chars(string s_string)
+ {
+ s_string = tool::replace(s_string, "<", "&lt;");
+ s_string = tool::replace(s_string, ">", "&gt;");
+ s_string = tool::replace(s_string, "\n", "<br>");
+ return s_string;
+ }
+
+ int extern_function(void *v_arg)
+ {
+ container* c = (container*) v_arg;
+ dynamic_wrap* p_wrap = (dynamic_wrap*) c->elem[0];
+ user* p_user = (user*) c->elem[2];
+ conf* p_conf = (conf*) p_wrap->CONF;
+ string* p_content = &(*((hashmap<string>*) c->elem[1]))["content"];
+
+ vector<string>* p_vec_keys = p_conf->get_key_vector();
+ sort(p_vec_keys->begin(), p_vec_keys->end());
+ vector<string>::iterator p_vec_keys_iter = p_vec_keys->begin();
+
+ p_content->append( "Currently are " + tool::int2string(p_vec_keys->size()) + " options available!<br><br>\n");
+ p_content->append( "<table bordercolor=\"1\">\n" );
+
+ for( ;p_vec_keys_iter != p_vec_keys->end(); ++p_vec_keys_iter )
+ {
+
+ if ( p_vec_keys_iter->find(".descr") != string::npos )
+ continue;
+
+ p_content->append( "<tr><td>\n<font color=\"#FFFFFF\"><b>" + *p_vec_keys_iter + "\n</b></font></td></tr>\n" );
+
+ string s_descr = p_conf->get_elem(*p_vec_keys_iter + ".descr");
+ if ( s_descr.length()
+ > 0 )
+ {
+ p_content->append( "<tr><td><font color=\"#CCCCCC\">\n" );
+ p_content->append( replace_chars(p_conf->get_elem(*p_vec_keys_iter + ".descr")) );
+ p_content->append( "\n</font></td></tr>\n" );
+ }
+
+ p_content->append( "<tr><td>\n" );
+
+ // Hide some fields!
+ if ( p_vec_keys_iter->find(".password")
+ != string::npos
+ || p_vec_keys_iter->find("base.user") != string::npos
+ || p_vec_keys_iter->find(".dbname") != string::npos )
+ p_content->append( "X X X X X X X X X X" );
+
+ else
+ p_content->append( replace_chars(p_conf->get_elem(*p_vec_keys_iter)) );
+
+ p_content->append( "<br><br></td></tr>\n" );
+ } // while
+
+ p_content->append( "</table>\n<br>\n" );
+
+ return 0;
+ }
+}
+
diff --git a/ychat-0.7.7.0/src/mods/html/yc_colors.cpp b/ychat-0.7.7.0/src/mods/html/yc_colors.cpp
new file mode 100755
index 0000000..9d9f2ec
--- /dev/null
+++ b/ychat-0.7.7.0/src/mods/html/yc_colors.cpp
@@ -0,0 +1,37 @@
+#include "../../incl.h"
+
+/*
+ gcc -shared -o yc_name.so yc_name.cpp
+*/
+
+using namespace std;
+
+extern "C"
+{
+ int extern_function(void *v_arg)
+ {
+ container* c = (container*) v_arg;
+ dynamic_wrap* p_wrap = (dynamic_wrap*) c->elem[0];
+ conf* p_conf = (conf*) p_wrap->CONF;
+ string* p_col1 = &(*((hashmap<string>*) c->elem[1]))["col1"];
+ string* p_col2 = &(*((hashmap<string>*) c->elem[1]))["col2"];
+ string* p_flag = &(*((hashmap<string>*) c->elem[1]))["flag"];
+ user* p_user = (user*) c->elem[2];
+
+ p_col1->erase(0);
+ p_col2->erase(0);
+
+ p_col1->append( p_user->get_col1() );
+ p_col2->append( p_user->get_col2() );
+
+ if ( *p_flag == "submit" )
+ {
+ string* p_msgs = &(*((hashmap<string>*) c->elem[1])
+ )["msgs"];
+ p_msgs->append( p_conf->get_elem( "chat.msgs.optionschanged" ) );
+ }
+
+ return 0;
+ }
+}
+
diff --git a/ychat-0.7.7.0/src/mods/html/yc_help.cpp b/ychat-0.7.7.0/src/mods/html/yc_help.cpp
new file mode 100755
index 0000000..ec8e863
--- /dev/null
+++ b/ychat-0.7.7.0/src/mods/html/yc_help.cpp
@@ -0,0 +1,50 @@
+#include "../../incl.h"
+
+/*
+ gcc -shared -o yc_name.so yc_name.cpp
+*/
+
+using namespace std;
+
+extern "C"
+{
+ int extern_function(void *v_arg)
+ {
+ container* c = (container*) v_arg;
+ dynamic_wrap* p_wrap = (dynamic_wrap*) c->elem[0];
+ user* p_user = (user*) c->elem[2];
+ modl* p_modl = (modl*) p_wrap->MODL;
+ conf* p_conf = (conf*) p_wrap->CONF;
+ chat* p_chat = (chat*) p_wrap->CHAT;
+ string* s_content = &(*((hashmap<string>*) c->elem[1]))["content"];
+
+ vector<string>* p_vec_keys = p_modl->get_mod_vector();
+
+ sort(p_vec_keys->begin(), p_vec_keys->end());
+ vector<string>::iterator p_vec_keys_iter = p_vec_keys->begin();
+
+ while( p_vec_keys_iter != p_vec_keys->end() )
+ {
+
+ if ( p_vec_keys_iter->find( "mods/commands/", 0 ) != string::npos )
+ {
+
+ string s_command_name = p_vec_keys_iter->substr(17);
+ s_command_name.erase( s_command_name.find( ".so" ) );
+
+ if ( !p_chat->get_command_disabled( s_command_name ) &&
+ p_chat->get_command_status( s_command_name ) >= p_user->get_status())
+ {
+ s_content->append( "<table bordercolor=\"1\">\n" );
+ s_content->append( "<tr><td><font color=\"#FFFFFF\"><b>/" + s_command_name + "</b></font></td></tr>\n" );
+ s_content->append( "<tr><td>" + p_conf->get_elem("chat.msgs.help." + s_command_name) + "</td></tr>\n" );
+ s_content->append( "</table>\n<br>\n" );
+ }
+ }
+ p_vec_keys_iter++;
+ }
+
+ return 0;
+ }
+}
+
diff --git a/ychat-0.7.7.0/src/mods/html/yc_loggedin.cpp b/ychat-0.7.7.0/src/mods/html/yc_loggedin.cpp
new file mode 100755
index 0000000..d3e81c1
--- /dev/null
+++ b/ychat-0.7.7.0/src/mods/html/yc_loggedin.cpp
@@ -0,0 +1,29 @@
+#include "../../chat/chat.h"
+
+/*
+ gcc -shared -o yc_name.so yc_name.cpp
+*/
+
+using namespace std;
+
+extern "C"
+{
+ int extern_function(void *v_arg)
+ {
+ container* c = (container*) v_arg;
+ dynamic_wrap* p_wrap = (dynamic_wrap*) c->elem[0];
+ chat* p_chat = (chat*) p_wrap->CHAT;
+ hashmap<string>* p_map = (hashmap<string>*) c->elem[1];
+
+ /*
+ string s_list;
+ p_chat->get_user_list(s_list);
+ (*p_map)["USERLIST"] = s_list;
+ */
+
+ p_chat->get_user_list((*p_map)["USERLIST"]);
+
+ return 0;
+ }
+}
+
diff --git a/ychat-0.7.7.0/src/mods/html/yc_options.cpp b/ychat-0.7.7.0/src/mods/html/yc_options.cpp
new file mode 100755
index 0000000..42c995c
--- /dev/null
+++ b/ychat-0.7.7.0/src/mods/html/yc_options.cpp
@@ -0,0 +1,56 @@
+#include "../../incl.h"
+
+/*
+ gcc -shared -o yc_name.so yc_name.cpp
+*/
+
+using namespace std;
+
+extern "C"
+{
+ int extern_function(void *v_arg)
+ {
+ container* c = (container*) v_arg;
+ dynamic_wrap* p_wrap = (dynamic_wrap*) c->elem[0];
+ conf* p_conf = (conf*) p_wrap->CONF;
+ string* p_flag = &(*((hashmap<string>*) c->elem[1]))["flag"];
+ string* p_email = &(*((hashmap<string>*) c->elem[1]))["email"];
+ string* p_pass = &(*((hashmap<string>*) c->elem[1]))["pass"];
+ string* p_newpass = &(*((hashmap<string>*) c->elem[1]))["newpass"];
+ string* p_newpass2 = &(*((hashmap<string>*) c->elem[1]))["newpass2"];
+ user* p_user = (user*) c->elem[2];
+
+ if ( *p_flag == "submit" )
+ {
+ string* p_msgs = &(*((hashmap<string>*) c->elem[1])
+ )["msgs"];
+
+ // If the password has to be changed:
+ if ( *p_pass != "" || *p_newpass != "" || *p_newpass2 != "" )
+ {
+ if ( p_user->get_pass() != *p_pass )
+ {
+ p_msgs->append( p_conf->get_elem( "chat.msgs.err.changepassword" ) );
+ return 0;
+ }
+
+ if ( *p_newpass != *p_newpass2 )
+ {
+ p_msgs->append( p_conf->get_elem( "chat.msgs.err.changepassword2" ) );
+ return 0;
+ }
+ p_user->set_pass( *p_newpass );
+ }
+
+ p_user->set_email( *p_email );
+ p_msgs->append( p_conf->get_elem( "chat.msgs.optionschanged" ) );
+ }
+ else
+ {
+ p_email->append( p_user->get_email() );
+ }
+
+ return 0;
+ }
+}
+
diff --git a/ychat-0.7.7.0/src/mods/html/yc_register.cpp b/ychat-0.7.7.0/src/mods/html/yc_register.cpp
new file mode 100755
index 0000000..1acbd73
--- /dev/null
+++ b/ychat-0.7.7.0/src/mods/html/yc_register.cpp
@@ -0,0 +1,96 @@
+#include "../../incl.h"
+
+/*
+ gcc -shared -o yc_name.so yc_name.cpp
+*/
+
+using namespace std;
+
+extern "C"
+{
+ int extern_function(void *v_arg)
+ {
+#ifdef DATABASE
+ container* c = (container*) v_arg;
+ dynamic_wrap* p_wrap = (dynamic_wrap*) c->elem[0];
+ conf* p_conf = (conf*) p_wrap->CONF;
+ data* p_data = (data*) p_wrap->DATA;
+ string* p_msgs = &(*((hashmap<string>*) c->elem[1]))["INFO"];
+ string* p_nick = &(*((hashmap<string>*) c->elem[1]))["nick"];
+ string* p_email = &(*((hashmap<string>*) c->elem[1]))["email"];
+ string* p_pass = &(*((hashmap<string>*) c->elem[1]))["pass"];
+ string* p_pass2 = &(*((hashmap<string>*) c->elem[1]))["pass2"];
+ string* p_request = &(*((hashmap<string>*) c->elem[1]))["request"];
+ user* p_user = (user*) c->elem[2];
+ string s_nick = *p_nick;
+
+
+ p_user->set_name( "!" + s_nick );
+ p_user->set_has_sess( false );
+ *p_nick = tool::to_lower(*p_nick);
+
+ if ( *p_pass != *p_pass2 )
+ {
+ p_msgs->append( p_conf->get_elem( "chat.msgs.err.registerpassword" ) )
+ ;
+ }
+
+ // prove if the nick is alphanumeric:
+ else if ( ! tool::is_alpha_numeric( *p_nick ) )
+ {
+ p_msgs->append( p_conf->get_elem( "chat.msgs.err.alpnum" ) )
+ ;
+ }
+
+ // prove if the nick is too long:
+ else if ( p_nick->length() > tool::string2int( p_conf->get_elem("chat.maxlength.username")
+ ) )
+ {
+ p_msgs->append( p_conf->get_elem( "chat.msgs.err.nicklength" ) );
+ }
+ else if ( p_pass->length() > tool::string2int( p_conf->get_elem("chat.maxlength.password")
+ ) )
+ {
+ p_msgs->append( p_conf->get_elem( "chat.msgs.err.passlength" ) );
+ }
+ else if ( p_email->length() > tool::string2int( p_conf->get_elem("chat.maxlength.emailaddress")
+ ) )
+ {
+ p_msgs->append( p_conf->get_elem( "chat.msgs.err.emaillength" ) );
+ }
+ else
+ {
+ hashmap<string> result_map = p_data->select_user_data( *p_nick, "selectnick" );
+ if (result_map["nick"] == *p_nick)
+ {
+ p_msgs->append( p_conf->get_elem( "chat.msgs.err.registerexists" ) );
+ }
+ else
+ {
+ p_user->set_name( s_nick );
+ p_msgs->append( p_conf->get_elem( "chat.msgs.registernick" ) );
+ p_request->replace( 0, p_request->length(), p_conf->get_elem("httpd.startsite") );
+
+ hashmap<string> map_insert = *((hashmap<string>*) c->elem[1]);
+ map_insert["password"] = *p_pass;
+ map_insert["color1"] = p_conf->get_elem("chat.html.user.color1");
+ map_insert["color2"] = p_conf->get_elem("chat.html.user.color2");
+ map_insert["registerdate"] = tool::int2string((int)tool::unixtime());
+
+ p_user->set_pass( map_insert["password"] );
+ p_user->set_email( map_insert["email"] );
+ p_user->set_col1( map_insert["color1"] );
+ p_user->set_col2( map_insert["color2"] );
+ p_user->set_is_reg( 1 );
+ p_user->set_status( tool::string2int(p_conf->get_elem("chat.defaultrang") ) );
+
+ p_data->insert_user_data( *p_nick, "registernick", map_insert );
+ }
+ }
+
+ return 0;
+#endif
+
+ }
+}
+