Форум русскоязычного сообщества Ubuntu


Увидели сообщение с непонятной ссылкой, спам, непристойность или оскорбление?
Воспользуйтесь ссылкой «Сообщить модератору» рядом с сообщением!

Автор Тема: отправка сообщений из консоли в ICQ  (Прочитано 10193 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн fisher74

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 13761
    • Просмотр профиля
Re: отправка сообщений из консоли в ICQ
« Ответ #45 : 27 Октября 2011, 12:47:27 »
Покажи пример команды выдающей в результате кривую кириллицу, на стареньком смарте тоже оказалась версия 1041.
Попробую пофиксить проблему

Оффлайн djserg-minyar

  • Автор темы
  • Любитель
  • *
  • Сообщений: 68
    • Просмотр профиля
Re: отправка сообщений из консоли в ICQ
« Ответ #46 : 27 Октября 2011, 13:30:46 »
echo 'message 161007094 "вот тут пишем текст сообщения русскими буквами"' > /root/.licq/licq_fifoдля примера это в консоли запускаю.

кстати локаль в консоли utf8

# locale
LANG=ru_RU.UTF8
LC_CTYPE="ru_RU.UTF8"
LC_NUMERIC="ru_RU.UTF8"
LC_TIME="ru_RU.UTF8"
LC_COLLATE="ru_RU.UTF8"
LC_MONETARY="ru_RU.UTF8"
LC_MESSAGES=POSIX
LC_PAPER="ru_RU.UTF8"
LC_NAME="ru_RU.UTF8"
LC_ADDRESS="ru_RU.UTF8"
LC_TELEPHONE="ru_RU.UTF8"
LC_MEASUREMENT="ru_RU.UTF8"
LC_IDENTIFICATION="ru_RU.UTF8"
LC_ALL=

так же поставил и cp1251 и koi8r,
# locale -a
C
en_US.utf8
POSIX
ru_RU.cp1251
ru_RU.koi8r
ru_RU.utf8

пробовал менять локаль в консоли, но эффекта никакого не дало  :-\

Оффлайн fisher74

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 13761
    • Просмотр профиля
Re: отправка сообщений из консоли в ICQ
« Ответ #47 : 27 Октября 2011, 13:35:01 »
Нашёл в чём проблема.
Поправил админский блок с учётом кодировок
        if [ $1 = xxxxxxxxx -o $1 = yyyyyy ];then
             message_command=`grep ":#" $DIR/.licq/history/$user.Licq.history | iconv -f cp1251 -t utf8 | cut -s -d \# -f 2- `
            if [ ! -z "$message_command" ];then
                echo "~#$message_command"  | iconv -f utf8 -t cp1251;
                $message_command 2>&1 | iconv -f utf8 -t cp1251 ;
                rm -f $DIR/.licq/history/$1.Licq.history
                exit 0;
            fi
        fi
 

Теперь кириллицу скрипт отрабратывает нормально

Пользователь решил продолжить мысль 27 Октября 2011, 13:36:43:
Для Вашего случая скрипт не при чём, потому как обращаетесь напрямую в fifo
echo 'message 161007094 "вот тут пишем текст сообщения русскими буквами"' | iconv -f utf8 -t cp1251 > /root/.licq/licq_fifo
« Последнее редактирование: 27 Октября 2011, 13:36:43 от fisher74 »

Оффлайн djserg-minyar

  • Автор темы
  • Любитель
  • *
  • Сообщений: 68
    • Просмотр профиля
Re: отправка сообщений из консоли в ICQ
« Ответ #48 : 27 Октября 2011, 13:39:08 »
мня было так
if [ $1 = 161007094 -o $1 = 161007094 ];then
            message_command=`grep ":#" $DIR/.licq/history/$user.Licq.history | cut -s -d \# -f 2- `
            if [ ! -z "$message_command" ];then
                echo "~#$message_command";
                $message_command 2>&1 | iconv -f utf8 -t cp1251 ;
                rm -f $DIR/.licq/history/$1.Licq.history
                exit 0;
            fi
        fi

щас попробу твой код

Пользователь решил продолжить мысль 27 Октября 2011, 13:49:04:
отлично, с перекодировкой в конце текстовой строки заработало  :D,
спасибо  :coolsmiley:
« Последнее редактирование: 27 Октября 2011, 13:49:04 от djserg-minyar »

Оффлайн djserg-minyar

  • Автор темы
  • Любитель
  • *
  • Сообщений: 68
    • Просмотр профиля
Re: отправка сообщений из консоли в ICQ
« Ответ #49 : 05 Марта 2012, 07:07:28 »

Если не затруднит можно попросить ещё одну задачку решить:
вообщем хочется добавить в ваш скрипт

  if [ $1 = xxxxxxxxx -o $1 = yyyyyy ];then
             message_command=`grep ":#" $DIR/.licq/history/$user.Licq.history | iconv -f cp1251 -t utf8 | cut -s -d \# -f 2- `
            if [ ! -z "$message_command" ];then
                echo "~#$message_command"  | iconv -f utf8 -t cp1251;
                $message_command 2>&1 | iconv -f utf8 -t cp1251 ;
                rm -f $DIR/.licq/history/$1.Licq.history
                exit 0;
            fi
        fi

следующие команды,
например вводишь ip адрес (192.168.0.1), а он вводит команду на сервер arp -na 192.168.0.1 и выводит в ответ мак адрес данного IP.
как добавить эти данные в ваш скрипт не соображу, пробовал делать так

        if [ $1 = 161007094 -o $1 = 161007094 ];then
        message_command=`grep ":#" $DIR/.licq/history/$user.Licq.history | cut -s -d \# -f 2- `
            if [ ! -z "$message_command" ];then
                echo "~#$message_command"  | iconv -f utf8 -t cp1251;
               $message_command 2>&1 | iconv -f utf8 -t cp1251 ;
                rm -f $DIR/.licq/history/$1.Licq.history
                exit 0;
            fi

             message_command=`grep ":192.168." $DIR/.licq/history/$user.Licq.history | cut -s -d \# -f 2-$
            if [ ! -z "$message_command" ];then
               echo "~#arp -na $message_command"  | iconv -f utf8 -t cp1251;
                $message_command 2>&1 | iconv -f utf8 -t cp1251 ;
                rm -f $DIR/.licq/history/$1.Licq.history
                exit 0;
            fi
          fi
        fi

но в ответ начинают все пустые сообщения приходить.

Оффлайн fisher74

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 13761
    • Просмотр профиля
Re: отправка сообщений из консоли в ICQ
« Ответ #50 : 05 Марта 2012, 11:51:55 »
Естественно. Вы выбираете несуществуюший в строке разделитель #
Попробуйте заменить его на : (на самом деле не лучшая идея, но ...).
message_command=`grep ":192.168." $DIR/.licq/history/$user.Licq.history | cut -s -d \: -f 2-$Но учтите, проверки правильности нет никакой, потому возможны глюки

Оффлайн djserg-minyar

  • Автор темы
  • Любитель
  • *
  • Сообщений: 68
    • Просмотр профиля
Re: отправка сообщений из консоли в ICQ
« Ответ #51 : 05 Марта 2012, 13:39:52 »
вообщем сделал так
 message_command=`grep ":#" $DIR/.licq/history/$user.Licq.history | cut -s -d \# -f 2- `
            if [ ! -z "$message_command" ];then
                echo "~#$message_command"  | iconv -f utf8 -t cp1251;
               $message_command 2>&1 | iconv -f utf8 -t cp1251 ;
                rm -f $DIR/.licq/history/$1.Licq.history
                exit 0;
            fi

        message_command=`grep ":!" $DIR/.licq/history/$user.Licq.history | cut -s -d \! -f 2- `
            if [ ! -z "$message_command" ];then
               echo "~#192.168.$message_command"  | iconv -f utf8 -t cp1251;
                ping -c 2 192.168.$message_command 2>&1 | iconv -f utf8 -t cp1251 ;
                arp -na 192.168.$message_command 2>&1 | iconv -f utf8 -t cp1251 ;
                rm -f $DIR/.licq/history/$1.Licq.history
                exit 0;
            fi
          fi

теперь при вводе !1.63
он сначала пингает 192.168.1.63
потом выводит его мак.
собственно все на этом пока хватит)))
спасибо.

