Index: openacs.org-dev/www/bboard-migr/links-migr.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs.org-dev/www/bboard-migr/links-migr.tcl,v diff -u -r1.2 -r1.3 --- openacs.org-dev/www/bboard-migr/links-migr.tcl 1 Aug 2002 16:15:35 -0000 1.2 +++ openacs.org-dev/www/bboard-migr/links-migr.tcl 2 Aug 2002 11:33:45 -0000 1.3 @@ -43,109 +43,82 @@ ns_write $old_link_regex -ad_script_abort -return - - ns_write " Looping through all messages to substitute links. " -#set ids [db_list ids "select message_id from bboard_forum_message_map"] -#set ids [list 4590] set test_counter 0 -#foreach id $ids { +db_foreach get_message { + select message_id, content from forums_messages order by message_id +} { + ns_write "-- checking $message_id\n" - # loop through possibly several revisions of one message - #db_foreach get_message { - # select r.revision_id, r.content from cr_revisions r - # where item_id=:id - #} { - # loop through all the messages - db_foreach get_message { - select message_id, content from forums_messages - } { - ns_write "-- checking $message_id\n" - - # split content into a list where each element is either a - # matching link or a text blurb in between. - set content_list [list] - set to_search $content - while { [regexp -indices $old_link_regex $to_search match] } { - lappend content_list [string range $to_search 0 [expr [lindex $match 0] - 1]] - lappend content_list [string range $to_search [lindex $match 0] [lindex $match 1]] - set to_search [string range $to_search [expr [lindex $match 1] +1] end] - } + # split content into a list where each element is either a + # matching link or a text blurb in between. + set content_list [list] + set to_search $content + while { [regexp -indices $old_link_regex $to_search match] } { + lappend content_list [string range $to_search 0 [expr [lindex $match 0] - 1]] + lappend content_list [string range $to_search [lindex $match 0] [lindex $match 1]] + set to_search [string range $to_search [expr [lindex $match 1] +1] end] + } - if { [llength $content_list] == 0 } { - # nothing to replace in this message - continue - } + if { [llength $content_list] == 0 } { + # nothing to replace in this message + continue + } - # append the tail - lappend content_list $to_search + # append the tail + lappend content_list $to_search - set replaced_p 0 + set replaced_p 0 - for { set idx 0 } { $idx < [llength $content_list] } { incr idx } { - set element [lindex $content_list $idx] + for { set idx 0 } { $idx < [llength $content_list] } { incr idx } { + set element [lindex $content_list $idx] - if { [regexp $old_link_regex $element match old_id] } { - # this is a link + if { [regexp $old_link_regex $element match old_id] } { + # this is a link - #if { [db_0or1row get_ids_for_new_link { select m.new_message_id, f.forum_id - # from migr_message_map m - # join bboard_forum_message_map f - # on m.new_message_id=f.message_id - # where old_message_id=:old_id - #}] } { - if { [db_0or1row get_ids_for_new_link { select new_message_id - from migr_message_map - where old_message_id=:old_id - }] } { - # we found a mapping - #set new_link "$new_bboard_url/message?message_id=$new_message_id&forum_id=$forum_id" - set new_link "$new_bboard_url/message-view?message_id=$new_message_id" + if { [db_0or1row get_ids_for_new_link { select new_message_id + from migr_message_map + where old_message_id=:old_id + }] } { + # we found a mapping + #set new_link "$new_bboard_url/message?message_id=$new_message_id&forum_id=$forum_id" + set new_link "$new_bboard_url/message-view?message_id=$new_message_id" - set content_list [lreplace $content_list $idx $idx $new_link] + set content_list [lreplace $content_list $idx $idx $new_link] -# ns_write "new message_id: $id -#revision_id: $revision_id -#old_id: $old_id -#new forum_id: $forum_id -#new link: $new_link -#" - ns_write "test_counter: $test_counter -new message_id: $message_id + ns_write "test_counter: $test_counter +new message_id: $new_message_id old_id: $old_id new link: $new_link " - set replaced_p 1 + set replaced_p 1 + + } else { + # no mapping found + ns_write "warning: no mapping entry in migr_message_map for old id: $old_id\n" + } + + + incr test_counter + if { $test_counter > 100 } { + ad_script_abort + } - } else { - # no mapping found - ns_write "warning: no mapping entry in migr_message_map for old id: $old_id\n" - } - - - incr test_counter - if { $test_counter > 100 } { - ad_script_abort - } - - } - - if { $replaced_p } { - set new_content [join $content_list ""] - #db_dml update_content "update cr_revisions set content=:new_content where revision_id=:revision_id" - db_dml update_content "update forums_messages set content=:new_content where message_id=:new_message_id" - } - } + } + + if { $replaced_p } { + set new_content [join $content_list ""] + #db_dml update_content "update cr_revisions set content=:new_content where revision_id=:revision_id" + db_dml update_content "update forums_messages set content=:new_content where message_id=:message_id" + } } -#} +} ns_write "