diff options
| author | Paul Buetow <paul@buetow.org> | 2013-04-06 13:14:47 +0200 |
|---|---|---|
| committer | Paul Buetow <paul@buetow.org> | 2013-04-06 13:14:47 +0200 |
| commit | d4c9f10efe815af146438cafb694d16da0e5650a (patch) | |
| tree | 93956195c448768b2d58892cb672bee36a6a6463 /src | |
| parent | ee315a27b72dc967a8a90f132725b7c8e4fd9fba (diff) | |
tagging ychat-0.7.0ychat-0.7.0
Diffstat (limited to 'src')
96 files changed, 1010 insertions, 1353 deletions
diff --git a/src/chat/base.h b/src/chat/base.h index dc44c69..ae2e926 100755 --- a/src/chat/base.h +++ b/src/chat/base.h @@ -57,14 +57,14 @@ public: type_obj -> reconf (); } - void get_data( map<string,string> *p_map_string ) + void get_data( map_string *p_map_string ) { smap<type*,string>::run_func( &base<type>::get_data_ , (void*)p_map_string ); } static void get_data_( type* type_obj, void* v_arg ) { - type_obj -> get_data ( (map<string,string>*) v_arg ); + type_obj -> get_data ( (map_string*) v_arg ); } diff --git a/src/chat/chat.cpp b/src/chat/chat.cpp index 493c2a5..56e9189 100755 --- a/src/chat/chat.cpp +++ b/src/chat/chat.cpp @@ -6,7 +6,6 @@ #include "chat.h" #include "../tool/tool.h" #include "../maps/mtools.h" -#include <list> using namespace std; @@ -65,15 +64,13 @@ void chat::get_user_( room *room_obj, void *v_arg ) { container* param = (container*) v_arg; - if ( *((bool*)param->elem[1]) ) return; - param->elem[2] = (void*)room_obj->get_elem( *((string*)param->elem[0]), *((bool*)param->elem[1]) ); } void -chat::login( map<string,string> &map_params ) +chat::login( map_string &map_params ) { string s_user = map_params["nick"]; @@ -156,8 +153,8 @@ chat::login( map<string,string> &map_params ) { sess* p_sess = wrap::SMAN->create_session(); //p_sess->set_value( string("nick"), (void *) new string(s_user) ); - p_sess->set_user(p_user); - map_params["tmpid"] = p_sess->get_tmpid(); + p_sess->set_name(s_user); + map_params["tmpid"] = p_sess->get_id(); p_user->set_tmpid( map_params["tmpid"] ); p_user->set_has_sess( true ); } @@ -167,9 +164,9 @@ chat::login( map<string,string> &map_params ) { p_user = new user( s_user ); - // prove if nick is registered, else create a guest chatter. + // prove if nick is registered #ifdef DATABASE - map<string,string> map_results = wrap::DATA->select_user_data( tool::to_lower(s_user), "selectlogin"); + map_string map_results = wrap::DATA->select_user_data( tool::to_lower(s_user), "selectlogin"); if ( map_results["nick"] == tool::to_lower(s_user) ) { @@ -194,23 +191,15 @@ chat::login( map<string,string> &map_params ) } else #endif - { // If not registered prove if guest chatting is enabled. - if (wrap::CONF->get_elem("chat.enableguest") != "true") { - map_params["INFO"] = wrap::CONF->get_elem( "chat.msgs.err.noguest" ); - map_params["request"] = wrap::CONF->get_elem( "httpd.startsite" ); // redirect to the startpage. - wrap::system_message( LOGINE4 + s_user ); - return; - } - - // Guest chatter are enabled, use standard font colors + { // If not registered use standard font colors map_params["color1"] = wrap::CONF->get_elem( "chat.html.user.color1" ); map_params["color2"] = wrap::CONF->get_elem( "chat.html.user.color2" ); map_params["status"] = wrap::CONF->get_elem( "chat.defaultrang" ); } sess* p_sess = wrap::SMAN->create_session(); - p_sess->set_user(p_user); - map_params["tmpid"] = p_sess->get_tmpid(); + p_sess->set_name(s_user); + map_params["tmpid"] = p_sess->get_id(); p_user->set_tmpid( map_params["tmpid"] ); p_user->set_col1( map_params["color1"] ); p_user->set_col2( map_params["color2"] ); @@ -267,7 +256,7 @@ chat::login( map<string,string> &map_params ) } void -chat::post( user* p_user, map<string,string> &map_params ) +chat::post( user* p_user, map_string &map_params ) { p_user->renew_timeout(); @@ -284,37 +273,22 @@ chat::post( user* p_user, map<string,string> &map_params ) + wrap::CONF->get_elem( "chat.msgs.err.messagelength" ) + "</font><br>\n"; p_user->msg_post( &s_private ); } - - int i_max_word_length = tool::string2int(wrap::CONF->get_elem( "chat.maxlength.word" )); - - // Check max word length - list<string> list_msg = tool::split_string( s_msg, " "); - list<string>::iterator iter = list_msg.begin(); - - for ( s_msg = ""; iter != list_msg.end(); ++iter ) - { - if ( iter->length() > i_max_word_length ) - { - string s_tmp[] = { iter->substr(0, i_max_word_length ), iter->substr(i_max_word_length) }; - iter = list_msg.erase( iter ); - iter = list_msg.insert( iter, s_tmp[1] ); - iter = list_msg.insert( iter, s_tmp[0] ); - --iter; - } - else - { - s_msg.append(*iter + " "); - } - } - + if ( wrap::CONF->get_elem( "chat.html.tagsallow" ) != "true" ) tool::strip_html( &s_msg ); - unsigned i_pos = s_msg.find( "/" ); + auto unsigned i_pos = s_msg.find( "/" ); if ( i_pos == 0 ) return p_user->command( s_msg ); - string_replacer(&s_msg); + if ( wrap::CONF->get_elem( "chat.html.replace.activate" ) == "true" ) + { + for (vector<string>::iterator iter = vec_replace_keys.end()-1; + iter != vec_replace_keys.begin(); + iter-- ) + s_msg = tool::replace( s_msg, *iter, wrap::CONF->get_elem(map_replace_strings[*iter]) ); + } + string s_post; if ( wrap::CONF->get_elem( "chat.printalwaystime" ) == "true" ) @@ -338,15 +312,4 @@ chat::reconf() { } -void -chat::string_replacer(string *p_msg) { - if ( wrap::CONF->get_elem( "chat.html.replace.activate" ) == "true" ) - { - for (vector<string>::iterator iter = vec_replace_keys.end()-1; - iter != vec_replace_keys.begin(); - iter-- ) - *p_msg = tool::replace( *p_msg, *iter, wrap::CONF->get_elem(map_replace_strings[*iter]) ); - } -} - #endif diff --git a/src/chat/chat.h b/src/chat/chat.h index 86b7c0b..c37bebc 100755 --- a/src/chat/chat.h +++ b/src/chat/chat.h @@ -21,7 +21,7 @@ using namespace std; class chat : public base<room>, public perm { private: - map<string,string> map_replace_strings; + map_string map_replace_strings; vector<string> vec_replace_keys; public: @@ -46,10 +46,10 @@ public: static void get_user_( room* room_obj, void *v_arg ); // will be called every time a user tries to login. - void login( map<string,string> &map_params ); + void login( map_string &map_params ); // will be called if a user posts a message. - void post ( user* u_user, map<string,string> &map_params ); + void post ( user* u_user, map_string &map_params ); void del_elem( string s_name ) { @@ -57,6 +57,5 @@ public: } void reconf(); - void string_replacer(string *p_msg); }; #endif diff --git a/src/chat/room.cpp b/src/chat/room.cpp index c21639a..b2f17f8 100755 --- a/src/chat/room.cpp +++ b/src/chat/room.cpp @@ -9,10 +9,8 @@ using namespace std; room::room( string s_name ) : name( s_name ) { pthread_mutex_init( &mut_s_topic, NULL ); -#ifdef LOGGING p_logd = new logd( wrap::CONF->get_elem("chat.logging.roomlogdir") + get_lowercase_name(), wrap::CONF->get_elem("chat.logging.roomloglines") ); -#endif wrap::STAT->increment_num_rooms(); } @@ -23,9 +21,7 @@ room::~room() // Delete all user objects run_func( mtools<user*>::delete_obj ); -#ifdef LOGGING delete p_logd; -#endif pthread_mutex_destroy( &mut_s_topic ); pthread_mutex_destroy( &mut_s_name ); @@ -42,24 +38,15 @@ room::get_topic() } void -room::set_topic( string s_topic ) +room::set_topic( string s_topic) { pthread_mutex_lock ( &mut_s_topic ); - if ( s_topic == "" ) - this->s_topic = ""; - else - this->s_topic = s_topic + "<br><br>"; + this->s_topic = s_topic; pthread_mutex_unlock( &mut_s_topic ); reload_onlineframe(); } void -room::set_topic( string s_topic, string s_color ) -{ - set_topic( "<font color=\"#" + s_color + "\">" + s_topic + "</font>"); -} - -void room::clean_room() { pthread_mutex_lock ( &mut_s_topic ); @@ -85,17 +72,13 @@ room::set_name( string s_name ) return; } -#ifdef LOGGING p_logd->flush_logs(); -#endif if ( s_name == "" ) return; name::set_name( s_name ); -#ifdef LOGGING p_logd->set_logfile( wrap::CONF->get_elem("chat.logging.roomlogdir"), get_lowercase_name() ); -#endif } #endif diff --git a/src/chat/room.h b/src/chat/room.h index 255f90e..cc59424 100755 --- a/src/chat/room.h +++ b/src/chat/room.h @@ -19,9 +19,7 @@ class room : public base<user>, public name private: string s_topic; pthread_mutex_t mut_s_topic; -#ifdef LOGGING logd* p_logd; -#endif public: room( string s_name ); @@ -56,9 +54,7 @@ public: } void msg_post( string *p_msg ) { -#ifdef LOGGING p_logd->log_simple_line( logd::remove_html_tags(*p_msg) ); -#endif base<user>::msg_post( p_msg ); } @@ -68,10 +64,9 @@ public: } virtual void set_name( string s_name ); - string get_topic(); - void set_topic( string s_topic ); - void set_topic( string s_topic, string s_color ); - void clean_room(); + virtual string get_topic(); + virtual void set_topic( string s_topic ); + virtual void clean_room(); diff --git a/src/chat/sess.cpp b/src/chat/sess.cpp index 801a6bf..b41c8ce 100755 --- a/src/chat/sess.cpp +++ b/src/chat/sess.cpp @@ -3,55 +3,27 @@ #include "sess.h" -sess::sess( string s_tmpid ) +sess::sess( string s_id ) { - this->p_user = NULL; - this->s_tmpid = s_tmpid; + this->sess_id=s_id; } sess::~sess() { + } string -sess::get_tmpid() +sess::get_id() { - return s_tmpid; -} - -string -sess::get_name() -{ - if ( p_user = NULL ) - return ""; - - return p_user->get_name(); -} - -void -sess::set_name(string s_name) -{ - if ( p_user != NULL ) - p_user->set_name(s_name); -} - -user* -sess::get_user() -{ - return p_user; -} - -void -sess::set_user(user* p_user) -{ - this->p_user = p_user; + return this->sess_id; } void sess::invalidate() { - this->s_tmpid = "0"; + this->sess_id = "0"; |
