App-Tacochan
view release on metacpan or search on metacpan
bin/tacochan view on Meta::CPAN
262728293031323334353637383940414243444546
[
'Content-Type'
=>
'text/plain; charset=utf-8'
,
'Content-Length'
=>
length
$message
,
],
[
$message
]
);
}
sub
res_404 {
$_
[0]->render_text(404,
'Not Found'
) }
sub
guess_chat {
my
(
$self
,
$stuff
) =
@_
;
if
(
$stuff
=~ /^
#/) {
# from chatname
return
$skype
->chat(
$stuff
);
}
elsif
(
$stuff
=~ /^skype:/) {
# from "/get uri"
my
%query
= URI->new(
$stuff
)->query_form();
my
$command
=
$skype
->api->send_command(
"CHAT FINDUSINGBLOB $query{blob}"
);
my
@reply
=
$command
->split_reply();
return
$skype
->chat(
$reply
[1]);
bin/tacochan view on Meta::CPAN
8081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137};
post
qr!^/(?:leave|part)$!
=>
sub
{
my
(
$c
) =
@_
;
unless
(
$skype
->api->is_running) {
return
$c
->render_text(500,
'Skype is not running'
)
}
my
$chat
=
$c
->req->param(
'chat'
);
my
$chat_obj
=
$c
->guess_chat(
$chat
);
eval
{
$chat_obj
->alter(
'leave'
);
};
if
($@) {
return
$c
->render_text(403,
"leave failure chat: $chat"
);
}
return
$c
->render_text(200,
"leave success chat: $chat"
);
};
post
qr!^/(?:send|notice|privmsg)$!
=>
sub
{
my
(
$c
) =
@_
;
unless
(
$skype
->api->is_running) {
return
$c
->render_text(500,
'Skype is not running'
)
}
my
$chat
=
$c
->req->param(
'chat'
);
my
$message
=
$c
->req->param(
'message'
);
my
$chat_obj
=
$c
->guess_chat(
$chat
);
eval
{
$chat_obj
->send_message(
$message
);
};
if
($@) {
return
$c
->render_text(403,
"message sent failure chat: $chat $message"
);
}
return
$c
->render_text(200,
"message sent chat: $chat_obj->{id} $message"
);
};
get
'/chat_id'
=>
sub
{
my
(
$c
) =
@_
;
unless
(
$skype
->api->is_running) {
return
$c
->render_text(500,
'Skype is not running'
);
}
my
$chat
=
$c
->req->param(
'chat'
);
my
$chat_obj
=
$c
->guess_chat(
$chat
);
return
$c
->render_text(200,
"$chat_obj->{id}"
);
};
__PACKAGE__->load_plugin(
'Web::JSON'
);
my
$parser
= Getopt::Long::Parser->new(
config
=> [
'no_ignore_case'
,
'pass_through'
],
);
my
%options
;
( run in 0.262 second using v1.01-cache-2.11-cpan-94b05bcf43c )