Комментарии 23
Автор молодец, а для интересующихся like me подробности о команде curl ( rus-linux.net/MyLDP/internet/curlrus.html )
rus-linux.net/MyLDP/internet/curlrus.html
rus-linux.net/MyLDP/internet/curlrus.html
+4
CURL — это сила!!! спасибо за пост!)
0
Изящно!
+1
Я-бы не советовал класть сей скрипт в /usr/local/bin, если в системе несколько пользователей, лучше положить куда-нибудь в ~/bin, ведь в скрипте указаны логин и пароль… да, и ещё права выставить лучше 700
+7
А я иногда пишу в тви из vim, с помощью плагина twitvim. Там же можно просматривать и таймлайн, и реплаи, постить строку из буффера или весь буффер полностью.
+4
Вот к Хабру прикрутить такое: постить и получать фидбэк.
+1
прикольна))
-3
Добавляем проверку на 140 символов:
len=`echo "$*" | wc -c` if [ $len -gt 140 ]; then echo "Too much" exit 1 fi
+3
В API к Twitter есть некоторые команды с curl: apiwiki.twitter.com/REST+API+Documentation
+1
А какая кодировка должна быть при отправке? Если системная локаль UTF-8 — русские буквы не отображаются нормально.
0
Есть одна проблема в скрипте, при добавлении записи у которой в конце восклицательный знак, скрипт не хочет работать
0
А можно сделать так:
Кидаем скрипт куда-нибудь в /usr/local/bin и запускаем вот так:
#!/bin/bash
len=`echo $3 | wc -c`
if [ $len -gt 140 ]; then
echo "Too much"
exit 1
fi
curl --basic --user $1:$2 \
--data status=$3 'http://twitter.com/statuses/update.xml' -o /dev/null;
Кидаем скрипт куда-нибудь в /usr/local/bin и запускаем вот так:
$ tw user pass 'Тест'
+1
Лучше сделать вот так, тогда скрипт для всех подойдет и не надо каждый раз набирать логин/пасс
#!/bin/bash
FILE="$HOME/.twitter"
if [! -f $FILE ]; then
echo "$FILE: does not exists."
echo «Please create this file with following contents:»
echo "[login]"
echo "[pass]"
echo «Where [login] and [pass] is your twitter login/password.»
echo «Make sure you DO NOT have an empty line in the end of file and/or spaces at start/end of the lines or authentication may fail.»
exit 1
elif [! -r $FILE ]; then
echo "$FILE: can not be read"
exit 2
fi
if [ `stat -c %a $FILE` -ne 600 ]; then
echo «WARNING: file chmod is not safe! Will try to fix.»
exec chmod 0600 $FILE
fi
LOGIN=`head -n 1 $FILE` # quick'n'dirty =)
PASSWORD=`tail -n 1 $FILE`
MSG="$*"
MSGLEN=`echo $3 | wc -c`
if [ $MSGLEN -gt 140 ]; then
echo «Too much text»
exit 3
fi
curl --basic --user $LOGIN:$PASSWORD \
--data status=$MSG 'http://twitter.com/statuses/update.xml' -o /dev/null;
+1
Небольшая поправочка:
MSGLEN=`echo $MSG | wc -c`
0
Люди добрые, объясните, почему строчка
curl --basic --user twitteruser:123456789 \ --data status=«test post» 'http://twitter.com/statuses/update.xml' -o /dev/null;
мгновенно отправляет пост в твиттер а вышеприведенный скрипт с учтённой правкой выделывается.
# ./tw.sh test post
еще и думает около минуты…
curl --basic --user twitteruser:123456789 \ --data status=«test post» 'http://twitter.com/statuses/update.xml' -o /dev/null;
мгновенно отправляет пост в твиттер а вышеприведенный скрипт с учтённой правкой выделывается.
# ./tw.sh test post
curl: (6) Couldn't resolve host ' --data'
curl: (6) Couldn't resolve host 'status=test'
<?xml version=«1.0» encoding=«UTF-8»?>
/statuses/update.xml
This method requires a POST.
еще и думает около минуты…
0
Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.
Bash и Twitter