anchor.diff:      case Msg of
           % explicit command to fetch a web page title
           {in, Ref, [_Nick, _Name, <<"PRIVMSG">>, <<"#",Channel/binary>>, <<"!t ", Text/binary>>]} ->
  -            case ircbot_lib:url_match(Text) of
  -                {match, [Url]} ->
  -                    fetch(Url, Ref, <<"#",Channel/binary>>);
  -                _ -> ok
  -            end,
  +            fetch(trim(Text), Ref, <<"#",Channel/binary>>),
               {ok, State};
           {in, Ref, [_Nick, _Name, <<"PRIVMSG">>, <<"#",Channel/binary>>, <<"!т ", Text/binary>>]} ->
  -            case ircbot_lib:url_match(Text) of
  -                {match, [Url]} ->
  -                    fetch(Url, Ref, <<"#",Channel/binary>>);
  -                _ -> ok
  -            end,
  +            fetch(trim(Text), Ref, <<"#",Channel/binary>>),
               {ok, State};
            {in, Ref, [_Nick, _Name, <<"PRIVMSG">>, <<"#",Channel/binary>>, <<"!title ", Text/binary>>]} ->
               case ircbot_lib:url_match(Text) of
  
positive.code:             hackney:close(Ref),
              Tree = mochiweb_html:parse(Body),
              [{_, _, Title}|_] = mochiweb_xpath:execute("//title",Tree),
              _Title = re:replace(Title, "\\s+", " ", [global]);
          _ ->
              hackney:close(Ref),
              N = list_to_binary(integer_to_list(StatusCode)),
  
negative.code:     end).
  
  fetcher(Url) ->
      Headers = [{<<"User-Agent">>, <<"Mozilla/5.0 (erlang-irc-bot)">>},
                 {<<"Accept">>, <<"text/html,application/xhtml+xml,application/xml">>}],
      Options = [{recv_timeout, 5000}, {follow_redirect, true}],
      {ok, StatusCode, RespHeaders, Ref} = hackney:request(get, Url, Headers, <<>>, Options),
      case StatusCode of
          200 ->
              <<"text/", _/binary>> = hackney_headers:get_value(<<"content-type">>, hackney_headers:new(RespHeaders)),
  