;;; Stuff that helps Sacha Chua manage her website. (defun website-view-logs () (interactive) (grep "grep -nE sacha ~/sitelogs/access_log | grep -v 'richip\\|picsearch\\|psbot' | grep -v \\\"-\\\"")) (defun website-view-logs-google () (interactive) (grep "grep -nE sacha ~/sitelogs/access_log | grep google")) (defun sacha/list-web-stats (prefix) (interactive (list current-prefix-arg)) (goto-char (point-min)) (let ((results) referrer page) (while (re-search-forward "GET \\([^ ]+\\) [^\"]+\"[^\"]+\"\\([^\"]+\\)" nil t) (setq page (match-string 1)) (setq referrer (match-string 2)) (when (string-match "\\(google\\.[^/]+\\)/search.+?q=\\([^&]+\\)" referrer) (setq referrer (concat (match-string 1 referrer) "://" (match-string 2 referrer)))) (setq results (cons (if prefix (concat page " " referrer) (concat referrer " " page)) results))) (setq results (sort results 'string<)) (with-current-buffer (get-buffer-create "*Web stats*") (erase-buffer) (while results (insert (car results) "\n") (setq results (cdr results))) (pop-to-buffer (current-buffer)))))