emacs-elpa-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[elpa] elpa-admin 71065aaa37: (elpaa--html-make-index): Add rank informa


From: Stefan Monnier
Subject: [elpa] elpa-admin 71065aaa37: (elpaa--html-make-index): Add rank information
Date: Tue, 5 Mar 2024 23:44:17 -0500 (EST)

branch: elpa-admin
commit 71065aaa379088b7de2468bd693dd85476f3c50e
Author: Stefan Monnier <monnier@iro.umontreal.ca>
Commit: Stefan Monnier <monnier@iro.umontreal.ca>

    (elpaa--html-make-index): Add rank information
    
    * elpa-admin.el (elpaa--wsl-stats-file): Move.
    (elpaa--html-make-index): Add rank information.
    (elpaa--wsl-read): Allow rev "numbers" to end in pre/beta/alpha/...
---
 elpa-admin.el | 47 ++++++++++++++++++++++++++++++-----------------
 1 file changed, 30 insertions(+), 17 deletions(-)

diff --git a/elpa-admin.el b/elpa-admin.el
index 256c91c38c..effdca8139 100644
--- a/elpa-admin.el
+++ b/elpa-admin.el
@@ -40,6 +40,10 @@
   "Subdirectory where the ELPA release files (tarballs, ...) will be placed.")
 (defvar elpaa--devel-subdir "archive-devel/"
   "Subdirectory where the ELPA bleeding edge files (tarballs, ...) will be 
placed.")
+
+(defvar elpaa--wsl-stats-file "wsl-stats.eld"
+  "File where web-server access stats are kept.")
+
 (defvar elpaa--name "NonGNU")
 (defvar elpaa--gitrepo "emacs/nongnu.git")
 (defvar elpaa--url "https://elpa.gnu.org/nongnu/";)
@@ -1955,22 +1959,33 @@ arbitrary code."
 
 (defun elpaa--html-make-index (pkgs)
   (with-temp-buffer
-    (insert (elpaa--html-header
-             (concat elpaa--name " ELPA Packages")
-             nil elpaa--index-javascript-headers))
-    (insert "<table id=\"packages\">\n")
-    (insert 
"<thead><tr><th>Package</th><th>Version</th><th>Description</th></tr></thead>\n")
-    (insert "<tbody>")
-    (dolist (pkg pkgs)
-      (insert (format "<tr><td><a 
href=\"%s.html\">%s</a></td><td>%s</td><td>%s</td></tr>\n"
-                      (car pkg) (car pkg)
-                      (package-version-join (aref (cdr pkg) 0))
-                      (aref (cdr pkg) 2))))
-    (insert "</tbody></table>
+    (let ((scores (and elpaa--wsl-stats-file
+                       (file-readable-p elpaa--wsl-stats-file)
+                       (nth 3 (elpaa--form-from-file-contents
+                               elpaa--wsl-stats-file)))))
+      (insert (elpaa--html-header
+               (concat elpaa--name " ELPA Packages")
+               nil elpaa--index-javascript-headers))
+      (insert "<table id=\"packages\">\n")
+      (insert 
"<thead><tr><th>Package</th><th>Version</th><th>Description</th><th>Rank</th></tr></thead>\n")
+      (insert "<tbody>")
+      (dolist (pkg pkgs)
+        (insert (format "<tr><td><a 
href=\"%s.html\">%s</a></td><td>%s</td><td>%s</td><td>%s</td></tr>\n"
+                        (car pkg) (car pkg)
+                        (package-version-join (aref (cdr pkg) 0))
+                        (aref (cdr pkg) 2)
+                        ;; Average rank over all the weeks' ranks.
+                        ;; FIXME: Only use the more recent weeks?
+                        (let* ((ranks (and (hash-table-p scores)
+                                           (gethash (car pkg) scores)))
+                               (total (apply #'+ (mapcar #'cdr ranks))))
+                          (if (null ranks) "?"
+                            (format "%d%%" (/ total (length ranks))))))))
+      (insert "</tbody></table>
             <div class=\"push\"></div>
         </main>")
-    (insert (elpaa--html-footer))
-    (write-region (point-min) (point-max) "index.html")))
+      (insert (elpaa--html-footer))
+      (write-region (point-min) (point-max) "index.html"))))
 
 (defun elpaa-batch-html-make-index ()
   (let* ((ac-file (pop command-line-args-left))
@@ -2034,7 +2049,7 @@ arbitrary code."
                                       (seq
                                        (+ (or digit "."))
                                        (* (or "pre" "beta" "alpha" "snapshot")
-                                          (+ (or digit "."))))
+                                          (* (or digit "."))))
                                       "readme"))
                                 "."
                                 (or "tar" "txt" "el" "html"))
@@ -2052,8 +2067,6 @@ arbitrary code."
             (week (/ secs 3600 24 7)))
        (cl-incf (alist-get week (gethash pkg stats) 0))))))
 
-(defvar elpaa--wsl-stats-file "wsl-stats.eld")
-
 (defvar elpaa--wsl-directory "/var/log/apache2/")
 
 (defun elpaa--wsl-scores (table)



reply via email to

[Prev in Thread] Current Thread [Next in Thread]