Index: openacs-4/packages/chat/tcl/chat-procs.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/chat/tcl/chat-procs.tcl,v diff -u -N -r1.16 -r1.17 --- openacs-4/packages/chat/tcl/chat-procs.tcl 25 Apr 2018 19:47:46 -0000 1.16 +++ openacs-4/packages/chat/tcl/chat-procs.tcl 30 Apr 2018 12:45:00 -0000 1.17 @@ -38,8 +38,7 @@ } # Free up resources. - set r [lindex $fds 0] - set w [lindex $fds 1] + lassign $fds r w close $r close $w @@ -60,8 +59,7 @@ # Chat server must already started otherwise error will occur. set fds [ns_sockopen -nonblock $host $port] - set r [lindex $fds 0] - set w [lindex $fds 1] + lassign $fds r w ns_log Notice "chat_broadcast_to_applets: Ready to broadcast message to applets." ns_log Notice $host @@ -72,10 +70,10 @@ flush $w while { 1 } { - # Wait until there is new message in queue. + # Wait until there is new message in queue. ns_mutex lock [nsv_get chat new_message] if {[nsv_exists chat html_message]} { - # Get message from queue. + # Get message from queue. puts $w [nsv_get chat html_message] flush $w } @@ -91,19 +89,18 @@ set fds [ns_sockopen -nonblock $host $port] - set r [lindex $fds 0] - set w [lindex $fds 1] + lassign $fds r w set r_fd [list $r] ns_log Notice "chat_receive_from_server: Listening for messages from applets." puts $w " - - -1 - AOL_READER - T - -1 - " + + -1 + AOL_READER + T + -1 + " flush $w set running 1 @@ -133,19 +130,19 @@ c1 logout } default { - c1 add_msg -uid $user_id $msg + c1 add_msg -uid $user_id $msg } } - chat_room_get -room_id $room_id -array room_info - if { $room_info(archive_p) == "t" } { - if {[catch { - chat_post_message_to_db \ - -creation_user $user_id $room_id $msg - } errmsg]} { - ad_log error "chat_post_message_to_db: error: $errmsg" - } - } + chat_room_get -room_id $room_id -array room_info + if { $room_info(archive_p) == "t" } { + if {[catch { + chat_post_message_to_db \ + -creation_user $user_id $room_id $msg + } errmsg]} { + ad_log error "chat_post_message_to_db: error: $errmsg" + } + } nsv_lappend chat_room $room_id $line @@ -169,7 +166,7 @@ # create a cache for the chat package if {"chat_room_cache" ni [ns_cache_names]} { - # these should be around 1000 entries +# these should be around 1000 entries ns_cache_create chat_room_cache 350000 } @@ -181,7 +178,7 @@ } { upvar $array row array set row [ns_cache_eval -- chat_room_cache $room_id { - chat_room_get_not_cached $room_id + chat_room_get_not_cached $room_id }] } @@ -226,30 +223,30 @@ Create new chat room. Return room_id if successful else raise error. } { if {[ad_conn isconnected] && $creation_user eq ""} { - set creation_user [ad_conn user_id] + set creation_user [ad_conn user_id] } db_transaction { - set room_id [::xo::db::sql::acs_object new \ - -object_type "chat_room" \ - -creation_user $creation_user \ - -creation_ip $creation_ip \ - -context_id $context_id] + set room_id [::xo::db::sql::acs_object new \ + -object_type "chat_room" \ + -creation_user $creation_user \ + -creation_ip $creation_ip \ + -context_id $context_id] - db_dml insert_room {} + db_dml insert_room {} - if {$creation_user ne ""} { - foreach privilege {edit view delete} { - permission::grant \ - -party_id $creation_user \ - -object_id $room_id \ - -privilege chat_room_${privilege} - } - permission::grant \ - -party_id $creation_user \ - -object_id $room_id \ - -privilege chat_transcript_create - } + if {$creation_user ne ""} { + foreach privilege {edit view delete} { + permission::grant \ + -party_id $creation_user \ + -object_id $room_id \ + -privilege chat_room_${privilege} + } + permission::grant \ + -party_id $creation_user \ + -object_id $room_id \ + -privilege chat_transcript_create + } } return $room_id @@ -263,21 +260,21 @@ @return a boolean } { if {[ns_cache_keys -exact -- chat_room_cache $room_id] ne ""} { - # chat room is in cache: it exists "for sure" + # chat room is in cache: it exists "for sure" return 1 } elseif {[info exists ::chat_room_deleted_p($room_id)]} { - # chat room deletion has been recorded in threaded cache: as - # object id comes from a sequence, unless somebody puts an id - # by hand, the same will never be used again system wide, so - # it is safe to cache this + # chat room deletion has been recorded in threaded cache: as + # object id comes from a sequence, unless somebody puts an id + # by hand, the same will never be used again system wide, so + # it is safe to cache this return 0 } elseif {[db_0or1row room_exists { select 1 from chat_rooms - where room_id = :room_id}]} { - # chat room existence has been confirmed by query + where room_id = :room_id}]} { + # chat room existence has been confirmed by query return 1 } else { - # chat room is not there: take note of this in threaded cache + # chat room is not there: take note of this in threaded cache set ::chat_room_deleted_p($room_id) 1 return 0 } @@ -356,9 +353,9 @@ Grant party a chat moderate privilege to this chat room. } { permission::grant \ - -party_id $party_id \ - -object_id $room_id \ - -privilege "chat_room_moderate" + -party_id $party_id \ + -object_id $room_id \ + -privilege "chat_room_moderate" } ad_proc -public chat_moderator_revoke { @@ -368,9 +365,9 @@ Revoke party a chat moderate privilege to this chat room. } { permission::revoke \ - -party_id $party_id \ - -object_id $room_id \ - -privilege "chat_room_moderate" + -party_id $party_id \ + -object_id $room_id \ + -privilege "chat_room_moderate" } ad_proc -public chat_user_grant { @@ -380,12 +377,12 @@ Grant party a chat privilege to this chat room. } { db_transaction { - foreach privilege {read write} { - permission::grant \ - -party_id $party_id \ - -object_id $room_id \ - -privilege chat_${privilege} - } + foreach privilege {read write} { + permission::grant \ + -party_id $party_id \ + -object_id $room_id \ + -privilege chat_${privilege} + } } } @@ -396,12 +393,12 @@ Revoke party a chat privilege to this chat room. } { db_transaction { - foreach privilege {read write} { - permission::revoke \ - -party_id $party_id \ - -object_id $room_id \ - -privilege chat_${privilege} - } + foreach privilege {read write} { + permission::revoke \ + -party_id $party_id \ + -object_id $room_id \ + -privilege chat_${privilege} + } } } @@ -412,9 +409,9 @@ Explicit ban user from this chat room. } { permission::grant \ - -party_id $party_id \ - -object_id $room_id \ - -privilege "chat_ban" + -party_id $party_id \ + -object_id $room_id \ + -privilege "chat_ban" } ad_proc -public chat_user_unban { @@ -424,9 +421,9 @@ unban user from this chat room. } { permission::revoke \ - -party_id $party_id \ - -object_id $room_id \ - -privilege "chat_ban" + -party_id $party_id \ + -object_id $room_id \ + -privilege "chat_ban" } ad_proc -public chat_revoke_moderators { @@ -436,10 +433,10 @@ Revoke a list of parties of a moderate privilege from this room. } { foreach party_id $revoke_list { - permission::revoke \ - -party_id $party_id \ - -object_id $room_id \ - -privilege "chat_moderate_room" + permission::revoke \ + -party_id $party_id \ + -object_id $room_id \ + -privilege "chat_moderate_room" } } @@ -484,7 +481,7 @@ # write message to the database if {[catch {chat_post_message_to_db -creation_user $user_id $room_id $message} errmsg]} { - ns_log error "chat_post_message_to_db: error: $errmsg" + ns_log error "chat_post_message_to_db: error: $errmsg" } } @@ -496,13 +493,13 @@ Post moderate message to the chat room and broadcast to all applet clients. Only use by HTML client. } { set chat_msg " - - [chat_user_name $user_id] - $user_id - $room_id - $message - pending - " + + [chat_user_name $user_id] + $user_id + $room_id + $message + pending + " # Add message to queue. Notify thread responsible for broadcast message to applets. nsv_set chat html_message $chat_msg @@ -523,7 +520,7 @@ # is not initialize correctly. Therefore I just hard code the # variable. if {![nsv_exists chat_room $room_id]} { - nsv_set chat_room $room_id {} + nsv_set chat_room $room_id {} } set user_name [chat_user_name $user_id] @@ -573,24 +570,24 @@ Create chat transcript. } { if {[ad_conn isconnected] && $creation_user eq ""} { - set creation_user [ad_conn user_id] + set creation_user [ad_conn user_id] } db_transaction { - set transcript_id [::xo::db::sql::acs_object new \ - -object_type "chat_transcript" \ - -creation_user $creation_user \ - -creation_ip $creation_ip \ - -context_id $context_id] + set transcript_id [::xo::db::sql::acs_object new \ + -object_type "chat_transcript" \ + -creation_user $creation_user \ + -creation_ip $creation_ip \ + -context_id $context_id] - db_dml insert_transcript {} + db_dml insert_transcript {} - foreach privilege {edit view delete} { - permission::grant \ - -party_id $creation_user \ - -object_id $transcript_id \ - -privilege chat_transcript_${privilege} - } + foreach privilege {edit view delete} { + permission::grant \ + -party_id $creation_user \ + -object_id $transcript_id \ + -privilege chat_transcript_${privilege} + } } return $transcript_id @@ -633,19 +630,19 @@ chat_room_get -room_id $room_id -array room_info # do we have to create a transcript for the room if { $room_info(auto_transcript_p) == "t" } { - # build a list of all messages - set contents {} + # build a list of all messages + set contents {} foreach message [db_list_of_lists get_archives_messages {}] { - lassign $message msg creation_user creation_date + lassign $message msg creation_user creation_date set user_name [expr {$creation_user > 0 ? [chat_user_name $creation_user] : "system"}] lappend contents "\[$creation_date\] ${user_name}: $msg" } if { $contents ne "" } { - set today [clock format [clock seconds] -format "%d.%m.%Y"] + set today [clock format [clock seconds] -format "%d.%m.%Y"] chat_transcript_new \ -description "#chat.automatically_created_transcript#" \ "#chat.transcript_of_date# $today" \ - [join $contents "
\n"] $room_id + [join $contents "
\n"] $room_id } } # clear all the messages in the room