options = array_merge($this->options, (array) $options); $this->base32 = $base32; } /** * @param Environment $environment * @return \Amp\Promise|\Generator|mixed */ public function run(Environment $environment) { $bob = new BOB($this->options); $bob->getnick(); $ts = 0; for ($i = 0, $tries = $this->options['check_tries'], $sleep = $this->options['retry_delay']; $i < $tries; ++$i) { $result = $bob->lookuplocal($this->base32 . ".b32.i2p"); if(!$result) { $result = $bob->lookup($this->base32 . ".b32.i2p"); } if ($result) { $ts = time(); break; } // sleep before next try if we must do more that 1 tries to lookup destination if($tries > 1 && $i < $tries) // do not sleep if that is last try sleep($sleep); } $bob = null; echo date("H:i:s") . " Processed " . $this->base32 . ": " . ($ts ? "online" : "offline") . PHP_EOL; return $ts; } }