OSDN Git Service

* lib/plugins/32address: Address matching plugin\r * lib/plugins/33distinct: Ad-hoc...
[keitairc/keitairc.git] / lib / plugins / 10url
1 # -*- mode: perl; coding: utf-8 -*-
2 # keitairc/lib/plugins/10url
3 # URL処理
4 # $Id: 10url,v 1.8 2008-08-03 02:36:48 morimoto Exp $
5 # $Source: /home/ishikawa/work/keitairc/tmp/keitairc/lib/plugins/10url,v $
6
7 # The line number (1 incremented) and filename below must be
8 # actual. see perlsyn.
9 # line 10 "keitairc/lib/plugins/10url"
10
11 $plugin = {
12         name => 'url',
13
14         message_replace_regexp => '\b(https?://[/!-;=-\177]+|www\.[/!-\177]+)',
15         message_replace_imprementation => sub {
16                 my ($session_id, $param) = @_;
17                 if($param =~ m/^http/){
18                         return sprintf('<a href="%s%s/url/%s">%s</a>',
19                                        $::cf->web_root(),
20                                        $session_id, $param, $param);
21                 }
22                 return sprintf('<a href="%s%s/url/http://%s">%s</a>',
23                                $::cf->web_root(),
24                                $session_id, $param, $param);
25         },
26
27         action_imprementation => sub {
28                 my ($request, $name, $session_id, $param) = @_;
29                 my $ci = new Keitairc::ClientInfo($request);
30                 my $view = new Keitairc::View($::cf, $ci);
31                 return $view->render('url.html', {
32                         url => $param,
33                         session_id => $session_id,
34                         escaped_url => URI::Escape::uri_escape($param),
35                              });
36         }
37 };
38
39 1;