
Уведомление о том, находится ли контакт в сети/офлайн или нет, можно изменить с помощьюПараметры 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
явно указано, включен он или нет.
Итак, мой вопрос заключается в следующем:Можно ли автоматически включать/выключать уведомления?
Важно отметить, что Offline
это Online
происходит в XML
файле только один раз.
Пока что все, что я могу сделать, это:
sed -i config.xml -e '197s!<Online>1</Online>!<Online>0</Online>!'
где 197
находится номер строки (который зависит от регистра, так что это довольно плохо), и где я не проверяю текущий статус уведомления, я только отключаю его.
Короче говоря, я хотел бы автоматически перейти 0
на 1
(или 1
на 0
) для обеих линий.
решение1
Похоже, это работа для скрипта bash/shell.
Я бы создал простой оператор if с помощью grep для поиска в файле 1 или 0, а затем заменил бы их с помощью команды, которая у вас есть. Скажем:
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 или что-то в этом роде.