| |
| <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> |
| <html><head><title>Python: module gdata.blogger.client</title> |
| </head><body bgcolor="#f0f0f8"> |
| |
| <table width="100%" cellspacing=0 cellpadding=2 border=0 summary="heading"> |
| <tr bgcolor="#7799ee"> |
| <td valign=bottom> <br> |
| <font color="#ffffff" face="helvetica, arial"> <br><big><big><strong><a href="gdata.html"><font color="#ffffff">gdata</font></a>.<a href="gdata.blogger.html"><font color="#ffffff">blogger</font></a>.client</strong></big></big></font></td |
| ><td align=right valign=bottom |
| ><font color="#ffffff" face="helvetica, arial"><a href=".">index</a><br><a href="file:/usr/local/google/home/afshar/src/external-gdata-release/google3/src/gdata/blogger/client.py">/usr/local/google/home/afshar/src/external-gdata-release/google3/src/gdata/blogger/client.py</a></font></td></tr></table> |
| <p><tt>Contains a client to communicate with the Blogger servers.<br> |
| <br> |
| For documentation on the Blogger API, see:<br> |
| <a href="http://code.google.com/apis/blogger/">http://code.google.com/apis/blogger/</a></tt></p> |
| <p> |
| <table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section"> |
| <tr bgcolor="#aa55cc"> |
| <td colspan=3 valign=bottom> <br> |
| <font color="#ffffff" face="helvetica, arial"><big><strong>Modules</strong></big></font></td></tr> |
| |
| <tr><td bgcolor="#aa55cc"><tt> </tt></td><td> </td> |
| <td width="100%"><table width="100%" summary="list"><tr><td width="25%" valign=top><a href="atom.html">atom</a><br> |
| </td><td width="25%" valign=top><a href="gdata.html">gdata</a><br> |
| </td><td width="25%" valign=top></td><td width="25%" valign=top></td></tr></table></td></tr></table><p> |
| <table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section"> |
| <tr bgcolor="#ee77aa"> |
| <td colspan=3 valign=bottom> <br> |
| <font color="#ffffff" face="helvetica, arial"><big><strong>Classes</strong></big></font></td></tr> |
| |
| <tr><td bgcolor="#ee77aa"><tt> </tt></td><td> </td> |
| <td width="100%"><dl> |
| <dt><font face="helvetica, arial"><a href="gdata.client.html#GDClient">gdata.client.GDClient</a>(<a href="atom.client.html#AtomPubClient">atom.client.AtomPubClient</a>) |
| </font></dt><dd> |
| <dl> |
| <dt><font face="helvetica, arial"><a href="gdata.blogger.client.html#BloggerClient">BloggerClient</a> |
| </font></dt></dl> |
| </dd> |
| <dt><font face="helvetica, arial"><a href="gdata.client.html#Query">gdata.client.Query</a>(<a href="__builtin__.html#object">__builtin__.object</a>) |
| </font></dt><dd> |
| <dl> |
| <dt><font face="helvetica, arial"><a href="gdata.blogger.client.html#Query">Query</a> |
| </font></dt></dl> |
| </dd> |
| </dl> |
| <p> |
| <table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section"> |
| <tr bgcolor="#ffc8d8"> |
| <td colspan=3 valign=bottom> <br> |
| <font color="#000000" face="helvetica, arial"><a name="BloggerClient">class <strong>BloggerClient</strong></a>(<a href="gdata.client.html#GDClient">gdata.client.GDClient</a>)</font></td></tr> |
| |
| <tr><td bgcolor="#ffc8d8"><tt> </tt></td><td> </td> |
| <td width="100%"><dl><dt>Method resolution order:</dt> |
| <dd><a href="gdata.blogger.client.html#BloggerClient">BloggerClient</a></dd> |
| <dd><a href="gdata.client.html#GDClient">gdata.client.GDClient</a></dd> |
| <dd><a href="atom.client.html#AtomPubClient">atom.client.AtomPubClient</a></dd> |
| <dd><a href="__builtin__.html#object">__builtin__.object</a></dd> |
| </dl> |
| <hr> |
| Methods defined here:<br> |
| <dl><dt><a name="BloggerClient-AddComment"><strong>AddComment</strong></a> = <a href="#BloggerClient-add_comment">add_comment</a>(self, blog_id, post_id, body, auth_token<font color="#909090">=None</font>, title_type<font color="#909090">='text'</font>, body_type<font color="#909090">='html'</font>, **kwargs)</dt></dl> |
| |
| <dl><dt><a name="BloggerClient-AddPage"><strong>AddPage</strong></a> = <a href="#BloggerClient-add_page">add_page</a>(self, blog_id, title, body, draft<font color="#909090">=False</font>, auth_token<font color="#909090">=None</font>, title_type<font color="#909090">='text'</font>, body_type<font color="#909090">='html'</font>, **kwargs)</dt></dl> |
| |
| <dl><dt><a name="BloggerClient-AddPost"><strong>AddPost</strong></a> = <a href="#BloggerClient-add_post">add_post</a>(self, blog_id, title, body, labels<font color="#909090">=None</font>, draft<font color="#909090">=False</font>, auth_token<font color="#909090">=None</font>, title_type<font color="#909090">='text'</font>, body_type<font color="#909090">='html'</font>, **kwargs)</dt></dl> |
| |
| <dl><dt><a name="BloggerClient-Delete"><strong>Delete</strong></a> = <a href="#BloggerClient-delete">delete</a>(self, entry_or_uri, auth_token<font color="#909090">=None</font>, **kwargs)</dt></dl> |
| |
| <dl><dt><a name="BloggerClient-GetBlogArchive"><strong>GetBlogArchive</strong></a> = <a href="#BloggerClient-get_blog_archive">get_blog_archive</a>(self, blog_id, auth_token<font color="#909090">=None</font>, **kwargs)</dt></dl> |
| |
| <dl><dt><a name="BloggerClient-GetBlogComments"><strong>GetBlogComments</strong></a> = <a href="#BloggerClient-get_blog_comments">get_blog_comments</a>(self, blog_id, auth_token<font color="#909090">=None</font>, desired_class<font color="#909090">=<class 'gdata.blogger.data.CommentFeed'></font>, query<font color="#909090">=None</font>, **kwargs)</dt></dl> |
| |
| <dl><dt><a name="BloggerClient-GetBlogs"><strong>GetBlogs</strong></a> = <a href="#BloggerClient-get_blogs">get_blogs</a>(self, user_id<font color="#909090">='default'</font>, auth_token<font color="#909090">=None</font>, desired_class<font color="#909090">=<class 'gdata.blogger.data.BlogFeed'></font>, **kwargs)</dt></dl> |
| |
| <dl><dt><a name="BloggerClient-GetPages"><strong>GetPages</strong></a> = <a href="#BloggerClient-get_pages">get_pages</a>(self, blog_id, auth_token<font color="#909090">=None</font>, desired_class<font color="#909090">=<class 'gdata.blogger.data.BlogPageFeed'></font>, query<font color="#909090">=None</font>, **kwargs)</dt></dl> |
| |
| <dl><dt><a name="BloggerClient-GetPostComments"><strong>GetPostComments</strong></a> = <a href="#BloggerClient-get_post_comments">get_post_comments</a>(self, blog_id, post_id, auth_token<font color="#909090">=None</font>, desired_class<font color="#909090">=<class 'gdata.blogger.data.CommentFeed'></font>, query<font color="#909090">=None</font>, **kwargs)</dt></dl> |
| |
| <dl><dt><a name="BloggerClient-GetPosts"><strong>GetPosts</strong></a> = <a href="#BloggerClient-get_posts">get_posts</a>(self, blog_id, auth_token<font color="#909090">=None</font>, desired_class<font color="#909090">=<class 'gdata.blogger.data.BlogPostFeed'></font>, query<font color="#909090">=None</font>, **kwargs)</dt></dl> |
| |
| <dl><dt><a name="BloggerClient-Update"><strong>Update</strong></a> = <a href="#BloggerClient-update">update</a>(self, entry, auth_token<font color="#909090">=None</font>, **kwargs)</dt></dl> |
| |
| <dl><dt><a name="BloggerClient-add_comment"><strong>add_comment</strong></a>(self, blog_id, post_id, body, auth_token<font color="#909090">=None</font>, title_type<font color="#909090">='text'</font>, body_type<font color="#909090">='html'</font>, **kwargs)</dt></dl> |
| |
| <dl><dt><a name="BloggerClient-add_page"><strong>add_page</strong></a>(self, blog_id, title, body, draft<font color="#909090">=False</font>, auth_token<font color="#909090">=None</font>, title_type<font color="#909090">='text'</font>, body_type<font color="#909090">='html'</font>, **kwargs)</dt></dl> |
| |
| <dl><dt><a name="BloggerClient-add_post"><strong>add_post</strong></a>(self, blog_id, title, body, labels<font color="#909090">=None</font>, draft<font color="#909090">=False</font>, auth_token<font color="#909090">=None</font>, title_type<font color="#909090">='text'</font>, body_type<font color="#909090">='html'</font>, **kwargs)</dt></dl> |
| |
| <dl><dt><a name="BloggerClient-delete"><strong>delete</strong></a>(self, entry_or_uri, auth_token<font color="#909090">=None</font>, **kwargs)</dt></dl> |
| |
| <dl><dt><a name="BloggerClient-get_blog_archive"><strong>get_blog_archive</strong></a>(self, blog_id, auth_token<font color="#909090">=None</font>, **kwargs)</dt></dl> |
| |
| <dl><dt><a name="BloggerClient-get_blog_comments"><strong>get_blog_comments</strong></a>(self, blog_id, auth_token<font color="#909090">=None</font>, desired_class<font color="#909090">=<class 'gdata.blogger.data.CommentFeed'></font>, query<font color="#909090">=None</font>, **kwargs)</dt></dl> |
| |
| <dl><dt><a name="BloggerClient-get_blogs"><strong>get_blogs</strong></a>(self, user_id<font color="#909090">='default'</font>, auth_token<font color="#909090">=None</font>, desired_class<font color="#909090">=<class 'gdata.blogger.data.BlogFeed'></font>, **kwargs)</dt></dl> |
| |
| <dl><dt><a name="BloggerClient-get_pages"><strong>get_pages</strong></a>(self, blog_id, auth_token<font color="#909090">=None</font>, desired_class<font color="#909090">=<class 'gdata.blogger.data.BlogPageFeed'></font>, query<font color="#909090">=None</font>, **kwargs)</dt></dl> |
| |
| <dl><dt><a name="BloggerClient-get_post_comments"><strong>get_post_comments</strong></a>(self, blog_id, post_id, auth_token<font color="#909090">=None</font>, desired_class<font color="#909090">=<class 'gdata.blogger.data.CommentFeed'></font>, query<font color="#909090">=None</font>, **kwargs)</dt></dl> |
| |
| <dl><dt><a name="BloggerClient-get_posts"><strong>get_posts</strong></a>(self, blog_id, auth_token<font color="#909090">=None</font>, desired_class<font color="#909090">=<class 'gdata.blogger.data.BlogPostFeed'></font>, query<font color="#909090">=None</font>, **kwargs)</dt></dl> |
| |
| <dl><dt><a name="BloggerClient-update"><strong>update</strong></a>(self, entry, auth_token<font color="#909090">=None</font>, **kwargs)</dt></dl> |
| |
| <hr> |
| Data and other attributes defined here:<br> |
| <dl><dt><strong>api_version</strong> = '2'</dl> |
| |
| <dl><dt><strong>auth_scopes</strong> = ('http://www.blogger.com/feeds/',)</dl> |
| |
| <dl><dt><strong>auth_service</strong> = 'blogger'</dl> |
| |
| <hr> |
| Methods inherited from <a href="gdata.client.html#GDClient">gdata.client.GDClient</a>:<br> |
| <dl><dt><a name="BloggerClient-Batch"><strong>Batch</strong></a> = batch(self, feed, uri<font color="#909090">=None</font>, force<font color="#909090">=False</font>, auth_token<font color="#909090">=None</font>, **kwargs)</dt><dd><tt>Sends a batch request to the server to execute operation entries.<br> |
| <br> |
| Args:<br> |
| feed: A batch feed containing batch entries, each is an operation.<br> |
| uri: (optional) The uri to which the batch request feed should be POSTed.<br> |
| If none is provided, then the feed's edit link will be used.<br> |
| force: (optional) boolean set to True if you want the batch update to<br> |
| clobber all data. If False, the version in the information in the<br> |
| feed object will cause the server to check to see that no changes<br> |
| intervened between when you fetched the data and when you sent the<br> |
| changes.<br> |
| auth_token: (optional) An object which sets the Authorization HTTP header<br> |
| in its modify_request method. Recommended classes include<br> |
| gdata.gauth.ClientLoginToken and gdata.gauth.AuthSubToken<br> |
| among others.</tt></dd></dl> |
| |
| <dl><dt><a name="BloggerClient-ClientLogin"><strong>ClientLogin</strong></a> = client_login(self, email, password, source, service<font color="#909090">=None</font>, account_type<font color="#909090">='HOSTED_OR_GOOGLE'</font>, auth_url<font color="#909090">=<atom.http_core.Uri object></font>, captcha_token<font color="#909090">=None</font>, captcha_response<font color="#909090">=None</font>)</dt><dd><tt>Performs an auth request using the user's email address and password.<br> |
| <br> |
| In order to modify user specific data and read user private data, your<br> |
| application must be authorized by the user. One way to demonstrage<br> |
| authorization is by including a Client Login token in the Authorization<br> |
| HTTP header of all requests. This method requests the Client Login token<br> |
| by sending the user's email address, password, the name of the<br> |
| application, and the service code for the service which will be accessed<br> |
| by the application. If the username and password are correct, the server<br> |
| will respond with the client login code and a new ClientLoginToken<br> |
| object will be set in the client's auth_token member. With the auth_token<br> |
| set, future requests from this client will include the Client Login<br> |
| token.<br> |
| <br> |
| For a list of service names, see <br> |
| <a href="http://code.google.com/apis/gdata/faq.html#clientlogin">http://code.google.com/apis/gdata/faq.html#clientlogin</a><br> |
| For more information on Client Login, see:<br> |
| <a href="http://code.google.com/apis/accounts/docs/AuthForInstalledApps.html">http://code.google.com/apis/accounts/docs/AuthForInstalledApps.html</a><br> |
| <br> |
| Args:<br> |
| email: str The user's email address or username.<br> |
| password: str The password for the user's account.<br> |
| source: str The name of your application. This can be anything you<br> |
| like but should should give some indication of which app is<br> |
| making the request.<br> |
| service: str The service code for the service you would like to access.<br> |
| For example, 'cp' for contacts, 'cl' for calendar. For a full<br> |
| list see<br> |
| <a href="http://code.google.com/apis/gdata/faq.html#clientlogin">http://code.google.com/apis/gdata/faq.html#clientlogin</a><br> |
| If you are using a subclass of the gdata.client.<a href="gdata.client.html#GDClient">GDClient</a>, the<br> |
| service will usually be filled in for you so you do not need<br> |
| to specify it. For example see <a href="#BloggerClient">BloggerClient</a>,<br> |
| SpreadsheetsClient, etc.<br> |
| account_type: str (optional) The type of account which is being<br> |
| authenticated. This can be either 'GOOGLE' for a Google<br> |
| Account, 'HOSTED' for a Google Apps Account, or the<br> |
| default 'HOSTED_OR_GOOGLE' which will select the Google<br> |
| Apps Account if the same email address is used for both<br> |
| a Google Account and a Google Apps Account.<br> |
| auth_url: str (optional) The URL to which the login request should be<br> |
| sent.<br> |
| captcha_token: str (optional) If a previous login attempt was reponded<br> |
| to with a CAPTCHA challenge, this is the token which<br> |
| identifies the challenge (from the CAPTCHA's URL).<br> |
| captcha_response: str (optional) If a previous login attempt was<br> |
| reponded to with a CAPTCHA challenge, this is the<br> |
| response text which was contained in the challenge.<br> |
| <br> |
| Returns:<br> |
| Generated token, which is also stored in this object.<br> |
| <br> |
| Raises:<br> |
| A RequestError or one of its suclasses: BadAuthentication,<br> |
| BadAuthenticationServiceURL, ClientLoginFailed,<br> |
| ClientLoginTokenMissing, or CaptchaChallenge</tt></dd></dl> |
| |
| <dl><dt><a name="BloggerClient-GetAccessToken"><strong>GetAccessToken</strong></a> = get_access_token(self, request_token, url<font color="#909090">='https://www.google.com/accounts/OAuthGetAccessToken'</font>)</dt><dd><tt>Exchanges an authorized OAuth request token for an access token.<br> |
| <br> |
| Contacts the Google OAuth server to upgrade a previously authorized<br> |
| request token. Once the request token is upgraded to an access token,<br> |
| the access token may be used to access the user's data.<br> |
| <br> |
| For more details, see the Google Accounts OAuth documentation:<br> |
| <a href="http://code.google.com/apis/accounts/docs/OAuth.html#AccessToken">http://code.google.com/apis/accounts/docs/OAuth.html#AccessToken</a><br> |
| <br> |
| Args:<br> |
| request_token: An OAuth token which has been authorized by the user.<br> |
| url: (optional) The URL to which the upgrade request should be sent.<br> |
| Defaults to: https://www.google.com/accounts/OAuthAuthorizeToken</tt></dd></dl> |
| |
| <dl><dt><a name="BloggerClient-GetEntry"><strong>GetEntry</strong></a> = get_entry(self, uri, auth_token<font color="#909090">=None</font>, converter<font color="#909090">=None</font>, desired_class<font color="#909090">=<class 'gdata.data.GDEntry'></font>, etag<font color="#909090">=None</font>, **kwargs)</dt></dl> |
| |
| <dl><dt><a name="BloggerClient-GetFeed"><strong>GetFeed</strong></a> = get_feed(self, uri, auth_token<font color="#909090">=None</font>, converter<font color="#909090">=None</font>, desired_class<font color="#909090">=<class 'gdata.data.GDFeed'></font>, **kwargs)</dt></dl> |
| |
| <dl><dt><a name="BloggerClient-GetNext"><strong>GetNext</strong></a> = get_next(self, feed, auth_token<font color="#909090">=None</font>, converter<font color="#909090">=None</font>, desired_class<font color="#909090">=None</font>, **kwargs)</dt><dd><tt>Fetches the next set of results from the feed.<br> |
| <br> |
| When requesting a feed, the number of entries returned is capped at a<br> |
| service specific default limit (often 25 entries). You can specify your<br> |
| own entry-count cap using the max-results URL query parameter. If there<br> |
| are more results than could fit under max-results, the feed will contain<br> |
| a next link. This method performs a GET against this next results URL.<br> |
| <br> |
| Returns:<br> |
| A new feed object containing the next set of entries in this feed.</tt></dd></dl> |
| |
| <dl><dt><a name="BloggerClient-GetOAuthToken"><strong>GetOAuthToken</strong></a> = get_oauth_token(self, scopes, next, consumer_key, consumer_secret<font color="#909090">=None</font>, rsa_private_key<font color="#909090">=None</font>, url<font color="#909090">='https://www.google.com/accounts/OAuthGetRequestToken'</font>)</dt><dd><tt>Obtains an OAuth request token to allow the user to authorize this app.<br> |
| <br> |
| Once this client has a request token, the user can authorize the request<br> |
| token by visiting the authorization URL in their browser. After being<br> |
| redirected back to this app at the 'next' URL, this app can then exchange<br> |
| the authorized request token for an access token.<br> |
| <br> |
| For more information see the documentation on Google Accounts with OAuth:<br> |
| <a href="http://code.google.com/apis/accounts/docs/OAuth.html#AuthProcess">http://code.google.com/apis/accounts/docs/OAuth.html#AuthProcess</a><br> |
| <br> |
| Args:<br> |
| scopes: list of strings or atom.http_core.Uri objects which specify the<br> |
| URL prefixes which this app will be accessing. For example, to access<br> |
| the Google Calendar API, you would want to use scopes:<br> |
| ['https://www.google.com/calendar/feeds/',<br> |
| '<a href="http://www.google.com/calendar/feeds/">http://www.google.com/calendar/feeds/</a>']<br> |
| next: str or atom.http_core.Uri object, The URL which the user's browser<br> |
| should be sent to after they authorize access to their data. This<br> |
| should be a URL in your application which will read the token<br> |
| information from the URL and upgrade the request token to an access<br> |
| token.<br> |
| consumer_key: str This is the identifier for this application which you<br> |
| should have received when you registered your application with Google<br> |
| to use OAuth.<br> |
| consumer_secret: str (optional) The shared secret between your app and<br> |
| Google which provides evidence that this request is coming from you<br> |
| application and not another app. If present, this libraries assumes<br> |
| you want to use an HMAC signature to verify requests. Keep this data<br> |
| a secret.<br> |
| rsa_private_key: str (optional) The RSA private key which is used to<br> |
| generate a digital signature which is checked by Google's server. If<br> |
| present, this library assumes that you want to use an RSA signature<br> |
| to verify requests. Keep this data a secret.<br> |
| url: The URL to which a request for a token should be made. The default<br> |
| is Google's OAuth request token provider.</tt></dd></dl> |
| |
| <dl><dt><a name="BloggerClient-ModifyRequest"><strong>ModifyRequest</strong></a> = modify_request(self, http_request)</dt><dd><tt>Adds or changes request before making the HTTP request.<br> |
| <br> |
| This client will add the API version if it is specified.<br> |
| Subclasses may override this method to add their own request<br> |
| modifications before the request is made.</tt></dd></dl> |
| |
| <dl><dt><a name="BloggerClient-Post"><strong>Post</strong></a> = post(self, entry, uri, auth_token<font color="#909090">=None</font>, converter<font color="#909090">=None</font>, desired_class<font color="#909090">=None</font>, **kwargs)</dt></dl> |
| |
| <dl><dt><a name="BloggerClient-Request"><strong>Request</strong></a> = request(self, method<font color="#909090">=None</font>, uri<font color="#909090">=None</font>, auth_token<font color="#909090">=None</font>, http_request<font color="#909090">=None</font>, converter<font color="#909090">=None</font>, desired_class<font color="#909090">=None</font>, redirects_remaining<font color="#909090">=4</font>, **kwargs)</dt><dd><tt>Make an HTTP request to the server.<br> |
| <br> |
| See also documentation for atom.client.AtomPubClient.request.<br> |
| <br> |
| If a 302 redirect is sent from the server to the client, this client<br> |
| assumes that the redirect is in the form used by the Google Calendar API.<br> |
| The same request URI and method will be used as in the original request,<br> |
| but a gsessionid URL parameter will be added to the request URI with<br> |
| the value provided in the server's 302 redirect response. If the 302<br> |
| redirect is not in the format specified by the Google Calendar API, a<br> |
| RedirectError will be raised containing the body of the server's<br> |
| response.<br> |
| <br> |
| The method calls the client's modify_request method to make any changes<br> |
| required by the client before the request is made. For example, a<br> |
| version 2 client could add a GData-Version: 2 header to the request in<br> |
| its modify_request method.<br> |
| <br> |
| Args:<br> |
| method: str The HTTP verb for this request, usually 'GET', 'POST',<br> |
| 'PUT', or 'DELETE'<br> |
| uri: atom.http_core.Uri, str, or unicode The URL being requested.<br> |
| auth_token: An object which sets the Authorization HTTP header in its<br> |
| modify_request method. Recommended classes include<br> |
| gdata.gauth.ClientLoginToken and gdata.gauth.AuthSubToken<br> |
| among others.<br> |
| http_request: (optional) atom.http_core.HttpRequest<br> |
| converter: function which takes the body of the response as its only<br> |
| argument and returns the desired object.<br> |
| desired_class: class descended from atom.core.XmlElement to which a<br> |
| successful response should be converted. If there is no<br> |
| converter function specified (converter=None) then the<br> |
| desired_class will be used in calling the<br> |
| atom.core.parse function. If neither<br> |
| the desired_class nor the converter is specified, an<br> |
| HTTP reponse object will be returned.<br> |
| redirects_remaining: (optional) int, if this number is 0 and the<br> |
| server sends a 302 redirect, the request method<br> |
| will raise an exception. This parameter is used in<br> |
| recursive request calls to avoid an infinite loop.<br> |
| <br> |
| Any additional arguments are passed through to<br> |
| atom.client.AtomPubClient.request.<br> |
| <br> |
| Returns:<br> |
| An HTTP response object (see atom.http_core.HttpResponse for a<br> |
| description of the object's interface) if no converter was<br> |
| specified and no desired_class was specified. If a converter function<br> |
| was provided, the results of calling the converter are returned. If no<br> |
| converter was specified but a desired_class was provided, the response<br> |
| body will be converted to the class using<br> |
| atom.core.parse.</tt></dd></dl> |
| |
| <dl><dt><a name="BloggerClient-RequestClientLoginToken"><strong>RequestClientLoginToken</strong></a> = request_client_login_token(self, email, password, source, service<font color="#909090">=None</font>, account_type<font color="#909090">='HOSTED_OR_GOOGLE'</font>, auth_url<font color="#909090">=<atom.http_core.Uri object></font>, captcha_token<font color="#909090">=None</font>, captcha_response<font color="#909090">=None</font>)</dt></dl> |
| |
| <dl><dt><a name="BloggerClient-RevokeToken"><strong>RevokeToken</strong></a> = revoke_token(self, token<font color="#909090">=None</font>, url<font color="#909090">=<atom.http_core.Uri object></font>)</dt><dd><tt>Requests that the token be invalidated.<br> |
| <br> |
| This method can be used for both AuthSub and OAuth tokens (to invalidate<br> |
| a ClientLogin token, the user must change their password).<br> |
| <br> |
| Returns:<br> |
| True if the server responded with a 200.<br> |
| <br> |
| Raises:<br> |
| A RequestError if the server responds with a non-200 status.</tt></dd></dl> |
| |
| <dl><dt><a name="BloggerClient-UpgradeToken"><strong>UpgradeToken</strong></a> = upgrade_token(self, token<font color="#909090">=None</font>, url<font color="#909090">=<atom.http_core.Uri object></font>)</dt><dd><tt>Asks the Google auth server for a multi-use AuthSub token.<br> |
| <br> |
| For details on AuthSub, see:<br> |
| <a href="http://code.google.com/apis/accounts/docs/AuthSub.html">http://code.google.com/apis/accounts/docs/AuthSub.html</a><br> |
| <br> |
| Args:<br> |
| token: gdata.gauth.AuthSubToken or gdata.gauth.SecureAuthSubToken<br> |
| (optional) If no token is passed in, the client's auth_token member<br> |
| is used to request the new token. The token object will be modified<br> |
| to contain the new session token string.<br> |
| url: str or atom.http_core.Uri (optional) The URL to which the token<br> |
| upgrade request should be sent. Defaults to:<br> |
| https://www.google.com/accounts/AuthSubSessionToken<br> |
| <br> |
| Returns:<br> |
| The upgraded gdata.gauth.AuthSubToken object.</tt></dd></dl> |
| |
| <dl><dt><a name="BloggerClient-batch"><strong>batch</strong></a>(self, feed, uri<font color="#909090">=None</font>, force<font color="#909090">=False</font>, auth_token<font color="#909090">=None</font>, **kwargs)</dt><dd><tt>Sends a batch request to the server to execute operation entries.<br> |
| <br> |
| Args:<br> |
| feed: A batch feed containing batch entries, each is an operation.<br> |
| uri: (optional) The uri to which the batch request feed should be POSTed.<br> |
| If none is provided, then the feed's edit link will be used.<br> |
| force: (optional) boolean set to True if you want the batch update to<br> |
| clobber all data. If False, the version in the information in the<br> |
| feed object will cause the server to check to see that no changes<br> |
| intervened between when you fetched the data and when you sent the<br> |
| changes.<br> |
| auth_token: (optional) An object which sets the Authorization HTTP header<br> |
| in its modify_request method. Recommended classes include<br> |
| gdata.gauth.ClientLoginToken and gdata.gauth.AuthSubToken<br> |
| among others.</tt></dd></dl> |
| |
| <dl><dt><a name="BloggerClient-client_login"><strong>client_login</strong></a>(self, email, password, source, service<font color="#909090">=None</font>, account_type<font color="#909090">='HOSTED_OR_GOOGLE'</font>, auth_url<font color="#909090">=<atom.http_core.Uri object></font>, captcha_token<font color="#909090">=None</font>, captcha_response<font color="#909090">=None</font>)</dt><dd><tt>Performs an auth request using the user's email address and password.<br> |
| <br> |
| In order to modify user specific data and read user private data, your<br> |
| application must be authorized by the user. One way to demonstrage<br> |
| authorization is by including a Client Login token in the Authorization<br> |
| HTTP header of all requests. This method requests the Client Login token<br> |
| by sending the user's email address, password, the name of the<br> |
| application, and the service code for the service which will be accessed<br> |
| by the application. If the username and password are correct, the server<br> |
| will respond with the client login code and a new ClientLoginToken<br> |
| object will be set in the client's auth_token member. With the auth_token<br> |
| set, future requests from this client will include the Client Login<br> |
| token.<br> |
| <br> |
| For a list of service names, see <br> |
| <a href="http://code.google.com/apis/gdata/faq.html#clientlogin">http://code.google.com/apis/gdata/faq.html#clientlogin</a><br> |
| For more information on Client Login, see:<br> |
| <a href="http://code.google.com/apis/accounts/docs/AuthForInstalledApps.html">http://code.google.com/apis/accounts/docs/AuthForInstalledApps.html</a><br> |
| <br> |
| Args:<br> |
| email: str The user's email address or username.<br> |
| password: str The password for the user's account.<br> |
| source: str The name of your application. This can be anything you<br> |
| like but should should give some indication of which app is<br> |
| making the request.<br> |
| service: str The service code for the service you would like to access.<br> |
| For example, 'cp' for contacts, 'cl' for calendar. For a full<br> |
| list see<br> |
| <a href="http://code.google.com/apis/gdata/faq.html#clientlogin">http://code.google.com/apis/gdata/faq.html#clientlogin</a><br> |
| If you are using a subclass of the gdata.client.<a href="gdata.client.html#GDClient">GDClient</a>, the<br> |
| service will usually be filled in for you so you do not need<br> |
| to specify it. For example see <a href="#BloggerClient">BloggerClient</a>,<br> |
| SpreadsheetsClient, etc.<br> |
| account_type: str (optional) The type of account which is being<br> |
| authenticated. This can be either 'GOOGLE' for a Google<br> |
| Account, 'HOSTED' for a Google Apps Account, or the<br> |
| default 'HOSTED_OR_GOOGLE' which will select the Google<br> |
| Apps Account if the same email address is used for both<br> |
| a Google Account and a Google Apps Account.<br> |
| auth_url: str (optional) The URL to which the login request should be<br> |
| sent.<br> |
| captcha_token: str (optional) If a previous login attempt was reponded<br> |
| to with a CAPTCHA challenge, this is the token which<br> |
| identifies the challenge (from the CAPTCHA's URL).<br> |
| captcha_response: str (optional) If a previous login attempt was<br> |
| reponded to with a CAPTCHA challenge, this is the<br> |
| response text which was contained in the challenge.<br> |
| <br> |
| Returns:<br> |
| Generated token, which is also stored in this object.<br> |
| <br> |
| Raises:<br> |
| A RequestError or one of its suclasses: BadAuthentication,<br> |
| BadAuthenticationServiceURL, ClientLoginFailed,<br> |
| ClientLoginTokenMissing, or CaptchaChallenge</tt></dd></dl> |
| |
| <dl><dt><a name="BloggerClient-get_access_token"><strong>get_access_token</strong></a>(self, request_token, url<font color="#909090">='https://www.google.com/accounts/OAuthGetAccessToken'</font>)</dt><dd><tt>Exchanges an authorized OAuth request token for an access token.<br> |
| <br> |
| Contacts the Google OAuth server to upgrade a previously authorized<br> |
| request token. Once the request token is upgraded to an access token,<br> |
| the access token may be used to access the user's data.<br> |
| <br> |
| For more details, see the Google Accounts OAuth documentation:<br> |
| <a href="http://code.google.com/apis/accounts/docs/OAuth.html#AccessToken">http://code.google.com/apis/accounts/docs/OAuth.html#AccessToken</a><br> |
| <br> |
| Args:<br> |
| request_token: An OAuth token which has been authorized by the user.<br> |
| url: (optional) The URL to which the upgrade request should be sent.<br> |
| Defaults to: https://www.google.com/accounts/OAuthAuthorizeToken</tt></dd></dl> |
| |
| <dl><dt><a name="BloggerClient-get_entry"><strong>get_entry</strong></a>(self, uri, auth_token<font color="#909090">=None</font>, converter<font color="#909090">=None</font>, desired_class<font color="#909090">=<class 'gdata.data.GDEntry'></font>, etag<font color="#909090">=None</font>, **kwargs)</dt></dl> |
| |
| <dl><dt><a name="BloggerClient-get_feed"><strong>get_feed</strong></a>(self, uri, auth_token<font color="#909090">=None</font>, converter<font color="#909090">=None</font>, desired_class<font color="#909090">=<class 'gdata.data.GDFeed'></font>, **kwargs)</dt></dl> |
| |
| <dl><dt><a name="BloggerClient-get_next"><strong>get_next</strong></a>(self, feed, auth_token<font color="#909090">=None</font>, converter<font color="#909090">=None</font>, desired_class<font color="#909090">=None</font>, **kwargs)</dt><dd><tt>Fetches the next set of results from the feed.<br> |
| <br> |
| When requesting a feed, the number of entries returned is capped at a<br> |
| service specific default limit (often 25 entries). You can specify your<br> |
| own entry-count cap using the max-results URL query parameter. If there<br> |
| are more results than could fit under max-results, the feed will contain<br> |
| a next link. This method performs a GET against this next results URL.<br> |
| <br> |
| Returns:<br> |
| A new feed object containing the next set of entries in this feed.</tt></dd></dl> |
| |
| <dl><dt><a name="BloggerClient-get_oauth_token"><strong>get_oauth_token</strong></a>(self, scopes, next, consumer_key, consumer_secret<font color="#909090">=None</font>, rsa_private_key<font color="#909090">=None</font>, url<font color="#909090">='https://www.google.com/accounts/OAuthGetRequestToken'</font>)</dt><dd><tt>Obtains an OAuth request token to allow the user to authorize this app.<br> |
| <br> |
| Once this client has a request token, the user can authorize the request<br> |
| token by visiting the authorization URL in their browser. After being<br> |
| redirected back to this app at the 'next' URL, this app can then exchange<br> |
| the authorized request token for an access token.<br> |
| <br> |
| For more information see the documentation on Google Accounts with OAuth:<br> |
| <a href="http://code.google.com/apis/accounts/docs/OAuth.html#AuthProcess">http://code.google.com/apis/accounts/docs/OAuth.html#AuthProcess</a><br> |
| <br> |
| Args:<br> |
| scopes: list of strings or atom.http_core.Uri objects which specify the<br> |
| URL prefixes which this app will be accessing. For example, to access<br> |
| the Google Calendar API, you would want to use scopes:<br> |
| ['https://www.google.com/calendar/feeds/',<br> |
| '<a href="http://www.google.com/calendar/feeds/">http://www.google.com/calendar/feeds/</a>']<br> |
| next: str or atom.http_core.Uri object, The URL which the user's browser<br> |
| should be sent to after they authorize access to their data. This<br> |
| should be a URL in your application which will read the token<br> |
| information from the URL and upgrade the request token to an access<br> |
| token.<br> |
| consumer_key: str This is the identifier for this application which you<br> |
| should have received when you registered your application with Google<br> |
| to use OAuth.<br> |
| consumer_secret: str (optional) The shared secret between your app and<br> |
| Google which provides evidence that this request is coming from you<br> |
| application and not another app. If present, this libraries assumes<br> |
| you want to use an HMAC signature to verify requests. Keep this data<br> |
| a secret.<br> |
| rsa_private_key: str (optional) The RSA private key which is used to<br> |
| generate a digital signature which is checked by Google's server. If<br> |
| present, this library assumes that you want to use an RSA signature<br> |
| to verify requests. Keep this data a secret.<br> |
| url: The URL to which a request for a token should be made. The default<br> |
| is Google's OAuth request token provider.</tt></dd></dl> |
| |
| <dl><dt><a name="BloggerClient-modify_request"><strong>modify_request</strong></a>(self, http_request)</dt><dd><tt>Adds or changes request before making the HTTP request.<br> |
| <br> |
| This client will add the API version if it is specified.<br> |
| Subclasses may override this method to add their own request<br> |
| modifications before the request is made.</tt></dd></dl> |
| |
| <dl><dt><a name="BloggerClient-post"><strong>post</strong></a>(self, entry, uri, auth_token<font color="#909090">=None</font>, converter<font color="#909090">=None</font>, desired_class<font color="#909090">=None</font>, **kwargs)</dt></dl> |
| |
| <dl><dt><a name="BloggerClient-request"><strong>request</strong></a>(self, method<font color="#909090">=None</font>, uri<font color="#909090">=None</font>, auth_token<font color="#909090">=None</font>, http_request<font color="#909090">=None</font>, converter<font color="#909090">=None</font>, desired_class<font color="#909090">=None</font>, redirects_remaining<font color="#909090">=4</font>, **kwargs)</dt><dd><tt>Make an HTTP request to the server.<br> |
| <br> |
| See also documentation for atom.client.AtomPubClient.request.<br> |
| <br> |
| If a 302 redirect is sent from the server to the client, this client<br> |
| assumes that the redirect is in the form used by the Google Calendar API.<br> |
| The same request URI and method will be used as in the original request,<br> |
| but a gsessionid URL parameter will be added to the request URI with<br> |
| the value provided in the server's 302 redirect response. If the 302<br> |
| redirect is not in the format specified by the Google Calendar API, a<br> |
| RedirectError will be raised containing the body of the server's<br> |
| response.<br> |
| <br> |
| The method calls the client's modify_request method to make any changes<br> |
| required by the client before the request is made. For example, a<br> |
| version 2 client could add a GData-Version: 2 header to the request in<br> |
| its modify_request method.<br> |
| <br> |
| Args:<br> |
| method: str The HTTP verb for this request, usually 'GET', 'POST',<br> |
| 'PUT', or 'DELETE'<br> |
| uri: atom.http_core.Uri, str, or unicode The URL being requested.<br> |
| auth_token: An object which sets the Authorization HTTP header in its<br> |
| modify_request method. Recommended classes include<br> |
| gdata.gauth.ClientLoginToken and gdata.gauth.AuthSubToken<br> |
| among others.<br> |
| http_request: (optional) atom.http_core.HttpRequest<br> |
| converter: function which takes the body of the response as its only<br> |
| argument and returns the desired object.<br> |
| desired_class: class descended from atom.core.XmlElement to which a<br> |
| successful response should be converted. If there is no<br> |
| converter function specified (converter=None) then the<br> |
| desired_class will be used in calling the<br> |
| atom.core.parse function. If neither<br> |
| the desired_class nor the converter is specified, an<br> |
| HTTP reponse object will be returned.<br> |
| redirects_remaining: (optional) int, if this number is 0 and the<br> |
| server sends a 302 redirect, the request method<br> |
| will raise an exception. This parameter is used in<br> |
| recursive request calls to avoid an infinite loop.<br> |
| <br> |
| Any additional arguments are passed through to<br> |
| atom.client.AtomPubClient.request.<br> |
| <br> |
| Returns:<br> |
| An HTTP response object (see atom.http_core.HttpResponse for a<br> |
| description of the object's interface) if no converter was<br> |
| specified and no desired_class was specified. If a converter function<br> |
| was provided, the results of calling the converter are returned. If no<br> |
| converter was specified but a desired_class was provided, the response<br> |
| body will be converted to the class using<br> |
| atom.core.parse.</tt></dd></dl> |
| |
| <dl><dt><a name="BloggerClient-request_client_login_token"><strong>request_client_login_token</strong></a>(self, email, password, source, service<font color="#909090">=None</font>, account_type<font color="#909090">='HOSTED_OR_GOOGLE'</font>, auth_url<font color="#909090">=<atom.http_core.Uri object></font>, captcha_token<font color="#909090">=None</font>, captcha_response<font color="#909090">=None</font>)</dt></dl> |
| |
| <dl><dt><a name="BloggerClient-revoke_token"><strong>revoke_token</strong></a>(self, token<font color="#909090">=None</font>, url<font color="#909090">=<atom.http_core.Uri object></font>)</dt><dd><tt>Requests that the token be invalidated.<br> |
| <br> |
| This method can be used for both AuthSub and OAuth tokens (to invalidate<br> |
| a ClientLogin token, the user must change their password).<br> |
| <br> |
| Returns:<br> |
| True if the server responded with a 200.<br> |
| <br> |
| Raises:<br> |
| A RequestError if the server responds with a non-200 status.</tt></dd></dl> |
| |
| <dl><dt><a name="BloggerClient-upgrade_token"><strong>upgrade_token</strong></a>(self, token<font color="#909090">=None</font>, url<font color="#909090">=<atom.http_core.Uri object></font>)</dt><dd><tt>Asks the Google auth server for a multi-use AuthSub token.<br> |
| <br> |
| For details on AuthSub, see:<br> |
| <a href="http://code.google.com/apis/accounts/docs/AuthSub.html">http://code.google.com/apis/accounts/docs/AuthSub.html</a><br> |
| <br> |
| Args:<br> |
| token: gdata.gauth.AuthSubToken or gdata.gauth.SecureAuthSubToken<br> |
| (optional) If no token is passed in, the client's auth_token member<br> |
| is used to request the new token. The token object will be modified<br> |
| to contain the new session token string.<br> |
| url: str or atom.http_core.Uri (optional) The URL to which the token<br> |
| upgrade request should be sent. Defaults to:<br> |
| https://www.google.com/accounts/AuthSubSessionToken<br> |
| <br> |
| Returns:<br> |
| The upgraded gdata.gauth.AuthSubToken object.</tt></dd></dl> |
| |
| <hr> |
| Data and other attributes inherited from <a href="gdata.client.html#GDClient">gdata.client.GDClient</a>:<br> |
| <dl><dt><strong>alt_auth_service</strong> = None</dl> |
| |
| <hr> |
| Methods inherited from <a href="atom.client.html#AtomPubClient">atom.client.AtomPubClient</a>:<br> |
| <dl><dt><a name="BloggerClient-Get"><strong>Get</strong></a> = get(self, uri<font color="#909090">=None</font>, auth_token<font color="#909090">=None</font>, http_request<font color="#909090">=None</font>, **kwargs)</dt><dd><tt>Performs a request using the GET method, returns an HTTP response.</tt></dd></dl> |
| |
| <dl><dt><a name="BloggerClient-Put"><strong>Put</strong></a> = put(self, uri<font color="#909090">=None</font>, data<font color="#909090">=None</font>, auth_token<font color="#909090">=None</font>, http_request<font color="#909090">=None</font>, **kwargs)</dt><dd><tt>Sends data using the PUT method, returns an HTTP response.</tt></dd></dl> |
| |
| <dl><dt><a name="BloggerClient-__init__"><strong>__init__</strong></a>(self, http_client<font color="#909090">=None</font>, host<font color="#909090">=None</font>, auth_token<font color="#909090">=None</font>, source<font color="#909090">=None</font>, xoauth_requestor_id<font color="#909090">=None</font>, **kwargs)</dt><dd><tt>Creates a new AtomPubClient instance.<br> |
| <br> |
| Args:<br> |
| source: The name of your application.<br> |
| http_client: An object capable of performing HTTP requests through a<br> |
| request method. This object is used to perform the request<br> |
| when the AtomPubClient's request method is called. Used to<br> |
| allow HTTP requests to be directed to a mock server, or use<br> |
| an alternate library instead of the default of httplib to<br> |
| make HTTP requests.<br> |
| host: str The default host name to use if a host is not specified in the<br> |
| requested URI.<br> |
| auth_token: An object which sets the HTTP Authorization header when its<br> |
| modify_request method is called.</tt></dd></dl> |
| |
| <dl><dt><a name="BloggerClient-get"><strong>get</strong></a>(self, uri<font color="#909090">=None</font>, auth_token<font color="#909090">=None</font>, http_request<font color="#909090">=None</font>, **kwargs)</dt><dd><tt>Performs a request using the GET method, returns an HTTP response.</tt></dd></dl> |
| |
| <dl><dt><a name="BloggerClient-put"><strong>put</strong></a>(self, uri<font color="#909090">=None</font>, data<font color="#909090">=None</font>, auth_token<font color="#909090">=None</font>, http_request<font color="#909090">=None</font>, **kwargs)</dt><dd><tt>Sends data using the PUT method, returns an HTTP response.</tt></dd></dl> |
| |
| <hr> |
| Data descriptors inherited from <a href="atom.client.html#AtomPubClient">atom.client.AtomPubClient</a>:<br> |
| <dl><dt><strong>__dict__</strong></dt> |
| <dd><tt>dictionary for instance variables (if defined)</tt></dd> |
| </dl> |
| <dl><dt><strong>__weakref__</strong></dt> |
| <dd><tt>list of weak references to the object (if defined)</tt></dd> |
| </dl> |
| <hr> |
| Data and other attributes inherited from <a href="atom.client.html#AtomPubClient">atom.client.AtomPubClient</a>:<br> |
| <dl><dt><strong>auth_token</strong> = None</dl> |
| |
| <dl><dt><strong>host</strong> = None</dl> |
| |
| <dl><dt><strong>ssl</strong> = False</dl> |
| |
| <dl><dt><strong>xoauth_requestor_id</strong> = None</dl> |
| |
| </td></tr></table> <p> |
| <table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section"> |
| <tr bgcolor="#ffc8d8"> |
| <td colspan=3 valign=bottom> <br> |
| <font color="#000000" face="helvetica, arial"><a name="Query">class <strong>Query</strong></a>(<a href="gdata.client.html#Query">gdata.client.Query</a>)</font></td></tr> |
| |
| <tr><td bgcolor="#ffc8d8"><tt> </tt></td><td> </td> |
| <td width="100%"><dl><dt>Method resolution order:</dt> |
| <dd><a href="gdata.blogger.client.html#Query">Query</a></dd> |
| <dd><a href="gdata.client.html#Query">gdata.client.Query</a></dd> |
| <dd><a href="__builtin__.html#object">__builtin__.object</a></dd> |
| </dl> |
| <hr> |
| Methods defined here:<br> |
| <dl><dt><a name="Query-ModifyRequest"><strong>ModifyRequest</strong></a> = <a href="#Query-modify_request">modify_request</a>(self, http_request)</dt></dl> |
| |
| <dl><dt><a name="Query-__init__"><strong>__init__</strong></a>(self, order_by<font color="#909090">=None</font>, **kwargs)</dt></dl> |
| |
| <dl><dt><a name="Query-modify_request"><strong>modify_request</strong></a>(self, http_request)</dt></dl> |
| |
| <hr> |
| Methods inherited from <a href="gdata.client.html#Query">gdata.client.Query</a>:<br> |
| <dl><dt><a name="Query-AddCustomParameter"><strong>AddCustomParameter</strong></a> = add_custom_parameter(self, key, value)</dt></dl> |
| |
| <dl><dt><a name="Query-add_custom_parameter"><strong>add_custom_parameter</strong></a>(self, key, value)</dt></dl> |
| |
| <hr> |
| Data descriptors inherited from <a href="gdata.client.html#Query">gdata.client.Query</a>:<br> |
| <dl><dt><strong>__dict__</strong></dt> |
| <dd><tt>dictionary for instance variables (if defined)</tt></dd> |
| </dl> |
| <dl><dt><strong>__weakref__</strong></dt> |
| <dd><tt>list of weak references to the object (if defined)</tt></dd> |
| </dl> |
| </td></tr></table></td></tr></table><p> |
| <table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section"> |
| <tr bgcolor="#55aa55"> |
| <td colspan=3 valign=bottom> <br> |
| <font color="#ffffff" face="helvetica, arial"><big><strong>Data</strong></big></font></td></tr> |
| |
| <tr><td bgcolor="#55aa55"><tt> </tt></td><td> </td> |
| <td width="100%"><strong>BLOGS_URL</strong> = 'http://www.blogger.com/feeds/%s/blogs'<br> |
| <strong>BLOG_ARCHIVE_URL</strong> = 'http://www.blogger.com/feeds/%s/archive/full'<br> |
| <strong>BLOG_COMMENTS_URL</strong> = 'http://www.blogger.com/feeds/%s/comments/default'<br> |
| <strong>BLOG_PAGE_URL</strong> = 'http://www.blogger.com/feeds/%s/pages/default'<br> |
| <strong>BLOG_POST_COMMENTS_URL</strong> = 'http://www.blogger.com/feeds/%s/%s/comments/default'<br> |
| <strong>BLOG_POST_URL</strong> = 'http://www.blogger.com/feeds/%s/posts/default'<br> |
| <strong>__author__</strong> = 'j.s@google.com (Jeff Scudder)'</td></tr></table><p> |
| <table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section"> |
| <tr bgcolor="#7799ee"> |
| <td colspan=3 valign=bottom> <br> |
| <font color="#ffffff" face="helvetica, arial"><big><strong>Author</strong></big></font></td></tr> |
| |
| <tr><td bgcolor="#7799ee"><tt> </tt></td><td> </td> |
| <td width="100%">j.s@google.com (Jeff Scudder)</td></tr></table> |
| </body></html> |