Browse Source

implement custom route settings

main
yggverse 5 months ago
parent
commit
1c7e01f028
  1. 4
      config/example.json
  2. 42
      src/Controller/Server/Nex.php

4
config/example.json

@ -11,6 +11,10 @@ @@ -11,6 +11,10 @@
{
"host":"127.0.0.1",
"port":1900,
"route":
{
"/test":"/path/to/page.gmi"
},
"event":
{
"init":

42
src/Controller/Server/Nex.php

@ -78,7 +78,7 @@ class Nex implements MessageComponentInterface @@ -78,7 +78,7 @@ class Nex implements MessageComponentInterface
// Route request
switch (true)
{
// Item
// Chanel item
case (bool) preg_match('/\/(?<id>\d+)($|\.gmi)$/i', $request, $attribute):
$lines = [];
@ -145,7 +145,7 @@ class Nex implements MessageComponentInterface @@ -145,7 +145,7 @@ class Nex implements MessageComponentInterface
break;
// Chanel
// Channel page
case (bool) preg_match('/^\/(?<alias>.+)$/i', $request, $attribute):
$lines = [];
@ -207,23 +207,35 @@ class Nex implements MessageComponentInterface @@ -207,23 +207,35 @@ class Nex implements MessageComponentInterface
// Not found
default:
$lines = [];
// Get channels
foreach ((array) $this->_database->getChannels() as $channel)
// Try static route settings
if (isset($this->_config->route->{$request}))
{
$lines[] = sprintf(
'=> /%s %s',
$channel->alias,
$channel->title
$response = file_get_contents(
$this->_config->route->{$request}
);
}
// Build response
$response = implode(
PHP_EOL,
$lines
);
// Build site map
else
{
$lines = [];
// Get channels
foreach ((array) $this->_database->getChannels() as $channel)
{
$lines[] = sprintf(
'=> /%s %s',
$channel->alias,
$channel->title
);
}
// Build response
$response = implode(
PHP_EOL,
$lines
);
}
}
// Debug message event on enabled

Loading…
Cancel
Save