Exemple #1
0
def create_html_data_page(all_json):
    retxt = '<script>\ndota_json_hero_data={'
    p = Pinyin()
    for i in all_json['英雄']:
        retxt += '\n"' + i + '":{"拼音":"' + p.get_pinyin(i).replace('-', '') + '","英文":"' + all_json['英雄'][i]['英文名'] + '","代码":"' + all_json['英雄'][i]['代码名'] + '","攻击后摇":"' + str(all_json['英雄'][i]['攻击后摇']) + '",'
        for j in [['主属性'], ['近战远程'], ['阵营'], ['碰撞体积'], ['边界体积'], ['体质类型']] + heropro_num:
            retxt += '"' + j[0] + '":'
            if isinstance(all_json['英雄'][i][j[0]]['1'], str):
                retxt += '"' + all_json['英雄'][i][j[0]]['1'] + '",'
            else:
                retxt += ability.better_float_to_text(all_json['英雄'][i][j[0]]['1']) + ','
        retxt += '"技能":['
        for j in range(len(all_json['英雄'][i]['技能'])-8):
            retxt += '"' + all_json['英雄'][i]['技能'][j] + '",'
        talent=['10级左','10级右','15级左','15级右','20级左','20级右','25级左','25级右']
        for j in talent:
            retxt+='"' +i+ j + '天赋",'
        retxt = retxt.rstrip(',') + '],"技能中文名":['
        for j in range(len(all_json['英雄'][i]['技能'])-8):
            w=all_json['英雄'][i]['技能'][j]
            retxt += "'" + all_json['技能'][w]['中文名'] + "',"
        for j in talent:
            w=i+ j + '天赋'
            retxt+= "'" + all_json['技能'][w]['中文名'] + "',"
        retxt = retxt.rstrip(',') + '],"全属性黄点":' + str(all_json['英雄'][i]['全属性黄点']) + ','
        retxt = retxt.rstrip(',') + '},'
    retxt = retxt.rstrip(',') + '};\n</script>'
    return retxt
Exemple #2
0
def fromCodeToName(factors, codes):
    # 准备数据
    name = factors[factors.index.isin(codes)].name.values
    # 将汉字转换为拼音
    p = Pinyin()
    names = [p.get_pinyin(s) for s in name]
    return names
def hanzi2pinyin(city):

    # 汉字2拼音
    pin = Pinyin()
    temp_pin = pin.get_pinyin(city)
    pin = temp_pin.replace('-', '')
    return pin
Exemple #4
0
def get_weather(city):
    p = Pinyin()
    city = p.get_pinyin(city,'')
    url = "http://www.tianqi.com/"+city
    headers = {
        'User-Agent':'Mozilla/5.0'
    }
    html = requests.get(url,headers=headers).text
    tree = etree.HTML(html)
    #城市
    try:
        city_name = tree.xpath('//dd[@class="name"]/h2/text()')[0]
    except:
        content = "没有该城市天气信息,请确认你查询格式"
    #日期格式:"2019年06月25日 星期二 己亥年五月廿三" 
    week = tree.xpath('//dd[@class="week"]/text()')[0].split('\u3000')
    #当前温度
    now = tree.xpath('//p[@class="now"]')[0].xpath('string(.)')
    #今日天气
    temp = tree.xpath('//dd[@class="weather"]/span')[0].xpath('string(.)')
    #湿度匹配出三个元素:1.湿度:84%  2.风向:东风 2级  3.紫外线:无
    shidu = tree.xpath('//dd[@class="shidu"]/b/text()')
    #空气质量格式:空气质量:优
    kongqi = tree.xpath('//dd[@class="kongqi"]/h5/text()')[0]
    #PM格式:PM: 14
    pm = tree.xpath('//dd[@class="kongqi"]/h6/text()')[0]
    content = "【{0}】\n{1}  {2}\n当前温度:{3}\n今日天气:{4}\n{5}\n{6}\n{7}\n{8}\n{9}".format(
        city_name,week[0],week[1],now,temp,shidu[0],shidu[1],shidu[2],kongqi,pm)
    return content
