Example #1
0
def get_user_friends_by_initial_words(user_id):
    dbsession = DBSession()
    friends = dbsession.query(FD_T_Friend).filter(
        FD_T_Friend.user_id == user_id).all()
    friends = [i.dict() for i in friends]

    friends = dbsession.query(FD_T_Friend.friend_id, FD_T_Friend.friend_name, FD_T_User.gender, FD_T_User.mcode,
                              FD_T_User.qrcode,
                              FD_T_User.phone_no, FD_T_User.email, FD_T_User.portrait_url, FD_T_User.city_id,
                              FD_T_Citycode.city_name,
                              FD_T_User.name, FD_T_User.birthday) \
        .outerjoin(FD_T_User, FD_T_User.user_id == FD_T_Friend.friend_id) \
        .outerjoin(FD_T_Citycode, FD_T_User.city_id == FD_T_Citycode.city_id) \
        .filter(FD_T_Friend.user_id == user_id).distinct()
    friends = [{
        'friend_id':
        i[0],
        'friend_name':
        i[1],
        'gender':
        i[2],
        'mcode':
        i[3],
        'qrcode':
        i[4],
        'phone_no':
        i[5],
        'email':
        i[6],
        'portrait_url':
        OSS_URL_PRIFIX + i[7] if i[7] else OSS_URL_PRIFIX +
        CONFIG.PORTRAIT_URL,
        'city_id':
        i[8],
        'city_name':
        i[9],
        'name':
        i[10],
        'birthday':
        i[11].strftime('%Y-%m-%d %H:%M:%S:%f') if i[11] else None
    } for i in friends]

    friends_cate = {}
    p = Pinyin()
    for i in friends:
        if i['friend_name']:
            initial_word = p.get_initial(i['friend_name'][0]).upper()
            if initial_word not in friends_cate:
                friends_cate[initial_word] = []
            friends_cate[initial_word].append(i)
        else:
            initial_word = p.get_initial(i['name'][0]).upper()
            if initial_word not in friends_cate:
                friends_cate[initial_word] = []
            friends_cate[initial_word].append(i)

    return {
        'total_num': len(friends),
        'friends': friends_cate,
    }
Example #2
0
class PinyinTests(unittest.TestCase):
    def setUp(self):
        import cpinyin
        cpinyin.install()
        from xpinyin import Pinyin
        self.p = Pinyin()

    def test_get_pinyin_with_default_splitter(self):
        self.assertEqual(self.p.get_pinyin(u'上海'), u'shang-hai')

    def test_get_pinyin_with_splitter(self):
        self.assertEqual(self.p.get_pinyin(u'上海', splitter=u''), u'shanghai')

    def test_get_pinyin_mixed_words(self):
        self.assertEqual(self.p.get_pinyin(u'Apple发布iOS7', splitter=u'-'),
                         u'Apple-fa-bu-iOS7')

    def test_get_pinyin_with_tone_marks(self):
        self.assertEqual(self.p.get_pinyin(u'上海', tone_marks=u'marks'),
                         u'sh\xe0ng-h\u01cei')

    def test_get_pinyin_with_tone_marks(self):
        self.assertEqual(self.p.get_pinyin(u'秋', tone_marks=u'marks'), u'qiū')

    def test_get_initial(self):
        self.assertEqual(self.p.get_initial(u'你'), u'N')

    def test_get_initials(self):
        self.assertEqual(self.p.get_initials(u'你好'), u'N-H')

    def test_get_initials_with_splitter(self):
        self.assertEqual(self.p.get_initials(u'你好', u' '), u'N H')
        self.assertEqual(self.p.get_initials(u'你好', u''), u'NH')
Example #3
0
def get_user_friends_by_initial_words(user_id):
    dbsession = DBSession()
    friends = dbsession.query(FD_T_Friend).filter(FD_T_Friend.user_id == user_id).all()
    friends = [i.dict() for i in friends]

    friends = dbsession.query(FD_T_Friend.friend_id, FD_T_Friend.friend_name, FD_T_User.gender, FD_T_User.mcode,
                              FD_T_User.qrcode,
                              FD_T_User.phone_no, FD_T_User.email, FD_T_User.portrait_url, FD_T_User.city_id,
                              FD_T_Citycode.city_name,
                              FD_T_User.name, FD_T_User.birthday) \
        .outerjoin(FD_T_User, FD_T_User.user_id == FD_T_Friend.friend_id) \
        .outerjoin(FD_T_Citycode, FD_T_User.city_id == FD_T_Citycode.city_id) \
        .filter(FD_T_Friend.user_id == user_id).distinct()
    friends = [{'friend_id': i[0],
                'friend_name': i[1],
                'gender': i[2],
                'mcode': i[3],
                'qrcode': i[4],
                'phone_no': i[5],
                'email': i[6],
                'portrait_url': OSS_URL_PRIFIX + i[7] if i[7] else OSS_URL_PRIFIX + CONFIG.PORTRAIT_URL,
                'city_id': i[8],
                'city_name': i[9],
                'name': i[10],
                'birthday': i[11].strftime('%Y-%m-%d %H:%M:%S:%f') if i[11] else None} for i in friends]

    friends_cate = {}
    p = Pinyin()
    for i in friends:
        if i['friend_name']:
            initial_word = p.get_initial(i['friend_name'][0]).upper()
            if initial_word not in friends_cate:
                friends_cate[initial_word] = []
            friends_cate[initial_word].append(i)
        else:
            initial_word = p.get_initial(i['name'][0]).upper()
            if initial_word not in friends_cate:
                friends_cate[initial_word] = []
            friends_cate[initial_word].append(i)

    return {
        'total_num': len(friends),
        'friends': friends_cate,
    }
Example #4
0
# 转换简体到繁体
def chs_2_cht(sentence):
    sentence = Converter('zh-hant').convert(sentence)
    return sentence


line_chs = '忧郁的台湾乌龟'
line_cht = chs_2_cht(line_chs)
print(line_cht)

from xpinyin import Pinyin

p = Pinyin()

# 默认分隔符为-
print(p.get_pinyin("上海"))

# 显示声调
print(p.get_pinyin("上海", tone_marks='marks'))
print(p.get_pinyin("上海", tone_marks='numbers'))

# 去掉分隔符
print(p.get_pinyin("上海", ''))
# 设为分隔符为空格
print(p.get_pinyin("上海", ' '))

# 获取拼音首字母
print(p.get_initial("上"))
print(p.get_initials("上海"))
print(p.get_initials("上海", ''))
print(p.get_initials("上海", ' '))
Example #5
0
#!usr/bin/env python
#coding: utf-8

from xpinyin import Pinyin

p = Pinyin()
# default splitter is '-'
print p.get_pinyin(u"上海")

# show tone marks
print p.get_pinyin(u"上海", tone_marks="marks")  # 使用拼音声调符号
print p.get_pinyin(u"上海", tone_marks="numbers")  # 使用拼音声调数字表示

# remove splitter
print p.get_pinyin(u"上海", '')  # 没有分隔符

# set splitter as whitespace
print p.get_pinyin(u"上海", ' ')  # 以空格分隔

# 显示单个汉字首字母大写
print p.get_initial(u"上")

#显示多个汉字首字母大写,用‘-’链接
print p.get_initials(u"上海")

# 取消连接符
print p.get_initials(u"上海", u'')

# 使用空格链接
print p.get_initials(u"上海", u' ')
Example #6
0
#!/usr/bin/env python
#-*- coding:UTF-8 -*-

import sys;
from xpinyin import Pinyin
p = Pinyin()
# default splitter is `-`
print p.get_pinyin(u"上海")
# show tone marks
print p.get_pinyin(u"上海", show_tone_marks=True)
# remove splitter
print p.get_pinyin(u"上海", '')
# set splitter as whitespace
print p.get_pinyin(u"上海", ' ')
print p.get_initial(u"上")
print p.get_initials(u"上海")
print p.get_initials(u"上海", u'')
print p.get_initials(u"上海", u' ')

#如果方法中传入变量,那么直接加前缀是不可以了。而是要将变量转为utf-8编码:
wordvalue = '中国'
wordvalue= unicode(wordvalue,'utf-8')
s = p.get_initials(wordvalue, u'').lower()
print s