[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: automatically filling out WordPress comment fields
- From: Naohiro Aota <naota@xxxxxxxxx>
- Date: Fri, 06 Feb 2009 09:06:40 +0900
- X-ml-name: emacs-w3m
- X-mail-count: 10679
- References: <871vueoqjc.fsf@xxxxxxxxxxx> <87eiychfgv.fsf@xxxxxxxxxxx> <b4meiycbha7.fsf@xxxxxxx>
青田です。
;; 日本語だけでごめんなさい
Katsumi Yamaoka <yamaoka@xxxxxxx> writes:
>>>>>> In [emacs-w3m : No.10676] jidanni@xxxxxxxxxxx wrote:
>
> j> The question is how can I automatically fill in the first three fields
> j> with my personal details, which never change?
>
>> On http://lorelle.wordpress.com/2007/10/31/blog-struggles-when-are-too-many-comments-too-many-comments/#comment
>> I tried
>
> [...]
>
>> Anyway, there are slight variations in the form, e.g.,
>> http://ma.tt/2009/01/venture-destruction/#comment
>> therefore I will also need to erase any text found first too.
>
> I'm not sure it is the right approach but how about this plan?
>
> Japanese:
> フォームに記入する名前やメールアドレスなどを毎回記入するのは面倒
> なので、自動化してしまおうというアイデアです。上記のやり方は変じゃ
> ないでしょうか?
ぼくも欲しかった機能の一つです :)
基本的に山岡さんの実装に賛成です。 ただ、以下のようにして柔軟にしておくの
はどうでしょうか? 特に url での切り分けは "id" なんかのよくあるフォーム名
で便利になると思います。
("name" . "value") -> "name" のフォームに "value" を書きこむ
((:name "name-reg"
:url "url-reg"
:value "val-reg") . "value")
-> (値が指定されていれば) "url-reg" にマッチする url の "name-reg" にマッ
チする、デフォルトが "val-reg" にマッチするフォームに "value" を書き
こむ。
((lambda (url name value)...) . "value")
-> lambda が non-nil を返すフォームに "value" を書きこむ。
(lambda (url name value)...)
-> lambda が non-nil を返した時にそれをフォームに書きこむ。
-----8<-----(cut)-----8<-----
Index: w3m-form.el
===================================================================
RCS file: /storage/cvsroot/emacs-w3m/w3m-form.el,v
retrieving revision 1.177
diff -u -r1.177 w3m-form.el
--- w3m-form.el 30 Dec 2008 05:00:15 -0000 1.177
+++ w3m-form.el 6 Feb 2009 00:04:03 -0000
@@ -702,8 +702,33 @@
no_effect ; map
name value)
(incf id)
- (when value
- (setq value (w3m-decode-entities-string value)))
+ (setq value
+ (catch 'loop
+ (dolist (x w3m-form-values)
+ (cond
+ ((and (stringp (car x))
+ (string= (car x) name))
+ (throw 'loop (cdr x)))
+ ((listp (car x))
+ (let* ((plist (car x))
+ (name-reg (plist-get plist :name))
+ (url-reg (plist-get plist :url))
+ (value-reg (plist-get plist :value)))
+ (when (and (or (null name-reg)
+ (string-match name-reg name))
+ (or (null url-reg)
+ (string-match url-reg w3m-current-url))
+ (or (null value-reg)
+ (string-match value-reg value)))
+ (throw 'loop (cdr x)))))
+ ((functionp (car x))
+ (when (funcall (car x) w3m-current-url name value)
+ (throw 'loop (cdr x))))
+ ((functionp x)
+ (let ((item (funcall x w3m-current-url name value)))
+ (when item
+ (throw 'loop item))))))
+ (throw 'loop (w3m-decode-entities-string value))))
(save-excursion
(search-forward "</input_alt>")
(setq end (match-beginning 0)))
-----8<-----(cut)-----8<-----