私はpythonコマンドを使用してFirefoxでこれを行っていましたが、最近何かが変更され、URLを取得できなくなりました!
以前はFirefoxで機能していたもの:
#!/bin/bash
current_tab_num () {
python2 <<< $'import json\nf = open("/home/username/.mozilla/firefox/xxxxx.default/sessionstore.js", "r")\njdata = json.loads(f.read())\nf.close()\nprint str(jdata["windows"][0]["selected"])'
}
current_tab_url () {
sed -n "$(current_tab_num)p" <(python2 <<< $'import json\nf = open("/home/username/.mozilla/firefox/xxxxx.default/sessionstore.js", "r")\njdata = json.loads(f.read())\nf.close()\nfor win in jdata.get("windows"):\n\tfor tab in win.get("tabs"):\n\t\ti = tab.get("index") - 1\n\t\tprint tab.get("entries")[i].get("url")')
}
current_tab_url
誰でも私にこれをFirefoxおよび/またはchromeで行う方法を教えてもらえますか?
[〜#〜] note [〜#〜]:Pythonが理解できないので、どこかでコマンドを見つけましたそしてそれらをバッシュで使用しました!
私は同じ問題を抱えており、それを解決しようとしているときに問題を解決したので、私の解決策(かなり悪い)をここに投稿します。
これを行うには、wmctrl(代わりにxpropを使用できます)とxdotoolを使用します。以前は、拡張機能を使用してURLをタイトルバーに表示しました(その後、xpropまたはwmctrlを介してURLにアクセスできます)。どちらの方法も、実際には「クリーン」ではありませんが、かなりうまく機能します。
id=$(wmctrl -l | grep -oP "(?<=)(0x\w+)(?=.*Chromium)") //Put here the regex for the browser you use
xdotool key --window $id "ctrl+l"
xdotool key --window $id "ctrl+c"
これで、クリップボードにURLがあります。次に、xclipを使用してURLを操作します。
誰かがこれを見つけたら、これに対する実際の解決策を見たいです。
スクリプトが私のために働いているので、実行後に発生することをエラーに教えてください。同じ質問があり、php
とPerl
を使用して回答されています。
Pythonの主要部分なので、ここに純粋にpythonスクリプトを示します。同じことを行うには、同様に試してください。
#!/usr/bin/python
import json
f = open("recovery.js","r")
jdata = json.loads(f.read())
f.close()
number_of_selected_tab = jdata["windows"][0]["selected"]
tab_number = 1
for win in jdata.get("windows"):
for tab in win.get("tabs"):
if number_of_selected_tab == tab_number :
tab_index = tab.get("index") - 1
print tab.get("entries")[tab_index].get("url")
tab_number = tab_number + 1
交換しました/home/username/.mozilla/firefox/xxxxx.default/sessionstore.js
ファイルrecovery.js
。私の場合(Mozilla Firefox 44.0、openSUSE 13.1)、ファイルは~/.mozilla/firefox/*.default/sessionstore-backups/recovery.js
。最後に重要なことですが、Firefox
の2つのインスタンスを実行している場合、スクリプトは機能しません。