Foxy GesturesでMake Link代替 ― 2018/11/13 00:50
これまでCopy URL Lite+を改悪して使っていたのですけれど、Quantumからユーザスクリプトが使えなくなったことでMake Link的な拡張が必要になりました。
Format Linkですむ話なのですけれど、Copy URL Lite+のようにカスタマイズしまくりたいw
かと言ってJavaScriptからして断片的な知識しかなく拡張を作るのはちょっと無理。
そこでこの前も参考にさせて頂いたTEXST.NETから「タイトルとURLをコピー」のスクリプトを参考にカスタマイズしてみました。
そのままジェスチャーでタイトル(改行:\n)URLをクリップボードにコピー。
Ctrlキーを押しながらジェスチャーでhtml形式でタイトルとURLをクリップボードにコピーします。
今回のカスタマイズとしてAmazonの商品ページではショートURIでコピーされるようにしていますw
var promise = executeInBackground(() => {
return getActiveTab(tab => {
return tab;
});
});
promise.then((src) => {
var asin = '', str = '';
if(src.url.split('/')[2] == 'www.amazon.co.jp') {
try{
asin = document.getElementById('ASIN').value;
}catch(e){
asin = false;
}
if(asin){
src.url = 'http://amazon.jp/dp/' + asin;
}
}
if(mouseDown.ctrlKey){
str = '<a href="' + src.url + '" target="_blank">' + src.title + '</a>';
} else {
str = src.title + '\n' + src.url;
}
var textarea = document.createElement("textarea");
document.body.appendChild(textarea);
textarea.value = str;
textarea.select();
textarea.focus();
document.execCommand("copy");
textarea.parentNode.removeChild(textarea);
});
注意:Foxy Gesturesの詳細設定で「clipboardWrite APIパーミッションの追加」が有効になっている必要があります。
Amazonの商品でトラッキングIDを埋め込みたい場合は
src.url = 'http://amazon.jp/dp/' + asin;
を
src.url = 'http://amazon.co.jp/o/ASIN/' + asin + '/トラッキングID/';
とすれば良いでしょう。
今回動作検証中に気づいたのですけれど、トラッキングIDを埋め込む場合、
2011年に検証したときはhttp://amazon.jp/o/ASIN/(asin)/(トラッキングID)/でもリンクの動作確認ツールは有効と判定されていたのですけれど
今回の検証ではhttp://amazon.co.jp/o/ASIN/(asin)/(トラッキングID)/でないとエラーになるようです。
これまで「.co」なしでリンクしていたので気になってレポートを確認したところ先週くらいにクリックがカウントされているので.coがなくても大丈夫そうですけど念のため付けときましょう。
あとショートURI検証中気づいたのですけど、Amazonは在庫切れとか場合によって「業者が販売」しているページが表示されることがあるのですが、URI末尾に/ref=sr_1_2&rps=1を追加販売、発送」のページが(あれば)表示されるようです。
数件しかテストしてないのでそうなるとは限りませんが「Amazonが販売、発送」ページを優先して表示させたいときには役に立つかもしれませんw
それにしてもほとんど知識のない状態で非同期だのPromiseだのチンプンカンプンだわ。
executeInBackgroundの中でdocument.getElementByIdが使えないみたいだし(気が付かなくてそこが一番苦労した)
Promiseを使う - JavaScript | MDNとかPromise.prototype.then() - JavaScript | MDNとかピントこなかった
Waterfoxに逃げるべきかいまだに迷う……
「Waterfox」v56.2.3が公開 ~“Add-ons for Firefox”のレガシーアドオンのミラーリングが完了
気になるのは派生ブラウザの開発リソースもだけれど、アドオンの開発も続くのだろうか?
分散して消滅とかやだなぁ。
Foxy Gestures:Twitterの画像を原寸大で新しいタブで開く ― 2018/09/21 18:54
レガシーアドオンのためにESRに逃げていたのですけれど、とうとう逃げ切れなくなりましたので、試しにQuantumを入れて様子を見ることにしました。
先ずは操作性から元の環境に近づけるべくFoxy Gesturesを導入。
スクリプトをどうしたものかと考えていたら
Firefox 57(Quantum)で動かなくなった「FireGestures」の代替に選ばれたのは、「Foxy Gestures」と往年の名ソフトでした。
でサンプルスクリプトまで解説付きで公開してくれてるので、ありがてぇありがてぇとばがりにパク、もとい参考に手をいれてみましたw
var src = data.element.mediaInfo && data.element.mediaInfo.source; var lnk = data.element.linkHref || src; if (src) { if ((src.split('/')[2] == 'pbs.twimg.com') && ((src.split('/')[3] == 'media') || (src.split('/')[3] == 'card_img'))) { if (mouseDown.ctrlKey) { src = lnk; } src = src.replace( /small|([0-9]+x[0-9]+|large|medium|thumb|orig).*$/, 'orig'); } else { if (!(mouseDown.ctrlKey)) { src = lnk; } } } else { src = lnk; } if (src) { executeInBackground((src, alt) => { getActiveTab(tab => browser.tabs.create({ url: src, index: tab.index, active: !(alt) })); }, [ src, mouseDown.altKey ]); }
ということで、FireGestures:Twitterの画像を原寸大で新しいタブで開くはQuantumでも解決と。
それにしてもブックマークのタグ検索とスマートブックマークのqueryを編集するインターフェイスがない(なんでURIを隠すのか)のがなぁ……
ずいぶんご無沙汰してましたが、覚書はブログの方が便利(ググれるのでw)なもので腱鞘炎をおして更新っとw
年をとるとあっちこっちガタガタで困ったものです。
追記(10/21)
画像のリンク先(大きな画像がリンクされてたりとか)も同じジェスチャーで開きたいと思ったので、ちょこっと書き足し
画像でなくてもリンク先を新しいタブに開くのでなかなか重宝している。
追記(10/24)
Ctrlキーを押しながらジェスチャーすると改造前のようにジェスチャー上の画像を新しいタブに開きます。
これで元のソースを残す必要もないので上書きしました。
追記(10/29)
altキーでバックグラウンドで開くようになります。
一般設定で「Altキーを押している間はジェスチャーを無効にする」のチェックを外す必要があります。
本当はバックグラウンドで開くときはアクティブタブの右に開きたいのですが、続けてバックグラウンドで開くときに先に開いたタブの右に開く方法が分からない(中クリックでリンク先を次々に開くのと同じようにできない)ので今は左に開くようにしています。
追記(2020/1/29)
Twitterの仕様が変わったので対応
でもサムネイルからオリジナルサイスを開くにはCtrlキーを押しながらジェスチャーする必要があります。
Ctrlキーを押したくないという方は
一行目の
src = data.element.linkHref;
と三行目の
src = data.element.mediaInfo && data.element.mediaInfo.source;
を入れ替えるといいです。
追記(2020/2/3)
やはり、いちいちCtrlキーを押すのが面倒だったのでw
・Twitterの画像上でジェスチャーするとオリジナルサイズの画像を新しいタブに開く
(この時Ctrlキーが押されていれば画像に設定されたリンク先を新しいタブに開く)
・それ以外の文字や画像リンク上でジェスチャーするとリンク先を新しいタブに開く
(この時Ctrlキーが押されていればジェスチャーした時の画像を新しいタブに開く)
なんだか説明すると複雑ですが元のスクリプトより快適に使えてます。
追記(2020/2/11)
url変換部分にelseいらんよなぁって削除
var lnk = data.element.linkHref;
if (!(lnk)) {
lnk = src;
}
が
var lnk = data.element.linkHref || src;
一行で済むと知ってさっそく置き換えw
レンズヒーター購入 ― 2017/12/26 13:45
今まで自作のレンズヒーターで星空を撮ってましたけれど、ニクロム線はピンポイントの加熱になるので、レンズを十分に温めるにはニクロム線の温度を少々高め(50℃超え)にしなければならず、このような加熱がレンズボディにいい訳ないとアルミでおおったMarkⅡはアルミ面が大きすぎて失敗、温度をさらに上げてアルミ面を小さくしたMarkⅢでギリ実用可といった具合で、PTCリボンヒーターかCNTECを素材にした面発熱のレンズヒーター欲しいなぁ……などと思ってました。
PTCリボンヒーター、CNTECの利点は面発熱なのであまり温度を上げなくてもレンズを十分に温められるだけでなく、必要な温度に達したらそれ以上加熱されないのでオーバーヒートの心配がない点にあります。
だからと言って、個人でこれらの材料を特注するにはお金がかかりすぎますし、ニクロム線ヒーターもMarkⅣ(友達に0.58A版を作りました)以降これといったアイディアもなく、ファブリックヒーター使ったレンズヒーターどっか売ってないかなぁ……などと思ってました。
ファブリックヒーターのレンズヒーターが売ってなかったわけではないのですけれど、高いし(ちょっと前まで9.8k)マジックテープが弱すぎると評判が悪いので二の足を踏んでたところ
Vixen カメラアクセサリー レンズヒーター360 ブラック 35411-5タイムセールで炭繊維発熱材(きっと炭素繊維の間違いだよなぁ)を使ったヒーターを知りました。しかも1.6k未満(タイムセールでは240円引き)
COOWOO カメラレンズヒーター 結露対策 レンズ霜よけ 外径59mm~100mm 天体望遠鏡/Canon/Sony/Nikon/SIGMA/SAMYANG/TAMRON デジタル一眼レフカメラ対応?USBケ-ブル1.5M?巻きつけ型 レンズウォーマー 【改良版】 星空撮影 天体観測 夜景撮影ええ、ポチりましたともw
そしてクリスマスにやってきたw
結論から言うとSAMYANG 14mm F2.8には少し幅が広すぎて使えません(ヒーターが写り込む)。
フードギリギリに付けてもマウントが隠れてしまう。あと1cm幅が狭ければ……
TAMRON SP 15-30mm F2.8 Di VC USDなら大丈夫ですが、これで星は撮らないので……
SAMYANG XP 14mm F2.4なら少し長いみたいだしいいのかなぁ。
SAMYANG 14mm F2.8を使って加熱テストをしたところ、レンズ表面を気温より12℃以上高くすることができましたので、雪の中の撮影でも十分な性能を発揮すると思われます。
経過分 | 気温 | レンズ表面 | ヒーター表面 |
---|---|---|---|
1 | 3.8 | 5.0 | 12.0 |
5 | 3.8 | 5.6 | 14.8 |
15 | 3.9 | 7.0 | 14.5 |
30 | 4.0 | 9.0 | 16.2 |
45 | 4.1 | 10.8 | 16.6 |
60 | 4.2 | 12.8 | 18.8 |
90 | 4.6 | 14.4 | 20.4 |
120 | 5.0 | 16.8 | 22.0 |
150 | 5.6 | 18.4 | 22.0 |
180 | 6.0 | 18.6 | 22.8 |
最終的にヒーター内面が35.5℃、レンズボディが34.5℃で、レンズヒーターとしては良いものだと思います。
消費電力が5Wというのは痛いなぁ。小さいモバイルバッテリーじゃ使い物にならないわ。
まあ大きいのも持ってるからいいけどさ
Amazonの発注数ですか?
タイヤの交換や当て逃げされた車の修理で財政難であまり伸びていません。
130件も発注しておいでどの口が言うかという突っ込みが聞こえてきそうな今日この頃です。
最近のコメント