parent
4d6eae5f14
commit
6ded3bb27f
|
@ -1,4 +1,6 @@
|
||||||
## Custom
|
## Custom
|
||||||
|
dist/.goat.ignore
|
||||||
dist/.goat.token
|
dist/.goat.token
|
||||||
|
dist/.goat.url
|
||||||
dist/.links.db
|
dist/.links.db
|
||||||
phpliteadmin.config.php
|
dist/phpliteadmin.config.php
|
||||||
|
|
16
README.md
16
README.md
|
@ -18,8 +18,16 @@ $> php -S localhost:8080 ./index.php
|
||||||
Copy these files into the desired directory.
|
Copy these files into the desired directory.
|
||||||
There's a few hardcoded URLs in there that you'll have to fix yourself.
|
There's a few hardcoded URLs in there that you'll have to fix yourself.
|
||||||
One day I'll create a config file for that.
|
One day I'll create a config file for that.
|
||||||
|
|
||||||
You may override settings from `phpliteadmin.php` in the file `phpliteadmin.config.php`.
|
|
||||||
Add your [GoatCounter](https://github.com/zgoat/goatcounter) API token with "Record pageviews" permission in the
|
|
||||||
`.goat.token` file.
|
|
||||||
The database at `.links.db` is automatically created when you visit the main page.
|
The database at `.links.db` is automatically created when you visit the main page.
|
||||||
|
|
||||||
|
## Configuration
|
||||||
|
### phpLiteAdmin
|
||||||
|
You may override settings from `phpliteadmin.php` in the file `phpliteadmin.config.php`.
|
||||||
|
|
||||||
|
### GoatCounter
|
||||||
|
GoatCounter is disabled unless the `.goat.token` and `.goat.url` files exist.
|
||||||
|
|
||||||
|
* Add your [GoatCounter](https://github.com/zgoat/goatcounter) API token with "Record pageviews" permission in the
|
||||||
|
`.goat.token` file.
|
||||||
|
* Add the URL of the `/count` API endpoint in `.goat.url`, e.g. `https://example.com/api/v0/count`.
|
||||||
|
* Add IP addresses that should not be counted to `.goat.ignore`, separated by newlines.
|
||||||
|
|
|
@ -1,4 +1,25 @@
|
||||||
<?php
|
<?php
|
||||||
|
/**
|
||||||
|
* Returns true if GoatCounter should process the current request.
|
||||||
|
*
|
||||||
|
* @return bool true if GoatCounter should process the current request
|
||||||
|
*/
|
||||||
|
function goatcounter_should_process(): bool
|
||||||
|
{
|
||||||
|
if (!is_readable(".goat.token") || !is_readable(".goat.url")) return false;
|
||||||
|
|
||||||
|
if (is_readable(".goat.ignore")) {
|
||||||
|
$ignored_ips = file(".goat.ignore", FILE_IGNORE_NEW_LINES);
|
||||||
|
if (in_array($_SERVER["REMOTE_ADDR"], $ignored_ips)) return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (isset($_SERVER["HTTP_USER_AGENT"])
|
||||||
|
&& preg_match("/bot|crawl|slurp|spider|mediapartners/i", $_SERVER["HTTP_USER_AGENT"])) return false;
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Sends a request to this website's GoatCounter server to record a hit.
|
* Sends a request to this website's GoatCounter server to record a hit.
|
||||||
*
|
*
|
||||||
|
@ -6,16 +27,14 @@
|
||||||
*/
|
*/
|
||||||
function goatcounter_record_hit(string $path)
|
function goatcounter_record_hit(string $path)
|
||||||
{
|
{
|
||||||
if (isset($_SERVER["HTTP_USER_AGENT"])
|
if (!goatcounter_should_process()) return;
|
||||||
&& preg_match("/bot|crawl|slurp|spider|mediapartners/i", $_SERVER["HTTP_USER_AGENT"])) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
$token = file_get_contents(".goat.token");
|
$token = file_get_contents(".goat.token");
|
||||||
|
$url = file_get_contents(".goat.url");
|
||||||
$ch = curl_init();
|
$ch = curl_init();
|
||||||
|
|
||||||
curl_setopt($ch, CURLOPT_URL, "https://stats.fwdkr.co/api/v0/count");
|
curl_setopt($ch, CURLOPT_URL, $url);
|
||||||
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
|
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
|
||||||
curl_setopt($ch, CURLOPT_POST, 1);
|
curl_setopt($ch, CURLOPT_POST, 1);
|
||||||
curl_setopt($ch, CURLOPT_POSTFIELDS,
|
curl_setopt($ch, CURLOPT_POSTFIELDS,
|
||||||
|
|
|
@ -107,7 +107,7 @@ if ($target != null && !$needs_confirmation) {
|
||||||
$("#header").appendChild(header({title: "fwdkr.co"}));
|
$("#header").appendChild(header({title: "fwdkr.co"}));
|
||||||
$("#footer").appendChild(footer({
|
$("#footer").appendChild(footer({
|
||||||
vcsURL: "https://git.fwdekker.com/FWDekker/fwdkr.co/",
|
vcsURL: "https://git.fwdekker.com/FWDekker/fwdkr.co/",
|
||||||
version: "v1.3.2"
|
version: "v1.3.3"
|
||||||
}));
|
}));
|
||||||
});
|
});
|
||||||
</script>
|
</script>
|
||||||
|
|
Loading…
Reference in New Issue