mirror of https://github.com/YGGverse/Yoda.git
yggverse
5 months ago
6 changed files with 227 additions and 210 deletions
@ -1,229 +1,226 @@ |
|||||||
{ |
{ |
||||||
"app": |
"name":"Yoda", |
||||||
|
"theme":"Default", |
||||||
|
"database": |
||||||
{ |
{ |
||||||
"name":"Yoda", |
"name":"database.sqlite", |
||||||
"theme":"Default", |
"username":null, |
||||||
"database": |
"password":null |
||||||
|
}, |
||||||
|
"header": |
||||||
|
{ |
||||||
|
"enabled":true, |
||||||
|
"button": |
||||||
{ |
{ |
||||||
"name":"database.sqlite", |
"close":true |
||||||
"username":null, |
} |
||||||
"password":null |
}, |
||||||
}, |
"width":640, |
||||||
"header": |
"height":480, |
||||||
|
"tab": |
||||||
|
{ |
||||||
|
"page": |
||||||
{ |
{ |
||||||
"enabled":true, |
"title": |
||||||
"button": |
|
||||||
{ |
{ |
||||||
"close":true |
"default":"New page", |
||||||
} |
"width": |
||||||
}, |
{ |
||||||
"width":640, |
"chars":32 |
||||||
"height":480, |
}, |
||||||
"tab": |
"ellipsize": |
||||||
{ |
{ |
||||||
"page": |
"mode":3 |
||||||
|
}, |
||||||
|
"postfix": |
||||||
|
{ |
||||||
|
"hostname":true |
||||||
|
} |
||||||
|
}, |
||||||
|
"redirect": |
||||||
{ |
{ |
||||||
"title": |
"follow": |
||||||
{ |
{ |
||||||
"default":"New page", |
"enabled":true, |
||||||
"width": |
"max":5, |
||||||
{ |
"code": |
||||||
"chars":32 |
[ |
||||||
}, |
30, |
||||||
"ellipsize": |
31 |
||||||
{ |
] |
||||||
"mode":3 |
} |
||||||
}, |
}, |
||||||
"postfix": |
"resolver": |
||||||
{ |
{ |
||||||
"hostname":true |
"enabled":true, |
||||||
} |
"request": |
||||||
|
{ |
||||||
|
"timeout":1, |
||||||
|
"host": |
||||||
|
[ |
||||||
|
"1.1.1.1", |
||||||
|
"8.8.8.8" |
||||||
|
], |
||||||
|
"record": |
||||||
|
[ |
||||||
|
"A", |
||||||
|
"AAAA" |
||||||
|
] |
||||||
}, |
}, |
||||||
"redirect": |
"result": |
||||||
{ |
{ |
||||||
"follow": |
"shuffle":false, |
||||||
|
"cache": |
||||||
{ |
{ |
||||||
"enabled":true, |
"timeout":3600 |
||||||
"max":5, |
|
||||||
"code": |
|
||||||
[ |
|
||||||
30, |
|
||||||
31 |
|
||||||
] |
|
||||||
} |
} |
||||||
|
} |
||||||
|
}, |
||||||
|
"history": |
||||||
|
{ |
||||||
|
"memory": |
||||||
|
{ |
||||||
|
"enabled":true |
||||||
}, |
}, |
||||||
"resolver": |
"database": |
||||||
{ |
{ |
||||||
"enabled":true, |
"enabled":true, |
||||||
"request": |
"mode": |
||||||
{ |
{ |
||||||
"timeout":1, |
"renew":true |
||||||
"host": |
|
||||||
[ |
|
||||||
"1.1.1.1", |
|
||||||
"8.8.8.8" |
|
||||||
], |
|
||||||
"record": |
|
||||||
[ |
|
||||||
"A", |
|
||||||
"AAAA" |
|
||||||
] |
|
||||||
}, |
|
||||||
"result": |
|
||||||
{ |
|
||||||
"shuffle":false, |
|
||||||
"cache": |
|
||||||
{ |
|
||||||
"timeout":3600 |
|
||||||
} |
|
||||||
} |
} |
||||||
}, |
} |
||||||
"history": |
}, |
||||||
|
"progressbar": |
||||||
|
{ |
||||||
|
"visible":true |
||||||
|
}, |
||||||
|
"header": |
||||||
|
{ |
||||||
|
"margin":8, |
||||||
|
"button": |
||||||
{ |
{ |
||||||
"memory": |
"home": |
||||||
{ |
{ |
||||||
"enabled":true |
"visible":true, |
||||||
|
"label":"Home", |
||||||
|
"url":"yoda://welcome" |
||||||
}, |
}, |
||||||
"database": |
"back": |
||||||
{ |
{ |
||||||
"enabled":true, |
"visible":true, |
||||||
"mode": |
"label":"Back" |
||||||
{ |
}, |
||||||
"renew":true |
"forward": |
||||||
} |
{ |
||||||
|
"visible":true, |
||||||
|
"label":"Forward" |
||||||
|
}, |
||||||
|
"base": |
||||||
|
{ |
||||||
|
"visible":true, |
||||||
|
"label":"Base" |
||||||
|
}, |
||||||
|
"go": |
||||||
|
{ |
||||||
|
"visible":true, |
||||||
|
"label":"Go" |
||||||
} |
} |
||||||
}, |
}, |
||||||
"progressbar": |
"entry": |
||||||
{ |
{ |
||||||
"visible":true |
"request": |
||||||
}, |
|
||||||
"header": |
|
||||||
{ |
|
||||||
"margin":8, |
|
||||||
"button": |
|
||||||
{ |
{ |
||||||
"home": |
"placeholder":"URL or any search term...", |
||||||
{ |
"length": |
||||||
"visible":true, |
|
||||||
"label":"Home", |
|
||||||
"url":"yoda://welcome" |
|
||||||
}, |
|
||||||
"back": |
|
||||||
{ |
|
||||||
"visible":true, |
|
||||||
"label":"Back" |
|
||||||
}, |
|
||||||
"forward": |
|
||||||
{ |
{ |
||||||
"visible":true, |
"max":1024 |
||||||
"label":"Forward" |
|
||||||
}, |
}, |
||||||
"base": |
"autocomplete": |
||||||
{ |
|
||||||
"visible":true, |
|
||||||
"label":"Base" |
|
||||||
}, |
|
||||||
"go": |
|
||||||
{ |
|
||||||
"visible":true, |
|
||||||
"label":"Go" |
|
||||||
} |
|
||||||
}, |
|
||||||
"entry": |
|
||||||
{ |
|
||||||
"request": |
|
||||||
{ |
{ |
||||||
"placeholder":"URL or any search term...", |
"enabled":true, |
||||||
"length": |
"inline": |
||||||
{ |
{ |
||||||
"max":1024 |
"completion":true, |
||||||
|
"selection":true |
||||||
}, |
}, |
||||||
"autocomplete": |
"key": |
||||||
{ |
{ |
||||||
"enabled":true, |
"length":1 |
||||||
"inline": |
}, |
||||||
{ |
"ignore": |
||||||
"completion":true, |
{ |
||||||
"selection":true |
"keycode": |
||||||
}, |
[ |
||||||
"key": |
111, |
||||||
{ |
116 |
||||||
"length":1 |
] |
||||||
}, |
}, |
||||||
"ignore": |
"result": |
||||||
{ |
{ |
||||||
"keycode": |
"limit":15 |
||||||
[ |
|
||||||
111, |
|
||||||
116 |
|
||||||
] |
|
||||||
}, |
|
||||||
"result": |
|
||||||
{ |
|
||||||
"limit":15 |
|
||||||
} |
|
||||||
} |
} |
||||||
} |
} |
||||||
} |
} |
||||||
}, |
} |
||||||
"body": |
}, |
||||||
{ |
"body": |
||||||
"margin":8 |
{ |
||||||
}, |
"margin":8 |
||||||
"footer": |
}, |
||||||
|
"footer": |
||||||
|
{ |
||||||
|
"margin":8, |
||||||
|
"status": |
||||||
{ |
{ |
||||||
"margin":8, |
"open": |
||||||
"status": |
|
||||||
{ |
{ |
||||||
"open": |
"complete":"{REQUEST_BASE_URL} | {TIME_C} | {RESPONSE_META} | {RESPONSE_LENGTH} bytes | {RESPONSE_SECONDS} seconds" |
||||||
{ |
|
||||||
"complete":"{REQUEST_BASE_URL} | {TIME_C} | {RESPONSE_META} | {RESPONSE_LENGTH} bytes | {RESPONSE_SECONDS} seconds" |
|
||||||
} |
|
||||||
} |
} |
||||||
} |
} |
||||||
|
} |
||||||
|
}, |
||||||
|
"history": |
||||||
|
{ |
||||||
|
"enabled":true, |
||||||
|
"label":"History", |
||||||
|
"clean": |
||||||
|
{ |
||||||
|
"timeout":null |
||||||
}, |
}, |
||||||
"history": |
"time": |
||||||
{ |
{ |
||||||
"enabled":true, |
"format":"c" |
||||||
"label":"History", |
}, |
||||||
"clean": |
"header": |
||||||
{ |
{ |
||||||
"timeout":null |
"margin":8, |
||||||
}, |
"button": |
||||||
"time": |
|
||||||
{ |
|
||||||
"format":"c" |
|
||||||
}, |
|
||||||
"header": |
|
||||||
{ |
{ |
||||||
"margin":8, |
"open": |
||||||
"button": |
|
||||||
{ |
{ |
||||||
"open": |
"visible":true, |
||||||
{ |
"label":"Open" |
||||||
"visible":true, |
}, |
||||||
"label":"Open" |
"delete": |
||||||
}, |
{ |
||||||
"delete": |
"visible":true, |
||||||
{ |
"label":"Delete" |
||||||
"visible":true, |
|
||||||
"label":"Delete" |
|
||||||
}, |
|
||||||
"search": |
|
||||||
{ |
|
||||||
"visible":true, |
|
||||||
"label":"Search" |
|
||||||
} |
|
||||||
}, |
}, |
||||||
"filter": |
"search": |
||||||
{ |
{ |
||||||
"placeholder":"Search in history..." |
"visible":true, |
||||||
|
"label":"Search" |
||||||
} |
} |
||||||
}, |
}, |
||||||
"body": |
"filter": |
||||||
{ |
{ |
||||||
"margin":8 |
"placeholder":"Search in history..." |
||||||
} |
} |
||||||
|
}, |
||||||
|
"body": |
||||||
|
{ |
||||||
|
"margin":8 |
||||||
} |
} |
||||||
} |
} |
||||||
} |
} |
||||||
|
@ -0,0 +1,45 @@ |
|||||||
|
<?php |
||||||
|
|
||||||
|
declare(strict_types=1); |
||||||
|
|
||||||
|
namespace Yggverse\Yoda\Model; |
||||||
|
|
||||||
|
class Config |
||||||
|
{ |
||||||
|
public function __construct( |
||||||
|
?string $filename = null |
||||||
|
) { |
||||||
|
if (empty($filename)) |
||||||
|
{ |
||||||
|
$filename = __DIR__ . |
||||||
|
DIRECTORY_SEPARATOR . '..' . |
||||||
|
DIRECTORY_SEPARATOR . '..' . |
||||||
|
DIRECTORY_SEPARATOR . 'config.json'; |
||||||
|
} |
||||||
|
|
||||||
|
if (!file_exists($filename)) |
||||||
|
{ |
||||||
|
throw new \Exception; // @TODO |
||||||
|
} |
||||||
|
|
||||||
|
if (!is_readable($filename)) |
||||||
|
{ |
||||||
|
throw new \Exception; // @TODO |
||||||
|
} |
||||||
|
|
||||||
|
if (!$data = file_get_contents($filename)) |
||||||
|
{ |
||||||
|
throw new \Exception; // @TODO |
||||||
|
} |
||||||
|
|
||||||
|
if (!$config = @json_decode($data)) |
||||||
|
{ |
||||||
|
throw new \Exception; // @TODO |
||||||
|
} |
||||||
|
|
||||||
|
foreach ($config as $key => $value) |
||||||
|
{ |
||||||
|
$this->{$key} = $value; // @TODO |
||||||
|
} |
||||||
|
} |
||||||
|
} |
Loading…
Reference in new issue