Alternar status de notificação do Skype

Alternar status de notificação do Skype

Ser notificado se um contato aparece online/offline ou não pode ser alterado através doOpções do Skypeou através do ~/.skype/your_skype_id/config.xml. Neste arquivo, dependendo do que você escolheu, você pode encontrar as seguintes linhas:

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

onde <Offline>n</Offline>(resp. <Online>n</Online>) corresponde ao"Contato ficou off-line"(resp."O contato ficou online") e onde nobviamente indica se está ativado ou não.

Assim minha pergunta é a seguinte:É possível ativar/desativar as notificações automaticamente?

É importante observar isso Offlinee Onlineaparecer apenas uma vez no XMLarquivo.

Até agora tudo que posso fazer é:

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

onde 197está o número da linha (que depende de maiúsculas e minúsculas, então é muito ruim) e onde não verifico o status existente da notificação, apenas desativo.


Resumindo, o que eu gostaria de fazer é mudar 0para 1(ou 1para 0) automaticamente para ambas as linhas.

Responder1

Isso parece um trabalho para um script bash/shell.

O que eu faria é criar uma instrução if simples usando grep para pesquisar 1 ou 0 no arquivo e substituí-los usando o comando que você possui. Dizer:

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

E coloque isso em um run.sh ou algo assim.

informação relacionada