+
+ $timestamp =~ s/^stamp=//g;
+
+ $message =~ s/^m=//;
+ $message =~ s/\+/ /g;
+ $message = uri_unescape($message);
+
+ if($ci->is_webkit() && !$cf->webkit_newui()){
+ $message = fix_webkit_escape($message);
+ }
+ }
+ if ($cf->webkit_newui()) {
+ # ajax で投げ込んでるので utf8 できます
+ $message = Encode::decode('utf8', $message);
+ } else {
+ $message = Encode::decode($cf->web_charset(), $message);
+ }
+ return ($message, $timestamp);
+}
+
+sub send_message{
+ my $request = shift;
+ my $channel = shift;
+
+ my ($message, $timestamp) = parse_message($request);
+
+ if(length($message) && length($channel)){
+ if($ib->update_timestamp($timestamp)){
+ my $enc_message = Encode::encode($cf->irc_charset(), $message);
+ my $enc_channel = Encode::encode($cf->irc_charset(), $channel);
+ $irc->yield(privmsg => $enc_channel => $enc_message);
+ my $cid = $ib->name2cid($channel);
+ $ib->add_message($cid, $message, $cf->irc_nick());
+ }
+ }
+}
+
+sub send_command{
+ my $request = shift;
+
+ my ($message, $timestamp) = parse_message($request);