weechatのプラグインを作ってみた

はい、タイトル通り。

weechatを使ってる環境というかパソコンは、サードPC。
weechatのほうでなんかあったらすぐに切り替える事ができるように、
ググったりして、適当に簡単にプラグイン作った。

通知音とモジュールにちょっと困った。

ログインしたらすぐfbtermとuim-fepを起動して使えるようにしてあって、
何故か、それだと、
perl -e 'print "\a"'
ってやっても鳴らないんだよね。
beep音鳴らすことができるようにしてあるから、
fbterm上じゃなければ、ちゃんと音がなるんだけどね。

beepっていうパッケージがあって、
sudo apt-get install beep
ってやればインスコできて、fbterm上でもちゃんとbeep音が鳴るんだけど、
どういう仕組みなんだろう。
僕はまだ、C言語で書かれたコードを大体理解できるってほどじゃないから、よく分からん

メインPC(Ubuntu)やサブPC(Windows)でやると、
beep音はヘッドホンからでも出るからいいんだけど、
サードPC(UbuntuServer)だと、何故か出ずに、ヘッドホン挿してあってもパソコンから出るっていうね。
ハードにもよるのかなぁ・・・。
ハードに関しては僕はあまり詳しくはないからなぁ・・・。

ヘッドホン買ってから、ヘッドホンかけることが多くて、
ヘッドホンからbeep音出てくれたほうが、個人的に、通知音とかテスト的にも便利なんだけどねー。


まぁそれはともかく、コード

use warnings;
use Audio::Play::MPG123;
$player = new Audio::Play::MPG123;

weechat::register('notify','baku','1','GPL3','何かあったら音で通知するプラグイン','','');
weechat::hook_print('','','',1,'notify','');

sub notify{
$player->load('a.mp3');
until($player->state == 0){$player->poll(1)}
}

GPL3じゃなくてNoLicenseにしたかったけどね
'No License'にして読み込んだ時にweechatに警告された
ライセンスの規約守るのとか正直面倒くさい_(:3」∠)_
use strict;忘れてるって?
myやるの面倒くさい_(:3」∠)_

もし\aをやるとしたら、こんな感じかな

use warnings;

weechat::register('notify','baku','1','GPL3','何かあったら音で通知するプラグイン','','');
weechat::hook_print('','','',1,'notify','');

#sub notify{print "\a"} #このブログ記事を投稿した日から数日後、僕のメインPCでやってみたらダメだったけど、STDERRを追加してみたら成功した
sub notify{print STDERR "\a"}

beepっていうパッケージをインスコしてbeepコマンド使うならこんな感じかな

use warnings;

weechat::register('notify','baku','1','GPL3','何かあったら音で通知するプラグイン','','');
weechat::hook_print('','','',1,'notify','');

sub notify{system 'beep'}


参考にしたサイト
WeeChat スクリプト作成ガイド
Ubuntu+WeechatでもIRCで呼ばれたら通知したい! - Qiita

一応こちらも貼っとく
WeeChat :: scripts
WeeChat ユーザーズガイド