Exemple #5
0
def getScenery(city_name):
    operate = DB.operateDB()
    result = operate.searchCity(city_name)
    if operate.countCity() and not result:
        print('没有这个城市!')
        return
    if not result:
        url = 'http://travel.qunar.com/place'
        getCityURL(url)
        result = operate.searchCity(city_name)
    city_id = result[0][0]
    city_number = result[0][2]
    if not city_number:
        logUtil.getLogger(1).error(city_name + ':没有该旅游城市信息')
    else:
        cityPinYin = "".join(Pinyin().get_pinyin(city_name).split('-'))
        pools = ThreadPoolExecutor(3)
        all_pools = []
        # 景点网页拼接,攻略网页拼接,美食区
        scnery_website = 'https://travel.qunar.com/p-cs' + city_number + '-' + cityPinYin + '-jingdian'
        strategy_website = 'https://travel.qunar.com/travelbook/list/22-' + cityPinYin + '-' + str(
            city_number) + '/hot_heat/1.htm'
        cate_website = 'https://travel.qunar.com/p-cs' + str(
            city_number) + '-' + cityPinYin + '-meishi?page=1'

        all_pools.append(
            pools.submit(qunarScenery.getScenery, ((scnery_website, city_id))))
        all_pools.append(
            pools.submit(qunarStrategy.getStrategy,
                         ((strategy_website, city_name))))
        all_pools.append(
            pools.submit(qunarCate.getCate, ((cate_website, city_id))))

        wait(all_pools, return_when=ALL_COMPLETED)
def read_excel(filepath):
    """读取excel中的内容"""
    excel_obj = xlrd.open_workbook(filename=filepath)  # 获取excel对象

    sheet_name_list = excel_obj.sheet_names()  # 获取excel所有sheet的名称
    print(sheet_name_list)

    # 汉字转为拼音,方便创建表存储数据
    p = Pinyin();
    sheet_name_pinyinlist = []
    for sheet_name in sheet_name_list:
        pinyin_name = p.get_pinyin(sheet_name, splitter="").strip()
        # print("现在处理的是%s处理后是%s" %(sheet_name,pinyin_name))
        sheet_name_pinyinlist.append(pinyin_name)

    print("原始sheet名称是:{sheet_name_list},\n转为拼音后是:{sheet_name_pinyinlist}"
          .format(sheet_name_list=sheet_name_list, sheet_name_pinyinlist=sheet_name_pinyinlist));

    # sheet_obj=excel_obj.sheet_by_name(sheet_name[1]) # 根据sheet名称获取数据
    sheet_obj = excel_obj.sheet_by_index(0)  # 获取第1个工作表
    excel_content="";

    for row in sheet_obj.get_rows():
        print("-------------------------------------------------------")
        for cell in row:
            # print(type(cell))
            # print(cell.value)
            # print(cell.value)
            excel_content+=str(cell.value)

    return excel_content
Exemple #7
0
    def moveButton(self, button_name="成都市"):
        pinyin = Pinyin()
        city_name = re.sub('-', '', pinyin.get_pinyin(button_name))
        ui.City_Button[ui.City_Dict[city_name]].move(
            2 + 180 * ui.City_Dict[city_name], 6)
        ui.City_Button[ui.City_Dict[city_name]].setStyleSheet(
            "border-radius:10px;"
            "text-align:bottom;"
            "padding-bottom:2px;"
            f"background-image:url(../city_pictures/{city_name}.png);"
            "color: rgb(97, 101, 247);font:Bold 12.5pt '等线';")

        # 记录新按下的按钮作为老的按钮,下一次按下其他按钮时,可以对老按钮进行还原
        # 它就像一个开关,按下新按钮时关闭旧按钮
        self.button_flag["old"] = self.button_flag["new"]
        # 当按下同一个按钮时不做按钮还原操作
        if self.button_flag["old"] != city_name + "_" + str(
                ui.City_Dict[city_name]):
            # 按钮还原函数
            self.Reduction(self.button_flag)
        self.button_flag["old"] = self.button_flag["new"]
        self.button_flag["new"] = city_name + "_" + str(
            ui.City_Dict[city_name])

        self.weatherInfo(button_name)  # 天气温度信息获取整理 weatherInfo

        # 以下函数是按下城市按钮,其他控件做出的相应
        self.airButton()

        # 生成新的网页,并在软件界面刷新新的网页
        self.createHtml(button_name)
