Skype 通知ステータスを切り替える

Skype 通知ステータスを切り替える

連絡先がオンライン/オフラインかどうかの通知は、Skype オプションまたは を介し​​て~/.skype/your_skype_id/config.xml。このファイルでは、選択した内容に応じて、次の行が見つかります。

<Notify>
  <Chat>0</Chat>
  <Offline>1</Offline>
  <Online>1</Online>
</Notify>

ここで、 <Offline>n</Offline>(それぞれ<Online>n</Online>)は「連絡先がオフラインになりました」(それぞれ「連絡先がオンラインになりました」) オプションがあり、nそれがオンかどうかが明確に示されています。

したがって、私の質問は次のとおりです。通知を自動的にオン/オフに切り替えることはできますか?

ファイルに 1 回だけ表示されるOfflineことに注意することが重要です。OnlineXML

今のところ私ができることは次の通りです:

sed -i config.xml -e '197s!<Online>1</Online>!<Online>0</Online>!'

行番号はどこに197ありますか (大文字と小文字が区別されるため、かなり悪いです)。通知の既存のステータスを確認しない場合は、通知をオフにするだけです。


つまり、両方の行を(または)に自動的0に変更したいのです。110

答え1

これは bash/shell スクリプトの仕事のように思えます。

私がやりたいのは、grep を使用してファイル内で 1 または 0 を検索し、コマンドを使用してそれらを置き換える簡単な if ステートメントを作成することです。次のようにします。

if grep -q "<Online>1</Online>" "config.xml"; then
        echo "Statement Returned True, Will now execute"
        sed -i config.xml -e '197s!<Online>1</Online>!<Online>0</Online>!'

elif grep -q "<Online>0</Online>" "config.xml"; then
        echo "Statement Returned True, Will now execute"
        sed -i config.xml -e '197s!<Online>0</Online>!<Online>1</Online>!'
fi

if grep -q "<Offline>1</Offline>" "config.xml"; then
        echo "Statement Returned True, Will now execute"
        sed -i config.xml -e '197s!<Online>1</Online>!<Online>0</Online>!'

elif grep -q "<Offline>0</Offline>" "config.xml"; then
        echo "Statement Returned True, Will now execute"
        sed -i config.xml -e '197s!<Online>0</Online>!<Online>1</Online>!'
fi

そしてそれを run.sh か何かに入れます。

関連情報