anchor.diff:      (values
        (find "--metric" opts :test #'string=)
        (find "--set" opts :test #'string=)
  +     (find "--fucking" opts :test #'string=)
  +     (find "--doge" opts :test #'string=)
        (cond
          (args
           (join-to-string " " (nreverse args)))
  
positive.code:       (save-weather-config (data-path "weather-throttle.lisp"))
        (reply-to message "~a: ~a" (source message) (message-of err)))))
  
  
  (defmethod handle-command ((module weather-module) (cmd (eql 'weather))
                             message args)
    "weather [--metric] <location> - show current conditions and the day's forecast
  weather [--set] <location> - set the channel default location
  "
    (multiple-value-bind (metricp setp location)
        (parse-weather-args module message args)
      (cond
        ((null location)
         (if setp
             (reply-to message "You must specify a location to set.")
             (reply-to message "You must supply a location.")))
        ((not setp)
         (display-weather module message metricp location))
        ((message-target-is-channel-p message)
         (setf (gethash (first (arguments message)) (locations-of module)) location)
         (save-location-db (locations-of module)
                           (data-path "weather-locations.lisp"))
         (reply-to message "The default location for ~a is now ~a."
                   (first (arguments message))
                   location))
        (t
         (reply-to message "You cannot --set in a private message." location)))))
  
negative.code:      (append (list (get-dom-text current "display_location" "full"))
               (mapcar (lambda (field)
                         (get-dom-text current field))
                       '("observation_time" "weather" "icon"
                         "relative_humidity" "wind_dir"
                         "temp_f" "dewpoint_f" "heat_index_f" "windchill_f"
                         "pressure_in" "wind_mph" "wind_gust_mph"
  