Exemple #8
0
 def register(params):
     userData = Users().getOne({Users.email == params['email']})
     if (userData == None):
         #昵称首字母
         isChinese = re.compile(u"[\u4e00-\u9fa5]+")
         isEnglish = re.compile('[a-zA-Z]')
         nickNameFirstWord = params['nickName'][0]
         if isChinese.search(nickNameFirstWord):
             first_word = Pinyin().get_initial(nickNameFirstWord)
         elif isEnglish.search(nickNameFirstWord):
             first_word = nickNameFirstWord.upper()
         else:
             first_word = '#'
         data = {
             'email': params['email'],
             'password': Users.set_password(params['password']),
             'nick_name': params['nickName'],
             'head_img': params['headImg'],
             'first_word': first_word,
             'created_at': time.time(),
             'updated_at': time.time()
         }
         user = Users().add(data)
         if user == False:
             return Utils.formatError(Code.BAD_REQUEST, '注册失败')
         else:
             result = UsersAuthJWT.authenticate(params['email'],
                                                params['password'])
             return result
         return Utils.formatError(Code.BAD_REQUEST, '注册失败')
     return Utils.formatError(Code.BAD_REQUEST, '账号已注册')
Exemple #9
0
    def title_change(self):
        ran_str=""
        list_raw = self.title.split(":",1)
        if len(list_raw)==1:
            body = list_raw[0]
            name = ""
        else:
            name = list_raw[0]
            body = list_raw[1]

        l1 = re.split("\W+",body)
        len_num = len(l1)
        ran_list = [x for x in range(len_num)]
        random.shuffle(ran_list)
        print(l1)

        for i in ran_list:
            # print(l1[i])
            if l1[i] !='':
                ran_str=ran_str+l1[i]+','
        ran_str=ran_str[0:-1]+'!'
        if name != '':
            pin = Pinyin()
            name = pin.get_pinyin(name)
            ran_str=ran_str+'--'+name
        return ran_str
Exemple #10
0
def searchALL(bookname, province):
    conn = getCon()
    workbook = xlrd.open_workbook(bookname, "utf-8", formatting_info=True)
    # 按照格式copy一张新的excle
    workbooknew = copy(workbook)
    ws = workbooknew.get_sheet(0)
    for i in range(len(list)):
        sql = "select * from bidata.cusitem_analysis_form where province = '" + province + "' and item = '" + list[
            i] + "';"
        cur = conn.cursor()
        cur.execute(sql)
        all = cur.fetchall()
        for k in all:
            if (i < 5):
                for j in range(2, 2 + len(list2)):
                    setOutCell(ws, int(list2[j - 2]), int(list3[i]), k[j])
            else:
                for j in range(2, len(list4) + 2):
                    setOutCell(ws, int(list2[j - 2]), int(list3[i]),
                               k[int(list4[j - 2])])
    # 修改内容月份相关
    now = datetime.datetime.now()
    thismon = int(now.month)
    setOutCell(ws, 2, 1,
               ('当前是' + str(thismon) + '月,以下是1-' + str(thismon - 1) + '月'))
    searchCity(workbooknew)
    # workbooknew = workbooknew.decode('utf-8')
    p = Pinyin()
    workbooknew.save('sale_' + p.get_pinyin(province[:-1], '') + '.xls')
