Refresh docs
diff --git a/docs/epy/oauth2client.xsrfutil-pysrc.html b/docs/epy/oauth2client.xsrfutil-pysrc.html
index 4f04399..e6e1c1c 100644
--- a/docs/epy/oauth2client.xsrfutil-pysrc.html
+++ b/docs/epy/oauth2client.xsrfutil-pysrc.html
@@ -108,20 +108,20 @@
<a name="L53"></a><tt class="py-lineno"> 53</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
<a name="L54"></a><tt class="py-lineno"> 54</tt> <tt class="py-line"> <tt class="py-name">when</tt> <tt class="py-op">=</tt> <tt class="py-name">when</tt> <tt class="py-keyword">or</tt> <tt class="py-name">int</tt><tt class="py-op">(</tt><tt class="py-name">time</tt><tt class="py-op">.</tt><tt class="py-name">time</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
<a name="L55"></a><tt class="py-lineno"> 55</tt> <tt class="py-line"> <tt class="py-name">digester</tt> <tt class="py-op">=</tt> <tt class="py-name">hmac</tt><tt class="py-op">.</tt><tt class="py-name">new</tt><tt class="py-op">(</tt><tt class="py-name">key</tt><tt class="py-op">)</tt> </tt>
-<a name="L56"></a><tt class="py-lineno"> 56</tt> <tt class="py-line"> <tt class="py-name">digester</tt><tt class="py-op">.</tt><tt class="py-name">update</tt><tt class="py-op">(</tt><tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-name">user_id</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L57"></a><tt class="py-lineno"> 57</tt> <tt class="py-line"> <tt class="py-name">digester</tt><tt class="py-op">.</tt><tt class="py-name">update</tt><tt class="py-op">(</tt><tt id="link-5" class="py-name"><a title="oauth2client.xsrfutil.DELIMITER" class="py-name" href="#" onclick="return doclink('link-5', 'DELIMITER', 'link-2');">DELIMITER</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L58"></a><tt class="py-lineno"> 58</tt> <tt class="py-line"> <tt class="py-name">digester</tt><tt class="py-op">.</tt><tt class="py-name">update</tt><tt class="py-op">(</tt><tt class="py-name">action_id</tt><tt class="py-op">)</tt> </tt>
-<a name="L59"></a><tt class="py-lineno"> 59</tt> <tt class="py-line"> <tt class="py-name">digester</tt><tt class="py-op">.</tt><tt class="py-name">update</tt><tt class="py-op">(</tt><tt id="link-6" class="py-name"><a title="oauth2client.xsrfutil.DELIMITER" class="py-name" href="#" onclick="return doclink('link-6', 'DELIMITER', 'link-2');">DELIMITER</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L60"></a><tt class="py-lineno"> 60</tt> <tt class="py-line"> <tt class="py-name">digester</tt><tt class="py-op">.</tt><tt class="py-name">update</tt><tt class="py-op">(</tt><tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-name">when</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L56"></a><tt class="py-lineno"> 56</tt> <tt class="py-line"> <tt class="py-name">digester</tt><tt class="py-op">.</tt><tt id="link-5" class="py-name" targets="Method apiclient.channel.Channel.update()=apiclient.channel.Channel-class.html#update"><a title="apiclient.channel.Channel.update" class="py-name" href="#" onclick="return doclink('link-5', 'update', 'link-5');">update</a></tt><tt class="py-op">(</tt><tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-name">user_id</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L57"></a><tt class="py-lineno"> 57</tt> <tt class="py-line"> <tt class="py-name">digester</tt><tt class="py-op">.</tt><tt id="link-6" class="py-name"><a title="apiclient.channel.Channel.update" class="py-name" href="#" onclick="return doclink('link-6', 'update', 'link-5');">update</a></tt><tt class="py-op">(</tt><tt id="link-7" class="py-name"><a title="oauth2client.xsrfutil.DELIMITER" class="py-name" href="#" onclick="return doclink('link-7', 'DELIMITER', 'link-2');">DELIMITER</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L58"></a><tt class="py-lineno"> 58</tt> <tt class="py-line"> <tt class="py-name">digester</tt><tt class="py-op">.</tt><tt id="link-8" class="py-name"><a title="apiclient.channel.Channel.update" class="py-name" href="#" onclick="return doclink('link-8', 'update', 'link-5');">update</a></tt><tt class="py-op">(</tt><tt class="py-name">action_id</tt><tt class="py-op">)</tt> </tt>
+<a name="L59"></a><tt class="py-lineno"> 59</tt> <tt class="py-line"> <tt class="py-name">digester</tt><tt class="py-op">.</tt><tt id="link-9" class="py-name"><a title="apiclient.channel.Channel.update" class="py-name" href="#" onclick="return doclink('link-9', 'update', 'link-5');">update</a></tt><tt class="py-op">(</tt><tt id="link-10" class="py-name"><a title="oauth2client.xsrfutil.DELIMITER" class="py-name" href="#" onclick="return doclink('link-10', 'DELIMITER', 'link-2');">DELIMITER</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L60"></a><tt class="py-lineno"> 60</tt> <tt class="py-line"> <tt class="py-name">digester</tt><tt class="py-op">.</tt><tt id="link-11" class="py-name"><a title="apiclient.channel.Channel.update" class="py-name" href="#" onclick="return doclink('link-11', 'update', 'link-5');">update</a></tt><tt class="py-op">(</tt><tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-name">when</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
<a name="L61"></a><tt class="py-lineno"> 61</tt> <tt class="py-line"> <tt class="py-name">digest</tt> <tt class="py-op">=</tt> <tt class="py-name">digester</tt><tt class="py-op">.</tt><tt class="py-name">digest</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
<a name="L62"></a><tt class="py-lineno"> 62</tt> <tt class="py-line"> </tt>
<a name="L63"></a><tt class="py-lineno"> 63</tt> <tt class="py-line"> <tt class="py-name">token</tt> <tt class="py-op">=</tt> <tt class="py-name">base64</tt><tt class="py-op">.</tt><tt class="py-name">urlsafe_b64encode</tt><tt class="py-op">(</tt><tt class="py-string">'%s%s%d'</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">digest</tt><tt class="py-op">,</tt> </tt>
-<a name="L64"></a><tt class="py-lineno"> 64</tt> <tt class="py-line"> <tt id="link-7" class="py-name"><a title="oauth2client.xsrfutil.DELIMITER" class="py-name" href="#" onclick="return doclink('link-7', 'DELIMITER', 'link-2');">DELIMITER</a></tt><tt class="py-op">,</tt> </tt>
+<a name="L64"></a><tt class="py-lineno"> 64</tt> <tt class="py-line"> <tt id="link-12" class="py-name"><a title="oauth2client.xsrfutil.DELIMITER" class="py-name" href="#" onclick="return doclink('link-12', 'DELIMITER', 'link-2');">DELIMITER</a></tt><tt class="py-op">,</tt> </tt>
<a name="L65"></a><tt class="py-lineno"> 65</tt> <tt class="py-line"> <tt class="py-name">when</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
<a name="L66"></a><tt class="py-lineno"> 66</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">token</tt> </tt>
</div><a name="L67"></a><tt class="py-lineno"> 67</tt> <tt class="py-line"> </tt>
<a name="validate_token"></a><div id="validate_token-def"><a name="L68"></a><tt class="py-lineno"> 68</tt> <tt class="py-line"> </tt>
-<a name="L69"></a><tt class="py-lineno"> 69</tt> <tt class="py-line"><tt class="py-decorator">@</tt><tt class="py-decorator">util</tt><tt class="py-op">.</tt><tt id="link-8" class="py-name"><a title="oauth2client.util.positional" class="py-name" href="#" onclick="return doclink('link-8', 'positional', 'link-4');">positional</a></tt><tt class="py-op">(</tt><tt class="py-number">3</tt><tt class="py-op">)</tt> </tt>
+<a name="L69"></a><tt class="py-lineno"> 69</tt> <tt class="py-line"><tt class="py-decorator">@</tt><tt class="py-decorator">util</tt><tt class="py-op">.</tt><tt id="link-13" class="py-name"><a title="oauth2client.util.positional" class="py-name" href="#" onclick="return doclink('link-13', 'positional', 'link-4');">positional</a></tt><tt class="py-op">(</tt><tt class="py-number">3</tt><tt class="py-op">)</tt> </tt>
<a name="L70"></a><tt class="py-lineno"> 70</tt> <a class="py-toggle" href="#" id="validate_token-toggle" onclick="return toggle('validate_token');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="oauth2client.xsrfutil-module.html#validate_token">validate_token</a><tt class="py-op">(</tt><tt class="py-param">key</tt><tt class="py-op">,</tt> <tt class="py-param">token</tt><tt class="py-op">,</tt> <tt class="py-param">user_id</tt><tt class="py-op">,</tt> <tt class="py-param">action_id</tt><tt class="py-op">=</tt><tt class="py-string">""</tt><tt class="py-op">,</tt> <tt class="py-param">current_time</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
</div><div id="validate_token-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="validate_token-expanded"><a name="L71"></a><tt class="py-lineno"> 71</tt> <tt class="py-line"> <tt class="py-docstring">"""Validates that the given token authorizes the user for the action.</tt> </tt>
<a name="L72"></a><tt class="py-lineno"> 72</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
@@ -143,17 +143,17 @@
<a name="L88"></a><tt class="py-lineno"> 88</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">False</tt> </tt>
<a name="L89"></a><tt class="py-lineno"> 89</tt> <tt class="py-line"> <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
<a name="L90"></a><tt class="py-lineno"> 90</tt> <tt class="py-line"> <tt class="py-name">decoded</tt> <tt class="py-op">=</tt> <tt class="py-name">base64</tt><tt class="py-op">.</tt><tt class="py-name">urlsafe_b64decode</tt><tt class="py-op">(</tt><tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-name">token</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L91"></a><tt class="py-lineno"> 91</tt> <tt class="py-line"> <tt class="py-name">token_time</tt> <tt class="py-op">=</tt> <tt class="py-name">long</tt><tt class="py-op">(</tt><tt class="py-name">decoded</tt><tt class="py-op">.</tt><tt class="py-name">split</tt><tt class="py-op">(</tt><tt id="link-9" class="py-name"><a title="oauth2client.xsrfutil.DELIMITER" class="py-name" href="#" onclick="return doclink('link-9', 'DELIMITER', 'link-2');">DELIMITER</a></tt><tt class="py-op">)</tt><tt class="py-op">[</tt><tt class="py-op">-</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L91"></a><tt class="py-lineno"> 91</tt> <tt class="py-line"> <tt class="py-name">token_time</tt> <tt class="py-op">=</tt> <tt class="py-name">long</tt><tt class="py-op">(</tt><tt class="py-name">decoded</tt><tt class="py-op">.</tt><tt class="py-name">split</tt><tt class="py-op">(</tt><tt id="link-14" class="py-name"><a title="oauth2client.xsrfutil.DELIMITER" class="py-name" href="#" onclick="return doclink('link-14', 'DELIMITER', 'link-2');">DELIMITER</a></tt><tt class="py-op">)</tt><tt class="py-op">[</tt><tt class="py-op">-</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
<a name="L92"></a><tt class="py-lineno"> 92</tt> <tt class="py-line"> <tt class="py-keyword">except</tt> <tt class="py-op">(</tt><tt class="py-name">TypeError</tt><tt class="py-op">,</tt> <tt class="py-name">ValueError</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
<a name="L93"></a><tt class="py-lineno"> 93</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">False</tt> </tt>
<a name="L94"></a><tt class="py-lineno"> 94</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">current_time</tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
<a name="L95"></a><tt class="py-lineno"> 95</tt> <tt class="py-line"> <tt class="py-name">current_time</tt> <tt class="py-op">=</tt> <tt class="py-name">time</tt><tt class="py-op">.</tt><tt class="py-name">time</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
<a name="L96"></a><tt class="py-lineno"> 96</tt> <tt class="py-line"> <tt class="py-comment"># If the token is too old it's not valid.</tt> </tt>
-<a name="L97"></a><tt class="py-lineno"> 97</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">current_time</tt> <tt class="py-op">-</tt> <tt class="py-name">token_time</tt> <tt class="py-op">></tt> <tt id="link-10" class="py-name"><a title="oauth2client.xsrfutil.DEFAULT_TIMEOUT_SECS" class="py-name" href="#" onclick="return doclink('link-10', 'DEFAULT_TIMEOUT_SECS', 'link-3');">DEFAULT_TIMEOUT_SECS</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L97"></a><tt class="py-lineno"> 97</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">current_time</tt> <tt class="py-op">-</tt> <tt class="py-name">token_time</tt> <tt class="py-op">></tt> <tt id="link-15" class="py-name"><a title="oauth2client.xsrfutil.DEFAULT_TIMEOUT_SECS" class="py-name" href="#" onclick="return doclink('link-15', 'DEFAULT_TIMEOUT_SECS', 'link-3');">DEFAULT_TIMEOUT_SECS</a></tt><tt class="py-op">:</tt> </tt>
<a name="L98"></a><tt class="py-lineno"> 98</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">False</tt> </tt>
<a name="L99"></a><tt class="py-lineno"> 99</tt> <tt class="py-line"> </tt>
<a name="L100"></a><tt class="py-lineno">100</tt> <tt class="py-line"> <tt class="py-comment"># The given token should match the generated one with the same time.</tt> </tt>
-<a name="L101"></a><tt class="py-lineno">101</tt> <tt class="py-line"> <tt class="py-name">expected_token</tt> <tt class="py-op">=</tt> <tt id="link-11" class="py-name" targets="Function oauth2client.xsrfutil.generate_token()=oauth2client.xsrfutil-module.html#generate_token"><a title="oauth2client.xsrfutil.generate_token" class="py-name" href="#" onclick="return doclink('link-11', 'generate_token', 'link-11');">generate_token</a></tt><tt class="py-op">(</tt><tt class="py-name">key</tt><tt class="py-op">,</tt> <tt class="py-name">user_id</tt><tt class="py-op">,</tt> <tt class="py-name">action_id</tt><tt class="py-op">=</tt><tt class="py-name">action_id</tt><tt class="py-op">,</tt> </tt>
+<a name="L101"></a><tt class="py-lineno">101</tt> <tt class="py-line"> <tt class="py-name">expected_token</tt> <tt class="py-op">=</tt> <tt id="link-16" class="py-name" targets="Function oauth2client.xsrfutil.generate_token()=oauth2client.xsrfutil-module.html#generate_token"><a title="oauth2client.xsrfutil.generate_token" class="py-name" href="#" onclick="return doclink('link-16', 'generate_token', 'link-16');">generate_token</a></tt><tt class="py-op">(</tt><tt class="py-name">key</tt><tt class="py-op">,</tt> <tt class="py-name">user_id</tt><tt class="py-op">,</tt> <tt class="py-name">action_id</tt><tt class="py-op">=</tt><tt class="py-name">action_id</tt><tt class="py-op">,</tt> </tt>
<a name="L102"></a><tt class="py-lineno">102</tt> <tt class="py-line"> <tt class="py-name">when</tt><tt class="py-op">=</tt><tt class="py-name">token_time</tt><tt class="py-op">)</tt> </tt>
<a name="L103"></a><tt class="py-lineno">103</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">token</tt><tt class="py-op">)</tt> <tt class="py-op">!=</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">expected_token</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
<a name="L104"></a><tt class="py-lineno">104</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">False</tt> </tt>
@@ -196,7 +196,7 @@
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Thu Mar 7 10:31:25 2013
+ Generated by Epydoc 3.0.1 on Tue Aug 6 12:16:47 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"