]> git.p6c8.net - jirafeau_project.git/commitdiff
keep and show basic download stats
authorWim Livens <wim@livens.net>
Sun, 2 Oct 2022 22:40:02 +0000 (00:40 +0200)
committerJérôme Jutteau <jerome@jutteau.fr>
Wed, 14 Dec 2022 09:11:25 +0000 (09:11 +0000)
f.php
lib/functions.php
lib/locales/en.json

diff --git a/f.php b/f.php
index 5555523f708cfcb18607069e32b0ccfca9c92199..0368d97e206a83340244c9c9063699e766e33694 100644 (file)
--- a/f.php
+++ b/f.php
@@ -285,6 +285,9 @@ else {
 if ($link['onetime'] == 'O') {
     jirafeau_delete_link($link_name);
 }
+
+jirafeau_write_download_stats($link_name, get_ip_address($cfg));
+
 exit;
 
 ?>
index f2a26e0858857031be5217987895c239463247fe..cf895932caef331bb081975cf4872804612945f1 100644 (file)
@@ -161,6 +161,9 @@ function jirafeau_clean_rm_link($link)
     if (file_exists(VAR_LINKS . $p . $link)) {
         unlink(VAR_LINKS . $p . $link);
     }
+    if (file_exists(VAR_LINKS . $p . $link . '_download')) {
+        unlink(VAR_LINKS . $p . $link . '_download');
+    }
     $parse = VAR_LINKS . $p;
     $scan = array();
     while (file_exists($parse)
@@ -706,6 +709,7 @@ function jirafeau_admin_list($name, $file_hash, $link_hash)
                 if (!count($l)) {
                     continue;
                 }
+                $ld = jirafeau_get_download_stats($node);
 
                 /* Filter. */
                 if (!empty($name) && !@preg_match("/$name/i", jirafeau_escape($l['file_name']))) {
@@ -730,6 +734,11 @@ function jirafeau_admin_list($name, $file_hash, $link_hash)
                 if (strlen($l['ip']) > 0) {
                     echo t('ORIGIN') . ': ' . $l['ip'] . '<br/>';
                 }
+                echo t('DOWNLOAD_COUNT') . ': ' . $ld['count'] . '<br/>';
+                if ($ld['count'] > 0) {
+                    echo t('DOWNLOAD_DATE') . ': ' . jirafeau_get_datetimefield($ld['date']) . '<br/>';
+                    echo t('DOWNLOAD_IP') . ': ' . $ld['ip'] . '<br/>';
+                }
                 echo '</td><td>';
                 echo '<form method="post">' .
                 '<input type = "hidden" name = "action" value = "download"/>' .
@@ -1603,3 +1612,32 @@ function jirafeau_default_web_root()
 {
     return $_SERVER['HTTP_HOST'] . str_replace('install.php', '', $_SERVER['REQUEST_URI']);
 }
+
+function jirafeau_get_download_stats($hash)
+{
+    $filename = VAR_LINKS . s2p("$hash") . $hash . '_download';
+
+    if (!file_exists($filename)) {
+        return array('count'=>0);
+    }
+
+    $c = file($filename);
+    $data['count'] = trim($c[0]);
+    $data['date'] = trim($c[1]);
+    $data['ip'] = trim($c[2]);
+
+    return $data;
+}
+
+function jirafeau_write_download_stats($hash, $ip)
+{
+    $data = jirafeau_get_download_stats($hash);
+    $count = $data['count'];
+    $count++;
+
+    $filename = VAR_LINKS . s2p("$hash") . $hash . '_download';
+
+    $handle = fopen($filename, 'w');
+    fwrite($handle, $count . NL . time() . NL . $ip);
+    fclose($handle);
+}
index b3de22ca073959429c6a29e156259f398e6a2700..44a192b0b6622b680c7b3d554b1734b265640d6a 100644 (file)
     "ONETIME": "One-time",
     "UPLOAD_DATE": "Upload date",
     "ORIGIN": "Origin",
+    "DOWNLOAD_COUNT": "Downloads",
+    "DOWNLOAD_DATE": "Last download",
+    "DOWNLOAD_IP": "Downloaded from",
     "ACTION": "Action",
     "DEL_LINK": "Del link",
     "DEL_FILE_LINKS": "Del file and links",

patrick-canterino.de