Exemple #11
0
def article_cat_save():
    form = Article_cat(request.form)
    p = Pinyin()
    if form.validate():
        parent_id = request.form.get('parent_id')
        print(parent_id)
        cat_id = int(request.form.get('cat_id'))
        cat_name = request.form.get('cat_name')
        dir = request.form.get('dir')
        check = request.form.get('check')
        if check:
            dir = request.form.get('cat_name')
            dir = p.get_pinyin(dir, '')
        else:
            if dir:
                dir = request.form.get('dir')
            else:
                dir = request.form.get('cat_name')
                dir = p.get_pinyin(dir, '')
        keywords = request.form.get('keywords')
        description = request.form.get('description')
        cat_sort = request.form.get('cat_sort')
        status = request.form.get('status')
        Articles_Cat.query.filter(Articles_Cat.cat_id==cat_id).update({Articles_Cat.parent_id: parent_id,Articles_Cat.cat_name: cat_name,Articles_Cat.dir: dir, \
                                 Articles_Cat.keywords: keywords,Articles_Cat.description: description, Articles_Cat.cat_sort: cat_sort, Articles_Cat.status: status\
                                                                       })
        db.session.commit()
        return redirect(url_for('admin.article_cat_list'))
Exemple #12
0
 def put(self):
     self.xsrf_form_html()
     user_id = tornado.escape.json_decode(self.get_secure_cookie("user_id"))
     if(self.request.files["file"][0] and (user_id != "")):
         #保存图片
         data=self.request.files["file"][0]
         #time = datetime.datetime.now() #sql time: .strftime("%Y-%m-%d %H:%M:%S")
         md5 = hashlib.md5()
         md5.update(data["body"])
         md5encode = md5.hexdigest()
         ran_str = ''.join(random.sample(string.ascii_letters + string.digits, 8))
         extension = data["filename"].split(".")[-1]
         head = data["filename"].rstrip("."+extension)
         #将文件名中文转化为拼音
         pinyin = Pinyin()
         head = pinyin.get_pinyin(head)
         #中文转拼音结束
         savename = head + "_" + md5encode + ran_str + "." + extension #time.strftime("%Y_%m_%d_%H_%M_%S")+"_"+md5encode+"."+data["filename"].split(".")[-1]
         with open(os.path.join("static","profilephoto",savename),"wb") as up:            
                 up.write(data["body"])
         # print(user)
         s=db.session()
         user_infos = s.query( db.User ).filter_by(id = user_id ).first()
         if (user_infos.profilephoto != DEFAULT_PROFILE_PHOTO) and (os.path.exists("static/"+user_infos.profilephoto)):
             os.remove("static/"+user_infos.profilephoto)
         user_infos.profilephoto = "profilephoto/"+savename
         s.commit()
         s.close()
         res = {"msg":"上传成功"}
         self.write(res)
     else:
         res = {"msg":"上传错误"}
         self.write(res)
Exemple #13
0
    def parse_album(self, response):
        print("进入相册页面:" + response.css("title::text").extract_first())
        pin = Pinyin()
        data = response.body
        soup = BeautifulSoup(data, "html5lib")

        items = soup.find_all('div', class_='tab-group')
        # print(items)
        for itemv in items:
            item_loader = BeikeAlbumItemLoader(item=BeikeItemAlbum(),
                                               response=response)

            type_ = itemv.find('h4').find('a').get_text()
            images = itemv.find_all('img')
            imgs = []
            for img in images:
                img_clena = self.get_img_url(img['src'])
                if img_clena is not None:
                    imgs.append(img_clena)
            item_loader.add_value('type', type_)
            item_loader.add_value('type_en',
                                  pin.get_pinyin(self.chinese_to_en(type_)))
            item_loader.add_value('image_urls', imgs)
            item_loader.add_value('href', response.url.strip('xiangce'))
            item = item_loader.load_item()
            yield item
