Pastie now auto-senses if line-wrap is a bad or good idea. Feedback?
## mark a section (Learn more)
--- twitter.py 2008-05-26 12:01:47.015625000 -0400 +++ w:\quoquo\twitter.py 2008-05-26 10:35:13.921875000 -0400 @@ -7,7 +7,7 @@ __author__ = 'dewitt@google.com' __version__ = '0.6-devel' - +from google.appengine.api import urlfetch import base64 import md5 import os @@ -898,7 +898,7 @@ input_encoding: The encoding used to encode input strings. [optional] request_header: A dictionary of additional HTTP request headers. [optional] ''' - self._cache = _FileCache() + self._cache = None # GAE hack by shadytrees. self._urllib = urllib2 self._cache_timeout = Api.DEFAULT_CACHE_TIMEOUT self._InitializeRequestHeaders(request_headers) @@ -1428,42 +1428,25 @@ Returns: A string containing the body of the response. ''' - # Build the extra parameters dict - extra_params = {} - if self._default_params: - extra_params.update(self._default_params) - if parameters: - extra_params.update(parameters) - - # Add key/value parameters to the query string of the url - url = self._BuildUrl(url, extra_params=extra_params) - - # Get a url opener that can handle basic auth - opener = self._GetOpener(url, username=self._username, password=self._password) - - encoded_post_data = self._EncodePostData(post_data) - - # Open and return the URL immediately if we're not going to cache - if encoded_post_data or no_cache or not self._cache or not self._cache_timeout: - url_data = opener.open(url, encoded_post_data).read() - else: - # Unique keys are a combination of the url and the username - if self._username: - key = self._username + ':' + url - else: - key = url - - # See if it has been cached before - last_cached = self._cache.GetCachedTime(key) - # If the cached version is outdated then fetch another and store it - if not last_cached or time.time() >= last_cached + self._cache_timeout: - url_data = opener.open(url, encoded_post_data).read() - self._cache.Set(key, url_data) - else: - url_data = self._cache.Get(key) - - # Always return the latest version + method = urlfetch.GET + data = {} + if post_data: + method = urlfetch.POST + data.update(post_data) + + params = {} + for x in (parameters, self._default_params): + if x: params.update(x) + + url = self._BuildUrl(url, extra_params = params) + headers = {} + if method == urlfetch.POST: + headers.update({'Content-type':'application/x-www-form-urlencoded'}) + + # Skip the cache, we're on GAE. This hack by shadytrees. + url_data = urlfetch.fetch(url, payload = urllib.urlencode(data), + method = method, headers = headers).content return url_data class _FileCacheError(Exception): @@ -1518,6 +1501,7 @@ def _GetUsername(self): '''Attempt to find the username in a cross-platform fashion.''' + return 'nobody' # GAE hack by shadytrees. try: return os.getenv('USER') or \ os.getenv('LOGNAME') or \
This paste will be private.
From the Design Piracy series on my blog: