トップページ⇒php
1001コメント336KB

【Twitter】 BOT製作支援スレ

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん2009/09/27(日) 14:15:59ID:Dz08qoo4
見当たらなかったので立ててみた

[公式] http://twitter.com/
[Twitter 開発ブログ 日本語版] http://twitterjp.blogspot.com/

*どの言語でもOKですがソースを書く際は何の言語なのかも記載してください。
*初心者のために、なるべくぶつ切りのソースではなく全体的に載せてほしいです。
0598nobodyさん2009/12/15(火) 18:37:19ID:???
芸能人の非公式botってどうなんだろう
0599nobodyさん2009/12/15(火) 19:31:57ID:???
>>598
それいったら、キャラクターの非公式botだって…
0600nobodyさん2009/12/15(火) 19:35:48ID:???
>>599
全然違うだろ…
0601nobodyさん2009/12/15(火) 20:07:07ID:???
>>597
被ってたらポストしないじゃなくて
>>529が>>539で言ってたみたいにもう一度array_randしないと
結局ポストせず終わるから駄目じゃないか?

それするとタイムアウトするみたいだけど
0602nobodyさん2009/12/15(火) 20:15:04ID:???
・ポストリストとログ読み込み
・ポストリストからランダムにポストする文を選ぶ
・ログと被ってないか判断
・被ってたら選び直し
・最新ポスト追加した最新10ポストのログ再作成
・ポスト

>>529はこれだけ入れたソース作ったみたいだけど
確かに判定入れるならこれだけやらないと意味ないんだよね…

別プログラムでリプライとか入れてるならそっちも含めたログにすると理想的
0603nobodyさん2009/12/15(火) 20:33:24ID:???
選び直しを入れてるからタイムアウトになるんだろ
0604nobodyさん2009/12/15(火) 20:43:17ID:???
選び直し入れないと判定そのものの存在意義がなくなる
ちゃんとポストするために入れてるんじゃないの?
結局ポスト出来ないなら判定もログ保存もツイッターがしてくれるからいらないよ
0605nobodyさん2009/12/15(火) 23:59:15ID:???
cron-jobが動いてくれないよ〜;0;
botがまったく無反応になってしまった・・・
0606DAWNTO_Windy-melt ◆Windy/f9HNwg 2009/12/16(水) 00:14:04ID:CexvtTFs
maximaと連携させるプラグイン作りましたが誰も使わないですよね…¬
http://knowledge.ddo.jp/info/index.php?option=com_content&view=article&id=51:maximaplugin&catid=35:2009-12-12-10-21-55
0607nobodyさん2009/12/16(水) 00:59:49ID:???
>>601
//ポストリストとログ読み込み
$filename = "plist.txt";
$plist = file($filename);
$filename2 = "log.txt";
$log = file($filename2);

//キー生成
$key=array_rand($plist);

//キーに該当するポストとログが同じか調べる
foreach($log as $logs){
if($logs === $plist[$key]){//ログと重複した場合
$key=array_rand($plist);//もう一度探す
continue;//foreachに戻る
}
}

$post=$plist[$key];//ポストする文にする


