#! /usr/bin/guile \
-e main -s
!#

;; Loads an entire text file into a string
(define (read-entire-file-port fp)
  (letrec ((read-characters
            (lambda (fp)
              (let ((character (read-char fp)))
                (if (eof-object? character)
                    ""
                    (string-append (string character)
                                   (read-characters fp)))))))
    (read-characters fp)))

(define (trim-words-all content word)
  (let ((index (string-contains content word)))
    (if index
        (trim-words-all (string-append
                         (substring content 0 index)
                         (substring content
                                    (+ index (string-length word))
                                    (string-length content)))
                        word)
        content)))

(define (clean-up-html file-name)
  (call-with-input-file file-name
    (lambda (fp)
      (let ((content (read-entire-file-port fp))
            (remove-list '("<table border=\"1\" width=\"60%\">"
                           "<table>"
                           "</table>"
                           "<tr>"
                           "<td>"
                           "</tr>"
                           "</td>")))
        (for-each
         (lambda (item)
           (set! content (trim-words-all content item)))
         remove-list)
        (display content)))))

(define (main args)
  (clean-up-html (cadr args)))