mirror of
https://github.com/YGGverse/YGGstate.git
synced 2025-02-03 18:34:20 +00:00
init composer/psr-4 package
This commit is contained in:
parent
a8fbf29959
commit
ade3d281bf
12
.gitignore
vendored
12
.gitignore
vendored
@ -1,5 +1,9 @@
|
|||||||
.vscode
|
/.vscode/
|
||||||
.ftpignore
|
/vendor/
|
||||||
|
|
||||||
/config/app.php
|
/database/yggstate.mwb.bak
|
||||||
/database/yggstate.mwb.bak
|
|
||||||
|
/src/config/app.php
|
||||||
|
|
||||||
|
.ftpignore
|
||||||
|
composer.lock
|
||||||
|
17
composer.json
Normal file
17
composer.json
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
{
|
||||||
|
"name": "yggverse/yggstate",
|
||||||
|
"description": "Yggdrasil Network Analytics",
|
||||||
|
"type": "project",
|
||||||
|
"require": {
|
||||||
|
"php": ">=8.1",
|
||||||
|
"yggverse/yggdrasilctl": ">=0.1.0",
|
||||||
|
"yggverse/parser": ">=0.1.0"
|
||||||
|
},
|
||||||
|
"license": "MIT",
|
||||||
|
"autoload": {
|
||||||
|
"psr-4": {
|
||||||
|
"Yggverse\\Yggstate\\": "src/"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"minimum-stability": "alpha"
|
||||||
|
}
|
@ -1,82 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
class URL {
|
|
||||||
|
|
||||||
public static function is(string $url) : bool {
|
|
||||||
|
|
||||||
return filter_var($url, FILTER_VALIDATE_URL);
|
|
||||||
}
|
|
||||||
|
|
||||||
public static function parse(string $url) : mixed {
|
|
||||||
|
|
||||||
$result = (object)
|
|
||||||
[
|
|
||||||
'host' => (object)
|
|
||||||
[
|
|
||||||
'url' => null,
|
|
||||||
'scheme' => null,
|
|
||||||
'name' => null,
|
|
||||||
'port' => null,
|
|
||||||
],
|
|
||||||
'page' => (object)
|
|
||||||
[
|
|
||||||
'url' => null,
|
|
||||||
'uri' => null,
|
|
||||||
'path' => null,
|
|
||||||
'query' => null,
|
|
||||||
]
|
|
||||||
];
|
|
||||||
|
|
||||||
// Validate URL
|
|
||||||
if (!self::is($url)) {
|
|
||||||
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Parse host
|
|
||||||
if ($scheme = parse_url($url, PHP_URL_SCHEME)) {
|
|
||||||
|
|
||||||
$result->host->url = $scheme . '://';
|
|
||||||
$result->host->scheme = $scheme;
|
|
||||||
|
|
||||||
} else {
|
|
||||||
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
if ($host = parse_url($url, PHP_URL_HOST)) {
|
|
||||||
|
|
||||||
$result->host->url .= $host;
|
|
||||||
$result->host->name = $host;
|
|
||||||
|
|
||||||
} else {
|
|
||||||
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
if ($port = parse_url($url, PHP_URL_PORT)) {
|
|
||||||
|
|
||||||
$result->host->url .= ':' . $port;
|
|
||||||
$result->host->port = $port;
|
|
||||||
|
|
||||||
// port is optional
|
|
||||||
}
|
|
||||||
|
|
||||||
// Parse page
|
|
||||||
if ($path = parse_url($url, PHP_URL_PATH)) {
|
|
||||||
|
|
||||||
$result->page->uri = $path;
|
|
||||||
$result->page->path = $path;
|
|
||||||
}
|
|
||||||
|
|
||||||
if ($query = parse_url($url, PHP_URL_QUERY)) {
|
|
||||||
|
|
||||||
$result->page->uri .= '?' . $query;
|
|
||||||
$result->page->query = '?' . $query;
|
|
||||||
}
|
|
||||||
|
|
||||||
$result->page->url = $result->host->url . $result->page->uri;
|
|
||||||
|
|
||||||
return $result;
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,55 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
class Yggdrasil {
|
|
||||||
|
|
||||||
private static function _exec(string $cmd) : mixed {
|
|
||||||
|
|
||||||
if (false !== exec('yggdrasilctl -json getPeers', $output)) {
|
|
||||||
|
|
||||||
$rows = [];
|
|
||||||
|
|
||||||
foreach($output as $row){
|
|
||||||
|
|
||||||
$rows[] = $row;
|
|
||||||
}
|
|
||||||
|
|
||||||
if ($result = @json_decode(implode(PHP_EOL, $rows))) {
|
|
||||||
|
|
||||||
return $result;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
public static function getPeers() : mixed {
|
|
||||||
|
|
||||||
if (false === $result = self::_exec('yggdrasilctl -json getPeers')) {
|
|
||||||
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (empty($result->peers)) {
|
|
||||||
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
foreach ((object) $result->peers as $peer) {
|
|
||||||
|
|
||||||
switch (false) {
|
|
||||||
|
|
||||||
case isset($peer->bytes_recvd):
|
|
||||||
case isset($peer->bytes_sent):
|
|
||||||
case isset($peer->remote):
|
|
||||||
case isset($peer->port):
|
|
||||||
case isset($peer->key):
|
|
||||||
case isset($peer->uptime):
|
|
||||||
case !empty($peer->coords):
|
|
||||||
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return $result->peers;
|
|
||||||
}
|
|
||||||
}
|
|
@ -20,7 +20,7 @@ if (false === sem_acquire($semaphore, true)) {
|
|||||||
require_once(__DIR__ . '/../config/app.php');
|
require_once(__DIR__ . '/../config/app.php');
|
||||||
require_once(__DIR__ . '/../library/yggdrasil.php');
|
require_once(__DIR__ . '/../library/yggdrasil.php');
|
||||||
require_once(__DIR__ . '/../library/mysql.php');
|
require_once(__DIR__ . '/../library/mysql.php');
|
||||||
require_once(__DIR__ . '/../library/url.php');
|
require_once __DIR__ . '/../vendor/autoload.php';
|
||||||
|
|
||||||
// Check disk quota
|
// Check disk quota
|
||||||
if (CRAWL_STOP_DISK_QUOTA_MB_LEFT > disk_free_space('/') / 1000000) {
|
if (CRAWL_STOP_DISK_QUOTA_MB_LEFT > disk_free_space('/') / 1000000) {
|
||||||
@ -63,7 +63,7 @@ try {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Collect connected peers
|
// Collect connected peers
|
||||||
if ($connectedPeers = Yggdrasil::getPeers()) {
|
if ($connectedPeers = Yggverse\Yggdrasilctl\Yggdrasil::getPeers()) {
|
||||||
|
|
||||||
foreach ($connectedPeers as $connectedPeerAddress => $connectedPeerInfo) {
|
foreach ($connectedPeers as $connectedPeerAddress => $connectedPeerInfo) {
|
||||||
|
|
||||||
@ -84,7 +84,7 @@ if ($connectedPeers = Yggdrasil::getPeers()) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Init peer data
|
// Init peer data
|
||||||
if ($connectedPeerRemoteUrl = URL::parse($connectedPeerInfo->remote)) {
|
if ($connectedPeerRemoteUrl = Yggverse\parser\Url::parse($connectedPeerInfo->remote)) {
|
||||||
|
|
||||||
if ($dbPeerRemote = $db->findPeerRemote($dbPeerId,
|
if ($dbPeerRemote = $db->findPeerRemote($dbPeerId,
|
||||||
$connectedPeerRemoteUrl->host->scheme,
|
$connectedPeerRemoteUrl->host->scheme,
|
Loading…
x
Reference in New Issue
Block a user