Exemple #14
0
    def parse_house(self, response):
        print("进入列表页:", response.url)
        data = response.body
        soup = BeautifulSoup(data, "html5lib")
        pin = Pinyin()

        city = response.xpath('/html/body/div[1]/div[1]/div[1]/a[2]/text()').extract_first()
        houses = soup.find_all('li', 'resblock-list')
        for house in houses:
            title = house.find('div', class_='resblock-name').find('a', class_='name').get_text()
            sale = house.find('div', class_='resblock-name').find('a', class_='name').find_next('span').get_text()
            _type = house.find('a', class_='name').find_next('span').find_next('span').get_text()
            address = house.find('a', class_='resblock-location').get_text("|", strip=True)
            area = ''
            obj_area = house.find(class_='area')
            if obj_area:
                area = obj_area.get_text("|", strip=True)

            priceavg = house.find('span', class_='number').get_text("|", strip=True)

            priceall_obj = house.find(class_='second')

            priceall = ''
            if priceall_obj is not None:
                priceall = priceall_obj.get_text("|", strip=True)

            href = response.urljoin(house.find('a', class_='name').get('href'))
            img = house.find('img', class_='lj-lazy').get('src')

            tagsarr = []
            tags_obj = house.find('div', class_='resblock-tag').find_all('span')

            if tags_obj is not None:
                for tag_index in tags_obj:
                    tagsarr.append(tag_index.get_text())
                tags = ','.join(tagsarr)
            else:
                tags = ''

            item_loader = BeikeJobItemLoader(item=BeikeItem(), response=response)
            item_loader.add_value('city', city)
            item_loader.add_value('city_en', pin.get_pinyin(city))
            item_loader.add_value('title', title)
            item_loader.add_value('sale', sale)
            item_loader.add_value('type', _type)
            item_loader.add_value('address', address)
            item_loader.add_value('area', area)
            item_loader.add_value('priceavg', priceavg)
            item_loader.add_value('priceall', priceall)
            item_loader.add_value('href', href)
            item_loader.add_value('img', img)
            item_loader.add_value('tags', tags)

            item = item_loader.load_item()
            yield item
            yield response.follow(item['href'], self.parse_detail)
            yield response.follow(item['href']+"xiangce", self.parse_album)
            yield response.follow(item['href'] + "huxingtu", self.parse_huxingtu)
            yield response.follow(item['href'] + "xiangqing", self.parse_xiangqing)
Exemple #15
0
 def __init__(self):
     self.p = Pinyin()
     self.files = []
     self.lines = []
     for r, _, f in os.walk("data"):
         for files in f:
             if files.endswith(".txt"):
                 self.files.append(os.path.join(r, files))
Exemple #16
0
 def get_only_one_page(self, str0, page):
     p = Pinyin()
     str1 = p.get_pinyin(str0, '')
     url = 'http://588ku.com/sucai/0-default-0-0-' + str1 + '-' + str(
         page) + '/'
     print('搜索的url: ', url)
     result = self.get_one_page_photo_url(url)
     return result
Exemple #17
0
def to_pinyin(word):
    '''
                将汉字转为拼音字母,下面的replace作用将拼音字符串之间的‘-’消除
    '''
    pin = Pinyin()
    result = pin.get_pinyin(word)
    final=result.replace('-','') 
    return final
 def count_keys(self):
     P = Pinyin()
     pinyin_content = P.get_pinyin(self.passage_content, '')
     counter = Counter(pinyin_content.lower())
     print(counter)
     count_keys_file = codecs.open(self.COUNT_KEYS_FILE_NAME, 'w')
     json.dump(counter, count_keys_file, ensure_ascii=False, indent=2)
     count_keys_file.close()
Exemple #19
0
def get_name(name_input, convert_pinyin):
    name = name_input.replace(" ", "-").replace("。", ".").replace(",", ",")
    name = filter_name(re.sub('[/:*?,.<>|\'"\\\]', '', name))
    if convert_pinyin:
        from xpinyin import Pinyin
        p = Pinyin()
        name = p.get_pinyin(name)
    return name
