В файле WriteString [] отображается строка с нулевым завершением. Некоторые могут загрузить справку в виде CHM-файла здесь (IrvineLibHelp.exe) .
Немного небрежно сказать «EDX = указывает на строку». EDX просто указывает на адрес памяти, идентифицируемый меткой (здесь: «символ»). WriteString
получит байт для байта из этого местоположения и напишет его как директиву или директиву, независимо от его реального типа или намерения, до тех пор, пока он не встретится с байтом со значением 0. MASM не имеет директивы для определения строки с последними 0, поэтому его нужно добавить вручную:
character BYTE "c", 0
Альтернативный способ печати символа - использовать WriteChar :
...
; print the character
mov al, character
call WriteChar
loop L2
mov ecx, count ; reset our outside loop
loop L1
...
Этот URL даст Вам количество непрочитанных сообщений на канал. Можно тогда выполнить итерации по подаче и подвести итог количеств.
http://www.google.com/reader/api/0/unread-count?all=true
Вот является минималистским примером в Python... анализирующем xml/json, и суммирующий количества оставлен как осуществление для читателя:
import urllib
import urllib2
username = 'username@gmail.com'
password = '******'
# Authenticate to obtain SID
auth_url = 'https://www.google.com/accounts/ClientLogin'
auth_req_data = urllib.urlencode({'Email': username,
'Passwd': password,
'service': 'reader'})
auth_req = urllib2.Request(auth_url, data=auth_req_data)
auth_resp = urllib2.urlopen(auth_req)
auth_resp_content = auth_resp.read()
auth_resp_dict = dict(x.split('=') for x in auth_resp_content.split('\n') if x)
auth_token = auth_resp_dict["Auth"]
# Create a cookie in the header using the SID
header = {}
header['Authorization'] = 'GoogleLogin auth=%s' % auth_token
reader_base_url = 'http://www.google.com/reader/api/0/unread-count?%s'
reader_req_data = urllib.urlencode({'all': 'true',
'output': 'xml'})
reader_url = reader_base_url % (reader_req_data)
reader_req = urllib2.Request(reader_url, None, header)
reader_resp = urllib2.urlopen(reader_req)
reader_resp_content = reader_resp.read()
print reader_resp_content
И некоторые дополнительные ссылки на тему:
Это там . Все еще в бета-версии все же.
В API, опубликованном в [1], поле «токен» должно быть «T»
Вот обновление для этого ответа
import urllib
import urllib2
username = 'username@gmail.com'
password = '******'
# Authenticate to obtain Auth
auth_url = 'https://www.google.com/accounts/ClientLogin'
#auth_req_data = urllib.urlencode({'Email': username,
# 'Passwd': password})
auth_req_data = urllib.urlencode({'Email': username,
'Passwd': password,
'service': 'reader'})
auth_req = urllib2.Request(auth_url, data=auth_req_data)
auth_resp = urllib2.urlopen(auth_req)
auth_resp_content = auth_resp.read()
auth_resp_dict = dict(x.split('=') for x in auth_resp_content.split('\n') if x)
# SID = auth_resp_dict["SID"]
AUTH = auth_resp_dict["Auth"]
# Create a cookie in the header using the Auth
header = {}
#header['Cookie'] = 'Name=SID;SID=%s;Domain=.google.com;Path=/;Expires=160000000000' % SID
header['Authorization'] = 'GoogleLogin auth=%s' % AUTH
reader_base_url = 'http://www.google.com/reader/api/0/unread-count?%s'
reader_req_data = urllib.urlencode({'all': 'true',
'output': 'xml'})
reader_url = reader_base_url % (reader_req_data)
reader_req = urllib2.Request(reader_url, None, header)
reader_resp = urllib2.urlopen(reader_req)
reader_resp_content = reader_resp.read()
print reader_resp_content
Google Reader удалил аутентификацию SID примерно в июне 2010 года (я думаю), использование новой аутентификации из ClientLogin - это новый способ, и он немного проще (заголовок короче). Вам нужно будет добавить service
в данные для запроса Auth
, я заметил, что Auth
не возвращается, если вы не отправляете service = reader
].
Подробнее об изменении метода аутентификации можно прочитать в этой ветке .