if ($c['level'] < 20) { continue; } $toon = $c['name']; DebugMessage("Fetching {$region} {$slug} {$toon} of <{$guild}>"); $url = GetBattleNetURL($region, "wow/character/{$slug}/{$toon}?fields=appearance"); $cjson = json_decode(\Newsstand\HTTP::Get($url), true); if (!isset($cjson['appearance'])) { continue; } $imgUrl = "http://render-{$region}.worldofwarcraft.com/character/" . preg_replace('/-avatar\\.jpg$/', '-inset.jpg', $cjson['thumbnail']); DebugMessage("Fetching {$imgUrl}"); $img = \Newsstand\HTTP::Get($imgUrl); if ($img) { $hits++; $id = MakeID(); $helm = $cjson['appearance']['showHelm'] ? 1 : 0; DebugMessage("Saving {$id} as {$c['race']} {$c['gender']} {$helm}"); file_put_contents(CAPTCHA_DIR . '/' . $id . '.jpg', $img); $sql = 'INSERT INTO tblCaptcha (id, race, gender, helm) VALUES (?, ?, ?, ?)'; $stmt = $db->prepare($sql); $stmt->bind_param('iiii', $id, $c['race'], $c['gender'], $helm); $stmt->execute(); $stmt->close(); } } } DebugMessage('Done!'); function MakeID() { static $lastTime = 0, $lastIncrement = 0;
function AddRes($CryptKey, $BoardPath, $BoardID, $ThreadID, $FROM, $mail, $MESSAGE) { $Subject = file_get_contents($BoardPath . "/" . $BoardID . "/subject.txt", true); $Num = GetResNumber($BoardPath, $BoardID, $ThreadID) + 1; SetResNumber($BoardPath, $BoardID, $ThreadID, $Num); $DatFile = $BoardPath . "/" . $BoardID . "/dat/" . $ThreadID . ".dat"; if (strpos($FROM, "#") !== FALSE) { $FROMTripKey = substr($FROM, strpos($FROM, "#"), strlen($FROM)); $Trip = MakeTrip($FROMTripKey); $FROMTrip = str_replace($FROMTripKey, $Trip, $FROM); } else { $FROMTrip = $FROM; } $htmlFROM = htmlescape($FROMTrip); $htmlmail = htmlescape($mail); $ID = MakeID($_SERVER["REMOTE_ADDR"], $CryptKey); $Date = date("Y/m/d(w) H:i:s.00", time()); $DateJP = preg_replace("/\\((.+?)\\)/", "(" . JapaneseDay(date("w")) . ")", $Date); $BRMESSAGE = \str_replace(array("\r\n", "\r", "\n"), "<br>", htmlescape($MESSAGE)); $WriteData = "{$htmlFROM}<>{$htmlmail}<>{$DateJP} ID:{$ID}<>{$BRMESSAGE}<>\n"; $sfp = fopen($DatFile, "a"); fwrite($sfp, $WriteData); fclose($sfp); }