<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def update(self, skill=None, author=None):
 """Update all downloaded skills or one specified skill."""

        if skill is None:
            return self.update_all()
        else:
            if isinstance(skill, str):
                skill = self.find_skill(skill, author)
            entry = get_skill_entry(skill.name, self.skills_data)
            if entry:
                entry['beta'] = skill.is_beta
            if skill.update():
                # On successful update update the update value
                if entry:
                    entry['updated'] = time.time()