twittering-mode over proxy
ちょこっといじってみた。今のところ機能しているような気がする。
--- d:/home/.emacs.d/elisp/twittering-mode.el.orig 2008-01-08 15:50:30.275576000 +0900 +++ d:/home/.emacs.d/elisp/twittering-mode.el 2008-01-10 21:06:34.020910400 +0900 @@ -82,6 +82,19 @@ (defvar twittering-username-face 'twittering-username-face) (defvar twittering-uri-face 'twittering-uri-face) +(defvar twittering-proxy-use nil) +(defvar twittering-proxy-server nil) +(defvar twittering-proxy-port 8080) + +(defun twittering-toggle-proxy () "" + (interactive) + (setq twittering-proxy-use + (not twittering-proxy-use)) + (message "%s %s" + "Use Proxy:" + (if twittering-proxy-use + "on" "off"))) + (defun twittering-get-or-generate-buffer (buffer) (if (bufferp buffer) (if (buffer-live-p buffer) @@ -186,6 +199,7 @@ (define-key km [backspace] 'backward-char) (define-key km "G" 'end-of-buffer) (define-key km "H" 'beginning-of-buffer) + (define-key km "\C-c\C-p" 'twittering-toggle-proxy) nil)) (defvar twittering-mode-syntax-table nil "") @@ -259,18 +273,23 @@ (set-buffer (twittering-http-buffer)) (erase-buffer)) - (let (proc) + (let (proc server port) (condition-case nil (progn + (if (and twittering-proxy-use twittering-proxy-server) + (setq server twittering-proxy-server + port twittering-proxy-port) + (setq server "twitter.com" + port "80")) (setq proc (open-network-stream "network-connection-process" (twittering-http-buffer) - "twitter.com" 80)) + server (string-to-number port))) (set-process-sentinel proc sentinel) (process-send-string proc (let ((nl "\r\n")) - (concat "GET /" method-class "/" method ".xml HTTP/1.1" nl + (concat "GET http://twitter.com/" method-class "/" method ".xml HTTP/1.1" nl "Host: twitter.com" nl "Authorization: Basic " (base64-encode-string @@ -448,17 +467,22 @@ (set-buffer (twittering-http-buffer)) (erase-buffer)) - (let (proc) + (let (proc server port) (progn + (if (and twittering-proxy-use twittering-proxy-server) + (setq server twittering-proxy-server + port twittering-proxy-port) + (setq server "twitter.com" + port "80")) (setq proc (open-network-stream "network-connection-process" (twittering-http-buffer) - "twitter.com" 80)) + server (string-to-number port))) (set-process-sentinel proc sentinel) (process-send-string proc (let ((nl "\r\n")) - (concat "POST /" method-class "/" method ".xml?" + (concat "POST http://twitter.com/" method-class "/" method ".xml?" (if parameters (mapconcat (lambda (param-pair)
2008-01-10追記
切替が面倒だったので、ON/OFF トグルできるようにして、ついでにキーマップも追加した。
2008-03-17追記
本家にとりこまれたみたい。手パッチ不要になったよひゃっほう。