Exemple #20
0
def get_jsondata(city):
    p = Pinyin()
    city_pinyin = p.get_pinyin(city, '')
    url = 'http://api.openweathermap.org/data/2.5/forecast?q={},cn&mode=json&lang=zh_cn&&APPID=6a67ed641c0fda8b69715c43518b6996&units=metric'.format(
        city_pinyin)
    data = r.urlopen(url).read().decode('utf-8')
    data = json.loads(data)
    return data
Exemple #21
0
def en(str):
    pinyin = Pinyin()
    result = re.findall(r'[\u4e00-\u9fa5]',string=str)
    string = ''
    for i in result:
        string += i
    result = pinyin.get_pinyin(string,u'')
    return result
Exemple #22
0
 def print_character_pinyin(self, characters):
     pinyin = CHARACTER_PINYIN_MAPPING.get(characters, '')
     pinyins = []
     pinyin_nums = []
     if not pinyin:
         pinyin = Pinyin().get_pinyin(characters, ' ', tone_marks='marks')
         pinyin_num = Pinyin().get_pinyin(characters,
                                          ' ',
                                          tone_marks='numbers')
         pinyins = pinyin.split(' ')
         pinyin_nums = pinyin_num.split(' ')
     else:
         for p in pinyin.split(' '):
             r = decode_pinyin(p)
             pinyins.append(r)
     print(f'''"{characters}": "{''.join(pinyin_nums)}",''')
     return pinyins
Exemple #23
0
def hygge_contract(contract_title):
    sdf = Pinyin().get_pinyin(contract_title.split('-')[0], '').upper()
    # 页眉和日期
    with open('flaskr/static/hyggeadd.css', 'w') as hygge_css:
        hygge_css.write(
            "@media print { @page { @top-left { content: '咨询服务合同号: " +
            Pinyin().get_initials(contract_title.split("-")[0], '') +
            time.strftime("%Y%m%d", time.localtime()) + "'}} " +
            ".sign-date::before { content: '" +
            time.strftime(" %Y 年 %m 月 %d 日", time.localtime()) + "'; }" +
            ".contract-series::before { content: 'T-" +
            time.strftime("%Y%m%d", time.localtime()) + "-" +
            Pinyin().get_pinyin(contract_title.split("-")[0], "").upper() +
            "';}}")
    html = render_template('hygge_contract.html')
    cssfile = CSS(url_for("static", filename='hyggeadd.css'))
    return HTML(string=html).render(stylesheets=[cssfile])
Exemple #24
0
 def save(self, *args, **kwargs):
     if not self.slug:
         p = Pinyin()
         self.slug = p.get_pinyin(self.title)
     if not self.content:
         markdown = mistune.Markdown()
         self.content = markdown(self.md)
     super().save(*args, **kwargs)
Exemple #25
0
def name_submit(request):
    ip = log_visitor_ip(request)
    request_data = {}
    if request.method == 'GET':
        request_data = request.GET
    elif request.method == 'POST':
        request_data = request.POST
    response_data = {}

    global GENDER_PREDICTOR, CHINESE_GENDER_PREDICTOR, COUNTRY_PREDICTOR
    if not CHINESE_GENDER_PREDICTOR:
        CHINESE_GENDER_PREDICTOR = load_gender_predict_model(
            CHINESE_GENDER_MODEL_PATH)
    if not GENDER_PREDICTOR:
        GENDER_PREDICTOR = load_gender_predict_model(GENDER_MODEL_PATH)
    if not COUNTRY_PREDICTOR:
        COUNTRY_PREDICTOR = load_country_predict_model()

    target_name = request_data['name']

    if not target_name:
        return JsonResponse({'gender': 'NONAME'})
    try:
        name_info = NameInfo(name=request_data['name'],
                             gender=request_data.get('gender', None),
                             country=request_data.get('country', None),
                             time=datetime.datetime.now(),
                             ip=ip)
        name_info.save()
    except:
        pass

    is_chinese = any(u'\u4e00' <= c <= u'\u9fff' for c in target_name)
    if is_chinese:
        py = Pinyin()
        target_name = ' '.join([
            string.capitalize(py.get_pinyin(target_name[1:], '')),
            string.capitalize(py.get_pinyin(target_name[0], ''))
        ])
    if type(target_name) is unicode:
        target_name = target_name.encode('utf-8')
    ### Country Prediction
    country = COUNTRY_PREDICTOR.predict(target_name)
    response_data['country'] = country.capitalize()
    if country == 'china':
        is_chinese = True
    ### Gender Prediction
    if is_chinese:
        is_male = CHINESE_GENDER_PREDICTOR.predict(target_name)
    else:
        is_male = GENDER_PREDICTOR.predict(target_name)

    if is_male:
        response_data['gender'] = 'MALE'
    else:
        response_data['gender'] = 'FEMALE'

    return JsonResponse(response_data)
