Advertisement
Guest User

Client

a guest
Feb 1st, 2024
169
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 5.00 KB | None | 0 0
  1. <?php
  2.  
  3. class LonaDB {
  4.     private $host;
  5.     private $port;
  6.     private $name;
  7.     private $password;
  8.  
  9.     public function __construct($host, $port, $name, $password) {
  10.         $this->host = $host;
  11.         $this->port = $port;
  12.         $this->name = $name;
  13.         $this->password = $password;
  14.     }
  15.  
  16.     private function makeid($length) {
  17.         $result = "";
  18.         $characters = "ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890abcdefghijklmnopqrstuvwxyz";
  19.         $counter = 0;
  20.  
  21.         while ($counter < $length) {
  22.             $result .= $characters[mt_rand(0, strlen($characters) - 1)];
  23.             $counter += 1;
  24.         }
  25.  
  26.         return $result;
  27.     }
  28.  
  29.     private function sendRequest($action, $data) {
  30.         $socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
  31.         if ($socket === false) {
  32.             return ["err" => socket_strerror(socket_last_error())];
  33.         }
  34.  
  35.         $result = socket_connect($socket, $this->host, $this->port);
  36.         if ($result === false) {
  37.             return ["err" => socket_strerror(socket_last_error($socket))];
  38.         }
  39.  
  40.         $processID = $this->makeid(5);
  41.  
  42.         $request = json_encode([
  43.             "action" => $action,
  44.             "login" => [
  45.                 "name" => $this->name,
  46.                 "password" => $this->password
  47.             ],
  48.             "process" => $processID
  49.         ] + $data);
  50.  
  51.         socket_write($socket, $request, strlen($request));
  52.  
  53.         $response = socket_read($socket, 2048);
  54.         socket_close($socket);
  55.  
  56.         return json_decode($response, true);
  57.     }
  58.  
  59.     public function getTables($user) {
  60.         $data = [
  61.             "user" => $user
  62.         ];
  63.  
  64.         return $this->sendRequest("get_tables", $data);
  65.     }
  66.  
  67.     public function getTableData($table) {
  68.         $data = [
  69.             "table" => $table
  70.         ];
  71.  
  72.         return $this->sendRequest("get_table_data", $data);
  73.     }
  74.  
  75.     public function deleteTable($table) {
  76.         $data = [
  77.           "table" => ["name" => $table]
  78.         ];
  79.          
  80.         return $this->sendRequest("delete_table", $data);
  81.     }
  82.  
  83.     public function createTable($table) {
  84.       $data = [
  85.         "table" => ["name" => $table]
  86.       ];
  87.        
  88.       return $this->sendRequest("create_table", $data);
  89.     }
  90.  
  91.     public function set($table, $name, $value) {
  92.         $data = [
  93.           "table" => ["name" => $table],
  94.           "variable" => [
  95.             "name" => $name,
  96.             "value" => $value
  97.           ]
  98.         ];
  99.      
  100.       return $this->sendRequest("set_variable", $data);
  101.     }
  102.  
  103.     public function delete($table, $name){
  104.       $data = [
  105.         "table" => ["name" => $table],
  106.         "variable" => ["name" => $name]
  107.       ];
  108.        
  109.       return $this->sendRequest("remove_variable", $data);
  110.     }
  111.  
  112.     public function get($table, $name){
  113.         $data = [
  114.           "table" => ["name" => $table],
  115.           "variable" => [
  116.             "name" => $name
  117.           ]
  118.         ];
  119.      
  120.       return $this->sendRequest("get_variable", $data);
  121.     }
  122.  
  123.     public function getUsers(){
  124.         $data = [];
  125.      
  126.       return $this->sendRequest("get_users", $data);
  127.     }
  128.  
  129.     public function createUser($name, $pass){
  130.         $data = [
  131.             "user" => [
  132.                 "name" => $name,
  133.                 "password" => $pass
  134.             ]
  135.         ];
  136.      
  137.       return $this->sendRequest("create_user", $data);
  138.     }
  139.  
  140.     public function deleteUser($name){
  141.         $data = [
  142.             "user" => [
  143.                 "name" => $name
  144.             ]
  145.         ];
  146.      
  147.       return $this->sendRequest("delete_user", $data);
  148.     }
  149.  
  150.     public function checkPassword($name, $pass){
  151.         $data = [
  152.             "checkPass" => [
  153.                 "name" => $name,
  154.                 "pass" => $pass
  155.             ]
  156.         ];
  157.      
  158.       return $this->sendRequest("check_password", $data);
  159.     }
  160.  
  161.     public function checkPermission($name, $permission){
  162.         $data = [
  163.             "permission" => [
  164.                 "user" => $name,
  165.                 "name" => $permission
  166.             ]
  167.         ];
  168.      
  169.       return $this->sendRequest("check_permission", $data);
  170.     }
  171.  
  172.     public function removePermission($name, $permission){
  173.         $data = [
  174.             "permission" => [
  175.                 "user" => $name,
  176.                 "name" => $permission
  177.             ]
  178.         ];
  179.      
  180.       return $this->sendRequest("remove_permission", $data);
  181.     }
  182.  
  183.     public function getPermissionsRaw($name){
  184.         $data = [
  185.             "user" => $name
  186.         ];
  187.      
  188.       return $this->sendRequest("get_permissions_raw", $data);
  189.     }
  190.  
  191.     public function addPermission($name){
  192.         $data = [
  193.             "permission" => [
  194.                 "user" => $name,
  195.                 "name" => $permission
  196.             ]
  197.         ];
  198.      
  199.       return $this->sendRequest("add_permission", $data);
  200.     }
  201.  
  202.     public function eval($func) {
  203.         $data = [
  204.             "function" => $func
  205.         ];
  206.  
  207.         return $this->sendRequest("eval", $data);
  208.     }
  209. }
  210.  
  211. ?>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement