;;
;; curl -T /path/tp/file.txt -i
;; --user user@mail.com:pwd
;; --header "Content-Type: text/x.socialtext-wiki"
;; http://wiki.razmjenavjestina.org/data/workspaces/RazmjenaVjestina/pages/NewPage
(setq wiki-username nil)
(setq wiki-passwd nil)
(setq wiki-url "http://wiki.razmjenavjestina.org/data/workspaces/RazmjenaVjestina/pages/")
(setq curl-bin "/usr/bin/curl")
(defun wiki-login (&optional uname pwd)
(interactive)
(if uname
(progn
(setq wiki-username uname)
(setq wiki-passwd pwd))
(let ((account (wiki-read-account t)))
(setq wiki-username (car account))
(setq wiki-passwd (cadr account)))))
(defun wiki-logout ()
(interactive)
(setq wiki-username nil)
(setq wiki-passwd nil))
(defun wiki-send-external (file title)
(interactive
(let ((file (expand-file-name (read-file-name "File: " nil nil t)))
(title (read-string "Title: ")))
`(,file ,title)))
(apply #'wiki-send-internal file title (wiki-read-account)))
(defun wiki-send (title)
(interactive
(let ((title (read-string "Title: ")))
`(,title)))
(when buffer-file-name
(apply #'wiki-send-internal buffer-file-name title (wiki-read-account))))
(defun wiki-read-account (&optional forced)
(let ((uname (if (and (not forced)
wiki-username) wiki-username
(read-string "Mail: ")))
(pwd (if (and (not forced)
wiki-passwd
(> (length wiki-passwd) 0)) wiki-passwd
(read-passwd "Password: "))))
`(,uname ,pwd)))
;(defun wiki-send-internal (file title uname pwd )
; (slime-eval-async `(rv.wiki:wiki-send ,(concat wiki-url title)
; ,uname ,pwd ,file)
; (lambda (ret) (message (format ">>>%s" ret)))))
(defun wiki-send-internal (file title uname pwd )
(let ((args `(,(format "-T%s" file) "-i" "--user" ,(format "%s:%s" uname pwd)
"--header" "Content-Type: text/x.socialtext-wiki"
,(format (concat wiki-url "%s") title))))
(with-temp-buffer
(apply #'call-process curl-bin nil (current-buffer) nil args))))