Exemple #26
0
 def creataTable(self, keyword):
     cursor = self.db.cursor()
     p = Pinyin()
     key_ = p.get_pinyin(keyword, '')
     if cursor.execute("SHOW TABLES LIKE '%" + key_ + "%'") == 0:
         sql = 'Create Table ' + key_ + ' ( commid INT(10) NOT NULL PRIMARY KEY AUTO_INCREMENT, ' \
                                        'comment CHAR(200) , score INT(1))'
         cursor.execute(sql)
         self.db.commit()
Exemple #27
0
def Poem_Detail(request, poem_id):
    comment_form = CommentsForm()
    # 根据poem_id获取的目标诗对象
    poem = Poems.objects.get(id=poem_id)
    author = Author.objects.get(id=poem.author_id)
    # 诗人所有诗词
    author_poems = author.poems_set.all()[:6]
    # 所以评论
    comments = poem.comments_set.all()
    # 评论数
    nums = comments.count()
    praise_num = Praise.objects.filter(poem=poem).count()
    try:
        page = request.GET.get('page', 1)
    except PageNotAnInteger:
        page = 1
    # 这里的数字表示每一页有几个实例
    p = Paginator(comments, 4, request=request)
    comments = p.page(page)
    # 点赞状态标识
    praise_statue = 0
    if request.user.is_authenticated():
        statue = Praise.objects.filter(user=request.user, poem=poem)
        if statue:
            praise_statue = 1
    #拼音功能
    result = []
    temp = []
    pingyin_statue = request.GET.get('pingyin_statue', '')
    if pingyin_statue:
        from xpinyin import Pinyin
        words = poem.content

        p = Pinyin()
        for i in words.split('\n'):
            # 生成拼音
            a = p.get_pinyin(i, show_tone_marks=True).split('-')
            for j in a:
                j = j + '&nbsp' * (6 - len(j))
                temp.append(j)
            result.append(''.join(temp) + '\n')
            result.append(i + '\n')
            temp = []

    context = {
        'poem': poem,
        'author': author,
        'author_poems': author_poems,
        'comments': comments,
        'comment_form': comment_form,
        'nums': nums,
        'praise_num': praise_num,
        'praise_statue': praise_statue,
        'result': result,
        'pingyin_statue': pingyin_statue
    }
    return render(request, 'poem_detail.html', context=context)
 def word2pinyin(word):
     from xpinyin import Pinyin
     p = Pinyin()
     #word='寿宝庄'
     if isinstance(word, unicode) == False:
         word = unicode(word, 'utf-8')
     ping = p.get_pinyin(word, ' ')
     #print ping #'shou bao zhuang'
     return ping.replace(' ', '')
def paixu(lis):  # 输入一个名字的列表,按照拼音来排序
    pin = Pinyin()
    result = []
    for item in lis:
        result.append((item, pin.get_pinyin(item[:find_space(item) + 1])))
        # 加入拼音
    result.sort(key=lambda x: x[1])  # 对拼音排序
    result = [x[0] for x in result]
    return result
Exemple #30
0
def my_function(lis):             #输入一个名字的列表
        pin=Pinyin()
        result=[]
        for item in lis:
            result.append((pin.get_pinyin(item),item))
        result.sort()
        for i in range(len(result)):
            result[i]=result[i][1]
        return result