def boy_chart(cls): ids = {} for d in Card.gets_by_tag('萌'): ids[d.id] = 1 for d in Card.gets_by_tag('单身'): n = ids.get(d.id, 0) ids[d.id] = n + 1 for d in Card.gets_by_tag('少年'): n = ids.get(d.id, 0) ids[d.id] = n + 1 for d in Card.gets_by_tag('gay'): n = ids.get(d.id, 0) ids[d.id] = n + 1 for d in Card.gets_by_tag('娘'): n = ids.get(d.id, 0) ids[d.id] = n + 1 rs = store.execute("select user_id from me_profile where flag=N and sex=1 and marriage in (1, 2, 12)") for r in rs: i = str(r[0]) n = ids.get(i, 0) ids[i] = n + 2 love_cards = [Card.get(i) for i, n in ids.iteritems() if n > 1] love_cards = [d for d in love_cards if d.profile.sex != 2] love_cards = sorted(love_cards, key=attrgetter('score'), reverse=True) return love_cards
def girl_chart(cls): ids = {} for d in Card.gets_by_tag('萌'): ids[d.id] = 1 for d in Card.gets_by_tag('单身'): n = ids.get(d.id, 0) ids[d.id] = n + 1 for d in Card.gets_by_tag('妹子'): n = ids.get(d.id, 0) ids[d.id] = n + 1 for d in Card.gets_by_tag('萝莉'): n = ids.get(d.id, 0) ids[d.id] = n + 1 for d in Card.gets_by_tag(''): n = ids.get(d.id, 0) ids[d.id] = n + 1 rs = store.execute("select user_id from me_profile where flag=N and sex=2 and marriage in (1, 2, 12)") for r in rs: i = str(r[0]) n = ids.get(i, 0) ids[i] = n + 2 love_cards = [Card.get(i) for i, n in ids.iteritems() if n > 1] love_cards = [d for d in love_cards if ('汉子' not in ' '.join(d.ptag_names) and d.profile.sex != 1)] love_cards = sorted(love_cards, key=attrgetter('score'), reverse=True) return love_cards
def update_tags(self, tags): rs = store.execute("select tag_id from me_group_tag where group_id=%s and tagger_id=%s" " order by tag_id", (self.id, self.user_id)) old_tag_ids = [str(r[0]) for r in rs] #print 'old tag ids', old_tag_ids store.execute("delete from me_group_tag where group_id=%s and tagger_id=%s", (self.id, self.user_id)) for t in tags: if t: r = store.execute("select id from me_tag where name=%s", t) if r and r[0]: tag_id = r[0][0] else: store.execute("insert into me_tag(name) values(%s)", t) tag_id = store.get_cursor(table="me_tag").lastrowid if tag_id: store.execute("replace into me_group_tag(group_id, tagger_id, tag_id)" " values(%s,%s,%s)", (self.id, self.user_id, tag_id)) store.commit() for t in self.tag_names: ds = Card.gets_by_tag(t) [self._join(d.id) for d in ds] Notify.new(self.user_id, self.user_id, Notify.TYPE_TAG_ADD_GROUP, extra={"group_id":self.id, "tag":t})
def _q_lookup(req, tag): tag = unescape_path(tag) cards = Card.gets_by_tag(tag) return st('/cards/tag.html', **locals())