Буду новые идеи придумывать.

Оффлайн djserg-minyar

  • Автор темы
  • Любитель
  • *
  • Сообщений: 68
    • Просмотр профиля
Re: отправка сообщений из консоли в ICQ
« Ответ #52 : 28 Сентября 2012, 11:23:46 »
Новый вопрос,
есть форма на html
(Нажмите, чтобы показать/скрыть)
к нему попытался сделать обработчик на php, чтобы полученые данные отправлялись в licq
Цитировать
<?php
if ($_REQUEST['message'])
{
    $message = $_REQUEST['message'];
    $subject = $_REQUEST['replyto'].' '.' '.' '.'Tel.:'.' '.' '.' '.$_REQUEST['subject2'];
    $mail_from = $_REQUEST['subject1'];
    $replyto = $_REQUEST['subject1'];
    $sendcmd = sprintf("echo \'message ICQ_NUM \"%s %s\"\' | iconv -f utf8 -t cp1251 > /root/.licq/licq_fifo",$replyto,$subject);
    $send_msg = exec($sendcmd);
    exit;
}
Header('Location: question.html');
?>

но данные не передаются в icq(((
может кто силен в php, подскажет что не так

Оффлайн Vitsliputsli

  • Старожил
  • *
  • Сообщений: 1293
    • Просмотр профиля
Re: отправка сообщений из консоли в ICQ
« Ответ #53 : 28 Сентября 2012, 16:20:10 »
Смотрите что в логах, скорее всего здесь /var/log/apache2/error.log. Вероятно нет прав для записи в /root/.licq/licq_fifo.

Оффлайн djserg-minyar

  • Автор темы
  • Любитель
  • *
  • Сообщений: 68
    • Просмотр профиля
Re: отправка сообщений из консоли в ICQ
« Ответ #54 : 29 Сентября 2012, 05:48:37 »
Смотрите что в логах, скорее всего здесь /var/log/apache2/error.log. Вероятно нет прав для записи в /root/.licq/licq_fifo.
В логах смотрел все чисто, а вот насчет прав я даже не знаю как это проверить.
Пробовал в рутовую группу данный файл загонять, результата не принесло.

Оффлайн Vitsliputsli

  • Старожил
  • *
  • Сообщений: 1293
    • Просмотр профиля
Re: отправка сообщений из консоли в ICQ
« Ответ #55 : 30 Сентября 2012, 09:44:07 »
Апач пишет от пользователя www-data, а не от root.
Странно что в логах ничего нет, должно быть, может php пишет в другой лог...

Оффлайн djserg-minyar

  • Автор темы
  • Любитель
  • *
  • Сообщений: 68
    • Просмотр профиля
Re: отправка сообщений из консоли в ICQ
« Ответ #56 : 30 Сентября 2012, 15:24:50 »
Апач пишет от пользователя www-data, а не от root.
Странно что в логах ничего нет, должно быть, может php пишет в другой лог...
пробовал ставить и данные права, эффекта ноль

Логи об ошибках писались куда надо, просто щас там вообще никаких ошибок не отображается об этих действиях/

Оффлайн Vitsliputsli

  • Старожил
  • *
  • Сообщений: 1293
    • Просмотр профиля
Re: отправка сообщений из консоли в ICQ
« Ответ #57 : 30 Сентября 2012, 16:09:17 »
Цитировать
    $sendcmd = sprintf("echo \'message ICQ_NUM \"%s %s\"\' | iconv -f utf8 -t cp1251 > /root/.licq/licq_fifo",$replyto,$subject);
экранировать не нужно

Оффлайн djserg-minyar

  • Автор темы
  • Любитель
  • *
  • Сообщений: 68
    • Просмотр профиля
Re: отправка сообщений из консоли в ICQ
« Ответ #58 : 30 Сентября 2012, 17:01:24 »
вставил строку, получил следующую ошибку
[Sun Sep 30 18:56:36 2012] [error] [client 192.168.0.253] PHP Notice:  Undefined variable: replyto in /home/share/www/dostanu/mailer.php on line 5, referer: http://192.168.0.1:8080/question.html

убрал в коде
$sendcmd = sprintf("echo \'message ICQ_NUM \"%s %s\"\' | iconv -f utf8 -t cp1251 > /root/.licq/licq_fifo",$replyto,$subject);
$replyto,

теперь ощибка выглядит так
[Sun Sep 30 18:59:16 2012] [error] [client 192.168.0.253] PHP Parse error:  syntax error, unexpected T_VARIABLE in /home/share/www/dostanu/mailer.php on line 5, referer: http://192.168.0.1:8080/question.html

Оффлайн djserg-minyar

  • Автор темы
  • Любитель
  • *
  • Сообщений: 68
    • Просмотр профиля
Re: отправка сообщений из консоли в ICQ
« Ответ #59 : 01 Ноября 2012, 13:48:20 »
Вообщем забил на php, не понадобилась данная функция, щас появилась другая задача.
Необходимо запускать скрипт в shell по команде от licq
(Нажмите, чтобы показать/скрыть)
когда отправляю ему mik
должен выполнять скрипт под значением MIK
Но почему то это не происходит, licq выдает такой ответ

~#test
/root/.licq/autoreply.sh: 55: total: not found

 

Страница сгенерирована за 0.021 секунд. Запросов: 21.