Hatena::Grouptumblr

saitamanodoruji

くこかー
saitamanodoruji.tumblr.com
 | 

2012-02-16

reblog 画面に promotion のための input ができて ReblogCommand に 'reblog failed.' と言われるようになったので対処する

15:54 | reblog 画面に promotion のための input ができて ReblogCommand に 'reblog failed.' と言われるようになったので対処する - saitamanodoruji を含むブックマーク はてなブックマーク - reblog 画面に promotion のための input ができて ReblogCommand に 'reblog failed.' と言われるようになったので対処する - saitamanodoruji

今朝から ReblogCommand でリブログできなかった。

ReblogCommandの調子が悪い 1:14 PM - 16 Feb 12 via Tabtter

Twitter / @hk2mrhu

この kh2mrhu さんの tweet で自分だけじゃなさそうだぞと思って調べてみた。

問題の箇所は reblog 画面の

<input type="checkbox" data-premium="1" value="1" name="post[promotion_type]" id="promote_post" style="margin-left: 0px; vertical-align: 1px; width: auto;">

という部分。

post[promotion_type]=1 が送られないように、ReblogCommand の 74 行目あたりに次のように書き加えたら動きました。

--- D:/down/reblogcommand.user.js	Fri Feb 17 10:36:27 2012
+++ D:/down/reblogcommand_.user.js	Fri Feb 17 10:46:08 2012
@@ -74,6 +74,8 @@
 		var params = {};
 		elms.forEach(function(elm) {
 			params[elm.name] = elm.value;
+			if (elm.name === 'post[promotion_type]')
+				params[elm.name] = '';
 		});
 		return params;
 	}

追記

FireFoxの人、ReblogCommand使うと「Reblog failed」と言われてできなくなってませんか?

↓の記事が参考になるかと思うんですが、どの位置にテキストを挿入するのかいまいちわかりません。

分かる方、どなたか! 教えてください。

http://tumblr.g.hatena.ne.jp/saitamanodoruji/20120216

fyfyfy - ReblogCommand不具合について。

ReblogCommand の 74 行目から 79 行目までが

		var params = {};
		elms.forEach(function(elm) {
			params[elm.name] = elm.value;
		});
		return params;
	}

となってるのを、

		var params = {};
		elms.forEach(function(elm) {
			params[elm.name] = elm.value;
			if (elm.name === 'post[promotion_type]')
				params[elm.name] = '';
		});
		return params;
	}

と書き換えるとポストできるようになると思います。

2012-02-17T10:54:21+09:00 ごろ追記

ReblogCommand は userscripts.org のもの よりも coderepos のもの の方が新しいのを忘れてたのでそのへんを書き直した。

2012-06-20T07:02:02+09:00 ごろ追記

Reblog 画面の HTML が変わってまた "failed." って言われるようになった。

name="post[promotion_type]" が name="post[highlight]" になってたので書き換えた。

動くようにしたやつ。

gist: 2955413 は sharedObject を持たせた Greasemonkey, Scriptish に対応させてあるので、Firefox 3.6 + Greasemonkey 0.8.20100408.6 とかの window 共有環境を使ってる人はそのままだと動かない。gist: 2955413 の sharedObject を全部 window に置換しなおすか、gist: 2955413 を使わずに今インストールされてる ReblogCommand の 77 行目あたりを

		var params = {};
		elms.forEach(function(elm) {
			params[elm.name] = elm.value;
			if (elm.name === 'post[highlight]')
				params[elm.name] = '';
		});
		return params;
	}

みたいに書き換えるかすると動くと思う。

2012-06-29T03:10:38+09:00 ごろ追記

Reblog 画面の HTML が変わってまた "failed." って言われるようになった。

プロモーションの on/off を決める input が name="post[highlight]" から name="post[promotion_type]" に戻ってたので書き換えた。77 行目あたり、parseParams() の中。

		var params = {};
		elms.forEach(function(elm) {
			if (elm.name != 'post[highlight]' && elm.name != 'post[promotion_type]')
				params[elm.name] = elm.value;
			else
				params[elm.name] = '';
		});
		return params;
	}

gist: 2955413 も更新した (要 sharedObject、2012-06-20 の追記参照)。

2012-06-29T22:49:27+09:00 ごろ追記

Reblog 画面に

                <label class="typekit-badge">
            <input type="checkbox" id="post_typekit" name="post[typekit]">
            Use Typekit
        </label>

という display: none !important; されてるチェックボックスが有ったり無かったりして "failed." って言われたり言われなかったりしたので書き換えた。77 行目あたり、parseParams() の中。

		var params = {};
		elms.forEach(function(elm) {
			if (elm.name != 'post[highlight]' &&
			    elm.name != 'post[promotion_type]' &&
			    elm.name != 'post[typekit]' &&
			    elm.name != '') {
				params[elm.name] = elm.value;
			}
		});
		return params;
	}

gist: 2955413 も更新した (要 sharedObject、2012-06-20 の追記参照)。

fyfyfyfyfyfy2012/02/17 18:33追記ありがとうございます! 直りました。

 |