models.py 文件源码

python
阅读 22 收藏 0 点赞 0 评论 0

项目:instagram-tag-crawler 作者: muik 项目源码 文件源码
def save(cls, media):
    recent_owner_ids = (memcache.get(cls.KEY_PRE_OWNER_IDS) or '').split()
    recent_codes = cls._get_recent_codes()
    codes_set = set(recent_codes)
    owner_ids_set = set(recent_owner_ids)
    new_media = []

    for item in media:
      if not TagValidator.is_valid_tags(item['tags']):
        continue
      if item['code'] in codes_set:
        continue
      if item['owner']['id'] in owner_ids_set:
        continue
      new_media.append(item)
      owner_ids_set.add(item['owner']['id'])
      codes_set.add(item['code'])

    if not new_media:
      return 0

    tag_text = cls()
    tag_text.text = '\n'.join(map(cls._to_line, new_media))
    tag_text.put()

    recent_codes.extend([x['code'] for x in media])
    recent_owner_ids.extend([x['owner']['id'] for x in new_media])
    cls._set_cache(recent_codes, cls.MAX_CODES_COUNT, cls.KEY_RECENT_CODES)
    cls._set_cache(recent_owner_ids, cls.MAX_OWNER_COUNT, cls.KEY_PRE_OWNER_IDS)

    tags = reduce(lambda y,x: y+x['tags'], new_media, [])
    tags = set(tags)
    cls._set_last_tags(tags)

    return len(new_media)
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号