____,,,,,,,,,,,,,,,__ __,,,,,,,,,,,,,,,____
_,,ooOO@@@@@O***OO@@@@@@@@@@@Ooo,,, ,,,ooO@@@@@@@@@@@OO***O@@@@@OOoo,,_
@''`` /''``` ```''''@@@@@@@@@@Ooo,, ,,ooO@@@@@@@@@@''''``` ```''\ ``''@
`@, / ____...'@@@@@Ooo,, ,,ooO@@@@@'...____ \ ,@`
`@o,| ,`xxxxxxxxxxxxxo@@@@@Oo,, ,,oO@@@@@oxxxxxxxxxxxxx`, |,o@`
`@@, ,`xxxxxxxxxxxxxxxxxx\'o@@@@Oo,, ,,oO@@@@o'/xxxxxxxxxxxxxx###x`, ,@@`
`@@o, /xxxxxxxxxxxxxxxxx###x\ '`o@@@@@Oo, ,oO@@@@@o`' /xxxxxxxxxxxxxx#####xx\ ,o@@`
`@@@o, /xxxxxxxxx xx#####x\ '`o@@@@@Oo, ,oO@@@@@o`' /xxxxxxxx xx###xxxx\ ,o@@@`
`@@@@o, |xxxxxxxx # x###xxx| `o@@@@o, ,o@@@@o` |xxxxxxx # xxxxxxxx| ,o@@@@`
`@@@@o, |xxx#xxxx , xxxxxxx| `o@@@o, ,o@@@o` |xxx#xxx , xxxxxxxx| ,o@@@@`
'@@@@@@o, ,xxx##xxxxx ` xxxxxxxxx| `o@@o, ,o@@o` |xx###xxxx ` xxxxxxxxxx, ,o@@@@@@'
'@@@@@@@@@@xx####xxxxxxxxxxxxxxxx/ 'o@o, ,o@o' \xx####xxxxxxxxxxxxxxxx@@@@@@@@@@'
`'@@@@@@@@@@@@##xxxxxxxxxxxx/ | `oo, ,oo` | \xx#####xxxxxxx@@@@@@@@@@@@'`
`''@@@@@@@@@@@@@xxxxx,' / `o, ,o` \ ',xxxxx@@@@@@@@@@@@@''`
```''''@@@@@@@@@@@@oo,,, ,,,oooo@@@@@ @@@@@oooo,,, ,,,oo@@@@@@@@@@@@''''```
```''''@@@@@@@@@@@@@@@@@@''``` ```''@@@@@@@@@@@@@@@@@@''''```
Сентябрь 23, 2009
В общем, не мудрствуя лукаво, на правах заметки.
#!/bin/bash
USER="Username" #without "@gmail.com"
PASS="Password" #somehow, passwords containing & symbol do not work well here
FEED_ID="user/[0-9]+/state/com.google/reading-list"
SID=`curl -s https://google.com/accounts/ClientLogin -d Email="${USER}" -d Passwd="${PASS}" -d source=gReader-Curl -d service=reader | grep '^SID='`
TOKEN=`curl -s -G "https://www.google.com/reader/api/0/token" --header "Cookie:${SID}"`
COUNT=`curl -s -G 'https://www.google.com/reader/api/0/unread-count?all=true' --header "Cookie: ${SID}; T=${TOKEN}" | sed -rn 's:.*<string name="id">'"${FEED_ID}"'</string><number name="count">([0-9]*)</number>.*:\1: p'`
[ "x${COUNT}" == "x" ] && echo "0" || echo "${COUNT}"
И где почитать про API: Unofficial Google Reader API
Связанные посты:
- Вставка в pastebin из командной строки
- Google Reader Shared
- Авотматизация скачивания с Rapidshare
- Микроменеджмент логов или удобные logrotate и syslog-ng
RSS-лента комментариев к этой записи.
Powered by WordPress

Krasnoglazy Blog by Nikolay "Livid" Yakimov is licensed under a Creative Commons Attribution-Noncommercial-Share Alike 3.0 Unported License.
А что дальще? я как понимаю этот скрипт скинуть в bin/bash/ а под каким названием и как его потом вызвать к действию? Извините за такие вопросы, но я еще только учусь :)
Комментарий by Андрей Воровев — Сентябрь 23, 2009 @ 08:43
‘PASS=»Password» #somehow, passwords containing & symbol do not work well here’
Чтобы использовать спец символы, можно взять их в одинарные кавычки вместо двойных
PASS=’Password’
Комментарий by GiNeR — Сентябрь 23, 2009 @ 09:31
Я немного изменил
http://pastebin.com/f756a4f1f
ибо нефиг без необходимости переменные плодить
Комментарий by muhas — Сентябрь 23, 2009 @ 11:09
@muhas:
Ну тогда уж можно вообще без переменных
Перенос строки таки нужен.
Действительно, токен для операций чтения брать не нужно, по более внимательному чтению API. Еще немного возни с API показали, что вообще-то единожды полученый SID можно использовать довольно продолжительное время, и получать его заново каждый раз тоже не только не имеет смысла, но может быть и не полезно. Но при такой логике, конечно, придется таки плодить переменные, красивый однострочник не получится. Хотя можно попробовать на SED’е написать что-то вроде условных ветвей.
ЗЫ. А без переменных читаемость кода резко падает. И кстати они все равно существуют только в пределах исполняющего шелла, так что по факту разница минимальная, что с ними, что без.
ЗЗЫ. Я кстати слажал в том первом варианте, в SED’овском скрипте первый матч на строку не нужен, ибо она все равно одна.
@Андрей:
Сохранить куда-нибудь под каким-нибудь именем, исправить на свои значения USER и PASS, сделать chmod +x /path/to/script и пускать как /path/to/script. Радоваться.
@GiNeR:
Зря Вы считаете, что я не знаю разницы между одинарными и двойными кавычками. Амперсанд в двойных кавычках не нуждается в экранировании. Однако, похоже, что ампарсандом «давится» сам гугл, не дешифруя & и трактуя & как разделитель полей. Стоило бы сперва попробовать, чем давать пустые советы.
Комментарий by Livid — Сентябрь 23, 2009 @ 13:37