試験とか何とか

ぐちゃぐちゃ文句ばっか言ってないで読む。
ざっくり見るに views.py がキモ。とりあえず urls.py を見るに views.py の

  • mainview
  • opml -> blogroll
  • foaf -> blogroll
  • rssfeed -> buildfeed
  • atomfeed -> buildfeed

が入口っぽいのですが、これらから呼ばれているのが initview な手続き。

def initview(request):
    """ Retrieves the basic data needed by all feeds (host, feeds, etc)

    Returns a tuple of:
    1. A valid cached response or None
    2. The current site object
    3. The cache key
    4. The subscribers for the site (objects)
    5. The feeds for the site (ids)
    """

    site_id, cachekey = fjlib.getcurrentsite(request.META['HTTP_HOST'], \
      request.META.get('REQUEST_URI', request.META.get('PATH_INFO', '/')), \
      request.META['QUERY_STRING'])
    response = fjcache.cache_get(site_id, cachekey)
    if response:
        return response, None, cachekey, [], []

    site = models.Site.objects.get(pk=site_id)
    sfeeds_obj = fjlib.sitefeeds(site)
    sfeeds_ids = [subscriber.feed.id for subscriber in sfeeds_obj]

    return None, site, cachekey, sfeeds_obj, sfeeds_ids

最初のブロックで cache なソレを検索して

  • あればソレを戻す
  • なければ model から引っ張って云々

に見える。なんかざっくりベースで可読性高いな。とは言え

    sfeeds_obj = fjlib.sitefeeds(site)
    sfeeds_ids = [subscriber.feed.id for subscriber in sfeeds_obj]

なあたり微妙。
明日朝も掘れるかも (何