diff --git a/jumpapp/classes/API/Icon.php b/jumpapp/classes/API/Icon.php index 722e3a7..71a6955 100644 --- a/jumpapp/classes/API/Icon.php +++ b/jumpapp/classes/API/Icon.php @@ -18,14 +18,15 @@ use \Jump\Exceptions\APIException; class Icon extends AbstractAPI { public function get_output(): string { - if (!isset($this->routeparams['siteurl']) || empty($this->routeparams['siteurl'])) { - throw new APIException('The siteurl query parameter is not provided or empty'); + if (!isset($this->routeparams['siteid']) || empty($this->routeparams['siteid'])) { + throw new APIException('The siteid query parameter is not provided or empty'); } $sites = new \Jump\Sites($this->config, $this->cache); - $siteurl = filter_var($this->routeparams['siteurl'], FILTER_SANITIZE_URL); - $site = $sites->get_site_by_url($siteurl); + # A site ID can contain lowercase a-z, 0-9 and the "-" (dash) character only. + $siteid = preg_replace("/[^a-z0-9-]/", "", $this->routeparams['siteid']); + $site = $sites->get_site_by_id($siteid); $imagedata = $site->get_favicon_image_data(); diff --git a/jumpapp/classes/Main.php b/jumpapp/classes/Main.php index 50a2c6b..a1d8094 100644 --- a/jumpapp/classes/Main.php +++ b/jumpapp/classes/Main.php @@ -34,7 +34,7 @@ class Main { $this->router->addRoute('/tag/', [ 'class' => 'Jump\Pages\TagPage' ]); - $this->router->addRoute('/api/icon?siteurl=', [ + $this->router->addRoute('/api/icon?siteid=', [ 'class' => 'Jump\API\Icon' ]); $this->router->addRoute('/api/status[/]', [ diff --git a/jumpapp/templates/sites.mustache b/jumpapp/templates/sites.mustache index 3d3469a..ebc2343 100644 --- a/jumpapp/templates/sites.mustache +++ b/jumpapp/templates/sites.mustache @@ -2,7 +2,7 @@