private function reply() { $generator = new ReplyState($this->name); $generator->load(); $box = $this->cache->get($this->cacheKeyLastStatus()); $timelines = $this->twitter->getHomeTimeline($box); $storage = new TwitterStorage(); $storage->retrieveStatus($timelines); foreach ($storage->listStatus as $status) { if ($this->isMyTweet($status)) { continue; } if ($this->isSpecialTweet($status) && $this->invoker(5) || $this->isReplyTweetForMe($status)) { $best = $generator->generate($status->text); if ($best['to']) { $best['text'] = "@" . $status->user->screen_name . " " . $best['to']; $best['reply_to'] = $status->id; $this->postTalk($best); break; } } } $this->cache->set($this->cacheKeyLastStatus(), $storage->updateUserCache($box)); }
$id = $info['id']; if (in_array($id, $keys)) { $this->replyState->learn($this->pickupText($info['text']), $this->threads[$id]['to']); } } $loader->close(); } } private function writeReplies() { $this->replyState->save(); } private function pickupText($text) { $text = mb_ereg_replace("[\\@\\#][A-Za-z0-9_]+", "", $text); $text = mb_ereg_replace("(http|https)://[/A-Za-z0-9\\.\\-\\_\\?\\=]+", "", $text); $text = mb_ereg_replace("(>|<| )", "", $text); $text = mb_ereg_replace("[ ]+", "", $text); return $text; } } if (false) { $instance = new ScanReply('hajimehoshi'); $instance->run(); } if (true) { $state = new ReplyState('hajimehoshi'); $state->load(); $best = $state->generate('寝ます'); var_dump($best); }