こうか
0608nobodyさん2009/12/16(水) 01:08:08ID:???
foreach($log as $logs){
これは・・・ゴクリ
0609nobodyさん2009/12/16(水) 01:11:00ID:???
ちなみにそれ重複が判明した以降の$logsしか判定しないぞ
0610nobodyさん2009/12/16(水) 01:34:58ID:???
>>609
ばれなきゃいいと思ってたけど指摘されたか。

//ポストリストとログ読み込み
$filename = "plist.txt";
$plist = file($filename);
$filename2 = "log.txt";
$log = file($filename2);

//キー生成
$key=array_rand($plist);
$i=0

//キーに該当するポストとログが同じか調べる
while($i<10){
if($log[$i] === $plist[$key]){//ログと重複した場合
$key=array_rand($plist);//もう一度探す
$i = 0;//$logのキーを元に戻す
continue;//whileに戻る
}
$i++;//$logのキーを1つ進める
}

$post=$plist[$key];//ポストする文にする

何度もすまん。けっきょくwhileに戻ったな。
@pagesみたいな鯖じゃなくてもっといい鯖使えばいいのにとか思ったり。
0611nobodyさん2009/12/16(水) 01:54:02ID:???
俺だったら
$filename = "plist.txt";
$plist = file($filename);
$filename2 = "log.txt";
$log = file($filename2);

$key = array_rand($plist);
$log_slice = array_slice($log, 0, 10);

while (in_array($plist[$key], $log_slice)) {
$key = array_rand($plist);
}

$post = $plist[$key];

//do〜whileでもいいけど
0612nobodyさん2009/12/16(水) 10:29:53ID:???
foreach($log as $logs){
↑これって配列をつくって並べてる、であってる?
まずいの?
phaさんのこれじゃね?
0613nobodyさん2009/12/16(水) 10:44:25ID:???
こうじゃね?
あと改行削るべきだし、できたらファイル読み込みとかにエラーチェック入れたいが。

$filename = "plist.txt";
$filename2 = "log.txt";

$plist = @file($filename, FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);
$log = @file($filename2, FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);

$plist_uniq = array_diff($plist, array_slice($log, 0, 10)); //重複しない候補

$post = $plist_uniq[array_rand($plist_uniq)];


0614nobodyさん2009/12/16(水) 10:45:55ID:???
あ、テスト用に追加してた@はなくてもいいやむしろ取ったほうがいい。
エラー出さなくするものだから。
0615nobodyさん2009/12/16(水) 11:02:27ID:???
ログが常に最新10件である事前提だな…
xmlで取って来れないものか
そうしたら最新10件のログを作成する部分だけはいらなくなる
0616nobodyさん2009/12/16(水) 11:06:29ID:???
え?どういうこと?
0617nobodyさん2009/12/16(水) 11:13:08ID:???
あー他の部分見てなかったけどこれAPIからのログは読んでないわけか。
まあいんじゃね。
ていうかxmlでもjsonでもAPI叩けば拾ってこれるし。
0618nobodyさん2009/12/16(水) 11:35:25ID:GKFzjgHo
タロット占いできるキャラbotを作りたいんですが、
botというかPHP初心者で取っ掛かりが分かりません。
スクリプトがあまり重くなると困るので、
タロットの結果を書いたxmlを作って「占って」とリプライされたら
そのつどタロットのxmlを読み込んで結果をランダムに出力するとか可能ですか?
それともみなさん、
$tarot=array("",""......);
とかでやってるんでしょうか・・・?
0619nobodyさん2009/12/16(水) 12:20:23ID:???
>>613
ログ生成を追記モードでやってる場合は下の方が最新ログになるから
ログ読み取りの部分と被ってない部分の抽出はこうじゃ駄目かな

//ログ読み取りの部分
$filename2 = "log.txt";
$fp2 = fopen($filename2,'r+');
flock($fp2, LOCK_EX);
for($i = 0;!feof($fp2);$i++){
  $log[$i] = fgets($fp2);
}
fclose($fp2);

//被ってない部分の抽出
$plist_uniq = array_diff($plist, array_slice($log, $i-10, $i));

上から10個が最新ってログ作成の時にやりにくいしタイムアウトの一因になると思う。
ただfgetsの時はどうやって空行と改行文字飛ばせばいいか分からないし
array_slice使ったこと無いから位置指定に変数が使えるかどうか試してない。

配列の最後のキーを簡単に取得できる方法があったらごめん
0620nobodyさん2009/12/16(水) 14:11:14ID:???
>>619
そこで行数カウントしなくても
$plist_uniq = array_diff($plist, reverse(array_slice($log,0,10)) );
reverseで逆転すればいいだけだし
要素数カウントするなら別に $i = count($log) ;みたいなこともできる。
0621nobodyさん2009/12/16(水) 14:14:05ID:???
あー、こっちのが楽か。
$plist_uniq = array_diff($plist, array_slice($log,-10) );
0622nobodyさん2009/12/16(水) 23:19:30ID:j0jV78ZZ
http://www.kc-c.biz./consulting/contents-business/twitter.html
ここにヒントが...
0623nobodyさん2009/12/17(木) 01:12:23ID:???
ただの宣伝じゃねーか。
0624nobodyさん2009/12/17(木) 21:45:44ID:???
自動フォロー返しのときにDM送ろうとしてるんだが
そのDMのメッセージ内容に相手のname(screen_nameじゃない方)を使いたいときどうすればいい?
0625nobodyさん2009/12/17(木) 22:32:36ID:???
TL取得すると一緒についてくると思うけど
0626nobodyさん2009/12/18(金) 00:57:26ID:???
そのものnameって値で入ってるっしょ。
0627nobodyさん2009/12/18(金) 19:37:19ID:???
フォローにTLは取得しない
フォローイングとフォロワーのAPIでname取得できなくね?
0628nobodyさん2009/12/18(金) 19:42:38ID:???
取得すればいいのでわ?
0629nobodyさん2009/12/18(金) 20:11:26ID:???
TL上で俄かにOAuthで認証するのが流行り出した。
クライアント名を変えられるのが人気らしいですね。
使ってますか?
私はまだベーシック認証ですが。
0630nobodyさん2009/12/18(金) 21:22:41ID:???
すみませんだれか知恵をお貸しください。
phaさんのプログラミングを利用させてもらっています。
本日botのパスワードを変更したらその後まったくbotがうごかなくなってしまいました。
普通投稿とリプライ投稿ともまったく別のエラーになります。

普通投稿の方は パスワードかユーザー名が違うとのことですが、
普通にこのIDとパスでtwitterにログインできるので間違っているはずがありません。
どこか別の記述が間違っているのかと別IDでpostしてみましたが通常通り動きました。
何故か一体のbotだけうまくいかない状況です。

もう一点、同botなのですがリプライの方は
Fatal error: Wrong parameters for Exception([string $exception [, long $code ]]) in /usr/local/www/htdocs/○○/public_html/Services/Twitter/Jsphon/Error.php on line 185
と出、185行目にエラーがあるそうですが、185行目は
$message = convert_text($message);
で何が問題あるのかさっぱりわかりません。
他の正常に動いているbotのソースを丸々コピーしてみましたが同じエラーになります。

自分ではこれ以上の原因究明ができませんでした。
twitterのアカウントに問題がある気がするのですが、
twitterのhome画面ではちゃんと書き込みができるのようでもう何が何やらさっぱりです。
申し訳ございませんが誰かご教授いただけると嬉しいです。
06316302009/12/18(金) 21:30:49ID:???
すみません630です。
何故か今、回復してしまいました
サーバーの調子が悪かったのでしょうか・・・
スレ汚してしまい本当にすみません
0632nobodyさん2009/12/18(金) 22:56:43ID:???
>>631
そういう時はできるだけ詳細を書いておけば後続者の役に立つと思うからまだ見ていたら覚えといてくれ。
0633nobodyさん2009/12/18(金) 23:08:00ID:???
自分もphaさんのを利用させてもらってるんだけど、
返すリプライによって画像を変えたい場合ってどうしたらいいんですかね?
他の方のプログラムだとみつけたんだけどphaさんのって発言はテキストファイルで他の人とちょっと勝手が違うからよくわからないです…
0634nobodyさん2009/12/19(土) 00:14:49ID:???
phpを勉強して折衷したプログラムを作ればいい
0635nobodyさん2009/12/19(土) 00:32:47ID:???
フォローしてない人の発言を特定のキーワードで検索、取得するにはどうすれば良いのでしょうか…
0636nobodyさん2009/12/19(土) 01:02:08ID:???
http://search.twitter.com/
http://pcod.no-ip.org/yats/
http://buzztter.com/

このあたりがRSS吐いてるから適当に解析するよろし。
0637nobodyさん2009/12/19(土) 02:33:57ID:???
>>636
Thanx a lot!
0638nobodyさん2009/12/19(土) 07:18:16ID:???
>>629
ベーシック認証が廃止になるから
http://twitter.com/tweeterjp/status/6522684422
0639nobodyさん2009/12/19(土) 11:42:19ID:???
>>638
ついーたーが言ってるだけじゃなあ。
URLもRT用の無駄URLだしソース元ないん?
0640nobodyさん2009/12/19(土) 14:52:54ID:???
http://jp.techcrunch.com/archives/20091209twitter-le-web-2009/
http://apiwiki.twitter.com/OAuth-FAQ
0641nobodyさん2009/12/19(土) 17:58:05ID:???
corn-job.orgの動作が不安定なため、GAEでcronを動かしたいと思っています
自分なりに色いろやってみたのですが、どうしてもうまくいかないので相談させてください。
ttp://d89.s41.xrea.com/twitter/howtomake_bot.html
こちらをを参考に、cron.yaml/app/yaml/task.pyを作成し
GAE launcherで読み込んだのですが、Runさせようとすると数秒でエラーのアイコンが出て先に進めません
ログはこんな感じになっています。URLがダメなんでしょうか…

Running command: "['C:\\Python25\\python.exe', 'C:\\Program Files\\google\\google_appengine\\dev_appserver.py', '--admin_console_server=', '--port=8089', 'C:\\bot']"
ERROR 2009-12-19 08:32:38,951 dev_appserver_main.py:363] Fatal error when loading application configuration:
Invalid object:
Unknown url handler type.
<URLMap
static_dir=None
secure=default
script=None
url=/.*
static_files=None
upload=None
mime_type=None
login=optional
require_matching_file=None
auth_fail_action=redirect
expiration=None
>
in "C:\bot\app.yaml", line 8, column 1
2009-12-19 17:32:39 (Process exited with code 1)
0642nobodyさん2009/12/19(土) 18:26:07ID:???
>>641
まず、ml115を買ってくる

0643nobodyさん2009/12/19(土) 18:42:27ID:???
>>642
自分で鯖を立てることができるならこんなことで悩んだりしません
意地悪ですね
0644nobodyさん2009/12/19(土) 19:51:19ID:???
できるようになればいいじゃん
0645nobodyさん2009/12/19(土) 19:52:17ID:???
鯖立てしなくても24時間PCつけっぱなしにしてブラウザ自動リロードにしておけばいいだけ
0646nobodyさん2009/12/19(土) 19:56:18ID:???
リロードなんかしなくてもJavaScriptじゃだめなのか
0647nobodyさん2009/12/19(土) 19:57:39ID:???
>>643
まぁ、やってみなよ、おもしろいから。
DDNSとかで
セキュリティ??知らんがな(´・ω・`)

メールとかいろいろ遊べるし
0648nobodyさん2009/12/20(日) 16:24:25ID:???
>>641
同じようなとこで躓いた経験があります。yamlファイルの記述に問題があったようです。
そこのサイトで紹介しているyamlファイルのテキストをブラウザからコピペしたもの
ではなく、そのサイトからリンクされているページで紹介されている
ソースコードをコピペしてやってみると幸せになれるかもしれません。
違っていましたらあしからず。
0649nobodyさん2009/12/20(日) 20:43:29ID:???
>>648
おおおおお仰る通りにしてみたら成功しました!幸せになれました
本当にありがとうございました
0650nobodyさん2009/12/20(日) 23:25:31ID:???
ベーシック認証が廃止になったら、phaさんのスクリプトとかも動かなくなんの
0651nobodyさん2009/12/21(月) 00:24:06ID:???
>>650
OAuthに対応しなきゃ動かなくなるわな
0652nobodyさん2009/12/21(月) 00:32:05ID:???
OAuthはまだいいよ。
できなくなったら対策考えればいい。

ググればいくらでも出てくるからな。
ググらないのは甘え
0653nobodyさん2009/12/21(月) 00:51:02ID:???
OAuth導入できたんだけどAPIが上手く使いこなせない
慣れるの大変だなまた

これで他人のソース丸コピペBot量産厨が減るといいけどwww
0654nobodyさん2009/12/21(月) 00:53:31ID:???
PHPでOAuth使おうと思ったがサンプルはcurlしか使えないんだな。
もっとましな方法はないのか…
0655nobodyさん2009/12/21(月) 00:58:00ID:???
ラッパーの自作ライブラリはさんでるから対応さえしときゃなんとでもなりそうだ。
0656nobodyさん2009/12/21(月) 10:45:51ID:???
ていうか今までもcurl使ってたと思ったがましな方法って例えば何だ。
0657nobodyさん2009/12/21(月) 12:58:32ID:???
phaさんので使われてる日本語版Services_Twitterはcurl使ってない
http://d.hatena.ne.jp/sotarok/20080807/1218114681
0658nobodyさん2009/12/21(月) 14:12:31ID:???
そこのURLでも言ってるがcurlそんなダメか?
0659nobodyさん2009/12/21(月) 21:17:30ID:???
curlは認知度が低い
わざわざ使わなくてもHttp_Requestがある
curlの仕様自体が変態
0660nobodyさん2009/12/21(月) 22:25:00ID:???
curlを使ってたとこはHttp_Requestが何故か使えないから仕方なく使ってたみたいだが
0661nobodyさん2009/12/22(火) 04:53:06ID:???
>>659
fsockopenなんて遅いしそれだったらcurlでいいやと思ってる
0662nobodyさん2009/12/23(水) 02:57:59ID:???
流れを読まずにcronの代わりを考えてみたんだけど、htmlの自動更新のタグ使って代わりにできないかな?
htmlのページにフレームかなんかでphp埋め込んで、そのページを延々更新し続けるとcron使わなくても動くんじゃない?
自分はめんどくさくてそんなことせずにcronくんでるんだけど誰かcronわからなくてhtmlの知識持ってる人は試してみてほしい
24時間ずっとブラウザ立ち上げてなきゃいけないけど

うーん、やっぱり駄目かな。アホなこと考えてごめん
0663nobodyさん2009/12/23(水) 03:35:15ID:???
別にいいんじゃない?
自分が起きる時間にBOTは起きて自分が寝る時間にBOTは寝る感じで
0664nobodyさん2009/12/23(水) 11:48:56ID:???
>>662
考えたことあった
ただ>>663が言うように常にPCを上げておかなきゃいけないからね
それが問題にならないbotなら出来ると思うよ
0665nobodyさん2009/12/23(水) 11:58:43ID:???
windowsならタスクでなんでだめなの?
0666nobodyさん2009/12/23(水) 11:59:24ID:???
てかMETAタグで自動更新するくらいならJavaScript使えばいいのでは?
0667nobodyさん2009/12/23(水) 12:32:05ID:???
>>666
前提が「cronは分からないけどhtmlならできる」だから
htmlのが敷居低いんでないの?
0668nobodyさん2009/12/23(水) 14:35:27ID:???
タグ一行で済むのをわざわざJavaScriptで書く必要はないわな。
0669nobodyさん2009/12/23(水) 16:50:10ID:???
htmlやJavaScriptでわざわざ書かなくてもOperaに自動更新ツールついてるし
0670nobodyさん2009/12/23(水) 21:40:03ID:???
ブラウザに依存してる方がめんどくさいだろ。
0671nobodyさん2009/12/24(木) 14:59:33ID:???
http://twittbot.net/

このボットジェネレーターが結構使えると思うんだがどう?
0672nobodyさん2009/12/24(木) 16:16:13ID:???
その手のは突然サービス終了したらと思うと怖くて使えない
0673nobodyさん2009/12/24(木) 16:32:20ID:???
別に終了してもいいじゃん。
どうせtwitterなんて流行り物だし、使い続けるようなものでもないでしょ
0674nobodyさん2009/12/24(木) 23:28:41ID:???
すいません、流れを読まずに質問。
reply_pattern.phpの中身の反応させる言葉なんですけど、
複数の単語がある場合に反応する方法はありますか?
たとえば、「ごちそうさま。おいしかった」と@貰ったら
「お粗末さま。おいしくて何より」といった返答をするように、
「ごちそうさま」と「おいしい」の2つの単語がある場合に、
用意した言葉を返答するという感じ。

「ごちそうさま」だけに反応させるものもあるので、二つの言葉がある
場合に、反応する正規表現を教えて下さい。
0675nobodyさん2009/12/24(木) 23:29:34ID:???
>>674
http://www.mnet.ne.jp/~nakama/
0676nobodyさん2009/12/24(木) 23:43:40ID:???
>>675
 明日(ぼく|わたし)は帰宅します
これか!これだな!ありがとう!!助かった。感謝します。
06776742009/12/24(木) 23:59:04ID:???
あれ、どうやら違うようでした…。自分の頭はサル以下なのか
0678nobodyさん2009/12/25(金) 01:06:33ID:???
ごちそうさま.*おいしかった

だけでいんじゃね
0679nobodyさん2009/12/25(金) 01:08:50ID:???
おいしかった。ごちそうさま。
だったら?
06806742009/12/25(金) 02:20:44ID:???
>>678
それだと「ごちそうさま」だけの@に反応しなくなる
また、 おいしかった.*ごちそうさま
だと、「おいしかった」に反応してしまうんだ…

>>679
「おいしかったーーー!うまい!ごちそうさま!」とか
「ごちそうさま!パスタおいしかった」にも反応させたいんだ

「おいしかった。ごちそうさま。」ってきっちり@もらって
反応させるしか方法はないのかな…
0681nobodyさん2009/12/25(金) 02:24:57ID:???
2つif使えば?
0682nobodyさん2009/12/25(金) 02:38:50ID:???
「おいしい」じゃ「おいしかった」は引っかからないのでは?
06836742009/12/25(金) 02:53:24ID:???
>>681
if?初心者なものですまんがわかるように解説してくれ…
ちなみに「プログラミングができなくても作れるTwitter botの作り方」を
参考にしてphpいじってる。 ttp://pha22.net/text/twitterbot.html
タグはこんなかんじで

"リア充(は)?爆発しろ"=> array(
"「爆発しない」",
"「爆発する」",
),

>>682
ああ!微妙に単語を変えればいいのか…? なるほど
2つの単語同時指定っていうのが無ければ、そうする。ありがとう
0684nobodyさん2009/12/25(金) 03:13:29ID:???
プログラム分からないでやる意味が分からん。分かるようになれよ
0685nobodyさん2009/12/25(金) 03:20:06ID:???
ていうか正規表現のURL貼ってくれてんだからそれ読もうよ。
すごい基本的なこと聞いてるからそれもわかんないんじゃ今後似たような質問だらけになるぞ。
0686nobodyさん2009/12/25(金) 08:40:21ID:???
phaさんのスクリプト使わせてもらってるが
反応する単語増やしたらタイムアウトしやすくなってきた
.*を多用しすぎたのが良くなかったのか?

ファイルサイズを小さくできる(タイムアウトしにくい)表記とか
あったら教えて欲しい
0687nobodyさん2009/12/25(金) 10:26:04ID:???
>>674
「ごちそうさま」だけでいいならそれだけ書いておけば「おいしかった」があってもなくても引っかかる
「おいしかった」の有無で反応を変えたいなら分けて書けばいい
PHP云々以前の問題だと思うよ
0688nobodyさん2009/12/25(金) 14:08:55ID:???
質問の時のテンプレあるといいのかね?
0689nobodyさん2009/12/25(金) 20:40:14ID:yLGH+OzA
phpでbot作ってて、APIのmentions.xmlを取得してるんだけど
curlで取得してsimplexml_load_stringで読むことはわかるけど
このままforeachでループすると同じものを何回も繰り返して
二重にも三重にも実行されることになってしまうがどうしたらそれを回避できる?
0690nobodyさん2009/12/25(金) 21:03:01ID:???
意味が分からん。ループすべき処理にはforeachをかけて、すべきでない処理にはかけなければいいのでは?
06916892009/12/25(金) 21:18:19ID:yLGH+OzA
>>690
いや、そこんとこの処理をどうするか考えてる
ループを実行するたびにファイルにでもidを記録して
ループを回す度にチェックして重複してたら実行しないようにすればいいんだろうけど
それだとすごく時間かかる
0692nobodyさん2009/12/25(金) 21:24:49ID:???
ランダム発言でもしてて発言が重複しないようにしたいわけ?
それなら上のほうで同じような話が出てるよ
06936892009/12/25(金) 21:55:28ID:yLGH+OzA
>>692
そうじゃない、xmlから拾うときに前拾ったのを拾わないようにするにはどうしたらいい?
0694nobodyさん2009/12/25(金) 22:01:38ID:???
>>693
なんらかの方法でマークしておけよ。
xml取得時に日時で絞っておくとか、IDを記録しておくとか、、、
06956892009/12/25(金) 22:07:51ID:yLGH+OzA
>>694
日時で絞るなんて機能あった?
IDを記録しておく方法だと
ファイルに記録すると読み込み時間かかるし、ファイルの中身を消すタイミングもめんどくさいし
データベースでも同じ
06966892009/12/25(金) 22:16:08ID:yLGH+OzA
ああ、取得した最新のidをファイルに記録しといて今度取得するときsince_idパラメータを指定すればいいのか
0697nobodyさん2009/12/25(金) 22:42:30ID:???
>>696
日時でもなんでもやり方はあるぞ
言っちゃ悪いがそれくらい分かれ

あとsageろ
■ このスレッドは過去ログ倉庫に格納されています