私はFirefoxでPythonコマンドを使用してこれを行いましたが、最近変更されたため、これ以上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でこれを行う方法を教えてくれる人はいますか?
ノート:私はPythonを知りません。このコマンドをどこかで見つけてbashで使用しました!
答え1
私も同じ問題があり、修正しようと努力して解決し、ここに私の解決策を投稿します(とても悪かった)。
私はこれを行うためにwmctrl(代わりにxpropを使うことができます)とxdotoolを使います。以前は、タイトルバーにURLが表示されるように拡張機能を使用していました(xpropまたはwmctrlを介してアクセスできます)。実際には「きれい」ではありませんが、どちらの方法も非常にうまく機能します。
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を処理します。
誰かが解決策を見つけたら、実際の解決策を見たいです。
答え2
このスクリプトが動作しているため、実行後に発生するエラーを教えてください。ここにも同じ質問が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
私の場合(Mozilla Firefox 44.0、openSUSE 13.1)ファイル/home/username/.mozilla/firefox/xxxxx.default/sessionstore.js
は。recovery.js
~/.mozilla/firefox/*.default/sessionstore-backups/recovery.js
Firefox