Switch foo.has_key(bar) to "bar in foo" (and its negation).
Note last update attempt as well as actual update fetch.

If we try to grab updates and fail, we update our last-run time (so that
we don't try to re-fetch too soon) but not the last-update time.  This
ensures that we switch from "day" to "week" if things are failing.