Advertisement
Guest User

cl-ninja-speedraker

a guest
Oct 23rd, 2018
119
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lisp 1.33 KB | None | 0 0
  1. (defpackage cl-ninja.speedraker
  2.   (:use :cl))
  3. (in-package :cl-ninja.speedraker)
  4.  
  5. (defparameter *url* "https://www.speedrun.com/") ; A generic link that will be overwritten
  6. (defparameter *request* (dex:get *url*))
  7. (defparameter *parsed-content* (plump:parse *request*))
  8. (defparameter *outputted-content* nil)
  9.  
  10. ;;; Functions
  11. (defun update-url (url)
  12.   "Since Dexador/the web part of the program doesn't like being a placeholder
  13.   for later use, it has to be redefined here."
  14.   (setq *request* (dex:get url))
  15.   (setq *parsed-content* (plump:parse *request*))
  16.   (setq *outputted-content* (lquery:$ *parsed-content*
  17.                               "#main div div" (contents) (text))))
  18.  
  19. (defun stats (game)
  20.   "Downloads statistics from a given game (abbreviation)
  21.   and puts it out to a text file"
  22.   (let ((name (string-downcase (string game))))
  23.   (setq *url* (format nil "https://www.speedrun.com/~a/gamestats" name))
  24.   (update-url *url*)
  25.   (with-open-file
  26.     (stream (format nil "~a-stats.txt" name)
  27.             :direction :output :if-exists :supersede
  28.                                :if-does-not-exist :create)
  29.     (format stream "~a~%" (cl-strings:clean
  30.                             (aref *outputted-content* 3))))))  ; aref is used to convert
  31.                                                                ; the lquery array to a string
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement