Красноглазый блог

Тогда твоих зрачков опалы,
Как два фонарика, горят,
И ты во мгле в мой взгляд усталый
Свой пристальный вперяешь взгляд.
© Шарль Бодлер
      ____,,,,,,,,,,,,,,,__                                                                                                    __,,,,,,,,,,,,,,,____      
_,,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

Google Reader API: Получаем количество непрочитанных записей

Filed under: BASh,Cheats — Метки: , , — Livid @ 01:15

В общем, не мудрствуя лукаво, на правах заметки.

#!/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

Связанные посты:

  1. Вставка в pastebin из командной строки
  2. Google Reader Shared
  3. Авотматизация скачивания с Rapidshare
  4. Микроменеджмент логов или удобные logrotate и syslog-ng

Комментарии (4) »

  1. А что дальще? я как понимаю этот скрипт скинуть в bin/bash/ а под каким названием и как его потом вызвать к действию? Извините за такие вопросы, но я еще только учусь :)

    Комментарий by Андрей Воровев — Сентябрь 23, 2009 @ 08:43

  2. ‘PASS=»Password» #somehow, passwords containing & symbol do not work well here’
    Чтобы использовать спец символы, можно взять их в одинарные кавычки вместо двойных
    PASS=’Password’

    Комментарий by GiNeR — Сентябрь 23, 2009 @ 09:31

  3. Я немного изменил
    http://pastebin.com/f756a4f1f
    ибо нефиг без необходимости переменные плодить

    Комментарий by muhas — Сентябрь 23, 2009 @ 11:09

  4. @muhas:
    Ну тогда уж можно вообще без переменных

    curl -s -X GET http://www.google.com/reader/api/0/unread-count?all=true --header "Cookie: `curl -s https://www.google.com/accounts/ClientLogin -d Email='USER' -d Passwd='PASSWORD' -d source=curl -d service=reader`"|sed -rn 's:.*<string name="id">user/[0-9]+/state/com.google/reading-list</string><number name="count">([0-9]*)</number>.*:\1: p; Tn; q; :n a\
    0'

    Перенос строки таки нужен.
    Действительно, токен для операций чтения брать не нужно, по более внимательному чтению API. Еще немного возни с API показали, что вообще-то единожды полученый SID можно использовать довольно продолжительное время, и получать его заново каждый раз тоже не только не имеет смысла, но может быть и не полезно. Но при такой логике, конечно, придется таки плодить переменные, красивый однострочник не получится. Хотя можно попробовать на SED’е написать что-то вроде условных ветвей.
    ЗЫ. А без переменных читаемость кода резко падает. И кстати они все равно существуют только в пределах исполняющего шелла, так что по факту разница минимальная, что с ними, что без.
    ЗЗЫ. Я кстати слажал в том первом варианте, в SED’овском скрипте первый матч на строку не нужен, ибо она все равно одна.

    @Андрей:
    Сохранить куда-нибудь под каким-нибудь именем, исправить на свои значения USER и PASS, сделать chmod +x /path/to/script и пускать как /path/to/script. Радоваться.

    @GiNeR:
    Зря Вы считаете, что я не знаю разницы между одинарными и двойными кавычками. Амперсанд в двойных кавычках не нуждается в экранировании. Однако, похоже, что ампарсандом «давится» сам гугл, не дешифруя &amp; и трактуя & как разделитель полей. Стоило бы сперва попробовать, чем давать пустые советы.

    Комментарий by Livid — Сентябрь 23, 2009 @ 13:37

RSS-лента комментариев к этой записи.

Оставить комментарий

Spam protection by WP Captcha-Free

Powered by WordPress
Creative Commons License
Krasnoglazy Blog by Nikolay "Livid" Yakimov is licensed under a Creative Commons Attribution-Noncommercial-Share Alike 3.0 Unported License.