general cleanup
All checks were successful
Build and publish the docker image / build (push) Successful in 18s
All checks were successful
Build and publish the docker image / build (push) Successful in 18s
Signed-off-by: ngn <ngn@ngn.tf>
This commit is contained in:
54
src/oracles/numerics.php
Normal file
54
src/oracles/numerics.php
Normal file
@ -0,0 +1,54 @@
|
||||
<?php
|
||||
include_once("oracles/base.php");
|
||||
class numerics extends oracle {
|
||||
public $info = [
|
||||
"name" => "numeric base conversion"
|
||||
];
|
||||
public function check_query($q) {
|
||||
if (str_contains($q, " ")) {
|
||||
return false;
|
||||
}
|
||||
|
||||
$q = strtolower($q);
|
||||
|
||||
$profiles = [
|
||||
["0x", str_split("0123456789abcdef")],
|
||||
["", str_split("1234567890")],
|
||||
["b", str_split("10")]
|
||||
];
|
||||
|
||||
foreach ($profiles as $profile) {
|
||||
$good = true;
|
||||
$good &= str_starts_with($q, $profile[0]);
|
||||
$nq = substr($q, strlen($profile[0]));
|
||||
foreach (str_split($nq) as $c) {
|
||||
$good &= in_array($c, $profile[1]);
|
||||
}
|
||||
if ($good) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
public function generate_response($q) {
|
||||
$n = 0;
|
||||
if (str_starts_with($q, "0x")) {
|
||||
$nq = substr($q, strlen("0x"));
|
||||
$n = hexdec($nq);
|
||||
}
|
||||
elseif (str_starts_with($q, "b")) {
|
||||
$nq = substr($q, strlen("b"));
|
||||
$n = bindec($nq);
|
||||
}
|
||||
else {
|
||||
$n = (int)$q;
|
||||
}
|
||||
return [
|
||||
"decimal (base 10)" => (string)$n,
|
||||
"hexadecimal (base 16)" => "0x".(string)dechex($n),
|
||||
"binary (base 2)" => "b".(string)decbin($n),
|
||||
"" => "binary inputs should be prefixed with 'b', hex with '0x'."
|
||||
];
|
||||
}
|
||||
}
|
||||
?>
|
Reference in New Issue
Block a user