番号カード52


前回の準備編の続きです。いきなり上図は結果ですが、継続してPerlからpostさせることに成功しました。といっても、while文でぐるぐる回して、データベースからpostを繰り返しているだけの幼稚なものですが。
主に用いた処理としては、

open(IN,"/home/~/filename");
my @DATA = ;
close(IN);

でデータベースをfilenameから@DATAに放り込んで作成し、

my $num = int(rand(4));
$text="$DATA[$num]";
&post;
で乱数を生成してランダムにpostするデータを引き出します。&postはサブルーチンで、

$text="$text $http";

と処理をし、各データの最後にhttpをくっつけ、前回のpost処理をしています。なおこのままでは間隔を開けてpostできないので、

sleep(600);

とやって、処理の途中で待機させます。そしてpost処理全体をwhile文で囲めば、ちょっとだけ応用を効かせたbotのできあがりです。

 なお、この例ではデータベースを3つ用いて”問題”、”選択肢”、”回答”の順でTOEICのpart5(自作)を投稿しています。一番時間がかかったのはこのデータベース作りだったのは言うまでもない。ストックを増やすか、何か投稿するネタが今度は必要になってきますね。問題文でもなにか適当にpostさせようかしらん。
一応Linux側からbotっぽくpost出来るようにはなったので、覚書。

ターミナルで
su

perl -MCPAN -e shell

cpan> install YAML::Tiny
cpan> install Net::Twitter

*YAML::TinyはPure Perlモジュールとかいうものらしい。
*cpan>でのインストールは、デフォルトでurlが設定されてない場合があるみたい。
cpan>o conf
で設定を確認。

そして以下の内容のファイル作成(twibot.pl)

use strict;
use Net::Twitter;

my $twit = Net::Twitter->new(
username => "ユーザー名",
password => "パスワード"
);

my $text = "てすとぽすと";
my $result => $twit->update($text);

あとはターミナルで
perl ./twibot.pl

これでポスト完了。結果は、

”4分前 Perl Net::Twitterで”

という具合に表示される模様。
cpanとはperlに含まれるモジュールで、たとえばついったーにポストする場合は、Net::Twitterが処理を肩代わりしてくれるようです。あとは$textの部分をちょいちょいしていけば作成できそうな予感ですね。

 Rubyでも簡単にできる類の情報があったのでチャレンジしましたが、どうもRequireが上手く働きませんでした。とりあえず動かないかなーと、Perlでやってみたらこちらでも大ゴケ。どうもuse strictが無かったからみたいです。右から左へ移した結果がこれだよ! …精進します。 

 とりあえず動きましたから、今後はいろいろ幅が増えますねー。文書をポストするくらいなら作れそうです。

$番号カード52
 なんだかんだで友達とはじめたランニング。気づけば夕方の真っ暗な中走っています。時間としては30~40分くらいですので、そんなにいっぱいじゃないですけど。継続のためにはこれくらいの時間がいいと思います。ただでさえデスクワーク(社会人じゃないけど)が多いので、時間を作って走らないとどんどん代謝が落ちて太りますからね。
 冬になればランニングには良い季節。ちまちま継続目指します。