def apply_mapping(mapping): channels = get_channels() for channel in channels: for p in channel.programs: name = normallize_name(p.name.encode('utf8')) matched_douban_movie_id = mapping.get(name) if matched_douban_movie_id: exist = db.session.query(ProgramExtra) \ .filter(ProgramExtra.name==name) \ .filter(ProgramExtra.douban_movie_id==matched_douban_movie_id) \ .first() if not exist: print 'apply %s to %s' % (matched_douban_movie_id, p) extra = ProgramExtra( name=name, douban_movie_id=matched_douban_movie_id, program_id=p.id, ) p.extra = extra db.session.add(extra) db.session.add(p) else: print 'exist:', name, matched_douban_movie_id db.session.commit() print channel, 'applied'
def test_normallize_name(self): names = [ ('故事片:蜘蛛侠', '蜘蛛侠'), ('电影情报站 (1) ', ''), ('醉拳3', '醉拳3'), ('格斗之夜(224)', '格斗之夜'), ('八辈子学吃(1)', '八辈子学吃'), ('2012我要上春晚特别节目-直通春晚(4)1/3', '-我要上春晚特别节目-直通春晚'), ('电视剧:加油妈妈17/35', '加油妈妈'), ('消费主张周末版45', '消费主张周末版45'), ('故事片:东成西就2011', '东成西就2011'), ('新闻1+1(重播)', '新闻-+1'), ('电视剧:铁齿铜牙纪晓岚4(11)', '铁齿铜牙纪晓岚-'), ('电视剧:新都市人(9、10)', '新都市人'), ('电视剧:媳妇的美好宣言(28-32)', '媳妇的美好宣言'), ('午间360', '午间360'), ('热门影院2012年11月30日3', '热门影院-年-月-日3'), ('发现中国(123)', '发现中国'), ('刷新3+7', '刷新-+7'), ('回看 父子神探之神秘数字', '父子神探之神秘数字'), ('回看 故事片: 民警故事', '民警故事'), ('电影:大沙暴', '大沙暴') ] for i, (name, expect) in enumerate(names): result = normallize_name(name) print i, expect, result, name self.assertEquals(expect, result)
def get_all_normalized_names(): names = get_all_names() names = unique([normallize_name(n) for n in names]) names = [n for n in names if n] return names