httptitle.pm 435 B

123456789101112131415161718192021222324
  1. use Mojo::DOM;
  2. use POE;
  3. {
  4. irc_on_anymsg => sub {
  5. BotIrc::check_ctx() or return;
  6. if ($_[ARG2] =~ m#\b(https?://\S+)#i) {
  7. my $url = $1;
  8. my $ctx = BotIrc::ctx_frozen;
  9. BotHttp::get($url, sub {
  10. my $dom;
  11. eval {
  12. $dom = Mojo::DOM->new(shift);
  13. };
  14. return if $@;
  15. my $node = $dom->at('head title');
  16. return if !$node;
  17. BotIrc::send_wisdom($ctx, "Title: ". $node->all_text);
  18. }, sub {});
  19. }
  20. },
  21. };