したらばTOP ■掲示板に戻る■ 全部 1-100 最新50 | |
レス数が900を超えています。1000を超えると投稿できなくなるよ。

TwitterBotPHP質問スレ

722719:2011/06/17(金) 22:20:10
>>720
ありがとうございます。
cronは通常とは別に毎時00分に実行されるようにセットしてあるのですが、リセットされないようです。

723名無しさん:2011/06/17(金) 22:28:51
>>721 です
再びDLしたら正しく動きました。

724名無しさん:2011/06/17(金) 23:30:16
>>722
書き方を変えた方が良いかな
そもそもCRONと設置サーバの時間は一致してるかってことを聞いてる
わからなければ非公式wiki見てくれ
http://www26.atwiki.jp/easybotter_wiki/pages/25.html#id_ce8e3a32

725719:2011/06/18(土) 00:05:40
>>724
ご指摘の通り、CRONと設置サーバの時間がズレてたようで、余裕を持った書き方に変えたらログがリセットされるようになりました!
ありがとうございました!

726名無しさん:2011/06/18(土) 03:13:29
簡単じゃないBOTの発言確率についてなのですが
easybotter.phpの
//リプライパターンと照合の
if(preg_match("@".$pattern."@u",$reply->text, $matches) === 1){

$status = $res[array_rand($res)];
の間に
if(preg_match("@".$pattern."@u",$reply->text, $matches) === 1){

$res = $this->probabilityExtension($res);//発言確率拡張

$status = $res[array_rand($res)];

・・・・・・・
と、入力してもうまく発言確率機能が使えません
発言確率拡張の関数を置いてる場所が悪いのでしょうか
どこに設置したらいいかご教授お願いします

727名無しさん:2011/06/18(土) 06:17:51
>>726
自力ででバグできない人は、あそこのサイトには手を出さない方がいい。

728名無しさん:2011/06/19(日) 03:24:25
>>726
あそこは本人様も書いてるように文法チェックだけでテストしてないから思わぬバグがあったり、動かなかったりする。
あと見てると前提となるEBの構成記述がDL直後と違ったりするので、そのままやるとこの記述無いんだけど?みたいなことも

729名無しさん:2011/06/19(日) 12:00:48
>>726
どうしても確率調節したいなら無理やり
"今日の運勢"=> array(
"大吉",
"中吉",
"小吉",
"小吉",
"小吉",
"末吉",
"吉",
"凶",
),
とか
長ったらしくなる上に多いと見栄え悪いけど

730687:2011/06/19(日) 15:33:37
以前質問させていただいた>>687です。
ありがたく活用させていただいております。

ログやphpサイトを参考に試してみたのですが、どうにも上手くいきません。
内容は以下です。

<?php
$chara_a = array(
"反応単語1" =>
"返信イ",
"返信ロ",
"反応単語2" =>
"返信ハ",
"返信ニ",
//該当なし
"" =>
"返信ホ",
);
$chara_b = array(
"反応単語1" =>
"返信ヘ",
"返信ト",
"反応単語2" =>
"返信チ",
"返信リ",
//該当なし
"" =>
"返信ヌ",
);

$data = array(
"キャラA" => $chara_a,
"キャラB" => $chara_b,
);

これだとキャラクターの分別は出来るのですが、例えば「キャラA」宛てのリプライをもらった時
「返信イ〜ホ」の中からランダムで選んでしまうようです。
"反応単語1" => array(
"返信イ",
"返信ロ",
)
も試しましたが上手くいかず…(「Array」とツイートします)。
お手数おかけいたしますが、改善箇所等ご指南いただけると助かります。
お願いいたします。

731名無しさん:2011/06/19(日) 16:18:47
>>730
開いたら閉じる!

732726:2011/06/20(月) 01:17:01
>>728-729
有難う御座います
発言確率はなんとか自力で組み立てて出来るようになりました
曜日指定や時間指定が一番やりたかったんですがこっちがなかなかうまくいかず…(出来たら管理が楽になるのでやりたいんです)
テストしてないと聞いて少し納得しました
ですが管理が楽になるので諦めずにいじってみる事にします
何か分かった事があったら助言を頂けたら嬉しいです

733名無しさん:2011/06/20(月) 01:43:41
>>732
曜日及び時間指定はEasyBotter2.0スレの900や901、wikiを見たらある程度分かるんじゃないかな

734名無しさん:2011/06/20(月) 07:21:49
>>732
なぜ助言を請うばかりで、分かったことを人に分け与えない。

735687:2011/06/20(月) 20:03:12
>>731
ありがとうございます
心当たりのあった、<?phpを閉じてみましたが、反応は変わりませんでした。
下の説明の
"反応単語1" => array(
"返信イ",
"返信ロ",
)
は書き込み時に一部消えてしまったりと、書き方が足りなかったようで、実際には
$chara_a = array(
"反応単語1" => array(
"返信イ",
"返信ロ",
),
〜略〜
);
$chara_b = array(
〜略:同上〜
);
$data = array(
"キャラA" => $chara_a,
"キャラB" => $chara_b,
);
です。すみません。これで「Array」とリプライされてしまうんです。

返信と反応単語の部分(例えば返信ロと反応単語2)が繋がってることに気づき、
そこを中心にいろんな書き方を試してみましたがなかなか動いてくれません。
度々申し訳ありませんが、知恵をお貸しいただけないでしょうか。
よろしくお願いします。

736名無しさん:2011/06/20(月) 23:42:36
こんな機能があったらいいなスレにも書いてしまいましたが、場違いと思いこちらに書きました。すみません。

標準機能で、「占い」機能あるじゃないですか?
同一ユーザは1日1回しか占えないと言うように改造したいのですが、できますかね?
例えば、1日に既に1度リプライで結果を送信されたあと、再度「今日の占い」とbot宛に
ツイートすると、「占いは1日1回までですよ」みたいなのが、送信されるみたいな。

737名無しさん:2011/06/20(月) 23:51:23
>>735
単純ミスであるけど、改行コードは大丈夫?

738名無しさん:2011/06/20(月) 23:53:31
>>736
改造すればできる
要はデータファイル作って占いしたか判定してリプライ振り分け
1日1回データファイルをクリア

739726:2011/06/21(火) 03:10:34
>>734
何でそんな攻撃的なんだよw
教えて欲しいなら言えばいいだろうに
これがツンデレ

740名無しさん:2011/06/21(火) 07:05:30
>>739
私が知りたいから言っているとか、そんな狭量な話ではありません。
もっときちんと情報を与えば、資料としての価値は高まると言っています。
お互いのためになると言っています。
残念ですが、私に関していえば、技術面でここから教わることは何もありませんでした。従って、私の利益だけを考えれば、答える必要もないのです。
それでも答えるのは、bot全体の質を上げたいから。botが暴走したりせず、迷惑なpostで人を煩わせることなく、サーバーに負担をかけず、かつ安定した動作で、spam扱いで凍結されることなく、多くの個性的な機能で、一人でも多くのフォロワーさんに楽しんで貰いたいからに他なりません。
それをご理解頂けないのは誠に残念でなりません。
しばらくは傍観させていただくことにします。
コードを書きたくなるような面白い質問があったらまたお答えするかもしれません。では…

741名無しさん:2011/06/21(火) 21:18:07
答える側の任意ではあるがここは基本「教えて」と言えば「教えてあげる」というスタンスは取っていない。
自らPHPなどを勉強して覚える気がないならいつまでも「初心者」です。
後継に同じようなミスを出す人もいるだろうから自分がどのようにそれを回避したのか情報を提供することで同じようなミスをする人に答えれる。
最近の初心者さんは情報乞食ばかりで情報提供が出来ないなら、この板がある意味は正直ない。

あと初心者さん、最近BOTがよくBANされているのはご存知かな?
http://ameblo.jp/qsoft/entry-10623665000.html

BOTのBAN回避の為の注意点
http://twbot.blogspot.com/2011/06/1.html

742687:2011/07/02(土) 21:28:16
>>737
ありがとうございます。
735の書き方で、反応単語の最後に「\n<br />」を付け加えて試してみましたが、
反応はありませんでした。
easybotterも新しいバージョンに移行して、まだほとんどいじってない状態なので、
どこか間違って書き換えたというのも考えにくくて…

一旦諦めて、また時間が取れるときに再挑戦しようと思います。
皆様ありがとうございました。

743名無しさん:2011/07/03(日) 22:41:21
http://red5jedimaster.wiki.fc2.com/
Twitterアカウントリストまとめ(岩手限定)

744名無しさん:2011/07/05(火) 11:19:37
初心者用のスレにも書いたのですが、
改造はこちらの範疇とのことで再書き込みさせていただきます。

現在占い用のBOTを作ってるのですが、
あるアカウントからのリプライに対し、
初回はデータファイルの中からランダムに、
2回目以降は初回と同じ内容を返し、
そして1日ごとにリセットするというのはどの様に改造すれば良いでしょうか?

検索ワードが悪いらしく思うように調べられませんでした。
どうぞお力添えください。

745名無しさん:2011/07/05(火) 15:56:35
>>744
ここって無償奉仕のプログラマーがいるわけじゃないからw
せめて、どういうファイルを用意してどう使う、くらいまでは自分で考えて
それを提示した上で書き込みをどうぞ

それもわからないレベルの「初心者さん」は改造に手を出すな、が答え

746名無しさん:2011/07/06(水) 20:48:29
調整上げ

747名無しさん:2011/07/08(金) 01:08:17
単語拾いを導入したいのですが、
こちらを参考に、ttp://www26.atwiki.jp/easybotter_wiki/pages/26.html
Easybotter.phpのほうは書き換えることができました。

あとは、{ran_meishi}を入れて、リプライさせたい文章を、書いてサーバにUPする段階なのですが、
どこに書けばいいのでしょうか。
こちらのサイト ttp://blog.livedoor.jp/bot_1go/archives/1733069.html
さんでは、『tw.txtに 「君は{ran_meishi}が好きなんだね」 と記述 』する。
とかいてあるので、
『data.txt』に書けばいいのでしょうか?

748名無しさん:2011/07/08(金) 01:32:38
>>747
まず自分で試してみたら?
聞くより早いでしょ

749名無しさん:2011/07/08(金) 01:44:46
毎回のようにtw.txt聞いてくる人いるね
http://www26.atwiki.jp/easybotter_wiki/pages/14.html#id_095278c1
に書いてあるから知らないではダメだよ

750名無しさん:2011/07/08(金) 03:29:05
この手の質問はこっちでいいのかな…

TL反応ワードに関しての質問なのですが
複数のワード両方があった場合にのみTL反応させることは可能ですか?
例えば「学校」と「行ってきます」とか…。
普通に設定すると「学校行ってきます」では反応しても「学校へ行ってきます」だと反応しないので
その辺を上手く調整したいのですが…。

あと、特定の単語だけでTL反応させる方法はありますか?
例えば「帰宅」とだけ呟いたら反応して、「帰宅中」だと反応しないとか…
ググっても全然分からない(というか何でググればいいのかすら分からない)ので
どなたかアドバイスお願いします。

751名無しさん:2011/07/08(金) 05:14:04
>>750
正規表現

752名無しさん:2011/07/08(金) 19:59:02
>>750
"学校.*(行ってきま|いってきま)"=> array(
"返信内容",
),

"帰宅中"=> array(
"[[END]]",
),
"帰宅"=> array(
"返信内容",
),

で解決。たまに「行ってきまーす」って言う人がいるから「行ってきま」で登録して大丈夫だと思う

753750:2011/07/09(土) 10:33:55
>>752
なるほど、前者は「.*」でいいのですね。
ありがとうございます。
「行ってきま」だと「きました」に反応する可能性があるのでそれは諦めるかな…

後者は、「帰宅」とさえ入ってれば反応してしまうと思うので
「帰宅」とだけ書いたら反応し、他に1文字でも何か入ったら反応しないようにしたいのですが…

754名無しさん:2011/07/09(土) 11:16:26
>>753
正規表現でできるっていわれてるんだから少しは自分で調べたらどうですか
ちなみにその二つとも簡単な正規表現で対応できる
後者のヒントは文頭と文末を指定すること

755750:2011/07/09(土) 17:57:37
>>754
「PHP 正規表現」「EasyBotter 正規表現」でなら以前自分でも調べましたが
全然分かりませんでした。何しろ数が多すぎて…
今それに「文頭と文末を指定」を追加して調べましたが余計分からないです…

756名無しさん:2011/07/09(土) 21:39:44
メタ文字はぐぐりましたか?
わからないわからないばかりじゃなくて理解する努力をしよう
それでも無理なら>>752でいいだろ

757名無しさん:2011/07/10(日) 21:55:44
>>755
こちらへどうぞ
http://www.rider-n.sakura.ne.jp/regexp/regexp.php

758名無しさん:2011/07/12(火) 14:36:22
現在、easybotterの導入を検討しておりまして、質問させていただきます。
phpをいじることによって会話に分岐を持たせるようなことは可能なのでしょうか?
例えば、botからの「俺のこと好き?」「メロンは好き?」っといった問いかけに対して
フォロワーが「好き」と返答した場合に、直前の質問内容によって異なる返答をするよう
設定することはできるのかということが気になっております。

もし可能であれば、検索のキーワードなど教えていただけましたら大変ありがたいです。
よろしくお願いします。

759名無しさん:2011/07/12(火) 19:21:47
>>758
できるけどかなり改造しなきゃならないよ

760名無しさん:2011/07/12(火) 22:32:16
>>759
ご回答ありがとうございます。
とりあえず実現することは可能ということで、導入に踏み切りました。
改造などはまだまだですが少しずつ理想に近づけていきたいと思います。

761名無しさん:2011/07/13(水) 03:17:00
>>760
改造にこのあたりを使う、参考にするといいよ。
ただし、このサイトはほとんどの場合PHPの文法チェックだけで動作チェックしてないから要注意
http://twbot.blogspot.com/2010/10/blog-post_24.html

762名無しさん:2011/07/20(水) 22:06:58
自動フォローの際にリプライを入れる機能を利用しています。
鍵付きに対して、フォローリクエストをしたら1度だけリプライをするように制御できないかと思い、此方のサイトを参考に改造しました。
http://www7a.biglobe.ne.jp/~ws_story/twitter_bot/info/HM_BOT_func.html

未検証とのことなので、ログを取りながら2時間程様子をみていたのですが
リプライパターン照合に対してのエラーが出るだけで、自動フォロー返しも、それと連動するはずのフォロー報告リプライも機能しなくなりました。
ちなみに、リプライパターン照合エラーはこの改造を施す以前からありました。
フォローリクエスト送信済みの相手のIDを記録しているファイルは、更新されており、新しくフォローしたユーザーのIDが記載されていました。


エラーを吐きださないので、原因がよくわかりません。
どの過程で不具合が生じているのか、何が足りないのか調べる方法があれば教えていただけないでしょうか。

※リプライパターン照合エラー行は、リプライを作る過程にある
if(preg_match("@".$pattern."@u",$reply->text, $matches) === 1){
という行です。

※ログ取り改造参照:「簡単じゃない twitter bot」 の作り方メモhttp://twbot.blogspot.com/2010/08/easybotter2.html

763名無しさん:2011/07/20(水) 22:13:47
>>762追記

フォロー報告リプライの記述も非公式Wikiから更に改造しています。

foreach($followList as $rscreen_name){
$f_res = rand(1,3);
if($f_res == 1){
$value = array("status"=>"@{$rscreen_name} フォロー完了したよ!");
}elseif($f_res == 2){
$value = array("status"=>"@{$rscreen_name} フォローさんきゅ!");
}elseif($f_res == 3){
$value = array("status"=>"@{$rscreen_name} フォローありがと。よろしくね");
}
$response = $this->setUpdate($value);
$result = $this->showResult($response);
$results[] = $result;
}

764名無しさん:2011/07/27(水) 22:51:48
通常ツイートに{timeline_name}を利用しているのですが、
特定のID(他bot)を除外するにはどう書き換えればいいのでしょうか…?

765名無しさん:2011/07/29(金) 00:15:42
>>764
{timeline_name}を取得してるとこに判定入れるだけ

766764:2011/07/29(金) 12:14:10
>>765
レス有り難う御座います

if( strpos($text , "{timeline_name}") !== FALSE || preg_match("@bot@i",$text))
{
$randomTweet = $this->getRandomTweet();
$text = str_replace("{timeline_name}" , $randomTweet->user->name , $text);
}

で合っていますでしょうか?エラーは吐かないのですが…

767名無しさん:2011/08/01(月) 18:55:35
easy botterを@pagesで5分間隔で実行するにはどうしたらいいですか。よくある、4ツイート連続の呟きを、5分間隔で投稿するように設定したいのですが。どうすればいいか教えてください。GAE cronで、5分間隔で。

768名無しさん:2011/08/01(月) 21:08:23
>>767
仕様書をよく見よう
これは初心者以前の質問です

769名無しさん:2011/08/01(月) 23:00:39
GAE cronを使ったのですが、レンタルサーバーがcronを受け付けなく、5時間ほど5分間隔で投稿を続けると、php error がでます。投稿できなくなります。

770名無しさん:2011/08/01(月) 23:01:59
>>768
GAE cronを使ったのですが、レンタルサーバーがcronを受け付けなく、5時間ほど5分間隔で投稿を続けると、php error がでます。投稿できなくなります。

771名無しさん:2011/08/02(火) 03:16:59
>>770
鯖とGAE-cronの相性が悪いだけなんじゃないか
@pages使って氏より短い間隔で回してるけど問題なく動いてる
鯖の番号は?あとテンプレくらい使おう+情報が少ない。

772名無しさん:2011/08/02(火) 20:44:32
>>771
鯖 http://0000free.com/ で、 

error;

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd "><html xmlns="http://www.w3.org/1999/xhtml " lang="ja" xml:lang="ja"><head><meta http-equiv="content-language" content="ja" /><meta http-equiv="content-type" content="text/html; charset=UTF-8" /><title>EasyBotter</title></head><body><pre><br />
<b>Fatal error</b>: Maximum execution time of 30 seconds exceeded in <b>/home/john3825/public_html/EasyBotter/EasyBotter.php</b> on line <b>234</b><br />

cron job間隔は、5分で、15分にしてもエラーが出ます。

773名無しさん:2011/08/02(火) 20:50:29
>>772
Fatal error
Maximum execution time of 30 seconds exceeded in /home/john3825/public_html/EasyBotter/EasyBotter.php on line 234

これが真理

774名無しさん:2011/08/02(火) 20:53:09
>>772
老婆心だが鯖垢まんま載せて大丈夫?

775名無しさん:2011/08/03(水) 07:41:36
>>773
鯖のcron jobに15分と書いてありますが。cron time interval 15分でも、3−5時間たてば、投稿を繰り返しているうちにエラーが出ます。GAE cronは、eclipse でプログラムをアップロードして、どこかのウェブサイトにやり方が載ってあったとおりにしたのですが、バグって動きません。

776名無しさん:2011/08/03(水) 13:57:29
>>775
> Maximum execution time of 30 seconds
くらい理解できない?
そこの鯖には無理なんじゃないかね

777名無しさん:2011/08/03(水) 14:58:41
>>776
鯖のcronが凍って動かなくなります。サーバーを@pagesにして、GAE cronにしたら、動きました。
よくtwitterで見かける、4連続の投稿などを、easy botterで行うにはどうしたらいいですか。
以前に、どこかの西東で見かけたのですが、見つかりません。

778名無しさん:2011/08/03(水) 16:15:40
>>777
EB公式をちゃんと見なさい、書いてある

779名無しさん:2011/08/03(水) 16:17:49
TU-Ka、ここ初心者スレじゃないんだから
読むもん読んで勉強なり試行錯誤なりしてくれ

780名無しさん:2011/08/03(水) 21:06:36
>>779
Oauth認証で、エラーが出ます。カスタマートーケンシークレット、アクセストーケンシークレットを一様取得したのですが、エラーで動きません。Oauth認証は、EB公式ページ、dev.twitter.com両方試しましたが動きません。

Twitterへの投稿に失敗しました。
ユーザー名:@healthfood3825

object(SimpleXMLElement)#5 (2) {
["error"]=>
string(34) "Could not authenticate with OAuth."
["request"]=>
string(20) "/statuses/update.xml"
}

781名無しさん:2011/08/05(金) 08:15:15
777続き
Oauth認証で、エラーが出ます。カスタマートーケンシークレット、アクセストーケンシークレットを一様取得したのですが、エラーで動きません。Oauth認証は、EB公式ページ、dev.twitter.com両方試しましたが動きません。

Twitterへの投稿に失敗しました。
ユーザー名:@healthfood3825

object(SimpleXMLElement)#5 (2) {
["error"]=>
string(34) "Could not authenticate with OAuth."
["request"]=>
string(20) "/statuses/update.xml"
}

782名無しさん:2011/08/05(金) 09:51:31
>>781
マルチなので以降相手をしないように

783名無しさん:2011/08/05(金) 10:53:49
>>781
マルチな上に規約違反なので無視でOK

784名無しさん:2011/08/05(金) 17:03:06
>>782,783
マルチな上に規約違反。
国際テロ犯罪供与。チョンボは死ね。抹殺幻覚映像。FBI,CIASECRET SERVICE, US GOVERMENT AGENCY指名手配犯。アメリカ合衆国連邦犯罪。CLASS A CRIMINAL。KGBテロを働かないように。中国国教である儒教を語り、死後の世界や巫女であるシャーマニズムに、首まである袴で挑もうとする賊徒、賊霊は、一切意見させないように。顔までロシア務所のスジ型の入った、ロシア標的の国家全部で殺し滅ぼされたような、蛇霊、滅亡賊霊は、人の国に関与するな。民主党統治済み、鳩山由紀夫(鳩山一雄自民党創始者、兼フリーメイソングランマスターの孫)、派管理人でもないのに一切意見しないように。
phpはロシア系イスラエル人の供与した言語なので一切干渉しないように。
参照: http://wikipedia.com/php

785名無しさん:2011/08/05(金) 17:09:21
規約違反ではないので、応答するように。

786名無しさん:2011/08/05(金) 19:06:36
スレチ

787名無しさん:2011/08/09(火) 21:35:45
アドバイス頂ければと思い書き込み失礼致します。
うちのbotは、フォロワー4桁でよく規制にあいます。
規制前に、お知らせPOSTしたいのですが……
PHPのプログラムでこのような事は、可能でしょうか?
可能であれば、ヒントを頂ければと何とか勉強して実装したいと思います。

788名無しさん:2011/08/09(火) 23:15:53
>>787
この辺り
http://twbot.blogspot.com/2010/03/post1.html
http://twbot.blogspot.com/2010/03/post2.html

ただしEB用じゃないのでどう組み込めばいいのかは要勉強

789名無しさん:2011/08/12(金) 10:34:42
調整あげ

790名無しさん:2011/08/13(土) 19:41:18
変な質問ですけど、このbotは「もなちゃと」というチャットで使えますか?

791名無しさん:2011/08/14(日) 10:05:20
>>787
ターン終了時にuser_timelineで120分以内の指定をかけて、自分の発言を取得して、その数が一定数(110くらい?)を超えていたら「しゃべりすぎたので休憩します」とかPOSTさせて、休憩フラグを立てて、休憩フラグを作ってから一定時間はBOTを休憩させればいい。

792名無しさん:2011/08/15(月) 03:35:12
788さん、791さん 解答ありがとうございました!
イメージ出来ました……
なんとなくですが、形になりました!お礼のみですが、失礼致します。

793名無しさん:2011/08/16(火) 13:09:57
>>790
プログラムの構造がTwitterと違うから無理だと思います

794名無しさん:2011/09/12(月) 02:23:48
調整age

初心者さん
 →EasyBotter初心者質問スレ3
改造してる人・NOT初心者
 →EasyBotter2.0
雑多な質問
 →スレ立てるほどじゃないその他の質問スレ
CRON・定期実行
 →Twitterbotのcronスレ
自作・他botプログラム等
 →TwitterBotPHP質問スレ

795名無しさん。:2011/09/13(火) 01:51:54
ご指南おねがいします。
夜中の定期POSTを停止したく、
こちらを調べさせて頂いてましたら、類似しているのがありましたので
試しにやってみたものの、エラーが出て困っております。
>228 様のやり方で、0時におやすみpostして8時からpost再開させたく思ってます。
現在は

<?php
//=============================
//EasyBotterを呼び出します
//=============================
require_once("EasyBotter.php");
$eb = new EasyBotter();

if(date("i") % 30 === 0){
$response = $eb->postRandom("data.txt");
}

?>

となっており、これにjiho.txtを別に作り(おやすみメッセージをいれ)
<?php
//=============================
//EasyBotterを呼び出します
//=============================
require_once("EasyBotter.php");
$eb = new EasyBotter();

if(date("G") > 8){
//定期post
if(date("i") % 30 === 0){
//時報post
if(date("i") < 10){
$response = $eb->postRandom("jiho.txt");
//通常post
}else{
$response = $eb->postRandom("data.txt");
}
}

?>
と変えてみました。
エラー箇所は20行でした。?>の部分です。
基本的に間違っているのでしょうか・・・。
もしよろしければ 教えて頂けると助かります。
どうぞよろしくお願いします。

796名無しさん。:2011/09/13(火) 13:31:45
>>795です。連続失礼します。
再度色々調べて
<?php
//=============================
//EasyBotterを呼び出します
//=============================
require_once("EasyBotter.php");
$eb = new EasyBotter();

if(date("G") > 8){
//定期post
if(date("i") % 30 === 0){
//通常post
}else{
$response = $eb->postRandom("data.txt");
}
}
//0時報post
if(date("i") % 30 === 0){
if(date("i") < 10 && date("G") == 0){
$response = $eb->postRandom("jiho.txt");
}
}

?>
この様に書き換えました所、エラーは消えましたが、
1分ごとに定期を発信するようになってしまいました・・・。
ご指摘どうぞよろしくおねがいします。

797名無しさん:2011/09/13(火) 14:00:45
>>796
非公式wikiにあれほど丁寧な解説があるのに…

798名無しさん:2011/09/13(火) 16:26:05
>>796
リプライもTL反応も一緒に止めるなら、cronの方で1時〜7時まで止めたら?

799名無しさん。:2011/09/14(水) 20:32:36
>>797
非公式wikiを見たのですが・・・もう一度見てきます。ご指摘ありがとうございます。

>>798
リプライはその時間帯も動かせたいのです。
定期POSTだけ止めたいと思っております。
説明不足で申し訳ありません。

800名無しさん:2011/09/14(水) 21:50:49
>>799
初心者スレ832あたりは?

801名無しさん。:2011/09/14(水) 22:17:11
>>796>>799 です。
非公式wikiをもう一度見直してきました。
再度組みなおして、サーバーに上げた所、
エラーも出なかったので、夜中にきちんと定期が止まるか確認
してみたいとおもいます。
ご指摘ありがとうございました。

またご報告させて頂きます。

>>832 確認してきます。

802名無しさん:2011/10/07(金) 18:48:20
初歩的な質問ですみません。
毎週木曜の18時55〜59分に決まったツイートをさせようと思い

if(date("w") == 4 && date("G") == 18 && date("i") <= 55){
$response = $eb->postRandom("***.txt");
}

と書いたのですが、何故か18時2分頃にそのツイートが行われてしまいました。(曜日は合ってます)
何故でしょうか…?

803名無しさん:2011/10/07(金) 19:20:23
>>802
何故でしょうかって、あなたがそう指示してるからだよ
プログラムは書いた通りに動く、よく見直すこと

804名無しさん:2011/10/07(金) 20:21:04
>>803
よく見直すと言われても…
どこが間違ってるのか全く分からないんです。

この記述方法では条件は2つまでしか適用されないのでしょうか?
だとすれば3つ適用させる方法はあるのでしょうか?
一応自分なりに調べてはみたのですが3つの条件というのは見つからなかったので…

805名無しさん:2011/10/07(金) 20:52:33
>>804
基本的問題は不等号、小学生の算数の問題。これで分からないならEasyBotterはやめたほうが賢いし他の人に迷惑掛けるだけ。

806名無しさん:2011/10/07(金) 21:26:10
>>805
あ、ほんとだ…よく見たら逆になってますね;
前にも同じミスしたことあるのに全く気づかなかった…

この書式は2つまでしか記述できないものだと思い込んでしまいずっとその解決策だけ調べてましたorz
ということは、条件を3つ以上入れても問題ないということですね!
とにかくありがとうございました!

807名無しさん:2011/10/07(金) 23:04:54
>>806
どうでもいいけど、次に書き込むなら初心者スレへどうぞ
ただし書き込む前に初心者スレの1-3を熟読してからね

808名無しさん:2011/10/07(金) 23:07:58
いろいろためしたのですがどうしてもうまくいきません。
tera pad使用、文字列UTF-8N,改行コードLF、パーミッションも確認済み(666)で
$response = $eb->autoFollow();
$response = $eb->postRandom("data.txt");
//$response = $eb->postRotation("data.txt");
$response = $eb->reply(5,"data.txt","reply_pattern.php");
$response = $eb->replyTimeline(5,"reply_pattern.php");
if(date("i") % 15 == 0){
$response = $eb->postRandom("data.txt");
}
このように書いています。
説明ではこれで0分、15分・・・でPOSTするはずですが、
なぜか5分毎にPOSTしてしまいます。
原因は何なのでしょうか?、自分にはどうしてもわかりません

809名無しさん:2011/10/07(金) 23:19:49
>>808
上から順にどの機能をオン(コメントアウトしていない)にしてるか確認してみなよ

810名無しさん:2011/10/07(金) 23:21:17
 
■■■ 書き込む前に ■■■

最近、このスレに初心者さんが書き込みを多くしているようですが
初心者スレは既にありますので、そちらをご覧ください
質問する前に初心者スレの1-3をよく読んでください
大体は勘違い、設定ミス、記述ミスです

811名無しさん:2011/10/07(金) 23:24:54
>>807
どっちに書こうか悩んだんですが、PHP関係ならこっちのほうが適切かなと…
次からは初心者スレに書き込みます。申し訳ないです

812名無しさん:2011/10/08(土) 00:33:10
>>811
初心者の自覚があるのか、スレチかどうかはともかくとしても
質問前に徹底的に見直せ、って意味で初心者スレをまず見て欲しい

正直、非公式wikiをしっかり見ていけばする筈のないミスがこのスレに限らず多いのは事実だ

813名無しさん:2011/10/15(土) 13:37:40
あげ

814名無しさん:2011/11/27(日) 18:01:01
調整あげ

815名無しさん:2012/02/11(土) 04:53:54
しゅうまいくんとかTLを要約というサービスみたいに
TLから単語を収集して繋げて発言するのって出来ますでしょうか?
http://blog.livedoor.jp/bot_1go/archives/1733069.html
こちらのサイトに似たようなサービスはありますが。
TLを要約みたいに脈絡もクソもないような文章を作りたいのです。

816名無しさん:2012/02/11(土) 16:04:45
>>815
確かその手の質問は過去スレにもあった筈

817名無しさん:2012/02/14(火) 05:39:18
>>815
マルコフ連鎖 for EasyBotter
https://github.com/wktk/markov4eb?/

818名無しさん:2012/02/22(水) 11:31:37
はじめましてお時間頂きます!
phpは今回のbot制作が初めてなのですが
動作自体は上手く行っていてその先の改造に手を出しているので
こちらが妥当かと思い転がり込みました。

少々お伺いしたいのですが、
確かEasyBotterだとリプライ返信の優先順位は降順だったと思うのですけれども
『優先順位降順を変更することに成功した』『該当ワードの優先順位をランダムに出来た』と言うお話を何方か聞いていますでしょうか?

というのも例えば『おはよう、今日もいい天気だね。』の文の【おはよう】と【いい天気】を反応語句としてbotに覚えさせた場合
reply_pattern.php内で【おはよう】よりも【いい天気】が上に書いていない場合
ほぼ一生【いい天気】には反応した文章を選択出来ないよな〜と。
(勿論【おはよう】をbotに向けてポストし続ければいい天気にも反応はするんですけども
こう一発で…という話です。)

ここをたまに【おはよう】たまに【いい天気】と言った多様性を持たせて反応するように改造したいのですが、

http://www.scollabo.com/banban/php/php_09.htmlなどを読ませて頂いて
bot.phpにif構文を打ったり、
reply_patten.phpと同じ構成のphpファイルを増やしたり、
ダメ元で
$response = $eb->reply(5,"not.txt","reply_pattern.php");

$response = $eb->replyRandom(5,"not.txt","reply_pattern.php");
にしたりと色々やってはみているのですがどうも手応えが無く…;

何かいいアイディアがありましたら教えてくだされば幸いです!
長文既出でしたら申し訳ないですがどうぞ助力の程お願い致します。

819名無しさん:2012/02/22(水) 11:54:37
優先順位が降順なのはプログラムの原則だからそこを逆手にしようってのは難しくないかな
正規表現で上に 【おはよう.*いい天気】 (リプライAとB)を書いて下に 【おはよう】 (リプライA) さらに下に【いい天気】(リプライB)
「おはよう」にはA、「いい天気」にはB、「おはよう今日はいい天気だね」にはAかBで答える
同じリプライを複数描くところに無駄があるけど簡単だし正規表現は色々出来る
言ってる意味勘違いしてたらごめんよ

820名無しさん:2012/02/22(水) 12:23:15
(掲示板初めてなのでレス方法間違ってたらすいません;)
>>819 さま
おお〜、なるほどこれなら実際に送られてきたリプや
日常的にかわす挨拶を当て嵌めて行けば無数に反応出来そうです^^

後はやはりreply_pattern.php内での順番で調整…という感じになりましょうかね…。

正規表現でAとBを同居させるのはいやはや考えつきませんでした。
有り難く参考にさせて頂きます〜。

821名無しさん:2012/03/03(土) 16:40:55
毎日10時半、16時半、22時半に特定のPOSTをさせたいのですが
(正確にはcronの関係上30〜34分になってます)
wikiを見て色々試したんですが上手くいきません…。
||と&&を混ぜてるせいだと思うのですがどうすればいいのでしょうか?
仕方がないので現在は

else if(date("G") == 10 && date("i") >= 30 && date("i") <= 34){
$response = $eb->postRandom("***.txt");
}
else if(date("G") == 16 && date("i") >= 30 && date("i") <= 34){
$response = $eb->postRandom("***.txt");
}
else if(date("G") == 22 && date("i") >= 30 && date("i") <= 34){
$response = $eb->postRandom("***.txt");
}

と半ば強引に設定していますが、長くなってしまうのでできれば1つにまとめたいんです。
よろしくお願いします。


新着レスの表示


名前: E-mail(省略可)

※書き込む際の注意事項はこちら

※画像アップローダーはこちら

(画像を表示できるのは「画像リンクのサムネイル表示」がオンの掲示板に限ります)

掲示板管理者へ連絡 無料レンタル掲示板