mofh-api-proxy / hf-mofh-api.php
mrsavage1's picture
Upload 14 files
90b617f verified
<?php
/**
* Hugging Face Space MOFH API Proxy Client
* Bypasses ByetHost restrictions by using HF Space as proxy
*/
class HF_MOFH_API
{
private $hf_api_url;
public function __construct($hf_api_url)
{
$this->hf_api_url = rtrim($hf_api_url, '/');
}
/**
* Create a new hosting account via HF Space
*/
public function createAccount($username, $password, $email, $domain, $plan = 'free')
{
$data = [
'username' => $username,
'password' => $password,
'email' => $email,
'domain' => $domain,
'plan' => $plan
];
return $this->makeRequest('/create-account', $data);
}
/**
* Suspend an account
*/
public function suspendAccount($username, $reason = 'Suspended by admin')
{
$data = [
'username' => $username,
'reason' => $reason
];
return $this->makeRequest('/suspend-account', $data);
}
/**
* Unsuspend an account
*/
public function unsuspendAccount($username)
{
$data = [
'username' => $username
];
return $this->makeRequest('/unsuspend-account', $data);
}
/**
* Make API request to Hugging Face Space
*/
private function makeRequest($endpoint, $data = [])
{
$url = $this->hf_api_url . $endpoint;
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));
curl_setopt($ch, CURLOPT_HTTPHEADER, [
'Content-Type: application/json',
'User-Agent: Celestine-Hosting/1.0'
]);
curl_setopt($ch, CURLOPT_TIMEOUT, 60);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 10);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2);
$response = curl_exec($ch);
$http_code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
$error = curl_error($ch);
curl_close($ch);
if ($error) {
return [
'success' => false,
'http_code' => $http_code,
'error' => $error,
'response' => null
];
}
$result = json_decode($response, true);
if (!$result) {
return [
'success' => false,
'http_code' => $http_code,
'error' => 'Invalid JSON response',
'response' => $response
];
}
return array_merge($result, [
'http_code' => $http_code
]);
}
/**
* Test connection to HF Space
*/
public function testConnection()
{
$ch = curl_init($this->hf_api_url . '/');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_TIMEOUT, 10);
$response = curl_exec($ch);
$http_code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
$error = curl_error($ch);
curl_close($ch);
return [
'success' => ($http_code == 200 && !$error),
'http_code' => $http_code,
'error' => $error,
'response' => json_decode($response, true)
];
}
}
?>