[
  {
    "path": ".github/FUNDING.yml",
    "content": "\ncustom: [\"afdian.net/@zhengfan2014\", \"paypal.me/nxsoft\"]\n"
  },
  {
    "path": ".github/ISSUE_TEMPLATE/------.md",
    "content": "---\nname: \"\\U0001F308功能要求\"\nabout: 为这个项目提出一个想法\ntitle: ''\nlabels: ''\nassignees: ''\n\n---\n\n**您的功能请求是否与问题有关？ 请描述**\n清楚简洁地说明问题所在\n\n**描述您想要的解决方案**\n对您想要发生的事情的简洁明了的描述\n\n**描述您考虑过的替代方案**\n对您考虑过的所有替代解决方案或功能的简洁明了的描述\n\n**其他背景**\n在此处添加有关功能请求的其他任何上下文或屏幕截图\n"
  },
  {
    "path": ".github/ISSUE_TEMPLATE/-----.md",
    "content": "---\nname: \"❌错误报告\"\nabout: 创建报告以帮助我们改进\ntitle: ''\nlabels: ''\nassignees: ''\n\n---\n\n**描述错误**\n清楚简明地描述错误是什么\n\n**重现**\n重现行为的步骤:\n1. 去 '...'\n2. 点击 '....'\n3. 划到 '....'\n4. 出错\n\n**预期行为**\n对您期望发生的事情的简洁明了的描述\n\n**屏幕截图**\n如果适用，请添加屏幕截图以帮助解释您的问题\n\n**设备信息**\n - 设备: [e.g. 电脑，手机，电视盒子，xbox]\n - 系统: [e.g.Win10，MacOS Big Sur]\n - Kodi 版本 [e.g. kodi18， kodi17]\n\n\n**其他**\n在此处添加有关该问题的任何其他上下文\n"
  },
  {
    "path": ".github/ISSUE_TEMPLATE/----.md",
    "content": "---\nname: 功能要求\nabout: 为这个项目提出一个想法\ntitle: ''\nlabels: ''\nassignees: ''\n\n---\n\n**您的功能请求是否与问题有关？ 请描述**\n清楚简洁地说明问题所在\n\n**描述您想要的解决方案**\n对您想要发生的事情的简洁明了的描述\n\n**描述您考虑过的替代方案**\n对您考虑过的所有替代解决方案或功能的简洁明了的描述\n\n**其他背景**\n在此处添加有关功能请求的其他任何上下文或屏幕截图\n"
  },
  {
    "path": ".github/ISSUE_TEMPLATE/feature_request.md",
    "content": "---\nname: Feature request\nabout: Suggest an idea for this project\ntitle: ''\nlabels: ''\nassignees: ''\n\n---\n\n**Is your feature request related to a problem? Please describe.**\nA clear and concise description of what the problem is. Ex. I'm always frustrated when [...]\n\n**Describe the solution you'd like**\nA clear and concise description of what you want to happen.\n\n**Describe alternatives you've considered**\nA clear and concise description of any alternative solutions or features you've considered.\n\n**Additional context**\nAdd any other context or screenshots about the feature request here.\n"
  },
  {
    "path": ".github/auto.py",
    "content": "#!/usr/bin/python\n# -*- coding: UTF-8 -*-\nimport os\nimport re\nimport xml.etree.cElementTree as et\nimport zipfile\nimport shutil\nimport hashlib\n\n\nworkpath = '/workdir/python2/'\n\naddons_xml = et.Element('addons')\n\n# 匹配所有需要处理的kodi插件\nfor pluginname in os.listdir(workpath):\n    if re.search('\\[停止更新\\]|video.vid|bangumi|cine|reallive', pluginname):\n        # 跳过停止更新的项目\n        pass\n    elif re.search('metadata.*', pluginname) or re.search('plugin.*', pluginname) or re.search('service.*', pluginname):\n        # 读取xml获取版本\n        parser = et.parse(workpath + \"/\" + pluginname + \"/addon.xml\")\n        root = parser.getroot()\n        version = root.attrib['version']\n        # 创建repo\n        basepath = workpath + \"/repo/\" + pluginname + '/'\n        if not os.path.exists(basepath):\n            os.makedirs(basepath)\n        # 压缩\n        zippath = basepath + str(pluginname) + '-' + version + '.zip'\n        f = zipfile.ZipFile(zippath, 'w', zipfile.ZIP_DEFLATED)\n        for dirpath, dirnames, filenames in os.walk(workpath + '/' + pluginname):\n            # 这一句很重要，不replace的话，就从根目录开始复制\n            fpath = dirpath.replace(workpath + '/', '')\n            fpath = fpath and fpath + os.sep or ''  # 这句话理解我也点郁闷，实现当前文件夹以及包含的所有文件的压缩\n            for filename in filenames:\n                f.write(os.path.join(dirpath, filename), fpath+filename)\n        print(pluginname + '压缩成功')\n        f.close()\n        # 拷贝icon\n        shutil.copy(workpath + '/' + str(pluginname) + '/icon.png', basepath + 'icon.png')\n        # 合并xml\n        addons_xml.append(root)\n# 输出addons.xml\ntree = et.ElementTree(addons_xml)\ntree.write(workpath + '/addons.xml', \"UTF-8\",xml_declaration=True)\n# 生成addons.xml.md5\nf = open(workpath + '/addons.xml')\nm2 = hashlib.md5()\ntext = f.read()\nm2.update(text)\nf.close()\nwith open(workpath + '/addons.xml.md5','w') as f: # 如果filename不存在会自动创建， 'w'表示写数据，写之前会清空文件中的原有数据！\n    f.write(m2.hexdigest())\n    f.close()"
  },
  {
    "path": ".github/workflows/auto.yml",
    "content": "name: kodi 插件自动化\non: push\n\njobs: \n  my-job: \n    runs-on: ubuntu-latest\n    name: 打包Kodi插件并自动更新插件库\n    steps: \n    - name: 初始化环境\n      run: |\n        sudo mkdir -p /workdir\n        sudo chown $USER:$GROUPS /workdir\n        sudo apt install python\n    - name: 克隆代码\n      working-directory: /workdir\n      run: |\n        df -hT $PWD\n        git clone https://github.com/zhengfan2014/xbmc-kodi-private-china-addons -b py2 python2\n    - name: 运行python\n      run: |\n        python /workdir/python2/.github/auto.py\n    - name: Commit 文件\n      run: |\n        cd /workdir/python2\n        git config --local user.email \"41898282+github-actions[bot]@users.noreply.github.com\"\n        git config --local user.name \"github-actions[bot]\"\n        git add repo\n        git add addons.xml\n        git add addons.xml.md5\n        git commit -m \"[bot] 自动打包插件并推送到存储库\"\n        git init\n    - name: Push 到 Github\n      uses: ad-m/github-push-action@master\n      with:\n        github_token: ${{ secrets.GITHUB_TOKEN }}\n        branch: py2\n        repository: zhengfan2014/xbmc-kodi-private-china-addons\n        directory: /workdir/python2"
  },
  {
    "path": "LICENSE",
    "content": "MIT License\n\nCopyright (c) 2020 zhengfan2014\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n"
  },
  {
    "path": "README.md",
    "content": "# zhengfan2014的kodi插件仓库\n![xbmc-kodi-private-china-addons](https://socialify.git.ci/zhengfan2014/xbmc-kodi-private-china-addons/image?description=1&font=Inter&forks=1&issues=1&language=1&owner=1&pattern=Circuit%20Board&pulls=1&stargazers=1&theme=Dark)\n\n![kodi18测试通过](https://img.shields.io/badge/%E5%BC%80%E5%8F%91%E7%8E%AF%E5%A2%83-kodi%2018-green)\n[![酷安粉丝][coolapk]](http://www.coolapk.com/u/2864549) [![b站粉丝][bilibili]](https://space.bilibili.com/25818910)\n[![爱发电本月收入][mon]](https://afdian.net/@zhengfan2014)\n[![爱发电发电人数][once]](https://afdian.net/@zhengfan2014)\n\n----\n\n## 介绍\n\nxbmc-kodi-private-china-addons 是一个存放由zhengfan2014编写和维护的Kodi插件的GitHub仓库。可以为Kodi增加播放Bilibili等视频网站和挂载弹幕等奇奇怪怪的功能。目前借助社区的力量慢速发展中，目前已适配数十个网站的音视频内容。\n\n----\n\n## 插件目录\n\n### 视频插件\n\n插件目录              | 插件名 | 版本 | 最后更新 | 简介\n :------------------ | :----: | ---- | ---- | ----\n plugin.video.bilibili | <img width = \"200\" height = \"0\"/><img src=\"https://cdn.jsdelivr.net/gh/zhengfan2014/xbmc-kodi-private-china-addons@py2/repo/plugin.video.bilibili/icon.png\" width = \"50\" height = \"50\"/><br>bilibili | 0.5.8 | 2021-02-18 | bilibili是国内知名的视频弹幕网站，这里有最及时的动漫新番，最棒的ACG氛围，最有创意的Up主。大家可以在这里找到许多欢乐\n plugin.video.taptap | <img src=\"https://cdn.jsdelivr.net/gh/zhengfan2014/xbmc-kodi-private-china-addons@py2/repo/plugin.video.taptap/icon.png\" width = \"50\" height = \"50\"/><br>Taptap | 0.2.2 | 2021-02-17 | TapTap是一个推荐高品质手游的手游分享社区，实时同步全球各大应用市场游戏排行榜，与全球玩家共同交流并发掘高品质手游。每一款推荐游戏，都是由专业的测评团队从全球海量的游戏中精选而出，只为你提供好玩的手机游戏。\n plugin.video.acfun | <img src=\"https://cdn.jsdelivr.net/gh/zhengfan2014/xbmc-kodi-private-china-addons@py2/repo/plugin.video.acfun/icon.png\" width = \"50\" height = \"50\"/><br>acfun | 0.2.3 | 2020-09-15 | AcFun是一家弹幕视频网站，致力于为每一个人带来欢乐\n plugin.video.changku | <img src=\"https://cdn.jsdelivr.net/gh/zhengfan2014/xbmc-kodi-private-china-addons@py2/repo/plugin.video.changku/icon.png\" width = \"50\" height = \"50\"/><br>场库 | 0.1.0 | 2020-03-29 | 高品质短片分享平台,汇集优秀视频短片及微电影创作人,实时不断分享全球优秀视频短片,微电影\n plugin.video.huanxi | <img src=\"https://cdn.jsdelivr.net/gh/zhengfan2014/xbmc-kodi-private-china-addons@py2/repo/plugin.video.huanxi/icon.png\" width = \"50\" height = \"50\"/><br>欢喜首映 | 0.1.0 | 2020-03-29 | 欢喜首映拥有王家卫、徐峥、陈可辛、宁浩、顾长卫、张一白、贾樟柯、张艺谋等巨匠影人为平台定制的大制作网剧、网络大电影,将视频播放与内容制作合二为一,首映厅首发好电影\n plugin.video.skypixel | <img src=\"https://cdn.jsdelivr.net/gh/zhengfan2014/xbmc-kodi-private-china-addons@py2/repo/plugin.video.skypixel/icon.png\" width = \"50\" height = \"50\"/><br>天空之城 | 0.1.0 | 2020-03-29 | 世界各地的航拍摄影师、拍手叫绝的航拍作品与独具价值的航拍攻略。全世界的探索者们互相启发,乐在其中\n plugin.video.xinpianchang | <img src=\"https://cdn.jsdelivr.net/gh/zhengfan2014/xbmc-kodi-private-china-addons@py2/repo/plugin.video.xinpianchang/icon.png\" width = \"50\" height = \"50\"/><br>新片场 | 0.1.0 | 2020-03-29 | 新片场汇聚全球原创优质视频及创作人，提供4K、无广告、无水印视频观看，专业的视频艺术学习教程，正版视觉素材交易等，与数百万创作人一起用作品打动世界\n plugin.video.weibotv | <img src=\"https://cdn.jsdelivr.net/gh/zhengfan2014/xbmc-kodi-private-china-addons@py2/repo/plugin.video.weibotv/icon.png\" width = \"50\" height = \"50\"/><br>微博视频 | 0.1.1 | 2020-03-16 | 随时随地发现新鲜事！微博带你欣赏世界上每一个精彩瞬间，了解每一个幕后故事。\n plugin.video.kaiyan | <img src=\"https://cdn.jsdelivr.net/gh/zhengfan2014/xbmc-kodi-private-china-addons@py2/repo/plugin.video.kaiyan/icon.png\" width = \"50\" height = \"50\"/><br>开眼 | 0.1.0 | 2020-03-10 | 精选视频推荐，每日大开眼界\n \n ----\n\n### 音乐插件\n\n插件目录              | 插件名 | 版本 | 最后更新 | 简介\n :------------------ | :----: | ---- | ---- | ---- \n plugin.audio.jsososo | <img width = \"200\" height = \"0\"/><img src=\"https://cdn.jsdelivr.net/gh/zhengfan2014/xbmc-kodi-private-china-addons@py2/repo/plugin.audio.jsososo/icon.png\" width = \"50\" height = \"50\"/><br>jsososo | 0.1.0 | 2020-05-15 |music.jsososo.com的音乐插件，播放你自己的网易云和QQ音乐歌单和日推\n\n ### 弹幕插件\n\n插件目录              | 插件名 | 版本 | 最后更新 | 简介\n :------------------ | :----: | ---- | ---- | ---- \n service.subtitles.acfun | <img width = \"200\" height = \"0\"/><img src=\"https://cdn.jsdelivr.net/gh/zhengfan2014/xbmc-kodi-private-china-addons@py2/repo/plugin.video.acfun/icon.png\" width = \"50\" height = \"50\"/><br>Acfun 弹幕 | 0.1.1 | 2020-07-19 |获取并挂载acfun任意视频和番剧的弹幕，支持配合acfun插件显示弹幕，也可以用于本地nas上的番剧或者bangumi插件显示弹幕\n  service.subtitles.bilibili | <img width = \"200\" height = \"0\"/><img src=\"https://cdn.jsdelivr.net/gh/zhengfan2014/xbmc-kodi-private-china-addons@py2/repo/plugin.video.bilibili/icon.png\" width = \"50\" height = \"50\"/><br>Bilibili 弹幕 | 0.1.1 | 2020-07-19 |获取并挂载b站任意视频和番剧的弹幕，支持配合b站插件显示弹幕，也可以用于本地nas上的番剧或者bangumi插件显示弹幕\n\n----\n\n### 原创插件\n\n#### 番剧聚合\n\n插件目录              | 插件名 | 版本 | 最后更新 | 简介\n :------------------ | :----: | ---- | ---- | ---- \n plugin.video.bangumi | <img width = \"200\" height = \"0\"/><img src=\"https://cdn.jsdelivr.net/gh/zhengfan2014/xbmc-kodi-private-china-addons@py2/repo/plugin.video.bangumi/icon.png\" width = \"50\" height = \"50\"/><br>bangumi | 0.2.1 | 2021-02-18 |模块化的小众番剧网站聚合插件，提供开发文档，让有python基础的用户无需学习kodi插件开发知识，为本插件快速适配番剧网站\n\n\n\n----\n\n#### 电影聚合\n\n插件目录              | 插件名 | 版本 | 最后更新 | 简介\n :------------------ | :----: | ---- | ---- | ---- \n plugin.video.cine | <img width = \"200\" height = \"0\"/><img src=\"https://cdn.jsdelivr.net/gh/zhengfan2014/xbmc-kodi-private-china-addons@py2/repo/plugin.video.cine/icon.png\" width = \"50\" height = \"50\"/><br>cine | 0.2.0 | 2020-06-14 |模块化的小众电影/电视剧/综艺网站聚合插件，提供开发文档，让有python基础的用户无需学习kodi插件开发知识，为本插件快速适配电影网站\n\n\n\n----\n\n#### 新闻/自媒体聚合\n\n插件目录              | 插件名 | 版本 | 最后更新 | 简介\n :------------------ | :----: | ---- | ---- | ---- \n plugin.video.vid | <img width = \"200\" height = \"0\"/><img src=\"https://cdn.jsdelivr.net/gh/zhengfan2014/xbmc-kodi-private-china-addons@py2/repo/plugin.video.vid/icon.png\" width = \"50\" height = \"50\"/><br>vid | 0.1.0 | 2020-05-03 |模块化的新闻/自媒体等单一视频网站聚合插件，提供开发文档，让有python基础的用户无需学习kodi插件开发知识，为本插件快速适配新闻/自媒体等网站\n\n\n\n----\n\n#### 直播聚合\n\n插件目录              | 插件名 | 版本 | 最后更新 | 简介\n :------------------ | :----: | ---- | ---- | ---- \n plugin.video.reallive | <img width = \"200\" height = \"0\"/><img src=\"https://cdn.jsdelivr.net/gh/zhengfan2014/xbmc-kodi-private-china-addons@py2/repo/plugin.video.reallive/icon.png\" width = \"50\" height = \"50\"/><br>reallive | 0.1.1 | 2020-06-09 |模块化的直播网站聚合插件，让有python基础的用户无需学习kodi插件开发知识，为本插件快速适配各大直播网站\n\n## 插件库(New)\n\nGithub:\n\nGitee:\n\n## 下载&更新地址\n\n### Github Action全自动打包(New)\n\n国内 - Gitee:  \nhttps://gitee.com/zhengfan2014/xbmc-kodi-private-china-addons/tree/master/latest\n\n国外 - Github:  \nhttps://github.com/zhengfan2014/xbmc-kodi-private-china-addons/tree/master/latest\n\n### 手动打包\n\n国内 - 爱发电  \nhttps://afdian.net/@zhengfan2014\n\n国外 - GitHub  \n推荐，更新比较及时  \n博客地址：https://zhengfan2014.github.io/\n\n国内 - Gitee  \n推荐，目前采用github action，两个博客内容会自动同步\n博客地址：https://zhengfan2014.gitee.io/\n\n\n## 捐赠作者\n如果您觉得这些小作品对您有很大帮助的话，不妨给作品点一个小小的star，请作者喝一杯咖啡，您的支持也是作者维护插件库的动力  \n爱发电：https://afdian.net/@zhengfan2014  \npaypal：http://paypal.me/nxsoft\n\n\n[coolapk]:https://img.shields.io/badge/dynamic/json?labelColor=11ab60&color=282c34&label=%E9%85%B7%E5%AE%89%20紫碧君&suffix=%20粉丝&query=%24.data.totalSubs&url=https%3A%2F%2Fapi.spencerwoo.com%2Fsubstats%2F%3Fsource%3Dcoolapk%26queryKey%3D2864549&logo=data:image/svg+xml;base64,PHN2ZyBjbGFzcz0iaWNvbiIgdmlld0JveD0iMCAwIDEwMjQgMTAyNCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB3aWR0aD0iNjQiIGhlaWdodD0iNjQiPjxkZWZzPjxzdHlsZS8+PC9kZWZzPjxwYXRoIGQ9Ik0xMjcuODkzIDQyNi42NjdjMjkuOTItNjYuOTg3IDk0LjUwNy0xMTYuNjk0IDE2Ni40LTEzMC4zNDcgNTUuNzg3LTkuNiAxMTIuOTYgNS4wNjcgMTYxLjkyIDMxLjk0N0M0OTcuNzYgMzQ5LjQ0IDUzNC40IDM3OC44OCA1NjcuOTQ3IDQxMS4wNGMtMTYuMTYgMTguNC0zOS4wOTQgMjguODUzLTU3LjQ5NCA0NC43NDctNDYuMTMzLTM4Ljg4LTk2LjY0LTc3LjcwNy0xNTcuOTczLTg3LjA5NC03OC45MzMtMTMuMTczLTE1OC41NiA0OS4yMjctMTcwLjUwNyAxMjcuMTQ3LTguNjkzIDQ1LjkyIDEwLjEzNCA5NC42NjcgNDUuMTc0IDEyNC45MDcgMzkuNjggMzQuOTg2IDk3LjIyNiA0NC41ODYgMTQ3LjYyNiAzMS4yNTMgNTcuNi0xMy45MiAxMDEuOTc0LTU3LjA2NyAxMzYuODU0LTEwMi43NzMgNTQuMDgtNzIuMTA3IDk5LjItMTUwLjQgMTQ3Ljg0LTIyNi4xMzQgMTMuOTItMTkuMTQ2IDQ3LjQxMy0xNy4yMjYgNTguNzIgMy44NCA2My42MjYgMTA5LjAxNCAxMjYuMDggMjE4LjcyIDE4OS42IDMyNy43ODcgNy41NzMgMTUuMDkzIDQuNDI2IDM1Ljc4Ny05LjYgNDYuMTMzLTEzLjA2NyAxMC42MTQtMzMuMzM0IDEwLjI0LTQ2LjEzNC0uNjkzYTk3MDY2LjU1OCA5NzA2Ni41NTggMCAwMS0yMjYuMTg2LTE2Mi43MmMxOC44OC0xNS4wNCAzOC40LTI5LjMzMyA1Ny45NzMtNDMuNDY3IDIzLjczMyAxMi45MDcgNDMuNzg3IDMzLjE3NCA2OS42IDQxLjY1NC0yMC4zNzMtMzkuNTc0LTQzLjYyNy03Ny43MDctNjYuMzQ3LTExNS45NDctNDIuNjY2IDU5LjE0Ny03Ny4wNjYgMTI0LjIxMy0xMjMuMTQ2IDE4MS4wNjdDNTE2IDY2My40NjcgNDQ4LjggNzE2Ljk2IDM2OC42NCA3MjguNDhjLTM4Ljg4IDMuNDEzLTc5LjMwNyA0LjIxMy0xMTYuMzczLTkuOTczLTUzLjQ5NC0xOS4xNDctMTAwLjMyLTU4LjcyLTEyNC41ODctMTEwLjU2LTI4LjIxMy01Ni4xMDctMjYuNzczLTEyNS4wMTQuMjEzLTE4MS4yOHoiIGZpbGw9IiNmZmYiLz48L3N2Zz4=&longCache=true\n\n[bilibili]:https://img.shields.io/badge/dynamic/json?labelColor=FE7398&label=bilibili%20紫碧君&suffix=%20粉丝&query=%24.data.totalSubs&url=https%3A%2F%2Fapi.spencerwoo.com%2Fsubstats%2F%3Fsource%3Dbilibili%26queryKey%3D25818910&logo=data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGAAAABgCAYAAADimHc4AAAD7ElEQVR4nO2dW9WrMBCFK6ESkFAJSKiESqgEHCABCZWAhEpAAhL2ecik5dDc/pXLBDLfWnlqy0xmJ5BMQnq5CIIgCIIgCIIgCIIgCEIBAHQAemYfrgCunD6wAKAHsEKxALgx+bCQD8/S9tmgVqeDr1lLigDgZvDhXso+K9TyTBQRwRJ8AHjntl0Flh5QRAQK/mKxPeayWx2OXpBNBKiHvi34b7T2MC4pAvW6twR/RwkRKPizBN8CgEcuESj4Lwm+BwBjahEk+H8EwJRKhOaCDzW8e1JLfkUUH1NgmR3XmHffHR1l+72BSs8d7w8U+JDAnZERQMcV+CtUi7dNqFqibB4J7vtrq7xKCuAasbTMXCL4T+5aVk6+2xHUrWdhruAR6HIJcOeu2UHI8zyAe2ytWfEdWz9PVvQ8YAmIQ5dDAB9LFsMVAv8oMO2zAGrC5WNIarRiAuKR9jYEd9pY08aa6uUzIHGRdkgKd8pY0yc1WjEBAqypDYoAG0QAZkQAZkQAZkQAZk4vANQenjsSzS3I/wcSbXU5jQBUkRtdf4Rar90v8kSv3+I3ffCCSpk8I/w+lgDkdI/v2rEp2CaiWm1AsDQLlDAD+dlFXLMeAaCSeLZdaSFE5VUQNot38cKuEeBgAsSuG0flVZBmEanbXfNQAsS0fgBYIn2fIu3/BBMHEyBmDXlFfA8IzeHb+Ems4WAChKykrVA9ZfsQTL57jXzRg4A5wC/A8N4ADiZAZwm2XjW75Qh2KOTfA0p4kygPw28OJcCVgn3nDnYo2EwEYRgGH0qAMyICMCMCMCMCMCMCMCMCMCMCfP3qwHDOQ4AAUekTk8FaBRihJnZdYbvtCGC7LvmkM63GjVDINPFrQgCq5ETXfmMzI90FXzPvfqt7x4rEu/ZaEcCUxFvgz2zO+BUn6UkoaEEAsptiMSX5e8FoRYCN7cVgb4Vq7U/H50Pq4JNP7Qiw8UFnJwcK+tXy+Wj6PLEvPgHSHv5UgwA1IQIwwyFAyLJin9RoxYgAzAQIkPwNmf26busC+OIx5TDqo5nDT+F/SS/9CYzwb+No49zNy2evkYv0LywGGAXUvp6eSneycqOic0w20k7CNgKE7jJunSGLACTCxF27ylmQc98T5MQUH49swd+I0HPXslLKnT0N+wnkrTKi9JZL/L9i1SorMmdeQ4TQQ7OFMxIMzGD45w8nUL1im7efENZLJpgPSw0pfz0cdt4U3230Td/Tvx2R6d2FrHhEWLkq5PELOMsRPHCPnAZGv1xJteL7jbJiaW3sB2nDvPC/osSYvjRQz4cJ6n7KO3rYQL7M+L6nVtfDVRAEQRAEQRAEQRAEIZ5/SAXmdfXaoQsAAAAASUVORK5CYII=&color=282c34&longCache=true\n\n[mon]:https://img.shields.io/badge/dynamic/json?label=本月收入&query=%24.data.totalSubs&url=https%3A%2F%2Fapi.spencerwoo.com%2Fsubstats%2F%3Fsource%3DafdianIncome%26queryKey%3Dzhengfan2014&prefix=%EF%BF%A5%20&suffix=%20%E6%AF%8F%E6%9C%88&labelColor=946ce6&color=282c34&longCache=true\n\n[once]:https://img.shields.io/badge/dynamic/json?label=%E7%88%B1%E5%8F%91%E7%94%B5&query=%24.data.totalSubs&url=https%3A%2F%2Fapi.spencerwoo.com%2Fsubstats%2F%3Fsource%3DafdianFans%26queryKey%3Dzhengfan2014&suffix=%20%E5%8F%91%E7%94%B5%E4%BA%BA%E6%AC%A1%20%2F%20%E6%9C%88&labelColor=946ce6&color=282c34&longCache=true"
  },
  {
    "path": "addons.xml",
    "content": "<?xml version='1.0' encoding='UTF-8'?>\n<addons><addon id=\"metadata.douban.com.python\" name=\"豆瓣刮削器Python\" provider-name=\"zhengfan\" version=\"0.1.1\">\n  <requires>\n    <import addon=\"xbmc.metadata\" version=\"2.1.0\" />\n    <import addon=\"xbmc.python\" version=\"2.26.0\" />\n    <import addon=\"script.module.xbmcswift2\" version=\"2.4.0\" />\n    <import addon=\"script.module.beautifulsoup4\" version=\"4.5.3\" />\n    <import addon=\"script.module.requests\" version=\"2.19.1\" />\n    <import addon=\"script.module.html5lib\" version=\"0.999.0\" />\n  </requires>\n  <extension library=\"python/scraper.py\" point=\"xbmc.metadata.scraper.movies\" />\n  <extension point=\"xbmc.addon.metadata\">\n\n    <summary>豆瓣刮削器Python</summary>\n    <description>豆瓣电影提供最新的电影介绍及评论包括上映影片的影讯查询及购票服务。你可以记录想看、在看和看过的电影电视剧，顺便打分、写影评。根据你的口味，豆瓣电影会推荐好电影给你。</description>\n    <platform>all</platform>\n    <language />\n    <assets>\n      <icon>icon.png</icon>\n    </assets>\n  </extension>\n</addon><addon id=\"plugin.video.acfun\" name=\"Acfun\" provider-name=\"zhengfan\" version=\"0.2.3\">\n  <requires>\n    <import addon=\"xbmc.python\" version=\"2.1.0\" />\n    <import addon=\"script.module.xbmcswift2\" version=\"2.4.0\" />\n  <import addon=\"script.module.beautifulsoup4\" version=\"4.5.3\" />\n  <import addon=\"script.module.requests\" version=\"2.19.1\" />\n  <import addon=\"script.module.html5lib\" version=\"0.999.0\" />\n  </requires>\n  <extension library=\"addon.py\" point=\"xbmc.python.pluginsource\">\n    <provides>video</provides>\n  </extension>\n  <extension point=\"xbmc.addon.metadata\">\n    <platform>all</platform>\n    <language />\n    <description>AcFun是一家弹幕视频网站，致力于为每一个人带来欢乐。</description>\n  </extension>\n</addon><addon id=\"plugin.video.weibotv\" name=\"微博视频\" provider-name=\"zhengfan\" version=\"0.1.1\">\n  <requires>\n    <import addon=\"xbmc.python\" version=\"2.1.0\" />\n    <import addon=\"script.module.xbmcswift2\" version=\"2.4.0\" />\n  <import addon=\"script.module.beautifulsoup4\" version=\"4.5.3\" />\n  <import addon=\"script.module.requests\" version=\"2.19.1\" />\n  <import addon=\"script.module.html5lib\" version=\"0.999.0\" />\n  </requires>\n  <extension library=\"addon.py\" point=\"xbmc.python.pluginsource\">\n    <provides>video</provides>\n  </extension>\n  <extension point=\"xbmc.addon.metadata\">\n    <platform>all</platform>\n    <language />\n    <description>随时随地发现新鲜事！微博带你欣赏世界上每一个精彩瞬间，了解每一个幕后故事。</description>\n  </extension>\n</addon><addon id=\"plugin.video.medicalvideo\" name=\"医学微视\" provider-name=\"zhengfan\" version=\"0.1.0\">\n  <requires>\n    <import addon=\"xbmc.python\" version=\"2.1.0\" />\n    <import addon=\"script.module.xbmcswift2\" version=\"2.4.0\" />\n  <import addon=\"script.module.beautifulsoup4\" version=\"4.5.3\" />\n  <import addon=\"script.module.requests\" version=\"2.19.1\" />\n  <import addon=\"script.module.html5lib\" version=\"0.999.0\" />\n  </requires>\n  <extension library=\"addon.py\" point=\"xbmc.python.pluginsource\">\n    <provides>video</provides>\n  </extension>\n  <extension point=\"xbmc.addon.metadata\">\n    <platform>all</platform>\n    <language />\n    <description>医学微视是配合卫健委宣传司《全民健康素养促进活动》精神，在中华医学会科学普及分会指导下，由中国医学科学院健康科普中心监制而实施，以“让人们多了解一点医学知识，健康就多一份保障”的宗旨，团队只想把医学微视做得更好，让更多的患者能共享到医学专家们多年积累的宝贵经验和知识，能对需要的人有一点点帮助</description>\n    <assets>\n      <icon>icon.png</icon>\n      <fanart>fanart.png</fanart> \n    </assets>\n    <news>首个版本</news>\n  </extension>\n</addon><addon id=\"service.subtitles.acfun\" name=\"Acfun 弹幕\" provider-name=\"xodidox,zhengfan,shaolin-kongfu\" version=\"0.1.1\">\n    <requires>\n        <import addon=\"xbmc.python\" version=\"2.1.0\" />\n        <import addon=\"script.module.requests\" version=\"1.1.0\" />\n        <import addon=\"script.module.beautifulsoup4\" version=\"4.3.2\" />\n        <import addon=\"vfs.rar\" version=\"2.3.0\" />\n    </requires>\n    <extension library=\"service.py\" point=\"xbmc.subtitle.module\" />\n    <extension point=\"xbmc.addon.metadata\">\n        <summary lang=\"zh\">Acfun 弹幕插件</summary>\n        <description lang=\"zh\">从 Acfun 下载弹幕</description>\n        <assets>\n            <icon>icon.png</icon>\n            <clearlogo>logo.png</clearlogo>\n            <fanart>resources/media/fanart.jpg</fanart>\n            <screenshot>resources/media/screenshot_1.png</screenshot>\n            <screenshot>resources/media/screenshot_2.png</screenshot>\n            <screenshot>resources/media/screenshot_3.png</screenshot>\n        </assets>\n        <news />\n    </extension>\n</addon><addon id=\"plugin.audio.jsososo\" name=\"Jsososo\" provider-name=\"zhengfan\" version=\"0.1.1\">\n  <requires>\n    <import addon=\"xbmc.python\" version=\"2.1.0\" />\n    <import addon=\"script.module.xbmcswift2\" version=\"2.4.0\" />\n  <import addon=\"script.module.beautifulsoup4\" version=\"4.5.3\" />\n  <import addon=\"script.module.requests\" version=\"2.19.1\" />\n  <import addon=\"script.module.html5lib\" version=\"0.999.0\" />\n  </requires>\n  <extension library=\"addon.py\" point=\"xbmc.python.pluginsource\">\n    <provides>audio</provides>\n  </extension>\n  <extension point=\"xbmc.addon.metadata\">\n    <platform>all</platform>\n    <language />\n    <description>网易云音乐，QQ音乐，咪咕音乐聚合插件，API 1000%使用music.jsososo.com的服务</description>\n    <assets>\n      <icon>icon.png</icon>\n      <fanart>fanart.png</fanart> \n    </assets>\n    <news>首个版本</news>\n  </extension>\n</addon><addon id=\"plugin.video.xinpianchang\" name=\"新片场\" provider-name=\"zhengfan\" version=\"0.1.1\">\n  <requires>\n    <import addon=\"xbmc.python\" version=\"2.1.0\" />\n    <import addon=\"script.module.xbmcswift2\" version=\"2.4.0\" />\n  <import addon=\"script.module.beautifulsoup4\" version=\"4.5.3\" />\n  <import addon=\"script.module.requests\" version=\"2.19.1\" />\n  <import addon=\"script.module.html5lib\" version=\"0.999.0\" />\n  </requires>\n  <extension library=\"addon.py\" point=\"xbmc.python.pluginsource\">\n    <provides>video</provides>\n  </extension>\n  <extension point=\"xbmc.addon.metadata\">\n    <platform>all</platform>\n    <language />\n    <description>新片场汇聚全球原创优质视频及创作人，提供4K、无广告、无水印视频观看，专业的视频艺术学习教程，正版视觉素材交易等，与数百万创作人一起用作品打动世界</description>\n    <assets>\n      <icon>icon.png</icon>\n      <fanart>fanart.png</fanart> \n    </assets>\n    <news>首个版本</news>\n  </extension>\n</addon><addon id=\"plugin.video.taptap\" name=\"Taptap\" provider-name=\"zhengfan\" version=\"0.2.2\">\n  <requires>\n    <import addon=\"xbmc.python\" version=\"2.1.0\" />\n    <import addon=\"script.module.xbmcswift2\" version=\"2.4.0\" />\n  <import addon=\"script.module.beautifulsoup4\" version=\"4.5.3\" />\n  <import addon=\"script.module.requests\" version=\"2.19.1\" />\n  <import addon=\"script.module.html5lib\" version=\"0.999.0\" />\n  </requires>\n  <extension library=\"addon.py\" point=\"xbmc.python.pluginsource\">\n    <provides>video</provides>\n  </extension>\n  <extension point=\"xbmc.addon.metadata\">\n    <platform>all</platform>\n    <language />\n    <description>TapTap是一个推荐高品质手游的手游分享社区，实时同步全球各大应用市场游戏排行榜，与全球玩家共同交流并发掘高品质手游。每一款推荐游戏，都是由专业的测评团队从全球海量的游戏中精选而出，只为你提供好玩的手机游戏。</description>\n    <assets>\n      <icon>icon.png</icon>\n      <fanart>fanart.png</fanart> \n    </assets>\n    <news>首个版本</news>\n  </extension>\n</addon><addon id=\"plugin.video.kaiyan\" name=\"开眼\" provider-name=\"zhengfan\" version=\"0.1.0\">\n  <requires>\n    <import addon=\"xbmc.python\" version=\"2.1.0\" />\n    <import addon=\"script.module.xbmcswift2\" version=\"2.4.0\" />\n  <import addon=\"script.module.beautifulsoup4\" version=\"4.5.3\" />\n  <import addon=\"script.module.requests\" version=\"2.19.1\" />\n  <import addon=\"script.module.html5lib\" version=\"0.999.0\" />\n  </requires>\n  <extension library=\"addon.py\" point=\"xbmc.python.pluginsource\">\n    <provides>video</provides>\n  </extension>\n  <extension point=\"xbmc.addon.metadata\">\n    <platform>all</platform>\n    <language />\n    <description>精选视频推荐，每日大开眼界</description>\n  </extension>\n</addon><addon id=\"plugin.video.huanxi\" name=\"欢喜首映\" provider-name=\"zhengfan\" version=\"0.1.0\">\n  <requires>\n    <import addon=\"xbmc.python\" version=\"2.1.0\" />\n    <import addon=\"script.module.xbmcswift2\" version=\"2.4.0\" />\n  <import addon=\"script.module.beautifulsoup4\" version=\"4.5.3\" />\n  <import addon=\"script.module.requests\" version=\"2.19.1\" />\n  <import addon=\"script.module.html5lib\" version=\"0.999.0\" />\n  </requires>\n  <extension library=\"addon.py\" point=\"xbmc.python.pluginsource\">\n    <provides>video</provides>\n  </extension>\n  <extension point=\"xbmc.addon.metadata\">\n    <platform>all</platform>\n    <language />\n    <description>欢喜首映拥有王家卫、徐峥、陈可辛、宁浩、顾长卫、张一白、贾樟柯、张艺谋等巨匠影人为平台定制的大制作网剧、网络大电影,将视频播放与内容制作合二为一,首映厅首发好电影</description>\n    <assets>\n      <icon>icon.png</icon>\n      <fanart>fanart.png</fanart> \n    </assets>\n    <news>首个版本</news>\n  </extension>\n</addon><addon id=\"plugin.video.changku\" name=\"场库\" provider-name=\"zhengfan\" version=\"0.1.0\">\n  <requires>\n    <import addon=\"xbmc.python\" version=\"2.1.0\" />\n    <import addon=\"script.module.xbmcswift2\" version=\"2.4.0\" />\n  <import addon=\"script.module.beautifulsoup4\" version=\"4.5.3\" />\n  <import addon=\"script.module.requests\" version=\"2.19.1\" />\n  <import addon=\"script.module.html5lib\" version=\"0.999.0\" />\n  </requires>\n  <extension library=\"addon.py\" point=\"xbmc.python.pluginsource\">\n    <provides>video</provides>\n  </extension>\n  <extension point=\"xbmc.addon.metadata\">\n    <platform>all</platform>\n    <language />\n    <description>高品质短片分享平台,汇集优秀视频短片及微电影创作人,实时不断分享全球优秀视频短片,微电影</description>\n    <assets>\n      <icon>icon.png</icon>\n      <fanart>fanart.png</fanart> \n    </assets>\n    <news>首个版本</news>\n  </extension>\n</addon><addon id=\"plugin.video.bilibili\" name=\"Bilibili\" provider-name=\"zhengfan,shaolin-kongfu,YingjieSong,ArchieMeng\" version=\"0.5.8\">\n  <requires>\n    <import addon=\"xbmc.python\" version=\"2.1.0\" />\n    <import addon=\"script.module.xbmcswift2\" version=\"2.4.0\" />\n  <import addon=\"script.module.beautifulsoup4\" version=\"4.5.3\" />\n  <import addon=\"script.module.requests\" version=\"2.19.1\" />\n  <import addon=\"script.module.html5lib\" version=\"0.999.0\" />\n  </requires>\n  <extension library=\"addon.py\" point=\"xbmc.python.pluginsource\">\n    <provides>video</provides>\n  </extension>\n  <extension library=\"danmuku.py\" point=\"xbmc.python.module\" />\n  <extension library=\"xml2ass.py\" point=\"xbmc.python.module\" />\n  <extension point=\"xbmc.addon.metadata\">\n    <platform>all</platform>\n    <language />\n    <description>bilibili是国内知名的视频弹幕网站，这里有最及时的动漫新番，最棒的ACG氛围，最有创意的Up主。大家可以在这里找到许多欢乐</description>\n  </extension>\n</addon><addon id=\"service.subtitles.bilibili\" name=\"Bilibili 弹幕\" provider-name=\"xodidox,zhengfan,shaolin-kongfu\" version=\"0.1.1\">\n    <requires>\n        <import addon=\"xbmc.python\" version=\"2.1.0\" />\n        <import addon=\"script.module.requests\" version=\"1.1.0\" />\n        <import addon=\"script.module.beautifulsoup4\" version=\"4.3.2\" />\n        <import addon=\"vfs.rar\" version=\"2.3.0\" />\n    </requires>\n    <extension library=\"service.py\" point=\"xbmc.subtitle.module\" />\n    <extension point=\"xbmc.addon.metadata\">\n        <summary lang=\"zh\">哔哩哔哩 弹幕插件</summary>\n        <description lang=\"zh\">从 哔哩哔哩 下载弹幕</description>\n        <assets>\n            <icon>icon.png</icon>\n            <clearlogo>logo.png</clearlogo>\n            <fanart>resources/media/fanart.jpg</fanart>\n            <screenshot>resources/media/screenshot_1.png</screenshot>\n            <screenshot>resources/media/screenshot_2.png</screenshot>\n            <screenshot>resources/media/screenshot_3.png</screenshot>\n        </assets>\n        <news />\n    </extension>\n</addon><addon id=\"plugin.video.skypixel\" name=\"天空之城\" provider-name=\"zhengfan\" version=\"0.1.0\">\n  <requires>\n    <import addon=\"xbmc.python\" version=\"2.1.0\" />\n    <import addon=\"script.module.xbmcswift2\" version=\"2.4.0\" />\n  <import addon=\"script.module.beautifulsoup4\" version=\"4.5.3\" />\n  <import addon=\"script.module.requests\" version=\"2.19.1\" />\n  <import addon=\"script.module.html5lib\" version=\"0.999.0\" />\n  </requires>\n  <extension library=\"addon.py\" point=\"xbmc.python.pluginsource\">\n    <provides>video</provides>\n  </extension>\n  <extension point=\"xbmc.addon.metadata\">\n    <platform>all</platform>\n    <language />\n    <description>世界各地的航拍摄影师、拍手叫绝的航拍作品与独具价值的航拍攻略。全世界的探索者们互相启发,乐在其中</description>\n    <assets>\n      <icon>icon.png</icon>\n      <fanart>fanart.png</fanart> \n    </assets>\n    <news>首个版本</news>\n  </extension>\n</addon></addons>"
  },
  {
    "path": "addons.xml.md5",
    "content": "4e63ef3b358c798d9253b01d3d5f5c1c"
  },
  {
    "path": "metadata.douban.com.python/LICENSE.txt",
    "content": "Valid-License-Identifier: GPL-2.0-or-later\nSPDX-URL:https://spdx.org/licenses/GPL-2.0-or-later.html\nUsage-Guide:\n  To use the GNU General Public License v2.0 or later put the following SPDX\n  tag/value pair into a comment according to the placement guidelines in\n  the licensing rules documentation:\n    SPDX-License-Identifier: GPL-2.0-or-later\nLicense-Text:\n\nGNU GENERAL PUBLIC LICENSE\n\nVersion 2, June 1991\n\nCopyright (C) 1989, 1991 Free Software Foundation, Inc. \n\n51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 , USA\n\nEveryone is permitted to copy and distribute verbatim copies of this license\ndocument, but changing it is not allowed.\n\nPreamble\n\nThe licenses for most software are designed to take away your freedom to share\nand change it. By contrast, the GNU General Public License is intended to\nguarantee your freedom to share and change free software--to make sure the\nsoftware is free for all its users. This General Public License applies to\nmost of the Free Software Foundation's software and to any other program whose\nauthors commit to using it. (Some other Free Software Foundation software\nis covered by the GNU Lesser General Public License instead.) You can apply\nit to your programs, too.\n\nWhen we speak of free software, we are referring to freedom, not price. Our\nGeneral Public Licenses are designed to make sure that you have the freedom\nto distribute copies of free software (and charge for this service if you\nwish), that you receive source code or can get it if you want it, that you\ncan change the software or use pieces of it in new free programs; and that\nyou know you can do these things.\n\nTo protect your rights, we need to make restrictions that forbid anyone to\ndeny you these rights or to ask you to surrender the rights. These restrictions\ntranslate to certain responsibilities for you if you distribute copies of\nthe software, or if you modify it.\n\nFor example, if you distribute copies of such a program, whether gratis or\nfor a fee, you must give the recipients all the rights that you have. You\nmust make sure that they, too, receive or can get the source code. And you\nmust show them these terms so they know their rights.\n\nWe protect your rights with two steps: (1) copyright the software, and (2)\noffer you this license which gives you legal permission to copy, distribute\nand/or modify the software.\n\nAlso, for each author's protection and ours, we want to make certain that\neveryone understands that there is no warranty for this free software. If\nthe software is modified by someone else and passed on, we want its recipients\nto know that what they have is not the original, so that any problems introduced\nby others will not reflect on the original authors' reputations.\n\nFinally, any free program is threatened constantly by software patents. We\nwish to avoid the danger that redistributors of a free program will individually\nobtain patent licenses, in effect making the program proprietary. To prevent\nthis, we have made it clear that any patent must be licensed for everyone's\nfree use or not licensed at all.\n\nThe precise terms and conditions for copying, distribution and modification\nfollow.\n\nTERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION\n\n0. This License applies to any program or other work which contains a notice\nplaced by the copyright holder saying it may be distributed under the terms\nof this General Public License. The \"Program\", below, refers to any such program\nor work, and a \"work based on the Program\" means either the Program or any\nderivative work under copyright law: that is to say, a work containing the\nProgram or a portion of it, either verbatim or with modifications and/or translated\ninto another language. (Hereinafter, translation is included without limitation\nin the term \"modification\".) Each licensee is addressed as \"you\".\n\nActivities other than copying, distribution and modification are not covered\nby this License; they are outside its scope. The act of running the Program\nis not restricted, and the output from the Program is covered only if its\ncontents constitute a work based on the Program (independent of having been\nmade by running the Program). Whether that is true depends on what the Program\ndoes.\n\n1. You may copy and distribute verbatim copies of the Program's source code\nas you receive it, in any medium, provided that you conspicuously and appropriately\npublish on each copy an appropriate copyright notice and disclaimer of warranty;\nkeep intact all the notices that refer to this License and to the absence\nof any warranty; and give any other recipients of the Program a copy of this\nLicense along with the Program.\n\nYou may charge a fee for the physical act of transferring a copy, and you\nmay at your option offer warranty protection in exchange for a fee.\n\n2. You may modify your copy or copies of the Program or any portion of it,\nthus forming a work based on the Program, and copy and distribute such modifications\nor work under the terms of Section 1 above, provided that you also meet all\nof these conditions:\n\na) You must cause the modified files to carry prominent notices stating that\nyou changed the files and the date of any change.\n\nb) You must cause any work that you distribute or publish, that in whole or\nin part contains or is derived from the Program or any part thereof, to be\nlicensed as a whole at no charge to all third parties under the terms of this\nLicense.\n\nc) If the modified program normally reads commands interactively when run,\nyou must cause it, when started running for such interactive use in the most\nordinary way, to print or display an announcement including an appropriate\ncopyright notice and a notice that there is no warranty (or else, saying that\nyou provide a warranty) and that users may redistribute the program under\nthese conditions, and telling the user how to view a copy of this License.\n(Exception: if the Program itself is interactive but does not normally print\nsuch an announcement, your work based on the Program is not required to print\nan announcement.)\n\nThese requirements apply to the modified work as a whole. If identifiable\nsections of that work are not derived from the Program, and can be reasonably\nconsidered independent and separate works in themselves, then this License,\nand its terms, do not apply to those sections when you distribute them as\nseparate works. But when you distribute the same sections as part of a whole\nwhich is a work based on the Program, the distribution of the whole must be\non the terms of this License, whose permissions for other licensees extend\nto the entire whole, and thus to each and every part regardless of who wrote\nit.\n\nThus, it is not the intent of this section to claim rights or contest your\nrights to work written entirely by you; rather, the intent is to exercise\nthe right to control the distribution of derivative or collective works based\non the Program.\n\nIn addition, mere aggregation of another work not based on the Program with\nthe Program (or with a work based on the Program) on a volume of a storage\nor distribution medium does not bring the other work under the scope of this\nLicense.\n\n3. You may copy and distribute the Program (or a work based on it, under Section\n2) in object code or executable form under the terms of Sections 1 and 2 above\nprovided that you also do one of the following:\n\na) Accompany it with the complete corresponding machine-readable source code,\nwhich must be distributed under the terms of Sections 1 and 2 above on a medium\ncustomarily used for software interchange; or,\n\nb) Accompany it with a written offer, valid for at least three years, to give\nany third party, for a charge no more than your cost of physically performing\nsource distribution, a complete machine-readable copy of the corresponding\nsource code, to be distributed under the terms of Sections 1 and 2 above on\na medium customarily used for software interchange; or,\n\nc) Accompany it with the information you received as to the offer to distribute\ncorresponding source code. (This alternative is allowed only for noncommercial\ndistribution and only if you received the program in object code or executable\nform with such an offer, in accord with Subsection b above.)\n\nThe source code for a work means the preferred form of the work for making\nmodifications to it. For an executable work, complete source code means all\nthe source code for all modules it contains, plus any associated interface\ndefinition files, plus the scripts used to control compilation and installation\nof the executable. However, as a special exception, the source code distributed\nneed not include anything that is normally distributed (in either source or\nbinary form) with the major components (compiler, kernel, and so on) of the\noperating system on which the executable runs, unless that component itself\naccompanies the executable.\n\nIf distribution of executable or object code is made by offering access to\ncopy from a designated place, then offering equivalent access to copy the\nsource code from the same place counts as distribution of the source code,\neven though third parties are not compelled to copy the source along with\nthe object code.\n\n4. You may not copy, modify, sublicense, or distribute the Program except\nas expressly provided under this License. Any attempt otherwise to copy, modify,\nsublicense or distribute the Program is void, and will automatically terminate\nyour rights under this License. However, parties who have received copies,\nor rights, from you under this License will not have their licenses terminated\nso long as such parties remain in full compliance.\n\n5. You are not required to accept this License, since you have not signed\nit. However, nothing else grants you permission to modify or distribute the\nProgram or its derivative works. These actions are prohibited by law if you\ndo not accept this License. Therefore, by modifying or distributing the Program\n(or any work based on the Program), you indicate your acceptance of this License\nto do so, and all its terms and conditions for copying, distributing or modifying\nthe Program or works based on it.\n\n6. Each time you redistribute the Program (or any work based on the Program),\nthe recipient automatically receives a license from the original licensor\nto copy, distribute or modify the Program subject to these terms and conditions.\nYou may not impose any further restrictions on the recipients' exercise of\nthe rights granted herein. You are not responsible for enforcing compliance\nby third parties to this License.\n\n7. If, as a consequence of a court judgment or allegation of patent infringement\nor for any other reason (not limited to patent issues), conditions are imposed\non you (whether by court order, agreement or otherwise) that contradict the\nconditions of this License, they do not excuse you from the conditions of\nthis License. If you cannot distribute so as to satisfy simultaneously your\nobligations under this License and any other pertinent obligations, then as\na consequence you may not distribute the Program at all. For example, if a\npatent license would not permit royalty-free redistribution of the Program\nby all those who receive copies directly or indirectly through you, then the\nonly way you could satisfy both it and this License would be to refrain entirely\nfrom distribution of the Program.\n\nIf any portion of this section is held invalid or unenforceable under any\nparticular circumstance, the balance of the section is intended to apply and\nthe section as a whole is intended to apply in other circumstances.\n\nIt is not the purpose of this section to induce you to infringe any patents\nor other property right claims or to contest validity of any such claims;\nthis section has the sole purpose of protecting the integrity of the free\nsoftware distribution system, which is implemented by public license practices.\nMany people have made generous contributions to the wide range of software\ndistributed through that system in reliance on consistent application of that\nsystem; it is up to the author/donor to decide if he or she is willing to\ndistribute software through any other system and a licensee cannot impose\nthat choice.\n\nThis section is intended to make thoroughly clear what is believed to be a\nconsequence of the rest of this License.\n\n8. If the distribution and/or use of the Program is restricted in certain\ncountries either by patents or by copyrighted interfaces, the original copyright\nholder who places the Program under this License may add an explicit geographical\ndistribution limitation excluding those countries, so that distribution is\npermitted only in or among countries not thus excluded. In such case, this\nLicense incorporates the limitation as if written in the body of this License.\n\n9. The Free Software Foundation may publish revised and/or new versions of\nthe General Public License from time to time. Such new versions will be similar\nin spirit to the present version, but may differ in detail to address new\nproblems or concerns.\n\nEach version is given a distinguishing version number. If the Program specifies\na version number of this License which applies to it and \"any later version\",\nyou have the option of following the terms and conditions either of that version\nor of any later version published by the Free Software Foundation. If the\nProgram does not specify a version number of this License, you may choose\nany version ever published by the Free Software Foundation.\n\n10. If you wish to incorporate parts of the Program into other free programs\nwhose distribution conditions are different, write to the author to ask for\npermission. For software which is copyrighted by the Free Software Foundation,\nwrite to the Free Software Foundation; we sometimes make exceptions for this.\nOur decision will be guided by the two goals of preserving the free status\nof all derivatives of our free software and of promoting the sharing and reuse\nof software generally.\n\n   NO WARRANTY\n\n11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR\nTHE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE\nSTATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM\n\"AS IS\" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,\nBUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS\nFOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE\nOF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME\nTHE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.\n\n12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING\nWILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE\nTHE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY\nGENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE\nOR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA\nOR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES\nOR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH\nHOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.\nEND OF TERMS AND CONDITIONS\n\nHow to Apply These Terms to Your New Programs\n\nIf you develop a new program, and you want it to be of the greatest possible\nuse to the public, the best way to achieve this is to make it free software\nwhich everyone can redistribute and change under these terms.\n\nTo do so, attach the following notices to the program. It is safest to attach\nthem to the start of each source file to most effectively convey the exclusion\nof warranty; and each file should have at least the \"copyright\" line and a\npointer to where the full notice is found.\n\n<one line to give the program's name and an idea of what it does.>\n\nCopyright (C) <yyyy> <name of author>\n\nThis program is free software; you can redistribute it and/or modify it under\nthe terms of the GNU General Public License as published by the Free Software\nFoundation; either version 2 of the License, or (at your option) any later\nversion.\n\nThis program is distributed in the hope that it will be useful, but WITHOUT\nANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS\nFOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.\n\nYou should have received a copy of the GNU General Public License along with\nthis program; if not, write to the Free Software Foundation, Inc., 51 Franklin\nStreet, Fifth Floor, Boston, MA 02110-1301 , USA.\n\nAlso add information on how to contact you by electronic and paper mail.\n\nIf the program is interactive, make it output a short notice like this when\nit starts in an interactive mode:\n\nGnomovision version 69, Copyright (C) year name of author Gnomovision comes\nwith ABSOLUTELY NO WARRANTY; for details type `show w'. This is free software,\nand you are welcome to redistribute it under certain conditions; type `show\nc' for details.\n\nThe hypothetical commands `show w' and `show c' should show the appropriate\nparts of the General Public License. Of course, the commands you use may be\ncalled something other than `show w' and `show c'; they could even be mouse-clicks\nor menu items--whatever suits your program.\n\nYou should also get your employer (if you work as a programmer) or your school,\nif any, to sign a \"copyright disclaimer\" for the program, if necessary. Here\nis a sample; alter the names:\n\nYoyodyne, Inc., hereby disclaims all copyright interest in the program `Gnomovision'\n(which makes passes at compilers) written by James Hacker.\n\n< signature of Ty Coon > , 1 April 1989 Ty Coon, President of Vice This General\nPublic License does not permit incorporating your program into proprietary\nprograms. If your program is a subroutine library, you may consider it more\nuseful to permit linking proprietary applications with the library. If this\nis what you want to do, use the GNU Lesser General Public License instead\nof this License.\n"
  },
  {
    "path": "metadata.douban.com.python/README.md",
    "content": "## The Movie Database Python scraper for Kodi\n\nThis is early work on a Python movie scraper for Kodi.\n\n### Manual search by IMDB / TMDB ID\nWhen manually searching you can enter an IMDB or TMDB ID to pull up an exact movie result.\nTo search by TMDB enter \"tmdb/\" then the ID, like \"tmdb/11\". To search by IMDB ID enter it directly.\n\n## Development info\n\n### How to run unit tests\n\n`python -m unittest discover -v` from the main **metadata.themoviedb.org.python** directory.\nPython 3 only.\n"
  },
  {
    "path": "metadata.douban.com.python/addon.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>\n<addon id=\"metadata.douban.com.python\" name=\"豆瓣刮削器Python\" version=\"0.1.1\" provider-name=\"zhengfan\">\n  <requires>\n    <import addon=\"xbmc.metadata\" version=\"2.1.0\"/>\n    <import addon=\"xbmc.python\" version=\"2.26.0\"/>\n    <import addon=\"script.module.xbmcswift2\" version=\"2.4.0\"/>\n    <import addon=\"script.module.beautifulsoup4\" version=\"4.5.3\"/>\n    <import addon=\"script.module.requests\" version=\"2.19.1\"/>\n    <import addon=\"script.module.html5lib\" version=\"0.999.0\"/>\n  </requires>\n  <extension point=\"xbmc.metadata.scraper.movies\" library=\"python/scraper.py\"/>\n  <extension point=\"xbmc.addon.metadata\">\n\n    <summary>豆瓣刮削器Python</summary>\n    <description>豆瓣电影提供最新的电影介绍及评论包括上映影片的影讯查询及购票服务。你可以记录想看、在看和看过的电影电视剧，顺便打分、写影评。根据你的口味，豆瓣电影会推荐好电影给你。</description>\n    <platform>all</platform>\n    <language></language>\n    <assets>\n      <icon>icon.png</icon>\n    </assets>\n  </extension>\n</addon>\n"
  },
  {
    "path": "metadata.douban.com.python/python/lib/__init__.py",
    "content": ""
  },
  {
    "path": "metadata.douban.com.python/python/lib/tmdbscraper/__init__.py",
    "content": "\ndef get_imdb_id(uniqueids):\n    imdb_id = uniqueids.get('imdb')\n    if not imdb_id or not imdb_id.startswith('tt'):\n        return None\n    return imdb_id\n\n# example format for scraper results\n_ScraperResults = {\n    'info',\n    'ratings',\n    'uniqueids',\n    'cast',\n    'available_art',\n    'error',\n    'warning' # not handled\n}\n"
  },
  {
    "path": "metadata.douban.com.python/python/lib/tmdbscraper/api_utils.py",
    "content": "# coding: utf-8\n#\n# Copyright (C) 2020, Team Kodi\n#\n# This program is free software: you can redistribute it and/or modify\n# it under the terms of the GNU General Public License as published by\n# the Free Software Foundation, either version 3 of the License, or\n# (at your option) any later version.\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n# GNU General Public License for more details.\n#\n# You should have received a copy of the GNU General Public License\n# along with this program.  If not, see <https://www.gnu.org/licenses/>.\n\n\"\"\"Functions to interact with various web site APIs.\"\"\"\n\nfrom __future__ import absolute_import, unicode_literals\n\nimport json, xbmc\n# from pprint import pformat\ntry: #PY2 / PY3\n    from urllib2 import Request, urlopen\n    from urllib2 import URLError\n    from urllib import urlencode\nexcept ImportError:\n    from urllib.request import Request, urlopen\n    from urllib.error import URLError\n    from urllib.parse import urlencode\ntry:\n    from typing import Text, Optional, Union, List, Dict, Any  # pylint: disable=unused-import\n    InfoType = Dict[Text, Any]  # pylint: disable=invalid-name\nexcept ImportError:\n    pass\n\nHEADERS = {}\n\n\ndef set_headers(headers):\n    HEADERS.update(headers)\n\n\ndef load_info(url, params=None, default=None, resp_type = 'json'):\n    # type: (Text, Optional[Dict[Text, Union[Text, List[Text]]]]) -> Union[dict, list]\n    \"\"\"\n    Load info from external api\n\n    :param url: API endpoint URL\n    :param params: URL query params\n    :default: object to return if there is an error\n    :resp_type: what to return to the calling function\n    :return: API response or default on error\n    \"\"\"\n    theerror = ''\n    if params:\n        url = url + '?' + urlencode(params)\n    xbmc.log('Calling URL \"{}\"'.format(url), xbmc.LOGDEBUG)\n    req = Request(url, headers=HEADERS)\n    try:\n        response = urlopen(req)\n    except URLError as e:\n        if hasattr(e, 'reason'):\n            theerror = {'error': 'failed to reach the remote site\\nReason: {}'.format(e.reason)}\n        elif hasattr(e, 'code'):\n            theerror = {'error': 'remote site unable to fulfill the request\\nError code: {}'.format(e.code)}\n        if default is not None:\n            return default\n        else:\n            return theerror\n    if resp_type.lower() == 'json':\n        resp = json.loads(response.read().decode('utf-8'))\n    else:\n        resp = response.read().decode('utf-8')\n    # xbmc.log('the api response:\\n{}'.format(pformat(resp)), xbmc.LOGDEBUG)\n    return resp\n"
  },
  {
    "path": "metadata.douban.com.python/python/lib/tmdbscraper/fanarttv.py",
    "content": "from . import api_utils\ntry:\n    from urllib import quote\nexcept ImportError: # py2 / py3\n    from urllib.parse import quote\n\nAPI_KEY = '384afe262ee0962545a752ff340e3ce4'\nAPI_URL = 'https://webservice.fanart.tv/v3/movies/{}'\n\nARTMAP = {\n    'movielogo': 'clearlogo',\n    'hdmovielogo': 'clearlogo',\n    'hdmovieclearart': 'clearart',\n    'movieart': 'clearart',\n    'moviedisc': 'discart',\n    'moviebanner': 'banner',\n    'moviethumb': 'landscape',\n    'moviebackground': 'fanart',\n    'movieposter': 'poster'\n}\n\ndef get_details(uniqueids, clientkey, language, set_tmdbid):\n    media_id = _get_mediaid(uniqueids)\n    if not media_id:\n        return {}\n\n    movie_data = _get_data(media_id, clientkey)\n    movieset_data = _get_data(set_tmdbid, clientkey)\n    if not movie_data and not movieset_data:\n        return {}\n\n    movie_art = {}\n    movieset_art = {}\n    if movie_data:\n        movie_art = _parse_data(movie_data, language)\n    if movieset_data:\n        movieset_art = _parse_data(movieset_data, language)\n        movieset_art = {'set.' + key: value for key, value in movieset_art.items()}\n\n    available_art = movie_art\n    available_art.update(movieset_art)\n\n    return {'available_art': available_art}\n\ndef _get_mediaid(uniqueids):\n    for source in ('tmdb', 'imdb', 'unknown'):\n        if source in uniqueids:\n            return uniqueids[source]\n\ndef _get_data(media_id, clientkey):\n    headers = {'api-key': API_KEY}\n    if clientkey:\n        headers['client-key'] = clientkey\n    api_utils.set_headers(headers)\n    fanarttv_url = API_URL.format(media_id)\n    return api_utils.load_info(fanarttv_url, default={})\n\ndef _parse_data(data, language):\n    result = {}\n    for arttype, artlist in data.items():\n        if arttype not in ARTMAP:\n            continue\n        for image in artlist:\n            image_lang = _get_imagelanguage(arttype, image)\n            if image_lang and image_lang != language:\n                continue\n\n            generaltype = ARTMAP[arttype]\n            if generaltype == 'poster' and not image_lang:\n                generaltype = 'keyart'\n            if artlist and generaltype not in result:\n                result[generaltype] = []\n\n            url = quote(image['url'], safe=\"%/:=&?~#+!$,;'@()*[]\")\n            resultimage = {'url': url, 'preview': url.replace('.fanart.tv/fanart/', '.fanart.tv/preview/')}\n            result[generaltype].append(resultimage)\n\n    return result\n\ndef _get_imagelanguage(arttype, image):\n    if 'lang' not in image or arttype == 'moviebackground':\n        return None\n    if arttype in ('movielogo', 'hdmovielogo', 'hdmovieclearart', 'movieart', 'moviebanner',\n            'moviethumb', 'moviedisc'):\n        return image['lang'] if image['lang'] not in ('', '00') else 'en'\n    # movieposter may or may not have a title and thus need a language\n    return image['lang'] if image['lang'] not in ('', '00') else None\n"
  },
  {
    "path": "metadata.douban.com.python/python/lib/tmdbscraper/imdbratings.py",
    "content": "# -*- coding: UTF-8 -*-\n#\n# Copyright (C) 2020, Team Kodi\n#\n# This program is free software: you can redistribute it and/or modify\n# it under the terms of the GNU General Public License as published by\n# the Free Software Foundation, either version 3 of the License, or\n# (at your option) any later version.\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n# GNU General Public License for more details.\n#\n# You should have received a copy of the GNU General Public License\n# along with this program.  If not, see <https://www.gnu.org/licenses/>.\n#\n# IMDb ratings based on code in metadata.themoviedb.org.python by Team Kodi\n# pylint: disable=missing-docstring\n\nimport re\nfrom . import api_utils\nfrom . import get_imdb_id\n\nIMDB_RATINGS_URL = 'https://www.imdb.com/title/{}/'\nIMDB_RATING_REGEX = re.compile(r'itemprop=\"ratingValue\".*?>.*?([\\d.]+).*?<')\nIMDB_VOTES_REGEX = re.compile(r'itemprop=\"ratingCount\".*?>.*?([\\d,]+).*?<')\nIMDB_TOP250_REGEX = re.compile(r'Top Rated Movies #(\\d+)')\n\ndef get_details(uniqueids):\n    imdb_id = get_imdb_id(uniqueids)\n    if not imdb_id:\n        return {}\n    votes, rating, top250 = _get_ratinginfo(imdb_id)\n    return _assemble_imdb_result(votes, rating, top250)\n\ndef _get_ratinginfo(imdb_id):\n    response = api_utils.load_info(IMDB_RATINGS_URL.format(imdb_id), default = '', resp_type='text')\n    return _parse_imdb_result(response)\n\ndef _assemble_imdb_result(votes, rating, top250):\n    result = {}\n    if top250:\n        result['info'] = {'top250': top250}\n    if votes and rating:\n        result['ratings'] = {'imdb': {'votes': votes, 'rating': rating}}\n    return result\n\ndef _parse_imdb_result(input_html):\n    rating = _parse_imdb_rating(input_html)\n    votes = _parse_imdb_votes(input_html)\n    top250 = _parse_imdb_top250(input_html)\n\n    return votes, rating, top250\n\ndef _parse_imdb_rating(input_html):\n    match = re.search(IMDB_RATING_REGEX, input_html)\n    if (match):\n        return float(match.group(1))\n    return None\n\ndef _parse_imdb_votes(input_html):\n    match = re.search(IMDB_VOTES_REGEX, input_html)\n    if (match):\n        return int(match.group(1).replace(',', ''))\n    return None\n\ndef _parse_imdb_top250(input_html):\n    match = re.search(IMDB_TOP250_REGEX, input_html)\n    if (match):\n        return int(match.group(1))\n    return None\n"
  },
  {
    "path": "metadata.douban.com.python/python/lib/tmdbscraper/tmdb.py",
    "content": "from datetime import datetime, timedelta\nfrom . import tmdbapi\n\n\nclass TMDBMovieScraper(object):\n    def __init__(self, url_settings, language, certification_country):\n        self.url_settings = url_settings\n        self.language = language\n        self.certification_country = certification_country\n        self._urls = None\n\n    @property\n    def urls(self):\n        if not self._urls:\n            self._urls = _load_base_urls(self.url_settings)\n        return self._urls\n\n    def search(self, title, year=None):\n        search_media_id = _parse_media_id(title)\n        if search_media_id:\n            if search_media_id['type'] == 'tmdb':\n                result = _get_movie(search_media_id['id'], self.language, True)\n                result = [result]\n            else:\n                response = tmdbapi.find_movie_by_external_id(search_media_id['id'], language=self.language)\n                theerror = response.get('error')\n                if theerror:\n                    return 'error: {}'.format(theerror)\n                result = response.get('movie_results')\n            if 'error' in result:\n                return result\n        else:\n            response = tmdbapi.search_movie(query=title, year=year, language=self.language)\n            theerror = response.get('error')\n            if theerror:\n                return 'error: {}'.format(theerror)\n            result = response['results']\n        urls = self.urls\n\n        def is_best(item):\n            return item['title'].lower() == title and (\n                not year or item.get('release_date', '').startswith(year))\n        if result and not is_best(result[0]):\n            best_first = next((item for item in result if is_best(item)), None)\n            if best_first:\n                result = [best_first] + [item for item in result if item is not best_first]\n\n        for item in result:\n            if item.get('poster_path'):\n                item['poster_path'] = urls['preview'] + item['poster_path']\n            if item.get('backdrop_path'):\n                item['backdrop_path'] = urls['preview'] + item['backdrop_path']\n        return result\n\n    def get_details(self, uniqueids):\n        media_id = uniqueids.get('tmdb') or uniqueids.get('imdb')\n        details = self._gather_details(media_id)\n        if not details:\n            return None\n        if details.get('error'):\n            return details\n        return self._assemble_details(**details)\n\n    def _gather_details(self, media_id):\n        movie = _get_movie(media_id, self.language)\n        if not movie or movie.get('error'):\n            return movie\n\n        # don't specify language to get English text for fallback\n        movie_fallback = _get_movie(media_id)\n\n        collection = _get_moviecollection(movie['belongs_to_collection'].get('id'), self.language) if \\\n            movie['belongs_to_collection'] else None\n        collection_fallback = _get_moviecollection(movie['belongs_to_collection'].get('id')) if \\\n            movie['belongs_to_collection'] else None\n\n        return {'movie': movie, 'movie_fallback': movie_fallback, 'collection': collection,\n            'collection_fallback': collection_fallback}\n\n    def _assemble_details(self, movie, movie_fallback, collection, collection_fallback):\n        info = {\n            'title': movie['title'],\n            'originaltitle': movie['original_title'],\n            'plot': movie.get('overview') or movie_fallback.get('overview'),\n            'tagline': movie.get('tagline') or movie_fallback.get('tagline'),\n            'studio': _get_names(movie['production_companies']),\n            'genre': _get_names(movie['genres']),\n            'country': _get_names(movie['production_countries']),\n            'credits': _get_cast_members(movie['casts'], 'crew', 'Writing', ['Screenplay', 'Writer', 'Author']),\n            'director': _get_cast_members(movie['casts'], 'crew', 'Directing', ['Director']),\n            'premiered': movie['release_date'],\n            'tag': _get_names(movie['keywords']['keywords'])\n        }\n\n        if 'countries' in movie['releases']:\n            certcountry = self.certification_country.upper()\n            for country in movie['releases']['countries']:\n                if country['iso_3166_1'] == certcountry and country['certification']:\n                    info['mpaa'] = country['certification']\n                    break\n\n        trailer = _parse_trailer(movie.get('trailers', {}), movie_fallback.get('trailers', {}))\n        if trailer:\n            info['trailer'] = trailer\n        if collection:\n            info['set'] = collection.get('name') or collection_fallback.get('name')\n            info['setoverview'] = collection.get('overview') or collection_fallback.get('overview')\n        if movie.get('runtime'):\n            info['duration'] = movie['runtime'] * 60\n\n        ratings = {'themoviedb': {'rating': float(movie['vote_average']), 'votes': int(movie['vote_count'])}}\n        uniqueids = {'tmdb': movie['id'], 'imdb': movie['imdb_id']}\n        cast = [{\n                'name': actor['name'],\n                'role': actor['character'],\n                'thumbnail': self.urls['original'] + actor['profile_path']\n                    if actor['profile_path'] else \"\",\n                'order': actor['order']\n            }\n            for actor in movie['casts'].get('cast', [])\n        ]\n        available_art = _parse_artwork(movie, collection, self.urls, self.language)\n\n        _info = {'set_tmdbid': movie['belongs_to_collection'].get('id')\n            if movie['belongs_to_collection'] else None}\n\n        return {'info': info, 'ratings': ratings, 'uniqueids': uniqueids, 'cast': cast,\n            'available_art': available_art, '_info': _info}\n\ndef _parse_media_id(title):\n    if title.startswith('tt') and title[2:].isdigit():\n        return {'type': 'imdb', 'id':title} # IMDB ID works alone because it is clear\n    title = title.lower()\n    if title.startswith('tmdb/') and title[5:].isdigit(): # TMDB ID\n        return {'type': 'tmdb', 'id':title[5:]}\n    elif title.startswith('imdb/tt') and title[7:].isdigit(): # IMDB ID with prefix to match\n        return {'type': 'imdb', 'id':title[5:]}\n    return None\n\ndef _get_movie(mid, language=None, search=False):\n    details = None if search else \\\n        'trailers,images,releases,casts,keywords' if language is not None else \\\n        'trailers'\n    response = tmdbapi.get_movie(mid, language=language, append_to_response=details)\n    theerror = response.get('error')\n    if theerror:\n        return 'error: {}'.format(theerror)\n    else:\n        return response\n\ndef _get_moviecollection(collection_id, language=None):\n    if not collection_id:\n        return None\n    details = 'images'\n    response = tmdbapi.get_collection(collection_id, language=language, append_to_response=details)\n    theerror = response.get('error')\n    if theerror:\n        return 'error: {}'.format(theerror)\n    else:\n        return response\n\ndef _parse_artwork(movie, collection, urlbases, language):\n    if language:\n        # Image languages don't have regional variants\n        language = language.split('-')[0]\n    posters = []\n    landscape = []\n    fanart = []\n    if 'images' in movie:\n        posters = _get_images_with_fallback(movie['images']['posters'], urlbases, language)\n        landscape = _get_images(movie['images']['backdrops'], urlbases, language)\n        fanart = _get_images(movie['images']['backdrops'], urlbases, None)\n\n    setposters = []\n    setlandscape = []\n    setfanart = []\n    if collection and 'images' in collection:\n        setposters = _get_images_with_fallback(collection['images']['posters'], urlbases, language)\n        setlandscape = _get_images(collection['images']['backdrops'], urlbases, language)\n        setfanart = _get_images(collection['images']['backdrops'], urlbases, None)\n\n    return {'poster': posters, 'landscape': landscape, 'fanart': fanart,\n        'set.poster': setposters, 'set.landscape': setlandscape, 'set.fanart': setfanart}\n\ndef _get_images_with_fallback(imagelist, urlbases, language, language_fallback='en'):\n    images = _get_images(imagelist, urlbases, language)\n\n    # Add backup images\n    if language != language_fallback:\n        images.extend(_get_images(imagelist, urlbases, language_fallback))\n\n    # Add any images if nothing set so far\n    if not images:\n        images = _get_images(imagelist, urlbases)\n\n    return images\n\ndef _get_images(imagelist, urlbases, language='_any'):\n    result = []\n    for img in imagelist:\n        if language != '_any' and img['iso_639_1'] != language:\n            continue\n        result.append({\n            'url': urlbases['original'] + img['file_path'],\n            'preview': urlbases['preview'] + img['file_path'],\n        })\n    return result\n\ndef _get_date_numeric(datetime_):\n    return (datetime_ - datetime(1970, 1, 1)).total_seconds()\n\ndef _load_base_urls(url_settings):\n    urls = {}\n    urls['original'] = url_settings.getSettingString('originalUrl')\n    urls['preview'] = url_settings.getSettingString('previewUrl')\n    last_updated = url_settings.getSettingString('lastUpdated')\n    if not urls['original'] or not urls['preview'] or not last_updated or \\\n            float(last_updated) < _get_date_numeric(datetime.now() - timedelta(days=30)):\n        conf = tmdbapi.get_configuration()\n        if conf:\n            urls['original'] = conf['images']['secure_base_url'] + 'original'\n            urls['preview'] = conf['images']['secure_base_url'] + 'w780'\n            url_settings.setSetting('originalUrl', urls['original'])\n            url_settings.setSetting('previewUrl', urls['preview'])\n            url_settings.setSetting('lastUpdated', str(_get_date_numeric(datetime.now())))\n    return urls\n\ndef _parse_trailer(trailers, fallback):\n    if trailers.get('youtube'):\n        return 'plugin://plugin.video.youtube/?action=play_video&videoid='+trailers['youtube'][0]['source']\n    if fallback.get('youtube'):\n        return 'plugin://plugin.video.youtube/?action=play_video&videoid='+fallback['youtube'][0]['source']\n    return None\n\ndef _get_names(items):\n    return [item['name'] for item in items] if items else []\n\ndef _get_cast_members(casts, casttype, department, jobs):\n    result = []\n    if casttype in casts:\n        for cast in casts[casttype]:\n            if cast['department'] == department and cast['job'] in jobs and cast['name'] not in result:\n                result.append(cast['name'])\n    return result\n"
  },
  {
    "path": "metadata.douban.com.python/python/lib/tmdbscraper/tmdbapi.py",
    "content": "# -*- coding: UTF-8 -*-\n#\n# Copyright (C) 2020, Team Kodi\n#\n# This program is free software: you can redistribute it and/or modify\n# it under the terms of the GNU General Public License as published by\n# the Free Software Foundation, either version 3 of the License, or\n# (at your option) any later version.\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n# GNU General Public License for more details.\n#\n# You should have received a copy of the GNU General Public License\n# along with this program.  If not, see <https://www.gnu.org/licenses/>.\n# pylint: disable=missing-docstring\n\n\"\"\"Functions to interact with TMDb API.\"\"\"\n\nfrom . import api_utils\nimport xbmc\ntry:\n    from typing import Optional, Text, Dict, List, Any  # pylint: disable=unused-import\n    InfoType = Dict[Text, Any]  # pylint: disable=invalid-name\nexcept ImportError:\n    pass\n\n\nHEADERS = (\n    ('User-Agent', 'Kodi Movie scraper by Team Kodi'),\n    ('Accept', 'application/json'),\n)\napi_utils.set_headers(dict(HEADERS))\n\nTMDB_PARAMS = {'api_key': 'f090bb54758cabf231fb605d3e3e0468'}\nBASE_URL = 'https://api.themoviedb.org/3/{}'\nSEARCH_URL = BASE_URL.format('search/movie')\nFIND_URL = BASE_URL.format('find/{}')\nMOVIE_URL = BASE_URL.format('movie/{}')\nCOLLECTION_URL = BASE_URL.format('collection/{}')\nCONFIG_URL = BASE_URL.format('configuration')\n\n\ndef search_movie(query, year=None, language=None):\n    # type: (Text) -> List[InfoType]\n    \"\"\"\n    Search for a movie\n\n    :param title: movie title to search\n    :param year: the year to search (optional)\n    :param language: the language filter for TMDb (optional)\n    :return: a list with found movies\n    \"\"\"\n    xbmc.log('using title of %s to find movie' % query, xbmc.LOGDEBUG)\n    theurl = SEARCH_URL\n    params = _set_params(None, language)\n    params['query'] = query\n    if year is not None:\n        params['year'] = str(year)\n    return api_utils.load_info(theurl, params=params)\n\n\ndef find_movie_by_external_id(external_id, language=None):\n    # type: (Text) -> List[InfoType]\n    \"\"\"\n    Find movie based on external ID\n\n    :param mid: external ID\n    :param language: the language filter for TMDb (optional)\n    :return: the movie or error\n    \"\"\"\n    xbmc.log('using external id of %s to find movie' % external_id, xbmc.LOGDEBUG)\n    theurl = FIND_URL.format(external_id)\n    params = _set_params(None, language)\n    params['external_source'] = 'imdb_id'\n    return api_utils.load_info(theurl, params=params)\n\n\n\ndef get_movie(mid, language=None, append_to_response=None):\n    # type: (Text) -> List[InfoType]\n    \"\"\"\n    Get movie details\n\n    :param mid: TMDb movie ID\n    :param language: the language filter for TMDb (optional)\n    :append_to_response: the additional data to get from TMDb (optional)\n    :return: the movie or error\n    \"\"\"\n    xbmc.log('using movie id of %s to get movie details' % mid, xbmc.LOGDEBUG)\n    theurl = MOVIE_URL.format(mid)\n    return api_utils.load_info(theurl, params=_set_params(append_to_response, language))\n\n\ndef get_collection(collection_id, language=None, append_to_response=None):\n    # type: (Text) -> List[InfoType]\n    \"\"\"\n    Get movie collection information\n\n    :param collection_id: TMDb collection ID\n    :param language: the language filter for TMDb (optional)\n    :append_to_response: the additional data to get from TMDb (optional)\n    :return: the movie or error\n    \"\"\"\n    xbmc.log('using collection id of %s to get collection details' % collection_id, xbmc.LOGDEBUG)\n    theurl = COLLECTION_URL.format(collection_id)\n    return api_utils.load_info(theurl, params=_set_params(append_to_response, language))\n\n\ndef get_configuration():\n    # type: (Text) -> List[InfoType]\n    \"\"\"\n    Get configuration information\n\n    :return: configuration details or error\n    \"\"\"\n    xbmc.log('getting configuration details', xbmc.LOGDEBUG)\n    return api_utils.load_info(CONFIG_URL, params=TMDB_PARAMS.copy())\n\n\ndef _set_params(append_to_response, language):\n    params = TMDB_PARAMS.copy()\n    img_lang = 'en,null'\n    if language is not None:\n        params['language'] = language\n        img_lang = '%s,en,null' % language[0:2]\n    if append_to_response is not None:\n        params['append_to_response'] = append_to_response\n        if 'images' in append_to_response:\n            params['include_image_language'] = img_lang\n    return params\n"
  },
  {
    "path": "metadata.douban.com.python/python/lib/tmdbscraper/traktratings.py",
    "content": "# -*- coding: UTF-8 -*-\n#\n# Copyright (C) 2020, Team Kodi\n#\n# This program is free software: you can redistribute it and/or modify\n# it under the terms of the GNU General Public License as published by\n# the Free Software Foundation, either version 3 of the License, or\n# (at your option) any later version.\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n# GNU General Public License for more details.\n#\n# You should have received a copy of the GNU General Public License\n# along with this program.  If not, see <https://www.gnu.org/licenses/>.\n# pylint: disable=missing-docstring\n\n\"\"\"Functions to interact with Trakt API.\"\"\"\n\nfrom __future__ import absolute_import, unicode_literals\n\nfrom . import api_utils\nfrom . import get_imdb_id\ntry:\n    from typing import Optional, Text, Dict, List, Any  # pylint: disable=unused-import\n    InfoType = Dict[Text, Any]  # pylint: disable=invalid-name\nexcept ImportError:\n    pass\n\n\nHEADERS = (\n    ('User-Agent', 'Kodi Movie scraper by Team Kodi'),\n    ('Accept', 'application/json'),\n    ('trakt-api-key', '5f2dc73b6b11c2ac212f5d8b4ec8f3dc4b727bb3f026cd254d89eda997fe64ae'),\n    ('trakt-api-version', '2'),\n    ('Content-Type', 'application/json'),\n)\napi_utils.set_headers(dict(HEADERS))\n\nMOVIE_URL = 'https://api.trakt.tv/movies/{}'\n\n\ndef get_trakt_ratinginfo(uniqueids):\n    imdb_id = get_imdb_id(uniqueids)\n    result = {}\n    url = MOVIE_URL.format(imdb_id)\n    params = {'extended': 'full'}\n    movie_info = api_utils.load_info(url, params=params, default={})\n    if(movie_info):\n        if 'votes' in movie_info and 'rating' in movie_info:\n            result['ratings'] = {'trakt': {'votes': int(movie_info['votes']), 'rating': float(movie_info['rating'])}}\n        elif 'rating' in movie_info:\n            result['ratings'] = {'trakt': {'rating': float(movie_info['rating'])}}\n    return result\n"
  },
  {
    "path": "metadata.douban.com.python/python/scraper.py",
    "content": "#!/usr/bin/env python\n# -*- coding:utf-8 -*-\nimport json\nimport sys\nimport xbmc\nimport xbmcaddon\nimport xbmcgui\nimport xbmcplugin\n\nfrom lib.tmdbscraper.tmdb import TMDBMovieScraper\nfrom lib.tmdbscraper.fanarttv import get_details as get_fanarttv_artwork\nfrom lib.tmdbscraper.imdbratings import get_details as get_imdb_details\nfrom lib.tmdbscraper.traktratings import get_trakt_ratinginfo\nfrom scraper_datahelper import combine_scraped_details_info_and_ratings, \\\n    combine_scraped_details_available_artwork, find_uniqueids_in_text, get_params\nfrom scraper_config import configure_scraped_details, PathSpecificSettings, \\\n    configure_tmdb_artwork, is_fanarttv_configured\n\nfrom xbmcswift2 import Plugin\nimport requests\nfrom bs4 import BeautifulSoup\nimport re\nfrom requests.adapters import HTTPAdapter\n\nADDON_SETTINGS = xbmcaddon.Addon('metadata.douban.com.python')\nID = ADDON_SETTINGS.getAddonInfo('id')\n\n\ndef log(msg, level=xbmc.LOGDEBUG):\n    xbmc.log(msg='[{addon}]: {msg}'.format(addon=ID, msg=msg), level=level)\n\n\nheaders = {\n    # 'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9',\n    # 'Accept-Language': 'zh-CN,zh;q=0.9',\n    # 'Cache-Control': 'max-age=0',\n    # 'Connection': 'keep-alive',\n    # 'Sec-Fetch-User': '?1',\n    # 'Upgrade-Insecure-Requests': '1',\n    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.66 Safari/537.36'\n}\nplugin = Plugin()\n\n\n# @plugin.cached(TTL=2)\ndef get_html(url, ua='pc', cookie='', mode='html', encode='utf-8'):\n    #ConnectionError\n    cloudflare = ADDON_SETTINGS.getSetting('cloudflareproxy')\n    cloudflareurl = ADDON_SETTINGS.getSetting('cloudflareproxyurl')\n    # dialog = xbmcgui.Dialog()\n    # dialog.textviewer('错误提示', str(cloudflare))\n    # dialog = xbmcgui.Dialog()\n    # dialog.textviewer('错误提示', str(cloudflareurl))\n\n    if cloudflare == 'true':\n        if cloudflareurl[-1:] == '/':\n            url = cloudflareurl + '-----' + url\n        else:\n            url = cloudflareurl + '/-----' + url\n    else:\n        dialog = xbmcgui.Dialog()\n        dialog.notification('警告', '未设置代理Url可能使你的IP被豆瓣封禁',\n                            xbmcgui.NOTIFICATION_WARNING, 5000, False)\n\n    if cookie != '':\n        cookie = eval(cookie)\n    else:\n        cookie = {}\n    # UA相关\n    head = headers\n    # 超时重试3次\n    # s0 = requests.Session()\n    with requests.Session() as s0:\n        s0.mount('http://', HTTPAdapter(max_retries=3))\n        s0.mount('https://', HTTPAdapter(max_retries=3))\n\n        # 获取网页源代码\n        if mode == 'html':\n            r = s0.get(url, headers=head, cookies=cookie, timeout=15)\n\n            # 编码相关\n            if encode == 'utf-8':\n                r.encoding = 'utf-8'\n            if encode == 'gbk':\n                r.encoding = 'gbk'\n            html = r.text\n\n        # 用于获取302跳转网页的真实url\n        if mode == 'url':\n            head['Connection'] = 'close'\n            r = s0.get(url, headers=head, timeout=5,\n                       stream=True, cookies=cookie)\n            html = r.url\n        # dialog = xbmcgui.Dialog()\n        # dialog.textviewer('错误提示', str(url))\n        # dialog = xbmcgui.Dialog()\n        # dialog.textviewer('错误提示', str(html.encode('utf-8')))\n        return html\n\n#获取视频真实url\ndef get_douban_videourl(url):\n    r = get_html(url)\n    soup = BeautifulSoup(r, 'html.parser')\n    video = False\n    counter = 1\n    while soup.find('source', type=\"video/mp4\") == False:\n        r = get_html(url)\n        soup = BeautifulSoup(r, 'html.parser')\n        counter += 1\n        if counter > 3:\n            break\n        if soup.find('source', type=\"video/mp4\"):\n            video = soup.find('source', type=\"video/mp4\")['src']\n            break\n    return video\n\n\ndef get_douban_imglist(url):\n    r = get_html(url)\n    soup = BeautifulSoup(r, 'html.parser')\n    ul = soup.find('ul', class_='poster-col3')\n    li = ul.find_all('li')\n    returnlist = []\n    for index in range(len(li)):\n        imgdict = {}\n        img = li[index].find('img')['src']\n        imgdict['preview'] = img\n        img = re.sub('photo\\/m', 'photo/r', img)\n        imgdict['url'] = img\n        returnlist.append(imgdict)\n    return returnlist\n\n# 构造仿tmdb的json\n# [{\n#         \"poster_path\": \"https://1.jpg\",\n#         \"title\": \"标题\",\n#         \"release_date\": \"2019-06-19\",\n#         \"id\": 568160\n#     }]\n\n\n# def get_douban_search(title, year):\n#     #r = get_html(\"https://search.douban.com/movie/subject_search?cat=1002&search_text=\" + title)\n#     r = get_html(\"https://www.douban.com/search?cat=1002&q=\" + title)\n#     #print(r.encode('utf-8'))\n#     dialog = xbmcgui.Dialog()\n#     dialog.textviewer('search', str(r.encode('utf-8')))\n#     soup = BeautifulSoup(r, 'html.parser')\n#     result = soup.find(\"div\", class_=\"result-list\")\n#     resultlist = result.find_all('div', class_='result')\n#     returnlist = []\n#     for index in range(len(resultlist)):\n#         returndict = {}\n#         returndict['title'] = resultlist[index].find(\n#             'div', class_=\"title\").a.text\n#         returndict['poster_path'] = resultlist[index].find(\n#             'div', class_=\"pic\").a.img['src']\n#         returndict['release_date'] = re.search(\n#             '(?<=/ )[\\d]{4}$', resultlist[index].find('span', class_=\"subject-cast\").text).group()\n#         returndict['id'] = re.search(\n#             '(?<=sid: )[\\d]+', resultlist[index].find('div', class_=\"pic\").a['onclick']).group()\n#         returnlist.append(returndict)\n#     return returnlist\ndef get_douban_search(title, year):\n    r = get_html('https://movie.douban.com/j/subject_suggest?q=' + title)\n    j = json.loads(r)\n    returnlist = []\n    for index in range(len(j)):\n        returndict = {}\n        returndict['title'] = j[index]['sub_title']\n        returndict['poster_path'] = j[index]['img'].replace(\n            's_ratio_poster', 'r')\n        returndict['release_date'] = j[index]['year'] + '-01-01'\n        returndict['id'] = j[index]['id']\n        returnlist.append(returndict)\n\n    return returnlist\n\n# 用douban的数据，构造仿tmdb的json\n\n\ndef get_douban_details(input_uniqueids):\n    doubanjson = {\n        \"info\": {\n            \"mpaa\": \"PG-13\",\n            \"studio\": [\"豆瓣电影\"],\n            \"tag\": [],\n            \"trailer\":\"\"\n        },\n        \"ratings\": {\n            \"themoviedb\": {}\n        },\n        \"available_art\": {\n            \"set.landscape\": [],\n            \"set.fanart\": [],\n            \"set.poster\": [],\n            \"fanart\": [],\n            \"poster\": [],\n            \"landscape\": []\n        },\n        \"uniqueids\": {},\n        \"cast\": [],\n        \"_info\": {\n            \"set_tmdbid\": None\n        }}\n    #传入input_uniqueids = {'tmdb':'123456'}\n    doubanid = int(input_uniqueids['tmdb'])\n    doubanjson['uniqueids']['tmdb'] = doubanid\n    doubanurl = 'http://movie.douban.com/subject/' + str(doubanid) + '/'\n    r = get_html(doubanurl)\n    print(r.encode('utf-8'))\n    soup = BeautifulSoup(r, 'html.parser')\n\n    # 国家\n    countrys = []\n    info = soup.find('div',id='info')\n    country = re.search(r'(?<=制片国家/地区:</span>).*?(?=<br/>)',str(info)).group()\n    # country = '日本'\n    if re.search('/', country):\n        country = country.split('/')\n        for i in range(len(country)):\n            countrys.append(country[i].strip())\n    else:\n        countrys.append(country.strip())\n    doubanjson['info']['country'] = countrys\n\n    # 标题&年\n    doubanjson['info']['title'] = soup.find(\n        'span', property=\"v:itemreviewed\").text\n    #year = soup.find('span',class_=\"year\").text.replace('(','').replace(')','')\n\n    # 豆瓣评分&人数\n    doubanjson['ratings']['themoviedb']['rating'] = float(\n        soup.find('strong', class_=\"ll rating_num\").text)\n    doubanjson['ratings']['themoviedb']['votes'] = int(\n        soup.find('span', property=\"v:votes\").text)\n\n    # 简介\n    doubanjson['info']['plot'] = soup.find(\n        'span', property=\"v:summary\").text.strip()\n\n    # 预告片\n    if get_douban_videourl(soup.find('a', title=\"预告片\")['href']):\n        trailer = get_douban_videourl(soup.find('a', title=\"预告片\")['href']) + '|referer=' + doubanurl\n        doubanjson['info']['trailer'] = trailer\n\n    # 类型\n    genre = soup.find_all('span', property=\"v:genre\")\n    genres = []\n    for i in range(len(genre)):\n        genres.append(genre[i].text)\n    doubanjson['info']['genre'] = genres\n\n    # 时长\n    doubanjson['info']['duration'] = int(\n        soup.find('span', property=\"v:runtime\")['content'])*60\n\n    # 日期\n    doubanjson['info']['premiered'] = re.search(\n        '[\\d]{4}-[\\d]{2}-[\\d]{2}', soup.find('span', property=\"v:initialReleaseDate\")['content']).group()\n\n    \n\n    # 标签\n    taglist = []\n    tag = soup.find('div', class_='tags-body')\n    tags = tag.find_all('a')\n    for i in range(len(tags)):\n        taglist.append(tags[i].text)\n    doubanjson['info']['tag'] = taglist\n\n    # 剧照\n    doubanjson['available_art']['fanart'] = get_douban_imglist('https://movie.douban.com/subject/' + str(doubanid) + '/photos?type=S')\n\n    # 海报\n    doubanjson['available_art']['poster'] = get_douban_imglist('https://movie.douban.com/subject/' + str(doubanid) + '/photos?type=R')\n\n    # 导演&编剧&演员\n    r = get_html(\"https://movie.douban.com/subject/\" +\n                 str(doubanid) + \"/celebrities\")\n    soup = BeautifulSoup(r, 'html.parser')\n\n    director = []\n    credit = []\n    cast = []\n    celebrities = soup.find('div', id='celebrities').find_all(\n        'div', class_='list-wrapper')\n    for index in range(len(celebrities)):\n        if celebrities[index].h2.text == u'导演 Director':\n            li = celebrities[index].find_all('li')\n            for i in range(len(li)):\n                director.append(li[i].a['title'])\n        if celebrities[index].h2.text == u'编剧 Writer':\n            li = celebrities[index].find_all('li')\n            for i in range(len(li)):\n                credit.append(li[i].a['title'])\n        if celebrities[index].h2.text == u'演员 Cast':\n            li = celebrities[index].find_all('li')\n            for i in range(len(li)):\n                castdict = {}\n                castdict['order'] = i\n                castdict['role'] = li[i].find('span', class_='role')['title']\n                castdict['name'] = li[i].a['title']\n                castdict['thumbnail'] = li[i].a.div['style'].replace(\n                    'background-image: url(', '').replace(')', '').replace('s_ratio_celebrity', 'r')\n                cast.append(castdict)\n    doubanjson['info']['director'] = director\n    doubanjson['info']['credits'] = credit\n    doubanjson['cast'] = cast\n    return doubanjson\n\n\ndef get_tmdb_scraper(settings):\n    language = settings.getSettingString('language')\n    certcountry = settings.getSettingString('tmdbcertcountry')\n    # dialog = xbmcgui.Dialog()\n    # #dialog.notification('提示', '已关闭', xbmcgui.NOTIFICATION_INFO, 5000)\n    # dialog.textviewer('提示', str(TMDBMovieScraper(ADDON_SETTINGS, language, certcountry)))\n    return TMDBMovieScraper(ADDON_SETTINGS, language, certcountry)\n\n\ndef search_for_movie(title, year, handle, settings):\n    # 刮削&搜索\n    log(\"Find movie with title '{title}' from year '{year}'\".format(\n        title=title, year=year), xbmc.LOGINFO)\n    title = _strip_trailing_article(title)\n    # 输出json结果\n    search_results = get_douban_search(title, year)\n    #search_results = get_tmdb_scraper(settings).search(title, year)\n    #dialog = xbmcgui.Dialog()\n    #dialog.textviewer('提示', str(get_tmdb_scraper(settings).search(title, year)))\n\n    if not search_results:\n        return\n    # if 'error' in search_results:\n    #     header = \"The Movie Database Python error searching with web service TMDB\"\n    #     xbmcgui.Dialog().notification(header, search_results['error'], xbmcgui.NOTIFICATION_WARNING)\n    #     log(header + ': ' + search_results['error'], xbmc.LOGWARNING)\n    #     return\n\n    for movie in search_results:\n        listitem = _searchresult_to_listitem(movie)\n        uniqueids = {'tmdb': str(movie['id'])}\n        xbmcplugin.addDirectoryItem(handle=handle, url=build_lookup_string(uniqueids),\n                                    listitem=listitem, isFolder=True)\n\n\n_articles = [\n    prefix + article for prefix in (', ', ' ') for article in (\"the\", \"a\", \"an\")]\n\n\ndef _strip_trailing_article(title):\n    title = title.lower()\n    for article in _articles:\n        if title.endswith(article):\n            return title[:-len(article)]\n    return title\n\n\ndef _searchresult_to_listitem(movie):\n    # 显示搜索结果  天气之子(2019)\n    movie_info = {'title': movie['title']}\n    movie_label = movie['title']\n\n    movie_year = movie['release_date'].split(\n        '-')[0] if movie.get('release_date') else None\n    if movie_year:\n        movie_label += ' ({})'.format(movie_year)\n        movie_info['year'] = movie_year\n\n    listitem = xbmcgui.ListItem(movie_label, offscreen=True)\n\n    listitem.setInfo('video', movie_info)\n    if movie['poster_path']:\n        listitem.setArt({'thumb': movie['poster_path']})\n    # dialog = xbmcgui.Dialog()\n    # dialog.textviewer('提示111', str(movie_info))\n    return listitem\n\n\n# Low limit because a big list of artwork can cause trouble in some cases\n# (a column can be too large for the MySQL integration),\n# and how useful is a big list anyway? Not exactly rhetorical, this is an experiment.\nIMAGE_LIMIT = 10\n\n\ndef add_artworks(listitem, artworks):\n    for arttype, artlist in artworks.items():\n        if arttype == 'fanart':\n            continue\n        for image in artlist[:IMAGE_LIMIT]:\n            listitem.addAvailableArtwork(image['url'], arttype)\n\n    fanart_to_set = [{'image': image['url'], 'preview': image['preview']}\n                     for image in artworks['fanart'][:IMAGE_LIMIT]]\n    listitem.setAvailableFanart(fanart_to_set)\n\n\ndef get_details(input_uniqueids, handle, settings):\n    # 解析详细信息\n    if not input_uniqueids:\n        return False\n\n    #details = get_tmdb_scraper(settings).get_details(input_uniqueids)\n    #传入input_uniqueids = {'tmdb':'123456'}\n    details = get_douban_details(input_uniqueids)\n    \n    # dialog = xbmcgui.Dialog()\n    # dialog.textviewer('details', str(input_uniqueids))\n    if not details:\n        return False\n    # if 'error' in details:\n    #     header = \"The Movie Database Python error with web service TMDB\"\n    #     xbmcgui.Dialog().notification(header, details['error'], xbmcgui.NOTIFICATION_WARNING)\n    #     log(header + ': ' + details['error'], xbmc.LOGWARNING)\n    #     return False\n\n    # details = configure_tmdb_artwork(details, settings)\n\n    if settings.getSettingString('RatingS') == 'IMDb' or settings.getSettingBool('imdbanyway'):\n        imdbinfo = get_imdb_details(details['uniqueids'])\n        if 'error' in imdbinfo:\n            header = \"The Movie Database Python error with website IMDB\"\n            log(header + ': ' + imdbinfo['error'], xbmc.LOGWARNING)\n        else:\n            details = combine_scraped_details_info_and_ratings(\n                details, imdbinfo)\n\n    if settings.getSettingString('RatingS') == 'Trakt' or settings.getSettingBool('traktanyway'):\n        traktinfo = get_trakt_ratinginfo(details['uniqueids'])\n        details = combine_scraped_details_info_and_ratings(details, traktinfo)\n\n    if is_fanarttv_configured(settings):\n        fanarttv_info = get_fanarttv_artwork(details['uniqueids'],\n                                             settings.getSettingString(\n                                                 'fanarttv_clientkey'),\n                                             settings.getSettingString(\n                                                 'fanarttv_language'),\n                                             details['_info']['set_tmdbid'])\n        details = combine_scraped_details_available_artwork(\n            details, fanarttv_info)\n\n    details = configure_scraped_details(details, settings)\n\n    listitem = xbmcgui.ListItem(details['info']['title'], offscreen=True)\n    listitem.setInfo('video', details['info'])\n    listitem.setCast(details['cast'])\n    listitem.setUniqueIDs(details['uniqueids'], 'tmdb')\n    add_artworks(listitem, details['available_art'])\n\n    for rating_type, value in details['ratings'].items():\n        if 'votes' in value:\n            listitem.setRating(\n                rating_type, value['rating'], value['votes'], value['default'])\n        else:\n            listitem.setRating(\n                rating_type, value['rating'], defaultt=value['default'])\n\n    xbmcplugin.setResolvedUrl(handle=handle, succeeded=True, listitem=listitem)\n    return True\n\n\ndef find_uniqueids_in_nfo(nfo, handle):\n    uniqueids = find_uniqueids_in_text(nfo)\n    if uniqueids:\n        listitem = xbmcgui.ListItem(offscreen=True)\n        xbmcplugin.addDirectoryItem(\n            handle=handle, url=build_lookup_string(uniqueids), listitem=listitem, isFolder=True)\n\n\ndef build_lookup_string(uniqueids):\n    return json.dumps(uniqueids)\n\n\ndef parse_lookup_string(uniqueids):\n    try:\n        return json.loads(uniqueids)\n    except ValueError:\n        log(\"Can't parse this lookup string, is it from another add-on?\\n\" +\n            uniqueids, xbmc.LOGWARNING)\n        return None\n\n\ndef run():\n    params = get_params(sys.argv[1:])\n    enddir = True\n    if 'action' in params:\n        settings = ADDON_SETTINGS if not params.get('pathSettings') else \\\n            PathSpecificSettings(json.loads(\n                params['pathSettings']), lambda msg: log(msg, xbmc.LOGWARNING))\n        action = params[\"action\"]\n        if action == 'find' and 'title' in params:\n            search_for_movie(params[\"title\"], params.get(\n                \"year\"), params['handle'], settings)\n        elif action == 'getdetails' and 'url' in params:\n            enddir = not get_details(parse_lookup_string(\n                params[\"url\"]), params['handle'], settings)\n        elif action == 'NfoUrl' and 'nfo' in params:\n            find_uniqueids_in_nfo(params[\"nfo\"], params['handle'])\n        else:\n            log(\"unhandled action: \" + action, xbmc.LOGWARNING)\n    else:\n        log(\"No action in 'params' to act on\", xbmc.LOGWARNING)\n    if enddir:\n        xbmcplugin.endOfDirectory(params['handle'])\n\n\nif __name__ == '__main__':\n    run()\n"
  },
  {
    "path": "metadata.douban.com.python/python/scraper_config.py",
    "content": "def configure_scraped_details(details, settings):\n    details = _configure_rating_prefix(details, settings)\n    details = _configure_keeporiginaltitle(details, settings)\n    details = _configure_trailer(details, settings)\n    details = _configure_multiple_studios(details, settings)\n    details = _configure_default_rating(details, settings)\n    details = _configure_tags(details, settings)\n    return details\n\ndef configure_tmdb_artwork(details, settings):\n    if 'available_art' not in details:\n        return details\n\n    art = details['available_art']\n    fanart_enabled = settings.getSettingBool('fanart')\n    if not fanart_enabled:\n        if 'fanart' in art:\n            del art['fanart']\n        if 'set.fanart' in art:\n            del art['set.fanart']\n    if not settings.getSettingBool('landscape'):\n        if 'landscape' in art:\n            if fanart_enabled:\n                art['fanart'] = art.get('fanart', []) + art['landscape']\n            del art['landscape']\n        if 'set.landscape' in art:\n            if fanart_enabled:\n                art['set.fanart'] = art.get('set.fanart', []) + art['set.landscape']\n            del art['set.landscape']\n\n    return details\n\ndef is_fanarttv_configured(settings):\n    return settings.getSettingBool('enable_fanarttv_artwork')\n\ndef _configure_rating_prefix(details, settings):\n    if details['info'].get('mpaa'):\n        details['info']['mpaa'] = settings.getSettingString('certprefix') + details['info']['mpaa']\n    return details\n\ndef _configure_keeporiginaltitle(details, settings):\n    if settings.getSettingBool('keeporiginaltitle'):\n        details['info']['title'] = details['info']['originaltitle']\n    return details\n\ndef _configure_trailer(details, settings):\n    # if details['info'].get('trailer') and not settings.getSettingBool('trailer'):\n    #     del details['info']['trailer']\n    return details\n\ndef _configure_multiple_studios(details, settings):\n    if not settings.getSettingBool('multiple_studios'):\n        details['info']['studio'] = details['info']['studio'][:1]\n    return details\n\ndef _configure_default_rating(details, settings):\n    imdb_default = bool(details['ratings'].get('imdb')) and settings.getSettingString('RatingS') == 'IMDb'\n    trakt_default = bool(details['ratings'].get('trakt')) and settings.getSettingString('RatingS') == 'Trakt'\n    default_rating = 'themoviedb'\n    if imdb_default:\n        default_rating = 'imdb'\n    elif trakt_default:\n        default_rating = 'trakt'\n    if default_rating not in details['ratings']:\n        default_rating = list(details['ratings'].keys())[0] if details['ratings'] else None\n    for rating_type in details['ratings'].keys():\n        details['ratings'][rating_type]['default'] = rating_type == default_rating\n    return details\n\ndef _configure_tags(details, settings):\n    # if not settings.getSettingBool('add_tags'):\n    #     del details['info']['tag']\n    return details\n\n# pylint: disable=invalid-name\ntry:\n    basestring\nexcept NameError: # py2 / py3\n    basestring = str\n\n#pylint: disable=redefined-builtin\nclass PathSpecificSettings(object):\n    # read-only shim for typed `xbmcaddon.Addon().getSetting*` methods\n    def __init__(self, settings_dict, log_fn):\n        self.data = settings_dict\n        self.log = log_fn\n\n    def getSettingBool(self, id):\n        return self._inner_get_setting(id, bool, False)\n\n    def getSettingInt(self, id):\n        return self._inner_get_setting(id, int, 0)\n\n    def getSettingNumber(self, id):\n        return self._inner_get_setting(id, float, 0.0)\n\n    def getSettingString(self, id):\n        return self._inner_get_setting(id, basestring, '')\n\n    def _inner_get_setting(self, setting_id, setting_type, default):\n        value = self.data.get(setting_id)\n        if isinstance(value, setting_type):\n            return value\n        self._log_bad_value(value, setting_id)\n        return default\n\n    def _log_bad_value(self, value, setting_id):\n        if value is None:\n            self.log(\"requested setting ({0}) was not found.\".format(setting_id))\n        else:\n            self.log('failed to load value \"{0}\" for setting {1}'.format(value, setting_id))\n"
  },
  {
    "path": "metadata.douban.com.python/python/scraper_datahelper.py",
    "content": "import re\ntry:\n    from urlparse import parse_qsl\nexcept ImportError: # py2 / py3\n    from urllib.parse import parse_qsl\n\n# get addon params from the plugin path querystring\ndef get_params(argv):\n    result = {'handle': int(argv[0])}\n    if len(argv) < 2 or not argv[1]:\n        return result\n\n    result.update(parse_qsl(argv[1].lstrip('?')))\n    return result\n\ndef combine_scraped_details_info_and_ratings(original_details, additional_details):\n    def update_or_set(details, key, value):\n        if key in details:\n            details[key].update(value)\n        else:\n            details[key] = value\n\n    if additional_details:\n        if additional_details.get('info'):\n            update_or_set(original_details, 'info', additional_details['info'])\n        if additional_details.get('ratings'):\n            update_or_set(original_details, 'ratings', additional_details['ratings'])\n    return original_details\n\ndef combine_scraped_details_available_artwork(original_details, additional_details):\n    if additional_details and additional_details.get('available_art'):\n        available_art = additional_details['available_art']\n        if not original_details.get('available_art'):\n            original_details['available_art'] = available_art\n        else:\n            for arttype, artlist in available_art.items():\n                original_details['available_art'][arttype] = \\\n                    artlist + original_details['available_art'].get(arttype, [])\n\n    return original_details\n\ndef find_uniqueids_in_text(input_text):\n    result = {}\n    res = re.search(r'(themoviedb.org/movie/)([0-9]+)', input_text)\n    if (res):\n        result['tmdb'] = res.group(2)\n    res = re.search(r'imdb....?/title/tt([0-9]+)', input_text)\n    if (res):\n        result['imdb'] = 'tt' + res.group(1)\n    else:\n        res = re.search(r'imdb....?/Title\\?t{0,2}([0-9]+)', input_text)\n        if (res):\n            result['imdb'] = 'tt' + res.group(1)\n    return result\n"
  },
  {
    "path": "metadata.douban.com.python/resources/language/Chinese (Simple)/strings.po",
    "content": "msgid \"\"\nmsgstr \"\"\n\n#Chinese Simplified\n\nmsgctxt \"#33001\"\nmsgid \"proxy\"\nmsgstr \"代理设置\"\n\nmsgctxt \"#33002\"\nmsgid \"cloudflareproxy\"\nmsgstr \"启用豆瓣代理(cloudflare worker)\"\n\nmsgctxt \"#33003\"\nmsgid \"cloudflareproxyurl\"\nmsgstr \"代理url\"\n"
  },
  {
    "path": "metadata.douban.com.python/resources/settings.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?>\n<settings>\n\t<category label=\"33001\" id=\"proxy\">\n\t\t<setting label=\"33002\" type=\"bool\" id=\"cloudflareproxy\" default=\"true\"/>\n\t\t<setting label=\"33003\" type=\"text\" id=\"cloudflareproxyurl\" default=\"https://proud-band-6b60.zhengfan2014.workers.dev/\" />\n\t</category>\n</settings>\n"
  },
  {
    "path": "plugin.audio.jsososo/addon.py",
    "content": "#!/usr/bin/env python\n# -*- coding:utf-8 -*-\nimport re\nfrom xbmcswift2 import Plugin, xbmcgui, xbmc, xbmcaddon, xbmcplugin\n#from xbmcswift2 import Actions\nimport requests\nfrom bs4 import BeautifulSoup\nimport xbmcgui\nimport base64\nimport json\nimport urllib2\nimport sys\nimport HTMLParser\nimport re\nimport time\n\ndef unix_to_data(uptime,format='data'):\n    if len(str(uptime)) > 10:\n        uptime = str(uptime)[:-(len(str(uptime))-10)]\n    uptime = float(uptime)\n    time_local = time.localtime(uptime)\n    if format == 'data' or format == 'zhdata' or format == 'datatime' or format == 'zhdatatime' or format == 'time' or format == 'zhtime':\n        if format == 'data':\n            uptime = time.strftime('%Y-%m-%d',time_local)\n        if format == 'zhdata':\n            uptime = time.strftime('%Y年%m月%d日',time_local)\n        if format == 'datatime':\n            uptime = time.strftime('%Y-%m-%d %H:%M:%S',time_local)\n        if format == 'zhdatatime':\n            uptime = time.strftime('%Y年%m月%d日 %H时%M分%S秒',time_local)\n        if format == 'time':\n            uptime = time.strftime('%H:%M:%S',time_local)\n        if format == 'zhtime':\n            uptime = time.strftime('%H时%M分%S秒',time_local)\n    else:\n        uptime = time.strftime(format,time_local)\n    return uptime\n\n#超过10000换算\ndef zh(num):\n    if int(num) >= 100000000:\n        p = round(float(num)/float(100000000), 1)\n        p = str(p) + '亿'\n    else:\n        if int(num) >= 10000:\n            p = round(float(num)/float(10000), 1)\n            p = str(p) + '万'\n        else:\n            p = str(num)\n    return p\n\ndef get_real_url(url):\n    rs = requests.get(url,headers=headers,timeout=2)\n    return rs.url\n\ndef unescape(string):\n    string = urllib2.unquote(string).decode('utf8')\n    quoted = HTMLParser.HTMLParser().unescape(string).encode('utf-8')\n    #转成中文\n    return re.sub(r'%u([a-fA-F0-9]{4}|[a-fA-F0-9]{2})', lambda m: unichr(int(m.group(1), 16)), quoted)\n\n\nplugin = Plugin()\n\n\nheaders = {'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.72 Safari/537.36'}\ncache = plugin.get_storage('cache')\nhis = plugin.get_storage('his')\n\n#初始化api\n# if 'myqq' not in cache:\n#     cache['myqq'] = ''\n# if 'my163' not in cache:\n#     cache['my163'] = ''\n# if 'my163num' not in cache:\n#     cache['my163num'] = ''\n# if 'myqqnum' not in cache:\n#     cache['myqqnum'] = ''\n# xbmcplugin.setContent(int(sys.argv[1]), 'musicvideos')\n\nnetease_api = xbmcplugin.getSetting(int(sys.argv[1]), 'neteasemusicapiurl')\nqqmusic_api = xbmcplugin.getSetting(int(sys.argv[1]), 'qqmusicapiurl')\nmigu_api = xbmcplugin.getSetting(int(sys.argv[1]), 'miguapiurl')\n\n\n@plugin.cached(TTL=1)\ndef get_html(url,cookie=''):\n    if cookie != '':\n        h = headers\n        h['cookie'] = cookie\n        r = requests.get(url,headers=h)\n    else:\n        r = requests.get(url,headers=headers)\n    return r.text\n\n########################################### 为你推荐歌单api ###########################################\ndef one63weinituijian():\n    gedans = []\n    r = get_html(netease_api + '/recommend/resource','MUSIC_U=' + xbmcplugin.getSetting(int(sys.argv[1]), 'neteasemusicu'))\n    j = json.loads(r)\n    if j['code'] == 200:\n        glist = j['recommend']\n        for index in range(len(glist)):\n            desc = ''\n            if glist[index]['copywriter']:\n                desc += glist[index]['copywriter'].encode('utf-8')\n            gd ={}\n            gd['name'] = glist[index]['name']\n            gd['thumb'] = glist[index]['picUrl']\n            gd['url'] = 'https://music.163.com/#/playlist?id=' + str(glist[index]['id'])\n            gd['info'] = {'plot':zh(glist[index]['playcount']) + ' 播放 · ' + zh(glist[index]['trackCount']) + ' 首歌\\n\\n' + desc}\n            gd['info']['cast'] = [(glist[index]['creator']['nickname'],unix_to_data(glist[index]['createTime']) + u'创建')]\n            gedans.append(gd)\n        return gedans\n    else:\n        if j['code'] == 301:\n            dialog = xbmcgui.Dialog()\n            dialog.notification('请求失败','请尝试更换MUSIC_U', xbmcgui.NOTIFICATION_INFO, 5000)\n\ndef qqweinituijian():\n    gedans = []\n    r = get_html(qqmusic_api + '/recommend/playlist/u')\n    j = json.loads(r)\n    glist = j['data']['list']\n    for index in range(len(glist)):\n        gd ={}\n        gd['name'] = glist[index]['title']\n        gd['thumb'] = glist[index]['cover']\n        gd['url'] = 'https://y.qq.com/n/yqq/playlist/' + str(glist[index]['content_id']) + '.html'\n        gd['info'] = {'plot':zh(glist[index]['listen_num']) + ' 播放量'}\n        gd['info']['cast']= [glist[index]['username']]\n        gedans.append(gd)\n    return gedans\n########################################### 日推api ###########################################\ndef one63ritui():\n    gedans = []\n    r = get_html(netease_api + '/recommend/songs','MUSIC_U='+xbmcplugin.getSetting(int(sys.argv[1]), 'neteasemusicu'))\n    j = json.loads(r)\n    if j['code'] == 200:\n        gedans = []\n        glist = j['recommend']\n        # songs = ''\n        # for index in range(len(glist)):\n        #     if index == 0:\n        #         songs += str(glist[index]['id'])\n        #     else:\n        #         songs += ',' + str(glist[index]['id'])\n        # #mp3 url\n        # r2 = get_html(netease_api + '/song/url?id=' + songs)\n        # j2 = json.loads(r2)\n        # mp3urls = j2['data']\n        for index in range(len(glist)):\n            gd ={}\n            gd['name'] = glist[index]['name']\n            gd['thumb'] = glist[index]['album']['picUrl']\n            # gdurl = ''\n            # for i in range(len(mp3urls)):\n            #     if int(mp3urls[i]['id']) == int(glist[index]['id']):\n            #         gdurl = mp3urls[i]['url']\n            # if gdurl == '':\n            #     gd['name'] += ' - [无版权]'\n            if xbmcplugin.getSetting(int(sys.argv[1]), 'httpswitch') == 'true':\n                gdurl =  'http'\n            else:\n                gdurl = 'https'\n            gdurl += '://music.163.com/song/media/outer/url?id='+str(glist[index]['id'])+'.mp3'\n            gd['url'] = gdurl\n            gd['info'] = {'title':glist[index]['name'],'album':glist[index]['album']['name'],'artist':glist[index]['artists'][0]['name'],'mediatype':'song'}\n            #gd['url'] = j2['data'][0]['url']\n            gedans.append(gd)\n        return gedans\n    else:\n        if j['code'] == 301:\n            dialog = xbmcgui.Dialog()\n            dialog.notification('请求失败','请尝试更换网易云音乐的 MUSIC_U', xbmcgui.NOTIFICATION_INFO, 5000)\n\ndef qqritui():\n    gedans = []\n    r = get_html(qqmusic_api + '/recommend/daily',xbmcplugin.getSetting(int(sys.argv[1]), 'qqmusiccookie'))\n    j = json.loads(r)\n    if j['result'] == 100:\n        glist = j['data']['songlist']\n        songs= ''\n        for index in range(len(glist)):\n            if index == 0:\n                songs += glist[index]['songmid']\n            else:\n                songs += ',' + glist[index]['songmid']\n        r1 = get_html(qqmusic_api + '/song/urls?id=' + songs)\n        j1 = json.loads(r1)\n        mp3urls = j1['data']\n        for index in range(len(glist)):\n            if glist[index]['songmid'] in mp3urls:\n                gd ={}\n                gd['name'] = glist[index]['songname']\n                gd['thumb'] = 'http://y.gtimg.cn/music/photo_new/T002R300x300M000' + glist[index]['albummid'] + '.jpg'\n                gd['url'] = mp3urls[glist[index]['songmid']]\n                gd['info'] = {'title':glist[index]['songname'],'album':glist[index]['albumname'],'artist':glist[index]['singer'][0]['name'],'mediatype':'song'}\n                gedans.append(gd)\n        return gedans\n    else:\n        if j['result'] == 301:\n            dialog = xbmcgui.Dialog()\n            dialog.notification('请求失败','请尝试更换QQ音乐的 cookie', xbmcgui.NOTIFICATION_INFO, 5000)    \n\n########################################### 我的歌单api ###########################################\ndef one63gedan():\n    gedans = []\n    r = get_html(netease_api + '/user/playlist?uid=' + str(xbmcplugin.getSetting(int(sys.argv[1]), 'neteasemusicuid')))\n    j = json.loads(r)\n    glist = j['playlist']\n    for index in range(len(glist)):\n        desc = ''\n        if glist[index]['description']:\n            desc += glist[index]['description'].encode('utf-8')\n        gd ={}\n        gd['name'] = glist[index]['name']\n        gd['thumb'] = glist[index]['coverImgUrl']\n        gd['url'] = 'https://music.163.com/#/playlist?id=' + str(glist[index]['id'])\n        gd['info'] = {'plot':zh(glist[index]['playCount']) + ' 播放 · ' + zh(glist[index]['trackCount']) + ' 首歌\\n\\n' + desc}\n        gd['info']['cast'] = [(glist[index]['creator']['nickname'],unix_to_data(glist[index]['createTime']) + u'创建')]\n        gedans.append(gd)\n    return gedans\n\ndef qqgedan():\n    gedans = []\n    r = get_html(qqmusic_api + '/user/songlist?id=' + str(xbmcplugin.getSetting(int(sys.argv[1]), 'qqmusicid')))\n    j = json.loads(r)\n    glist = j['data']['list']\n    for index in range(len(glist)):\n        if int(glist[index]['tid']) > 0:\n            gd ={}\n            gd['name'] = glist[index]['diss_name']\n            gd['thumb'] = glist[index]['diss_cover']\n            gd['url'] = 'https://y.qq.com/n/yqq/playlist/' + str(glist[index]['tid']) + '.html'\n            gd['info'] = {'plot':zh(glist[index]['listen_num']) + ' 播放 · ' + zh(glist[index]['song_cnt']) + ' 首歌'}\n            gd['info']['cast'] = [j['data']['creator']['hostname']]\n            gedans.append(gd)\n    return gedans\n########################################### 推荐歌单api ###########################################\n\ndef one63tuijiangedan():\n    gedans = []\n    r = get_html(netease_api + '/personalized')\n    j = json.loads(r)\n    glist = j['result']\n    for index in range(len(glist)):\n        gd ={}\n        gd['name'] = glist[index]['name']\n        gd['thumb'] = glist[index]['picUrl']\n        gd['url'] = 'https://music.163.com/#/playlist?id=' + str(glist[index]['id'])\n        gd['info'] = {'plot':zh(glist[index]['playCount']) + ' 播放 · ' + zh(glist[index]['trackCount']) + ' 首歌\\n\\n' + glist[index]['copywriter'].encode('utf-8')}\n        gd['info']['cast'] = ['不知道是谁']\n        gedans.append(gd)\n    return gedans\n\ndef qqtuijiangedan():\n    gedans = []\n    r = get_html(qqmusic_api + '/recommend/playlist/')\n    j = json.loads(r)\n    glist = j['data']['list']\n    for index in range(len(glist)):\n        gd ={}\n        gd['name'] = glist[index]['title']\n        gd['thumb'] = glist[index]['cover_url_big']\n        gd['url'] = 'https://y.qq.com/n/yqq/playlist/' + str(glist[index]['tid']) + '.html'\n        gd['info'] = {'plot':zh(glist[index]['access_num']) + ' 播放量'}\n        gd['info']['cast']= [glist[index]['creator_info']['nick']]\n        gedans.append(gd)\n    return gedans\n\n########################################### 歌单详细信息api ###########################################\ndef one63playlist(id):\n    gedans = []\n    r = get_html(netease_api + '/playlist/detail?id=' + str(id))\n    j = json.loads(r)\n    glist = j['playlist']['trackIds']\n    songs = ''\n    for index in range(len(glist)):\n        if index == 0:\n            songs += str(glist[index]['id'])\n        else:\n            songs += ',' + str(glist[index]['id'])\n    #mp3详情\n    r1 = get_html(netease_api + '/song/detail?ids=' + songs)\n    j1 = json.loads(r1)\n    mp3detail = j1['songs']\n    # #mp3 url\n    # r2 = get_html(netease_api + '/song/url?id=' + songs)\n    # j2 = json.loads(r2)\n    # mp3urls = j2['data']\n    # pDialog = xbmcgui.DialogProgress()\n    # pDialog.create('网易云音乐', '努力从母猪厂的土豆服务器偷mp3中...(0%)')\n    for index in range(len(mp3detail)):\n        # pDialog.update(int(100*(float(index)/float(len(mp3detail)))), '努力从母猪厂的土豆服务器偷mp3中...('+str(int(100*(float(index)/float(len(mp3detail)))))+'%)')\n        # #r2 = get_html(netease_api + '/song/url?id=' + str(mp3detail[index]['id']))\n        # #j2 = json.loads(r2)\n        gd ={}\n        gd['name'] = mp3detail[index]['name']\n        gd['thumb'] = mp3detail[index]['al']['picUrl']\n        # gdurl = ''\n        # for i in range(len(mp3urls)):\n        #     if int(mp3urls[i]['id']) == int(mp3detail[index]['id']):\n        #         gdurl = mp3urls[i]['url']\n        # if gdurl == '':\n        #     gd['name'] += ' - [无版权]'\n        # gd['url'] = gdurl\n        if xbmcplugin.getSetting(int(sys.argv[1]), 'httpswitch') == 'true':\n            gd['url'] = 'http'\n        else:\n            gd['url'] = 'https'\n        gd['url'] += '://music.163.com/song/media/outer/url?id=' + str(mp3detail[index]['id']) + '.mp3'\n        gd['info'] = {'title':mp3detail[index]['name'],'album':mp3detail[index]['al']['name'],'artist':mp3detail[index]['ar'][0]['name'],'mediatype':'song'}\n        #gd['url'] = j2['data'][0]['url']\n        gedans.append(gd)\n    return gedans\n\ndef qqplaylist(id):\n    gedans = []\n    r = get_html(qqmusic_api + '/songlist?id=' + str(id))\n    j = json.loads(r)\n    glist = j['data']['songlist']\n    songs= ''\n    for index in range(len(glist)):\n        if index == 0:\n            songs += glist[index]['songmid']\n        else:\n            songs += ',' + glist[index]['songmid']\n    r1 = get_html(qqmusic_api + '/song/urls?id=' + songs)\n    j1 = json.loads(r1)\n    mp3urls = j1['data']\n    \n    for index in range(len(glist)):\n        \n        if glist[index]['songmid'] in mp3urls:\n            gd ={}\n            gd['name'] = glist[index]['songname']\n            gd['thumb'] = 'http://y.gtimg.cn/music/photo_new/T002R300x300M000' + glist[index]['albummid'] + '.jpg'\n            gd['url'] = mp3urls[glist[index]['songmid']]\n            gd['info'] = {'title':glist[index]['songname'],'album':glist[index]['albumname'],'artist':glist[index]['singer'][0]['name'],'mediatype':'song'}\n            gedans.append(gd)\n    return gedans\n\n########################################### 专辑详细信息api ###########################################\ndef one63album(id):\n    gedans = []\n    r = get_html(netease_api + '/playlist/detail?id=' + str(id))\n    j = json.loads(r)\n    glist = j['playlist']['trackIds']\n    songs = ''\n    for index in range(len(glist)):\n        if index == 0:\n            songs += str(glist[index]['id'])\n        else:\n            songs += ',' + str(glist[index]['id'])\n    #mp3详情\n    r1 = get_html(netease_api + '/song/detail?ids=' + songs)\n    j1 = json.loads(r1)\n    mp3detail = j1['songs']\n    # #mp3 url\n    # r2 = get_html(netease_api + '/song/url?id=' + songs)\n    # j2 = json.loads(r2)\n    # mp3url = j2['data']\n    for index in range(len(mp3detail)):\n        gd ={}\n        gd['name'] = mp3detail[index]['name']\n        gd['thumb'] = mp3detail[index]['al']['picUrl']\n        # gd['url'] = mp3url[index]['url']\n        if xbmcplugin.getSetting(int(sys.argv[1]), 'httpswitch') == 'true':\n            gd['url'] = 'http'\n        else:\n            gd['url'] = 'https'\n        gd['url'] += '://music.163.com/song/media/outer/url?id=' + str(mp3detail[index]['id']) + '.mp3'\n        gedans.append(gd)\n    return gedans\n\ndef qqalbum(id):\n    gedans = []\n    r = get_html(qqmusic_api + '/album/songs?albummid=' + str(id))\n    j = json.loads(r)\n    glist = j['data']['list']\n    songs= ''\n    for index in range(len(glist)):\n        if index == 0:\n            songs += glist[index]['mid']\n        else:\n            songs += ',' + glist[index]['mid']\n    r1 = get_html(qqmusic_api + '/song/urls?id=' + songs)\n    j1 = json.loads(r1)\n    mp3urls = j1['data']\n    \n    for index in range(len(glist)):\n        \n        if glist[index]['mid'] in mp3urls:\n            gd ={}\n            gd['name'] = glist[index]['name']\n            gd['thumb'] = 'http://y.gtimg.cn/music/photo_new/T002R300x300M000' + glist[index]['album']['mid'] + '.jpg'\n            gd['url'] = mp3urls[glist[index]['mid']]\n            gedans.append(gd)\n    return gedans\n\n########################################### 歌手热门歌曲api ###########################################\ndef one63singer(id):\n    gedans = []\n    r = get_html(netease_api + '/artists?id=' + str(id))\n    j = json.loads(r)\n    glist = j['hotSongs']\n    for index in range(len(glist)):\n        gd ={}\n        gd['name'] = glist[index]['name']\n        gd['thumb'] = glist[index]['al']['picUrl']\n        #mp3 url\n        r2 = get_html(netease_api + '/song/url?id=' + str(glist[index]['id']))\n        j2 = json.loads(r2)\n        gd['url'] = j2['data'][0]['url']\n        gedans.append(gd)\n    return gedans\n\ndef qqsinger(id):\n    gedans = []\n    r = get_html(qqmusic_api + '/singer/songs?num=50&singermid=' + str(id))\n    j = json.loads(r)\n    glist = j['data']['list']\n    songs= ''\n    for index in range(len(glist)):\n        if index == 0:\n            songs += glist[index]['mid']\n        else:\n            songs += ',' + glist[index]['mid']\n    r1 = get_html(qqmusic_api + '/song/urls?id=' + songs)\n    j1 = json.loads(r1)\n    mp3urls = j1['data']\n    \n    for index in range(len(glist)):\n        \n        if glist[index]['mid'] in mp3urls:\n            gd ={}\n            gd['name'] = glist[index]['name']\n            gd['thumb'] = 'http://y.gtimg.cn/music/photo_new/T002R300x300M000' + glist[index]['album']['mid'] + '.jpg'\n            gd['url'] = mp3urls[glist[index]['mid']]\n            gedans.append(gd)\n    return gedans\n########################################### 排行 ###########################################\ndef get_rank():\n    items = []\n    r1 = get_html(netease_api + '/toplist')\n    j1 = json.loads(r1)\n    one63list = j1['list']\n    for index in range(len(one63list)):\n        gd = {}\n        gd['name'] = u'网易云音乐 · '+ one63list[index]['name']\n        gd['thumb'] = one63list[index]['coverImgUrl']\n        gd['url'] = '163|' + str(one63list[index]['id'])\n        gd['desc'] = one63list[index]['description']\n        items.append(gd)\n\n    r2 = get_html(qqmusic_api + '/top/category')\n    j2 = json.loads(r2)\n    qqlist = j2['data']\n    for index in range(len(qqlist)):\n        listlist = qqlist[index]['list']\n        for i in range(len(listlist)):\n            if listlist[i]['topId'] != 201:\n                gd = {}\n                gd['name'] = u'QQ音乐 · '+ listlist[i]['label']\n                gd['thumb'] = listlist[i]['picUrl']\n                gd['url'] = 'qq|' + str(listlist[i]['topId'])\n                gd['desc'] = listlist[i]['updateTime'] + u'更新'\n                items.append(gd)\n    return items\n########################################### 排行详细 ###########################################\ndef one63rank(value):\n    gedans = []\n    # r = get_html(netease_api + '/top/list?idx=' + value)\n    r = get_html(netease_api + '/related/playlist?id=' + value)\n    dialog = xbmcgui.Dialog()\n    dialog.textviewer('错误提示', str(value))\n    j = json.loads(r)\n    glist = j['playlist']['tracks']\n    # songs = ''\n    # for index in range(len(glist)):\n    #     if index == 0:\n    #         songs += str(glist[index]['id'])\n    #     else:\n    #         songs += ',' + str(glist[index]['id'])\n    # #mp3 url\n    # r2 = get_html(netease_api + '/song/url?id=' + songs)\n    # j2 = json.loads(r2)\n    # mp3url = j2['data']\n    for index in range(len(glist)):\n        gd ={}\n        gd['name'] = glist[index]['name']\n        gd['label'] = glist[index]['name']\n        if glist[index]['alia'] != []:\n            gd['label'] +=  u'(' + glist[index]['alia'][0] + u')'\n        gd['thumb'] = glist[index]['al']['picUrl']\n        # gd['url'] = mp3url[index]['url']\n        if xbmcplugin.getSetting(int(sys.argv[1]), 'httpswitch') == 'true':\n            gd['url'] = 'http'\n        else:\n            gd['url'] = 'https'\n        gd['url'] += '://music.163.com/song/media/outer/url?id=' + str(glist[index]['id']) + '.mp3'\n        gedans.append(gd)\n    return gedans\n\ndef qqrank(value):\n    gedans = []\n    # dialog = xbmcgui.Dialog()\n    # dialog.textviewer('错误提示', str(value))\n    r = get_html(qqmusic_api + '/top?id=' + str(value))\n    j = json.loads(r)\n    glist = j['data']['list']\n    songs= ''\n    for index in range(len(glist)):\n        if index == 0:\n            songs += glist[index]['mid']\n        else:\n            songs += ',' + glist[index]['mid']\n    r1 = get_html(qqmusic_api + '/song/urls?id=' + songs)\n    j1 = json.loads(r1)\n    mp3urls = j1['data']\n    \n    for index in range(len(glist)):\n        \n        if glist[index]['mid'] in mp3urls:\n            gd ={}\n            gd['name'] = glist[index]['title']\n            gd['label'] = ''\n            if int(glist[index]['rankType']) == 1:\n                gd['label'] += u'[COLOR red]↑ ' + glist[index]['rankValue'] + u' '*(3-len(str(glist[index]['rankValue']))) +  u'[/COLOR]'\n            if int(glist[index]['rankType']) == 2:\n                gd['label'] += u'[COLOR green]↓ ' + glist[index]['rankValue'] + u' '*(3-len(str(glist[index]['rankValue']))) + u'[/COLOR]'\n            if int(glist[index]['rankType']) == 3:\n                gd['label'] += u'= ' + glist[index]['rankValue'] + u' '*(3-len(str(glist[index]['rankValue'])))\n            if int(glist[index]['rankType']) == 4:\n                gd['label'] += u'[COLOR red]NEW[/COLOR]'\n            if int(glist[index]['rankType']) == 6:\n                gd['label'] += u'[COLOR red]↑ ' + glist[index]['rankValue'] + u'[/COLOR]' + u' '*(5-len(str(glist[index]['rankValue'])))\n            gd['label'] += u' ' +  glist[index]['title']\n            gd['thumb'] = 'http://y.gtimg.cn/music/photo_new/T002R300x300M000' + glist[index]['albumMid'] + '.jpg'\n            gd['url'] = mp3urls[glist[index]['mid']]\n            gedans.append(gd)\n    return gedans\n########################################### mv ###########################################\ndef one63mvlist(page):\n    items = []\n    r = get_html(netease_api + '/mv/all?limit=50&offset=' + str( ( int(page)-1 ) *50 ) )\n    j = json.loads(r)\n    one63list = j['data']\n    for index in range(len(one63list)):\n        gd = {}\n        gd['name'] = one63list[index]['name']\n        gd['thumb'] = one63list[index]['cover']\n        gd['url'] = 'https://music.163.com/#/mv?id=' +str(one63list[index]['id'])\n        items.append(gd)\n    return items\n\ndef qqmvlist(page):\n    items = []\n    r = get_html(qqmusic_api + '/mv/list?pageSize=50&pageNo=' + str(page))\n    j = json.loads(r)\n    listlist = j['data']['list']\n    for i in range(len(listlist)):\n        gd = {}\n        gd['name'] = listlist[i]['title']\n        gd['thumb'] = listlist[i]['picurl']\n        gd['url'] = 'https://y.qq.com/n/yqq/mv/v/'+listlist[i]['vid']+'.html'\n        items.append(gd)\n    return items\n\ndef one63playmv(vid):\n    r = get_html(netease_api + '/mv/url?id=' + str(vid))\n    j = json.loads(r)\n    mp4 = j['data']['url']\n    return mp4\n\ndef qqplaymv(vid):\n    r = get_html(qqmusic_api + '/mv/url?id=' + str(vid))\n    j = json.loads(r)\n    mp4 = j['data'][vid][len( j['data'][vid])-1]\n    return mp4\n\ndef one63mvinfo(vid):\n    vdict = {}\n    r = get_html(netease_api + '/mv/detail?mvid=' + str(vid))\n    j = json.loads(r)\n    i = j['data']\n    vdict['title'] = i['name']\n    vdict['thumb'] = i['cover']\n    vdict['duration'] = int(str(i['duration'])[:-3])\n    vdict['plot'] = zh(i['playCount']) + '播放 · ' + zh(i['commentCount']) + '评论'\n    if i['desc']:\n        vdict['plot'] += '\\n\\n' + i['desc'].encode('utf-8')\n    vdict['aired'] = i['publishTime']\n\n    cast = []\n    for index in range(len(i['artists'])):\n        cast.append(i['artists'][index]['name'])\n    vdict['cast'] = cast\n    return vdict\n\ndef qqmvinfo(vid):\n    vdict = {}\n    r = get_html(qqmusic_api + '/mv?id=' + str(vid))\n    j = json.loads(r)\n    i = j['data']['info']\n    vdict['title'] = i['name']\n    vdict['thumb'] = i['cover_pic']\n    vdict['duration'] = i['duration']\n    vdict['plot'] = zh(i['playcnt']) + '播放'\n    if i['desc']:\n        vdict['plot'] = i['desc']\n    vdict['aired'] = unix_to_data(i['pubdate'])\n\n    cast = []\n    for index in range(len(i['singers'])):\n        cast.append(i['singers'][index]['name'])\n    vdict['cast'] = cast\n    return vdict\n########################################### 搜索 ###########################################\ndef one63search(keyword,type,page):\n    gedans = []\n    r = get_html(netease_api + '/search?keywords=' + keyword + '&offset='+str((int(page)-1)*30)+'&type='+type)\n    j = json.loads(r)\n    glist = j['result']\n    #单曲\n    if type == '1':\n        if 'songs' in glist:\n            glist = glist['songs']\n            songs= ''\n            for index in range(len(glist)):\n                if index == 0:\n                    songs += str(glist[index]['id'])\n                else:\n                    songs += ',' + str(glist[index]['id'])\n            #mp3详情\n            r2 = get_html(netease_api + '/song/detail?ids=' + songs)\n            j2 = json.loads(r2)\n            mp3detail = j2['songs']\n    \n            for index in range(len(glist)):\n                gd ={}\n                gd['name'] = mp3detail[index]['name']\n                gd['thumb'] = mp3detail[index]['al']['picUrl']\n                #mp3url\n                r1 = get_html(netease_api + '/song/url?id=' + str(mp3detail[index]['id']))\n                j1 = json.loads(r1)\n                gdurl = j1['data'][0]['url']\n                gd['url'] = gdurl\n                #gd['url'] = mp3urls[str(mp3detail[index]['id'])]\n                gd['info'] = {'title':mp3detail[index]['name'],'album':mp3detail[index]['al']['name'],'artist':mp3detail[index]['ar'][0]['name']}\n                gedans.append(gd)\n        else:\n            dialog = xbmcgui.Dialog()\n            dialog.notification('提示', '搜索结果为空', xbmcgui.NOTIFICATION_INFO, 5000)\n    #歌单\n    if type == '1000':\n        if 'playlists' in glist:\n            glist = glist['playlists']\n            for index in range(len(glist)):\n                gd ={}\n                gd['name'] = glist[index]['name']\n                gd['thumb'] = glist[index]['coverImgUrl']\n                gd['url'] = 'https://music.163.com/#/playlist?id=' + str(glist[index]['id'])\n                ginfo =  {'title':glist[index]['name'],'cast':[(glist[index]['creator']['nickname'],u'创建者')],'plot':zh(glist[index]['playCount']).decode('utf-8') + u'播放 · ' + zh(glist[index]['trackCount']).decode('utf-8') + u'首歌 \\n\\n'}\n                if glist[index]['description']:\n                    ginfo['plot'] += glist[index]['description']\n                gd['info'] = ginfo\n                gedans.append(gd)\n        else:\n            dialog = xbmcgui.Dialog()\n            dialog.notification('提示', '搜索结果为空', xbmcgui.NOTIFICATION_INFO, 5000)\n    #专辑\n    if type == '10':\n        if 'albums' in glist:\n            glist = glist['albums']\n            for index in range(len(glist)):\n                gd ={}\n                gd['name'] = glist[index]['name']\n                gd['thumb'] = glist[index]['blurPicUrl']\n                gd['url'] = 'https://music.163.com/#/album?id=' + str(glist[index]['id'])\n                gd['info'] = {'title':glist[index]['name'],'album':glist[index]['name'],'artist':glist[index]['artists'][0]['name']}\n                gedans.append(gd)\n        else:\n            dialog = xbmcgui.Dialog()\n            dialog.notification('提示', '搜索结果为空', xbmcgui.NOTIFICATION_INFO, 5000)\n    #歌手\n    if type == '100':\n        if 'artists' in glist:\n            glist = glist['artists']\n            for index in range(len(glist)):\n                gd ={}\n                gd['name'] = glist[index]['name']\n                gd['thumb'] = glist[index]['picUrl']\n                gd['url'] = 'https://music.163.com/#/artist?id=' + str(glist[index]['id'])\n                gd['info'] = {'title':glist[index]['name'],'artist':glist[index]['name']}\n                gedans.append(gd)\n        else:\n            dialog = xbmcgui.Dialog()\n            dialog.notification('提示', '搜索结果为空', xbmcgui.NOTIFICATION_INFO, 5000)\n    #MV\n    if type == '1004':\n        if 'mvs' in glist:\n            glist = glist['mvs']\n            for index in range(len(glist)):\n                gd ={}\n                gd['name'] = glist[index]['name']\n                gd['thumb'] = glist[index]['cover']\n                gd['url'] = 'https://music.163.com/#/mv?id=' + str(glist[index]['id'])\n                gd['info'] = {'title':glist[index]['name'],'duration':int(glist[index]['duration'])/1000,'cast':[glist[index]['artistName']]}\n                gedans.append(gd)\n        else:\n            dialog = xbmcgui.Dialog()\n            dialog.notification('提示', '搜索结果为空', xbmcgui.NOTIFICATION_INFO, 5000)\n    #视频\n    if type == '1014':\n        if 'videos' in glist:\n            glist = glist['videos']\n            for index in range(len(glist)):\n                gd ={}\n                gd['name'] = glist[index]['title']\n                gd['thumb'] = glist[index]['coverUrl']\n                gd['url'] = 'https://music.163.com/#/video?id=' + str(glist[index]['vid'])\n                gd['info'] = {'title':glist[index]['title'],'duration':int(glist[index]['durationms'])/1000,'cast':[glist[index]['creator'][0]['userName']]}\n                gedans.append(gd)\n        else:\n            dialog = xbmcgui.Dialog()\n            dialog.notification('提示', '搜索结果为空', xbmcgui.NOTIFICATION_INFO, 5000)\n    return gedans\n\ndef qqsearch(keyword,type,page):\n    gedans = []\n    r = get_html(qqmusic_api + '/search?key=' + keyword + '&pageSize=30&pageNo='+str(page)+'&t='+type)\n    j = json.loads(r)\n    glist = j['data']['list']\n    #单曲\n    if type == '0':\n        songs= ''\n        for index in range(len(glist)):\n            if index == 0:\n                songs += glist[index]['songmid']\n            else:\n                songs += ',' + glist[index]['songmid']\n        r1 = get_html(qqmusic_api + '/song/urls?id=' + songs)\n        j1 = json.loads(r1)\n        mp3urls = j1['data']\n    \n        for index in range(len(glist)):\n        \n            if glist[index]['songmid'] in mp3urls:\n                gd ={}\n                gd['name'] = glist[index]['songname']\n                gd['thumb'] = 'http://y.gtimg.cn/music/photo_new/T002R300x300M000' + glist[index]['albummid'] + '.jpg'\n                gd['url'] = mp3urls[glist[index]['songmid']]\n                gd['info'] = {'title':glist[index]['songname'],'album':glist[index]['albumname'],'artist':glist[index]['singer'][0]['name']}\n                gedans.append(gd)\n    #歌单\n    if type == '2':\n        for index in range(len(glist)):\n            gd ={}\n            gd['name'] = unescape(glist[index]['dissname'].encode('utf-8')).decode('utf-8')\n            gd['thumb'] = glist[index]['imgurl']\n            gd['url'] = 'https://y.qq.com/n/yqq/playlist/' + str(glist[index]['dissid']) + '.html'\n            gd['info'] = {'title':unescape(glist[index]['dissname'].encode('utf-8')).decode('utf-8'),'cast':[glist[index]['creator']['name'],u'创建者'],'plot':zh(glist[index]['listennum']).decode('utf-8') + u' 播放 \\n\\n' + unescape(glist[index]['introduction'].encode('utf-8')).decode('utf-8')}\n            gedans.append(gd)\n    #专辑\n    if type == '8':\n        for index in range(len(glist)):\n            gd ={}\n            gd['name'] = glist[index]['albumName']\n            gd['thumb'] = glist[index]['albumPic']\n            gd['url'] = 'https://y.qq.com/n/yqq/album/' + str(glist[index]['albumMID']) + '.html'\n            gd['info'] = {'title':glist[index]['albumName'],'album':glist[index]['albumName'],'artist':glist[index]['singerName']}\n            gedans.append(gd)\n    #歌手\n    if type == '9':\n        for index in range(len(glist)):\n            gd ={}\n            gd['name'] = glist[index]['singerName']\n            gd['thumb'] = glist[index]['singerPic']\n            gd['url'] = 'https://y.qq.com/n/yqq/singer/' + str(glist[index]['singerMID']) + '.html'\n            gd['info'] = {'title':glist[index]['singerName'],'artist':glist[index]['singerName']}\n            gedans.append(gd)\n    #MV\n    if type == '12':\n        for index in range(len(glist)):\n            gd ={}\n            gd['name'] = glist[index]['mv_name']\n            gd['thumb'] = glist[index]['mv_pic_url']\n            gd['url'] = 'https://y.qq.com/n/yqq/mv/v/' + str(glist[index]['v_id']) + '.html'\n            gd['info'] = {'title':glist[index]['mv_name'],'duration':glist[index]['duration']}\n            gedans.append(gd)\n    return gedans\n########################################### 网易云视频 ###########################################\ndef one63playvideo(vid):\n    r = get_html(netease_api + '/video/url?id=' + str(vid))\n    j = json.loads(r)\n    mp4 = j['urls'][0]['url']\n    return mp4\n\ndef one63videoinfo(vid):\n    vdict = {}\n    r = get_html(netease_api + '/video/detail?id=' + str(vid))\n    j = json.loads(r)\n    i = j['data']\n    vdict['title'] = i['title']\n    vdict['thumb'] = i['coverUrl']\n    vdict['duration'] = int(i['durationms']/1000)\n    vdict['plot'] = zh(i['playTime']) + '播放 · ' + zh(i['praisedCount']) + '赞 · ' + zh(i['commentCount']) + '评论'\n    if i['description']:\n        vdict['plot'] += '\\n\\n' + i['description'].encode('utf-8')\n    vdict['aired'] = unix_to_data(i['publishTime'])\n    genre = []\n    for index in range(len(i['videoGroup'])):\n        genre.append(i['videoGroup'][index]['name'])\n\n    vdict['cast'] = [(i['creator']['nickname'],'视频作者')]\n    vdict['genre'] = genre\n    vdict['tag'] = genre\n    return vdict\n\n\n@plugin.route('/')\ndef index():\n    items = []\n    items.append({\n        'label': '推荐',\n        'path': plugin.url_for('tuijian'),\n    })\n    items.append({\n        'label': '排行',\n        'path': plugin.url_for('rank'),\n    })\n    items.append({\n        'label': 'MV',\n        'path': plugin.url_for('mv'),\n    })\n    items.append({\n        'label': '搜索',\n        'path': plugin.url_for('so'),\n    })\n    items.append({\n        'label': '歌单',\n        'path': plugin.url_for('gedang'),\n    })\n    items.append({\n        'label': '日推',\n        'path': plugin.url_for('ritui'),\n    })\n    # items.append({\n    #     'label': '设置',\n    #     'path': plugin.url_for('setting'),\n    # })\n    return items\n\n@plugin.route('/tuijian/')\ndef tuijian():\n    items = []\n    items.append({\n        'label': '网易云 · 热门推荐歌单',\n        'path': plugin.url_for('get_tuijian',mode='163'),\n    })\n    items.append({\n        'label': 'QQ音乐 · 热门推荐歌单',\n        'path': plugin.url_for('get_tuijian',mode='qq'),\n    })\n    return items\n\n@plugin.route('/ritui/')\ndef ritui():\n    if xbmcplugin.getSetting(int(sys.argv[1]), 'neteasemusiccookieswitch') == 'true' or xbmcplugin.getSetting(int(sys.argv[1]), 'qqmusiccookieswitch') == 'true':\n        items = []\n        if xbmcplugin.getSetting(int(sys.argv[1]), 'neteasemusicu') != '' and xbmcplugin.getSetting(int(sys.argv[1]), 'neteasemusiccookieswitch') == 'true':\n            items.append({\n                'label': '网易云 · 私人推荐',\n                'path': plugin.url_for('get_ritui',mode='163'),\n            })\n        if xbmcplugin.getSetting(int(sys.argv[1]), 'qqmusiccookie') != '' and xbmcplugin.getSetting(int(sys.argv[1]), 'qqmusiccookieswitch') == 'true':\n            items.append({\n                'label': 'QQ音乐 · 私人推荐',\n                'path': plugin.url_for('get_ritui',mode='qq'),\n            })\n        \n        return items\n    else:\n        dialog = xbmcgui.Dialog()\n        dialog.notification('该功能未解锁','请先启用QQ音乐或者网易云的cookie功能', xbmcgui.NOTIFICATION_INFO, 5000)\n\n@plugin.route('/mv/')\ndef mv():\n    items = []\n    items.append({\n        'label': '网易云 · MV',\n        'path': plugin.url_for('get_mv',mode='163',page=1),\n    })\n    items.append({\n        'label': 'QQ音乐 · MV',\n        'path': plugin.url_for('get_mv',mode='qq',page=1),\n    })\n    return items\n\n@plugin.route('/so/')\ndef so():\n    items = []\n    items.append({\n        'label': '网易云 · 单曲搜索',\n        'path': plugin.url_for('history',name='搜索 网易云 · 单曲',url='search',mode='163',type='1')\n    })\n    items.append({\n        'label': 'QQ音乐 · 单曲搜索',\n        'path': plugin.url_for('history',name='搜索 QQ音乐 · 单曲',url='search',mode='qq',type='0')\n    })\n    items.append({\n        'label': '网易云 · 专辑搜索',\n        'path': plugin.url_for('history',name='搜索 网易云 · 专辑',url='search',mode='163',type='10')\n    })\n    items.append({\n        'label': 'QQ音乐 · 专辑搜索',\n        'path': plugin.url_for('history',name='搜索 QQ音乐 · 专辑',url='search',mode='qq',type='8')\n    })\n    items.append({\n        'label': '网易云 · 歌手搜索',\n        'path': plugin.url_for('history',name='搜索 网易云 · 歌手',url='search',mode='163',type='100')\n    })\n    items.append({\n        'label': 'QQ音乐 · 歌手搜索',\n        'path': plugin.url_for('history',name='搜索 QQ音乐 · 歌手',url='search',mode='qq',type='9')\n    })\n    items.append({\n        'label': '网易云 · 歌单搜索',\n        'path': plugin.url_for('history',name='搜索 网易云 · 歌单',url='search',mode='163',type='1000')\n    })\n    items.append({\n        'label': 'QQ音乐 · 歌单搜索',\n        'path': plugin.url_for('history',name='搜索 QQ音乐 · 歌单',url='search',mode='qq',type='2')\n    })\n    items.append({\n        'label': '网易云 · MV搜索',\n        'path': plugin.url_for('history',name='搜索 网易云 · MV',url='search',mode='163',type='1004')\n    })\n    items.append({\n        'label': 'QQ音乐 · MV搜索',\n        'path': plugin.url_for('history',name='搜索 QQ音乐 · MV',url='search',mode='qq',type='12')\n    })\n    # items.append({\n    #     'label': '网易云 · 电台搜索',\n    #     'path':  plugin.url_for('history',name='搜索 网易云 · 电台',url='search',mode='163',type='1009')\n    # })\n    items.append({\n        'label': '网易云 · 视频搜索',\n        'path':  plugin.url_for('history',name='搜索 网易云 · 视频',url='search',mode='163',type='1014')\n    })\n    # items.append({\n    #     'label': '复制粘贴歌单url解析歌单(支持网易云和QQ音乐)',\n    #     'path': plugin.url_for('get_mv',mode='163',page=1),\n    # })\n    # items.append({\n    #     'label': '复制粘贴MV url解析mv(支持网易云和QQ音乐)',\n    #     'path': plugin.url_for('get_mv',mode='163',page=1),\n    # })\n    return items\n\n@plugin.route('/gedang/')\ndef gedang():\n    if xbmcplugin.getSetting(int(sys.argv[1]), 'neteasemusiccookieswitch') == 'true' or xbmcplugin.getSetting(int(sys.argv[1]), 'qqmusiccookieswitch') == 'true':\n        items = []\n        if xbmcplugin.getSetting(int(sys.argv[1]), 'neteasemusicuid') != '' and xbmcplugin.getSetting(int(sys.argv[1]), 'neteasemusiccookieswitch') == 'true':\n            items.append({\n                'label': '网易云 · 我的歌单',\n                'path': plugin.url_for('get_gedang',mode='163'),\n            })\n        if xbmcplugin.getSetting(int(sys.argv[1]), 'qqmusicid') != '' and xbmcplugin.getSetting(int(sys.argv[1]), 'qqmusiccookieswitch') == 'true':\n            items.append({\n                'label': 'QQ音乐 · 我的歌单',\n                'path': plugin.url_for('get_gedang',mode='qq'),\n            })\n        return items\n    else:\n        dialog = xbmcgui.Dialog()\n        dialog.notification('该功能未解锁','请先启用QQ音乐或者网易云的cookie功能', xbmcgui.NOTIFICATION_INFO, 5000)\n\n@plugin.route('/rank/')\ndef rank():\n    gdlist = get_rank()\n    items = [{\n        'label': video['name'],\n        'path': plugin.url_for('ranklist',value=video['url'].encode('utf-8')),\n\t'thumbnail': video['thumb'],\n        'icon': video['thumb'],\n        'info':{'plot':video['desc'],'mediatype':'video'},\n        'info_type':'video',\n    } for video in gdlist]\n    return items\n\n@plugin.route('/ranklist/<value>/')\ndef ranklist(value):\n    # 通过传递 qq|排行榜id 或 163|排行榜id 的value值 来区分不同的排行榜\n    value = value.split(\"|\")\n    if value[0] == '163':\n        gdlist = one63playlist(value[1])\n    if value[0] == 'qq':\n        gdlist = qqrank(value[1])\n    \n    items = []\n    for video in gdlist:\n        try:\n            label = video['label']\n        except:\n            label = video['name']\n        items.append({\n        'label': label,\n        'path': video['url'],\n\t'thumbnail': video['thumb'],\n        'icon': video['thumb'],\n        'is_playable': True,\n        'info':{'title':video['name'],'mediatype':'music'},\n        'info_type':'music',\n    } )\n    return items\n\n@plugin.route('/get_mv/<mode>/<page>/')\ndef get_mv(mode,page):\n    if mode == '163':\n        gdlist = one63mvlist(int(page))\n    else:\n        gdlist = qqmvlist(int(page))\n        \n    items = [{\n        'label': video['name'],\n        'path': plugin.url_for('playmv',url=video['url']),\n\t'thumbnail': video['thumb'],\n        'icon': video['thumb'],\n    } for video in gdlist]\n    if len(gdlist) == 50:\n        items.append({\n            'label': '下一页',\n            'path': plugin.url_for('get_mv',mode=mode,page=(int(page)+1)),\n        })\n    return items\n\n@plugin.route('/get_tuijian/<mode>/')\ndef get_tuijian(mode):\n    items = []\n    if mode == '163':\n        gdlist = one63tuijiangedan()\n    else:\n        gdlist = qqtuijiangedan()\n    for video in gdlist:\n        info = video['info']\n        info['mediatype'] = 'video'\n        items.append({\n            'label': video['name'],\n            'path': plugin.url_for('playlist',url=video['url']),\n\t    'thumbnail': video['thumb'],\n            'icon': video['thumb'],\n            'info':info,\n            'info_type':'video',\n        })\n    return items\n\n@plugin.route('/get_ritui/<mode>/')\ndef get_ritui(mode):\n    items = []\n    if mode == '163':\n        items.append({\n            'label':'每日推荐',\n            'thumbnail':'https://iph.href.lu/200x200?text='+time.strftime(\"%d\", time.localtime()) +'&fg=FFFFFF&bg=FF0000',\n            'icon':'https://iph.href.lu/200x200?text='+time.strftime(\"%d\", time.localtime()) +'&fg=FFFFFF&bg=FF0000',\n            'path': plugin.url_for('rituilist',mode='163'),\n        })\n        gdlist = one63weinituijian()\n    else:\n        items.append({\n            'label':'今日私享',\n            'thumbnail':'http://y.qq.com/m/resource/calendar/'+time.strftime(\"%m%d\", time.localtime()) +'_300.jpg',\n            'icon':'http://y.qq.com/m/resource/calendar/'+time.strftime(\"%m%d\", time.localtime()) +'_300.jpg',\n            'path': plugin.url_for('rituilist',mode='qq'),\n        })\n        gdlist = qqweinituijian()\n    for video in gdlist:\n        info = video['info']\n        info['mediatype'] = 'video'\n        items.append({\n            'label': video['name'],\n            'path': plugin.url_for('playlist',url=video['url']),\n\t    'thumbnail': video['thumb'],\n            'icon': video['thumb'],\n            'info':info,\n            'info_type':'video',\n            'context_menu':[('Theater Showtimes', 'RunScript(special://home/scripts/showtimes/default.py,Iron Man)')]\n        })\n    return items\n\n@plugin.route('/rituilist/<mode>/')\ndef rituilist(mode):\n    \n    items = []\n    if mode == '163':\n        gdlist = one63ritui()\n    else:\n        gdlist = qqritui()\n    items = [{\n        'label': video['name'],\n        'path': video['url'],\n\t'thumbnail': video['thumb'],\n        'icon': video['thumb'],\n        'is_playable': True,\n        'info':video['info'],\n        'info_type':'music',\n    } for video in gdlist]\n    return items\n\n@plugin.route('/get_gedang/<mode>/')\ndef get_gedang(mode):\n    items = []\n    if mode == '163':\n        gdlist = one63gedan()\n    else:\n        gdlist = qqgedan()\n        \n    for video in gdlist:\n        info = video['info']\n        info['mediatype'] = 'video'\n        items.append({\n            'label': video['name'],\n            'path': plugin.url_for('playlist',url=video['url']),\n\t    'thumbnail': video['thumb'],\n            'icon': video['thumb'],\n            'info':info,\n            'info_type':'video',\n        })\n    return items\n\n@plugin.route('/playlist/<url>/')\ndef playlist(url):\n    items = []\n    if 'playlist' in url:\n        dialog = xbmcgui.Dialog()\n        if '163.com' in url:\n            #网易云\n            if re.search('(?<=playlist\\?id=)\\d+',url):\n                pid = re.search('(?<=playlist\\?id=)\\d+',url).group()\n                gdlist = one63playlist(pid)\n                dialog.notification('提取网易云音乐歌单成功','歌单号:'+str(pid), xbmcgui.NOTIFICATION_INFO, 5000)\n        else:\n            if 'qq.com' in url:\n                #qq音乐\n                if re.search('(?<=playlist/)\\d+',url):\n                    pid = re.search('(?<=playlist/)\\d+',url).group()\n                    gdlist = qqplaylist(pid)\n                    dialog.notification('提取QQ音乐歌单成功','歌单号:'+str(pid), xbmcgui.NOTIFICATION_INFO, 5000)\n    else:\n        #非法url\n        dialog = xbmcgui.Dialog()\n        ok = dialog.ok('错误提示', '无法识别的歌单url')\n    items = [{\n        'label': video['name'],\n        'path': video['url'],\n\t'thumbnail': video['thumb'],\n        'icon': video['thumb'],\n        'is_playable': True,\n        'info':video['info'],\n        'info_type':'music',\n    } for video in gdlist]\n    return items\n\n@plugin.route('/playmv/<url>/')\ndef playmv(url):\n    items = []\n    # dialog = xbmcgui.Dialog()\n    # ok = dialog.ok('错误提示', str(url))\n    if 'mv' in url:\n        if '163.com' in url:\n            #网易云\n            if re.search('(?<=mv\\?id=)\\d+',url):\n                vid = re.search('(?<=mv\\?id=)\\d+',url).group()\n                mp4url = one63playmv(vid)\n                mp4info = one63mvinfo(vid)\n        else:\n            if 'qq.com' in url:\n                #qq音乐\n                if re.search('(?<=mv/v/)[a-zA-Z0-9]+',url):\n                    vid = re.search('(?<=mv/v/)[a-zA-Z0-9]+',url).group()\n                    mp4url = qqplaymv(vid)\n                    mp4info = qqmvinfo(vid)\n        #dialog = xbmcgui.Dialog()\n        #ok = dialog.ok('错误提示', vid)\n        mp4info['mediatype'] = 'video'\n        items.append({\n            'label': mp4info['title'],\n            'path': mp4url,\n\t    'thumbnail': mp4info['thumb'],\n            'icon': mp4info['thumb'],\n            'is_playable': True,\n            'info':mp4info,\n            'info_type':'video',\n        })\n    else:\n        #非法url\n        dialog = xbmcgui.Dialog()\n        ok = dialog.ok('错误提示', '无法识别的MVurl')\n    return items\n\n@plugin.route('/playvideo/<url>/')\ndef playvideo(url):\n    items = []\n    # dialog = xbmcgui.Dialog()\n    # ok = dialog.ok('错误提示', str(url))\n    if 'video' in url and '163.com' in url:\n        #网易云\n        if re.search('(?<=video\\?id=)[a-zA-Z0-9]+',url):\n            vid = re.search('(?<=video\\?id=)[a-zA-Z0-9]+',url).group()\n            mp4url = one63playvideo(vid)\n            mp4info = one63videoinfo(vid)\n        \n        #dialog = xbmcgui.Dialog()\n        #ok = dialog.ok('错误提示', vid)\n        mp4info['mediatype'] = 'video'\n        items.append({\n            'label': mp4info['title'],\n            'path': mp4url,\n\t    'thumbnail': mp4info['thumb'],\n            'icon': mp4info['thumb'],\n            'is_playable': True,\n            'info':mp4info,\n            'info_type':'video',\n        })\n    else:\n        #非法url\n        dialog = xbmcgui.Dialog()\n        ok = dialog.ok('错误提示', '无法识别的视频url')\n    return items\n\n@plugin.route('/playalbum/<url>/')\ndef playalbum(url):\n    items = []\n    if 'album' in url:\n        if '163.com' in url:\n            #网易云\n            if re.search('(?<=album\\?id=)\\d+',url):\n                pid = re.search('(?<=album\\?id=)\\d+',url).group()\n                gdlist = one63album(pid)\n        else:\n            if 'qq.com' in url:\n                #qq音乐\n                if re.search('(?<=album/)[a-zA-Z0-9]+',url):\n                    pid = re.search('(?<=album/)[a-zA-Z0-9]+',url).group()\n                    gdlist = qqalbum(pid)\n        # dialog = xbmcgui.Dialog()\n        # ok = dialog.ok('错误提示', pid)\n    else:\n        #非法url\n        dialog = xbmcgui.Dialog()\n        ok = dialog.ok('错误提示', '无法识别的专辑url')\n    items = [{\n        'label': video['name'],\n        'path': video['url'],\n\t'thumbnail': video['thumb'],\n        'icon': video['thumb'],\n        'is_playable': True,\n        'info':{'title':video['name'],'mediatype':'album'},\n        'info_type':'music',\n    } for video in gdlist]\n    return items\n\n@plugin.route('/playsinger/<url>/')\ndef playsinger(url):\n    items = []\n    if 'artist' in url or 'singer' in url:\n        if '163.com' in url:\n            #网易云\n            if re.search('(?<=artist\\?id=)\\d+',url):\n                pid = re.search('(?<=artist\\?id=)\\d+',url).group()\n                gdlist = one63singer(pid)\n        else:\n            if 'qq.com' in url:\n                #qq音乐\n                if re.search('(?<=singer/)[a-zA-Z0-9]+',url):\n                    pid = re.search('(?<=singer/)[a-zA-Z0-9]+',url).group()\n                    gdlist = qqsinger(pid)\n        # dialog = xbmcgui.Dialog()\n        # ok = dialog.ok('错误提示', pid)\n    else:\n        #非法url\n        dialog = xbmcgui.Dialog()\n        ok = dialog.ok('错误提示', '无法识别的歌手url')\n    items = [{\n        'label': video['name'],\n        'path': video['url'],\n\t'thumbnail': video['thumb'],\n        'icon': video['thumb'],\n        'is_playable': True,\n        'info':{'title':video['name'],'mediatype':'album'},\n        'info_type':'music',\n    } for video in gdlist]\n    return items\n\n@plugin.route('/labels/<label>/')\ndef show_label(label):\n    # 写抓取视频类表的方法\n    #\n    items = [\n        {'label': label},\n    ]\n    return items\n\n# @plugin.route('/setting')\n# def setting():\n#     items = []\n#     items.append({\n#         'label': u'设置网易云音乐API (API:'+netease_api +')',\n#         'path': plugin.url_for('input',key='one63api',value='请输入网易云音乐API地址：'),\n#     })\n#     items.append({\n#         'label': u'设置QQ音乐API (API:'+qqmusic_api +')',\n#         'path': plugin.url_for('input',key='qqapi',value='请输入QQ音乐API地址：'),\n#     })\n#     # items.append({\n#     #     'label': u'设置咪咕音乐API (API:'+cache['miguapi'] +')',\n#     #     'path': plugin.url_for('input',key='miguapi',value='请输入咪咕音乐API地址：'),\n#     # })\n#     if cache['my163num'] == '':\n#         items.append({\n#             'label': u'设置网易云uid - 解锁基础功能(获取公开歌单，喜欢的歌等)',\n#             'path': plugin.url_for('input',key='my163num',value='请输入网易云uid的值：'),\n#         })\n#     else:\n#         items.append({\n#             'label': u'设置网易云uid (uid:'+cache['my163num'] +')',\n#             'path': plugin.url_for('input',key='my163num',value='请输入网易云uid的值：'),\n#         })\n#     if cache['myqqnum'] == '':\n#         items.append({\n#             'label': u'设置QQ号 - 解锁基础功能(获取公开歌单，喜欢的歌等)',\n#             'path': plugin.url_for('input',key='myqqnum',value='请输入QQ号：'),\n#         })\n#     else:\n#         items.append({\n#             'label': u'设置QQ号 (QQ号：'+ cache['myqqnum'] +')',\n#             'path': plugin.url_for('input',key='myqqnum',value='请输入QQ号：'),\n#         })\n#     if cache['my163'] == '':\n#         items.append({\n#             'label': u'设置网易云MUSIC_U - 解锁高级功能(专属日推)',\n#             'path': plugin.url_for('input',key='my163',value='请输入网易云MUSIC_U的值：'),\n#         })\n#     else:\n#         items.append({\n#             'label': u'设置网易云MUSIC_U (MUSIC_U:'+cache['my163'] +')',\n#             'path': plugin.url_for('input',key='my163',value='请输入网易云MUSIC_U的值：'),\n#         })\n#     if cache['myqq'] == '':\n#         items.append({\n#             'label': u'设置QQ cookie - 解锁高级功能(专属日推)',\n#             'path': plugin.url_for('input',key='myqq',value='请输入QQ cookie：'),\n#         })\n#     else:\n#         items.append({\n#             'label': u'设置QQ cookie (QQ cookies：'+ cache['myqq'] +')',\n#             'path': plugin.url_for('input',key='myqq',value='请输入QQ cookie：'),\n#         })\n#     return items\n\n@plugin.route('/input/<key>/<value>/')\ndef input(key,value):\n    keyboard = xbmc.Keyboard('', value)\n    xbmc.sleep(1500)\n    keyboard.doModal()\n    if (keyboard.isConfirmed()):\n        dialog = xbmcgui.Dialog()\n        ret = dialog.yesno('确认该值正确吗？', keyboard.getText())\n        if ret:\n            cache[key] = keyboard.getText()\n            dialog = xbmcgui.Dialog()\n            dialog.notification('提示','保存成功', xbmcgui.NOTIFICATION_INFO, 5000,False)\n\n\n@plugin.route('/search/<value>/<page>/<type>/<mode>/')\ndef search(value,page,type,mode):\n    if value == 'null':\n        keyboard = xbmc.Keyboard('', '请输入搜索内容')\n        xbmc.sleep(1500)\n        keyboard.doModal()\n        hi = his['search']\n        if (keyboard.isConfirmed()):\n            keyword = keyboard.getText()\n            if keyword != '':\n                hi[keyword] = str(time.strftime(\"%Y-%m-%d %H:%M:%S\", time.localtime()))\n    else:\n        keyword = value\n    if 'keyword' in dir():\n        if mode == '163':\n            videos = one63search(keyword,type,page)\n        else:\n            videos = qqsearch(keyword,type,page)\n        items = []\n    \n        for video in videos:\n            info = video['info']\n            #mv\n            if type == '1004' or type == '12':\n                info['mediatype'] = 'video'\n                info_type = 'video'\n                items.append({'label': video['name'],\n                'path': plugin.url_for('playmv', url=video['url']),\n            'thumbnail': video['thumb'],\n                'icon': video['thumb'],\n                'info': info,\n                'info_type':info_type,\n                })\n            #歌单\n            if type == '2' or type == '1000':\n                info['mediatype'] = 'video'\n                info_type = 'video'\n                items.append({'label': video['name'],\n                'path': plugin.url_for('playlist', url=video['url']),\n            'thumbnail': video['thumb'],\n                'icon': video['thumb'],\n                'info': info,\n                'info_type':info_type,\n                })\n            #单曲\n            if type == '0' or type == '1':\n                info['mediatype'] = 'song'\n                info_type = 'music'\n                items.append({'label': video['name'],\n                'path': video['url'],\n            'thumbnail': video['thumb'],\n                'icon': video['thumb'],\n                'info': info,\n                'info_type':info_type,\n                'is_playable': True,\n                })\n            #专辑\n            if type == '8' or type == '10':\n                info['mediatype'] = 'album'\n                info_type = 'music'\n                items.append({'label': video['name'],\n                'path': plugin.url_for('playalbum', url=video['url']),\n            'thumbnail': video['thumb'],\n                'icon': video['thumb'],\n                'info': info,\n                'info_type':info_type,\n                })\n            #歌手\n            if type == '9' or type == '100':\n                info['mediatype'] = 'artist'\n                info_type = 'music'\n                items.append({'label': video['name'],\n                'path': plugin.url_for('playsinger', url=video['url']),\n            'thumbnail': video['thumb'],\n                'icon': video['thumb'],\n                'info': info,\n                'info_type':info_type,\n                })\n            #视频\n            if type == '1014':\n                info['mediatype'] = 'video'\n                info_type = 'video'\n                items.append({'label': video['name'],\n                'path': plugin.url_for('playvideo', url=video['url']),\n            'thumbnail': video['thumb'],\n                'icon': video['thumb'],\n                'info': info,\n                'info_type':info_type,\n                })\n        if len(videos) == 30:\n            items.append({\n                'label': '下一页',\n                'path': plugin.url_for('search',value=value,page=(int(page)+1),mode=mode,type=type),\n            })\n        \n    \n        return items\n\ndef get_key (dict, value):\n  return [k for k, v in dict.items() if v == value]\n\n@plugin.route('/history/<name>/<url>/<type>/<mode>/')\ndef history(name,url,type,mode):\n    items = []\n    items.append({\n        'label': '[COLOR yellow]'+ name +'[/COLOR]',\n        'path': plugin.url_for(url,value='null',page=1,mode=mode,type=type),\n    })\n    #his[url] ={'aaa':'2019-01-23 10:00:00','bbb':'2019-01-23 09:01:00','ccc':'2019-01-23 09:00:59'}\n    if url in his:\n        hi = his[url]\n        \n    else:\n        his[url] = {}\n        hi = his[url]\n        \n    #hi = []\n    if hi:\n        val = list(hi.values())\n        val = sorted(val,reverse=True)\n        for index in range(len(val)):\n            items.append({\n                'label': name+ ':' +get_key(hi,val[index])[0] + ' - [查询时间：' + val[index] +']',\n                'path': plugin.url_for(url,value=get_key(hi,val[index])[0],page=1,mode=mode,type=type),\n            })\n        items.append({\n            'label': '[COLOR yellow]清除历史记录[/COLOR]',\n            'path': plugin.url_for('cleanhis',url=url),\n        })\n    else:\n        items.append({\n            'label': '[COLOR yellow]历史记录为空[/COLOR]',\n            'path': plugin.url_for(ok,value='历史记录为空'),\n        })\n\n    return items\n\n@plugin.route('/ok/<value>/')\ndef ok(value):\n    dialog = xbmcgui.Dialog()\n    ok = dialog.ok('提示', value)\n\n@plugin.route('/cleanhis/<url>/')\ndef cleanhis(url):\n    his[url] = {}\n    dialog = xbmcgui.Dialog()\n    ok = dialog.ok('提示', '清理历史记录成功')\n\nif __name__ == '__main__':\n    plugin.run()\n"
  },
  {
    "path": "plugin.audio.jsososo/addon.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>\n<addon id=\"plugin.audio.jsososo\" name=\"Jsososo\" version=\"0.1.1\" provider-name=\"zhengfan\">\n  <requires>\n    <import addon=\"xbmc.python\" version=\"2.1.0\"/>\n    <import addon=\"script.module.xbmcswift2\" version=\"2.4.0\"/>\n  <import addon=\"script.module.beautifulsoup4\" version=\"4.5.3\"/>\n  <import addon=\"script.module.requests\" version=\"2.19.1\"/>\n  <import addon=\"script.module.html5lib\" version=\"0.999.0\"/>\n  </requires>\n  <extension point=\"xbmc.python.pluginsource\" library=\"addon.py\">\n    <provides>audio</provides>\n  </extension>\n  <extension point=\"xbmc.addon.metadata\">\n    <platform>all</platform>\n    <language></language>\n    <description>网易云音乐，QQ音乐，咪咕音乐聚合插件，API 1000%使用music.jsososo.com的服务</description>\n    <assets>\n      <icon>icon.png</icon>\n      <fanart>fanart.png</fanart> \n    </assets>\n    <news>首个版本</news>\n  </extension>\n</addon>\n"
  },
  {
    "path": "plugin.audio.jsososo/resources/__init__.py",
    "content": ""
  },
  {
    "path": "plugin.audio.jsososo/resources/language/Chinese (Simple)/strings.po",
    "content": "msgid \"\"\nmsgstr \"\"\n\n#Chinese Simplified\n\nmsgctxt \"#32001\"\nmsgid \"api Setting\"\nmsgstr \"Api设置\"\n\nmsgctxt \"#32002\"\nmsgid \"api\"\nmsgstr \"Api 接口相关\"\n\nmsgctxt \"#32003\"\nmsgid \"neteasemusicapiurl\"\nmsgstr \"网易云音乐Api接口Url\"\n\nmsgctxt \"#32004\"\nmsgid \"qqmusicapiurl\"\nmsgstr \"QQ音乐Api接口Url\"\n\nmsgctxt \"#32005\"\nmsgid \"miguapiurl\"\nmsgstr \"咪咕音乐Api接口Url\"\n\nmsgctxt \"#32006\"\nmsgid \"mixapiswitch\"\nmsgstr \"启用Mix统一Api接口(启用后以上设置失效)\"\n\nmsgctxt \"#32007\"\nmsgid \"mixapiurl\"\nmsgstr \"Mix统一Api接口Url\"\n\nmsgctxt \"#32101\"\nmsgid \"163 Setting\"\nmsgstr \"网易云设置\"\n\nmsgctxt \"#32102\"\nmsgid \"cookie Setting\"\nmsgstr \"cookie相关\"\n\nmsgctxt \"#32103\"\nmsgid \"neteasemusicuid\"\nmsgstr \"Uid\"\n\nmsgctxt \"#32104\"\nmsgid \"neteasemusicu\"\nmsgstr \"MUSIC_U\"\n\nmsgctxt \"#32105\"\nmsgid \"neteasemusiccookieswitch\"\nmsgstr \"启用cookie(会将您的cookie发送到您设置的api服务器)\"\n\nmsgctxt \"#32106\"\nmsgid \"setting\"\nmsgstr \"功能设置\"\n\nmsgctxt \"#32107\"\nmsgid \"httpswitch\"\nmsgstr \"如果使用解锁网易云灰色后无法播放音乐请打开\"\n\nmsgctxt \"#32201\"\nmsgid \"qq Setting\"\nmsgstr \"QQ音乐设置\"\n\nmsgctxt \"#32203\"\nmsgid \"qqmusicid\"\nmsgstr \"QQ号\"\n\nmsgctxt \"#32204\"\nmsgid \"qqmusiccookie\"\nmsgstr \"QQ音乐cookie\"\n\nmsgctxt \"#32205\"\nmsgid \"qqmusiccookieswitch\"\nmsgstr \"启用cookie(会将您的cookie发送到您设置的api服务器)\""
  },
  {
    "path": "plugin.audio.jsososo/resources/language/English/strings.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?>\n<strings>\n  <!-- Plugin name -->\n  <string id=\"30000\">bilibili</string>\n</strings>\n"
  },
  {
    "path": "plugin.audio.jsososo/resources/lib/__init__.py",
    "content": ""
  },
  {
    "path": "plugin.audio.jsososo/resources/settings.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?>\n<settings>\n    <category label=\"32001\">\n      <setting label=\"32002\" type=\"lsep\"/>\n\n      <setting id=\"neteasemusicapiurl\" type=\"text\" label=\"32003\" default=\"http://music.jsososo.com/api\"/>\n      <setting id=\"qqmusicapiurl\" type=\"text\" label=\"32004\" default=\"http://music.jsososo.com/apiQ\"/>\n      <setting id=\"miguapiurl\" type=\"text\" label=\"32005\" default=\"http://api.migu.jsososo.com\"/>\n\n\n    </category>   \n    <category label=\"32101\">\n      <setting label=\"32102\" type=\"lsep\"/>\n      <setting label=\"32105\" type=\"bool\" id=\"neteasemusiccookieswitch\" default=\"false\"/>\n      <setting id=\"neteasemusicuid\" type=\"text\" label=\"32103\" default=\"\"/>\n      <setting id=\"neteasemusicu\" type=\"text\" label=\"32104\" default=\"\"/>\n      <setting label=\"32106\" type=\"lsep\"/>\n      <setting label=\"32107\" type=\"bool\" id=\"httpswitch\" default=\"false\"/>\n\n    </category> \n    <category label=\"32201\">\n      <setting label=\"32102\" type=\"lsep\"/>\n      <setting label=\"32205\" type=\"bool\" id=\"qqmusiccookieswitch\" default=\"false\"/>\n      <setting id=\"qqmusicid\" type=\"text\" label=\"32203\" default=\"\"/>\n      <setting id=\"qqmusiccookie\" type=\"text\" label=\"32204\" default=\"\"/>\n    </category> \n</settings>\n"
  },
  {
    "path": "plugin.video.acfun/addon.py",
    "content": "#!/usr/bin/env python\n# -*- coding:utf-8 -*-\nimport re\nfrom xbmcswift2 import Plugin\nimport requests\nfrom bs4 import BeautifulSoup\nimport xbmcgui\nimport base64\nimport json\nimport urllib2\nimport sys\nimport HTMLParser\nimport re\nimport time\n\n\n\ndef unescape(string):\n    string = urllib2.unquote(string).decode('utf8')\n    quoted = HTMLParser.HTMLParser().unescape(string).encode('utf-8')\n    #转成中文\n    return re.sub(r'%u([a-fA-F0-9]{4}|[a-fA-F0-9]{2})', lambda m: unichr(int(m.group(1), 16)), quoted)\n\n\nplugin = Plugin()\n\nreqid = 0\nuid = '_26187_'\nheaders = {'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.122 Safari/537.36'}\nhis = plugin.get_storage('his')\ncache = plugin.get_storage('cache')\n\ndef del_kr(txt):\n    while True:\n        if re.search('\\[(.*?)\\]/(http|https):\\/\\/([\\w.]+\\/?)\\S*/',txt):\n            txt = txt.replace(re.search('\\[(.*?)\\]/(http|https):\\/\\/([\\w.]+\\/?)\\S*/',txt).group(),'(图片)')\n        else:\n            if re.search('\\[(.*?)\\]',txt):\n                txt = txt.replace(re.search('\\[(.*?)\\]',txt).group(),'（表情）')\n            else:\n                break\n    return txt\n\ndef get_categories():\n    return [{'name':'综合','link':'https://www.acfun.cn/rest/pc-direct/rank/channel?channelId=&subChannelId=&rankLimit=100&rankPeriod=WEEK'},\n            {'name':'番剧','link':'https://www.acfun.cn/rest/pc-direct/rank/channel?channelId=155&subChannelId=&rankLimit=30&rankPeriod=WEEK'},\n            {'name':'动画','link':'https://www.acfun.cn/rest/pc-direct/rank/channel?channelId=1&subChannelId=&rankLimit=100&rankPeriod=WEEK'},\n            {'name':'娱乐','link':'https://www.acfun.cn/rest/pc-direct/rank/channel?channelId=60&subChannelId=&rankLimit=100&rankPeriod=WEEK'},\n            {'name':'生活','link':'https://www.acfun.cn/rest/pc-direct/rank/channel?channelId=201&subChannelId=&rankLimit=100&rankPeriod=WEEK'},\n            {'name':'音乐','link':'https://www.acfun.cn/rest/pc-direct/rank/channel?channelId=58&subChannelId=&rankLimit=100&rankPeriod=WEEK'},\n            {'name':'舞蹈·偶像','link':'https://www.acfun.cn/rest/pc-direct/rank/channel?channelId=123&subChannelId=&rankLimit=100&rankPeriod=WEEK'},\n            {'name':'游戏','link':'https://www.acfun.cn/rest/pc-direct/rank/channel?channelId=59&subChannelId=&rankLimit=100&rankPeriod=WEEK'},\n            {'name':'科技','link':'https://www.acfun.cn/rest/pc-direct/rank/channel?channelId=70&subChannelId=&rankLimit=100&rankPeriod=WEEK'},\n            {'name':'影视','link':'https://www.acfun.cn/rest/pc-direct/rank/channel?channelId=68&subChannelId=&rankLimit=100&rankPeriod=WEEK'},\n            {'name':'体育','link':'https://www.acfun.cn/rest/pc-direct/rank/channel?channelId=69&subChannelId=&rankLimit=100&rankPeriod=WEEK'},\n            {'name':'鱼塘','link':'https://www.acfun.cn/rest/pc-direct/rank/channel?channelId=125&subChannelId=&rankLimit=100&rankPeriod=WEEK'}]\n\n@plugin.cached(TTL=2)\ndef get_search(keyword, page):\n    serachUrl = 'https://www.acfun.cn/rest/pc-direct/search/video?keyword=' + keyword + '&pCursor=' + str(page)\n\n    r = requests.get(serachUrl, headers=headers)\n    r.encoding = 'UTF-8'\n    rtext = r.text\n    j = json.loads(rtext)\n    #dialog = xbmcgui.Dialog()\n    #ok = dialog.ok('错误提示', str(j['videoList'][0]['id']))\n    videos = []\n    if 'videoList' in j:\n        for index in range(len(j['videoList'])):\n            videoitem = {}\n            videoitem['name'] = j['videoList'][index]['title']\n            videoitem['href'] = 'https://www.acfun.cn/v/ac'+ str(j['videoList'][index]['id'])\n            videoitem['thumb'] = j['videoList'][index]['coverUrl']\n            videos.append(videoitem)\n        dialog = xbmcgui.Dialog()\n        dialog.notification('当前'+ str(page) + '/' + str(j['pageNum']) + '页', '总共'+ str(j['totalNum']) + '个视频', xbmcgui.NOTIFICATION_INFO, 5000,False)\n    else:\n        dialog = xbmcgui.Dialog()\n        ok = dialog.ok('错误提示', '搜索结果为空')\n    return videos\n\n@plugin.cached(TTL=2)\ndef get_bgm_search(keyword,page):\n    serachUrl = 'https://www.acfun.cn/search?type=bgm&keyword=' + keyword + '&pCursor=' +str(page)\n    videos = []\n    r = requests.get(serachUrl, headers=headers)\n    r.encoding = 'UTF-8'\n    rtext = r.text\n    rtext = rtext.encode('utf-8')\n    soup = BeautifulSoup(rtext,'html.parser')\n    bgmlist = soup.find('div',class_='bangumi-list')\n    vlist = bgmlist.find_all('div',class_='search-bangumi')\n    for index in range(len(vlist)):\n        ahref = vlist[index].a['href']\n        img = vlist[index].find('div',class_='bangumi__cover')\n        title = img.img['alt']\n        img = img.img['src']\n        img = img.split('?')\n        videoitem = {}\n        videoitem['name'] = title\n        videoitem['href'] = 'https://www.acfun.cn'+ ahref\n        videoitem['thumb'] = img[0]\n        videos.append(videoitem)\n    return videos\n\n@plugin.cached(TTL=2)\ndef get_up(uid,page):\n    videos = []\n    apiurl = 'https://www.acfun.cn/space/next?uid='+str(uid)+'&type=video&orderBy=2&pageNo=' +str(page)\n    rec = requests.get(apiurl,headers=headers)\n    #print(rec.text)\n    j = json.loads(rec.text)\n    dialog = xbmcgui.Dialog()\n    dialog.notification('当前'+ str(j['data']['page']['pageNo']) + '/' + str(j['data']['page']['totalPage']) + '页', '总共'+ str(j['data']['page']['totalCount']) + '个视频', xbmcgui.NOTIFICATION_INFO, 5000,False)\n    html = j['data']['html']\n    soup = BeautifulSoup(html,'html.parser')\n    #print(html)\n    fig = soup.find_all('figure')\n    #print(len(fig))\n    for index in range(len(fig)):\n        videoitem = {}\n        videoitem['name'] = fig[index]['data-title']\n        videoitem['href'] = 'https://www.acfun.cn'+fig[index]['data-url']\n        videoitem['thumb'] = fig[index].img['src']\n        videos.append(videoitem)\n    return videos\n\n@plugin.cached(TTL=2)\ndef get_comm(val,st):\n    url = 'https://www.acfun.cn/rest/pc-direct/comment/list?sourceId=' + val + '&sourceType=' + st + '&page=1&pivotCommentId=&newPivotCommentId=&t=' +str(time.time())\n    rec = requests.get(url,headers=headers)\n    rec.encoding ='utf-8'\n    #print(rec.text)\n\n    j = json.loads(rec.text)\n    n = '\\n'\n    text = ('*-'*20)+'热门评论'+('*-'*20) + '\\n' +n\n    hc = j['hotComments']\n    scm = j['subCommentsMap']\n    for index in range(len(hc)):\n        text +='-----'*30 +n\n        text +=hc[index]['userName'].encode('utf-8') + '      - 发表于'+ hc[index]['postDate'].encode('utf-8') +'\\n' +n\n        text +=del_kr(hc[index]['content'].encode('utf-8'))+'\\n' +n\n        text +='赞 '+hc[index]['likeCountFormat'].encode('utf-8')+ '      - 来自'+ hc[index]['deviceModel'].encode('utf-8') +n\n        text +='-----'*30 +n\n        if str(hc[index]['commentId']) in scm.keys():\n            sc = scm[str(hc[index]['commentId'])]['subComments']\n            for index in range(len(sc)):\n                text +='-----'*30 +n\n                text +=(' '*10)+sc[index]['userName'].encode('utf-8') + '      - 发表于'+ sc[index]['postDate'].encode('utf-8') +'\\n' +n\n                text +=(' '*10)+del_kr(sc[index]['content'].encode('utf-8'))+'\\n' +n\n                text +=(' '*10)+'赞 '+sc[index]['likeCountFormat'].encode('utf-8')+ '      - 来自'+ sc[index]['deviceModel'].encode('utf-8') +n\n                text +='-----'*30 +n\n    text +=('*-'*20)+'最新评论'+('*-'*20) +n\n    rc = j['rootComments']\n    for index in range(len(rc)):\n        text +='-----'*30 +n\n        text +=rc[index]['userName'].encode('utf-8') + '      - 发表于'+ rc[index]['postDate'].encode('utf-8') +'\\n' +n\n        text +=del_kr(rc[index]['content'].encode('utf-8'))+'\\n' +n\n        text +='赞 '+rc[index]['likeCountFormat'].encode('utf-8')+ '      - 来自'+ rc[index]['deviceModel'].encode('utf-8') +n\n        text +='-----'*30\n        if str(rc[index]['commentId']) in scm.keys():\n            sc = scm[str(rc[index]['commentId'])]['subComments']\n            for index in range(len(sc)):\n                text +='-----'*30 +n\n                text +=(' '*10)+sc[index]['userName'].encode('utf-8') + '      - 发表于'+ sc[index]['postDate'].encode('utf-8') +'\\n' +n\n                text +=(' '*10)+del_kr(sc[index]['content'].encode('utf-8'))+'\\n' +n\n                text +=(' '*10)+'赞 '+sc[index]['likeCountFormat'].encode('utf-8')+ '      - 来自'+ sc[index]['deviceModel'].encode('utf-8') +n\n                text +='-----'*30 +n\n    return text\n\n@plugin.cached(TTL=2)\ndef get_bangumi(page):\n    url = 'https://www.acfun.cn/bangumilist?pageNum=' + str(page)\n    videos = []\n    rec = requests.get(url,headers=headers)\n    soup = BeautifulSoup(rec.text,'html.parser')\n    li = soup.find_all('li',class_='ac-mod-li')\n    for index in range(len(li)):\n        span = li[index].find('span')\n        em = li[index].find('em')\n        img = li[index].a.div.img['src']\n        img = img.split('?')\n        videoitem = {}\n        videoitem['name'] = span.text + '['+em.text+']'\n        videoitem['href'] = plugin.url_for('sources', url=li[index].a['href'])\n        videoitem['thumb'] = img[0]\n        videos.append(videoitem)\n    return videos\n\n@plugin.cached(TTL=2)\ndef get_videos(category):\n#爬视频列表的\n    pageurl = category\n    r = requests.get(pageurl, headers=headers)\n    r.encoding = 'UTF-8'\n    rtext= r.text\n    j = json.loads(rtext.encode('utf-8'))\n\n    k = j['rankList']\n    \n    videos = []\n    for index in range(len(k)):\n            item = k[index]\n            videoitem = {}\n            videoitem['name'] = item['contentTitle']\n            videoitem['href'] = 'https://www.acfun.cn/v/ac' + item['dougaId']\n            videoitem['thumb'] = item['coverUrl']\n            videoitem['info'] = {'plot':'UP主：' + item['userName'].encode('utf-8') + '\\n'}\n            videoitem['info']['plot'] += str(item['viewCountShow'].encode('utf-8')) + '播放 · ' + str(item['danmakuCountShow'].encode('utf-8')) + '弹幕 · ' + str(item['commentCountShow'].encode('utf-8')) + '评论\\n'\n            videoitem['info']['plot'] += 'AC' + str(item['dougaId']) + ' · ' + str(item['bananaCountShow'].encode('utf-8')) + '香蕉\\n\\n'\n            if 'contentDesc' in item:\n                videoitem['info']['plot'] += item['contentDesc'].encode('utf-8').replace('<br/>','\\n')\n            videos.append(videoitem)\n    return videos\n\n@plugin.cached(TTL=2)\ndef get_sources(url):\n    #ifmurl = re.match('https://m.acfun.cn',url)\n    #if ifmurl != None:\n        #url = 'https://www' + url[9:21] + 'ac' + url[25:]\n    \n    sources = []\n    #dialog = xbmcgui.Dialog()\n    #ok = dialog.ok('错误提示', url)\n    rec = requests.get(url,headers=headers)\n    rec.encoding = 'utf-8'\n    soup = BeautifulSoup(rec.text, \"html5lib\")\n    if404 = soup.find_all('div', class_='img404')\n    \n        \n        #print(rec.text)\n    rectext = rec.text\n\n    cutjson = rectext.encode('utf-8')\n    if cutjson.find('window.pageInfo = window.videoInfo = ') != -1:\n        str1 = cutjson.find('window.pageInfo = window.videoInfo = ')\n\n        try:\n            str2 = cutjson.find('window.videoResource =')\n            videoinfo = cutjson[str1+37:str2-10]\n            # dialog = xbmcgui.Dialog()\n            # dialog.textviewer('错误提示', videoinfo)\n            j = json.loads(videoinfo)\n            if len(j['videoList']) == 1:\n                videosource = {}\n                #print('视频标题：')\n                videosource['name'] = j['title']\n                #print('视频图片：')\n                #videosource['thumb'] = '12'\n                #print('视频地址：')\n                videosource['href'] = plugin.url_for('play', url=url)\n                #videosource['category'] = '番剧'\n                sources.append(videosource)\n                \n            else:\n                for index in range(len(j['videoList'])):\n                    videosource = {}\n                    videosource['name'] = j['videoList'][index]['title']\n                    videosource['href'] = plugin.url_for('play', url=url + '_' +str(index+1))\n                    sources.append(videosource)\n                \n        except ValueError:\n            \n            dialog = xbmcgui.Dialog()\n            ok = dialog.ok('错误提示', '错误404，咦？世界线变动了，你好像来到了奇怪的地方。看看其他内容吧~')\n            \n    if cutjson.find('window.pageInfo = window.bangumiData = ') != -1:\n        #番剧\n        # str1 = cutjson.find('window.bangumiList')\n        # str2 = cutjson.find('window.abtestConfig = ')\n        bgm = re.search('(?<=window.bangumiList = ).*?(?=;)',cutjson).group()\n        \n        # bgm = cutjson[str1+21:str2-28]\n        j = json.loads(bgm)\n        for index in range(len(j['items'])):\n            videosource = {}\n            videosource['name'] = j['items'][index]['episodeName']\n            videosource['href'] = plugin.url_for('play', url=url+uid+str(j['items'][index]['itemId']) + '_' +str(index+1))\n            sources.append(videosource)\n        #dialog = xbmcgui.Dialog()\n        #dialog.textviewer('错误提示',vid)\n    return sources\n\n\n@plugin.route('/sources/<url>/')\ndef sources(url):\n    sources = get_sources(url)\n    items = [{\n        'label': source['name'],\n        'path': source['href'],\n        #'thumbnail': source['thumb'],\n        #'icon': source['thumb'],\n    } for source in sources]\n    sorted_items = sorted(items, key=lambda item: item['label'])\n    return sorted_items\n\n\n@plugin.route('/category/<url>/')\ndef category(url):\n    #dialog = xbmcgui.Dialog()\n    #ok = dialog.ok('错误提示', url)\n\n\n    videos = get_videos(url)\n    items = [{\n        'label': video['name'],\n        'path': plugin.url_for('sources', url=video['href']),\n\t'thumbnail': video['thumb'],\n\t'icon': video['thumb'],\n    'info': video['info'],\n    } for video in videos]\n\n    sorted_items = items\n    #sorted_items = sorted(items, key=lambda item: item['label'])\n    return sorted_items\n\n@plugin.route('/bamgumi/<page>/')\ndef bangumi(page):\n    #dialog = xbmcgui.Dialog()\n    #ok = dialog.ok('错误提示', url)\n\n    \n    videos = get_bangumi(page)\n    \n    items = [{\n        'label': video['name'],\n        'path': video['href'],\n\t'thumbnail': video['thumb'],\n\t'icon': video['thumb'],\n    } for video in videos]\n    num = len(items)\n    if num == 42:\n        items.append({\n        'label': u'[COLOR yellow]下一页[/COLOR]',\n        'path': plugin.url_for('bangumi',page=str(int(page)+1)),\n    })\n    sorted_items = items\n    #sorted_items = sorted(items, key=lambda item: item['label'])\n    return sorted_items\n\n@plugin.route('/')\ndef index():\n    categories = get_categories()\n    items = [{\n        'label': category['name'],\n        'path': plugin.url_for('category', url=category['link']),\n    } for category in categories]\n    items.append({\n        'label': u'[COLOR yellow]真·番剧[/COLOR]',\n        'path': plugin.url_for('bangumi',page=1),\n    })\n    items.append({\n        'label': u'[COLOR yellow]搜索（视频）[/COLOR]',\n        'path': plugin.url_for('history',name='输入关键词搜索视频',url='search'),\n    })\n    items.append({\n        'label': u'[COLOR yellow]搜索（番剧）[/COLOR]',\n        'path': plugin.url_for('history',name='输入关键词搜索番剧',url='bgmsearch'),\n    })\n    items.append({\n        'label': u'[COLOR yellow]输入ac号[/COLOR]',\n        'path': plugin.url_for('history',name='输入ac号',url='ac'),\n    })\n    return items\n\n@plugin.route('/search/<value>/<page>/')\ndef search(value,page):\n    if value != 'null' and int(page) != 1:\n        keyword = value\n    else:\n        keyboard = xbmc.Keyboard('', '请输入搜索内容')\n        xbmc.sleep(1500)\n        hi = his['search']\n        if value != 'null':\n            keyboard.setDefault(value)\n        keyboard.doModal()\n        if (keyboard.isConfirmed()):\n            keyword = keyboard.getText()\n            if keyword != '':\n                hi[keyword] = str(time.strftime(\"%Y-%m-%d %H:%M:%S\", time.localtime()) )\n    videos = get_search(keyword, page)\n    items = [{\n        'label': video['name'],\n        'path': plugin.url_for('sources', url=video['href']),\n        'thumbnail': video['thumb'],\n        'icon': video['thumb']\n    } for video in videos]\n\n    \n    if len(videos) == 30:\n        nextpage = {'label': ' 下一页', 'path': plugin.url_for('search', value=keyword, page=str(int(page)+1))}\n        items.append(nextpage)\n    return items\n\n@plugin.route('/bgmsearch/<value>/<page>/')\ndef bgmsearch(value,page):\n    if value != 'null' and int(page) != 1:\n        keyword = value\n    else:\n        keyboard = xbmc.Keyboard('', '请输入搜索内容')\n        xbmc.sleep(1500)\n        hi = his['bgmsearch']\n        if value != 'null':\n            keyboard.setDefault(value)\n        keyboard.doModal()\n        if (keyboard.isConfirmed()):\n            keyword = keyboard.getText()\n            if keyword != '':\n                hi[keyword] = str(time.strftime(\"%Y-%m-%d %H:%M:%S\", time.localtime()) )\n    videos = get_bgm_search(keyword,page)\n    items = [{\n        'label': video['name'],\n        'path': plugin.url_for('sources', url=video['href']),\n        'thumbnail': video['thumb'],\n        'icon': video['thumb']\n    } for video in videos]\n    if len(videos) == 30:\n        nextpage = {'label': ' 下一页', 'path': plugin.url_for('bgmsearch', value=keyword, page=str(int(page)+1))}\n        items.append(nextpage)\n    return items\n\ndef get_key (dict, value):\n  return [k for k, v in dict.items() if v == value]\n\n@plugin.route('/history/<name>/<url>/')\ndef history(name,url):\n    items = []\n    if url == 'search' or url == 'bgmsearch':\n        items.append({\n            'label': '[COLOR yellow]'+ name +'[/COLOR]',\n            'path': plugin.url_for(url,value='null',page=1),\n        })\n    else:\n        items.append({\n            'label': '[COLOR yellow]'+ name +'[/COLOR]',\n            'path': plugin.url_for(url,value='null'),\n        })\n    #his[url] ={'aaa':'2019-01-23 10:00:00','bbb':'2019-01-23 09:01:00','ccc':'2019-01-23 09:00:59'}\n    if url in his:\n        hi = his[url]\n        \n    else:\n        his[url] = {}\n        hi = his[url]\n        \n    #hi = []\n    if hi:\n        val = list(hi.values())\n        val = sorted(val,reverse=True)\n        for index in range(len(val)):\n            if url == 'search' or url == 'bgmsearch':\n                items.append({\n                    'label': name+ ':' +get_key(hi,val[index])[0] + ' - [查询时间：' + val[index] +']',\n                    'path': plugin.url_for(url,value=get_key(hi,val[index])[0],page=1),\n                })\n            else:\n                items.append({\n                    'label': name+ ':' +get_key(hi,val[index])[0] + ' - [查询时间：' + val[index] +']',\n                    'path': plugin.url_for(url,value=get_key(hi,val[index])[0]),\n                })\n        #for index in range(len(hi)):\n            #items.append({\n                #'label': name+ ':' +hi[index],\n                #'path': plugin.url_for(url,value=hi[index]),\n            #})\n        items.append({\n            'label': '[COLOR yellow]清除历史记录[/COLOR]',\n            'path': plugin.url_for('cleanhis',url=url),\n        })\n    else:\n        items.append({\n            'label': '[COLOR yellow]历史记录为空[/COLOR]',\n            'path': plugin.url_for(ok,value='历史记录为空'),\n        })\n\n    return items\n\n@plugin.route('/ac/<value>/')\ndef ac(value):\n    if value == 'null':\n        keyboard = xbmc.Keyboard('', '请输入ac号：')\n        xbmc.sleep(1500)\n        keyboard.doModal()\n\n        hi = his['ac']\n        if (keyboard.isConfirmed()):\n            keyword = keyboard.getText()\n            hi[keyword] = time.strftime(\"%Y-%m-%d %H:%M:%S\", time.localtime()) \n    else:\n        if keyword != '':\n            keyword = value\n    sources = get_sources('https://www.acfun.cn/v/ac'+str(keyword))\n    items = [{\n        'label': source['name'],\n        'path': source['href'],\n        #'thumbnail': source['thumb'],\n        #'icon': source['thumb'],\n    } for source in sources]\n    sorted_items = sorted(items, key=lambda item: item['label'])\n    return sorted_items\n\n@plugin.route('/conn/<value>/<st>/')\ndef conn(value,st):\n    text = get_comm(value,st)\n    dialog = xbmcgui.Dialog()\n    dialog.textviewer('评论区',text)\n\n@plugin.route('/ok/<value>/')\ndef ok(value):\n    dialog = xbmcgui.Dialog()\n    ok = dialog.ok('提示', value)\n\n@plugin.route('/cleanhis/<url>/')\ndef cleanhis(url):\n    his[url] = {}\n    dialog = xbmcgui.Dialog()\n    ok = dialog.ok('提示', '清理历史记录成功')\n\n@plugin.cached(TTL=2)\n@plugin.route('/play/<url>/')\ndef play(url):\n\n    rec = requests.get(url,headers=headers)\n    rec.encoding = 'utf-8'\n    #print(rec.text)\n    rectext = rec.text\n    cutjson = rectext.encode('utf-8')\n    if cutjson.find('window.pageInfo = window.videoInfo = ') != -1:\n        str1 = cutjson.find('window.pageInfo = window.videoInfo = ')\n        str2 = cutjson.find('window.videoResource =')\n        videoinfo = cutjson[str1+37:str2-10]\n        j = json.loads(videoinfo)\n        mp4info = {}\n        mp4info['title'] = j['title']\n        st = '1'\n        #简介 plot\n        #ac = ac.encode('utf-8')\n        uptime = str(j['createTimeMillis'])\n        uptime = uptime[:-3]\n        uptime = int(uptime)\n        #转换成localtime\n        time_local = time.localtime(uptime)\n        #转换成新的时间格式(2016-05-05 20:28:54)\n        uptime = time.strftime(\"%Y-%m-%d %H:%M:%S\",time_local)\n        data = time.strftime(\"%Y-%m-%d\",time_local)\n        #ac号 显示评论区用\n        pinglunqu = j['commentCountShow'].encode('utf-8')\n        vid = j['dougaId'].encode('utf-8')\n\n        jianjie =  j['viewCountShow'].encode('utf-8') + '播放 | ' + j['danmakuCountShow'].encode('utf-8') + '弹幕 | ' + j['commentCountShow'].encode('utf-8') +'评论\\n'\n        jianjie += str(j['likeCount']).encode('utf-8') + '赞 | ' + j['stowCountShow'].encode('utf-8') + '收藏 | ' + j['bananaCountShow'].encode('utf-8')  + '香蕉'\n        jianjie += '\\n--------------------------\\n'\n        jianjie += '发布时间：' + uptime +' \\nac号：ac' +j['dougaId'].encode('utf-8')\n        jianjie += '\\n--------------------------\\n'\n        try:\n            mp4info['plot'] = jianjie  + j['description'].encode('utf-8')\n        except AttributeError:\n            mp4info['plot'] = jianjie \n\n        #分类 genre\t\n        genre = [j['channel']['parentName'],j['channel']['name']]\n        mp4info['genre'] = genre\n    \n        #发布时间\n        mp4info['aired'] = data\n        #up主 cast\n        fan = str(j['user']['fanCount'].encode('utf-8')) + '粉丝'\n        fan = fan.decode('utf-8')\n        mp4info['cast'] = [(j['user']['name'],fan)]\n        #tag\n        tag = []\n        if 'tagList' in j:\n            for index in range(len(j['tagList'])):\n                tag.append(j['tagList'][index]['name'])\n        mp4info['tag'] = tag\n        #设置类型\n        mp4info['mediatype'] = 'video'\n        videojson =j ['currentVideoInfo']['ksPlayJson']\n        j2 = json.loads(videojson)\n        \n        items = []\n        if len(j2['adaptationSet'][0]['representation']) == 1:\n            title = '['+j2['adaptationSet'][0]['representation'][0]['qualityType'] + ']' + j['title']\n            path = j2['adaptationSet'][0]['representation'][0]['url']\n            item = {'label': title,'path':path,'is_playable': True,'info':mp4info,'info_type':'video','thumbnail': j['coverCdnUrls'][0]['url'],'icon': j['coverCdnUrls'][0]['url']}\n        \n            items.append(item)\n        #return items\n        else:\n            for index in range(len(j2['adaptationSet'][0]['representation'])):\n                #print(j2['adaptationSet'][0]['representation'][index]['qualityType'])\n                #print(j2['adaptationSet'][0]['representation'][index]['url'])\n                title = '['+j2['adaptationSet'][0]['representation'][index]['qualityType'] + ']' + j['title']\n                path = j2['adaptationSet'][0]['representation'][index]['url']\n                item = {'label': title,'path':path,'is_playable': True,'info':mp4info,'info_type':'video','thumbnail': j['coverCdnUrls'][0]['url'],'icon': j['coverCdnUrls'][0]['url']}\n        \n                items.append(item)\n        items.append({\n            'label': '[COLOR yellow]查看UP主 [/COLOR]'+j['user']['name'].encode('utf-8')+'[COLOR yellow] 的更多视频[/COLOR]',\n            'path': plugin.url_for(up,uid=j['user']['id'],page=1),\n        })\n    if cutjson.find('window.pageInfo = window.bangumiData = ') != -1:\n        #番剧\n        str1 = cutjson.find('window.pageInfo = window.bangumiData = ')\n        str2 = cutjson.find('window.qualityConfig = ')\n        bgm = cutjson[str1+39:str2-10]\n        #dialog = xbmcgui.Dialog()\n        #dialog.textviewer('错误提示',bgm)\n        j = json.loads(bgm)\n        bgmjson =j ['currentVideoInfo']['ksPlayJson']\n        j2 = json.loads(bgmjson)\n        items = []\n        mp4info = {}\n        mp4info['title'] = j['bangumiTitle']\n        st = '2'\n        #简介 plot\n        #ac = ac.encode('utf-8')\n        uptime = str(j['currentVideoInfo']['uploadTime'])\n        uptime = uptime[:-3]\n        uptime = int(uptime)\n        #转换成localtime\n        time_local = time.localtime(uptime)\n        #转换成新的时间格式(2016-05-05 20:28:54)\n        uptime = time.strftime(\"%Y-%m-%d %H:%M:%S\",time_local)\n        data = time.strftime(\"%Y-%m-%d\",time_local)\n\n\n        jianjie =  j['playCountShow'].encode('utf-8') + '播放 | ' + j['currentVideoInfo']['danmakuCountShow'].encode('utf-8') + '弹幕 | ' + j['commentCountShow'].encode('utf-8') +'评论\\n'\n        jianjie += j['extendsStatus'].encode('utf-8') + ' | ' + j['latestItem'].encode('utf-8') + ' | ' + j['stowCountShow'].encode('utf-8')  + '追番'\n        jianjie += '\\n--------------------------\\n'\n        jianjie += '发布时间：' + uptime +' \\n链接：' +j['shareUrl'].encode('utf-8')\n        jianjie += '\\n--------------------------\\n'\n        try:\n            mp4info['plot'] = jianjie  + j['bangumiIntro'].encode('utf-8')\n        except AttributeError:\n            mp4info['plot'] = jianjie \n        #pinglunqu\n        pinglunqu = j['commentCountShow'].encode('utf-8')\n\n        #分类 genre\t\n        genre = []\n        for index in range(len(j['bangumiStyleList'])):\n            genre.append(j['bangumiStyleList'][index]['name'])\n\n        mp4info['genre'] = genre\n    \n        #发布时间\n        mp4info['aired'] = data\n        #追番人数 cast\n        fan = j['stowCountShow'].encode('utf-8') + '追番'\n        fan = fan.decode('utf-8')\n        mp4info['cast'] = [(j['bangumiTitle'],fan)]\n        #tag\n        mp4info['tag'] = genre\n        #设置类型\n        mp4info['mediatype'] = 'video'\n        #img\n        img = j['bangumiCoverImageV'].split('?')\n        img = img[0]\n        vid = str(j['bangumiId']).encode('utf-8')\n        for index in range(len(j2['adaptationSet'][0]['representation'])):\n            #print(j2['adaptationSet'][0]['representation'][index]['qualityType'])\n            #print(j2['adaptationSet'][0]['representation'][index]['url'])\n            title = '['+j2['adaptationSet'][0]['representation'][index]['qualityType'] + ']' + j['bangumiTitle']\n            path = j2['adaptationSet'][0]['representation'][index]['url']\n            item = {'label': title,'path':path,'is_playable': True,'info':mp4info,'info_type':'video','thumbnail': img,'icon': img}\n        \n            items.append(item)\n    items.append({\n        'label': '[COLOR yellow]评论区[/COLOR]  '+str(pinglunqu),\n        'path': plugin.url_for(conn,value=vid,st=st),\n    })\n    \n    \n    #dialog = xbmcgui.Dialog()\n    #dialog.textviewer('评论区',st)\n    return items\n     \n@plugin.route('/up/<uid>/<page>/')\ndef up(uid,page):\n    videos = get_up(uid,page)\n    items = [{\n        'label': video['name'],\n        'path': plugin.url_for('sources', url=video['href']),\n\t'thumbnail': video['thumb'],\n\t'icon': video['thumb'],\n    } for video in videos]\n    if len(videos) == 20:\n        items.append({\n            'label': '[COLOR yellow]下一页[/COLOR]  ',\n            'path': plugin.url_for(up,uid=uid,page=int(page)+1),\n        })\n    \n    \n    return items\n\n@plugin.route('/labels/<label>/')\ndef show_label(label):\n    # 写抓取视频类表的方法\n    #\n    items = [\n        {'label': label},\n    ]\n    return items\n\nif __name__ == '__main__':\n    plugin.run()\n"
  },
  {
    "path": "plugin.video.acfun/addon.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>\n<addon id=\"plugin.video.acfun\" name=\"Acfun\" version=\"0.2.3\" provider-name=\"zhengfan\">\n  <requires>\n    <import addon=\"xbmc.python\" version=\"2.1.0\"/>\n    <import addon=\"script.module.xbmcswift2\" version=\"2.4.0\"/>\n  <import addon=\"script.module.beautifulsoup4\" version=\"4.5.3\"/>\n  <import addon=\"script.module.requests\" version=\"2.19.1\"/>\n  <import addon=\"script.module.html5lib\" version=\"0.999.0\"/>\n  </requires>\n  <extension point=\"xbmc.python.pluginsource\" library=\"addon.py\">\n    <provides>video</provides>\n  </extension>\n  <extension point=\"xbmc.addon.metadata\">\n    <platform>all</platform>\n    <language></language>\n    <description>AcFun是一家弹幕视频网站，致力于为每一个人带来欢乐。</description>\n  </extension>\n</addon>\n"
  },
  {
    "path": "plugin.video.acfun/readme.md",
    "content": "# acfun for kodi 0.2.1\n## 简介\n- AcFun是一家弹幕视频网站，致力于为每一个人带来欢乐\n## 主要功能\n> - [x] 视频分类\n> - [x] 在线播放1080p视频\n> - [x] 使用官方api解析视频\n> - [x] 在线播放番剧\n> - [x] 搜索功能(使用官方搜索api)\n> - [x] 按ac号访问视频功能\n> - [x] 缓存功能（减少向服务器请求次数）\n> - [ ] 实现显示弹幕功能\n## 更新历史\n > -[v0.1.1]----------------------  \n > 修复 - 多p视频无法正常显示，解析，播放  \n > -[v0.1.0]----------------------  \n > 发布 - 首个版本  \n\n"
  },
  {
    "path": "plugin.video.acfun/resources/__init__.py",
    "content": ""
  },
  {
    "path": "plugin.video.acfun/resources/language/English/strings.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?>\n<strings>\n  <!-- Plugin name -->\n  <string id=\"30000\">bilibili</string>\n</strings>\n"
  },
  {
    "path": "plugin.video.acfun/resources/lib/__init__.py",
    "content": ""
  },
  {
    "path": "plugin.video.bangumi/addon.py",
    "content": "#!/usr/bin/env python\n# -*- coding:utf-8 -*-\nimport re\nfrom xbmcswift2 import Plugin,xbmcaddon,xbmc\nimport requests\nfrom bs4 import BeautifulSoup\nimport xbmcgui\nimport time\nimport base64\nimport json\nimport urllib2\nimport sys\nimport HTMLParser\nimport re\nimport cfscrape\nimport random\nimport os\n\n__addon__      = xbmcaddon.Addon()\n__author__     = __addon__.getAddonInfo('author')\n__scriptid__   = __addon__.getAddonInfo('id')\n__scriptname__ = __addon__.getAddonInfo('name')\n__version__    = __addon__.getAddonInfo('version')\n__language__   = __addon__.getLocalizedString\n\n__cwd__        = xbmc.translatePath( __addon__.getAddonInfo('path') ).decode(\"utf-8\")\n__profile__    = xbmc.translatePath( __addon__.getAddonInfo('profile') ).decode(\"utf-8\")\n__resource__   = xbmc.translatePath( os.path.join( __cwd__, 'resources', 'lib' ) ).decode(\"utf-8\")\n__temp__       = xbmc.translatePath( os.path.join( __profile__, 'temp') ).decode(\"utf-8\")\n\nsys.path.append (__resource__)\n# from zhconv import convert\n\n\ndef unescape(string):\n    string = urllib2.unquote(string).decode('utf8')\n    quoted = HTMLParser.HTMLParser().unescape(string).encode('utf-8')\n    #转成中文\n    return re.sub(r'%u([a-fA-F0-9]{4}|[a-fA-F0-9]{2})', lambda m: unichr(int(m.group(1), 16)), quoted)\n\ndef sat(word,fanyi='zh-hans',sub=''):\n    if type(word) == str:\n        word = word.decode('utf-8')\n    if sub != '':\n        sub = eval(sub)\n        for key in sub:\n            word = word.replace(key.decode('utf-8'),sub[key].decode('utf-8'))\n    word = convert(word,fanyi)\n    return word.encode('utf-8')\n\nplugin = Plugin()\n\nmacheaders = {'user-agent':'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_4 Supplemental Update) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/12.1.1 Safari/605.1.15'}\nipadheaders = {'user-agent': 'Mozilla/5.0 (iPad; CPU OS 10_15_4 Supplemental Update like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/12.1.1 Mobile/15E148 Safari/605.1.15'}\niphoneheaders = {'user-agent': 'Mozilla/5.0 (iPhone; CPU OS 10_15_4 Supplemental Update like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/12.1.1 Mobile/14E304 Safari/605.1.15'}\nmheaders = {'user-agent':'Mozilla/5.0 (Linux; Android 10; Z832 Build/MMB29M) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.113 Mobile Safari/537.36'}\nheaders = {'user-agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.122 Safari/537.36'}\ntmp = plugin.get_storage('tmp')\n\n#用户设置存储\nstorage = plugin.get_storage('storage')\n#搜索历史纪录\nhis = plugin.get_storage('his')\n\n\ndef chushihua(key,default):\n    if key in storage:\n        switch = storage[key]\n    else:\n        storage[key] = default\n        switch = storage[key]\n    if switch == 1:\n        value = '开'\n    else:\n        value = '关'\n    return value\n\n@plugin.cached(TTL=2)\ndef get_html(url,ua='pc',cf='',mode='html',encode='utf-8'):\n    if cf == '':\n        if ua == 'pc':\n            r = requests.get(url,headers=headers)\n        if ua == 'mobile':\n            r = requests.get(url,headers=mheaders)\n        if ua == 'iphone':\n            r = requests.get(url,headers=iphoneheaders)\n        if ua == 'ipad':\n            r = requests.get(url,headers=ipadheaders)\n        if ua == 'mac':\n            r = requests.get(url,headers=macheaders)\n        if encode == 'utf-8':\n            r.encoding = 'utf-8'\n        if encode == 'gbk':\n            r.encoding = 'gbk'\n        if mode == 'url':\n            html = r.url\n        else:\n            html = r.text\n    else:\n        scraper = cfscrape.create_scraper()\n        if ua == 'pc':\n            s = scraper.get_tokens(url,headers=headers)\n            r = requests.get(url,headers=headers,cookies=s[0])\n        if ua == 'mobile':\n            s = scraper.get_tokens(url,headers=mheaders)\n            r = requests.get(url,headers=mheaders,cookies=s[0])\n        if ua == 'iphone':\n            s = scraper.get_tokens(url,headers=iphoneheaders)\n            r = requests.get(url,headers=iphoneheaders,cookies=s[0])\n        if ua == 'ipad':\n            s = scraper.get_tokens(url,headers=ipadheaders)\n            r = requests.get(url,headers=ipadheaders,cookies=s[0])\n        if ua == 'mac':\n            s = scraper.get_tokens(url,headers=macheaders)\n            r = requests.get(url,headers=macheaders,cookies=s[0])\n\n        if encode == 'utf-8':\n            r.encoding = 'utf-8'\n        if encode == 'gbk':\n            r.encoding = 'gbk'\n\n        if mode == 'url':\n            html = r.url\n        else:\n            html = r.text\n    return html\n\n@plugin.cached(TTL=2)\ndef post_html(url,data,ua='pc',cf='',encode='utf-8'):\n    data =eval(data)\n    if cf == '':\n        if ua == 'pc':\n            r = requests.post(url,headers=headers,data=data)\n        if ua == 'mobile':\n            r = requests.post(url,headers=mheaders,data=data)\n        if ua == 'iphone':\n            r = requests.post(url,headers=iphoneheaders,data=data)\n        if ua == 'ipad':\n            r = requests.post(url,headers=ipadheaders,data=data)\n        if ua == 'mac':\n            r = requests.post(url,headers=macheaders,data=data)\n        \n        if encode == 'utf-8':\n            r.encoding = 'utf-8'\n        if encode == 'gbk':\n            r.encoding = 'gbk'\n        html = r.text\n    else:\n        scraper = cfscrape.create_scraper()\n        html = scraper.post(url,data).content\n    return html\n\ndef unix_to_data(uptime,format='data'):\n    if len(str(uptime)) > 10:\n        uptime = str(uptime)[:-(len(str(uptime))-10)]\n    uptime = float(uptime)\n    time_local = time.localtime(uptime)\n    if format == 'data' or format == 'zhdata' or format == 'datatime' or format == 'zhdatatime' or format == 'time' or format == 'zhtime':\n        if format == 'data':\n            uptime = time.strftime('%Y-%m-%d',time_local)\n        if format == 'zhdata':\n            uptime = time.strftime('%Y年%m月%d日',time_local)\n        if format == 'datatime':\n            uptime = time.strftime('%Y-%m-%d %H:%M:%S',time_local)\n        if format == 'zhdatatime':\n            uptime = time.strftime('%Y年%m月%d日 %H时%M分%S秒',time_local)\n        if format == 'time':\n            uptime = time.strftime('%H:%M:%S',time_local)\n        if format == 'zhtime':\n            uptime = time.strftime('%H时%M分%S秒',time_local)\n    else:\n        uptime = time.strftime(format,time_local)\n    return uptime\n\ndef tiqu_num(string):\n    try:\n        a = re.search('\\d+',string).group()\n        return a\n    except AttributeError:\n        return ''\n\ndef get_categories_mode(mode):\n    item = eval('get_' + mode + '_categories')()\n    return item\ndef get_videos_mode(url,mode,page):\n    item = eval('get_' + mode + '_videos')(url,page)\n    return item\ndef get_source_mode(url,mode):\n    item = eval('get_' + mode + '_source')(url)\n    return item\ndef get_mp4info_mode(url,mode):\n    item = eval('get_' + mode + '_mp4info')(url)\n    return item\ndef get_mp4_mode(url,mode):\n    item = eval('get_' + mode + '_mp4')(url)\n    return item\ndef get_search_mode(keyword,page,mode):\n    item = eval('get_' + mode + '_search')(keyword,page)\n    return item\n\ndamakulist = ['bimibimi','yhdm','agefans','silisili','iafuns','qinmei','srsg','ningmoe']\n##########################################################\n###主入口\n##########################################################\n\ndef get_categories():\n    return [{'id':1,'name':'哔咪哔咪(bimibimi.tv)[COLOR pink][/COLOR]','link':'bimibimi','author':'zhengfan2014','upload':'2020-6-26','videos':24,'search':24,'plot':'更新速度比樱花稍慢，但是总体画质比樱花高'},\n            {'id':2,'name':'樱花动漫(yhdm.io)','link':'yhdm','author':'zhengfan2014','upload':'2020-6-26','videos':15,'search':20,'plot':'昨晚b站23点发布的BNA，今天早上就可以在樱花看了,更新速度杠杠滴'},\n            {'id':3,'name':'Age动漫(agefans.tw)','link':'agefans','author':'zhengfan2014','upload':'2020-6-30','videos':24,'search':15,'plot':'海外站点，虽然访问速度偏慢，但是番剧mp4是国内的观看并不卡。更新番剧速度一般'},\n            {'id':4,'name':'嘶哩嘶哩(silisili.in)','link':'silisili','author':'zhengfan2014','upload':'2020-6-30','videos':10,'search':20,'plot':'大部分有1080p，但是番剧收录少，居然没有4月新番bna'},\n            {'id':5,'name':'八重樱动漫(iafuns.com)','link':'iafuns','author':'zhengfan2014','upload':'2020-6-30','plot':'更新速度一般'},\n            {'id':6,'name':'番組計劃(guguani.me)','link':'srsg','author':'zhengfan2014','upload':'2020-6-30','plot':'更新很不及时。格莱普尼尔和b站最新差两集，而且现在没注册登录不能看番了，不过还好它们api目前对不登录的用户没有限制（也就是本插件目前还能用）'},\n            {'id':7,'name':'Qinmei(qinmei.video)','link':'qinmei','author':'zhengfan2014','upload':'2020-6-30','videos':20,'search':20,'plot':'站长是酷安的，现在网站好像半凉了'},\n            {'id':8,'name':'柠萌瞬间(ningmoe.com)','link':'ningmoe','author':'zhengfan2014','upload':'2020-6-30','videos':10,'search':10,'plot':'还不错，大部分有1080p，但是番剧收录少，bna木有'},\n            {'id':9,'name':'吐槽弹幕网(tucao.one)','link':'tucao','author':'zhengfan2014','upload':'2020-6-26','videos':24,'search':12,'plot':'正版c站，11年到现在，现在除了番剧区的，其他区的视频基本凉凉放不了。更新快，还是1080p的，但是里面有些无修的黄番，未成年的朋友可以打开黑名单屏蔽功能，加 无修 和 BD 这两个关键词加以屏蔽'},\n            {'id':10,'name':'clicli弹幕网(clicli.me)','link':'cliclime','author':'zhengfan2014','upload':'2020-6-30','plot':'基本都是1080p'},\n            {'id':11,'name':'五弹幕(5dm.tv)','link':'5dmtv','author':'zhengfan2014','upload':'2020-6-30','videos':32,'search':32,'plot':'新番看不了的，可能得注册会员才能看，我没注册过，注册会员20大洋，现在这么多网站白嫖，愿意出20块的算是真爱粉了哈哈'},\n            {'id':12,'name':'clicli弹幕网(clicli.co)','link':'cliclico','author':'zhengfan2014','upload':'2020-6-30','plot':'山寨c站，和clicli.me互掐'},\n            {'id':13,'name':'zzzfun(zzzfun.com)','link':'zzzfun','author':'zhengfan2014','upload':'2020-6-30','videos':12,'search':10,'plot':''},\n            {'id':14,'name':'动漫岛(dmd8.com)','link':'dmd8','author':'zhengfan2014','upload':'2020-6-30','videos':20,'search':10,'plot':''}]\n\n##########################################################\n###以下是模块，网站模块请粘贴在这里面\n##########################################################\n\n#bimibimi\ndef get_bimibimi_categories():\n    return [{'name':'新番放送','link':'http://www.bimiacg.com/type/riman'},\n            {'name':'国产动漫','link':'http://www.bimiacg.com/type/guoman'},\n            {'name':'番组计划','link':'http://www.bimiacg.com/type/fanzu'},\n            {'name':'剧场动画','link':'http://www.bimiacg.com/type/juchang'},\n            {'name':'影视','link':'http://www.bimiacg.com/type/move'}]\n\ndef get_bimibimi_videos(url,page):\n    videos = []\n    if page == 1:\n        r = get_html(url + '/')\n    else:\n        r = get_html(url + '-' +str(page) +'/')\n    soup = BeautifulSoup(r, \"html5lib\")\n    linelist = soup.find('ul',class_='drama-module clearfix tab-cont')\n    alist = linelist.find_all('a',class_='img')\n    plist = linelist.find_all('span',class_='fl')\n    for i in range(len(alist)):\n        videoitem = {}\n        videoitem['name'] =  alist[i]['title'] + ' [' + plist[i].text + ']' \n        videoitem['href'] =  'http://www.bimiacg.com' + alist[i]['href']\n        videoitem['thumb'] = alist[i].img['data-original']\n        videoitem['info'] = {'plot' : alist[i]['title'] + '\\n' + plist[i].text }\n        videos.append(videoitem)\n    return videos\n\ndef get_bimibimi_source(url):\n    videos = []\n    r = get_html(url)\n    soup = BeautifulSoup(r, 'html.parser')\n    linelist = soup.find_all('div',class_='play_box')\n    sourcelist = []\n    for index in range(len(linelist)):\n        alist = linelist[index].find_all('a')\n        duopdict = {}\n        for i in range(len(alist)):\n            duopdict[alist[i].text] = 'http://www.bimiacg.com/' + alist[i]['href']\n        sourcelist.append(duopdict)\n\n    for index in range(len(sourcelist)):\n        videoitem = {}\n        videoitem['name'] = '播放线路' + str(index+1)\n        videoitem['href'] = str(sourcelist[index])\n        videos.append(videoitem)\n    tmp['bghtml'] = r\n    return videos\n\ndef get_bimibimi_mp4info(url):\n    rtext = tmp['bghtml']\n    soup = BeautifulSoup(rtext, 'html.parser')\n    li = soup.find_all('li',class_='clearfix')\n    infodict={}\n    infodict['title'] = soup.find('div',class_='tit').h1.text\n    if re.search(u' ',infodict['title']):\n        infodict['title'].split(u' ')[0]\n    for index in range(len(li)):\n        emtext = li[index].em.text\n        emtext = emtext.replace(u'：','')\n        if li[index].find_all('a'):\n            a = li[index].find_all('a')\n            if len(a) == 1:\n                atex = a[0].text\n                atext = atex\n            else:\n                atext = []\n                for index in range(len(a)):\n                    if a[index].text != '':\n                        atex = a[index].text\n                        atext.append(atex)\n        else:\n            atex = li[index].text\n            atex = atex.replace(u'：','')\n            atex = atex.replace(emtext,'')\n            atext = atex.strip()\n        emtext = emtext.replace(u'提醒','status')\n        emtext = emtext.replace(u'声优','cast')\n        emtext = emtext.replace(u'类型','genre')\n        emtext = emtext.replace(u'导演','writer')\n        emtext = emtext.replace(u'开播','premiered')\n        emtext = emtext.replace(u'年份','year')\n        emtext = emtext.replace(u'地区','country')\n        emtext = emtext.replace(u'更新','dateadded')\n        emtext = emtext.replace(u'简介','plot')\n        if atext != '':\n            infodict[emtext] = atext\n    return infodict\n\ndef get_bimibimi_mp4(url):\n    r = get_html(url)\n    soup = BeautifulSoup(r, 'html.parser')\n    str1 = r.find(u'var player_data=')\n    str2 = r.find(u'</script><script type=\"text/javascript\"')\n    cutjson = r[str1+16:str2]\n    #print(cutjson)\n    j = json.loads(cutjson)\n    dialog = xbmcgui.Dialog()\n    dialog.textviewer('错误提示', str(cutjson))\n    #向接口发送请求\n    if j['from']:\n        if j['from'] == 'wei':\n            apiurl = 'http://49.234.56.246/danmu/wy.php?url=' + j['url']\n        elif j['from'] == 'bimi':\n            apiurl = 'http://49.234.56.246/danmu/play.php?url=' + j['url']\n        apiurl += \"&myurl=\" + url\n        r = get_html(apiurl)\n        soup = BeautifulSoup(r, 'html.parser')\n        source = soup.find('source',type='video/mp4')\n        try:\n            mp4 = source['src']\n        except:\n            dialog = xbmcgui.Dialog()\n            ok = dialog.ok('错误提示', '没有找到视频')\n        #rt = []\n        #rt.append(title.text)\n        #rt.append(mp4)\n    return mp4\n\ndef get_bimibimi_search(keyword,page):\n    videos = []\n    if int(page) == 1:\n        url = 'http://www.bimiacg.com/vod/search/'\n        data = str({'wd':keyword})\n        r = post_html(url,data)\n    else:\n        url = 'http://www.bimiacg.com/vod/search/wd/'+keyword+'/page/'+ str(page) +'/'\n        r = get_html(url)\n    soup = BeautifulSoup(r, \"html5lib\")\n    linelist = soup.find('ul',class_='drama-module clearfix tab-cont')\n    alist = linelist.find_all('a',class_='img')\n    plist = linelist.find_all('span',class_='fl')\n    # dialog = xbmcgui.Dialog()\n    # dialog.textviewer('错误提示', str(alist))\n    for i in range(len(alist)):\n        videoitem = {}\n        videoitem['name'] =  alist[i]['title'] + '[' + plist[i].text + ']' \n        videoitem['href'] =  'http://www.bimiacg.com' + alist[i]['href']\n        videoitem['thumb'] = alist[i].img['data-original']\n        videoitem['info'] =  {'plot' : alist[i]['title'] + '\\n' + plist[i].text  }\n        videos.append(videoitem)\n    return videos\n#樱花\ndef get_yhdm_categories():\n    return [{'name':'日本动漫','link':'http://www.yhdm.io/japan/'},\n            {'name':'国产动漫','link':'http://www.yhdm.io/china/'},\n            {'name':'美国动漫','link':'http://www.yhdm.io/american/'},\n            {'name':'动漫电影','link':'http://www.yhdm.io/movie/'},\n            {'name':'新番动漫','link':'http://www.yhdm.io/2020/'},\n            {'name':'剧场版','link':'http://www.yhdm.io/37/'},\n            {'name':'OVA版','link':'http://www.yhdm.io/36/'},\n            {'name':'真人动漫','link':'http://www.yhdm.io/38/'}]\n\ndef get_yhdm_videos(url,page):\n    videos = []\n    if int(page) == 1:\n        r = get_html(url)\n    else:\n        r = get_html(url + str(page) + '.html')\n    soup = BeautifulSoup(r, 'html.parser')\n    if soup.find('div',class_='lpic') or soup.find('div',class_='imgs'):\n        if soup.find('div',class_='lpic'):\n            linelist = soup.find('div',class_='lpic')\n        else:\n            linelist = soup.find('div',class_='imgs')\n    #print(len(linelist))\n    li = linelist.find_all('li')\n    for index in range(len(li)):\n        videoitem = {}\n        videoitem['name'] =  li[index].a.img['alt']\n        videoitem['href'] =  'http://www.yhdm.io/' + li[index].a['href']\n        videoitem['thumb'] = li[index].a.img['src']\n        videoitem['info'] =  {'plot' :li[index].p.text}\n        videos.append(videoitem)\n    return videos\n\ndef get_yhdm_source(url):\n    #爬视频列表的\n    videos = []\n    r = get_html(url)\n    #print(r.text)\n    soup = BeautifulSoup(r, 'html.parser')\n    linelist = soup.find('div',class_='main0')\n    #print(len(linelist))\n    li = linelist.find_all('li')\n\n    sourcelist = []\n    duopdict = {}\n    for index in range(len(li)):\n        duopdict[li[index].a.text] = 'http://www.yhdm.io/' + li[index].a['href']\n    sourcelist.append(duopdict)\n\n    \n    videoitem = {}\n    videoitem['name'] = '播放线路1'\n    videoitem['href'] = str(sourcelist[0])\n    videos.append(videoitem)\n    tmp['bghtml'] = r\n    return videos\n\ndef get_yhdm_mp4info(url):\n    rtext = tmp['bghtml']\n    soup = BeautifulSoup(rtext, 'html.parser')\n    title = soup.find('div',class_='rate r').h1.text\n    sinfo = soup.find('div',class_='sinfo')\n    span = sinfo.find_all('span')\n    info = soup.find('div',class_='info')\n    infodict={}\n    infodict['title'] = title\n    for index in range(len(span)):\n        text = span[index].label.text.strip()+span[index].a.text.strip()\n        text = text.encode('utf-8')\n        text = text.split(':')\n        text[0] = text[0].replace('类型','genre')\n        text[0] = text[0].replace('上映','year')\n        text[0] = text[0].replace('地区','country')\n\n        if text[1]:\n            infodict[text[0]] = text[1]\n    \n    infodict['plot'] = info.text.strip()\n\n    return infodict\n\ndef get_yhdm_mp4(url):\n    r = get_html(url)\n    soup = BeautifulSoup(r, 'html.parser')\n    vid = soup.find('div',class_='bofang')\n    vid = vid.div['data-vid']\n    vid = vid.split('$')\n    if vid[1] == 'mp4' or vid[1] == 'qz':\n        if vid[1] == 'mp4':\n            rt = vid[0]\n        if vid[1] == 'qz':\n            apiurl = 'https://js.voooe.cn/jiexi/api.php'\n            q = vid[0]\n            ref = 'http://tup.yhdm.io/?vid=' + q +'$qz'\n            refb64 = base64.b64encode(ref.encode('utf-8'))\n            qb64 = base64.b64encode(q.encode('utf-8'))\n            data = {'url': vid[0], 'referer': refb64,'time':int(time.time()),'other':qb64,'ref':'0','type':'','ios':''}\n            r = requests.post(apiurl,headers=headers,data=data)\n            j = json.loads(r.text)\n            mp4 = j['url']\n            mp4 = mp4.replace('\\\\','')\n            rt = mp4\n        return rt\n    else:\n        dialog = xbmcgui.Dialog()\n        ok = dialog.ok('错误提示','不受支持的播放链接')\n    \n\ndef get_yhdm_search(keyword,page):\n    videos = []\n    url = 'http://www.yhdm.io/search/' + keyword + '/'\n    r = get_html(url)\n    soup = BeautifulSoup(r, 'html.parser')\n    if soup.find('div',class_='lpic') or soup.find('div',class_='imgs'):\n        if soup.find('div',class_='lpic'):\n            linelist = soup.find('div',class_='lpic')\n        else:\n            linelist = soup.find('div',class_='imgs')\n    #print(len(linelist))\n    li = linelist.find_all('li')\n    for index in range(len(li)):\n        videoitem = {}\n        videoitem['name'] =  li[index].a.img['alt']\n        videoitem['href'] =  'http://www.yhdm.io/' + li[index].a['href']\n        videoitem['thumb'] = li[index].a.img['src']\n        videoitem['info'] =  {'plot' :li[index].p.text}\n        videos.append(videoitem)\n    return videos\n\n#agefan.tw\ndef get_agefans_categories():\n    return [{'name':'每日推荐','link':'https://agefans.tw/recommend'},\n            {'name':'最近更新','link':'https://agefans.tw/update'}]\n\ndef get_agefans_videos(url,page):\n    #爬视频列表的\n    videos = []\n    html = get_html(url,cf=1)\n    soup = BeautifulSoup(html,'html.parser')\n    \n    base = soup.find('ul',class_='row list-unstyled my-gutters-2')\n    li = base.find_all('li')\n    \n    for index in range(len(li)):\n        title = li[index].find('a')\n        imgs = li[index].find('img')\n        try:\n            img = imgs['src']\n        except KeyError:\n            img = imgs['data-src']\n        videoitem = {}\n        videoitem['name'] =  title.div.text.strip()\n        videoitem['thumb'] =  'http:' + img\n        videoitem['href'] = 'https://agefans.tw' + title['href']\n        videos.append(videoitem)\n    return videos\n\ndef get_agefans_source(url):\n    #爬视频列表的\n    videos = []\n    #bak = url\n    #url = url.replace('detail','play')\n    #aid = re.search('[0-9]+',url).group()\n    html = get_html(url,cf=1)\n    soup = BeautifulSoup(html, 'html.parser')\n    #base = soup.find('div',class_='baseblock2')\n    base = soup.find('section',class_='mb-0')\n    #sourcelist = base.find_all('div',class_='blockcontent')\n    sourcelist = base.find_all('ul',class_='row list-unstyled my-gutters-2')\n    sclist = []\n    for index in range(len(sourcelist)):\n        #alist = sourcelist[index].find_all('a',class_='episode')\n        alist = sourcelist[index].find_all('a')\n        duopdict = {}\n        for index in range(len(alist)):\n            #uri = 'https://agefans.tw/_getplay_2?animeid='+ str(aid)+ '&routeidx='+ str(alist[index]['routeidx'])+ '&episodeidx='+ str(alist[index]['episodeidx'])+ '&lhf='+ str(alist[index]['lhf'])+ '&sign='+ alist[index]['sign']+ '&num='+ str(random.random())\n            duopdict[alist[index].text.strip()] = 'https://agefans.tw' + alist[index]['href']\n        sclist.append(duopdict)\n    \n\n    \n    for index in range(len(sclist)):\n        videoitem = {}\n        videoitem['name'] = '播放线路' + str(index+1)\n        videoitem['href'] = str(sclist[index])\n        videos.append(videoitem)\n    tmp['bghtml'] = html\n    return videos\n\ndef get_agefans_mp4info(url):\n    rtext = tmp['bghtml']\n    infodict={}\n    soup = BeautifulSoup(rtext, 'html.parser')\n    #取中文名\n    base = soup.find('div',class_='mycol-lg-90 mycol-md-80 mycol-120 mb-3')\n    \n    titles = base.find_all('div')\n    title = titles[1].find_all('span')\n    title = title[1].text\n\n    dialog = xbmcgui.Dialog()\n    dialog.textviewer('错误提示', title)\n    if re.search(u'/',title):\n        title = title.split(u'/')[0].strip()\n    infodict['title'] = title\n    # table = soup.find('table')\n    # li = table.find_all('li')\n    table = soup.find('ul',class_='list-unstyled mb-0')\n    li = table.find_all('li')\n\n    for index in range(len(li)):\n        #text = li[index].find('span',class_='play_imform_tag').text.strip() + li[index].find('span',class_='play_imform_val').text.strip()\n        #text = text.encode('utf-8')\n        span = li[index].find_all('span')\n        text = [span[0].text.strip(),span[1].text.strip()]\n        #text = text.split('：')\n        text[0] = text[0].replace(u'地區','country')\n        text[0] = text[0].replace(u'標簽','tag')\n        text[0] = text[0].replace(u'原版名稱','originaltitle')\n        text[0] = text[0].replace(u'原作','writer')\n        text[0] = text[0].replace(u'制作公司','studio')\n        text[0] = text[0].replace(u'首播時間','premiered')\n        text[0] = text[0].replace(u'播放狀態','status')\n        text[0] = text[0].replace(u'劇情類型','genre')\n        text[0] = text[0].replace(u'官方網站','showlink')\n        if text[1]:\n            if text[1].find(u',') != -1:\n                text[1] = text[1].split(u',')\n            infodict[text[0]] = text[1]\n    pinfo = soup.find('p',class_='small')\n    infodict['plot'] =pinfo.text.strip()\n    # dialog = xbmcgui.Dialog()\n    # dialog.textviewer('错误提示',str(infodict))\n    return infodict\n\ndef get_agefans_mp4(url):\n    r = get_html(url,cf=1)\n    soup = BeautifulSoup(r, 'html.parser')\n    video = soup.find('div',id='play')\n    vid = str(video)\n    if vid.find('<script type=\"text/javascript\">') != -1:\n        str1 = vid.find('$.get(')\n        str2 = vid.find('function')\n        url1 = vid.strip()[str1+7:str2-3]\n        r1 = get_html('https://agefans.tw' + url1,cf=1)\n        j = json.loads(r1)\n        mp4 = j['result']['url']\n        if not re.search('https?://',mp4):\n            if re.search('//',mp4):\n                mp4 = 'https:' + mp4\n        # dialog = xbmcgui.Dialog()\n        # dialog.textviewer('错误提示', str(url1) + '\\n' + str(mp4))\n    else:\n        iframe = video.find('iframe')\n        mp4 = re.search('https?:\\/\\/..+\\.mp4',iframe['src']).group()\n        #mp4 = iframe['src']\n    # mp4 = unescape(html)\n    # if mp4[:2] == '//':\n    #     mp4 = 'http:' + mp4\n    # if mp4.find('baidu.com') != -1:\n    #     mp4 = re.search('https?:\\/\\/..+\\.mp4',mp4).group()\n    return mp4\n\ndef get_agefans_search(keyword,page):\n    videos = []\n    if int(page) == 1:\n        url = 'https://agefans.tw/search?q=' +keyword\n    else:\n        url = 'https://agefans.tw/search?q=' +keyword + '&page=' +str(page)\n    html = get_html(url,cf=1)\n    soup = BeautifulSoup(html,'html.parser')\n    base = soup.find('section',id='search_list')\n    li = base.find_all('li',class_='card')\n    # dialog = xbmcgui.Dialog()\n    # dialog.textviewer('错误提示', str(li[1]))\n    for index in range(len(li)):\n        title = li[index].find('h5')\n        imgs = li[index].find('img')\n        link = li[index].find('a')\n        try:\n            img = imgs['src']\n        except KeyError:\n            img = imgs['data-src']\n        videoitem = {}\n        videoitem['name'] =  title.text.strip()\n        videoitem['thumb'] =  'http:' + img\n        videoitem['href'] = 'https://agefans.tw' + link['href']\n        videos.append(videoitem)\n    return videos\n\n#qinmei\ndef get_qinmei_categories():\n    return [{'name':'新番','link':'https://qinmei.video/api/v2/animates?sortBy=updatedAt&sortOrder=-1&size=20&page='},\n            {'name':'剧场版','link':'https://qinmei.video/api/v2/animates?sortBy=updatedAt&sortOrder=-1&size=20&kind=5e359428d1f1dc2e17f84fd4&page='},\n            {'name':'战斗','link':'https://qinmei.video/api/v2/animates?sortBy=updatedAt&sortOrder=-1&size=20&kind=5e341fc1d1f1dc2e17f84fae&page='},\n            {'name':'日常','link':'https://qinmei.video/api/v2/animates?sortBy=updatedAt&sortOrder=-1&size=20&kind=5e341fc8e7bc242e192d23cf&page='},\n            {'name':'搞笑','link':'https://qinmei.video/api/v2/animates?sortBy=updatedAt&sortOrder=-1&size=20&kind=5e341fced1f1dc2e17f84faf&page='},\n            {'name':'治愈','link':'https://qinmei.video/api/v2/animates?sortBy=updatedAt&sortOrder=-1&size=20&kind=5e341fd8e7bc242e192d23d0&page='},\n            {'name':'致郁','link':'https://qinmei.video/api/v2/animates?sortBy=updatedAt&sortOrder=-1&size=20&kind=5e341fe7d1f1dc2e17f84fb0&page='},\n            {'name':'异界','link':'https://qinmei.video/api/v2/animates?sortBy=updatedAt&sortOrder=-1&size=20&kind=5e341feed1f1dc2e17f84fb1&page='}]\n\ndef get_qinmei_videos(url,page):\n    #爬视频列表的\n    videos = []\n    r = get_html(url + str(page))\n    j = json.loads(r)\n    vlist = j['data']['list']\n    for index in range(len(vlist)):\n        img = vlist[index]['coverVertical']\n        if img[:2] != 'ht':\n            if img[:2] == '//':\n                img = 'http:'+img\n            else:\n                img = 'http://qinmei.video' +img\n        videoitem = {}\n        videoitem['name'] =  vlist[index]['title']\n        videoitem['href'] =  vlist[index]['slug']\n        videoitem['thumb'] = img\n        videos.append(videoitem)\n    return videos\n\ndef get_qinmei_source(url):\n    #爬视频列表的\n    videos = []\n    url = 'https://qinmei.video/api/v2/animates/' + url\n    r = get_html(url)\n    j = json.loads(r)\n    sourcelist = []\n    duopdict = {}\n    for index in range(len(j['data']['eposides'])):\n        duopdict[j['data']['eposides'][index]['title']] = j['data']['eposides'][index]['_id']\n    sourcelist.append(duopdict)\n\n    \n    videoitem = {}\n    videoitem['name'] = '播放线路1'\n    videoitem['href'] = str(sourcelist[0])\n    videos.append(videoitem)\n    tmp['bghtml'] = r\n    return videos\n\ndef get_qinmei_mp4info(url):\n    rtext = tmp['bghtml']\n\n    #t = json.dumps(r.text, ensure_ascii=False)  \n    j = json.loads(rtext)\n    infodict={}\n#print(j['data']['status'])\n    infodict['title'] = j['data']['title']\n    infodict['plot'] = j['data']['introduce']\n    staff = j['data']['staff']\n    if staff != '':\n        staff = staff.encode('utf-8')\n        staff =staff.split('/')\n        for i in range(len(staff)):\n            act = staff[i]\n            act = act.replace('导演','writer')\n            act = act.split(':')\n            infodict[act[1]] = act[0]\n\n    actor = j['data']['actor']#角色：cv\n    actor = actor.split('/')\n    for i in range(len(actor)):\n        try:\n            act = actor[i]\n            act = act.split(':')\n            actor[i] = (act[1],act[0])\n        except IndexError:\n            pass\n    infodict['castandrole'] = actor\n    infodict['premiered'] = str(j['data']['firstPlay'][:4]) + '-' +str(j['data']['firstPlay'][4:6]) + '-' +str(j['data']['firstPlay'][6:8])\n    #infodict['playcount'] = j['data']['countPlay']\n    infodict['userrating'] = j['data']['countStar']\n    try:\n        infodict['country'] = j['data']['area'][0]['name']\n    except IndexError:\n        pass\n    try:\n        infodict['year'] = j['data']['year'][0]['name']\n    except IndexError:\n        pass\n\n\n    return infodict\n\ndef get_qinmei_mp4(url):\n    url = 'https://qinmei.video/api/v2/animates/' + url + '/play'\n    r = get_html(url)\n    #soup = BeautifulSoup(r, 'html.parser')\n    j = json.loads(r)\n    mp4 = j['data']['link'][0]['value']\n    return mp4\n\ndef get_qinmei_search(keyword,page):\n    #爬视频列表的\n    videos = []\n    url = 'https://qinmei.video/api/v2/animates?type=queryAnimate&title='+keyword+'&page='+ str(page) + '&size=20&sortBy=updatedAt&sortOrder=-1'\n    r = get_html(url)\n    j = json.loads(r)\n    vlist = j['data']['list']\n    for index in range(len(vlist)):\n        img = vlist[index]['coverVertical']\n        if img[:2] != 'ht':\n            if img[:2] == '//':\n                img = 'http:'+img\n            else:\n                img = 'http://qinmei.video' +img\n        videoitem = {}\n        videoitem['name'] =  vlist[index]['title']\n        videoitem['href'] =  vlist[index]['slug']\n        videoitem['thumb'] = img\n        videos.append(videoitem)\n    return videos\n\n#柠檬瞬间\ndef get_ningmoe_categories():\n    #return [{'name':'本月热门','link':'https://www.ningmoe.com/api/get_hot_bangumi'}]\n    return [{'name':'2020年1月','link':'https://www.ningmoe.com/static/bangumi/bangumi.json'},\n            {'name':'2019年10月','link':'https://www.ningmoe.com/api/get_hot_bangumi'},\n            {'name':'2019年7月','link':'https://www.ningmoe.com/api/get_hot_bangumi'},\n            {'name':'2019年4月','link':'https://www.ningmoe.com/api/get_hot_bangumi'},\n            {'name':'2019年1月','link':'https://www.ningmoe.com/api/get_hot_bangumi'}]\n\ndef get_ningmoe_videos(url,page):\n    #爬视频列表的\n    videos = []\n    r = get_html(url)\n    j = json.loads(r)\n    for index in range(len(j)):\n        for i in range(len(j[index])):\n            videoitem = {}\n            videoitem['name'] =  j[index][i]['title']\n            if 'zh-Hans' in j[index][i]['titleTranslate']:\n                videoitem['name'] =  j[index][i]['titleTranslate']['zh-Hans'][0]\n            \n            videoitem['href'] =  j[index][i]['bangumi_id']\n            videoitem['thumb'] = j[index][i]['cover']\n            videos.append(videoitem)\n\n\n    # data = str({'page': page, 'limit': 10})\n    # r = post_html(url,data)\n    # j = json.loads(r)\n    # bgmlist = j['data']\n    # for index in range(len(bgmlist)):\n    #     if bgmlist[index]['classification']['cn_name'] != '':\n    #         name = bgmlist[index]['classification']['cn_name']\n    #     else:\n    #         name = bgmlist[index]['classification']['en_name']\n    #     videoitem = {}\n    #     videoitem['name'] =  name\n    #     videoitem['href'] =  bgmlist[index]['bangumi_id']\n    #     videoitem['thumb'] = bgmlist[index]['classification']['bangumi_cover']\n    #     videos.append(videoitem)\n    return videos\n\ndef get_ningmoe_source(url):\n    #爬视频列表的\n    videos = []\n    apiurl = 'https://www.ningmoe.com/api/get_bangumi'\n    data = str({'bangumi_id':url})\n    r = post_html(apiurl,data)\n    j = json.loads(r)\n    vlist = j['data']['posts']\n    sourcelist = []\n    s1dict = {}\n    s2dict = {}\n    for index in range(len(vlist)):\n        if vlist[index]['url'] != '':\n            s1dict[vlist[index]['eps_name']] = vlist[index]['url']\n        if vlist[index]['bak_url'] != '':\n            s2dict[vlist[index]['eps_name']] = vlist[index]['bak_url']\n    sourcelist.append(s1dict)\n    sourcelist.append(s2dict)\n    videoitem = {}\n    videoitem['name'] = '播放线路1'\n    videoitem['href'] = str(sourcelist[0])\n    videos.append(videoitem)\n    videoitem = {}\n    videoitem['name'] = '播放线路2'\n    videoitem['href'] = str(sourcelist[1])\n    videos.append(videoitem)\n    tmp['bghtml'] = r\n    return videos\n\ndef get_ningmoe_mp4info(url):\n    rtext = tmp['bghtml']\n    infodict={}\n    \n    j = json.loads(rtext)\n    vcount = j['data']['video_total_count']\n    infodict['countPlay'] = int(vcount)\n    vinfo = j['data']['bangumi']\n    infodict['originaltitle'] = vinfo['en_name']\n    infodict['plot'] = vinfo['description']\n    infodict['premiered'] = vinfo['air_date']\n\n    infodict['title'] = vinfo['cn_name']\n\n    return infodict\n\ndef get_ningmoe_mp4(url):\n    if url.find('kingsnug.cn') != -1:\n        apiurl = 'https://www.ningmoe.com/api/get_real_yun_url'\n        data = str({'url':url})\n        r = post_html(apiurl,data=data)\n        j = json.loads(r)\n        try:\n            mp4 = j['data']['yun_url']\n        except KeyError:\n            dialog = xbmcgui.Dialog()\n            ok = dialog.ok('错误提示','查询链接失败')\n    else:\n        mp4 = url\n    return mp4\n\ndef get_ningmoe_search(keyword,page):\n    #爬视频列表的\n    videos = []\n    url = 'https://www.ningmoe.com/api/search'\n    data = str({'keyword': keyword, 'type': 'anime', 'bangumi_type': '', 'page': str(page), 'limit': 10})\n    r = post_html(url,data)\n    j = json.loads(r)\n    bgmlist = j['data']\n    for index in range(len(bgmlist)):\n        if bgmlist[index]['classification']['cn_name'] != '':\n            name = bgmlist[index]['classification']['cn_name']\n        else:\n            name = bgmlist[index]['classification']['en_name']\n        videoitem = {}\n        videoitem['name'] =  name\n        videoitem['href'] =  bgmlist[index]['bangumi_id']\n        videoitem['thumb'] = bgmlist[index]['classification']['bangumi_cover']\n        videos.append(videoitem)\n    return videos\n\n    #8chongying\ndef get_iafuns_categories():\n    return [{'name':'2020新番','link':'http://iafuns.com/catalog?year=2020'},\n            {'name':'2019新番','link':'http://iafuns.com/catalog?year=2019'}]\n\ndef get_iafuns_videos(url,page):\n    #爬视频列表的\n    videos = []\n    r = get_html(url)\n    soup = BeautifulSoup(r, 'html.parser')\n    li = soup.find_all('li',class_='col-lg-2 col-md-3 col-sm-3 col-4 st_col position-relative')\n    for index in range(len(li)):\n        videoitem = {}\n        videoitem['name'] =  li[index].h6.text\n        videoitem['href'] =  'http://iafuns.com' + li[index].a['href']\n        videoitem['thumb'] = 'http:' + li[index].img['data-src']\n        videos.append(videoitem)\n    return videos\n\ndef get_iafuns_source(url):\n    #爬视频列表的\n    videos = []\n    r = get_html(url)\n    soup = BeautifulSoup(r, 'html.parser')\n    ul = soup.find('ul',class_='nav nav-tabs flex-row flex-nowrap')\n    li = ul.find_all('li')\n    sourcelist = []\n    for index in range(len(li)):\n        sce = li[index].a\n        sce1 = sce.text\n        videoitem = {}\n        videoitem['name'] = sce1.encode('utf-8')\n\n        u = soup.find('div',id=sce['aria-controls'][1:])\n        l = u.find_all('li')\n        duopdict = {}\n        for index in range(len(l)):\n            if l[index].a.text.strip() in duopdict:\n                duopdict[l[index].a.text.strip() + str(index)] = l[index]['play_cfg']+ ':' +l[index]['play_id']\n            else:\n                duopdict[l[index].a.text.strip()] = l[index]['play_cfg']+ ':' +l[index]['play_id']\n        videoitem['href'] = str(duopdict)\n        videos.append(videoitem)\n  \n    tmp['bghtml'] = r\n    return videos\n\ndef get_iafuns_mp4info(url):\n    rtext = tmp['bghtml']\n    infodict={}\n\n    soup = BeautifulSoup(rtext, 'html.parser')\n    title = soup.find('li',class_='breadcrumb-item active')\n    infodict['title'] = title.text\n\n    tb = soup.find('table')\n    tr = tb.find_all('tr')\n    for index in range(len(tr)):\n        key = tr[index].th.text\n        key = key.encode('utf-8')\n        key = key.replace('原名','originaltitle')\n        key = key.replace('别名','tag')\n        key = key.replace('地区','country')\n        key = key.replace('首播','year')\n        key = key.replace('原作','writer')\n        key = key.replace('制作','studio')\n        key = key.replace('剧情','genre')\n        key = key.replace('状态','status')\n        key = key.replace('系列','sorttitle')\n        value = tr[index].td.text\n        if value.find('/') != -1:\n            value = value.split('/')\n        else:\n            if value.find(',') != -1:\n                value = value.split(',')\n        infodict[key] = value\n    p = soup.find('span')\n    infodict['plot'] = p.text\n\n    return infodict\n\n\ndef get_iafuns_mp4(url):\n    url = url.split(':')\n    if url[0][:2].find('qz') != -1:\n        apiurl = 'http://iafuns.com/_get_e_i?url=' + url + '&quote=1'\n    else:\n        if url[0][:4].find('quan') != -1:\n            apiurl = 'http://iafuns.com/_get_qn?id=' +url[1]\n        else:\n            apiurl = 'http://iafuns.com/_get_raw?id=' +url[1]\n            # else:\n            #     dialog = xbmcgui.Dialog()\n            #     ok = dialog.ok('错误提示', '不支持的视频格式，请向插件作者反馈 播放视频名字 和 播放线路')\n    \n    r = get_html(apiurl)\n\n    if apiurl.find('_get_qn') != -1 or apiurl.find('_get_raw') != -1:\n        if not re.search('https?',r):\n            mp4 = 'http:' + r\n        else:\n            mp4 = r\n        if re.search('ck-qq.com',r):\n            r1 = get_html(r)\n            str1 = r1.find('url:')\n            str2 = r1.find('type:')\n            mp4 = r1[str1+4:str2].strip()\n            mp4 = mp4[1:-2]\n    if apiurl.find('_get_e_i') != -1:\n        j = json.loads(r)\n        mp4 = j['result']\n    #dialog = xbmcgui.Dialog()\n    #dialog.textviewer('错误提示', mp4)\n    return mp4\n\ndef get_iafuns_search(keyword,page):\n    #爬视频列表的\n    videos = []\n    url = 'http://iafuns.com/search?q=' + keyword\n    r = get_html(url)\n    soup = BeautifulSoup(r, 'html.parser')\n    li = soup.find_all('div',class_='col-lg-2 col-md-3 col-sm-3 col-4 st_col')\n    for index in range(len(li)):\n        videoitem = {}\n        videoitem['name'] =  li[index].h6.text\n        videoitem['href'] =  'http://iafuns.com' + li[index].a['href']\n        videoitem['thumb'] = 'http:' + li[index].img['data-src']\n        videos.append(videoitem)\n    return videos\n\n#silisili\ndef get_silisili_categories():\n    return [{'name':'最新更新','link':'http://www.silisili.in/zxgx.html'},\n            {'name':'日本动漫','link':'http://www.silisili.in/riyu/'},\n            {'name':'国产动漫','link':'http://www.silisili.in/guoyu/'}]\n\ndef get_silisili_videos(url,page):\n    videos = []\n    if int(page) != 1 and url != 'http://www.silisili.in/zxgx.html':\n        url = url + 'index_'+str(page)+'.html'\n    r = get_html(url)\n    soup = BeautifulSoup(r, 'html.parser')\n    if url == 'http://www.silisili.in/zxgx.html':\n        #最新更新\n        li = soup.find_all('div',class_='ggwp')\n        for index in range(len(li)):\n            videoitem = {}\n            videoitem['name'] =  li[index].a['title']\n            videoitem['href'] =  'http://www.silisili.in'+li[index].a['href']\n            videoitem['thumb'] = li[index].a.img['src']\n            videos.append(videoitem)\n    else:\n        base = soup.find('div',class_='anime_list')\n        # dialog = xbmcgui.Dialog()\n        # dialog.textviewer('评论区',str(url))\n        li = base.find_all('dl')\n        for index in range(len(li)):\n            videoitem = {}\n            videoitem['name'] =  li[index].dd.h3.text\n            videoitem['href'] =  'http://www.silisili.in'+li[index].dt.a['href']\n            videoitem['thumb'] = li[index].dt.a.img['src'] \n            videos.append(videoitem)\n    \n    return videos\n\ndef get_silisili_source(url):\n    #爬视频列表的\n    videos = []\n    r = get_html(url)\n    soup = BeautifulSoup(r, 'html.parser')\n    base = soup.find('div',class_='swiper-slide')\n    li = base.find_all('li')\n    sourcelist = []\n    duopdict = {}\n    for index in range(len(li)):\n        duopdict[li[index].a.em.span.text] = 'http://www.silisili.in' + li[index].a['href']\n\n    sourcelist.append(duopdict)\n    videoitem = {}\n    videoitem['name'] = '播放线路1'\n    videoitem['href'] = str(sourcelist[0])\n    videos.append(videoitem)\n    tmp['bghtml'] = r\n    return videos\n\ndef get_silisili_mp4info(url):\n    rtext = tmp['bghtml']\n    infodict={}\n    soup = BeautifulSoup(rtext, 'html.parser')\n    base = soup.find('div',class_='detail con24 clear')\n\n    infodict['title'] = base.h1.text\n    li = base.find_all('div',class_='d_label')\n    li2 = base.find_all('div',class_='d_label2')\n    for index in range(len(li)):\n        key = li[index].b.text\n        key = key.encode('utf-8')\n        key = key.replace('地区：','country')\n        key = key.replace('标签：','genre')\n        key = key.replace('状态：','status')\n        key = key.replace('年代：','year')\n\n        if li[index].a:\n            value = li[index].a.text\n        else:\n            text = li[index].text\n            text = text.replace(li[index].b.text,'')\n            value = text\n        value = value.encode('utf-8')\n        if value.find('年') != -1:\n            value = value.split('年')\n            value = value[0]\n        else:\n            if value.find(',') != -1:\n                value = value.split(',')\n        \n        infodict[key] = value\n    \n    vinfo = li2[1].text\n    vinfo = vinfo.encode('utf-8')\n    vinfo = vinfo.split('：')\n    infodict['plot'] = vinfo[1]\n\n\n    return infodict\n\ndef get_silisili_mp4(url):\n    r = get_html(url)\n    soup = BeautifulSoup(r, 'html.parser')\n    mp4 = soup.find('iframe')\n    \n    if re.search('\\?http',mp4['src']):\n        mp4 = mp4['src'].split('?')\n        mp4 = mp4[1]\n    else:\n        r = get_html(mp4['src'])\n        soup = BeautifulSoup(r, 'html.parser')\n        mp4 = soup.find('source')['src']\n    # dialog = xbmcgui.Dialog()\n    # dialog.textviewer('错误提示', str(mp4.encode('utf-8')))\n    return mp4\n\ndef get_silisili_search(keyword,page):\n    videos = []\n    if int(page) == 1:\n        url = 'http://www.silisili.in/e/search/index.php'\n        data = str({'show':'title','tbname':'movie','tempid':1,'keyboard':keyword,'button':'搜索'})\n        r = post_html(url,data)\n    else:\n        url = 'http://www.silisili.in/e/search/result/index.php?page=' + str(int(page)-1) + '&searchid=' + str(tmp['silisearchid'])\n        r = get_html(url)\n    soup = BeautifulSoup(r, 'html.parser')\n    div = soup.find('div',class_='page')\n\n    if re.search('(?<=searchid=)\\d+',div.a['href']) and int(page) == 1:\n        searchid = re.search('(?<=searchid=)\\d+',div.a['href']).group()\n        tmp['silisearchid'] = searchid\n    base = soup.find('div',class_='anime_list')\n    \n    li = base.find_all('dl')\n    for index in range(len(li)):\n        videoitem = {}\n        videoitem['name'] =  li[index].dd.h3.text\n        videoitem['href'] =  'http://www.silisili.in'+li[index].dt.a['href']\n        videoitem['thumb'] = li[index].dt.a.img['src'] \n        videos.append(videoitem)\n    \n    return videos\n\n#srsg\ndef get_srsg_categories():\n    return [{'name':'全部番剧','link':'https://guguani.me/api/v1/bangumi'},\n            {'name':'每日推荐','link':'https://guguani.me/api/v1/carousel'}]\n\ndef get_srsg_videos(url,page):\n    #爬视频列表的\n    videos = []\n    r = get_html(url,cf=1)\n    j = json.loads(r)\n    if re.search('bangumi',url):\n        for index in range(len(j['result'])):\n            i = len(j['result']) - index - 1\n            videoitem = {}\n            videoitem['name'] = j['result'][i]['bangumi']['title']\n            videoitem['thumb'] =  'https://cdn-guguani-img.fantasy-love.top/'+j['result'][i]['cover_v']['path']\n            videoitem['href'] = str(j['result'][i]['bangumi']['id'])\n            videoitem['info'] = {'plot':j['result'][i]['bangumi']['description'],'year':j['result'][i]['quarterly']['year']}\n            videos.append(videoitem)\n    else:\n        for index in range(len(j['result'])):\n            videoitem = {}\n            videoitem['name'] = j['result'][index]['title']\n            videoitem['thumb'] =  'https://cdn-guguani-img.fantasy-love.top/'+j['result'][index]['cover_src']\n            videoitem['href'] = re.search('\\d+',j['result'][index]['link']).group()\n            videos.append(videoitem)\n        r = get_html('https://guguani.me/api/v1/recommend?pageNo=1&pageSize=50',cf=1)\n        j = json.loads(r)\n        for index in range(len(j['result'])):\n            videoitem = {}\n            videoitem['name'] = j['result'][index]['title']\n            videoitem['thumb'] =  'https://cdn-guguani-img.fantasy-love.top/'+j['result'][index]['cover_v']\n            videoitem['href'] = j['result'][index]['id']\n            videos.append(videoitem)\n    return videos\n\ndef get_srsg_source(url):\n    #爬视频列表的\n    videos = []\n    scraper = cfscrape.create_scraper()\n    r = get_html('https://guguani.me/api/v1/episodes/' +url,cf=1)\n\n\n    j = json.loads(r)\n    sclist = []\n    duopdict = {}\n    try:\n        for index in range(len(j)):\n            duopdict[j[index]['title']] = j[index]['id']\n        sclist.append(duopdict)\n    except TypeError:\n        dialog = xbmcgui.Dialog()\n        dialog.textviewer('错误提示','没有视频')\n\n\n    \n    videoitem = {}\n    videoitem['name'] = '播放线路1'\n    videoitem['href'] = str(sclist[0])\n    videos.append(videoitem)\n    scraper = cfscrape.create_scraper()\n    r = get_html('https://guguani.me/api/v1/bangumi/meta/' +url,cf=1)\n    tmp['bghtml'] = r\n    return videos\n\ndef get_srsg_mp4info(url):\n    rtext = tmp['bghtml']\n    infodict={}\n    \n    j = json.loads(rtext)\n    infodict['title'] =sat(j['title'],sub=str({'期':'季'}))\n    infodict['plot'] =j['description']\n    tmp['bgimg'] ='https://cdn-guguani-img.fantasy-love.top/'+j['cover_v_src']\n    #播出时间\n    data = re.search(r'[0-9]{4}-[0-9]{2}-[0-9]{2}',j['broadcast_time']).group()\n    year = re.search(r'[0-9]{4}',j['broadcast_time']).group()\n    infodict['premiered'] = data\n    infodict['year'] = year\n    tag = []\n    for index in range(len(j['tags'])):\n        tag.append(j['tags'][index]['name'])\n    infodict['genre'] = tag\n\n    return infodict\n\ndef get_srsg_mp4(url):\n    j = get_html('https://guguani.me/api/v1/ep/' + url,cf=1)\n    j = json.loads(j)\n    mp4 = 'https://cdn-guguani-tv.fantasy-love.top/' + j['parts'][0]['resources']['path'][:-3]+ 'm3u8'\n    return mp4\n\n#tucao.one\ndef get_tucao_categories():\n    return [{'name':'连载新番','link':'http://www.tucao.one/list/11/'},\n            {'name':'OAD·OVA·剧场版','link':'http://www.tucao.one/list/26/'},\n            {'name':'完结番组','link':'http://www.tucao.one/list/10/'}]\n\ndef get_tucao_videos(url,page):\n    #爬视频列表的\n    videos = []\n    if int(page) != 1:\n        url = url + 'index_' + str(page) + '.html'\n    html = get_html(url,cf=1)\n    soup = BeautifulSoup(html,'html.parser')\n    \n    ullist = soup.find('div',class_='list')\n    videolist = ullist.find_all('li')\n    for index in range(len(videolist)):\n        a = videolist[index].find('a',class_='pic')\n        videoitem = {}\n        videoitem['name'] =  a.img['alt']\n        videoitem['thumb'] =  a.img['src']\n        videoitem['href'] = a['href']\n        videos.append(videoitem)\n    return videos\n\ndef get_tucao_source(url):\n    videos = []\n    pDialog = xbmcgui.DialogProgress()\n    pDialog.create('加载中', '初始化')\n    pDialog.update(33, '尝试爬取网页数据...')\n    html = get_html(url,cf=1)\n    \n    sclist = []\n\n    str1 = html.find('<li>type=video')\n    str2 = html.find('<script language=\"javascript\">$(document).ready(function(){$(\"#shadow\")')\n    tmpstr = html[str1:str2]\n    str3 = tmpstr.find('</li><li>')\n    duopstr = tmpstr[4:str3]\n    duoplist = duopstr.split('**')\n    try:\n        duopdict = {}\n        for index in range(len(duoplist)):\n            info = duoplist[index].split('|')\n            duopdict[info[1].decode('utf-8')] = info[0][16:]\n        sclist.append(duopdict)\n    except:\n        pDialog.update(66, '爬取失败，使用官方API接口再次尝试...(一般版权原因404的番剧可以用api爬到)')\n        #尝试json接口\n        hid = re.search('(?<=play/h)[0-9]+',url).group()\n        apiurl = 'http://www.tucao.one/api_v2/view.php?apikey=25tids8f1ew1821ed&hid=' +str(hid)\n        r = get_html(apiurl,cf=1)\n        j = json.loads(r)\n        duoplist = j['result']['video']\n        duopdict = {}\n        for index in range(len(duoplist)):\n            duopdict[duoplist[index]['title']] = duoplist[index]['file']\n        sclist.append(duopdict)\n    \n    videoitem = {}\n    videoitem['name'] = '播放线路1'\n    videoitem['href'] = str(sclist[0])\n    videos.append(videoitem)\n\n    tmp['bghtml'] = html\n    return videos\n\ndef get_tucao_mp4info(url):\n    rtext = tmp['bghtml']\n    infodict={}\n    try:\n        j = json.loads(rtext)\n        infodict['plot'] = j['description']\n    except:\n        soup = BeautifulSoup(rtext, 'html.parser')\n        plot = soup.find('div',class_='show_content')\n        infodict['plot'] = re.sub('\\n\\n\\n\\n','',plot.text)\n    return infodict\n\ndef get_tucao_mp4(url):\n    mp4 = url\n    return mp4\n\ndef get_tucao_search(keyword,page):\n    videos = []\n    if int(page) == 1:\n        url = 'https://www.tucao.one/index.php?m=search&c=index&a=init2&catid=&time=&order=&username=&tag=&q=' +keyword\n    else:\n        url = 'https://www.tucao.one/index.php?m=search&c=index&a=init2&catid=&time=&order=&username=&tag=&q=' +keyword + '&page=' +str(page)\n    html = get_html(url,cf=1)\n    soup = BeautifulSoup(html,'html.parser')\n    \n    videolist = soup.find_all('div',class_='list')\n    for index in range(len(videolist)):\n        img = videolist[index].find('div',class_='pic')\n        videoitem = {}\n        videoitem['name'] =  img.a.img['alt']\n        videoitem['thumb'] =  img.a.img['src']\n        videoitem['href'] = img.a['href']\n        videos.append(videoitem)\n    return videos\n\n#clicli.me\ndef get_cliclime_categories():\n    return [{'name':'编辑推荐','link':'https://api.clicli.us/posts?status=public&sort=&tag=%E6%8E%A8%E8%8D%90&uid=&page=1&pageSize=10'},\n            {'name':'新番表','link':'https://api.clicli.us/posts?status=nowait&sort=%E6%96%B0%E7%95%AA&tag=&uid=&page=1&pageSize=100'},\n            {'name':'排行','link':'https://api.clicli.us/rank'},\n            {'name':'最近更新','link':'https://api.clicli.us/posts?status=public&sort=bgm&tag=&uid=&page=1&pageSize=30'}]\n\ndef get_cliclime_videos(url,page):\n    #爬视频列表的\n    videos = []\n    html = get_html(url)\n    try:\n        j = json.loads(html)\n        for index in range(len(j['posts'])):\n            con = j['posts'][index]['content']\n            img = re.search('!\\\\[[^\\\\]]+\\\\]\\\\([^\\\\)]+\\\\)', con)\n            videoitem = {}\n            videoitem['name'] = j['posts'][index]['title']\n            videoitem['href'] = j['posts'][index]['id']\n            videoitem['thumb'] = img.group()[7:-1]\n            text = j['posts'][index]['content']\n            text = re.sub('\\!\\[.*?\\)','',text) #处理markdown图片\n            text = re.sub('[#]+[\\s]+','',text) #正则h1 - h4\n            text = re.sub('[?<=\\*\\*](.*?)[?=\\*\\*]',r'\\1',text)\n            text = re.sub('>[\\s]+','',text)\n            text = re.sub('<.*?>.*?</.*?>','',text)\n            text = re.sub('\\[(\\S+?)\\]\\(\\S+\\)',r'[COLOR green]\\1[/COLOR]\\n',text)\n            videoitem['info'] = {'plot':text,'cast':[(j['posts'][index]['uname'],j['posts'][index]['uqq'])],'genre':j['posts'][index]['tag'].strip().split(u' ')}\n            videos.append(videoitem)  \n    except ValueError:\n        pass\n    return videos\n\ndef get_cliclime_source(url):\n    videos = []\n    html = get_html('https://api.clicli.us/videos?pid=' + str(url) +'&page=1&pageSize=150')\n    \n    sclist = []\n    try:\n        duopdict = {}\n        j = json.loads(html)\n        pnum = 1\n        for index in range(len(j['videos'])):\n            #pp = pp.encode('utf-8')\n            if j['videos'][index]['title'] != '':\n                duopdict['P ' + str(j['videos'][index]['oid']) + '  ' + j['videos'][index]['title']] = j['videos'][index]['content']\n            else:\n                duopdict['P ' + str(j['videos'][index]['oid'])] = j['videos'][index]['content']\n            pnum += 1  \n        sclist.append(duopdict)\n        videoitem = {}\n        videoitem['name'] = '播放线路1'\n        videoitem['href'] = str(sclist[0])\n        videos.append(videoitem)\n\n        tmp['bghtml'] = str(url)\n        \n    except IndexError:\n        pass\n    except TypeError:\n        html = get_html('https://api.clicli.us/post/' + str(url))\n        j = json.loads(html)\n        text = j['result']['content']\n        text = re.sub('\\!\\[.*?\\)',u'【图片】',text)\n        text = re.sub('#+([\\s\\S]*?)\\n',r'[COLOR red]\\1[/COLOR]\\n',text)\n        text = re.sub('>+([\\s\\S]*?)\\n',r'[COLOR pink]\\1[/COLOR]\\n',text)\n        text = re.sub('\\*\\*([\\s\\S]*?)\\*\\*',r'[COLOR yellow]\\1[/COLOR]\\n',text)\n        text = re.sub('\\[[A-Za-z0-9\\.]+?\\]([\\s\\S]*?)\\([A-Za-z0-9\\.]+?\\)',r'[COLOR green]\\1[/COLOR]\\n',text)\n        dialog = xbmcgui.Dialog()\n        dialog.textviewer(j['result']['title'], text)\n    return videos\n    \ndef get_cliclime_mp4info(url):\n    infodict={}\n    url = tmp['bghtml']\n    html = get_html('https://api.clicli.us/post/' + url)\n    j = json.loads(html)\n    text = j['result']['content']\n    text = re.sub('\\!\\[.*?\\)','',text)\n    text = re.sub('#+ ','',text)\n    text = re.sub('> ','',text)\n    text = re.sub('\\[(\\S+?)\\]\\(\\S+\\)',r'[COLOR green]\\1[/COLOR]\\n',text)\n    \n    infodict['plot'] = text\n    infodict['title'] = j['result']['title']\n    infodict['genre'] = j['result']['tag'].strip().split(u' ')\n    return infodict\n\ndef get_cliclime_mp4(url):\n    if url[:4] != 'http':\n        url = 'https://jx.clicli.us/jx?url=' + url\n        html = get_html(url)\n        try:\n            j = json.loads(html)\n            mp4 = j['url'] \n        except ValueError:\n            pass\n    else:\n        mp4 = url\n    return mp4\n\ndef get_cliclime_search(keyword,page):\n    #爬视频列表的\n    videos = []\n    html = get_html('https://api.clicli.us/search/posts?key=' + keyword)\n    try:\n        j = json.loads(html)\n        for index in range(len(j['posts'])):\n            con = j['posts'][index]['content']\n            img = re.search('!\\\\[[^\\\\]]+\\\\]\\\\([^\\\\)]+\\\\)', con)\n            videoitem = {}\n            videoitem['name'] = j['posts'][index]['title']\n            videoitem['href'] = j['posts'][index]['id']\n            videoitem['thumb'] = img.group()[7:-1]\n            text = j['posts'][index]['content']\n            text = re.sub('\\!\\[.*?\\)','',text) #处理markdown图片\n            text = re.sub('[#]+[\\s]+','',text) #正则h1 - h4\n            text = re.sub('[?<=\\*\\*](.*?)[?=\\*\\*]',r'\\1',text)\n            text = re.sub('>[\\s]+','',text)\n            text = re.sub('<.*?>.*?</.*?>','',text)\n            text = re.sub('\\[(\\S+?)\\]\\(\\S+\\)',r'[COLOR green]\\1[/COLOR]\\n',text)\n            videoitem['info'] = {'plot':text,'cast':[(j['posts'][index]['uname'],j['posts'][index]['uqq'])],'genre':j['posts'][index]['tag'].strip().split(u' ')}\n            videos.append(videoitem)  \n    except ValueError:\n        pass\n    return videos\n#5dm.tv\ndef get_5dmtv_categories():\n    return [{'name':'新番时间表','link':'https://www.5dm.tv/timeline'},\n            {'name':'连载新番','link':'https://www.5dm.tv/video/bangumi'},\n            {'name':'完结番组','link':'https://www.5dm.tv/video/end'},\n            {'name':'剧场•OVA','link':'https://www.5dm.tv/video/bgm/ova'}]\n\ndef get_5dmtv_videos(url,page):\n    #爬视频列表的\n    videos = []\n    if int(page) != 1:\n        url = url + '/page/' +str(page)\n    html = get_html(url,cf=1)\n    soup = BeautifulSoup(html, 'html.parser')\n    vids = soup.find_all('div',class_='item-thumbnail')\n\n    tips = soup.find_all('div',class_='qv_tooltip')\n    \n    for index in range(len(vids)):\n        videoitem = {}\n        title = vids[index].a.img['alt']\n\n        videoitem['info'] = {'plot':re.sub('<.*?>','',tips[index]['title'].replace(title,''))}\n        if vids[index].span:\n            title += u' - ' + vids[index].span.text\n        videoitem['name'] = title\n        videoitem['href'] = vids[index].a['href']\n        videoitem['thumb'] = 'https://www.5dm.tv' + vids[index].a.img['data-original']\n        \n        videos.append(videoitem)  \n    return videos\n\ndef get_5dmtv_source(url):\n    videos = []\n    html = get_html(url,cf=1)\n    soup = BeautifulSoup(html, 'html.parser')\n    #sclist = []\n    duopdict = {}\n    if soup.find('iframe',id='player'):\n        sourcelist = soup.find_all('tr')\n        for index in range(len(sourcelist)):\n            duopname = sourcelist[index].find('td',class_='multilink-title')\n            duoplist = sourcelist[index].find_all('a',class_='multilink-btn')\n            for index in range(len(duoplist)):\n                duopdict[duoplist[index].text] = duoplist[index]['href']\n            #sclist.append(duopdict)\n    \n            videoitem = {}\n            videoitem['name'] = duopname.text\n            videoitem['href'] = str(duopdict)\n            videos.append(videoitem)\n\n        tmp['bghtml'] = html\n    else:\n        dialog = xbmcgui.Dialog()\n        ok = dialog.ok('错误提示', '视频不存在！404！AWSL！')\n    return videos\n\ndef get_5dmtv_mp4info(url):\n    rtext = tmp['bghtml']\n    soup = BeautifulSoup(rtext, 'html.parser')\n    infodict={}\n\n    tag = soup.find('div',class_='item-tax-list')\n    tags = tag.find_all('a')\n    genres = []\n    for index in range(len(tags)):\n        genres.append(tags[index].text)\n    infodict['genre'] = genres\n\n    plot = soup.find('div',class_='item-content toggled')\n    ptext = plot.p.text\n    if plot.p.span:\n        pspan = plot.p.span.text\n        ptext = ptext.replace(pspan,'')\n    infodict['plot'] = ptext\n\n    return infodict\n\ndef get_5dmtv_mp4(url):\n    html = get_html(url,cf=1)\n    soup = BeautifulSoup(html, 'html.parser')\n    if soup.find('iframe',id='player'):\n        apiurl = soup.find('iframe',id='player')\n        mp4api = apiurl['src']\n        html1 = get_html(mp4api,cf=1)\n        mp4 = re.search('https?:\\/\\/..+\\.mp4',html1).group()\n        r = requests.head(mp4,stream=True)\n        mp4 = r.headers['Location']\n        # mp4 = get_html(mp4,mode='url')\n        \n        # str1 = html1.find('srcUrl={')\n        # str2 = html1.find('window.cid=')\n        # mp4 = html1[str1+15:str2-4]\n        # dialog = xbmcgui.Dialog()\n        # ok = dialog.ok('错误提示', mp4)\n    else:\n        dialog = xbmcgui.Dialog()\n        ok = dialog.ok('错误提示', '视频不存在！404！AWSL！')\n    return mp4\n\n#clicli.co\ndef get_cliclico_categories():\n    return [{'name':'番剧','link':'https://clicli.co/anime/'},\n            {'name':'电影','link':'https://clicli.co/pd/2'},\n            {'name':'美剧','link':'https://clicli.co/pd/3'},\n            {'name':'国漫','link':'https://clicli.co/pd/4'}]\n\ndef get_cliclico_videos(url,page):\n    #爬视频列表的\n    videos = []\n    html = get_html(url)\n    soup = BeautifulSoup(html,'html.parser')\n    \n    ullist = soup.find('div',class_='anime-list')\n    videolist = ullist.find_all('a')\n    for index in range(len(videolist)):\n        videoitem = {}\n        videoitem['name'] =  videolist[index].li.p.text\n        videoitem['thumb'] =  videolist[index].li.img['data-echo']\n        videoitem['href'] = 'https://clicli.co' + videolist[index]['href']\n        videos.append(videoitem)\n    return videos\n\ndef get_cliclico_source(url):\n    videos = []\n    av = re.search('av\\d+',url).group()\n    data = str({'av':av,'uas':'no'})\n    html = post_html('https://api.clicli.co/anime/index',data)\n    # dialog = xbmcgui.Dialog()\n    # dialog.textviewer('错误提示', str(av) + '\\n' + str(html.encode('utf-8')))\n    sclist = []\n\n    j = json.loads(html)\n    try:\n        duopdict = {}\n        for index in range(len(j['epi'])):\n            title = j['epi'][index]['title']\n            if j['epi'][index]['name'] != '':\n                title += ' - '+j['epi'][index]['name']\n            duopdict[title] = 'https://clicli.co/player/anime.php?av=' + av + '&num=' + str(j['epi'][index]['num'])\n        sclist.append(duopdict)\n    except IndexError:\n        pass\n    \n    videoitem = {}\n    videoitem['name'] = '播放线路1'\n    videoitem['href'] = str(sclist[0])\n    videos.append(videoitem)\n\n    tmp['bghtml'] = html\n    return videos\n\ndef get_cliclico_mp4(url):\n    r = get_html(url)\n    soup = BeautifulSoup(r,'html.parser')\n    mp4 = soup.find('e-player')\n    return mp4['src']\n\ndef get_cliclico_search(keyword,page):\n    videos = []\n    url = 'https://clicli.co/search?key=' +keyword\n    html = get_html(url)\n    soup = BeautifulSoup(html,'html.parser')\n    \n    ullist = soup.find('div',class_='cards')\n    videolist = ullist.find_all('a')\n    for index in range(len(videolist)):\n        videoitem = {}\n        videoitem['name'] =  videolist[index].li.p.text\n        videoitem['thumb'] =  videolist[index].li.img['data-echo']\n        videoitem['href'] = 'https://clicli.co' + videolist[index]['href']\n        videos.append(videoitem)\n    return videos\n\n#zzzfun\ndef zzzfun_fuckddos(url):\n    r = get_html(url)\n    if re.search('(?<=location.href = ).*?(?=;)',r.encode('utf-8')):\n        purl = re.search('(?<=location\\.href = ).*?(?=;)',r.encode('utf-8')).group()\n        # dialog = xbmcgui.Dialog()\n        # dialog.textviewer('错误提示', str(purl))\n        try:\n            purl = eval(purl)\n            r = get_html('http://www.zzzfun.com' + purl)\n        except:\n            pass\n    return r\n\ndef get_zzzfun_categories():\n    return [{'name':'本季新番','link':'http://www.zzzfun.com/vod-type-id-42'},\n            {'name':'日本动漫','link':'http://www.zzzfun.com/vod-type-id-1'},\n            {'name':'剧场版','link':'http://www.zzzfun.com/vod-type-id-3'},\n            {'name':'影视剧','link':'http://www.zzzfun.com/vod-type-id-4'}]\n\ndef get_zzzfun_videos(url,page):\n    #爬视频列表的\n    videos = []\n    if int(page) != 1:\n        url += '-page-' + str(page)\n    url += '.html'\n    html = zzzfun_fuckddos(url)\n\n    soup = BeautifulSoup(html,'html.parser')\n    \n    ullist = soup.find('ul',class_='search-result')\n    videolist = ullist.find_all('a')\n    for index in range(len(videolist)):\n        videoitem = {}\n        videoitem['name'] =  videolist[index].find('div',class_='title-big').text\n        videoitem['thumb'] =  videolist[index].find('img')['src']\n        videoitem['href'] = 'http://www.zzzfun.com' + videolist[index]['href']\n        videoitem['info'] = {'plot':videolist[index].find('div',class_='d-descr').text}\n        videos.append(videoitem)\n    return videos\n\ndef get_zzzfun_source(url):\n    videos = []\n    html = zzzfun_fuckddos(url)\n    soup = BeautifulSoup(html,'html.parser')\n    \n    duoplist = soup.find('div',class_='tag-slider').find_all('ul')\n    eplist = soup.find('div',class_='episode-wrap').find_all('ul')\n    # dialog = xbmcgui.Dialog()\n    # dialog.textviewer('错误提示', str(av) + '\\n' + str(html.encode('utf-8')))\n    sclist = []\n    \n    for index in range(len(duoplist)):\n        duopdict = {}\n        epli = eplist[index].find_all('li')\n        for i in range(len(epli)):\n            duopdict[epli[i].a.span.text] = 'http://www.zzzfun.com' + epli[i].a['href']\n        sclist.append(duopdict)\n\n        videoitem = {}\n        videoitem['name'] = duoplist[index].li.span.text\n        videoitem['href'] = str(sclist[index])\n        videos.append(videoitem)\n    tmp['bghtml'] = html\n    return videos\n\ndef get_zzzfun_mp4info(url):\n    infodict={}\n    html = tmp['bghtml']\n    soup = BeautifulSoup(html,'html.parser')\n    base = soup.find('div',class_='info-content')\n    title = base.find('div',class_='content-head').h1.text\n    infodict['title'] = title\n    info = base.find('div',class_='info-descr')\n    infodict['plot'] = info.text\n\n    text = base.find('div',class_='content-count').find_all('span',class_='count-item')\n    for index in range(len(text)):\n        span = text[index].text.split(u':')\n        if span[0].strip() == u'语言':\n            infodict['country'] = span[1]\n        if span[0].strip() == u'状态':\n            infodict['status'] = span[1]\n        if span[0].strip() == u'CV':\n            cast = text[index].find_all('a')\n            casts = []\n            for i in range(len(cast)):\n                casts.append((cast[i].text,u'CV'))\n\n            infodict['cast'] = casts\n    return infodict\n\ndef get_zzzfun_mp4(url):\n    r = zzzfun_fuckddos(url)\n    js = re.search(u'(?<=var player_data=).*?(?=</script>)',r.encode('utf-8')).group()\n    j = json.loads(js)\n    deco = base64.b64decode(j['url'])\n    # dialog = xbmcgui.Dialog()\n    # ok = dialog.ok('错误提示', deco)\n    \n    html = zzzfun_fuckddos('http://www.zzzfun.com/static/danmu/zone.php?' + unescape(deco))\n    soup = BeautifulSoup(html,'html.parser')\n    # dialog = xbmcgui.Dialog()\n    # dialog.textviewer('错误提示',html.encode('utf-8'))\n    mp4 = soup.find('source')['src']\n    return mp4\n\ndef get_zzzfun_search(keyword,page):\n    #爬视频列表的\n    videos = []\n    \n    if int(page) == 1:\n        url = 'http://www.zzzfun.com/vod-search.html?wd=' + keyword\n    else:\n        url = 'http://www.zzzfun.com/vod-search-page-' + str(page) + '-wd-' + keyword + '.html'\n    html = zzzfun_fuckddos(url)\n\n    soup = BeautifulSoup(html,'html.parser')\n    \n    ullist = soup.find('ul',class_='show-list')\n    videolist = ullist.find_all('li')\n    for index in range(len(videolist)):\n        videoitem = {}\n        videoitem['name'] =  videolist[index].find('h2').text\n        videoitem['thumb'] =  videolist[index].find('img')['src']\n        videoitem['href'] = 'http://www.zzzfun.com' + videolist[index].a['href']\n        videoitem['info'] = {'plot':videolist[index].find('dd',class_='juqing').p.text}\n        videos.append(videoitem)\n    return videos\n\n#dmd8\ndef dmd8_fuckddos(url,data=''):\n    if data == '':\n        r = get_html(url)\n    else:\n        r = post_html(url,data)\n    # dialog = xbmcgui.Dialog()\n    # dialog.textviewer('错误提示', str(r.encode('utf-8')))\n    if re.search('(?<=location.href = ).*?(?=;)',r.encode('utf-8')):\n        purl = re.search('(?<=location\\.href = ).*?(?=;)',r.encode('utf-8')).group()\n        # dialog = xbmcgui.Dialog()\n        # dialog.textviewer('错误提示', str(purl))\n        try:\n            purl = eval(purl)\n            r = get_html('http://www.dmd8.com' + purl)\n        except:\n            pass\n    return r\n\ndef get_dmd8_categories():\n    return [{'name':'新番连载','link':'http://www.dmd8.com/type/1-'},\n            {'name':'完结日漫','link':'http://www.dmd8.com/type/3-'},\n            {'name':'热门国漫','link':'http://www.dmd8.com/type/4-'},\n            {'name':'剧场动漫','link':'http://www.dmd8.com/type/16-'}]\n\ndef get_dmd8_videos(url,page):\n    #爬视频列表的\n    videos = []\n    url += str(page) + '.html'\n    html = dmd8_fuckddos(url)\n    \n\n    soup = BeautifulSoup(html,'html.parser')\n    \n    \n    videolist = soup.find_all('div',class_='cn_box2')\n    for index in range(len(videolist)):\n        videoitem = {}\n        videoitem['name'] =  videolist[index].find('a',class_='B font_16').text\n        videoitem['thumb'] =  videolist[index].find('img')['src']\n        videoitem['href'] = 'http://www.dmd8.com' + videolist[index].find('a',class_='B font_16')['href']\n        videos.append(videoitem)\n    return videos\n\ndef get_dmd8_source(url):\n    videos = []\n    html = dmd8_fuckddos(url)\n    soup = BeautifulSoup(html,'html.parser')\n\n    eplist = soup.find_all('ul',class_='mn_list_li_movie')\n    # dialog = xbmcgui.Dialog()\n    # dialog.textviewer('错误提示', str(av) + '\\n' + str(html.encode('utf-8')))\n    sclist = []\n    \n    for index in range(len(eplist)):\n        duopdict = {}\n        epli = eplist[index].find_all('li')\n        for i in range(len(epli)):\n            duopdict[epli[i].a.text] = 'http://www.dmd8.com' + epli[i].a['href']\n        sclist.append(duopdict)\n\n        videoitem = {}\n        videoitem['name'] = '线路'+str(index+1)\n        videoitem['href'] = str(sclist[index])\n        videos.append(videoitem)\n    tmp['bghtml'] = html\n    return videos\n\n# def get_dmd8_mp4info(url):\n#     infodict={}\n#     html = tmp['bghtml']\n#     soup = BeautifulSoup(html,'html.parser')\n#     base = soup.find('div',class_='info-content')\n#     title = base.find('div',class_='content-head').h1.text\n#     infodict['title'] = title\n#     info = base.find('div',class_='info-descr')\n#     infodict['plot'] = info.text\n\n#     text = base.find('div',class_='content-count').find_all('span',class_='count-item')\n#     for index in range(len(text)):\n#         span = text[index].text.split(u':')\n#         if span[0].strip() == u'语言':\n#             infodict['country'] = span[1]\n#         if span[0].strip() == u'状态':\n#             infodict['status'] = span[1]\n#         if span[0].strip() == u'CV':\n#             cast = text[index].find_all('a')\n#             casts = []\n#             for i in range(len(cast)):\n#                 casts.append((cast[i].text,u'CV'))\n\n#             infodict['cast'] = casts\n#     return infodict\n\ndef get_dmd8_mp4(url):\n    r = dmd8_fuckddos(url)\n    maccms = unescape(re.search(u'(?<=mac_url\\=unescape\\(\\').*?(?=\\'\\);)',r.encode('utf-8')).group())\n    rmac = re.search('(?<=-)([0-9]+)-([0-9]+)(?=.html)',url)\n    duopnum = int(rmac.group(1))\n    pnum = int(rmac.group(2))\n    if re.search('$$$',maccms):\n        duopall=maccms.split('$$$')\n        duop = duopall[duopnum-1]\n        duop = duop.split('#')\n    else:\n        duop = maccms.split('#')\n\n    mp4 = duop[pnum-1].split('$')[1]\n    if mp4[:4] != 'http':\n        mp4 = re.search('[0-9]{4}_[0-9a-z]+',mp4).group()\n        r = dmd8_fuckddos('http://www.dmd8.com/kongjian/?url=' + mp4)\n        mp4 = re.search('(?<=var url = \\').*?(?=\\';)',r).group()\n    #     dialog = xbmcgui.Dialog()\n    #     ok = dialog.textviewer('错误提示', mp4)\n    \n    # dialog = xbmcgui.Dialog()\n    # ok = dialog.textviewer('错误提示', mp4)\n    return mp4\n\ndef get_dmd8_search(keyword,page):\n    #爬视频列表的\n    videos = []\n    \n    if int(page) == 1:\n        url = 'http://www.dmd8.com/index.php?m=vod-search'\n        html = dmd8_fuckddos(url,str({'wd':keyword}))\n    else:\n        url = 'http://www.dmd8.com/search-pg-' + str(page) + '-wd-'+ keyword + '.html'\n        html = dmd8_fuckddos(url)\n    dialog = xbmcgui.Dialog()\n    ok = dialog.textviewer('错误提示', html)\n    soup = BeautifulSoup(html,'html.parser')\n    \n    \n    videolist = soup.find_all('div',class_='cn_box2')\n    for index in range(len(videolist)):\n        videoitem = {}\n        videoitem['name'] =  videolist[index].find('a',class_='B font_16').text\n        videoitem['thumb'] =  videolist[index].find('img')['src']\n        videoitem['href'] = 'http://www.dmd8.com' + videolist[index].find('a',class_='B font_16')['href']\n        videos.append(videoitem)\n    return videos\n##########################################################\n###以下是核心代码区，看不懂的请勿修改\n##########################################################\n\n@plugin.route('/play/<name>/<url>/<mode>/')\ndef play(name,url,mode):\n    items = []\n    mp4 = get_mp4_mode(url,mode)\n    #head = '|User-Agent=Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.122 Safari/537.36'\n    try:\n        mp4info = get_mp4info_mode(url,mode)\n        mp4info['mediatype'] = 'video'\n        item = {'label': name,'path':mp4,'is_playable': True,'info':mp4info,'info_type':'video','thumbnail': tmp['bgimg'],'icon': tmp['bgimg']}\n    except NameError:\n        item = {'label': name,'path':mp4,'is_playable': True,'info_type':'video','thumbnail': tmp['bgimg'],'icon': tmp['bgimg']}\n    items.append(item)\n    return items\n\n#判断是否含数字\ndef hannum(x):\n    if re.search('\\d+',x):\n        return True\n    else:\n        return False\n\n#求差集，在B中但不在A中\ndef diff(listA,listB):\n    retD = list(set(listB).difference(set(listA)))\n    return retD\n\n@plugin.route('/duop/<name>/<list>/<mode>/')\ndef duop(name,list,mode):\n    list = eval(list)\n    sslist = sorted(list)\n    slist = filter(hannum,sslist)\n    slist = sorted(slist,key=lambda x:int(re.search('\\d+',x).group()),reverse = True)\n    slist = slist + diff(slist,sslist)\n    \n    kongge = ' - '\n    kongge = kongge.encode('utf-8')\n    items = []\n    for index in range(len(slist)):\n        item = {'label':slist[index].encode('utf-8'),'path':plugin.url_for('play',name=slist[index].encode('utf-8')+ kongge +name,url= list[slist[index]],mode=mode)}\n        items.append(item)\n    return items\n\n@plugin.route('/source/<name>/<url>/<img>/<mode>/')\ndef source(name,url,img,mode):\n    #dialog = xbmcgui.Dialog()\n    #ok = dialog.ok('错误提示', url)\n    sources = get_source_mode(url,mode)\n    tmp['bgimg'] = img\n    items = [{\n        'label': s['name'],\n        'path': plugin.url_for('duop', name=name,list=s['href'],mode=mode),\n    } for s in sources]\n\n    sorted_items = items\n    #sorted_items = sorted(items, key=lambda item: item['label'])\n    return sorted_items\n\n@plugin.route('/category/<name>/<url>/<mode>/<page>/')\ndef category(name,url,mode,page):\n    videos = get_videos_mode(url,mode,page)\n    items = []\n    if 'info' in videos[0]:\n        for video in videos:\n            info = video['info']\n            info['mediatype'] = 'video'\n            items.append({'label': video['name'],\n            'path': plugin.url_for('source', name=video['name'].encode('utf-8'),url=video['href'],img=video['thumb'], mode=mode),\n    \t'thumbnail': video['thumb'],\n            'icon': video['thumb'],\n            'info': info,\n        })\n    else:\n        for video in videos:\n            items.append({'label': video['name'],\n            'path': plugin.url_for('source', name=video['name'].encode('utf-8'),url=video['href'],img=video['thumb'], mode=mode),\n    \t'thumbnail': video['thumb'],\n            'icon': video['thumb'],\n        })\n\n    categories = get_categories()\n    for index in range(len(categories)):\n        if mode == categories[index]['link']:\n            if 'videos' in categories[index]:\n                if int(categories[index]['videos']) == len(videos):\n                    items.append({\n                        'label': '[COLOR yellow]下一页[/COLOR]',\n                        'path': plugin.url_for('category',name=name,url=url,mode=mode,page=int(int(page)+1)),\n                    })\n    return items\n\n\n@plugin.route('/home/<mode>/')\ndef home(mode):\n    categories = get_categories_mode(mode)\n    items = [{\n        'label': category['name'],\n        'path': plugin.url_for('category', name=category['name'] , url=category['link'],mode=mode,page=1),\n    } for category in categories]\n    try:\n        eval('get_' + mode + '_search')\n        items.append({\n            'label': '[COLOR yellow]搜索[/COLOR]',\n            'path': plugin.url_for('history',name='搜索',url='search',mode=mode),\n        })\n    except NameError:\n        pass\n    return items\n\n@plugin.route('/search/<value>/<page>/<mode>/')\ndef search(value,page,mode):\n    if value == 'null':\n        keyboard = xbmc.Keyboard('', '请输入搜索内容')\n        xbmc.sleep(1500)\n        keyboard.doModal()\n        hi = his['search']\n        if (keyboard.isConfirmed()):\n            keyword = keyboard.getText()\n            if keyword != '':\n                hi[keyword] = str(time.strftime(\"%Y-%m-%d %H:%M:%S\", time.localtime()))\n    else:\n        keyword = value\n    videos = get_search_mode(keyword,page,mode)\n    items = []\n    if videos != []:\n        if 'info' in videos[0]:\n            for video in videos:\n                info = video['info']\n                info['mediatype'] = 'video'\n                items.append({'label': video['name'],\n                'path': plugin.url_for('source', name=video['name'].encode('utf-8'),url=video['href'],img=video['thumb'], mode=mode),\n    \t    'thumbnail': video['thumb'],\n                'icon': video['thumb'],\n                'info': info,\n            })\n        else:\n            for video in videos:\n                items.append({'label': video['name'],\n                'path': plugin.url_for('source', name=video['name'].encode('utf-8'),url=video['href'],img=video['thumb'], mode=mode),\n    \t    'thumbnail': video['thumb'],\n                'icon': video['thumb'],\n            })\n    \n    categories = get_categories()\n    for index in range(len(categories)):\n        if mode == categories[index]['link']:\n            if 'search' in categories[index]:\n                if int(categories[index]['search']) == len(videos):\n                    nextpage = {'label': '[COLOR yellow]下一页[/COLOR]', 'path': plugin.url_for('search', value=keyword,mode=mode,page=str(int(page)+1))}\n                    items.append(nextpage)\n    return items\n\ndef get_key (dict, value):\n  return [k for k, v in dict.items() if v == value]\n\n@plugin.route('/history/<name>/<url>/<mode>/')\ndef history(name,url,mode):\n    items = []\n    items.append({\n        'label': '[COLOR yellow]'+ name +'[/COLOR]',\n        'path': plugin.url_for(url,value='null',page=1,mode=mode),\n    })\n    #his[url] ={'aaa':'2019-01-23 10:00:00','bbb':'2019-01-23 09:01:00','ccc':'2019-01-23 09:00:59'}\n    if url in his:\n        hi = his[url]\n        \n    else:\n        his[url] = {}\n        hi = his[url]\n        \n    #hi = []\n    if hi:\n        val = list(hi.values())\n        val = sorted(val,reverse=True)\n        for index in range(len(val)):\n            items.append({\n                'label': name+ ':' +get_key(hi,val[index])[0] + ' - [查询时间：' + val[index] +']',\n                'path': plugin.url_for(url,value=get_key(hi,val[index])[0],page=1,mode=mode),\n            })\n        items.append({\n            'label': '[COLOR yellow]清除历史记录[/COLOR]',\n            'path': plugin.url_for('cleanhis',url=url),\n        })\n    else:\n        items.append({\n            'label': '[COLOR yellow]历史记录为空[/COLOR]',\n            'path': plugin.url_for(ok,value='历史记录为空'),\n        })\n\n    return items\n\n@plugin.route('/ok/<value>/')\ndef ok(value):\n    dialog = xbmcgui.Dialog()\n    ok = dialog.ok('提示', value)\n\n@plugin.route('/cleanhis/<url>/')\ndef cleanhis(url):\n    his[url] = {}\n    dialog = xbmcgui.Dialog()\n    ok = dialog.ok('提示', '清理历史记录成功')\n\n@plugin.route('/')\ndef index():\n    if 'homesort' in storage:\n        #用户设置的列表\n        nlist = []\n        for index in range(len(storage['homesort'])):\n            nlist.append(storage['homesort'][index]['link'])\n        nlist = set(nlist)\n        #默认列表\n        glist = []\n        for index in range(len(get_categories())):\n            glist.append(get_categories()[index]['link'])\n        glist = set(glist)\n        if nlist != glist:\n            if len(glist)-len(nlist) > 0:\n                h = '新增 '+str(len(glist)-len(nlist))\n            else:\n                h = '删减 '+str(abs(len(glist)-len(nlist)))\n            newhomesort = []\n            for index in range(len(get_categories())):\n                vlist = {}\n                vlist['id'] = get_categories()[index]['id']\n                if get_categories()[index]['link'] in damakulist:\n                    vlist['name'] = '[COLOR pink]' + get_categories()[index]['name'] + '[/COLOR]'\n                else:\n                    vlist['name'] = get_categories()[index]['name']\n                vlist['link'] = get_categories()[index]['link']\n                vlist['author'] = get_categories()[index]['author']\n                vlist['upload'] = get_categories()[index]['upload']\n                if 'plot' in get_categories()[index]:\n                    vlist['plot'] = get_categories()[index]['plot']\n                for i in range(len(storage['homesort'])):\n                    if storage['homesort'][i]['link'] == get_categories()[index]['link']:\n                        vlist['id'] = storage['homesort'][i]['id']\n                        #vlist['name'] = storage['homesort'][i]['name']\n                        #vlist['link'] = storage['homesort'][i]['link']\n                newhomesort.append(vlist)\n            storage['homesort'] = newhomesort\n            categories = sorted(newhomesort,key=lambda k:k.get('id'))\n            dialog = xbmcgui.Dialog()\n            dialog.notification('首页已更新', h +'个网站', xbmcgui.NOTIFICATION_INFO, 5000)\n        else:\n            newhomesort = []\n            for index in range(len(get_categories())):\n                vlist = {}\n                vlist['id'] = get_categories()[index]['id']\n                if get_categories()[index]['link'] in damakulist:\n                    vlist['name'] = '[COLOR pink]' + get_categories()[index]['name'] + '[/COLOR]'\n                else:\n                    vlist['name'] = get_categories()[index]['name']\n                vlist['link'] = get_categories()[index]['link']\n                vlist['author'] = get_categories()[index]['author']\n                vlist['upload'] = get_categories()[index]['upload']\n                if 'plot' in get_categories()[index]:\n                    vlist['plot'] = get_categories()[index]['plot']\n                for i in range(len(storage['homesort'])):\n                    if storage['homesort'][i]['link'] == get_categories()[index]['link']:\n                        vlist['id'] = storage['homesort'][i]['id']\n                        #vlist['name'] = storage['homesort'][i]['name']\n                        #vlist['link'] = storage['homesort'][i]['link']\n                newhomesort.append(vlist)\n            storage['homesort'] = newhomesort\n            categories = sorted(storage['homesort'],key=lambda k:k.get('id'))\n    else:\n        storage['homesort'] = get_categories()\n        categories = sorted(get_categories(),key=lambda k:k.get('id'))\n\n    items = []\n    for category in categories:\n        if category['id'] != 0:\n            if 'plot' in category:\n                items.append({\n                'label': category['name'],\n                'path': plugin.url_for('home',mode=category['link']),\n                'info': {'plot':'@[COLOR blue]' + category['author'] + '[/COLOR]'  + ':\\n\\n    ' + category['plot'],'status':category['upload']+ ' 更新','cast':[(category['author'],'插件作者')],'mediatype':'video'},\n                })\n            else:\n                items.append({\n                    'label': category['name'],\n                    'path': plugin.url_for('home',mode=category['link']),\n                    'info': {'status':category['upload']+ '更新','cast':[(category['author'],'插件作者')],'mediatype':'video'},\n                })\n    items.append({\n        'label': u'[COLOR yellow]设置[/COLOR]',\n        'path': plugin.url_for('setting'),\n    })\n    \n    return items\n\n@plugin.route('/setting')\ndef setting():\n    items = []\n    items.append({\n        'label': u'首页排序与屏蔽',\n        'path': plugin.url_for('homesort'),\n    })\n    items.append({\n        'label': u'关键词过滤 - 符合关键词的文字被替换成*，但是视频仍然显示在视频列表',\n        'path': plugin.url_for('keyword',key='keyword',name='关键词过滤'),\n    })\n    items.append({\n        'label': u'黑名单屏蔽 - 符合关键词的内容将不显示在视频列表中',\n        'path': plugin.url_for('keyword',key='blacklist',name='黑名单屏蔽'),\n    })\n    # items.append({\n    #     'label': '繁体模式 - 开启可能会造成弹幕插件自动搜索失效 (状态:'+chushihua('jf',0) +')',\n    #     'path': plugin.url_for('switch',key='jf'),\n    # })\n    return items\n\n@plugin.route('/homesort')\ndef homesort():\n    items = []\n    if 'homesort' in storage:\n        hlist = sorted(storage['homesort'],key=lambda k:k.get('id'))\n        for index in range(len(hlist)):\n            items.append({\n                'label':'id:' + str(hlist[index]['id']) + ' - ' + hlist[index]['name'],\n                'path':plugin.url_for('homeedit',value=hlist[index]['link']),\n            })\n    else:\n        hhlist = get_categories()\n        hlist = sorted(hhlist,key=lambda k:k.get('id'))\n        for index in range(len(hlist)):\n            items.append({\n                'label':'id:' + str(hlist[index]['id']) + ' - ' + hlist[index]['name'],\n                'path':plugin.url_for('homeedit',value=hlist[index]['link']),\n            })\n        storage['homesort'] = hlist\n    return items\n\n@plugin.route('/homeedit/<value>/')\ndef homeedit(value):\n    hlist = storage['homesort']\n    for index in range(len(hlist)):\n        if hlist[index]['link'] == value:\n            dialog = xbmcgui.Dialog()\n            d = dialog.input('--------修改id--------\\nid从小到大排列，改为0不显示', defaultt=str(hlist[index]['id']),type=xbmcgui.INPUT_NUMERIC)\n            if d != '' and int(d) != int(hlist[index]['id']):\n                hlist[index]['id'] = int(d)\n                dialog.notification('提示', '修改成功', xbmcgui.NOTIFICATION_INFO, 5000)\n\n\n\n@plugin.route('/keyword/<key>/<name>')\ndef keyword(key,name):\n    items = []\n    items.append({\n        'label': '[COLOR yellow]新增'+name+'[/COLOR]',\n        'path': plugin.url_for('keywordxad',key=key,value='/null/',mode=3),\n    })\n    items.append({\n        'label': '[COLOR yellow]' + name + ' (状态:'+chushihua(key+'switch',0) +')[/COLOR]',\n        'path': plugin.url_for('switch',key=key+'switch'),\n    })\n    #storage['keyword'] = ['fuck','getout']\n    if key in storage:\n        ky = storage[key]\n    else:\n        ky = ['示例1','helloworld']\n        storage[key] = ky\n    \n    for index in range(len(ky)):\n        items.append({\n            'label': ky[index],\n            'path': plugin.url_for('keywordxad',key=key,value=ky[index],mode=0),\n        })\n    return items\n\n@plugin.route('/keywordxad/<key>/<value>/<mode>/')\ndef keywordxad(key,value,mode):\n    if int(mode) == 0:\n        items = []\n        items.append({\n            'label': '修改 - ' +str(value),\n            'path': plugin.url_for('keywordxad',key=key,value=value,mode=1),\n        })\n        items.append({\n            'label': '删除 - ' +str(value),\n            'path': plugin.url_for('keywordxad',key=key,value=value,mode=2),\n        })\n        return items\n    #修改\n    if int(mode) == 1:\n        dialog = xbmcgui.Dialog()\n        d = dialog.input('修改 '+ value, defaultt=value,type=xbmcgui.INPUT_ALPHANUM)\n        ky = storage[key]\n        if d != '':\n            if d != value:\n                ky.remove(value)\n                ky.append(d)\n\n                storage[key] = list(set(ky))\n                dialog.notification('提示', '修改成功', xbmcgui.NOTIFICATION_INFO, 5000)\n            \n            \n    #删除\n    if int(mode) == 2:\n        dialog = xbmcgui.Dialog()\n        ret = dialog.yesno('确认删除吗？', '删除：' + value)\n        if ret:\n            ky = storage[key]\n            ky.remove(value)\n            storage[key] = list(set(ky))\n            dialog = xbmcgui.Dialog()\n            dialog.notification('提示', '删除成功', xbmcgui.NOTIFICATION_INFO, 5000)\n    #新增\n    if int(mode) == 3:\n        dialog = xbmcgui.Dialog()\n        d = dialog.input('新增关键词，多个请用英文逗号隔开',type=xbmcgui.INPUT_ALPHANUM)\n        ky = storage[key]\n        if d != '':\n            if d.find(',') != -1:\n                k = d.split(',')\n                ky = k + ky\n            else:\n                ky.append(d)\n            storage[key] = list(set(ky))\n            dialog.notification('提示', '添加成功', xbmcgui.NOTIFICATION_INFO, 5000)\n\n\n@plugin.route('/switch/<key>/')\ndef switch(key):\n    if storage[key] == 1:\n        storage[key] = 0\n        dialog = xbmcgui.Dialog()\n        dialog.notification('提示', '已关闭', xbmcgui.NOTIFICATION_INFO, 5000)\n    else:\n        storage[key] = 1\n        dialog = xbmcgui.Dialog()\n        dialog.notification('提示', '已开启', xbmcgui.NOTIFICATION_INFO, 5000)\n\n\n@plugin.route('/labels/<label>/')\ndef show_label(label):\n    # 写抓取视频类表的方法\n    #\n    items = [\n        {'label': label},\n    ]\n    return items\n\nif __name__ == '__main__':\n    plugin.run()\n"
  },
  {
    "path": "plugin.video.bangumi/addon.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>\n<addon id=\"plugin.video.bangumi\" name=\"Bangumi beta\" version=\"0.2.0\" provider-name=\"zhengfan\">\n  <requires>\n    <import addon=\"xbmc.python\" version=\"2.1.0\"/>\n    <import addon=\"script.module.xbmcswift2\" version=\"2.4.0\"/>\n  <import addon=\"script.module.beautifulsoup4\" version=\"4.5.3\"/>\n  <import addon=\"script.module.requests\" version=\"2.19.1\"/>\n  <import addon=\"script.module.html5lib\" version=\"0.999.0\"/>\n  <import addon=\"script.module.cfscrape\" version=\"1.6.9\"/>\n  </requires>\n  <extension point=\"xbmc.python.pluginsource\" library=\"addon.py\">\n    <provides>video</provides>\n  </extension>\n  <extension point=\"xbmc.addon.metadata\">\n    <platform>all</platform>\n    <language></language>\n    <description>bangumi插件是一个番剧网站聚合插件，它是vid插件的改进版，为适配番剧网站而生</description>\n    <assets>\n      <icon>icon.png</icon>\n      <fanart>fanart.png</fanart> \n    </assets>\n    <news>首个版本</news>\n  </extension>\n</addon>\n"
  },
  {
    "path": "plugin.video.bangumi/readme.md",
    "content": "# bangumi for kodi 0.2.0\n## :black_nib: 简介\n- bangumi插件是一个番剧网站聚合插件，它是vid插件的改进版，为适配番剧网站而生\n\n---\n## 主要功能\n适配网站 | 网址\n---- | ---- \n哔咪哔咪 | https://bimibimi.tv/\n樱花动漫 | https://yhdm.tv/\nAge动漫 | https://agefans.tw/\n嘶哩嘶哩 | https://silisili.in/\n八重樱动漫 | http://iafuns.com/\n番組計劃 | https://guguani.me/\nQinmei | https://qinmei.video/\n柠萌瞬间 | https://ningmoe.com/\n吐槽弹幕网 | http://tucao.one/\nclicli弹幕网 | http://clicli.me/\n五弹幕 | https://5dm.tv/\nclicli弹幕网 | http://clicli.co/\nzzzfun | http://zzzfun.com/\n动漫岛 | http://dmd8.com/\n\n----\n## 更新历史\n > -[v0.2.0]----------------------  \n > 增加 - tucao弹幕网的api功能，可以看tucao网页版提示版权退稿的番剧了  \n > 修复 - agefans.tw失效\n > 修复 - silisili失效\n > 修复 - 柠檬瞬间视频资源获取失败\n > 修复 - srsg失效\n > 修复 - clicli.me 失效\n > 新增 - zzzfun\n > 新增 - 动漫岛\n > 修复 - 其他细节优化\n > -[v0.1.1]----------------------  \n > 时间久远，忘记修了啥  \n > -[v0.1.0]----------------------  \n > 发布 - 首个版本  \n## :beginner: 开始使用\n\n### 下载依赖\n\n先安装script.module.pyjsparser.zip等待安装成功\n\n接着安装 script.module.js2py.zip，等待安装成功\n\n最后安装script.module.cfscrape.zip，等待安装成功\n\n---\n\n因为适配maccms采集站，需要解析到xml，因此cine beta 0.2.0+需要额外安装依赖\nscript.module.elementtree.zip\n\n---\n\n下载地址：https://pan.lanzou.com/u/zheng2014\n\n## 开发文档\n\n已经移动至[wiki](https://github.com/zhengfan2014/xbmc-kodi-private-china-addons/wiki)\n"
  },
  {
    "path": "plugin.video.bangumi/resources/__init__.py",
    "content": ""
  },
  {
    "path": "plugin.video.bangumi/resources/language/English/strings.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?>\n<strings>\n  <!-- Plugin name -->\n  <string id=\"30000\">bilibili</string>\n</strings>\n"
  },
  {
    "path": "plugin.video.bangumi/resources/lib/__init__.py",
    "content": ""
  },
  {
    "path": "plugin.video.bangumi/resources/lib/zhcdict.json",
    "content": "{\n\"SIMPONLY\": \"㐷㐹㐽㑇㑈㑔㑩㓆㓥㓰㔉㖊㖞㗷㘎㚯㛀㛟㛠㛣㛤㛿㟆㟜㟥㡎㤘㤽㥪㧏㧐㧑㧟㧰㨫㭎㭏㭣㭤㭴㱩㱮㲿㳔㳕㳠㳡㳢㳽㴋㶉㶶㶽㺍㻅㻏㻘䀥䁖䂵䃅䅉䅟䅪䇲䉤䌶䌷䌸䌹䌺䌻䌼䌽䌾䌿䍀䍁䍠䎬䏝䑽䓓䓕䓖䓨䗖䘛䘞䙊䙌䙓䜣䜤䜥䜧䜩䝙䞌䞍䞎䞐䟢䢀䢁䢂䥺䥽䥾䥿䦀䦁䦂䦃䦅䦆䦶䦷䩄䭪䯃䯄䯅䲝䲞䲟䲠䲡䲢䲣䴓䴔䴕䴖䴗䴘䴙䶮与专业丛东丝丢两严丧个临为丽举义乌乐乔习乡书买乱争亏亘亚产亩亲亵亸亿仅从仑仓仪们众优会伛伞伟传伡伣伤伥伦伧伪伫体佥侠侣侥侦侧侨侩侪侬侭俣俦俨俩俪俫俭债倾偬偻偾偿傤傥傧储傩儿兑兖兰关兴兹养兽冁内冈册写军农冯冲决况冻净凄凉减凑凛凤凫凭凯击凿刍刘则刚创删别刬刭刹刽刾刿剀剂剐剑剥剧劝办务劢动励劲劳势勋勚匀匦匮区医华协单卖卢卤卧卫却卺厅历厉压厌厍厐厕厢厣厦厨厩厮县叁参叆叇双发变叙叠号叹叽吃吓吕吗吣吨听启吴呐呒呓呕呖呗员呙呛呜咏咙咛咝咤响哑哒哓哔哕哗哙哜哝哟唇唛唝唠唡唢唤啧啬啭啮啯啰啴啸喷喽喾嗫嗳嘘嘤嘱噜嚣团园囱围囵国图圆圣圹场坂坏块坚坛坜坝坞坟坠垄垅垆垒垦垩垫垭垯垱垲垴埘埙埚埯堑堕塆墙壮声壳壶壸处备复够夫头夹夺奁奂奋奖奥妆妇妈妩妪妫姗姹娄娅娆娇娈娱娲娴婳婴婵婶媪媭嫒嫔嫱嬷孙学孪宁宝实宠审宪宫宽宾寝对寻导寿将尔尘尝尧尴尽层屃屉届属屡屦屿岁岂岖岗岘岙岚岛岭岳岽岿峃峄峡峣峤峥峦峰崂崃崄崭嵘嵚嵝巅巩巯币帅师帏帐帜带帧帮帱帻帼幂幞并庄庆床庐庑库应庙庞废庼廪开异弃弑张弥弪弯弹强归当录彝彟彦彨彻径徕忆忏忧忾怀态怂怃怄怅怆怜总怼怿恋恒恤恳恶恸恹恺恻恼恽悦悫悬悭悮悯惊惧惨惩惫惬惭惮惯愠愤愦慑慭懑懒懔戆戋戏戗战戬戯户扑执扩扪扫扬扰抚抛抟抠抡抢护报抬抵担拟拢拣拥拦拧拨择挚挛挜挝挞挟挠挡挢挣挤挥挦捝捞损捡换捣掳掴掷掸掺掼揽揾揿搀搁搂搄搅携摄摅摆摇摈摊撄撑撵撷撸撺擜擞攒敌教敚敛敩数斋斓斩断无旧时旷旸昙昵昼昽显晋晒晓晔晕晖暂暅暧术机杀杂权条来杨杩构枞枢枣枥枧枨枪枫枭柠查柽栀栅标栈栉栊栋栌栎栏树栖样栾桠桡桢档桤桥桦桧桨桩桪梦梼梾梿检棁棂椁椝椟椠椢椤椫椭椮楼榄榅榇榈榉榝槚槛槟槠横樯樱橥橱橹橼檩欢欤欧歼殁殇残殒殓殚殡殴毁毂毕毙毡毵毶氇气氢氩氲汇汉污汤汹沟没沣沤沥沦沧沨沩沪泞泪泶泷泸泺泻泼泽泾洁洒洼浃浅浆浇浈浉浊测浍济浏浐浑浒浓浔浕涚涛涝涞涟涠涡涢涣涤润涧涨涩渊渌渍渎渐渑渔渖渗温湾湿溁溃溅溆溇滗滚滞滟滠满滢滤滥滦滨滩滪潆潇潋潍潜潴澛澜濑濒灏灭灯灵灶灾灿炀炉炖炜炝点炼炽烁烂烃烛烟烦烧烨烩烫烬热焕焖焘煴爱爷牍牦牵牺犊状犷犸犹狈狝狞独狭狮狯狰狱狲猃猎猕猡猪猫猬献獭玑玙玚玛玮环现玱玺珐珑珰珲琎琏琐琼瑶瑷瑸璎瓒瓯电画畅畴疖疗疟疠疡疬疭疮疯疱疴痈痉痒痖痨痪痫痴瘅瘆瘗瘘瘪瘫瘾瘿癞癣癫皂皑皱皲盏盐监盖盗盘眍眦眬睁睐睑瞆瞒瞩矫矶矾矿砀码砖砗砚砜砺砻砾础硁硕硖硗硙硚硵硷碍碛碜碱礼祃祎祢祯祷祸禀禄禅离秃秆秘积称秽秾稆税稣稳穑穞穷窃窍窎窑窜窝窥窦窭竖竞笃笋笔笕笺笼笾筚筛筜筝筹筼签筿简箓箦箧箨箩箪箫篑篓篮篯篱簖籁籴类籼粜粝粤粪粮粽糁糇糍紧絷縆纟纠纡红纣纤纥约级纨纩纪纫纬纭纮纯纰纱纲纳纴纵纶纷纸纹纺纻纼纽纾线绀绁绂练组绅细织终绉绊绋绌绍绎经绐绑绒结绔绕绖绗绘给绚绛络绝绞统绠绡绢绣绤绥绦继绨绩绪绫绬续绮绯绰绱绲绳维绵绶绷绸绹绺绻综绽绾绿缀缁缂缃缄缅缆缇缈缉缊缋缌缍缎缏缐缑缒缓缔缕编缗缘缙缚缛缜缝缞缟缠缡缢缣缤缥缦缧缨缩缪缫缬缭缮缯缰缱缲缳缴缵罂网罗罚罢罴羁羟羡群翘翙翚耢耧耸耻聂聋职聍联聩聪肃肠肤肮肾肿胀胁胄胆背胧胨胪胫胶脉脍脏脐脑脓脔脚脱脶脸腘腭腻腼腽腾膑膻臜舆舣舰舱舻艰艳艺节芈芗芜芦芲芸苁苇苈苋苌苍苎苏苔苘茎茏茑茔茕茧荆荙荚荛荜荝荞荟荠荡荣荤荥荦荧荨荩荪荫荬荭荮药莅莱莲莳莴莶获莸莹莺莼萚萝萤营萦萧萨葱蒀蒇蒉蒋蒌蒏蓝蓟蓠蓣蓥蓦蔂蔷蔹蔺蔼蕰蕲蕴薮藓蘖虏虑虚虬虮虱虽虾虿蚀蚁蚂蚃蚕蚝蚬蛊蛎蛏蛮蛰蛱蛲蛳蛴蜕蜗蝇蝈蝉蝎蝼蝾螀螨蟏衅衔补衬衮袄袅袆袜袭袯装裆裈裢裣裤裥褛褴襕见观觃规觅视觇览觉觊觋觌觍觎觏觐觑觞触觯訚詟誉誊讠计订讣认讥讦讧讨让讪讫讬训议讯记讱讲讳讴讵讶讷许讹论讻讼讽设访诀证诂诃评诅识诇诈诉诊诋诌词诎诏诐译诒诓诔试诖诗诘诙诚诛诜话诞诟诠诡询诣诤该详诧诨诩诪诫诬语诮误诰诱诲诳说诵诶请诸诹诺读诼诽课诿谀谁谂调谄谅谆谇谈谉谊谋谌谍谎谏谐谑谒谓谔谕谖谗谘谙谚谛谜谝谞谟谠谡谢谣谤谥谦谧谨谩谪谫谬谭谮谯谰谱谲谳谴谵谶豮贝贞负贠贡财责贤败账货质贩贪贫贬购贮贯贰贱贲贳贴贵贶贷贸费贺贻贼贽贾贿赀赁赂赃资赅赆赇赈赉赊赋赌赍赎赏赐赑赒赓赔赕赖赗赘赙赚赛赜赝赞赟赠赡赢赣赪赵赶趋趱趸跃跄跞践跶跷跸跹跻踌踪踬踯蹑蹒蹰蹿躏躜躯车轧轨轩轪轫转轭轮软轰轱轲轳轴轵轶轷轸轹轺轻轼载轾轿辀辁辂较辄辅辆辇辈辉辊辋辌辍辎辏辐辑辒输辔辕辖辗辘辙辚辞辩辫边辽达迁过迈运还这进远违连迟迩迳迹选逊递逦逻遗遥邓邝邬邮邹邺邻郏郐郑郓郦郧郸酂酝酦酱酽酾酿释鉴銮錾钅钆钇针钉钊钋钌钍钎钏钐钑钒钓钔钕钖钗钘钙钚钛钜钝钞钟钠钡钢钣钤钥钦钧钨钩钪钫钬钭钮钯钰钱钲钳钴钵钶钷钸钹钺钻钼钽钾钿铀铁铂铃铄铅铆铇铈铉铊铋铌铍铎铏铐铑铒铓铔铕铖铗铘铙铚铛铜铝铞铟铠铡铢铣铤铥铦铧铨铩铪铫铬铭铮铯铰铱铲铳铴铵银铷铸铹铺铻铼铽链铿销锁锂锃锄锅锆锇锈锉锊锋锌锍锎锏锐锑锒锓锔锕锖锗锘错锚锛锜锝锞锟锠锡锢锣锤锥锦锧锨锩锪锫锬锭键锯锰锱锲锳锴锵锶锷锸锹锺锻锼锽锾锿镀镁镂镃镄镅镆镇镈镉镊镋镌镍镎镏镐镑镒镓镔镕镖镗镘镙镚镛镜镝镞镠镡镢镣镤镥镦镧镨镩镪镫镬镭镮镯镰镱镲镳镴镵镶长门闩闪闫闬闭问闯闰闱闲闳间闵闶闷闸闹闺闻闼闽闾闿阀阁阂阃阄阅阆阇阈阉阊阋阌阍阎阏阐阑阒阓阔阕阖阗阘阙阚阛队阳阴阵阶际陆陇陈陉陕陦陧陨险随隐隶隽难雏雠雳雾霁霉霡霭靓靔静靥鞑鞒鞯鞲韦韧韨韩韪韫韬韵页顶顷顸项顺须顼顽顾顿颀颁颂颃预颅领颇颈颉颊颋颌颍颎颏颐频颒颓颔颕颖颗题颙颚颛颜额颞颟颠颡颢颣颤颥颦颧风飏飐飑飒飓飔飕飖飗飘飙飚飞飨餍饣饤饥饦饧饨饩饪饫饬饭饮饯饰饱饲饳饴饵饶饷饸饹饺饻饼饽饾饿馀馁馂馃馄馅馆馇馈馉馊馋馌馍馎馏馐馑馒馓馔馕马驭驮驯驰驱驲驳驴驵驶驷驸驹驺驻驼驽驾驿骀骁骂骃骄骅骆骇骈骉骊骋验骍骎骏骐骑骒骓骔骕骖骗骘骙骚骛骜骝骞骟骠骡骢骣骤骥骦骧髅髋髌鬓鬶魇魉鱼鱽鱾鱿鲀鲁鲂鲃鲄鲅鲆鲇鲈鲉鲊鲋鲌鲍鲎鲏鲐鲑鲒鲓鲔鲕鲖鲗鲘鲙鲚鲛鲜鲝鲞鲟鲠鲡鲢鲣鲤鲥鲦鲧鲨鲩鲪鲫鲬鲭鲮鲯鲰鲱鲲鲳鲴鲵鲶鲷鲸鲹鲺鲻鲼鲽鲾鲿鳀鳁鳂鳃鳄鳅鳆鳇鳈鳉鳊鳋鳌鳍鳎鳏鳐鳑鳒鳓鳔鳕鳖鳗鳘鳙鳚鳛鳜鳝鳞鳟鳠鳡鳢鳣鳤鸟鸠鸡鸢鸣鸤鸥鸦鸧鸨鸩鸪鸫鸬鸭鸮鸯鸰鸱鸲鸳鸴鸵鸶鸷鸸鸹鸺鸻鸼鸽鸾鸿鹀鹁鹂鹃鹄鹅鹆鹇鹈鹉鹊鹋鹌鹍鹎鹏鹐鹑鹒鹓鹔鹕鹖鹗鹘鹙鹚鹛鹜鹝鹞鹟鹠鹡鹢鹣鹤鹥鹦鹧鹨鹩鹪鹫鹬鹭鹮鹯鹰鹱鹲鹳鹴鹾麦麸麹麺黄黉黡黩黪黾鼋鼌鼍鼗鼹齄齐齑齿龀龁龂龃龄龅龆龇龈龉龊龋龌龙龚龛龟鿎鿏鿒鿔𠀾𠆲𠆿𠇹𠉂𠉗𠊉𠋆𠚳𠛅𠛆𠛾𠡠𠮶𠯟𠯠𠰱𠰷𠱞𠲥𠴛𠴢𠵸𠵾𡋀𡋗𡋤𡍣𡒄𡝠𡞋𡞱𡠟𡥧𡭜𡭬𡳃𡳒𡶴𡸃𡺃𡺄𢋈𢗓𢘙𢘝𢘞𢙏𢙐𢙑𢙒𢙓𢛯𢠁𢢐𢧐𢫊𢫞𢫬𢬍𢬦𢭏𢽾𣃁𣆐𣈣𣍨𣍯𣍰𣎑𣏢𣐕𣐤𣑶𣒌𣓿𣔌𣗊𣗋𣗙𣘐𣘓𣘴𣘷𣚚𣞎𣨼𣭤𣯣𣱝𣲗𣲘𣳆𣶩𣶫𣶭𣷷𣸣𣺼𣺽𣽷𤆡𤆢𤇃𤇄𤇭𤇹𤈶𤈷𤊀𤊰𤋏𤎺𤎻𤙯𤝢𤞃𤞤𤠋𤦀𤩽𤳄𤶊𤶧𤻊𤽯𤾀𤿲𥁢𥅘𥅴𥅿𥆧𥇢𥎝𥐟𥐯𥐰𥐻𥞦𥧂𥩟𥩺𥫣𥬀𥬞𥬠𥭉𥮋𥮜𥮾𥱔𥹥𥺅𥺇𦈈𦈉𦈋𦈌𦈎𦈏𦈐𦈑𦈒𦈓𦈔𦈕𦈖𦈗𦈘𦈙𦈚𦈛𦈜𦈝𦈞𦈟𦈠𦈡𦍠𦛨𦝼𦟗𦨩𦰏𦰴𦶟𦶻𦻕𦼖𧉐𧉞𧌥𧏖𧏗𧑏𧒭𧜭𧝝𧝧𧮪𧳕𧹑𧹒𧹓𧹔𧹕𧹖𧹗𧿈𨀁𨀱𨁴𨂺𨄄𨅛𨅫𨅬𨉗𨐅𨐆𨐇𨐈𨐉𨐊𨑹𨟳𨠨𨡙𨡺𨤰𨰾𨰿𨱀𨱁𨱂𨱃𨱄𨱅𨱆𨱇𨱈𨱉𨱊𨱋𨱌𨱍𨱎𨱏𨱐𨱑𨱒𨱓𨱔𨱕𨱖𨷿𨸀𨸁𨸂𨸃𨸄𨸅𨸆𨸇𨸉𨸊𨸋𨸌𨸎𨸘𨸟𩏼𩏽𩏾𩏿𩐀𩓋𩖕𩖖𩖗𩙥𩙦𩙧𩙨𩙩𩙪𩙫𩙬𩙭𩙮𩙯𩙰𩟿𩠀𩠁𩠂𩠃𩠅𩠆𩠇𩠈𩠉𩠊𩠋𩠌𩠎𩠏𩠠𩡖𩧦𩧨𩧩𩧪𩧫𩧬𩧭𩧮𩧯𩧰𩧱𩧲𩧳𩧴𩧵𩧶𩧸𩧺𩧻𩧼𩧿𩨀𩨁𩨂𩨃𩨄𩨅𩨆𩨇𩨈𩨉𩨊𩨋𩨌𩨍𩨎𩨏𩨐𩩈𩬣𩬤𩭹𩯒𩰰𩲒𩴌𩽹𩽺𩽻𩽼𩽽𩽾𩽿𩾀𩾁𩾂𩾃𩾄𩾅𩾆𩾇𩾈𩾊𩾋𩾌𩾎𪉂𪉃𪉄𪉅𪉆𪉈𪉉𪉊𪉋𪉌𪉍𪉎𪉏𪉐𪉑𪉒𪉓𪉔𪉕𪎈𪎉𪎊𪎋𪎌𪎍𪑅𪔭𪚏𪚐𪜎𪞝𪟎𪟝𪠀𪠟𪠡𪠳𪠵𪠸𪠺𪠽𪡀𪡃𪡋𪡏𪡛𪡞𪡺𪢌𪢐𪢒𪢕𪢖𪢠𪢮𪢸𪣆𪣒𪣻𪤄𪤚𪥠𪥫𪥰𪥿𪧀𪧘𪨊𪨗𪨧𪨩𪨶𪨷𪨹𪩇𪩎𪩘𪩛𪩷𪩸𪪏𪪑𪪞𪪴𪪼𪫌𪫡𪫷𪫺𪬚𪬯𪭝𪭢𪭧𪭯𪭵𪭾𪮃𪮋𪮖𪮳𪮶𪯋𪰶𪱥𪱷𪲎𪲔𪲛𪲮𪳍𪳗𪴙𪵑𪵣𪵱𪶄𪶒𪶮𪷍𪷽𪸕𪸩𪹀𪹠𪹳𪹹𪺣𪺪𪺭𪺷𪺸𪺻𪺽𪻐𪻨𪻲𪻺𪼋𪼴𪽈𪽝𪽪𪽭𪽮𪽴𪽷𪾔𪾢𪾣𪾦𪾸𪿊𪿞𪿫𪿵𫀌𫀓𫀨𫀬𫀮𫁂𫁟𫁡𫁱𫁲𫁳𫁷𫁺𫂃𫂆𫂈𫂖𫂿𫃗𫄙𫄚𫄛𫄜𫄝𫄞𫄟𫄠𫄡𫄢𫄣𫄤𫄥𫄦𫄧𫄨𫄩𫄪𫄫𫄬𫄭𫄮𫄯𫄰𫄱𫄲𫄳𫄴𫄵𫄶𫄷𫄸𫄹𫅅𫅗𫅥𫅭𫅼𫆏𫆝𫆫𫇘𫇛𫇪𫇭𫇴𫇽𫈉𫈎𫈟𫈵𫉁𫉄𫊪𫊮𫊸𫊹𫊻𫋇𫋌𫋲𫋷𫋹𫋻𫌀𫌇𫌋𫌨𫌪𫌫𫌬𫌭𫌯𫍐𫍙𫍚𫍛𫍜𫍝𫍞𫍟𫍠𫍡𫍢𫍣𫍤𫍥𫍦𫍧𫍨𫍩𫍪𫍫𫍬𫍭𫍮𫍯𫍰𫍱𫍲𫍳𫍴𫍵𫍶𫍷𫍸𫍹𫍺𫍻𫍼𫍽𫍾𫍿𫎆𫎌𫎦𫎧𫎨𫎩𫎪𫎫𫎬𫎭𫎱𫎳𫎸𫎺𫏃𫏆𫏋𫏌𫏐𫏑𫏕𫏞𫏨𫐄𫐅𫐆𫐇𫐈𫐉𫐊𫐋𫐌𫐍𫐎𫐏𫐐𫐑𫐒𫐓𫐔𫐕𫐖𫐗𫐘𫐙𫐷𫑘𫑡𫑷𫓥𫓦𫓧𫓨𫓩𫓪𫓫𫓬𫓭𫓮𫓯𫓰𫓱𫓲𫓳𫓴𫓵𫓶𫓷𫓸𫓹𫓺𫓻𫓼𫓽𫓾𫓿𫔀𫔁𫔂𫔃𫔄𫔅𫔆𫔇𫔈𫔉𫔊𫔋𫔌𫔍𫔎𫔏𫔐𫔑𫔒𫔓𫔔𫔕𫔖𫔭𫔮𫔯𫔰𫔲𫔴𫔵𫔶𫔽𫕚𫕥𫕨𫖃𫖅𫖇𫖑𫖒𫖓𫖔𫖕𫖖𫖪𫖫𫖬𫖭𫖮𫖯𫖰𫖱𫖲𫖳𫖴𫖵𫖶𫖷𫖸𫖹𫖺𫗇𫗈𫗉𫗊𫗋𫗚𫗞𫗟𫗠𫗡𫗢𫗣𫗤𫗥𫗦𫗧𫗨𫗩𫗪𫗫𫗬𫗭𫗮𫗯𫗰𫗱𫗳𫗴𫗵𫘛𫘜𫘝𫘞𫘟𫘠𫘡𫘣𫘤𫘥𫘦𫘧𫘨𫘩𫘪𫘫𫘬𫘭𫘮𫘯𫘰𫘱𫘽𫙂𫚈𫚉𫚊𫚋𫚌𫚍𫚎𫚏𫚐𫚑𫚒𫚓𫚔𫚕𫚖𫚗𫚘𫚙𫚚𫚛𫚜𫚝𫚞𫚟𫚠𫚡𫚢𫚣𫚤𫚥𫚦𫚧𫚨𫚩𫚪𫚫𫚬𫚭𫛚𫛛𫛜𫛝𫛞𫛟𫛠𫛡𫛢𫛣𫛤𫛥𫛦𫛧𫛨𫛩𫛪𫛫𫛬𫛭𫛮𫛯𫛰𫛱𫛲𫛳𫛴𫛵𫛶𫛷𫛸𫛹𫛺𫛻𫛼𫛽𫛾𫜀𫜁𫜂𫜃𫜄𫜅𫜊𫜑𫜒𫜓𫜔𫜕𫜙𫜟𫜨𫜩𫜪𫜫𫜬𫜭𫜮𫜯𫜰𫜲𫜳𫝈𫝋𫝦𫝧𫝨𫝩𫝪𫝫𫝬𫝭𫝮𫝵𫞅𫞗𫞚𫞛𫞝𫞠𫞡𫞢𫞣𫞥𫞦𫞧𫞨𫞩𫞷𫟃𫟄𫟅𫟆𫟇𫟑𫟕𫟞𫟟𫟠𫟡𫟢𫟤𫟥𫟦𫟫𫟬𫟲𫟳𫟴𫟵𫟶𫟷𫟸𫟹𫟺𫟻𫟼𫟽𫟾𫟿𫠀𫠁𫠂𫠅𫠆𫠇𫠈𫠊𫠋𫠌𫠏𫠐𫠑𫠒𫠖𫠜𫢸𫮃𫰛𫶇𫷷𫸩𬀩𬬭𬬻𬭊𬭛𬭳𬭶𬶋𬶍𬶏𬶟𬸪\",\n\"TRADONLY\": \"㑮㑯㑳㑶㒓㓄㓨㔋㖮㗲㗿㘉㘓㘔㘚㛝㜄㜏㜐㜗㜢㜷㞞㟺㠏㢗㢝㥮㦎㦛㦞㨻㩋㩜㩳㩵㪎㯤㰙㵗㵾㶆㷍㷿㸇㹽㺏㺜㻶㿖㿗㿧䀉䀹䁪䁻䂎䃮䅐䅳䆉䉑䉙䉬䉲䉶䊭䊷䊺䋃䋔䋙䋚䋦䋹䋻䋼䋿䌈䌋䌖䌝䌟䌥䌰䍤䍦䍽䎙䎱䕤䕳䖅䗅䗿䙔䙡䙱䚩䛄䛳䜀䜖䝭䝻䝼䞈䞋䞓䟃䟆䟐䠆䠱䡐䡩䡵䢨䤤䥄䥇䥑䥗䥩䥯䥱䦘䦛䦟䦯䦳䧢䪊䪏䪗䪘䪴䪾䫀䫂䫟䫴䫶䫻䫾䬓䬘䬝䬞䬧䭀䭃䭑䭔䭿䮄䮝䮞䮠䮫䮰䮳䮾䯀䯤䰾䱀䱁䱙䱧䱬䱰䱷䱸䱽䲁䲅䲖䲘䲰䳜䳢䳤䳧䳫䴉䴋䴬䴱䴴䴽䵳䵴䶕䶲丟並乾亂亙亞佇佈佔併來侖侶侷俁係俓俔俠俥俬倀倆倈倉個們倖倫倲偉偑側偵偽傌傑傖傘備傢傭傯傳傴債傷傾僂僅僉僑僕僞僥僨僱價儀儁儂億儈儉儎儐儔儕儘償儣優儭儲儷儸儺儻儼兇兌兒兗內兩冊冑冪凈凍凙凜凱別刪剄則剋剎剗剛剝剮剴創剷剾劃劇劉劊劌劍劏劑劚勁勑動務勛勝勞勢勣勩勱勳勵勸勻匭匯匱區協卹卻卽厙厠厤厭厲厴參叄叢吒吳吶呂咼員哯唄唓唚唸問啓啞啟啢喎喚喪喫喬單喲嗆嗇嗊嗎嗚嗩嗰嗶嗹嘆嘍嘓嘔嘖嘗嘜嘩嘪嘮嘯嘰嘳嘵嘸嘺嘽噁噅噓噚噝噞噠噥噦噯噲噴噸噹嚀嚇嚌嚐嚕嚙嚛嚥嚦嚧嚨嚮嚲嚳嚴嚶嚽囀囁囂囃囅囈囉囌囑囒囪圇國圍園圓圖團圞垵埡埬埰執堅堊堖堚堝堯報場塊塋塏塒塗塚塢塤塵塹塿墊墜墮墰墲墳墶墻墾壇壈壋壎壓壗壘壙壚壜壞壟壠壢壣壩壪壯壺壼壽夠夢夥夾奐奧奩奪奬奮奼妝姍姦娛婁婡婦婭媈媧媯媰媼媽嫋嫗嫵嫺嫻嫿嬀嬃嬇嬈嬋嬌嬙嬡嬣嬤嬦嬪嬰嬸嬻孃孄孆孇孋孌孎孫學孻孾孿宮寀寠寢實寧審寫寬寵寶將專尋對導尷屆屍屓屜屢層屨屩屬岡峯峴島峽崍崑崗崙崢崬嵐嵗嵼嵾嶁嶄嶇嶈嶔嶗嶘嶠嶢嶧嶨嶮嶴嶸嶹嶺嶼嶽巊巋巒巔巖巗巘巰巹帥師帳帶幀幃幓幗幘幝幟幣幩幫幬幹幺幾座庫廁廂廄廈廎廕廚廝廟廠廡廢廣廧廩廬廳弒弔弳張強彃彆彈彌彎彔彙彞彠彥彫彲彷彿後徑從徠復徵徹徿恆恥悅悞悵悶悽惡惱惲惻愛愜愨愴愷愻愾慄態慍慘慚慟慣慤慪慫慮慳慶慺慼慾憂憊憐憑憒憖憚憢憤憫憮憲憶憸憹懀懇應懌懍懎懞懟懣懤懨懲懶懷懸懺懼懾戀戇戔戧戩戰戱戲戶拋拚挩挱挾捨捫捱捲掃掄掆掗掙掚掛採揀揚換揮揯損搖搗搵搶摋摐摑摜摟摯摳摶摺摻撈撊撏撐撓撝撟撣撥撧撫撲撳撻撾撿擁擄擇擊擋擓擔據擟擠擡擣擫擬擯擰擱擲擴擷擺擻擼擽擾攄攆攋攏攔攖攙攛攜攝攢攣攤攪攬敎敓敗敘敵數斂斃斅斆斕斬斷斸於旂旣昇時晉晝暈暉暘暢暫曄曆曇曉曊曏曖曠曥曨曬書會朥朧朮東杴枴柵柺査桱桿梔梖梘條梟梲棄棊棖棗棟棡棧棲棶椏椲楇楊楓楨業極榘榦榪榮榲榿構槍槓槤槧槨槫槮槳槶槼樁樂樅樑樓標樞樠樢樣樤樧樫樳樸樹樺樿橈橋機橢橫橯檁檉檔檜檟檢檣檭檮檯檳檵檸檻檾櫃櫅櫓櫚櫛櫝櫞櫟櫠櫥櫧櫨櫪櫫櫬櫱櫳櫸櫺櫻欄欅欇權欍欏欐欑欒欓欖欘欞欽歎歐歟歡歲歷歸歿殘殞殢殤殨殫殭殮殯殰殲殺殻殼毀毆毊毿氂氈氌氣氫氬氭氳氾汎汙決沒沖況泝洩洶浹涇涗涼淒淚淥淨淩淪淵淶淺渙減渢渦測渾湊湋湞湧湯溈準溝溡溫溮溳溼滄滅滌滎滙滬滯滲滷滸滻滾滿漁漊漚漢漣漬漲漵漸漿潁潑潔潕潙潚潛潣潤潯潰潷潿澀澅澆澇澐澗澠澤澦澩澬澮澱澾濁濃濄濆濕濘濚濛濜濟濤濧濫濰濱濺濼濾濿瀂瀃瀅瀆瀇瀉瀋瀏瀕瀘瀝瀟瀠瀦瀧瀨瀰瀲瀾灃灄灍灑灒灕灘灙灝灡灣灤灧灩災為烏烴無煇煉煒煙煢煥煩煬煱熂熅熉熌熒熓熗熚熡熱熲熾燁燈燉燒燙燜營燦燬燭燴燶燻燼燾爃爄爇爍爐爖爛爥爧爭爲爺爾牀牆牘牴牽犖犛犞犢犧狀狹狽猌猙猶猻獁獃獄獅獊獎獨獩獪獫獮獰獱獲獵獷獸獺獻獼玀玁珼現琱琺琿瑋瑒瑣瑤瑩瑪瑲瑻瑽璉璊璝璡璣璦璫璯環璵璸璼璽璾瓄瓊瓏瓔瓕瓚瓛甌甕產産甦甯畝畢畫異畵當畼疇疊痙痠痮痾瘂瘋瘍瘓瘞瘡瘧瘮瘱瘲瘺瘻療癆癇癉癐癒癘癟癡癢癤癥癧癩癬癭癮癰癱癲發皁皚皟皰皸皺盃盜盞盡監盤盧盨盪眝眞眥眾睍睏睜睞睪瞘瞜瞞瞤瞭瞶瞼矇矉矑矓矚矯硃硜硤硨硯碕碙碩碭碸確碼碽磑磚磠磣磧磯磽磾礄礆礎礒礙礦礪礫礬礮礱祇祕祘祿禍禎禕禡禦禪禮禰禱禿秈稅稈稏稜稟種稱穀穇穌積穎穠穡穢穩穫穭窩窪窮窯窵窶窺竄竅竇竈竊竚竪竱競筆筍筧筴箇箋箏節範築篋篔篘篠篤篩篳篸簀簂簍簑簞簡簢簣簫簹簽簾籃籅籋籌籔籙籛籜籟籠籤籩籪籬籮籲粵糉糝糞糧糰糲糴糶糹糺糾紀紂約紅紆紇紈紉紋納紐紓純紕紖紗紘紙級紛紜紝紟紡紬紮細紱紲紳紵紹紺紼紿絀絁終絃組絅絆絍絎結絕絙絛絝絞絡絢絥給絧絨絰統絲絳絶絹絺綀綁綃綆綇綈綉綋綌綏綐綑經綖綜綞綟綠綡綢綣綫綬維綯綰綱網綳綴綵綸綹綺綻綽綾綿緄緇緊緋緍緑緒緓緔緗緘緙線緝緞緟締緡緣緤緦編緩緬緮緯緰緱緲練緶緷緸緹緻縈縉縊縋縍縎縐縑縕縗縛縝縞縟縣縧縫縬縭縮縰縱縲縳縴縵縶縷縸縹縺總績繂繃繅繆繈繏繐繒繓織繕繚繞繟繡繢繨繩繪繫繬繭繮繯繰繳繶繷繸繹繻繼繽繾繿纁纇纈纊續纍纏纓纔纖纗纘纚纜缽罃罈罌罎罰罵罷羅羆羈羋羣羥羨義羵羶習翬翹翽耬耮聖聞聯聰聲聳聵聶職聹聻聽聾肅脅脈脛脣脥脩脫脹腎腖腡腦腪腫腳腸膃膕膚膞膠膢膩膹膽膾膿臉臍臏臗臘臚臟臠臢臥臨臺與興舉舊舘艙艣艤艦艫艱艷芻茲荊莊莖莢莧菕華菴菸萇萊萬萴萵葉葒著葝葤葦葯葷蒍蒐蒓蒔蒕蒞蒭蒼蓀蓆蓋蓧蓮蓯蓴蓽蔔蔘蔞蔣蔥蔦蔭蔯蔿蕁蕆蕎蕒蕓蕕蕘蕝蕢蕩蕪蕭蕳蕷蕽薀薆薈薊薌薑薔薘薟薦薩薰薳薴薵薹薺藉藍藎藝藥藪藭藶藷藹藺蘀蘄蘆蘇蘊蘋蘚蘞蘟蘢蘭蘺蘿虆處虛虜號虧虯蛺蛻蜆蝕蝟蝦蝨蝸螄螞螢螮螻螿蟂蟄蟈蟎蟘蟜蟣蟬蟯蟲蟳蟶蟻蠀蠁蠅蠆蠍蠐蠑蠔蠙蠟蠣蠦蠨蠱蠶蠻蠾衆衊術衕衚衛衝衹袞裊裏補裝裡製複褌褘褲褳褸褻襀襆襇襉襏襓襖襗襘襝襠襤襪襬襯襰襲襴襵覆覈見覎規覓視覘覛覡覥覦親覬覯覲覷覹覺覼覽覿觀觴觶觸訁訂訃計訊訌討訐訑訒訓訕訖託記訛訜訝訞訟訢訣訥訨訩訪設許訴訶診註証詀詁詆詊詎詐詑詒詓詔評詖詗詘詛詞詠詡詢詣試詩詫詬詭詮詰話該詳詵詷詼詿誂誄誅誆誇誋誌認誑誒誕誘誚語誠誡誣誤誥誦誨說誫説誰課誳誴誶誷誹誺誼誾調諂諄談諉請諍諏諑諒論諗諛諜諝諞諡諢諣諤諥諦諧諫諭諮諯諰諱諳諴諶諷諸諺諼諾謀謁謂謄謅謆謉謊謎謏謐謔謖謗謙謚講謝謠謡謨謫謬謭謯謱謳謸謹謾譁譂譅譆證譊譎譏譑譖識譙譚譜譞譟譨譫譭譯議譴護譸譽譾讀讅變讋讌讎讒讓讕讖讚讜讞豈豎豐豔豬豵豶貓貗貙貝貞貟負財貢貧貨販貪貫責貯貰貲貳貴貶買貸貺費貼貽貿賀賁賂賃賄賅資賈賊賑賒賓賕賙賚賜賝賞賟賠賡賢賣賤賦賧質賫賬賭賰賴賵賺賻購賽賾贃贄贅贇贈贉贊贋贍贏贐贑贓贔贖贗贚贛贜赬趕趙趨趲跡踐踰踴蹌蹔蹕蹟蹣蹤蹳蹺蹻躂躉躊躋躍躎躑躒躓躕躘躚躝躡躥躦躪軀軉車軋軌軍軏軑軒軔軕軗軛軜軟軤軨軫軬軲軷軸軹軺軻軼軾軿較輄輅輇輈載輊輋輒輓輔輕輖輗輛輜輝輞輟輢輥輦輨輩輪輬輮輯輳輷輸輻輾輿轀轂轄轅轆轇轉轊轍轎轐轔轗轟轠轡轢轣轤辦辭辮辯農迴逕這連週進遊運過達違遙遜遞遠遡適遱遲遷選遺遼邁還邇邊邏邐郟郵鄆鄉鄒鄔鄖鄟鄧鄭鄰鄲鄳鄴鄶鄺酇酈醃醜醞醟醣醫醬醱醶釀釁釃釅釋釐釒釓釔釕釗釘釙釚針釟釣釤釦釧釨釩釲釳釵釷釹釺釾鈀鈁鈃鈄鈅鈆鈇鈈鈉鈋鈍鈎鈐鈑鈒鈔鈕鈖鈗鈛鈞鈠鈡鈣鈥鈦鈧鈮鈯鈰鈲鈳鈴鈷鈸鈹鈺鈽鈾鈿鉀鉁鉅鉆鉈鉉鉋鉍鉑鉔鉕鉗鉚鉛鉝鉞鉠鉢鉤鉦鉬鉭鉳鉶鉷鉸鉺鉻鉽鉾鉿銀銁銂銃銅銈銊銍銏銑銓銖銘銚銛銜銠銣銥銦銨銩銪銫銬銱銳銶銷銹銻銼鋁鋂鋃鋅鋇鋉鋌鋏鋒鋗鋙鋝鋟鋠鋣鋤鋥鋦鋨鋩鋪鋭鋮鋯鋰鋱鋶鋸鋼錀錁錂錄錆錇錈錏錐錒錕錘錙錚錛錜錝錟錠錡錢錤錥錦錨錩錫錮錯録錳錶錸錼錽鍀鍁鍃鍄鍅鍆鍇鍈鍉鍊鍋鍍鍒鍔鍘鍚鍛鍠鍤鍥鍩鍬鍮鍰鍵鍶鍺鍼鍾鎂鎄鎇鎈鎊鎌鎍鎔鎖鎘鎙鎚鎛鎝鎞鎡鎢鎣鎦鎧鎩鎪鎬鎭鎮鎯鎰鎲鎳鎵鎶鎷鎸鎿鏃鏆鏇鏈鏉鏌鏍鏐鏑鏗鏘鏚鏜鏝鏞鏟鏡鏢鏤鏥鏦鏨鏰鏵鏷鏹鏺鏽鏾鐃鐄鐇鐈鐋鐍鐎鐏鐐鐒鐓鐔鐗鐘鐙鐝鐠鐥鐦鐧鐨鐪鐫鐮鐯鐲鐳鐵鐶鐸鐺鐼鐽鐿鑀鑄鑉鑊鑌鑑鑒鑔鑕鑞鑠鑣鑥鑪鑭鑰鑱鑲鑴鑷鑹鑼鑽鑾鑿钁钂長門閂閃閆閈閉開閌閍閎閏閐閑閒間閔閗閘閝閞閡閣閤閥閨閩閫閬閭閱閲閵閶閹閻閼閽閾閿闃闆闇闈闊闋闌闍闐闑闒闓闔闕闖關闞闠闡闢闤闥阪陘陝陞陣陰陳陸陽隉隊階隕際隨險隯隱隴隸隻雋雖雙雛雜雞離難雲電霢霣霧霼霽靂靄靆靈靉靚靜靝靦靧靨鞀鞏鞝鞦鞽鞾韁韃韆韉韋韌韍韓韙韚韛韜韝韞韠韻響頁頂頃項順頇須頊頌頍頎頏預頑頒頓頗領頜頡頤頦頫頭頮頰頲頴頵頷頸頹頻頽顂顃顅顆題額顎顏顒顓顔顗願顙顛類顢顣顥顧顫顬顯顰顱顳顴風颭颮颯颰颱颳颶颷颸颺颻颼颾飀飄飆飈飋飛飠飢飣飥飦飩飪飫飭飯飱飲飴飵飶飼飽飾飿餃餄餅餉養餌餎餏餑餒餓餔餕餖餗餘餚餛餜餞餡餦餧館餪餫餬餭餱餳餵餶餷餸餺餼餾餿饁饃饅饈饉饊饋饌饑饒饗饘饜饞饟饠饢馬馭馮馯馱馳馴馹馼駁駃駊駎駐駑駒駔駕駘駙駚駛駝駞駟駡駢駤駧駩駫駭駰駱駶駸駻駿騁騂騃騄騅騉騊騌騍騎騏騔騖騙騚騜騝騟騠騤騧騪騫騭騮騰騱騴騵騶騷騸騻騼騾驀驁驂驃驄驅驊驋驌驍驏驓驕驗驙驚驛驟驢驤驥驦驨驪驫骯髏髒體髕髖髮鬆鬍鬖鬚鬠鬢鬥鬧鬨鬩鬮鬱鬹魎魘魚魛魟魢魥魦魨魯魴魵魷魺魽鮁鮃鮄鮅鮆鮊鮋鮍鮎鮐鮑鮒鮓鮕鮚鮜鮝鮞鮟鮣鮤鮦鮪鮫鮭鮮鮯鮰鮳鮵鮶鮸鮺鮿鯀鯁鯄鯆鯇鯉鯊鯒鯔鯕鯖鯗鯛鯝鯞鯡鯢鯤鯧鯨鯪鯫鯬鯰鯱鯴鯶鯷鯽鯾鯿鰁鰂鰃鰆鰈鰉鰋鰌鰍鰏鰐鰑鰒鰓鰕鰛鰜鰟鰠鰣鰤鰥鰦鰧鰨鰩鰫鰭鰮鰱鰲鰳鰵鰷鰹鰺鰻鰼鰽鰾鱂鱄鱅鱆鱇鱈鱉鱊鱒鱔鱖鱗鱘鱝鱟鱠鱢鱣鱤鱧鱨鱭鱮鱯鱲鱷鱸鱺鳥鳧鳩鳬鳲鳳鳴鳶鳷鳼鳽鳾鴀鴃鴅鴆鴇鴉鴐鴒鴔鴕鴗鴛鴜鴝鴞鴟鴣鴥鴦鴨鴮鴯鴰鴲鴳鴴鴷鴻鴽鴿鵁鵂鵃鵊鵐鵑鵒鵓鵚鵜鵝鵟鵠鵡鵧鵩鵪鵫鵬鵮鵯鵰鵲鵷鵾鶄鶇鶉鶊鶌鶒鶓鶖鶗鶘鶚鶡鶥鶦鶩鶪鶬鶭鶯鶰鶲鶴鶹鶺鶻鶼鶿鷀鷁鷂鷄鷅鷈鷉鷊鷐鷓鷔鷖鷗鷙鷚鷣鷤鷥鷦鷨鷩鷫鷯鷲鷳鷴鷷鷸鷹鷺鷽鷿鸂鸇鸊鸋鸌鸏鸕鸗鸘鸚鸛鸝鸞鹵鹹鹺鹼鹽麗麥麨麩麪麫麬麯麲麳麴麵麷麼黃黌點黨黲黴黶黷黽黿鼂鼉鼕鼴齇齊齋齎齏齒齔齕齗齙齜齟齠齡齣齦齧齩齪齬齭齯齰齲齴齶齷齾龍龎龐龑龓龔龕龜龭龯鿁鿓𠁞𠌥𠏢𠐊𠗣𠞆𠠎𠬙𠽃𠿕𡂡𡃄𡃕𡃤𡄔𡄣𡅏𡅯𡑭𡓁𡓾𡔖𡞵𡟫𡠹𡡎𡢃𡮉𡮣𡳳𡸗𡹬𡻕𡽗𡾱𡿖𢍰𢠼𢣐𢣚𢣭𢤩𢤱𢤿𢯷𢶒𢶫𢷬𢷮𢹿𢺳𣈶𣋋𣍐𣙎𣜬𣝕𣞻𣠩𣠲𣯩𣯴𣯶𣽏𣾷𣿉𤁣𤄷𤅶𤑳𤑹𤒎𤒻𤓌𤓩𤘀𤛮𤛱𤜆𤠮𤢟𤢻𤩂𤪺𤫩𤬅𤳷𤳸𤷃𤸫𤺔𥊝𥌃𥏝𥕥𥖅𥖲𥗇𥜐𥜰𥞵𥢢𥢶𥢷𥨐𥪂𥯤𥴨𥴼𥵃𥵊𥶽𥸠𥻦𥼽𥽖𥾯𥿊𦀖𦂅𦃄𦃩𦅇𦅈𦆲𦒀𦔖𦘧𦟼𦠅𦡝𦢈𦣎𦧺𦪙𦪽𦱌𦾟𧎈𧒯𧔥𧕟𧜗𧜵𧝞𧞫𧟀𧡴𧢄𧦝𧦧𧩕𧩙𧩼𧫝𧬤𧭈𧭹𧳟𧵳𧶔𧶧𧷎𧸘𧹈𧽯𨂐𨄣𨅍𨆪𨇁𨇞𨇤𨇰𨇽𨈊𨈌𨊰𨊸𨊻𨋢𨌈𨍰𨎌𨎮𨏠𨏥𨞺𨟊𨢿𨣈𨣞𨣧𨤻𨥛𨥟𨦫𨧀𨧜𨧰𨧱𨨏𨨛𨨢𨩰𨪕𨫒𨬖𨭆𨭎𨭖𨭸𨮂𨮳𨯅𨯟𨰃𨰋𨰥𨰲𨲳𨳑𨳕𨴗𨴹𨵩𨵸𨶀𨶏𨶮𨶲𨷲𨼳𨽏𩀨𩅙𩎖𩎢𩏂𩏠𩏪𩏷𩑔𩒎𩓣𩓥𩔑𩔳𩖰𩗀𩗓𩗴𩘀𩘝𩘹𩘺𩙈𩚛𩚥𩚩𩚵𩛆𩛌𩛡𩛩𩜇𩜦𩜵𩝔𩝽𩞄𩞦𩞯𩟐𩟗𩠴𩡣𩡺𩢡𩢴𩢸𩢾𩣏𩣑𩣫𩣵𩣺𩤊𩤙𩤲𩤸𩥄𩥇𩥉𩥑𩦠𩧆𩭙𩯁𩯳𩰀𩰹𩳤𩴵𩵦𩵩𩵹𩶁𩶘𩶰𩶱𩷰𩸃𩸄𩸡𩸦𩻗𩻬𩻮𩼶𩽇𩿅𩿤𩿪𪀖𪀦𪀾𪁈𪁖𪂆𪃍𪃏𪃒𪃧𪄆𪄕𪅂𪆷𪇳𪈼𪉸𪋿𪌭𪍠𪓰𪔵𪘀𪘯𪙏𪟖𪷓𫒡𫜦\",\n\"zh2CN\": {\n\"16進位\": \"16进制\",\n\"16進位制\": \"16进位制\",\n\"A型肝炎\": \"甲型肝炎\",\n\"A肝\": \"甲肝\",\n\"B型肝炎\": \"乙型肝炎\",\n\"B肝\": \"乙肝\",\n\"C型肝炎\": \"丙型肝炎\",\n\"C肝\": \"丙肝\",\n\"IP位址\": \"IP地址\",\n\"一份子\": \"一分子\",\n\"三十六著\": \"三十六着\",\n\"三極體\": \"三极管\",\n\"三藩市\": \"旧金山\",\n\"三蘭港\": \"达累斯萨拉姆\",\n\"上落客\": \"上下客\",\n\"下著\": \"下着\",\n\"下著作\": \"下著作\",\n\"下著名\": \"下著名\",\n\"下著录\": \"下著录\",\n\"下著有\": \"下著有\",\n\"下著称\": \"下著称\",\n\"下著稱\": \"下著称\",\n\"下著者\": \"下著者\",\n\"下著述\": \"下著述\",\n\"下著錄\": \"下著录\",\n\"不著\": \"不着\",\n\"不著名\": \"不著名\",\n\"不著書\": \"不著书\",\n\"不著稱\": \"不著称\",\n\"不著述\": \"不著述\",\n\"不著錄\": \"不著录\",\n\"丹帕沙\": \"登巴萨\",\n\"主機板\": \"主板\",\n\"乘著\": \"乘着\",\n\"乘著作\": \"乘著作\",\n\"乘著名\": \"乘著名\",\n\"乘著書\": \"乘著书\",\n\"乘著称\": \"乘著称\",\n\"乘著稱\": \"乘著称\",\n\"乘著者\": \"乘著者\",\n\"乘著述\": \"乘著述\",\n\"乘著錄\": \"乘著录\",\n\"乙份\": \"一份\",\n\"乙個\": \"一个\",\n\"乙太網\": \"以太网\",\n\"乙隻\": \"一只\",\n\"乾姊\": \"干姐\",\n\"了結他\": \"了结他\",\n\"二極體\": \"二极管\",\n\"二進位\": \"二进制\",\n\"二進位制\": \"二进位制\",\n\"亚细安\": \"东盟\",\n\"亞伯塔\": \"阿尔伯塔\",\n\"亞塞拜然\": \"阿塞拜疆\",\n\"亞斯文\": \"阿斯旺\",\n\"亞歷山卓\": \"亚历山大\",\n\"交帳\": \"交账\",\n\"亮著\": \"亮着\",\n\"亮著《\": \"亮著《\",\n\"亮著作\": \"亮著作\",\n\"亮著名\": \"亮著名\",\n\"亮著書\": \"亮著书\",\n\"亮著称\": \"亮著称\",\n\"亮著稱\": \"亮著称\",\n\"亮著者\": \"亮著者\",\n\"亮著述\": \"亮著述\",\n\"亮著錄\": \"亮著录\",\n\"人工智慧\": \"人工智能\",\n\"什勒斯維希\": \"石勒苏益格\",\n\"介面\": \"界面\",\n\"仗著\": \"仗着\",\n\"仗著作\": \"仗著作\",\n\"仗著名\": \"仗著名\",\n\"仗著書\": \"仗著书\",\n\"仗著稱\": \"仗著称\",\n\"仗著者\": \"仗著者\",\n\"仗著述\": \"仗著述\",\n\"仗著錄\": \"仗著录\",\n\"付帳\": \"付账\",\n\"代表著\": \"代表着\",\n\"代表著作\": \"代表著作\",\n\"代表著名\": \"代表著名\",\n\"代表著書\": \"代表著书\",\n\"代表著稱\": \"代表著称\",\n\"代表著者\": \"代表著者\",\n\"代表著述\": \"代表著述\",\n\"代表著錄\": \"代表著录\",\n\"仲介\": \"中介\",\n\"份內\": \"分内\",\n\"份外\": \"分外\",\n\"份外卖\": \"份外卖\",\n\"份外，\": \"份外，\",\n\"份量\": \"分量\",\n\"伊利諾\": \"伊利诺伊\",\n\"伊利諾伊\": \"伊利诺伊\",\n\"伊斯坦堡\": \"伊斯坦布尔\",\n\"伊斯蘭瑪巴德\": \"伊斯兰堡\",\n\"伊波拉\": \"埃博拉\",\n\"伊莉莎白\": \"伊丽莎白\",\n\"伏地挺身\": \"俯卧撑\",\n\"伏著\": \"伏着\",\n\"伯明罕\": \"伯明翰\",\n\"伴著\": \"伴着\",\n\"伴著作\": \"伴著作\",\n\"伴著名\": \"伴著名\",\n\"伴著書\": \"伴著书\",\n\"伴著稱\": \"伴著称\",\n\"伴著者\": \"伴著者\",\n\"伴著述\": \"伴著述\",\n\"伴著錄\": \"伴著录\",\n\"伺服器\": \"服务器\",\n\"位元組\": \"字节\",\n\"低著\": \"低着\",\n\"低著作\": \"低著作\",\n\"低著名\": \"低著名\",\n\"低著書\": \"低著书\",\n\"低著称\": \"低著称\",\n\"低著稱\": \"低著称\",\n\"低著者\": \"低著者\",\n\"低著述\": \"低著述\",\n\"低著錄\": \"低著录\",\n\"住著\": \"住着\",\n\"住著作\": \"住著作\",\n\"住著名\": \"住著名\",\n\"住著書\": \"住著书\",\n\"住著称\": \"住著称\",\n\"住著稱\": \"住著称\",\n\"住著者\": \"住著者\",\n\"住著述\": \"住著述\",\n\"住著錄\": \"住著录\",\n\"作業系統\": \"操作系统\",\n\"來著\": \"来着\",\n\"來著作\": \"来著作\",\n\"來著名\": \"来著名\",\n\"來著書\": \"来著书\",\n\"來著稱\": \"来著称\",\n\"來著者\": \"来著者\",\n\"來著述\": \"来著述\",\n\"來著錄\": \"来著录\",\n\"侏儸紀\": \"侏罗纪\",\n\"促著\": \"促着\",\n\"保護著\": \"保护着\",\n\"保鑣\": \"保镖\",\n\"保障著\": \"保障着\",\n\"保障著作\": \"保障著作\",\n\"保障著名\": \"保障著名\",\n\"保障著書\": \"保障著书\",\n\"保障著称\": \"保障著称\",\n\"保障著稱\": \"保障著称\",\n\"保障著者\": \"保障著者\",\n\"保障著述\": \"保障著述\",\n\"保障著錄\": \"保障著录\",\n\"信著\": \"信着\",\n\"信著《\": \"信著《\",\n\"信著作\": \"信著作\",\n\"信著名\": \"信著名\",\n\"信著書\": \"信著书\",\n\"信著称\": \"信著称\",\n\"信著稱\": \"信著称\",\n\"信著者\": \"信著者\",\n\"信著述\": \"信著述\",\n\"信著錄\": \"信著录\",\n\"倒帳\": \"倒账\",\n\"候著\": \"候着\",\n\"候著作\": \"候著作\",\n\"候著名\": \"候著名\",\n\"候著書\": \"候著书\",\n\"候著稱\": \"候著称\",\n\"候著者\": \"候著者\",\n\"候著述\": \"候著述\",\n\"候著錄\": \"候著录\",\n\"借著\": \"借着\",\n\"借著作\": \"借著作\",\n\"借著名\": \"借著名\",\n\"借著書\": \"借著书\",\n\"借著稱\": \"借著称\",\n\"借著者\": \"借著者\",\n\"借著述\": \"借著述\",\n\"借著錄\": \"借著录\",\n\"假帳\": \"假账\",\n\"做著\": \"做着\",\n\"做著作\": \"做著作\",\n\"做著名\": \"做著名\",\n\"做著書\": \"做著书\",\n\"做著稱\": \"做著称\",\n\"做著者\": \"做著者\",\n\"做著述\": \"做著述\",\n\"做著錄\": \"做著录\",\n\"健力士世界紀錄\": \"吉尼斯世界纪录\",\n\"側著\": \"侧着\",\n\"側著作\": \"侧著作\",\n\"側著名\": \"侧著名\",\n\"側著書\": \"侧著书\",\n\"側著稱\": \"侧著称\",\n\"側著者\": \"侧著者\",\n\"側著述\": \"侧著述\",\n\"側著錄\": \"侧著录\",\n\"偷著\": \"偷着\",\n\"偷著作\": \"偷著作\",\n\"偷著名\": \"偷著名\",\n\"偷著書\": \"偷著书\",\n\"偷著稱\": \"偷著称\",\n\"偷著者\": \"偷著者\",\n\"偷著述\": \"偷著述\",\n\"偷著錄\": \"偷著录\",\n\"傅利葉\": \"傅里叶\",\n\"備著\": \"备着\",\n\"備著作\": \"备著作\",\n\"備著名\": \"备著名\",\n\"備著書\": \"备著书\",\n\"備著稱\": \"备著称\",\n\"備著者\": \"备著者\",\n\"備著述\": \"备著述\",\n\"備著錄\": \"备著录\",\n\"傳著\": \"传着\",\n\"傳著作\": \"传著作\",\n\"傳著名\": \"传著名\",\n\"傳著書\": \"传著书\",\n\"傳著稱\": \"传著称\",\n\"傳著者\": \"传著者\",\n\"傳著述\": \"传著述\",\n\"傳著錄\": \"传著录\",\n\"優先順序\": \"优先级\",\n\"光碟機\": \"光驱\",\n\"光著\": \"光着\",\n\"光著《\": \"光著《\",\n\"光著作\": \"光著作\",\n\"光著名\": \"光著名\",\n\"光著書\": \"光著书\",\n\"光著称\": \"光著称\",\n\"光著稱\": \"光著称\",\n\"光著者\": \"光著者\",\n\"光著述\": \"光著述\",\n\"光著錄\": \"光著录\",\n\"克卜勒\": \"开普勒\",\n\"克羅埃西亞\": \"克罗地亚\",\n\"入帳\": \"入账\",\n\"全球資訊網\": \"万维网\",\n\"八進位\": \"八进制\",\n\"八進位制\": \"八进位制\",\n\"公升\": \"升\",\n\"公厘\": \"毫米\",\n\"公尺\": \"米\",\n\"公帳\": \"公账\",\n\"公釐\": \"毫米\",\n\"六進位\": \"六进制\",\n\"六進位制\": \"六进位制\",\n\"共和联邦\": \"英联邦\",\n\"冒著\": \"冒着\",\n\"冒著作\": \"冒著作\",\n\"冒著名\": \"冒著名\",\n\"冒著書\": \"冒著书\",\n\"冒著稱\": \"冒著称\",\n\"冒著者\": \"冒著者\",\n\"冒著述\": \"冒著述\",\n\"冒著錄\": \"冒著录\",\n\"凱薩琳\": \"凯瑟琳\",\n\"分佈著\": \"分布着\",\n\"分布著\": \"分布着\",\n\"列印\": \"打印\",\n\"列支敦斯登\": \"列支敦士登\",\n\"別著\": \"别着\",\n\"刮著\": \"刮着\",\n\"到帳\": \"到账\",\n\"制著\": \"制着\",\n\"制著作\": \"制著作\",\n\"制著名\": \"制著名\",\n\"制著書\": \"制著书\",\n\"制著稱\": \"制著称\",\n\"制著者\": \"制著者\",\n\"制著述\": \"制著述\",\n\"制著錄\": \"制著录\",\n\"刻著\": \"刻着\",\n\"刻著作\": \"刻著作\",\n\"刻著名\": \"刻著名\",\n\"刻著書\": \"刻著书\",\n\"刻著称\": \"刻著称\",\n\"刻著稱\": \"刻著称\",\n\"刻著者\": \"刻著者\",\n\"刻著述\": \"刻著述\",\n\"刻著錄\": \"刻著录\",\n\"前波莫瑞\": \"前波美拉尼亚\",\n\"劃著\": \"划着\",\n\"功能變數名稱\": \"域名\",\n\"加彭\": \"加蓬\",\n\"加泰隆尼亞\": \"加泰罗尼亚\",\n\"加薩走廊\": \"加沙地带\",\n\"努力著\": \"努力着\",\n\"努力著作\": \"努力著作\",\n\"努力著名\": \"努力著名\",\n\"努力著書\": \"努力著书\",\n\"努力著称\": \"努力著称\",\n\"努力著稱\": \"努力著称\",\n\"努力著者\": \"努力著者\",\n\"努力著述\": \"努力著述\",\n\"努力著錄\": \"努力著录\",\n\"動畫影集\": \"系列动画片\",\n\"動著\": \"动着\",\n\"動著作\": \"动著作\",\n\"動著名\": \"动著名\",\n\"動著書\": \"动著书\",\n\"動著稱\": \"动著称\",\n\"動著者\": \"动著者\",\n\"動著述\": \"动著述\",\n\"動著錄\": \"动著录\",\n\"包著\": \"包着\",\n\"北韓\": \"北朝鲜\",\n\"匯流排\": \"总线\",\n\"區域網\": \"局域网\",\n\"區域網路\": \"局域网络\",\n\"十進位\": \"十进制\",\n\"十進位制\": \"十进位制\",\n\"千里達\": \"特立尼达\",\n\"千里達及托巴哥\": \"特立尼达和多巴哥\",\n\"卑詩省\": \"不列颠哥伦比亚省\",\n\"南韓\": \"韩国\",\n\"占士邦\": \"詹姆斯·邦德\",\n\"占著\": \"占着\",\n\"占著作\": \"占著作\",\n\"占著名\": \"占著名\",\n\"占著者\": \"占著者\",\n\"卡佩雅蒂\": \"卡普里亚蒂\",\n\"卡斯楚\": \"卡斯特罗\",\n\"卯足\": \"铆足\",\n\"印著\": \"印着\",\n\"印著《\": \"印著《\",\n\"印著作\": \"印著作\",\n\"印著名\": \"印著名\",\n\"印著書\": \"印著书\",\n\"印著稱\": \"印著称\",\n\"印著者\": \"印著者\",\n\"印著述\": \"印著述\",\n\"印著錄\": \"印著录\",\n\"印表機\": \"打印机\",\n\"厄利垂亚\": \"厄立特里亚\",\n\"厄利垂亞\": \"厄立特里亚\",\n\"厄瓜多\": \"厄瓜多尔\",\n\"厄瓜多尔\": \"厄瓜多尔\",\n\"厄瓜多爾\": \"厄瓜多尔\",\n\"厄立特里亞\": \"厄立特里亚\",\n\"原始碼\": \"源代码\",\n\"原子筆\": \"圆珠笔\",\n\"受著\": \"受着\",\n\"受著作\": \"受著作\",\n\"受著名\": \"受著名\",\n\"受著書\": \"受著书\",\n\"受著稱\": \"受著称\",\n\"受著者\": \"受著者\",\n\"受著述\": \"受著述\",\n\"受著錄\": \"受著录\",\n\"叫著\": \"叫着\",\n\"叫著作\": \"叫著作\",\n\"叫著名\": \"叫著名\",\n\"叫著書\": \"叫著书\",\n\"叫著稱\": \"叫著称\",\n\"叫著者\": \"叫著者\",\n\"叫著述\": \"叫著述\",\n\"叫著錄\": \"叫著录\",\n\"可攜式\": \"便携式\",\n\"台北韓\": \"台北韩\",\n\"台帳\": \"台账\",\n\"叱吒\": \"叱咤\",\n\"史丹福大學\": \"斯坦福大学\",\n\"史特勞斯\": \"斯特劳斯\",\n\"史瓦帝尼\": \"斯威士兰\",\n\"史瓦濟蘭\": \"斯威士兰\",\n\"史達林\": \"斯大林\",\n\"吃著\": \"吃着\",\n\"吉力馬札羅\": \"乞力马扎罗\",\n\"吉布地\": \"吉布提\",\n\"吉里巴斯\": \"基里巴斯\",\n\"吊著\": \"吊着\",\n\"名份\": \"名分\",\n\"吐瓦魯\": \"图瓦卢\",\n\"向著\": \"向着\",\n\"向著作\": \"向著作\",\n\"向著名\": \"向著名\",\n\"向著書\": \"向著书\",\n\"向著稱\": \"向著称\",\n\"向著者\": \"向著者\",\n\"向著述\": \"向著述\",\n\"向著錄\": \"向著录\",\n\"含著\": \"含着\",\n\"含著作\": \"含著作\",\n\"含著名\": \"含著名\",\n\"含著書\": \"含著书\",\n\"含著稱\": \"含著称\",\n\"含著者\": \"含著者\",\n\"含著述\": \"含著述\",\n\"含著錄\": \"含著录\",\n\"吹著\": \"吹着\",\n\"吹著作\": \"吹著作\",\n\"吹著名\": \"吹著名\",\n\"吹著書\": \"吹著书\",\n\"吹著稱\": \"吹著称\",\n\"吹著者\": \"吹著者\",\n\"吹著述\": \"吹著述\",\n\"吹著錄\": \"吹著录\",\n\"呆帳\": \"呆账\",\n\"呆著\": \"呆着\",\n\"味著\": \"味着\",\n\"味著作\": \"味著作\",\n\"味著名\": \"味著名\",\n\"味著書\": \"味著书\",\n\"味著称\": \"味著称\",\n\"味著稱\": \"味著称\",\n\"味著者\": \"味著者\",\n\"味著述\": \"味著述\",\n\"味著錄\": \"味著录\",\n\"咖哩\": \"咖喱\",\n\"咬著\": \"咬着\",\n\"哥德式\": \"哥特式\",\n\"哥斯大黎加\": \"哥斯达黎加\",\n\"哭著\": \"哭着\",\n\"哭著作\": \"哭著作\",\n\"哭著名\": \"哭著名\",\n\"哭著書\": \"哭著书\",\n\"哭著稱\": \"哭著称\",\n\"哭著者\": \"哭著者\",\n\"哭著述\": \"哭著述\",\n\"哭著錄\": \"哭著录\",\n\"唐納·川普\": \"唐纳德·特朗普\",\n\"唯讀\": \"只读\",\n\"唱著\": \"唱着\",\n\"唱著作\": \"唱著作\",\n\"唱著名\": \"唱著名\",\n\"唱著書\": \"唱著书\",\n\"唱著稱\": \"唱著称\",\n\"唱著者\": \"唱著者\",\n\"唱著述\": \"唱著述\",\n\"唱著錄\": \"唱著录\",\n\"啸吒\": \"啸咤\",\n\"喀拉蚩\": \"卡拉奇\",\n\"喝著\": \"喝着\",\n\"喝著作\": \"喝著作\",\n\"喝著名\": \"喝著名\",\n\"喝著書\": \"喝著书\",\n\"喝著稱\": \"喝著称\",\n\"喝著者\": \"喝著者\",\n\"喝著述\": \"喝著述\",\n\"喝著錄\": \"喝著录\",\n\"喬治·歐威爾\": \"乔治·奥威尔\",\n\"喬治亞字母\": \"格鲁吉亚字母\",\n\"單眼相機\": \"单反相机\",\n\"單鏡反光機\": \"单反相机\",\n\"嗅著\": \"嗅着\",\n\"嘉芙蓮\": \"凯瑟琳\",\n\"嚷著\": \"嚷着\",\n\"嚷著作\": \"嚷著作\",\n\"嚷著名\": \"嚷著名\",\n\"嚷著書\": \"嚷著书\",\n\"嚷著稱\": \"嚷著称\",\n\"嚷著者\": \"嚷著者\",\n\"嚷著述\": \"嚷著述\",\n\"嚷著錄\": \"嚷著录\",\n\"回著\": \"回着\",\n\"回著名\": \"回著名\",\n\"因著\": \"因着\",\n\"因著〈\": \"因著〈\",\n\"因著《\": \"因著《\",\n\"因著作\": \"因著作\",\n\"因著名\": \"因著名\",\n\"因著录\": \"因著录\",\n\"因著書\": \"因著书\",\n\"因著稱\": \"因著称\",\n\"因著者\": \"因著者\",\n\"因著述\": \"因著述\",\n\"因著錄\": \"因著录\",\n\"困著\": \"困着\",\n\"困著作\": \"困著作\",\n\"困著名\": \"困著名\",\n\"困著書\": \"困著书\",\n\"困著稱\": \"困著称\",\n\"困著者\": \"困著者\",\n\"困著述\": \"困著述\",\n\"困著錄\": \"困著录\",\n\"固著\": \"固着\",\n\"圍著\": \"围着\",\n\"圍著作\": \"围著作\",\n\"圍著名\": \"围著名\",\n\"圍著書\": \"围著书\",\n\"圍著稱\": \"围著称\",\n\"圍著者\": \"围著者\",\n\"圍著述\": \"围著述\",\n\"圍著錄\": \"围著录\",\n\"土魯斯\": \"图卢兹\",\n\"坎城\": \"戛纳\",\n\"坎培拉\": \"堪培拉\",\n\"坐著\": \"坐着\",\n\"坐著作\": \"坐著作\",\n\"坐著名\": \"坐著名\",\n\"坐著書\": \"坐著书\",\n\"坐著稱\": \"坐著称\",\n\"坐著者\": \"坐著者\",\n\"坐著述\": \"坐著述\",\n\"坐著錄\": \"坐著录\",\n\"坚杜拜\": \"坚杜拜\",\n\"坦尚尼亞\": \"坦桑尼亚\",\n\"埋著\": \"埋着\",\n\"執行長、\": \"首席执行官、\",\n\"執行長。\": \"首席执行官。\",\n\"執行長，\": \"首席执行官，\",\n\"堂姊\": \"堂姐\",\n\"堅杜拜\": \"坚杜拜\",\n\"堅貞著\": \"坚贞着\",\n\"報帳\": \"报账\",\n\"塑膠袋\": \"塑料袋\",\n\"塗著\": \"涂着\",\n\"塞席爾\": \"塞舌尔\",\n\"塞拉利昂\": \"塞拉利昂\",\n\"塞拉耶佛\": \"萨拉热窝\",\n\"塞普勒斯\": \"塞浦路斯\",\n\"塞爾維亞與蒙特內哥羅\": \"塞尔维亚和黑山\",\n\"塞維亞\": \"塞维利亚\",\n\"壓著\": \"压着\",\n\"壓著作\": \"压著作\",\n\"壓著名\": \"压著名\",\n\"壓著書\": \"压著书\",\n\"壓著稱\": \"压著称\",\n\"壓著者\": \"压著者\",\n\"壓著述\": \"压著述\",\n\"壓著錄\": \"压著录\",\n\"士多啤梨\": \"草莓\",\n\"外掛程式\": \"插件\",\n\"外部連結\": \"外部链接\",\n\"多明尼加\": \"多米尼加\",\n\"夢著\": \"梦着\",\n\"夢著《\": \"梦著《\",\n\"夢著作\": \"梦著作\",\n\"夢著名\": \"梦著名\",\n\"夢著書\": \"梦著书\",\n\"夢著稱\": \"梦著称\",\n\"夢著者\": \"梦著者\",\n\"夢著述\": \"梦著述\",\n\"夢著錄\": \"梦著录\",\n\"大姊\": \"大姐\",\n\"大姊姊\": \"大姐姐\",\n\"大英國協\": \"英联邦\",\n\"天份\": \"天分\",\n\"太空梭\": \"航天飞机\",\n\"太空衣\": \"宇航服\",\n\"太空飛行員\": \"宇航员\",\n\"夾著\": \"夹着\",\n\"夾著作\": \"夹著作\",\n\"夾著名\": \"夹著名\",\n\"夾著書\": \"夹著书\",\n\"夾著稱\": \"夹著称\",\n\"夾著者\": \"夹著者\",\n\"夾著述\": \"夹著述\",\n\"夾著錄\": \"夹著录\",\n\"奈及利亞\": \"尼日利亚\",\n\"奈洛比\": \"内罗毕\",\n\"奧勒岡\": \"俄勒冈\",\n\"姊夫\": \"姐夫\",\n\"姊姊\": \"姐姐\",\n\"姊弟\": \"姐弟\",\n\"威斯伐倫\": \"威斯特法伦\",\n\"威爾斯\": \"威尔士\",\n\"字型大小\": \"字号\",\n\"存在著\": \"存在着\",\n\"存著\": \"存着\",\n\"存著作\": \"存著作\",\n\"存著名\": \"存著名\",\n\"孟德爾遜\": \"门德尔松\",\n\"孟德爾頌\": \"门德尔松\",\n\"學姊\": \"学姐\",\n\"學著\": \"学着\",\n\"學著作\": \"学著作\",\n\"學著名\": \"学著名\",\n\"學著書\": \"学著书\",\n\"學著稱\": \"学著称\",\n\"學著者\": \"学著者\",\n\"學著述\": \"学著述\",\n\"學著錄\": \"学著录\",\n\"守著\": \"守着\",\n\"守著作\": \"守著作\",\n\"守著名\": \"守著名\",\n\"守著書\": \"守著书\",\n\"守著称\": \"守著称\",\n\"守著稱\": \"守著称\",\n\"守著者\": \"守著者\",\n\"守著述\": \"守著述\",\n\"守著錄\": \"守著录\",\n\"安哈特\": \"安哈尔特\",\n\"安地卡\": \"安提瓜\",\n\"安地卡及巴布達\": \"安提瓜和巴布达\",\n\"宏都拉斯\": \"洪都拉斯\",\n\"定著\": \"定着\",\n\"定著《\": \"定著《\",\n\"定著作\": \"定著作\",\n\"定著名\": \"定著名\",\n\"定著書\": \"定著书\",\n\"定著称\": \"定著称\",\n\"定著稱\": \"定著称\",\n\"定著者\": \"定著者\",\n\"定著述\": \"定著述\",\n\"定著錄\": \"定著录\",\n\"密执安\": \"密歇根\",\n\"密西根\": \"密歇根\",\n\"富比士\": \"福布斯\",\n\"寫著\": \"写着\",\n\"寫著作\": \"写著作\",\n\"寫著名\": \"写著名\",\n\"寫著書\": \"写著书\",\n\"寫著稱\": \"写著称\",\n\"寫著者\": \"写著者\",\n\"寫著述\": \"写著述\",\n\"寫著錄\": \"写著录\",\n\"寮人民民主共和國\": \"老挝人民民主共和国\",\n\"寮國\": \"老挝\",\n\"寮語\": \"老挝语\",\n\"尋著\": \"寻着\",\n\"尋著作\": \"寻著作\",\n\"尋著名\": \"寻著名\",\n\"尋著書\": \"寻著书\",\n\"尋著稱\": \"寻著称\",\n\"尋著者\": \"寻著者\",\n\"尋著述\": \"寻著述\",\n\"尋著錄\": \"寻著录\",\n\"對帳\": \"对账\",\n\"對著\": \"对着\",\n\"對著作\": \"对著作\",\n\"對著名\": \"对著名\",\n\"對著書\": \"对著书\",\n\"對著稱\": \"对著称\",\n\"對著者\": \"对著者\",\n\"對著述\": \"对著述\",\n\"對著錄\": \"对著录\",\n\"尖峰時段\": \"高峰时段\",\n\"尖峰時間\": \"高峰时间\",\n\"尚比亞\": \"赞比亚\",\n\"尼日爾\": \"尼日尔\",\n\"尾班車\": \"末班车\",\n\"展著\": \"展着\",\n\"展著《\": \"展著《\",\n\"展著作\": \"展著作\",\n\"展著名\": \"展著名\",\n\"展著書\": \"展著书\",\n\"展著稱\": \"展著称\",\n\"展著者\": \"展著者\",\n\"展著述\": \"展著述\",\n\"展著錄\": \"展著录\",\n\"峇里\": \"巴厘\",\n\"工具機\": \"机床\",\n\"巨集\": \"宏\",\n\"巴塞隆拿\": \"巴塞罗那\",\n\"巴塞隆納\": \"巴塞罗那\",\n\"巴斯拉\": \"巴士拉\",\n\"巴貝多\": \"巴巴多斯\",\n\"布吉納法索\": \"布基纳法索\",\n\"布拉提斯拉瓦\": \"布拉迪斯拉发\",\n\"布殊\": \"布什\",\n\"布蘭登堡\": \"勃兰登堡\",\n\"布隆泉\": \"布隆方丹\",\n\"希冀著\": \"希冀着\",\n\"希拉莉\": \"希拉里\",\n\"希拉蕊\": \"希拉里\",\n\"希特拉\": \"希特勒\",\n\"帕拉林匹克\": \"残疾人奥林匹克\",\n\"帕運會\": \"残奥会\",\n\"帕邁拉環礁\": \"巴尔米拉环礁\",\n\"帛琉\": \"帕劳\",\n\"席哈克\": \"希拉克\",\n\"帳上\": \"账上\",\n\"帳冊\": \"账册\",\n\"帳務\": \"账务\",\n\"帳單\": \"账单\",\n\"帳外\": \"账外\",\n\"帳戶\": \"账户\",\n\"帳房\": \"账房\",\n\"帳本\": \"账本\",\n\"帳款\": \"账款\",\n\"帳目\": \"账目\",\n\"帳簿\": \"账簿\",\n\"帳號\": \"账号\",\n\"帳面\": \"账面\",\n\"帶著\": \"带着\",\n\"帶著作\": \"带著作\",\n\"帶著名\": \"带著名\",\n\"帶著書\": \"带著书\",\n\"帶著稱\": \"带著称\",\n\"帶著者\": \"带著者\",\n\"帶著述\": \"带著述\",\n\"帶著錄\": \"带著录\",\n\"幫浦\": \"泵\",\n\"幫著\": \"帮着\",\n\"幫著作\": \"帮著作\",\n\"幫著名\": \"帮著名\",\n\"幫著書\": \"帮著书\",\n\"幫著稱\": \"帮著称\",\n\"幫著者\": \"帮著者\",\n\"幫著述\": \"帮著述\",\n\"幫著錄\": \"帮著录\",\n\"幹著\": \"干着\",\n\"幹著名\": \"幹著名\",\n\"幹著稱\": \"幹著称\",\n\"幾內亞比索\": \"几内亚比绍\",\n\"庇護著\": \"庇护着\",\n\"庇里牛斯\": \"比利牛斯\",\n\"庫德人\": \"库尔德人\",\n\"庫德族\": \"库尔德族\",\n\"建帳\": \"建账\",\n\"強斯頓環礁\": \"约翰斯顿岛\",\n\"形上學\": \"形而上学\",\n\"待著\": \"待着\",\n\"待著作\": \"待著作\",\n\"待著名\": \"待著名\",\n\"待著書\": \"待著书\",\n\"待著稱\": \"待著称\",\n\"待著者\": \"待著者\",\n\"待著述\": \"待著述\",\n\"待著錄\": \"待著录\",\n\"得著\": \"得着\",\n\"得著作\": \"得著作\",\n\"得著名\": \"得著名\",\n\"得著書\": \"得著书\",\n\"得著稱\": \"得著称\",\n\"得著者\": \"得著者\",\n\"得著述\": \"得著述\",\n\"得著錄\": \"得著录\",\n\"御姊\": \"御姐\",\n\"循著\": \"循着\",\n\"循著作\": \"循著作\",\n\"循著名\": \"循著名\",\n\"循著書\": \"循著书\",\n\"循著稱\": \"循著称\",\n\"循著者\": \"循著者\",\n\"循著述\": \"循著述\",\n\"循著錄\": \"循著录\",\n\"徵狀\": \"症状\",\n\"德勒斯登\": \"德累斯顿\",\n\"德希達\": \"德里达\",\n\"德蕾莎·梅伊\": \"特蕾莎·梅\",\n\"心著\": \"心着\",\n\"心著《\": \"心著《\",\n\"心著作\": \"心著作\",\n\"心著名\": \"心著名\",\n\"心著書\": \"心著书\",\n\"心著称\": \"心著称\",\n\"心著稱\": \"心著称\",\n\"心著者\": \"心著者\",\n\"心著述\": \"心著述\",\n\"心著錄\": \"心著录\",\n\"忌廉\": \"奶油\",\n\"忍著\": \"忍着\",\n\"忍著作\": \"忍著作\",\n\"忍著名\": \"忍著名\",\n\"忍著書\": \"忍著书\",\n\"忍著稱\": \"忍著称\",\n\"忍著者\": \"忍著者\",\n\"忍著述\": \"忍著述\",\n\"忍著錄\": \"忍著录\",\n\"忙著\": \"忙着\",\n\"忙著作\": \"忙著作\",\n\"忙著名\": \"忙著名\",\n\"忙著書\": \"忙著书\",\n\"忙著稱\": \"忙著称\",\n\"忙著者\": \"忙著者\",\n\"忙著述\": \"忙著述\",\n\"忙著錄\": \"忙著录\",\n\"忠貞著\": \"忠贞着\",\n\"快閃記憶體\": \"闪存\",\n\"急著\": \"急着\",\n\"急著作\": \"急著作\",\n\"急著名\": \"急著名\",\n\"急著書\": \"急著书\",\n\"急著稱\": \"急著称\",\n\"急著者\": \"急著者\",\n\"急著述\": \"急著述\",\n\"急著錄\": \"急著录\",\n\"恰如其份\": \"恰如其分\",\n\"悠著\": \"悠着\",\n\"悠著作\": \"悠著作\",\n\"悠著名\": \"悠著名\",\n\"悠著書\": \"悠著书\",\n\"悠著稱\": \"悠著称\",\n\"悠著者\": \"悠著者\",\n\"悠著述\": \"悠著述\",\n\"悠著錄\": \"悠著录\",\n\"悶著\": \"闷着\",\n\"想著\": \"想着\",\n\"想著作\": \"想著作\",\n\"想著名\": \"想著名\",\n\"想著書\": \"想著书\",\n\"想著称\": \"想著称\",\n\"想著稱\": \"想著称\",\n\"想著者\": \"想著者\",\n\"想著述\": \"想著述\",\n\"想著錄\": \"想著录\",\n\"愛滋\": \"艾滋\",\n\"愛著\": \"爱着\",\n\"愛著作\": \"爱著作\",\n\"愛著名\": \"爱著名\",\n\"愛著書\": \"爱著书\",\n\"愛著稱\": \"爱著称\",\n\"愛著者\": \"爱著者\",\n\"愛著述\": \"爱著述\",\n\"愛著錄\": \"爱著录\",\n\"愛護著\": \"爱护着\",\n\"慣著\": \"惯着\",\n\"慣著作\": \"惯著作\",\n\"慣著名\": \"惯著名\",\n\"慣著書\": \"惯著书\",\n\"慣著稱\": \"惯著称\",\n\"慣著者\": \"惯著者\",\n\"慣著述\": \"惯著述\",\n\"慣著錄\": \"惯著录\",\n\"憑著\": \"凭着\",\n\"憑著作\": \"凭著作\",\n\"憑著名\": \"凭著名\",\n\"憑著者\": \"凭著者\",\n\"應用程式\": \"应用程序\",\n\"應著\": \"应着\",\n\"應著作\": \"应著作\",\n\"應著名\": \"应著名\",\n\"應著書\": \"应著书\",\n\"應著稱\": \"应著称\",\n\"應著者\": \"应著者\",\n\"應著述\": \"应著述\",\n\"應著錄\": \"应著录\",\n\"懷著\": \"怀着\",\n\"懷著《\": \"怀著《\",\n\"懷著作\": \"怀著作\",\n\"懷著名\": \"怀著名\",\n\"懷著書\": \"怀著书\",\n\"懷著稱\": \"怀著称\",\n\"懷著者\": \"怀著者\",\n\"懷著述\": \"怀著述\",\n\"懷著錄\": \"怀著录\",\n\"戀著\": \"恋着\",\n\"戀著作\": \"恋著作\",\n\"戀著名\": \"恋著名\",\n\"戀著書\": \"恋著书\",\n\"戀著稱\": \"恋著称\",\n\"戀著者\": \"恋著者\",\n\"戀著述\": \"恋著述\",\n\"戀著錄\": \"恋著录\",\n\"戈巴契夫\": \"戈尔巴乔夫\",\n\"成份\": \"成分\",\n\"成份股\": \"成份股\",\n\"戰著\": \"战着\",\n\"戰著作\": \"战著作\",\n\"戰著名\": \"战著名\",\n\"戰著書\": \"战著书\",\n\"戰著稱\": \"战著称\",\n\"戰著者\": \"战著者\",\n\"戰著述\": \"战著述\",\n\"戰著錄\": \"战著录\",\n\"戴卓爾\": \"撒切尔\",\n\"戴著\": \"戴着\",\n\"戴著作\": \"戴著作\",\n\"戴著名\": \"戴著名\",\n\"戴著書\": \"戴著书\",\n\"戴著稱\": \"戴著称\",\n\"戴著者\": \"戴著者\",\n\"戴著述\": \"戴著述\",\n\"戴著錄\": \"戴著录\",\n\"打著\": \"打着\",\n\"打著作\": \"打著作\",\n\"打著名\": \"打著名\",\n\"打著書\": \"打著书\",\n\"打著稱\": \"打著称\",\n\"打著者\": \"打著者\",\n\"打著述\": \"打著述\",\n\"打著錄\": \"打著录\",\n\"托巴哥\": \"多巴哥\",\n\"扛著\": \"扛着\",\n\"扛著作\": \"扛著作\",\n\"扛著名\": \"扛著名\",\n\"扛著書\": \"扛著书\",\n\"扛著稱\": \"扛著称\",\n\"扛著者\": \"扛著者\",\n\"扛著述\": \"扛著述\",\n\"扛著錄\": \"扛著录\",\n\"抓著\": \"抓着\",\n\"抓著作\": \"抓著作\",\n\"抓著名\": \"抓著名\",\n\"抓著稱\": \"抓著称\",\n\"抓著者\": \"抓著者\",\n\"抓著述\": \"抓著述\",\n\"抓著錄\": \"抓著录\",\n\"投機份子\": \"投机分子\",\n\"披索\": \"比索\",\n\"披著\": \"披着\",\n\"披著作\": \"披著作\",\n\"披著名\": \"披著名\",\n\"披著書\": \"披著书\",\n\"披著稱\": \"披著称\",\n\"披著者\": \"披著者\",\n\"披著述\": \"披著述\",\n\"披著錄\": \"披著录\",\n\"抬著\": \"抬着\",\n\"抬著作\": \"抬著作\",\n\"抬著名\": \"抬著名\",\n\"抬著稱\": \"抬著称\",\n\"抬著者\": \"抬著者\",\n\"抬著述\": \"抬著述\",\n\"抬著錄\": \"抬著录\",\n\"抱著\": \"抱着\",\n\"抱著作\": \"抱著作\",\n\"抱著名\": \"抱著名\",\n\"抱著稱\": \"抱著称\",\n\"抱著者\": \"抱著者\",\n\"抱著述\": \"抱著述\",\n\"抱著錄\": \"抱著录\",\n\"拉著\": \"拉着\",\n\"拉著作\": \"拉著作\",\n\"拉著名\": \"拉著名\",\n\"拉著書\": \"拉著书\",\n\"拉著稱\": \"拉著称\",\n\"拉著者\": \"拉著者\",\n\"拉著述\": \"拉著述\",\n\"拉著錄\": \"拉著录\",\n\"拎著\": \"拎着\",\n\"拎著作\": \"拎著作\",\n\"拎著名\": \"拎著名\",\n\"拎著稱\": \"拎著称\",\n\"拎著者\": \"拎著者\",\n\"拎著述\": \"拎著述\",\n\"拎著錄\": \"拎著录\",\n\"拖著\": \"拖着\",\n\"拖著作\": \"拖著作\",\n\"拖著名\": \"拖著名\",\n\"拖著稱\": \"拖著称\",\n\"拖著者\": \"拖著者\",\n\"拖著述\": \"拖著述\",\n\"拖著錄\": \"拖著录\",\n\"拼著\": \"拼着\",\n\"拼著作\": \"拼著作\",\n\"拼著名\": \"拼著名\",\n\"拼著稱\": \"拼著称\",\n\"拼著者\": \"拼著者\",\n\"拼著述\": \"拼著述\",\n\"拼著錄\": \"拼著录\",\n\"拿著\": \"拿着\",\n\"拿著作\": \"拿著作\",\n\"拿著名\": \"拿著名\",\n\"拿著稱\": \"拿著称\",\n\"拿著者\": \"拿著者\",\n\"拿著述\": \"拿著述\",\n\"拿著錄\": \"拿著录\",\n\"持著\": \"持着\",\n\"持著作\": \"持著作\",\n\"持著名\": \"持著名\",\n\"持著稱\": \"持著称\",\n\"持著者\": \"持著者\",\n\"持著述\": \"持著述\",\n\"持著錄\": \"持著录\",\n\"挑著\": \"挑着\",\n\"挑著作\": \"挑著作\",\n\"挑著名\": \"挑著名\",\n\"挑著稱\": \"挑著称\",\n\"挑著者\": \"挑著者\",\n\"挑著述\": \"挑著述\",\n\"挑著錄\": \"挑著录\",\n\"挨著\": \"挨着\",\n\"挨著作\": \"挨著作\",\n\"挨著名\": \"挨著名\",\n\"挨著稱\": \"挨著称\",\n\"挨著者\": \"挨著者\",\n\"挨著述\": \"挨著述\",\n\"挨著錄\": \"挨著录\",\n\"捆著\": \"捆着\",\n\"捆著作\": \"捆著作\",\n\"捆著名\": \"捆著名\",\n\"捆著稱\": \"捆著称\",\n\"捆著者\": \"捆著者\",\n\"捆著述\": \"捆著述\",\n\"捆著錄\": \"捆著录\",\n\"掃瞄\": \"扫描\",\n\"掃瞄器\": \"扫描仪\",\n\"掌上壓\": \"俯卧撑\",\n\"掖著\": \"掖着\",\n\"掖著作\": \"掖著作\",\n\"掖著名\": \"掖著名\",\n\"掖著稱\": \"掖著称\",\n\"掖著者\": \"掖著者\",\n\"掖著述\": \"掖著述\",\n\"掖著錄\": \"掖著录\",\n\"掙著\": \"挣着\",\n\"掙著作\": \"挣著作\",\n\"掙著名\": \"挣著名\",\n\"掙著書\": \"挣著书\",\n\"掙著稱\": \"挣著称\",\n\"掙著者\": \"挣著者\",\n\"掙著述\": \"挣著述\",\n\"掙著錄\": \"挣著录\",\n\"掛著\": \"挂着\",\n\"接著\": \"接着\",\n\"接著作\": \"接著作\",\n\"接著名\": \"接著名\",\n\"接著稱\": \"接著称\",\n\"接著者\": \"接著者\",\n\"接著述\": \"接著述\",\n\"接著錄\": \"接著录\",\n\"控制項\": \"控件\",\n\"揉著\": \"揉着\",\n\"揉著作\": \"揉著作\",\n\"揉著名\": \"揉著名\",\n\"揉著書\": \"揉著书\",\n\"揉著稱\": \"揉著称\",\n\"揉著者\": \"揉著者\",\n\"揉著述\": \"揉著述\",\n\"揉著錄\": \"揉著录\",\n\"提比里西\": \"第比利斯\",\n\"提著\": \"提着\",\n\"提著作\": \"提著作\",\n\"提著名\": \"提著名\",\n\"提著稱\": \"提著称\",\n\"提著者\": \"提著者\",\n\"提著述\": \"提著述\",\n\"提著錄\": \"提著录\",\n\"揮著\": \"挥着\",\n\"揮著作\": \"挥著作\",\n\"揮著名\": \"挥著名\",\n\"揮著稱\": \"挥著称\",\n\"揮著者\": \"挥著者\",\n\"揮著述\": \"挥著述\",\n\"揮著錄\": \"挥著录\",\n\"搜尋引擎\": \"搜索引擎\",\n\"摟著\": \"搂着\",\n\"摟著作\": \"搂著作\",\n\"摟著名\": \"搂著名\",\n\"摟著稱\": \"搂著称\",\n\"摟著者\": \"搂著者\",\n\"摟著述\": \"搂著述\",\n\"摟著錄\": \"搂著录\",\n\"撒拉威阿拉伯\": \"阿拉伯撒哈拉\",\n\"撞球\": \"台球\",\n\"撼著\": \"撼着\",\n\"撼著作\": \"撼著作\",\n\"撼著名\": \"撼著名\",\n\"撼著書\": \"撼著书\",\n\"撼著稱\": \"撼著称\",\n\"撼著者\": \"撼著者\",\n\"撼著述\": \"撼著述\",\n\"撼著錄\": \"撼著录\",\n\"擋著\": \"挡着\",\n\"擋著作\": \"挡著作\",\n\"擋著名\": \"挡著名\",\n\"擋著稱\": \"挡著称\",\n\"擋著者\": \"挡著者\",\n\"擋著述\": \"挡著述\",\n\"擋著錄\": \"挡著录\",\n\"擔著\": \"担着\",\n\"據著\": \"据着\",\n\"據著作\": \"据著作\",\n\"據著名\": \"据著名\",\n\"據著書\": \"据著书\",\n\"據著稱\": \"据著称\",\n\"據著者\": \"据著者\",\n\"據著述\": \"据著述\",\n\"據著錄\": \"据著录\",\n\"擡著\": \"抬着\",\n\"擺著\": \"摆着\",\n\"擺著作\": \"摆著作\",\n\"擺著名\": \"摆著名\",\n\"擺著稱\": \"摆著称\",\n\"擺著者\": \"摆著者\",\n\"擺著述\": \"摆著述\",\n\"擺著錄\": \"摆著录\",\n\"攜帶型\": \"便携式\",\n\"收帳\": \"收账\",\n\"收錄著\": \"收录着\",\n\"放帳\": \"放账\",\n\"放著\": \"放着\",\n\"放著作\": \"放著作\",\n\"放著名\": \"放著名\",\n\"放著称\": \"放著称\",\n\"放著稱\": \"放著称\",\n\"敞著\": \"敞着\",\n\"敞著作\": \"敞著作\",\n\"敞著名\": \"敞著名\",\n\"敞著稱\": \"敞著称\",\n\"敞著者\": \"敞著者\",\n\"敞著述\": \"敞著述\",\n\"敞著錄\": \"敞著录\",\n\"散佈著\": \"散布着\",\n\"散布著\": \"散布着\",\n\"數位化\": \"数字化\",\n\"數位技術\": \"数字技术\",\n\"數位照相機\": \"数码照相机\",\n\"數位相機\": \"数码相机\",\n\"數位訊號\": \"数字信号\",\n\"數位電視\": \"数字电视\",\n\"數位音樂\": \"数字音乐\",\n\"數據機\": \"调制解调器\",\n\"數碼訊號\": \"数字信号\",\n\"數碼電視\": \"数字电视\",\n\"數著\": \"数着\",\n\"數著作\": \"数著作\",\n\"數著名\": \"数著名\",\n\"數著稱\": \"数著称\",\n\"數著者\": \"数著者\",\n\"數著述\": \"数著述\",\n\"數著錄\": \"数著录\",\n\"文翠珊\": \"特蕾莎·梅\",\n\"斥著\": \"斥着\",\n\"斥著作\": \"斥著作\",\n\"斥著名\": \"斥著名\",\n\"斥著書\": \"斥著书\",\n\"斥著稱\": \"斥著称\",\n\"斥著者\": \"斥著者\",\n\"斥著述\": \"斥著述\",\n\"斥著錄\": \"斥著录\",\n\"斯堪地那維亞\": \"斯堪的纳维亚\",\n\"斯洛維尼亞\": \"斯洛文尼亚\",\n\"昂山素姬\": \"昂山素季\",\n\"昂著\": \"昂着\",\n\"昂著作\": \"昂著作\",\n\"昂著名\": \"昂著名\",\n\"昂著書\": \"昂著书\",\n\"昂著稱\": \"昂著称\",\n\"昂著者\": \"昂著者\",\n\"昂著述\": \"昂著述\",\n\"昂著錄\": \"昂著录\",\n\"明白帳\": \"明白账\",\n\"映著\": \"映着\",\n\"映著作\": \"映著作\",\n\"映著名\": \"映著名\",\n\"映著書\": \"映著书\",\n\"映著稱\": \"映著称\",\n\"映著者\": \"映著者\",\n\"映著述\": \"映著述\",\n\"映著錄\": \"映著录\",\n\"显著\": \"显著\",\n\"晃著\": \"晃着\",\n\"晃著作\": \"晃著作\",\n\"晃著名\": \"晃著名\",\n\"晃著稱\": \"晃著称\",\n\"晃著者\": \"晃著者\",\n\"晃著述\": \"晃著述\",\n\"晃著錄\": \"晃著录\",\n\"普利托利亞\": \"比勒陀利亚\",\n\"普利茲\": \"普利策\",\n\"普立茲獎\": \"普利策奖\",\n\"晶元\": \"芯片\",\n\"晶片\": \"芯片\",\n\"智慧卡\": \"智能卡\",\n\"智慧型\": \"智能\",\n\"智慧手機\": \"智能手机\",\n\"智慧機器人\": \"智能机器人\",\n\"智慧財產權\": \"知识产权\",\n\"智財權\": \"知识产权\",\n\"暗著\": \"暗着\",\n\"暗著作\": \"暗著作\",\n\"暗著名\": \"暗著名\",\n\"暗著書\": \"暗著书\",\n\"暗著稱\": \"暗著称\",\n\"暗著者\": \"暗著者\",\n\"暗著述\": \"暗著述\",\n\"暗著錄\": \"暗著录\",\n\"有著\": \"有着\",\n\"有著作\": \"有著作\",\n\"有著名\": \"有著名\",\n\"有著書\": \"有著书\",\n\"有著稱\": \"有著称\",\n\"有著者\": \"有著者\",\n\"有著述\": \"有著述\",\n\"有著錄\": \"有著录\",\n\"望著\": \"望着\",\n\"望著作\": \"望著作\",\n\"望著名\": \"望著名\",\n\"望著稱\": \"望著称\",\n\"望著者\": \"望著者\",\n\"望著述\": \"望著述\",\n\"望著錄\": \"望著录\",\n\"朝著\": \"朝着\",\n\"朝著作\": \"朝著作\",\n\"朝著名\": \"朝著名\",\n\"朝著稱\": \"朝著称\",\n\"朝著者\": \"朝著者\",\n\"朝著述\": \"朝著述\",\n\"朝著錄\": \"朝著录\",\n\"本份\": \"本分\",\n\"本帳\": \"本账\",\n\"本本份份\": \"本本分分\",\n\"本著\": \"本着\",\n\"本著作\": \"本著作\",\n\"本著名\": \"本著名\",\n\"本著書\": \"本著书\",\n\"本著稱\": \"本著称\",\n\"本著者\": \"本著者\",\n\"本著述\": \"本著述\",\n\"本著錄\": \"本著录\",\n\"札格瑞布\": \"萨格勒布\",\n\"李奧納多\": \"列奥那多\",\n\"杜塞道夫\": \"杜塞尔多夫\",\n\"杜拜\": \"迪拜\",\n\"東協\": \"东盟\",\n\"東協助\": \"东协助\",\n\"東協會\": \"东协会\",\n\"東協議\": \"东协议\",\n\"東南亞國家協會\": \"东南亚国家联盟\",\n\"板著臉\": \"板着脸\",\n\"枕著\": \"枕着\",\n\"枕著作\": \"枕著作\",\n\"枕著名\": \"枕著名\",\n\"枕著稱\": \"枕著称\",\n\"枕著者\": \"枕著者\",\n\"枕著述\": \"枕著述\",\n\"枕著錄\": \"枕著录\",\n\"柏林圍牆\": \"柏林墙\",\n\"查帳\": \"查账\",\n\"查維茲\": \"查韦斯\",\n\"柯德莉·夏萍\": \"奥黛丽·赫本\",\n\"柯林頓\": \"克林顿\",\n\"柴契爾\": \"撒切尔\",\n\"格林美獎\": \"格莱美奖\",\n\"格瑞那丁\": \"格林纳丁斯\",\n\"格瑞那達\": \"格林纳达\",\n\"桌上型電腦\": \"台式电脑\",\n\"梅赫西迪\": \"梅赛德斯\",\n\"梳著\": \"梳着\",\n\"梳著作\": \"梳著作\",\n\"梳著名\": \"梳著名\",\n\"梳著稱\": \"梳著称\",\n\"梳著者\": \"梳著者\",\n\"梳著述\": \"梳著述\",\n\"梳著錄\": \"梳著录\",\n\"梵谷\": \"梵高\",\n\"森巴舞\": \"桑巴舞\",\n\"槍枝\": \"枪支\",\n\"樂著\": \"乐着\",\n\"樂著《\": \"乐著《\",\n\"樂著作\": \"乐著作\",\n\"樂著名\": \"乐著名\",\n\"樂著書\": \"乐著书\",\n\"樂著稱\": \"乐著称\",\n\"樂著者\": \"乐著者\",\n\"樂著述\": \"乐著述\",\n\"樂著錄\": \"乐著录\",\n\"標志著\": \"标志着\",\n\"標誌著\": \"标志着\",\n\"模里西斯\": \"毛里求斯\",\n\"樸茨茅夫\": \"朴茨茅斯\",\n\"機械人\": \"机器人\",\n\"機率\": \"几率\",\n\"欄位\": \"字段\",\n\"欠帳\": \"欠账\",\n\"歐巴馬\": \"奥巴马\",\n\"正體中文\": \"繁体中文\",\n\"死帳\": \"死账\",\n\"殺著\": \"杀着\",\n\"殺著作\": \"杀著作\",\n\"殺著名\": \"杀著名\",\n\"殺著書\": \"杀著书\",\n\"殺著稱\": \"杀著称\",\n\"殺著者\": \"杀著者\",\n\"殺著述\": \"杀著述\",\n\"殺著錄\": \"杀著录\",\n\"毛里裘斯\": \"毛里求斯\",\n\"氧份\": \"氧分\",\n\"水份\": \"水分\",\n\"水氣\": \"水汽\",\n\"求著\": \"求着\",\n\"求著作\": \"求著作\",\n\"求著名\": \"求著名\",\n\"求著書\": \"求著书\",\n\"求著稱\": \"求著称\",\n\"求著者\": \"求著者\",\n\"求著述\": \"求著述\",\n\"求著錄\": \"求著录\",\n\"汕埠\": \"圣佩德罗苏拉\",\n\"汶萊\": \"文莱\",\n\"沈著\": \"沉着\",\n\"沉著\": \"沉着\",\n\"沉著作\": \"沉著作\",\n\"沉著名\": \"沉著名\",\n\"沉著書\": \"沉著书\",\n\"沉著稱\": \"沉著称\",\n\"沉著者\": \"沉著者\",\n\"沉著述\": \"沉著述\",\n\"沉著錄\": \"沉著录\",\n\"沖帳\": \"冲账\",\n\"沖著\": \"冲着\",\n\"沖著。\": \"冲著。\",\n\"沖著《\": \"冲著《\",\n\"沖著（\": \"冲著（\",\n\"沖著，\": \"冲著，\",\n\"沙地阿拉伯\": \"沙特阿拉伯\",\n\"沙烏地阿拉伯\": \"沙特阿拉伯\",\n\"沿著\": \"沿着\",\n\"沿著作\": \"沿著作\",\n\"沿著名\": \"沿著名\",\n\"沿著書\": \"沿著书\",\n\"沿著稱\": \"沿著称\",\n\"沿著者\": \"沿著者\",\n\"沿著述\": \"沿著述\",\n\"沿著錄\": \"沿著录\",\n\"波士尼亞\": \"波斯尼亚\",\n\"波士尼亞與赫塞哥維納\": \"波斯尼亚和黑塞哥维那\",\n\"波札那\": \"博茨瓦纳\",\n\"波里活\": \"宝莱坞\",\n\"活著\": \"活着\",\n\"活著作\": \"活著作\",\n\"活著名\": \"活著名\",\n\"活著書\": \"活著书\",\n\"活著稱\": \"活著称\",\n\"活著者\": \"活著者\",\n\"活著述\": \"活著述\",\n\"活著錄\": \"活著录\",\n\"派屈克\": \"帕特里克\",\n\"流動作業系統\": \"移动操作系统\",\n\"流動支付\": \"移动支付\",\n\"流動網絡\": \"移动网络\",\n\"流動裝置\": \"移动设备\",\n\"流動電話\": \"移动电话\",\n\"流水帳\": \"流水账\",\n\"流著\": \"流着\",\n\"流著作\": \"流著作\",\n\"流著名\": \"流著名\",\n\"流著書\": \"流著书\",\n\"流著稱\": \"流著称\",\n\"流著者\": \"流著者\",\n\"流著述\": \"流著述\",\n\"流著錄\": \"流著录\",\n\"流露著\": \"流露着\",\n\"浮著\": \"浮着\",\n\"浮著作\": \"浮著作\",\n\"浮著名\": \"浮著名\",\n\"浮著書\": \"浮著书\",\n\"浮著稱\": \"浮著称\",\n\"浮著者\": \"浮著者\",\n\"浮著述\": \"浮著述\",\n\"浮著錄\": \"浮著录\",\n\"海洛英\": \"海洛因\",\n\"海浬\": \"海里\",\n\"涼著\": \"凉着\",\n\"涼著作\": \"凉著作\",\n\"涼著名\": \"凉著名\",\n\"涼著書\": \"凉著书\",\n\"涼著稱\": \"凉著称\",\n\"涼著者\": \"凉著者\",\n\"涼著述\": \"凉著述\",\n\"涼著錄\": \"凉著录\",\n\"混帳\": \"混账\",\n\"清帳\": \"清账\",\n\"清澈\": \"清澈\",\n\"渴著\": \"渴着\",\n\"渴著作\": \"渴著作\",\n\"渴著名\": \"渴著名\",\n\"渴著書\": \"渴著书\",\n\"渴著稱\": \"渴著称\",\n\"渴著者\": \"渴著者\",\n\"渴著述\": \"渴著述\",\n\"渴著錄\": \"渴著录\",\n\"湊合著\": \"凑合着\",\n\"溢著\": \"溢着\",\n\"溢著作\": \"溢著作\",\n\"溢著名\": \"溢著名\",\n\"溢著書\": \"溢著书\",\n\"溢著稱\": \"溢著称\",\n\"溢著者\": \"溢著者\",\n\"溢著述\": \"溢著述\",\n\"溢著錄\": \"溢著录\",\n\"溫納圖\": \"瓦努阿图\",\n\"溫荷克\": \"温得和克\",\n\"滑鼠\": \"鼠标\",\n\"滑鼠蛇\": \"滑鼠蛇\",\n\"滿16進位\": \"满16进位\",\n\"滿二進位\": \"满二进位\",\n\"滿八進位\": \"满八进位\",\n\"滿六進位\": \"满六进位\",\n\"滿十六進位\": \"满十六进位\",\n\"滿十進位\": \"满十进位\",\n\"滿著\": \"满着\",\n\"滿著作\": \"满著作\",\n\"滿著名\": \"满著名\",\n\"滿著者\": \"满著者\",\n\"演化論\": \"进化论\",\n\"演算法\": \"算法\",\n\"演著\": \"演着\",\n\"演著作\": \"演著作\",\n\"演著名\": \"演著名\",\n\"演著書\": \"演著书\",\n\"演著稱\": \"演著称\",\n\"演著者\": \"演著者\",\n\"演著述\": \"演著述\",\n\"演著錄\": \"演著录\",\n\"漢諾瓦\": \"汉诺威\",\n\"漫著\": \"漫着\",\n\"漫著作\": \"漫著作\",\n\"漫著名\": \"漫著名\",\n\"漫著書\": \"漫著书\",\n\"漫著稱\": \"漫著称\",\n\"漫著者\": \"漫著者\",\n\"漫著述\": \"漫著述\",\n\"漫著錄\": \"漫著录\",\n\"潤著\": \"润着\",\n\"潤著作\": \"润著作\",\n\"潤著名\": \"润著名\",\n\"潤著書\": \"润著书\",\n\"潤著稱\": \"润著称\",\n\"潤著者\": \"润著者\",\n\"潤著述\": \"润著述\",\n\"潤著錄\": \"润著录\",\n\"澈底\": \"彻底\",\n\"為著\": \"为着\",\n\"為著《\": \"为著《\",\n\"為著作\": \"为著作\",\n\"為著名\": \"为著名\",\n\"為著稱\": \"为著称\",\n\"為著者\": \"为著者\",\n\"為著述\": \"为著述\",\n\"為著錄\": \"为著录\",\n\"烏龍麵\": \"乌冬面\",\n\"煞車\": \"刹车\",\n\"照著\": \"照着\",\n\"照著作\": \"照著作\",\n\"照著名\": \"照著名\",\n\"照著書\": \"照著书\",\n\"照著稱\": \"照著称\",\n\"照著者\": \"照著者\",\n\"照著述\": \"照著述\",\n\"照著錄\": \"照著录\",\n\"燒著\": \"烧着\",\n\"燒著作\": \"烧著作\",\n\"燒著名\": \"烧著名\",\n\"燒著稱\": \"烧著称\",\n\"燒著者\": \"烧著者\",\n\"燒著述\": \"烧著述\",\n\"燒著錄\": \"烧著录\",\n\"營運長、\": \"首席运营官、\",\n\"營運長。\": \"首席运营官。\",\n\"營運長，\": \"首席运营官，\",\n\"爛帳\": \"烂账\",\n\"爭著\": \"争着\",\n\"爭著作\": \"争著作\",\n\"爭著名\": \"争著名\",\n\"爭著書\": \"争著书\",\n\"爭著稱\": \"争著称\",\n\"爭著者\": \"争著者\",\n\"爭著述\": \"争著述\",\n\"爭著錄\": \"争著录\",\n\"片語\": \"词组\",\n\"牽著\": \"牵着\",\n\"牽著作\": \"牵著作\",\n\"牽著名\": \"牵著名\",\n\"牽著書\": \"牵著书\",\n\"牽著稱\": \"牵著称\",\n\"牽著者\": \"牵著者\",\n\"牽著述\": \"牵著述\",\n\"牽著錄\": \"牵著录\",\n\"狂牛症\": \"疯牛病\",\n\"狄托\": \"铁托\",\n\"狗隻\": \"犬只\",\n\"猜著\": \"猜着\",\n\"猜著作\": \"猜著作\",\n\"猜著名\": \"猜著名\",\n\"猜著書\": \"猜着书\",\n\"猜著稱\": \"猜著称\",\n\"猜著者\": \"猜著者\",\n\"猜著述\": \"猜著述\",\n\"猜著錄\": \"猜著录\",\n\"猶豫著\": \"犹豫着\",\n\"獨立國協\": \"独联体\",\n\"獨立國家國協\": \"独立国家联合体\",\n\"獲著\": \"获着\",\n\"獲著作\": \"获著作\",\n\"獲著名\": \"获著名\",\n\"獲著書\": \"获著书\",\n\"獲著稱\": \"获著称\",\n\"獲著者\": \"获著者\",\n\"獲著述\": \"获著述\",\n\"獲著錄\": \"获著录\",\n\"玩著\": \"玩着\",\n\"玻利維亞多民族國\": \"多民族玻利维亚国\",\n\"玻里尼西亞\": \"波利尼西亚\",\n\"班傑明\": \"本杰明\",\n\"班固著\": \"班固著\",\n\"瓜地馬拉\": \"危地马拉\",\n\"瓦倫西亞\": \"巴伦西亚\",\n\"甘比亞\": \"冈比亚\",\n\"甘迺迪\": \"肯尼迪\",\n\"甚麼\": \"什么\",\n\"甚麽\": \"什么\",\n\"甜著\": \"甜着\",\n\"甜著作\": \"甜著作\",\n\"甜著名\": \"甜著名\",\n\"甜著書\": \"甜著书\",\n\"甜著稱\": \"甜著称\",\n\"甜著者\": \"甜著者\",\n\"甜著述\": \"甜著述\",\n\"甜著錄\": \"甜著录\",\n\"用著\": \"用着\",\n\"用著作\": \"用著作\",\n\"用著名\": \"用著名\",\n\"用著書\": \"用著书\",\n\"用著稱\": \"用著称\",\n\"用著者\": \"用著者\",\n\"用著述\": \"用著述\",\n\"用著錄\": \"用著录\",\n\"留尼旺\": \"留尼汪\",\n\"留著\": \"留着\",\n\"留著作\": \"留著作\",\n\"留著名\": \"留著名\",\n\"留著書\": \"留着书\",\n\"留著稱\": \"留著称\",\n\"留著者\": \"留著者\",\n\"留著述\": \"留著述\",\n\"留著錄\": \"留著录\",\n\"畢卡索\": \"毕加索\",\n\"畫著\": \"画着\",\n\"畫著作\": \"画著作\",\n\"畫著名\": \"画著名\",\n\"畫著稱\": \"画著称\",\n\"畫著者\": \"画著者\",\n\"當勞·特朗普\": \"唐纳德·特朗普\",\n\"當奴·特朗普\": \"唐纳德·特朗普\",\n\"當著\": \"当着\",\n\"當著作\": \"当著作\",\n\"當著名\": \"当著名\",\n\"當著書\": \"当著书\",\n\"當著稱\": \"当著称\",\n\"當著者\": \"当著者\",\n\"當著述\": \"当著述\",\n\"當著錄\": \"当著录\",\n\"疊代\": \"迭代\",\n\"疑著\": \"疑着\",\n\"疑著作\": \"疑著作\",\n\"疑著名\": \"疑著名\",\n\"疑著書\": \"疑著书\",\n\"疑著稱\": \"疑著称\",\n\"疑著者\": \"疑著者\",\n\"疑著述\": \"疑著述\",\n\"疑著錄\": \"疑著录\",\n\"瘋牛症\": \"疯牛病\",\n\"發著\": \"发着\",\n\"發著《\": \"发著《\",\n\"發著作\": \"发著作\",\n\"發著名\": \"发著名\",\n\"發著稱\": \"发著称\",\n\"發著者\": \"发著者\",\n\"白朗寧\": \"勃朗宁\",\n\"百慕達\": \"百慕大\",\n\"皮特肯\": \"皮特凯恩\",\n\"皮雅斯·布士南\": \"皮尔斯·布鲁斯南\",\n\"皺著\": \"皱着\",\n\"皺著作\": \"皱著作\",\n\"皺著名\": \"皱著名\",\n\"皺著書\": \"皱著书\",\n\"皺著稱\": \"皱著称\",\n\"皺著者\": \"皱著者\",\n\"皺著述\": \"皱著述\",\n\"皺著錄\": \"皱著录\",\n\"盛著\": \"盛着\",\n\"盛著作\": \"盛著作\",\n\"盛著名\": \"盛著名\",\n\"盛著書\": \"盛著书\",\n\"盛著稱\": \"盛著称\",\n\"盛著者\": \"盛著者\",\n\"盛著述\": \"盛著述\",\n\"盛著錄\": \"盛著录\",\n\"盧安達\": \"卢旺达\",\n\"盯著\": \"盯着\",\n\"盯著作\": \"盯著作\",\n\"盯著名\": \"盯著名\",\n\"盯著書\": \"盯着书\",\n\"盯著稱\": \"盯著称\",\n\"盯著者\": \"盯著者\",\n\"盯著述\": \"盯著述\",\n\"盯著錄\": \"盯著录\",\n\"看著\": \"看着\",\n\"看著作\": \"看著作\",\n\"看著名\": \"看著名\",\n\"看著書\": \"看着书\",\n\"看著稱\": \"看著称\",\n\"看著者\": \"看著者\",\n\"看著述\": \"看著述\",\n\"看著錄\": \"看著录\",\n\"真人騷\": \"真人秀\",\n\"睡著\": \"睡着\",\n\"睡著作\": \"睡著作\",\n\"睡著名\": \"睡著名\",\n\"睡著書\": \"睡著书\",\n\"睡著稱\": \"睡著称\",\n\"睡著者\": \"睡著者\",\n\"睡著述\": \"睡著述\",\n\"睡著錄\": \"睡著录\",\n\"瞞著\": \"瞒着\",\n\"瞞著作\": \"瞒著作\",\n\"瞞著名\": \"瞒著名\",\n\"瞞著書\": \"瞒著书\",\n\"瞞著稱\": \"瞒著称\",\n\"瞞著者\": \"瞒著者\",\n\"瞞著述\": \"瞒著述\",\n\"瞞著錄\": \"瞒著录\",\n\"瞧著\": \"瞧着\",\n\"瞧著作\": \"瞧著作\",\n\"瞧著名\": \"瞧著名\",\n\"瞧著書\": \"瞧着书\",\n\"瞧著稱\": \"瞧著称\",\n\"瞧著者\": \"瞧著者\",\n\"瞧著述\": \"瞧著述\",\n\"瞧著錄\": \"瞧著录\",\n\"瞪著\": \"瞪着\",\n\"瞪著作\": \"瞪著作\",\n\"瞪著名\": \"瞪著名\",\n\"瞪著書\": \"瞪著书\",\n\"瞪著稱\": \"瞪著称\",\n\"瞪著者\": \"瞪著者\",\n\"瞪著述\": \"瞪著述\",\n\"瞪著錄\": \"瞪著录\",\n\"矛盾著\": \"矛盾着\",\n\"知識份子\": \"知识分子\",\n\"矽\": \"硅\",\n\"矽塵\": \"矽尘\",\n\"矽尘\": \"矽尘\",\n\"矽片\": \"硅片\",\n\"矽肺\": \"矽肺\",\n\"矽谷\": \"硅谷\",\n\"矽鋼\": \"矽钢\",\n\"矽钢\": \"矽钢\",\n\"硬碟\": \"硬盘\",\n\"硬體\": \"硬件\",\n\"碧咸\": \"贝克汉姆\",\n\"磁碟\": \"磁盘\",\n\"磁軌\": \"磁道\",\n\"祖雲達斯\": \"尤文图斯\",\n\"福著\": \"福着\",\n\"福著作\": \"福著作\",\n\"福著名\": \"福著名\",\n\"福著書\": \"福著书\",\n\"福著稱\": \"福著称\",\n\"福著者\": \"福著者\",\n\"福著述\": \"福著述\",\n\"福著錄\": \"福著录\",\n\"福馬林\": \"福尔马林\",\n\"私帳\": \"私账\",\n\"私隱\": \"隐私\",\n\"程式控制\": \"程控\",\n\"程式設計師\": \"程序员\",\n\"積架\": \"捷豹\",\n\"積極份子\": \"积极分子\",\n\"穫著\": \"获着\",\n\"空中巴士\": \"空中客车\",\n\"空氣品質\": \"空气质量\",\n\"空氣質素\": \"空气质量\",\n\"空著\": \"空着\",\n\"空著作\": \"空著作\",\n\"空著名\": \"空著名\",\n\"空著書\": \"空著书\",\n\"空著稱\": \"空著称\",\n\"空著者\": \"空著者\",\n\"空著述\": \"空著述\",\n\"空著錄\": \"空著录\",\n\"穿梭機\": \"航天飞机\",\n\"穿著\": \"穿着\",\n\"穿著作\": \"穿著作\",\n\"穿著名\": \"穿著名\",\n\"穿著書\": \"穿著书\",\n\"穿著稱\": \"穿著称\",\n\"穿著者\": \"穿著者\",\n\"穿著述\": \"穿著述\",\n\"穿著錄\": \"穿著录\",\n\"突尼西亞\": \"突尼斯\",\n\"立著\": \"立着\",\n\"立著《\": \"立著《\",\n\"立著作\": \"立著作\",\n\"立著名\": \"立著名\",\n\"立著有\": \"立著有\",\n\"立著称\": \"立著称\",\n\"立著稱\": \"立著称\",\n\"立著者\": \"立著者\",\n\"立著（\": \"立著（\",\n\"站著\": \"站着\",\n\"站著作\": \"站著作\",\n\"站著名\": \"站著名\",\n\"站著書\": \"站著书\",\n\"站著稱\": \"站著称\",\n\"站著者\": \"站著者\",\n\"站著述\": \"站著述\",\n\"站著錄\": \"站著录\",\n\"笑著\": \"笑着\",\n\"笑著作\": \"笑著作\",\n\"笑著名\": \"笑著名\",\n\"笑著書\": \"笑著书\",\n\"笑著稱\": \"笑著称\",\n\"笑著者\": \"笑著者\",\n\"笑著述\": \"笑著述\",\n\"笑著錄\": \"笑著录\",\n\"笨豬跳\": \"蹦极跳\",\n\"筆帳\": \"笔账\",\n\"算帳\": \"算账\",\n\"管帳\": \"管账\",\n\"管著\": \"管着\",\n\"管著作\": \"管著作\",\n\"管著名\": \"管著名\",\n\"管著書\": \"管著书\",\n\"管著稱\": \"管著称\",\n\"管著者\": \"管著者\",\n\"管著述\": \"管著述\",\n\"管著錄\": \"管著录\",\n\"簽帳\": \"签账\",\n\"簽著\": \"签着\",\n\"米高·奧雲\": \"迈克尔·欧文\",\n\"糊塗帳\": \"糊涂账\",\n\"糖份\": \"糖分\",\n\"紀錄著\": \"纪录着\",\n\"約翰尼斯堡\": \"约翰内斯堡\",\n\"紐幾內亞\": \"新几内亚\",\n\"紐澤西\": \"新泽西\",\n\"紐西蘭\": \"新西兰\",\n\"索忍尼辛\": \"索尔仁尼琴\",\n\"索羅門群島\": \"所罗门群岛\",\n\"索贊尼辛\": \"索尔仁尼琴\",\n\"索馬利亞\": \"索马里\",\n\"索馬利蘭\": \"索马里兰\",\n\"紮著\": \"扎着\",\n\"紮著作\": \"扎著作\",\n\"紮著名\": \"扎著名\",\n\"紮著書\": \"扎著书\",\n\"紮著稱\": \"扎著称\",\n\"紮著者\": \"扎著者\",\n\"紮著述\": \"扎著述\",\n\"紮著錄\": \"扎著录\",\n\"組份\": \"组分\",\n\"結他\": \"吉他\",\n\"結帳\": \"结账\",\n\"綁著\": \"绑着\",\n\"綁著作\": \"绑著作\",\n\"綁著名\": \"绑著名\",\n\"綁著書\": \"绑著书\",\n\"綁著稱\": \"绑著称\",\n\"綁著者\": \"绑著者\",\n\"綁著述\": \"绑著述\",\n\"綁著錄\": \"绑著录\",\n\"經常帳\": \"经常账\",\n\"經濟帳\": \"经济账\",\n\"維德角\": \"佛得角\",\n\"維根斯坦\": \"维特根斯坦\",\n\"網域名稱\": \"域名\",\n\"網站連結\": \"网站链接\",\n\"網路\": \"网络\",\n\"網際網絡\": \"互联网\",\n\"網際網路\": \"互联网\",\n\"網頁連結\": \"网页链接\",\n\"緣份\": \"缘分\",\n\"縱著\": \"纵着\",\n\"總帳\": \"总账\",\n\"繃著\": \"绷着\",\n\"繞著\": \"绕着\",\n\"繞著作\": \"绕著作\",\n\"繞著名\": \"绕著名\",\n\"繞著書\": \"绕著书\",\n\"繞著稱\": \"绕著称\",\n\"繞著者\": \"绕著者\",\n\"繞著述\": \"绕著述\",\n\"繞著錄\": \"绕著录\",\n\"繫著\": \"系着\",\n\"纏著\": \"缠着\",\n\"纏著作\": \"缠著作\",\n\"纏著名\": \"缠著名\",\n\"纏著書\": \"缠著书\",\n\"纏著稱\": \"缠著称\",\n\"纏著者\": \"缠著者\",\n\"纏著述\": \"缠著述\",\n\"纏著錄\": \"缠著录\",\n\"绑紧跳\": \"蹦极跳\",\n\"罩著\": \"罩着\",\n\"罩著作\": \"罩著作\",\n\"罩著名\": \"罩著名\",\n\"罩著書\": \"罩著书\",\n\"罩著稱\": \"罩著称\",\n\"罩著者\": \"罩著者\",\n\"罩著述\": \"罩著述\",\n\"罩著錄\": \"罩著录\",\n\"罵著\": \"骂着\",\n\"罵著作\": \"骂著作\",\n\"罵著名\": \"骂著名\",\n\"罵著書\": \"骂著书\",\n\"罵著稱\": \"骂著称\",\n\"罵著者\": \"骂著者\",\n\"罵著述\": \"骂著述\",\n\"罵著錄\": \"骂著录\",\n\"羅亞爾\": \"卢瓦尔\",\n\"羅浮宮\": \"卢浮宫\",\n\"羅蘋\": \"罗宾\",\n\"美著\": \"美着\",\n\"美著作\": \"美著作\",\n\"美著名\": \"美著名\",\n\"美著書\": \"美著书\",\n\"美著称\": \"美著称\",\n\"美著稱\": \"美著称\",\n\"美著者\": \"美著者\",\n\"美著述\": \"美著述\",\n\"美著錄\": \"美著录\",\n\"義大利\": \"意大利\",\n\"翁山蘇姬\": \"昂山素季\",\n\"耀著\": \"耀着\",\n\"耀著作\": \"耀著作\",\n\"耀著名\": \"耀著名\",\n\"耀著書\": \"耀著书\",\n\"耀著稱\": \"耀著称\",\n\"耀著者\": \"耀著者\",\n\"耀著述\": \"耀著述\",\n\"耀著錄\": \"耀著录\",\n\"考著\": \"考着\",\n\"考著作\": \"考著作\",\n\"考著名\": \"考著名\",\n\"考著書\": \"考著书\",\n\"考著稱\": \"考著称\",\n\"考著者\": \"考著者\",\n\"考著述\": \"考著述\",\n\"考著錄\": \"考著录\",\n\"耶加達\": \"雅加达\",\n\"聖佐治\": \"圣乔治\",\n\"聖克里斯多福及尼維斯\": \"圣基茨和尼维斯\",\n\"聖吉斯納域斯\": \"圣基茨和尼维斯\",\n\"聖多美普林西比\": \"圣多美和普林西比\",\n\"聖文森及格瑞那丁\": \"圣文森特和格林纳丁斯\",\n\"聖文森國\": \"圣文森特和格林纳丁斯\",\n\"聖露西亞\": \"圣卢西亚\",\n\"聖馬利諾\": \"圣马力诺\",\n\"聞著\": \"闻着\",\n\"職份\": \"职分\",\n\"聽著\": \"听着\",\n\"聽著作\": \"听著作\",\n\"聽著名\": \"听著名\",\n\"聽著書\": \"听著书\",\n\"聽著稱\": \"听著称\",\n\"聽著者\": \"听著者\",\n\"聽著述\": \"听著述\",\n\"聽著錄\": \"听著录\",\n\"背著\": \"背着\",\n\"背著作\": \"背著作\",\n\"背著名\": \"背著名\",\n\"背著書\": \"背著书\",\n\"背著稱\": \"背著称\",\n\"背著者\": \"背著者\",\n\"背著述\": \"背著述\",\n\"背著錄\": \"背著录\",\n\"胺基酸\": \"氨基酸\",\n\"膠著\": \"胶着\",\n\"膠著作\": \"胶著作\",\n\"膠著名\": \"胶著名\",\n\"膠著書\": \"胶著书\",\n\"膠著稱\": \"胶著称\",\n\"膠著者\": \"胶著者\",\n\"膠著述\": \"胶著述\",\n\"膠著錄\": \"胶著录\",\n\"臨著\": \"临着\",\n\"臨著作\": \"临著作\",\n\"臨著名\": \"临著名\",\n\"臨著書\": \"临著书\",\n\"臨著稱\": \"临著称\",\n\"臨著者\": \"临著者\",\n\"臨著述\": \"临著述\",\n\"臨著錄\": \"临著录\",\n\"與著\": \"与着\",\n\"與著作\": \"与著作\",\n\"與著名\": \"与著名\",\n\"與著書\": \"与著书\",\n\"與著稱\": \"与著称\",\n\"與著者\": \"与著者\",\n\"與著述\": \"与著述\",\n\"與著錄\": \"与著录\",\n\"舊帳\": \"旧账\",\n\"舒麥加\": \"舒马赫\",\n\"艾伯塔\": \"阿尔伯塔\",\n\"艾菲爾\": \"埃菲尔\",\n\"芮氏0\": \"里氏0\",\n\"芮氏1\": \"里氏1\",\n\"芮氏2\": \"里氏2\",\n\"芮氏3\": \"里氏3\",\n\"芮氏4\": \"里氏4\",\n\"芮氏5\": \"里氏5\",\n\"芮氏6\": \"里氏6\",\n\"芮氏7\": \"里氏7\",\n\"芮氏8\": \"里氏8\",\n\"芮氏9\": \"里氏9\",\n\"芮氏地震規模\": \"里氏地震规模\",\n\"芮氏規模\": \"里氏震级\",\n\"若且唯若\": \"当且仅当\",\n\"苦著\": \"苦着\",\n\"苦著作\": \"苦著作\",\n\"苦著名\": \"苦著名\",\n\"苦著書\": \"苦著书\",\n\"苦著稱\": \"苦著称\",\n\"苦著者\": \"苦著者\",\n\"苦著述\": \"苦著述\",\n\"苦著錄\": \"苦著录\",\n\"英吋\": \"英寸\",\n\"英呎\": \"英尺\",\n\"茅利塔尼亞\": \"毛里塔尼亚\",\n\"荷姆茲\": \"霍尔木兹\",\n\"荷尼阿拉\": \"霍尼亚拉\",\n\"荷里活\": \"好莱坞\",\n\"荷里活廣場\": \"荷里活广场\",\n\"荷里活道\": \"荷里活道\",\n\"莫三比克\": \"莫桑比克\",\n\"菁寮\": \"菁寮\",\n\"華倫西亞\": \"巴伦西亚\",\n\"華勒沙\": \"瓦文萨\",\n\"華里沙\": \"瓦文萨\",\n\"萌島\": \"马恩岛\",\n\"萬那杜\": \"瓦努阿图\",\n\"落著\": \"落着\",\n\"落著作\": \"落著作\",\n\"落著名\": \"落著名\",\n\"落著書\": \"落著书\",\n\"落著稱\": \"落著称\",\n\"落著者\": \"落著者\",\n\"落著述\": \"落著述\",\n\"落著錄\": \"落著录\",\n\"落車\": \"下车\",\n\"葉里溫\": \"埃里温\",\n\"葉門\": \"也门\",\n\"著人\": \"着人\",\n\"著什\": \"着什\",\n\"著他\": \"着他\",\n\"著令\": \"着令\",\n\"著位\": \"着位\",\n\"著你\": \"着你\",\n\"著便\": \"着便\",\n\"著力\": \"着力\",\n\"著勁\": \"着劲\",\n\"著呢\": \"着呢\",\n\"著哩\": \"着哩\",\n\"著地\": \"着地\",\n\"著墨\": \"着墨\",\n\"著她\": \"着她\",\n\"著妳\": \"着妳\",\n\"著它\": \"着它\",\n\"著定\": \"着定\",\n\"著實\": \"着实\",\n\"著己\": \"着己\",\n\"著帳\": \"着帐\",\n\"著床\": \"着床\",\n\"著庸\": \"着庸\",\n\"著式\": \"着式\",\n\"著心\": \"着心\",\n\"著志\": \"着志\",\n\"著忙\": \"着忙\",\n\"著急\": \"着急\",\n\"著惱\": \"着恼\",\n\"著想\": \"着想\",\n\"著意\": \"着意\",\n\"著慌\": \"着慌\",\n\"著我\": \"着我\",\n\"著手\": \"着手\",\n\"著抹\": \"着抹\",\n\"著摸\": \"着摸\",\n\"著撰\": \"着撰\",\n\"著數\": \"着数\",\n\"著明\": \"着明\",\n\"著末\": \"着末\",\n\"著格\": \"着格\",\n\"著棋\": \"着棋\",\n\"著業\": \"着业\",\n\"著極\": \"着极\",\n\"著槁\": \"着藁\",\n\"著氣\": \"着气\",\n\"著法\": \"着法\",\n\"著涼\": \"着凉\",\n\"著淺\": \"着浅\",\n\"著火\": \"着火\",\n\"著然\": \"着然\",\n\"著甚\": \"着甚\",\n\"著甚麼\": \"着什么\",\n\"著生\": \"着生\",\n\"著疑\": \"着疑\",\n\"著白\": \"着白\",\n\"著相\": \"着相\",\n\"著眼\": \"着眼\",\n\"著祂\": \"着祂\",\n\"著稿\": \"着稿\",\n\"著積\": \"着积\",\n\"著筆\": \"着笔\",\n\"著節\": \"着节\",\n\"著籍\": \"着籍\",\n\"著絆\": \"着绊\",\n\"著絲\": \"着丝\",\n\"著綠\": \"着绿\",\n\"著緊\": \"着紧\",\n\"著緋\": \"着绯\",\n\"著緑\": \"着緑\",\n\"著績\": \"着绩\",\n\"著聞\": \"着闻\",\n\"著聲\": \"着声\",\n\"著肉\": \"着肉\",\n\"著腳\": \"着脚\",\n\"著艦\": \"着舰\",\n\"著色\": \"着色\",\n\"著花\": \"着花\",\n\"著莫\": \"着莫\",\n\"著落\": \"着落\",\n\"著著\": \"着着\",\n\"著處\": \"着处\",\n\"著號\": \"着号\",\n\"著衣\": \"着衣\",\n\"著裝\": \"着装\",\n\"著要\": \"着要\",\n\"著警\": \"着警\",\n\"著趣\": \"着趣\",\n\"著跡\": \"着迹\",\n\"著迷\": \"着迷\",\n\"著邊\": \"着边\",\n\"著重\": \"着重\",\n\"著錄\": \"着录\",\n\"著録\": \"着録\",\n\"著陸\": \"着陆\",\n\"著雝\": \"着雝\",\n\"著鞭\": \"着鞭\",\n\"著題\": \"着题\",\n\"著驚\": \"着惊\",\n\"著體\": \"着体\",\n\"著魔\": \"着魔\",\n\"著麼\": \"着么\",\n\"葛摩\": \"科摩罗\",\n\"葛萊美獎\": \"格莱美奖\",\n\"蒙特內哥羅\": \"黑山\",\n\"蒙特婁\": \"蒙特利尔\",\n\"蒙著\": \"蒙着\",\n\"蒙著作\": \"蒙著作\",\n\"蒙著名\": \"蒙著名\",\n\"蒙著書\": \"蒙著书\",\n\"蒙著稱\": \"蒙著称\",\n\"蒙著者\": \"蒙著者\",\n\"蒙著述\": \"蒙著述\",\n\"蒙著錄\": \"蒙著录\",\n\"蒲朗克\": \"普朗克\",\n\"蒲美蓬\": \"普密蓬\",\n\"蒲隆地\": \"布隆迪\",\n\"蓋亞那\": \"圭亚那\",\n\"蓋著\": \"盖着\",\n\"蓋著作\": \"盖著作\",\n\"蓋著名\": \"盖著名\",\n\"蓋著稱\": \"盖著称\",\n\"蕭士塔高維奇\": \"肖斯塔科维奇\",\n\"蕭士達高維契\": \"肖斯塔科维奇\",\n\"薛丁格\": \"薛定谔\",\n\"藉著\": \"借着\",\n\"藍芽\": \"蓝牙\",\n\"藏著\": \"藏着\",\n\"藏著作\": \"藏著作\",\n\"藏著名\": \"藏著名\",\n\"藏著書\": \"藏著书\",\n\"藏著稱\": \"藏著称\",\n\"藏著者\": \"藏著者\",\n\"藏著述\": \"藏著述\",\n\"藏著錄\": \"藏著录\",\n\"蘇利南\": \"苏里南\",\n\"蘇辛尼津\": \"索尔仁尼琴\",\n\"蘊涵著\": \"蕴涵着\",\n\"蘭卡威\": \"浮罗交怡\",\n\"蘸著\": \"蘸着\",\n\"蘸著作\": \"蘸著作\",\n\"蘸著名\": \"蘸著名\",\n\"蘸著書\": \"蘸著书\",\n\"蘸著稱\": \"蘸著称\",\n\"蘸著者\": \"蘸著者\",\n\"蘸著述\": \"蘸著述\",\n\"蘸著錄\": \"蘸著录\",\n\"蘿拉\": \"劳拉\",\n\"虛擬實境\": \"虚拟现实\",\n\"螢光棒\": \"荧光棒\",\n\"螢屏\": \"荧屏\",\n\"行人路\": \"人行道\",\n\"行人路权\": \"行人路权\",\n\"行人路權\": \"行人路权\",\n\"行動作業系統\": \"移动操作系统\",\n\"行動支付\": \"移动支付\",\n\"行動網路\": \"移动网络\",\n\"行動裝置\": \"移动设备\",\n\"行動電話\": \"移动电话\",\n\"行政總裁\": \"首席执行官\",\n\"行著\": \"行着\",\n\"行著作\": \"行著作\",\n\"行著名\": \"行著名\",\n\"行著書\": \"行著书\",\n\"行著稱\": \"行著称\",\n\"行著者\": \"行著者\",\n\"行著述\": \"行著述\",\n\"行著錄\": \"行著录\",\n\"衝著\": \"冲着\",\n\"衣索匹亞\": \"埃塞俄比亚\",\n\"衣索比亞\": \"埃塞俄比亚\",\n\"衣著\": \"衣着\",\n\"衣著作\": \"衣著作\",\n\"衣著名\": \"衣著名\",\n\"衣著書\": \"衣著书\",\n\"衣著称\": \"衣著称\",\n\"衣著稱\": \"衣著称\",\n\"衣著者\": \"衣著者\",\n\"衣著述\": \"衣著述\",\n\"衣著錄\": \"衣著录\",\n\"表姊\": \"表姐\",\n\"裝著\": \"装着\",\n\"裝著作\": \"装著作\",\n\"裝著名\": \"装著名\",\n\"裝著書\": \"装著书\",\n\"裝著稱\": \"装著称\",\n\"裝著者\": \"装著者\",\n\"裝著述\": \"装著述\",\n\"裝著錄\": \"装著录\",\n\"裹著\": \"裹着\",\n\"裹著作\": \"裹著作\",\n\"裹著名\": \"裹著名\",\n\"裹著書\": \"裹著书\",\n\"裹著稱\": \"裹著称\",\n\"裹著者\": \"裹著者\",\n\"裹著述\": \"裹著述\",\n\"裹著錄\": \"裹著录\",\n\"複製人\": \"克隆人\",\n\"西元1\": \"公元1\",\n\"西元2\": \"公元2\",\n\"西元3\": \"公元3\",\n\"西元4\": \"公元4\",\n\"西元5\": \"公元5\",\n\"西元6\": \"公元6\",\n\"西元7\": \"公元7\",\n\"西元8\": \"公元8\",\n\"西元9\": \"公元9\",\n\"西元前\": \"公元前\",\n\"西洋棋\": \"国际象棋\",\n\"西維爾\": \"塞维利亚\",\n\"西臺人\": \"赫梯人\",\n\"西臺國\": \"赫梯国\",\n\"西臺帝\": \"赫梯帝\",\n\"西臺文\": \"赫梯文\",\n\"西臺族\": \"赫梯族\",\n\"西臺王\": \"赫梯王\",\n\"西臺語\": \"赫梯语\",\n\"要帳\": \"要账\",\n\"覆著\": \"覆着\",\n\"覆蓋著\": \"覆盖着\",\n\"見著\": \"见着\",\n\"見著作\": \"见著作\",\n\"見著名\": \"见著名\",\n\"見著書\": \"见著书\",\n\"見著稱\": \"见著称\",\n\"見著者\": \"见著者\",\n\"見著述\": \"见著述\",\n\"見著錄\": \"见著录\",\n\"規畫\": \"规划\",\n\"視著\": \"视着\",\n\"視著作\": \"视著作\",\n\"視著名\": \"视著名\",\n\"視著稱\": \"视著称\",\n\"視著者\": \"视著者\",\n\"解像度\": \"分辨率\",\n\"解析度\": \"分辨率\",\n\"計畫\": \"计划\",\n\"記帳\": \"记账\",\n\"記憶體\": \"内存\",\n\"記著\": \"记着\",\n\"記著作\": \"记著作\",\n\"記著名\": \"记著名\",\n\"記著書\": \"记著书\",\n\"記著稱\": \"记著称\",\n\"記著者\": \"记著者\",\n\"記著述\": \"记著述\",\n\"記著錄\": \"记著录\",\n\"記錄著\": \"记录着\",\n\"試著\": \"试着\",\n\"試著作\": \"试著作\",\n\"試著名\": \"试著名\",\n\"試著書\": \"试著书\",\n\"試著稱\": \"试著称\",\n\"試著者\": \"试著者\",\n\"試著述\": \"试著述\",\n\"試著錄\": \"试著录\",\n\"認帳\": \"认账\",\n\"語著\": \"语着\",\n\"語著作\": \"语著作\",\n\"語著名\": \"语著名\",\n\"語著書\": \"语著书\",\n\"語著稱\": \"语著称\",\n\"語著者\": \"语著者\",\n\"語著述\": \"语著述\",\n\"語著錄\": \"语著录\",\n\"說著\": \"说着\",\n\"說著作\": \"说著作\",\n\"說著稱\": \"说著称\",\n\"說著者\": \"说著者\",\n\"說著述\": \"说著述\",\n\"諮\": \"咨\",\n\"諾曼第\": \"诺曼底\",\n\"警戒著\": \"警戒着\",\n\"護著\": \"护着\",\n\"護著作\": \"护著作\",\n\"護著名\": \"护著名\",\n\"護著書\": \"护著书\",\n\"護著稱\": \"护著称\",\n\"護著者\": \"护著者\",\n\"護著述\": \"护著述\",\n\"護著錄\": \"护著录\",\n\"變著\": \"变着\",\n\"變著作\": \"变著作\",\n\"變著名\": \"变著名\",\n\"變著書\": \"变著书\",\n\"變著稱\": \"变著称\",\n\"變著者\": \"变著者\",\n\"變著述\": \"变著述\",\n\"變著錄\": \"变著录\",\n\"豎著\": \"竖着\",\n\"豎著作\": \"竖著作\",\n\"豎著名\": \"竖著名\",\n\"豎著書\": \"竖著书\",\n\"豎著稱\": \"竖著称\",\n\"豎著者\": \"竖著者\",\n\"豎著述\": \"竖著述\",\n\"豎著錄\": \"竖著录\",\n\"象徵著\": \"象征着\",\n\"象徵著名\": \"象征著名\",\n\"象牙海岸\": \"科特迪瓦\",\n\"貝爾格勒\": \"贝尔格莱德\",\n\"貝里斯\": \"伯利兹\",\n\"負著\": \"负着\",\n\"財務長、\": \"首席财务官、\",\n\"財務長。\": \"首席财务官。\",\n\"財務長，\": \"首席财务官，\",\n\"貢寮\": \"贡寮\",\n\"買帳\": \"买账\",\n\"資料庫\": \"数据库\",\n\"資訊時代\": \"信息时代\",\n\"資訊理論\": \"信息论\",\n\"賈伯斯\": \"乔布斯\",\n\"賒帳\": \"赊账\",\n\"賓·拉登\": \"本·拉登\",\n\"賓士\": \"奔驰\",\n\"賓拉登\": \"本拉登\",\n\"賴帳\": \"赖账\",\n\"賴比瑞亞\": \"利比里亚\",\n\"賴索托\": \"莱索托\",\n\"賽普勒斯\": \"塞浦路斯\",\n\"赫魯雪夫\": \"赫鲁晓夫\",\n\"走為上著\": \"走为上着\",\n\"走著\": \"走着\",\n\"走著作\": \"走著作\",\n\"走著名\": \"走著名\",\n\"走著書\": \"走著书\",\n\"走著稱\": \"走著称\",\n\"走著者\": \"走著者\",\n\"走著述\": \"走著述\",\n\"走著錄\": \"走著录\",\n\"超連結\": \"超链接\",\n\"趕著\": \"赶着\",\n\"趕著作\": \"赶著作\",\n\"趕著名\": \"赶著名\",\n\"趕著書\": \"赶著书\",\n\"趕著稱\": \"赶著称\",\n\"趕著者\": \"赶著者\",\n\"趕著述\": \"赶著述\",\n\"趕著錄\": \"赶著录\",\n\"趴著\": \"趴着\",\n\"趴著作\": \"趴著作\",\n\"趴著名\": \"趴著名\",\n\"趴著書\": \"趴著书\",\n\"趴著稱\": \"趴著称\",\n\"趴著者\": \"趴著者\",\n\"趴著述\": \"趴著述\",\n\"趴著錄\": \"趴著录\",\n\"跑著\": \"跑着\",\n\"跑著作\": \"跑著作\",\n\"跑著名\": \"跑著名\",\n\"跑著書\": \"跑著书\",\n\"跑著稱\": \"跑著称\",\n\"跑著者\": \"跑著者\",\n\"跑著述\": \"跑著述\",\n\"跑著錄\": \"跑著录\",\n\"跟著\": \"跟着\",\n\"跟著作\": \"跟著作\",\n\"跟著名\": \"跟著名\",\n\"跟著書\": \"跟著书\",\n\"跟著稱\": \"跟著称\",\n\"跟著者\": \"跟著者\",\n\"跟著述\": \"跟著述\",\n\"跟著錄\": \"跟著录\",\n\"跪著\": \"跪着\",\n\"跪著作\": \"跪著作\",\n\"跪著名\": \"跪著名\",\n\"跪著書\": \"跪著书\",\n\"跪著稱\": \"跪著称\",\n\"跪著者\": \"跪著者\",\n\"跪著述\": \"跪著述\",\n\"跪著錄\": \"跪著录\",\n\"跳著\": \"跳着\",\n\"跳著作\": \"跳著作\",\n\"跳著名\": \"跳著名\",\n\"跳著書\": \"跳著书\",\n\"跳著稱\": \"跳著称\",\n\"跳著者\": \"跳著者\",\n\"跳著述\": \"跳著述\",\n\"跳著錄\": \"跳著录\",\n\"踏著\": \"踏着\",\n\"踏著作\": \"踏著作\",\n\"踏著名\": \"踏著名\",\n\"踏著書\": \"踏著书\",\n\"踏著稱\": \"踏著称\",\n\"踏著者\": \"踏著者\",\n\"踏著述\": \"踏著述\",\n\"踏著錄\": \"踏著录\",\n\"踩著\": \"踩着\",\n\"踩著作\": \"踩著作\",\n\"踩著名\": \"踩著名\",\n\"踩著書\": \"踩著书\",\n\"踩著稱\": \"踩著称\",\n\"踩著者\": \"踩著者\",\n\"踩著述\": \"踩著述\",\n\"踩著錄\": \"踩著录\",\n\"躍著\": \"跃着\",\n\"躍著作\": \"跃著作\",\n\"躍著名\": \"跃著名\",\n\"躍著書\": \"跃著书\",\n\"躍著稱\": \"跃著称\",\n\"躍著者\": \"跃著者\",\n\"躍著述\": \"跃著述\",\n\"躍著錄\": \"跃著录\",\n\"身份\": \"身份\",\n\"身分\": \"身份\",\n\"身著\": \"身着\",\n\"身著作\": \"身著作\",\n\"身著名\": \"身著名\",\n\"身著書\": \"身著书\",\n\"身著稱\": \"身著称\",\n\"身著者\": \"身著者\",\n\"身著述\": \"身著述\",\n\"身著錄\": \"身著录\",\n\"躺著\": \"躺着\",\n\"躺著作\": \"躺著作\",\n\"躺著名\": \"躺著名\",\n\"躺著書\": \"躺著书\",\n\"躺著稱\": \"躺著称\",\n\"躺著者\": \"躺著者\",\n\"躺著述\": \"躺著述\",\n\"躺著錄\": \"躺著录\",\n\"車諾比\": \"切尔诺贝利\",\n\"軟碟機\": \"软驱\",\n\"軟體\": \"软件\",\n\"軟體動物\": \"软体动物\",\n\"軟體家具\": \"软体家具\",\n\"軟體生物\": \"软体生物\",\n\"載著\": \"载着\",\n\"載著作\": \"载著作\",\n\"載著名\": \"载著名\",\n\"載著書\": \"载著书\",\n\"載著稱\": \"载著称\",\n\"載著者\": \"载著者\",\n\"載著述\": \"载著述\",\n\"載著錄\": \"载著录\",\n\"轉帳\": \"转账\",\n\"轉殖\": \"克隆\",\n\"轉著\": \"转着\",\n\"轉著作\": \"转著作\",\n\"轉著名\": \"转著名\",\n\"轉著書\": \"转著书\",\n\"轉著稱\": \"转著称\",\n\"轉著者\": \"转著者\",\n\"轉著述\": \"转著述\",\n\"轉著錄\": \"转著录\",\n\"辛巴威\": \"津巴布韦\",\n\"辛康納利\": \"肖恩·康纳利\",\n\"辦著\": \"办着\",\n\"辦著作\": \"办著作\",\n\"辦著名\": \"办著名\",\n\"辦著書\": \"办著书\",\n\"辦著稱\": \"办著称\",\n\"辦著者\": \"办著者\",\n\"辦著述\": \"办著述\",\n\"辦著錄\": \"办著录\",\n\"迦納\": \"加纳\",\n\"迫著\": \"迫着\",\n\"迴圈\": \"循环\",\n\"追著\": \"追着\",\n\"追著作\": \"追著作\",\n\"追著名\": \"追著名\",\n\"追著書\": \"追著书\",\n\"追著稱\": \"追著称\",\n\"追著者\": \"追著者\",\n\"追著述\": \"追著述\",\n\"追著錄\": \"追著录\",\n\"逆著\": \"逆着\",\n\"逆著作\": \"逆著作\",\n\"逆著名\": \"逆著名\",\n\"逆著書\": \"逆著书\",\n\"逆著稱\": \"逆著称\",\n\"逆著者\": \"逆著者\",\n\"逆著述\": \"逆著述\",\n\"逆著錄\": \"逆著录\",\n\"逕入\": \"径入\",\n\"逕到\": \"径到\",\n\"逕取\": \"径取\",\n\"逕啟\": \"径启\",\n\"逕寄\": \"径寄\",\n\"逕庭\": \"径庭\",\n\"逕往\": \"径往\",\n\"逕流\": \"径流\",\n\"逕自\": \"径自\",\n\"逕行\": \"径行\",\n\"逕迎\": \"径迎\",\n\"連結他\": \"连结他\",\n\"連著\": \"连着\",\n\"連著作\": \"连著作\",\n\"連著名\": \"连著名\",\n\"連著書\": \"连著书\",\n\"連著稱\": \"连著称\",\n\"連著者\": \"连著者\",\n\"連著述\": \"连著述\",\n\"連著錄\": \"连著录\",\n\"進帳\": \"进账\",\n\"逼著\": \"逼着\",\n\"逼著作\": \"逼著作\",\n\"逼著名\": \"逼著名\",\n\"逼著書\": \"逼著书\",\n\"逼著稱\": \"逼著称\",\n\"逼著者\": \"逼著者\",\n\"逼著述\": \"逼著述\",\n\"逼著錄\": \"逼著录\",\n\"遇著\": \"遇着\",\n\"遇著作\": \"遇著作\",\n\"遇著名\": \"遇著名\",\n\"遇著書\": \"遇著书\",\n\"遇著称\": \"遇著称\",\n\"遇著稱\": \"遇著称\",\n\"遇著者\": \"遇著者\",\n\"遇著述\": \"遇著述\",\n\"遇著錄\": \"遇著录\",\n\"運算元\": \"算子\",\n\"遍佈著\": \"遍布着\",\n\"遍布著\": \"遍布着\",\n\"過份\": \"过分\",\n\"過著\": \"过着\",\n\"過著作\": \"过著作\",\n\"過著名\": \"过著名\",\n\"過著稱\": \"过著称\",\n\"過著者\": \"过著者\",\n\"過著述\": \"过著述\",\n\"過著錄\": \"过著录\",\n\"道瓊\": \"道琼斯\",\n\"道瓊斯\": \"道琼斯\",\n\"達·文西\": \"达·芬奇\",\n\"達文西\": \"达芬奇\",\n\"達著\": \"达着\",\n\"達著作\": \"达著作\",\n\"達著名\": \"达著名\",\n\"達著書\": \"达著书\",\n\"達著稱\": \"达著称\",\n\"達著者\": \"达著者\",\n\"達著述\": \"达著述\",\n\"達著錄\": \"达著录\",\n\"還帳\": \"还账\",\n\"邱吉爾\": \"丘吉尔\",\n\"部份\": \"部分\",\n\"都卜勒\": \"多普勒\",\n\"配合著\": \"配合着\",\n\"配合著名\": \"配合著名\",\n\"配著\": \"配着\",\n\"配著作\": \"配著作\",\n\"配著名\": \"配著名\",\n\"配著書\": \"配著书\",\n\"配著稱\": \"配著称\",\n\"配著者\": \"配著者\",\n\"配著述\": \"配著述\",\n\"配著錄\": \"配著录\",\n\"醜著\": \"丑着\",\n\"醜著作\": \"丑著作\",\n\"醜著名\": \"丑著名\",\n\"醜著書\": \"丑著书\",\n\"醜著稱\": \"丑著称\",\n\"醜著者\": \"丑著者\",\n\"醜著述\": \"丑著述\",\n\"醜著錄\": \"丑著录\",\n\"釀著\": \"酿着\",\n\"釀著作\": \"酿著作\",\n\"釀著名\": \"酿著名\",\n\"釀著書\": \"酿著书\",\n\"釀著稱\": \"酿著称\",\n\"釀著者\": \"酿著者\",\n\"釀著述\": \"酿著述\",\n\"釀著錄\": \"酿著录\",\n\"金夏沙\": \"金沙萨\",\n\"金氏世界紀錄\": \"吉尼斯世界纪录\",\n\"鈽\": \"钚\",\n\"鉲\": \"锎\",\n\"鉳\": \"锫\",\n\"銷帳\": \"销账\",\n\"鋂\": \"镅\",\n\"鋪著\": \"铺着\",\n\"鋪著作\": \"铺著作\",\n\"鋪著名\": \"铺著名\",\n\"鋪著書\": \"铺著书\",\n\"鋪著稱\": \"铺著称\",\n\"鋪著者\": \"铺著者\",\n\"鋪著述\": \"铺著述\",\n\"鋪著錄\": \"铺著录\",\n\"錄影帶\": \"录像带\",\n\"錼\": \"镎\",\n\"鍅\": \"钫\",\n\"鎝\": \"锝\",\n\"鏈結\": \"链接\",\n\"鐵達尼號\": \"泰坦尼克号\",\n\"鑀\": \"锿\",\n\"閉著\": \"闭着\",\n\"閉著作\": \"闭著作\",\n\"閉著名\": \"闭著名\",\n\"閉著書\": \"闭著书\",\n\"閉著稱\": \"闭著称\",\n\"閉著者\": \"闭著者\",\n\"閉著述\": \"闭著述\",\n\"閉著錄\": \"闭著录\",\n\"開帳\": \"开账\",\n\"開著\": \"开着\",\n\"開著作\": \"开著作\",\n\"開著名\": \"开著名\",\n\"開著書\": \"开著书\",\n\"開著稱\": \"开著称\",\n\"開著者\": \"开著者\",\n\"開著述\": \"开著述\",\n\"開著錄\": \"开著录\",\n\"閑著\": \"闲着\",\n\"閑著作\": \"闲著作\",\n\"閑著名\": \"闲著名\",\n\"閑著書\": \"闲著书\",\n\"閑著稱\": \"闲著称\",\n\"閑著者\": \"闲著者\",\n\"閑著述\": \"闲著述\",\n\"閑著錄\": \"闲著录\",\n\"閒著\": \"闲着\",\n\"關係著\": \"关系着\",\n\"關帳\": \"关账\",\n\"關著\": \"关着\",\n\"關著作\": \"关著作\",\n\"關著名\": \"关著名\",\n\"關著書\": \"关著书\",\n\"關著稱\": \"关著称\",\n\"關著者\": \"关著者\",\n\"關著述\": \"关著述\",\n\"關著錄\": \"关著录\",\n\"阿布達比\": \"阿布扎比\",\n\"阿拉伯聯合大公國\": \"阿拉伯联合酋长国\",\n\"阿迪斯阿貝巴\": \"亚的斯亚贝巴\",\n\"附著\": \"附着\",\n\"附著作\": \"附著作\",\n\"附著名\": \"附著名\",\n\"附著書\": \"附著书\",\n\"附著稱\": \"附著称\",\n\"附著者\": \"附著者\",\n\"附著述\": \"附著述\",\n\"附著錄\": \"附著录\",\n\"陋著\": \"陋着\",\n\"陋著作\": \"陋著作\",\n\"陋著名\": \"陋著名\",\n\"陋著書\": \"陋著书\",\n\"陋著稱\": \"陋著称\",\n\"陋著者\": \"陋著者\",\n\"陋著述\": \"陋著述\",\n\"陋著錄\": \"陋著录\",\n\"陪著\": \"陪着\",\n\"陪著作\": \"陪著作\",\n\"陪著名\": \"陪著名\",\n\"陪著書\": \"陪著书\",\n\"陪著稱\": \"陪著称\",\n\"陪著者\": \"陪著者\",\n\"陪著述\": \"陪著述\",\n\"陪著錄\": \"陪著录\",\n\"隔著\": \"隔着\",\n\"隔著作\": \"隔著作\",\n\"隔著名\": \"隔著名\",\n\"隔著書\": \"隔著书\",\n\"隔著稱\": \"隔著称\",\n\"隔著者\": \"隔著者\",\n\"隔著述\": \"隔著述\",\n\"隔著錄\": \"隔著录\",\n\"隨著\": \"随着\",\n\"隨著作\": \"随著作\",\n\"隨著名\": \"随著名\",\n\"隨著書\": \"随著书\",\n\"隨著稱\": \"随著称\",\n\"隨著者\": \"随著者\",\n\"隨著述\": \"随著述\",\n\"隨著錄\": \"随著录\",\n\"隻字片語\": \"只字片语\",\n\"隻言片語\": \"只言片语\",\n\"雅爾達\": \"雅尔塔\",\n\"雅穆索戈\": \"亚穆苏克罗\",\n\"雅著\": \"雅着\",\n\"雅著作\": \"雅著作\",\n\"雅著名\": \"雅著名\",\n\"雅著書\": \"雅著书\",\n\"雅著称\": \"雅著称\",\n\"雅著稱\": \"雅著称\",\n\"雅著者\": \"雅著者\",\n\"雅著述\": \"雅著述\",\n\"雅著錄\": \"雅著录\",\n\"雜著\": \"杂着\",\n\"雜著作\": \"杂著作\",\n\"雜著名\": \"杂著名\",\n\"雜著書\": \"杂著书\",\n\"雜著稱\": \"杂著称\",\n\"雜著者\": \"杂著者\",\n\"雜著述\": \"杂著述\",\n\"雜著錄\": \"杂著录\",\n\"雜訊\": \"噪声\",\n\"雷伊泰灣\": \"莱特湾\",\n\"雷射\": \"激光\",\n\"雷諾瓦\": \"雷诺阿\",\n\"電單車\": \"摩托车\",\n\"電晶體\": \"晶体管\",\n\"電腦程式\": \"计算机程序\",\n\"電視劇集\": \"电视剧\",\n\"電視影集\": \"电视系列剧\",\n\"霍爾斯坦\": \"荷尔斯泰因\",\n\"非份\": \"非分\",\n\"非同步\": \"异步\",\n\"靠著\": \"靠着\",\n\"靠著作\": \"靠著作\",\n\"靠著名\": \"靠著名\",\n\"靠著稱\": \"靠著称\",\n\"靠著者\": \"靠著者\",\n\"靠著述\": \"靠著述\",\n\"靠著錄\": \"靠著录\",\n\"韌體\": \"固件\",\n\"音效卡\": \"声卡\",\n\"音樂錄影帶\": \"音乐录影带\",\n\"響著\": \"响着\",\n\"響著作\": \"响著作\",\n\"響著名\": \"响著名\",\n\"響著書\": \"响著书\",\n\"響著稱\": \"响著称\",\n\"響著者\": \"响著者\",\n\"響著述\": \"响著述\",\n\"響著錄\": \"响著录\",\n\"頂著\": \"顶着\",\n\"頂著作\": \"顶著作\",\n\"頂著名\": \"顶著名\",\n\"頂著書\": \"顶著书\",\n\"頂著稱\": \"顶著称\",\n\"頂著者\": \"顶著者\",\n\"頂著述\": \"顶著述\",\n\"頂著錄\": \"顶著录\",\n\"順著\": \"顺着\",\n\"順著作\": \"顺著作\",\n\"順著名\": \"顺著名\",\n\"順著書\": \"顺著书\",\n\"順著稱\": \"顺著称\",\n\"順著者\": \"顺著者\",\n\"順著述\": \"顺著述\",\n\"順著錄\": \"顺著录\",\n\"領著\": \"领着\",\n\"領著作\": \"领著作\",\n\"領著名\": \"领著名\",\n\"領著書\": \"领著书\",\n\"領著稱\": \"领著称\",\n\"領著者\": \"领著者\",\n\"領著述\": \"领著述\",\n\"領著錄\": \"领著录\",\n\"頻寬\": \"带宽\",\n\"顯示卡\": \"显卡\",\n\"顯著\": \"显著\",\n\"颳著\": \"刮着\",\n\"飃著\": \"飘着\",\n\"飄著\": \"飘着\",\n\"飄著作\": \"飘著作\",\n\"飄著名\": \"飘著名\",\n\"飄著書\": \"飘著书\",\n\"飄著稱\": \"飘著称\",\n\"飄著者\": \"飘著者\",\n\"飄著述\": \"飘著述\",\n\"飄著錄\": \"飘著录\",\n\"飛彈\": \"导弹\",\n\"餘\": \"余\",\n\"馬利共和國\": \"马里共和国\",\n\"馬勒當拿\": \"马拉多纳\",\n\"馬拉威\": \"马拉维\",\n\"馬拉度納\": \"马拉多纳\",\n\"馬斯垂克\": \"马斯特里赫特\",\n\"馬爾他\": \"马耳他\",\n\"馬爾地夫\": \"马尔代夫\",\n\"駕著\": \"驾着\",\n\"駕著作\": \"驾著作\",\n\"駕著名\": \"驾著名\",\n\"駕著書\": \"驾著书\",\n\"駕著稱\": \"驾著称\",\n\"駕著者\": \"驾著者\",\n\"駕著述\": \"驾著述\",\n\"駕著錄\": \"驾著录\",\n\"駛著\": \"驶着\",\n\"騎著\": \"骑着\",\n\"騎著作\": \"骑著作\",\n\"騎著名\": \"骑著名\",\n\"騎著書\": \"骑著书\",\n\"騎著稱\": \"骑著称\",\n\"騎著者\": \"骑著者\",\n\"騎著述\": \"骑著述\",\n\"騎著錄\": \"骑著录\",\n\"騙著\": \"骗着\",\n\"騙著作\": \"骗著作\",\n\"騙著名\": \"骗著名\",\n\"騙著書\": \"骗著书\",\n\"騙著稱\": \"骗著称\",\n\"騙著者\": \"骗著者\",\n\"騙著述\": \"骗著述\",\n\"騙著錄\": \"骗著录\",\n\"高畫質\": \"高清\",\n\"高著\": \"高着\",\n\"高著作\": \"高著作\",\n\"高著名\": \"高著名\",\n\"高著書\": \"高著书\",\n\"高著称\": \"高著称\",\n\"高著稱\": \"高著称\",\n\"高著者\": \"高著者\",\n\"高著述\": \"高著述\",\n\"高著錄\": \"高著录\",\n\"鬥著\": \"斗着\",\n\"鬥著作\": \"斗著作\",\n\"鬥著名\": \"斗著名\",\n\"鬥著書\": \"斗著书\",\n\"鬥著稱\": \"斗著称\",\n\"鬥著者\": \"斗著者\",\n\"鬥著述\": \"斗著述\",\n\"鬥著錄\": \"斗著录\",\n\"鬧著\": \"闹着\",\n\"魚雷\": \"鱼雷\",\n\"鱼雷\": \"鱼雷\",\n\"鹽份\": \"盐分\",\n\"麻薩諸塞\": \"马萨诸塞\",\n\"麼著\": \"么着\",\n\"黎克特制\": \"里氏\",\n\"黏著\": \"黏着\",\n\"黏著作\": \"黏著作\",\n\"黏著名\": \"黏著名\",\n\"黏著書\": \"黏著书\",\n\"黏著稱\": \"黏著称\",\n\"黏著者\": \"黏著者\",\n\"黏著述\": \"黏著述\",\n\"黏著錄\": \"黏著录\",\n\"黛安娜\": \"戴安娜\",\n\"點著\": \"点着\",\n\"點著作\": \"点著作\",\n\"點著名\": \"点著名\",\n\"點著稱\": \"点著称\",\n\"點著者\": \"点著者\",\n\"點著述\": \"点著述\",\n\"點著錄\": \"点著录\",\n\"點陣圖\": \"位图\"\n},\n\"zh2HK\": {\n\"0字节\": \"0位元組\",\n\"1字节\": \"1位元組\",\n\"2字节\": \"2位元組\",\n\"3字节\": \"3位元組\",\n\"4字节\": \"4位元組\",\n\"5字节\": \"5位元組\",\n\"6字节\": \"6位元組\",\n\"7字节\": \"7位元組\",\n\"8字节\": \"8位元組\",\n\"9字节\": \"9位元組\",\n\"A型肝炎\": \"甲型肝炎\",\n\"A肝\": \"甲肝\",\n\"B型肝炎\": \"乙型肝炎\",\n\"B肝\": \"乙肝\",\n\"C型肝炎\": \"丙型肝炎\",\n\"C肝\": \"丙肝\",\n\"IP地址\": \"IP位址\",\n\"·威尔士\": \"·威爾士\",\n\"·威爾士\": \"·威爾士\",\n\"》里\": \"》裏\",\n\"一地里\": \"一地裏\",\n\"万历朝鲜战争\": \"萬曆朝鮮戰爭\",\n\"三十六著\": \"三十六着\",\n\"三極體\": \"三極管\",\n\"上台面\": \"上枱面\",\n\"下文里\": \"下文裏\",\n\"下著\": \"下着\",\n\"下著作\": \"下著作\",\n\"下著名\": \"下著名\",\n\"下著录\": \"下著錄\",\n\"下著有\": \"下著有\",\n\"下著称\": \"下著稱\",\n\"下著稱\": \"下著稱\",\n\"下著者\": \"下著者\",\n\"下著述\": \"下著述\",\n\"下著錄\": \"下著錄\",\n\"不列颠哥伦比亚省\": \"卑詩省\",\n\"不占\": \"不佔\",\n\"不萊梅\": \"不來梅\",\n\"不著痕跡\": \"不着痕跡\",\n\"不著邊際\": \"不着邊際\",\n\"专辑里\": \"專輯裏\",\n\"世纪里\": \"世紀裏\",\n\"丛林里\": \"叢林裏\",\n\"个月里\": \"個月裏\",\n\"个里\": \"個裏\",\n\"中文里\": \"中文裏\",\n\"丹帕沙\": \"登巴薩\",\n\"乔治·奥威尔\": \"喬治·歐威爾\",\n\"乘著\": \"乘着\",\n\"乘著作\": \"乘著作\",\n\"乘著名\": \"乘著名\",\n\"乘著書\": \"乘著書\",\n\"乘著称\": \"乘著稱\",\n\"乘著稱\": \"乘著稱\",\n\"乘著者\": \"乘著者\",\n\"乘著述\": \"乘著述\",\n\"乘著錄\": \"乘著錄\",\n\"事里\": \"事裏\",\n\"二極體\": \"二極管\",\n\"云里雾里\": \"雲裏霧裏\",\n\"井里\": \"井裏\",\n\"亚细安\": \"東盟\",\n\"亞伯塔\": \"艾伯塔\",\n\"亞塞拜然\": \"阿塞拜疆\",\n\"亞斯文\": \"阿斯旺\",\n\"亮著\": \"亮着\",\n\"亮著《\": \"亮著《\",\n\"亮著作\": \"亮著作\",\n\"亮著名\": \"亮著名\",\n\"亮著書\": \"亮著書\",\n\"亮著称\": \"亮著稱\",\n\"亮著稱\": \"亮著稱\",\n\"亮著者\": \"亮著者\",\n\"亮著述\": \"亮著述\",\n\"亮著錄\": \"亮著錄\",\n\"人工智慧\": \"人工智能\",\n\"人数里\": \"人數裏\",\n\"人行道\": \"行人路\",\n\"什勒斯維希\": \"石勒蘇益格\",\n\"从图里\": \"從圖裏\",\n\"从山里\": \"從山裏\",\n\"从里到外\": \"從裏到外\",\n\"从里向外\": \"從裏向外\",\n\"仗著\": \"仗着\",\n\"仗著作\": \"仗著作\",\n\"仗著名\": \"仗著名\",\n\"仗著書\": \"仗著書\",\n\"仗著稱\": \"仗著稱\",\n\"仗著者\": \"仗著者\",\n\"仗著述\": \"仗著述\",\n\"仗著錄\": \"仗著錄\",\n\"代表著\": \"代表着\",\n\"代表著作\": \"代表著作\",\n\"代表著名\": \"代表著名\",\n\"代表著書\": \"代表著書\",\n\"代表著稱\": \"代表著稱\",\n\"代表著者\": \"代表著者\",\n\"代表著述\": \"代表著述\",\n\"代表著錄\": \"代表著錄\",\n\"伊斯蘭瑪巴德\": \"伊斯蘭堡\",\n\"伏地挺身\": \"掌上壓\",\n\"伏著\": \"伏着\",\n\"会占\": \"會佔\",\n\"会占卜\": \"會占卜\",\n\"会里\": \"會裏\",\n\"伯明罕\": \"伯明翰\",\n\"伴著\": \"伴着\",\n\"伴著作\": \"伴著作\",\n\"伴著名\": \"伴著名\",\n\"伴著書\": \"伴著書\",\n\"伴著稱\": \"伴著稱\",\n\"伴著者\": \"伴著者\",\n\"伴著述\": \"伴著述\",\n\"伴著錄\": \"伴著錄\",\n\"低著\": \"低着\",\n\"低著作\": \"低著作\",\n\"低著名\": \"低著名\",\n\"低著書\": \"低著書\",\n\"低著称\": \"低著稱\",\n\"低著稱\": \"低著稱\",\n\"低著者\": \"低著者\",\n\"低著述\": \"低著述\",\n\"低著錄\": \"低著錄\",\n\"住著\": \"住着\",\n\"住著作\": \"住著作\",\n\"住著名\": \"住著名\",\n\"住著書\": \"住著書\",\n\"住著稱\": \"住著稱\",\n\"住著者\": \"住著者\",\n\"住著述\": \"住著述\",\n\"住著錄\": \"住著錄\",\n\"体里\": \"體裏\",\n\"作品里\": \"作品裏\",\n\"來著\": \"來着\",\n\"來著作\": \"來著作\",\n\"來著名\": \"來著名\",\n\"來著書\": \"來著書\",\n\"來著稱\": \"來著稱\",\n\"來著者\": \"來著者\",\n\"來著述\": \"來著述\",\n\"來著錄\": \"來著錄\",\n\"侵占\": \"侵佔\",\n\"係數\": \"系數\",\n\"促著\": \"促着\",\n\"俄占\": \"俄佔\",\n\"保障著\": \"保障着\",\n\"保障著作\": \"保障著作\",\n\"保障著名\": \"保障著名\",\n\"保障著書\": \"保障著書\",\n\"保障著稱\": \"保障著稱\",\n\"保障著者\": \"保障著者\",\n\"保障著述\": \"保障著述\",\n\"保障著錄\": \"保障著錄\",\n\"信息时代\": \"資訊時代\",\n\"信著\": \"信着\",\n\"信著《\": \"信著《\",\n\"信著作\": \"信著作\",\n\"信著名\": \"信著名\",\n\"信著書\": \"信著書\",\n\"信著称\": \"信著稱\",\n\"信著稱\": \"信著稱\",\n\"信著者\": \"信著者\",\n\"信著述\": \"信著述\",\n\"信著錄\": \"信著錄\",\n\"俯卧撑\": \"掌上壓\",\n\"倒楣\": \"倒霉\",\n\"候著\": \"候着\",\n\"候著作\": \"候著作\",\n\"候著名\": \"候著名\",\n\"候著書\": \"候著書\",\n\"候著稱\": \"候著稱\",\n\"候著者\": \"候著者\",\n\"候著述\": \"候著述\",\n\"候著錄\": \"候著錄\",\n\"借著\": \"借着\",\n\"借著作\": \"借著作\",\n\"借著名\": \"借著名\",\n\"借著書\": \"借著書\",\n\"借著稱\": \"借著稱\",\n\"借著者\": \"借著者\",\n\"借著述\": \"借著述\",\n\"借著錄\": \"借著錄\",\n\"假里\": \"假裏\",\n\"做著\": \"做着\",\n\"做著作\": \"做著作\",\n\"做著名\": \"做著名\",\n\"做著書\": \"做著書\",\n\"做著稱\": \"做著稱\",\n\"做著者\": \"做著者\",\n\"做著述\": \"做著述\",\n\"做著錄\": \"做著錄\",\n\"側著\": \"側着\",\n\"側著作\": \"側著作\",\n\"側著名\": \"側著名\",\n\"側著書\": \"側著書\",\n\"側著稱\": \"側著稱\",\n\"側著者\": \"側著者\",\n\"側著述\": \"側著述\",\n\"側著錄\": \"側著錄\",\n\"偷著\": \"偷着\",\n\"偷著作\": \"偷著作\",\n\"偷著名\": \"偷著名\",\n\"偷著書\": \"偷著書\",\n\"偷著稱\": \"偷著稱\",\n\"偷著者\": \"偷著者\",\n\"偷著述\": \"偷著述\",\n\"偷著錄\": \"偷著錄\",\n\"備著\": \"備着\",\n\"備著作\": \"備著作\",\n\"備著名\": \"備著名\",\n\"備著書\": \"備著書\",\n\"備著稱\": \"備著稱\",\n\"備著者\": \"備著者\",\n\"備著述\": \"備著述\",\n\"備著錄\": \"備著錄\",\n\"傻里傻气\": \"傻裏傻氣\",\n\"僞\": \"偽\",\n\"先占\": \"先佔\",\n\"光著\": \"光着\",\n\"光著《\": \"光著《\",\n\"光著作\": \"光著作\",\n\"光著名\": \"光著名\",\n\"光著書\": \"光著書\",\n\"光著称\": \"光著稱\",\n\"光著稱\": \"光著稱\",\n\"光著者\": \"光著者\",\n\"光著述\": \"光著述\",\n\"光著錄\": \"光著錄\",\n\"克卜勒\": \"開普勒\",\n\"克羅埃西亞\": \"克羅地亞\",\n\"兌\": \"兑\",\n\"全角\": \"全形\",\n\"全角度\": \"全角度\",\n\"全角色\": \"全角色\",\n\"公厘\": \"毫米\",\n\"公寓里\": \"公寓裏\",\n\"公布\": \"公佈\",\n\"公釐\": \"毫米\",\n\"共和联邦\": \"英聯邦\",\n\"冑\": \"胄\",\n\"冒著\": \"冒着\",\n\"冒著作\": \"冒著作\",\n\"冒著名\": \"冒著名\",\n\"冒著書\": \"冒著書\",\n\"冒著稱\": \"冒著稱\",\n\"冒著者\": \"冒著者\",\n\"冒著述\": \"冒著述\",\n\"冒著錄\": \"冒著錄\",\n\"冗\": \"宂\",\n\"写字台\": \"寫字枱\",\n\"冰山里\": \"冰山裏\",\n\"冰淇淋\": \"雪糕\",\n\"冰激凌\": \"雪糕\",\n\"准将\": \"準將\",\n\"准將\": \"準將\",\n\"准尉\": \"準尉\",\n\"凯瑟琳\": \"嘉芙蓮\",\n\"凱薩琳\": \"嘉芙蓮\",\n\"凶惡\": \"兇惡\",\n\"凶殘\": \"兇殘\",\n\"凶殺\": \"兇殺\",\n\"击剑\": \"劍擊\",\n\"函数里\": \"函數裏\",\n\"分佈著\": \"分佈着\",\n\"分占\": \"分佔\",\n\"分布\": \"分佈\",\n\"分布于\": \"分佈於\",\n\"分布著\": \"分佈着\",\n\"分辨率\": \"解像度\",\n\"分钟里\": \"分鐘裏\",\n\"切尔诺贝利\": \"切爾諾貝爾\",\n\"列印\": \"打印\",\n\"列支敦斯登\": \"列支敦士登\",\n\"別著\": \"別着\",\n\"刮著\": \"刮着\",\n\"到山里\": \"到山裏\",\n\"制著\": \"制着\",\n\"制著作\": \"制著作\",\n\"制著名\": \"制著名\",\n\"制著書\": \"制著書\",\n\"制著稱\": \"制著稱\",\n\"制著者\": \"制著者\",\n\"制著述\": \"制著述\",\n\"制著錄\": \"制著錄\",\n\"刻著\": \"刻着\",\n\"刻著作\": \"刻著作\",\n\"刻著名\": \"刻著名\",\n\"刻著書\": \"刻著書\",\n\"刻著称\": \"刻著稱\",\n\"刻著稱\": \"刻著稱\",\n\"刻著者\": \"刻著者\",\n\"刻著述\": \"刻著述\",\n\"刻著錄\": \"刻著錄\",\n\"前波莫瑞\": \"前波美拉尼亞\",\n\"剪彩\": \"剪綵\",\n\"割占\": \"割佔\",\n\"劃著\": \"劃着\",\n\"办公台\": \"辦公枱\",\n\"加彭\": \"加蓬\",\n\"加泰隆尼亞\": \"加泰羅尼亞\",\n\"加薩走廊\": \"加沙地帶\",\n\"努力著\": \"努力着\",\n\"努力著作\": \"努力著作\",\n\"努力著名\": \"努力著名\",\n\"努力著書\": \"努力著書\",\n\"努力著称\": \"努力著稱\",\n\"努力著稱\": \"努力著稱\",\n\"努力著者\": \"努力著者\",\n\"努力著述\": \"努力著述\",\n\"努力著錄\": \"努力著錄\",\n\"動著\": \"動着\",\n\"動著作\": \"動著作\",\n\"動著名\": \"動著名\",\n\"動著書\": \"動著書\",\n\"動著稱\": \"動著稱\",\n\"動著者\": \"動著者\",\n\"動著述\": \"動著述\",\n\"動著錄\": \"動著錄\",\n\"勳\": \"勛\",\n\"包著\": \"包着\",\n\"北朝鲜\": \"北韓\",\n\"区里有\": \"區裏有\",\n\"区里的\": \"區裏的\",\n\"千里達及托巴哥\": \"特立尼達和多巴哥\",\n\"单反相机\": \"單鏡反光機\",\n\"南朝鲜\": \"南韓\",\n\"占0\": \"佔0\",\n\"占1\": \"佔1\",\n\"占2\": \"佔2\",\n\"占3\": \"佔3\",\n\"占4\": \"佔4\",\n\"占5\": \"佔5\",\n\"占6\": \"佔6\",\n\"占7\": \"佔7\",\n\"占8\": \"佔8\",\n\"占9\": \"佔9\",\n\"占A\": \"佔A\",\n\"占B\": \"佔B\",\n\"占C\": \"佔C\",\n\"占D\": \"佔D\",\n\"占E\": \"佔E\",\n\"占F\": \"佔F\",\n\"占G\": \"佔G\",\n\"占H\": \"佔H\",\n\"占I\": \"佔I\",\n\"占J\": \"佔J\",\n\"占K\": \"佔K\",\n\"占L\": \"佔L\",\n\"占M\": \"佔M\",\n\"占N\": \"佔N\",\n\"占O\": \"佔O\",\n\"占P\": \"佔P\",\n\"占Q\": \"佔Q\",\n\"占R\": \"佔R\",\n\"占S\": \"佔S\",\n\"占T\": \"佔T\",\n\"占U\": \"佔U\",\n\"占V\": \"佔V\",\n\"占W\": \"佔W\",\n\"占X\": \"佔X\",\n\"占Y\": \"佔Y\",\n\"占Z\": \"佔Z\",\n\"占〇\": \"佔〇\",\n\"占一\": \"佔一\",\n\"占七\": \"佔七\",\n\"占万\": \"佔萬\",\n\"占三\": \"佔三\",\n\"占上風\": \"佔上風\",\n\"占上风\": \"佔上風\",\n\"占下\": \"佔下\",\n\"占下風\": \"佔下風\",\n\"占下风\": \"佔下風\",\n\"占不占\": \"佔不佔\",\n\"占不足\": \"佔不足\",\n\"占世界\": \"佔世界\",\n\"占东\": \"佔東\",\n\"占两\": \"佔兩\",\n\"占个\": \"佔個\",\n\"占个位\": \"佔個位\",\n\"占中\": \"佔中\",\n\"占为\": \"佔為\",\n\"占主\": \"佔主\",\n\"占主要\": \"佔主要\",\n\"占九\": \"佔九\",\n\"占了\": \"佔了\",\n\"占二\": \"佔二\",\n\"占五\": \"佔五\",\n\"占人便宜\": \"佔人便宜\",\n\"占亿\": \"佔億\",\n\"占优\": \"佔優\",\n\"占位\": \"佔位\",\n\"占住\": \"佔住\",\n\"占便宜\": \"佔便宜\",\n\"占俄\": \"佔俄\",\n\"占個\": \"佔個\",\n\"占個位\": \"佔個位\",\n\"占億\": \"佔億\",\n\"占優\": \"佔優\",\n\"占先\": \"佔先\",\n\"占光\": \"佔光\",\n\"占全\": \"佔全\",\n\"占兩\": \"佔兩\",\n\"占八\": \"佔八\",\n\"占六\": \"佔六\",\n\"占分\": \"佔分\",\n\"占到\": \"佔到\",\n\"占加\": \"佔加\",\n\"占劣\": \"佔劣\",\n\"占北\": \"佔北\",\n\"占十\": \"佔十\",\n\"占千\": \"佔千\",\n\"占半\": \"佔半\",\n\"占南\": \"佔南\",\n\"占卜\": \"占卜\",\n\"占占\": \"佔佔\",\n\"占印\": \"佔印\",\n\"占压\": \"佔壓\",\n\"占去\": \"佔去\",\n\"占取\": \"佔取\",\n\"占台\": \"佔台\",\n\"占囁\": \"佔囁\",\n\"占四\": \"佔四\",\n\"占国\": \"佔國\",\n\"占国桥\": \"占國橋\",\n\"占國\": \"佔國\",\n\"占國橋\": \"占國橋\",\n\"占在\": \"佔在\",\n\"占地\": \"佔地\",\n\"占场\": \"佔場\",\n\"占場\": \"佔場\",\n\"占壓\": \"佔壓\",\n\"占多\": \"佔多\",\n\"占大\": \"佔大\",\n\"占头\": \"佔頭\",\n\"占头筹\": \"佔頭籌\",\n\"占好\": \"佔好\",\n\"占小\": \"佔小\",\n\"占少\": \"佔少\",\n\"占尽\": \"佔盡\",\n\"占局部\": \"佔局部\",\n\"占屋\": \"佔屋\",\n\"占山为\": \"佔山為\",\n\"占山為\": \"佔山為\",\n\"占市\": \"佔市\",\n\"占平均\": \"佔平均\",\n\"占床\": \"佔床\",\n\"占座\": \"佔座\",\n\"占後\": \"佔後\",\n\"占得\": \"佔得\",\n\"占德\": \"佔德\",\n\"占总\": \"佔總\",\n\"占所有\": \"佔所有\",\n\"占据\": \"佔據\",\n\"占掉\": \"佔掉\",\n\"占據\": \"佔據\",\n\"占整\": \"佔整\",\n\"占新\": \"佔新\",\n\"占有\": \"佔有\",\n\"占有五不\": \"占有五不\",\n\"占東\": \"佔東\",\n\"占查\": \"佔查\",\n\"占次\": \"佔次\",\n\"占比\": \"佔比\",\n\"占毕\": \"佔畢\",\n\"占法\": \"佔法\",\n\"占满\": \"佔滿\",\n\"占滿\": \"佔滿\",\n\"占澳\": \"佔澳\",\n\"占為\": \"佔為\",\n\"占率\": \"佔率\",\n\"占用\": \"佔用\",\n\"占畢\": \"佔畢\",\n\"占百\": \"佔百\",\n\"占盡\": \"佔盡\",\n\"占着\": \"佔着\",\n\"占網\": \"佔網\",\n\"占線\": \"佔線\",\n\"占總\": \"佔總\",\n\"占线\": \"佔線\",\n\"占缺\": \"佔缺\",\n\"占网\": \"佔網\",\n\"占美国\": \"佔美國\",\n\"占美國\": \"佔美國\",\n\"占耕\": \"佔耕\",\n\"占至多\": \"佔至多\",\n\"占至少\": \"佔至少\",\n\"占臺\": \"佔臺\",\n\"占苏\": \"佔蘇\",\n\"占英\": \"佔英\",\n\"占萬\": \"佔萬\",\n\"占著\": \"佔着\",\n\"占著作\": \"占著作\",\n\"占著名\": \"佔著名\",\n\"占著稱\": \"占著稱\",\n\"占著者\": \"佔著者\",\n\"占著述\": \"占著述\",\n\"占著錄\": \"占著錄\",\n\"占葡\": \"佔葡\",\n\"占蘇\": \"佔蘇\",\n\"占西\": \"佔西\",\n\"占資\": \"佔資\",\n\"占资\": \"佔資\",\n\"占起\": \"佔起\",\n\"占超过\": \"佔超過\",\n\"占超過\": \"佔超過\",\n\"占过\": \"佔過\",\n\"占過\": \"佔過\",\n\"占道\": \"佔道\",\n\"占零\": \"佔零\",\n\"占領\": \"佔領\",\n\"占頭\": \"佔頭\",\n\"占頭籌\": \"佔頭籌\",\n\"占领\": \"佔領\",\n\"占香\": \"佔香\",\n\"占馬\": \"佔馬\",\n\"占马\": \"佔馬\",\n\"占高枝\": \"佔高枝\",\n\"卡斯楚\": \"卡斯特羅\",\n\"卡普里亚蒂\": \"卡佩雅蒂\",\n\"卢塞恩\": \"琉森\",\n\"卢浮宫\": \"羅浮宮\",\n\"印著\": \"印着\",\n\"印著《\": \"印著《\",\n\"印著作\": \"印著作\",\n\"印著名\": \"印著名\",\n\"印著書\": \"印著書\",\n\"印著稱\": \"印著稱\",\n\"印著者\": \"印著者\",\n\"印著述\": \"印著述\",\n\"印著錄\": \"印著錄\",\n\"印表機\": \"打印機\",\n\"厄利垂亚\": \"厄立特里亞\",\n\"厄利垂亞\": \"厄立特里亞\",\n\"厄瓜多\": \"厄瓜多爾\",\n\"厄瓜多尔\": \"厄瓜多爾\",\n\"厄瓜多爾\": \"厄瓜多爾\",\n\"历史里\": \"歷史裏\",\n\"原文里\": \"原文裏\",\n\"去山里\": \"去山裏\",\n\"县里\": \"縣裏\",\n\"参数里\": \"參數裏\",\n\"叄\": \"叁\",\n\"发布\": \"發佈\",\n\"受著\": \"受着\",\n\"受著作\": \"受著作\",\n\"受著名\": \"受著名\",\n\"受著書\": \"受著書\",\n\"受著稱\": \"受著稱\",\n\"受著者\": \"受著者\",\n\"受著述\": \"受著述\",\n\"受著錄\": \"受著錄\",\n\"口里\": \"口裏\",\n\"古文里\": \"古文裏\",\n\"古柯鹼\": \"可卡因\",\n\"只占\": \"只佔\",\n\"叫著\": \"叫着\",\n\"叫著作\": \"叫著作\",\n\"叫著名\": \"叫著名\",\n\"叫著書\": \"叫著書\",\n\"叫著稱\": \"叫著稱\",\n\"叫著者\": \"叫著者\",\n\"叫著述\": \"叫著述\",\n\"叫著錄\": \"叫著錄\",\n\"台历\": \"枱曆\",\n\"台式电脑\": \"桌上型電腦\",\n\"台灯\": \"枱燈\",\n\"台球\": \"桌球\",\n\"台面上\": \"枱面上\",\n\"台面化\": \"枱面化\",\n\"叱吒\": \"叱咤\",\n\"史匹柏\": \"史匹堡\",\n\"史瓦帝尼\": \"斯威士蘭\",\n\"史瓦濟蘭\": \"斯威士蘭\",\n\"史蒂芬·史匹柏\": \"史提芬·史匹堡\",\n\"吃不著\": \"吃不着\",\n\"吃得著\": \"吃得着\",\n\"吃著\": \"吃着\",\n\"吃里扒外\": \"吃裏扒外\",\n\"吃里爬外\": \"吃裏爬外\",\n\"吉他\": \"結他\",\n\"吉力馬札羅\": \"乞力馬札羅\",\n\"吉尼斯世界纪录\": \"健力士世界紀錄\",\n\"吉布地\": \"吉布堤\",\n\"吉里巴斯\": \"基里巴斯\",\n\"吊著\": \"吊着\",\n\"吐瓦魯\": \"圖瓦盧\",\n\"向著\": \"向着\",\n\"向著作\": \"向著作\",\n\"向著名\": \"向著名\",\n\"向著書\": \"向著書\",\n\"向著稱\": \"向著稱\",\n\"向著者\": \"向著者\",\n\"向著述\": \"向著述\",\n\"向著錄\": \"向著錄\",\n\"吞占\": \"吞佔\",\n\"吧台\": \"吧枱\",\n\"含著\": \"含着\",\n\"含著作\": \"含著作\",\n\"含著名\": \"含著名\",\n\"含著書\": \"含著書\",\n\"含著稱\": \"含著稱\",\n\"含著者\": \"含著者\",\n\"含著述\": \"含著述\",\n\"含著錄\": \"含著錄\",\n\"吹著\": \"吹着\",\n\"吹著作\": \"吹著作\",\n\"吹著名\": \"吹著名\",\n\"吹著書\": \"吹著書\",\n\"吹著稱\": \"吹著稱\",\n\"吹著者\": \"吹著者\",\n\"吹著述\": \"吹著述\",\n\"吹著錄\": \"吹著錄\",\n\"呆著\": \"呆着\",\n\"呆里呆气\": \"呆裏呆氣\",\n\"告\": \"吿\",\n\"告里\": \"告裏\",\n\"味著\": \"味着\",\n\"味著作\": \"味著作\",\n\"味著名\": \"味著名\",\n\"味著書\": \"味著書\",\n\"味著称\": \"味著稱\",\n\"味著稱\": \"味著稱\",\n\"味著者\": \"味著者\",\n\"味著述\": \"味著述\",\n\"味著錄\": \"味著錄\",\n\"咖哩\": \"咖喱\",\n\"咬著\": \"咬着\",\n\"哥廷根\": \"格丁根\",\n\"哥斯大黎加\": \"哥斯達黎加\",\n\"哥特式\": \"哥德式\",\n\"哪里\": \"哪裏\",\n\"哭著\": \"哭着\",\n\"哭著作\": \"哭著作\",\n\"哭著名\": \"哭著名\",\n\"哭著書\": \"哭著書\",\n\"哭著稱\": \"哭著稱\",\n\"哭著者\": \"哭著者\",\n\"哭著述\": \"哭著述\",\n\"哭著錄\": \"哭著錄\",\n\"唐納·川普\": \"當勞·特朗普\",\n\"唐纳德·特朗普\": \"當勞·特朗普\",\n\"唱著\": \"唱着\",\n\"唱著作\": \"唱著作\",\n\"唱著名\": \"唱著名\",\n\"唱著書\": \"唱著書\",\n\"唱著稱\": \"唱著稱\",\n\"唱著者\": \"唱著者\",\n\"唱著述\": \"唱著述\",\n\"唱著錄\": \"唱著錄\",\n\"啓\": \"啟\",\n\"喀拉蚩\": \"卡拉奇\",\n\"喝著\": \"喝着\",\n\"喝著作\": \"喝著作\",\n\"喝著名\": \"喝著名\",\n\"喝著書\": \"喝著書\",\n\"喝著稱\": \"喝著稱\",\n\"喝著者\": \"喝著者\",\n\"喝著述\": \"喝著述\",\n\"喝著錄\": \"喝著錄\",\n\"喫\": \"吃\",\n\"喬治亞字母\": \"格魯吉亞字母\",\n\"單眼相機\": \"單鏡反光機\",\n\"嗅不著\": \"嗅不着\",\n\"嗅得著\": \"嗅得着\",\n\"嗅著\": \"嗅着\",\n\"嘆\": \"歎\",\n\"嘯吒\": \"嘯咤\",\n\"嘴里\": \"嘴裏\",\n\"嚷著\": \"嚷着\",\n\"嚷著作\": \"嚷著作\",\n\"嚷著名\": \"嚷著名\",\n\"嚷著書\": \"嚷著書\",\n\"嚷著稱\": \"嚷著稱\",\n\"嚷著者\": \"嚷著者\",\n\"嚷著述\": \"嚷著述\",\n\"嚷著錄\": \"嚷著錄\",\n\"回著\": \"回着\",\n\"回著名\": \"回著名\",\n\"因特网\": \"互聯網\",\n\"因著\": \"因着\",\n\"因著〈\": \"因著〈\",\n\"因著《\": \"因著《\",\n\"因著作\": \"因著作\",\n\"因著名\": \"因著名\",\n\"因著書\": \"因著書\",\n\"因著稱\": \"因著稱\",\n\"因著者\": \"因著者\",\n\"因著述\": \"因著述\",\n\"因著錄\": \"因著錄\",\n\"囪\": \"囱\",\n\"园里\": \"園裏\",\n\"困著\": \"困着\",\n\"困著作\": \"困著作\",\n\"困著名\": \"困著名\",\n\"困著書\": \"困著書\",\n\"困著稱\": \"困著稱\",\n\"困著者\": \"困著者\",\n\"困著述\": \"困著述\",\n\"困著錄\": \"困著錄\",\n\"固著\": \"固着\",\n\"图里的\": \"圖裏的\",\n\"图里，\": \"圖裏，\",\n\"圈占\": \"圈佔\",\n\"圈里\": \"圈裏\",\n\"圍著\": \"圍着\",\n\"圍著作\": \"圍著作\",\n\"圍著名\": \"圍著名\",\n\"圍著書\": \"圍著書\",\n\"圍著稱\": \"圍著稱\",\n\"圍著者\": \"圍著者\",\n\"圍著述\": \"圍著述\",\n\"圍著錄\": \"圍著錄\",\n\"土里\": \"土裏\",\n\"土魯斯\": \"圖盧茲\",\n\"圣乔治\": \"聖佐治\",\n\"圣基茨和尼维斯\": \"聖吉斯納域斯\",\n\"在山里\": \"在山裏\",\n\"地占\": \"地佔\",\n\"地图里\": \"地圖裏\",\n\"场里\": \"場裏\",\n\"坎城\": \"康城\",\n\"坐台\": \"坐枱\",\n\"坐台铁\": \"坐台鐵\",\n\"坐著\": \"坐着\",\n\"坐著作\": \"坐著作\",\n\"坐著名\": \"坐著名\",\n\"坐著書\": \"坐著書\",\n\"坐著稱\": \"坐著稱\",\n\"坐著者\": \"坐著者\",\n\"坐著述\": \"坐著述\",\n\"坐著錄\": \"坐著錄\",\n\"坑里\": \"坑裏\",\n\"坦尚尼亞\": \"坦桑尼亞\",\n\"埃博拉\": \"伊波拉\",\n\"埃菲尔\": \"艾菲爾\",\n\"埋著\": \"埋着\",\n\"城市里\": \"城市裏\",\n\"城里\": \"城裏\",\n\"域里\": \"域裏\",\n\"堅貞著\": \"堅貞着\",\n\"堪培拉\": \"坎培拉\",\n\"塑料袋\": \"膠袋\",\n\"塔希提\": \"大溪地\",\n\"塗著\": \"塗着\",\n\"塞席爾\": \"塞舌爾\",\n\"塞拉耶佛\": \"薩拉熱窩\",\n\"塞普勒斯\": \"塞浦路斯\",\n\"塞爾維亞與蒙特內哥羅\": \"塞爾維亞和黑山\",\n\"塞維亞\": \"西維爾\",\n\"塞维利亚\": \"西維爾\",\n\"境里\": \"境裏\",\n\"墙里\": \"牆裏\",\n\"壓著\": \"壓着\",\n\"壓著作\": \"壓著作\",\n\"壓著名\": \"壓著名\",\n\"壓著書\": \"壓著書\",\n\"壓著稱\": \"壓著稱\",\n\"壓著者\": \"壓著者\",\n\"壓著述\": \"壓著述\",\n\"壓著錄\": \"壓著錄\",\n\"壳里\": \"殼裏\",\n\"壶里\": \"壺裏\",\n\"多占\": \"多佔\",\n\"夜晚里\": \"夜晚裏\",\n\"夜里\": \"夜裏\",\n\"夢有五不占\": \"夢有五不占\",\n\"夢著\": \"夢着\",\n\"夢著《\": \"夢著《\",\n\"夢著作\": \"夢著作\",\n\"夢著名\": \"夢著名\",\n\"夢著書\": \"夢著書\",\n\"夢著稱\": \"夢著稱\",\n\"夢著者\": \"夢著者\",\n\"夢著述\": \"夢著述\",\n\"夢著錄\": \"夢著錄\",\n\"大英國協\": \"英聯邦\",\n\"天里\": \"天裏\",\n\"太空梭\": \"穿梭機\",\n\"头里\": \"頭裏\",\n\"夾著\": \"夾着\",\n\"夾著作\": \"夾著作\",\n\"夾著名\": \"夾著名\",\n\"夾著書\": \"夾著書\",\n\"夾著稱\": \"夾著稱\",\n\"夾著者\": \"夾著者\",\n\"夾著述\": \"夾著述\",\n\"夾著錄\": \"夾著錄\",\n\"奈及利亞\": \"尼日利亞\",\n\"奈洛比\": \"內羅畢\",\n\"奥占\": \"奧佔\",\n\"奥黛丽·赫本\": \"柯德莉·夏萍\",\n\"奧勒岡\": \"俄勒岡\",\n\"奧占\": \"奧佔\",\n\"奧黛莉·朵杜\": \"柯德莉·塔圖\",\n\"奧黛麗·赫本\": \"柯德莉·夏萍\",\n\"好莱坞\": \"荷里活\",\n\"好萊塢\": \"荷里活\",\n\"妆台\": \"妝枱\",\n\"妝\": \"粧\",\n\"威尔士\": \"威爾斯\",\n\"威斯伐倫\": \"威斯特法倫\",\n\"威爾士\": \"威爾斯\",\n\"媼\": \"媪\",\n\"嫋\": \"裊\",\n\"嫺\": \"嫻\",\n\"嬀\": \"媯\",\n\"子里\": \"子裏\",\n\"字里行间\": \"字裏行間\",\n\"存在著\": \"存在着\",\n\"存著\": \"存着\",\n\"存著作\": \"存著作\",\n\"存著名\": \"存著名\",\n\"孟德爾頌\": \"孟德爾遜\",\n\"学里\": \"學裏\",\n\"學著\": \"學着\",\n\"學著作\": \"學著作\",\n\"學著名\": \"學著名\",\n\"學著書\": \"學著書\",\n\"學著稱\": \"學著稱\",\n\"學著者\": \"學著者\",\n\"學著述\": \"學著述\",\n\"學著錄\": \"學著錄\",\n\"宇航员\": \"太空人\",\n\"守著\": \"守着\",\n\"守著作\": \"守著作\",\n\"守著名\": \"守著名\",\n\"守著書\": \"守著書\",\n\"守著称\": \"守著稱\",\n\"守著稱\": \"守著稱\",\n\"守著者\": \"守著者\",\n\"守著述\": \"守著述\",\n\"守著錄\": \"守著錄\",\n\"安哈特\": \"安哈爾特\",\n\"安地卡\": \"安提瓜\",\n\"安地卡及巴布達\": \"安提瓜和巴布達\",\n\"宏都拉斯\": \"洪都拉斯\",\n\"定著\": \"定着\",\n\"定著《\": \"定著《\",\n\"定著作\": \"定著作\",\n\"定著名\": \"定著名\",\n\"定著書\": \"定著書\",\n\"定著称\": \"定著稱\",\n\"定著稱\": \"定著稱\",\n\"定著者\": \"定著者\",\n\"定著述\": \"定著述\",\n\"定著錄\": \"定著錄\",\n\"宝莱坞\": \"波里活\",\n\"宝里宝气\": \"寶裏寶氣\",\n\"宣布\": \"宣佈\",\n\"宪法里\": \"憲法裏\",\n\"宫里\": \"宮裏\",\n\"家里\": \"家裏\",\n\"密布\": \"密佈\",\n\"密西根\": \"密歇根\",\n\"寡占\": \"寡佔\",\n\"寫著\": \"寫着\",\n\"寫著作\": \"寫著作\",\n\"寫著名\": \"寫著名\",\n\"寫著書\": \"寫著書\",\n\"寫著稱\": \"寫著稱\",\n\"寫著者\": \"寫著者\",\n\"寫著述\": \"寫著述\",\n\"寫著錄\": \"寫著錄\",\n\"寮人民民主共和國\": \"老撾人民民主共和國\",\n\"寮國\": \"老撾\",\n\"寮語\": \"老撾語\",\n\"寶獅\": \"標致\",\n\"寶萊塢\": \"波里活\",\n\"封面里\": \"封面裏\",\n\"将占\": \"將佔\",\n\"将占卜\": \"將占卜\",\n\"將占\": \"將佔\",\n\"將占卜\": \"將占卜\",\n\"尋著\": \"尋着\",\n\"尋著作\": \"尋著作\",\n\"尋著名\": \"尋著名\",\n\"尋著書\": \"尋著書\",\n\"尋著稱\": \"尋著稱\",\n\"尋著者\": \"尋著者\",\n\"尋著述\": \"尋著述\",\n\"尋著錄\": \"尋著錄\",\n\"對著\": \"對着\",\n\"對著作\": \"對著作\",\n\"對著名\": \"對著名\",\n\"對著書\": \"對著書\",\n\"對著稱\": \"對著稱\",\n\"對著者\": \"對著者\",\n\"對著述\": \"對著述\",\n\"對著錄\": \"對著錄\",\n\"小时里\": \"小時裏\",\n\"少占\": \"少佔\",\n\"尖峰時段\": \"繁忙時段\",\n\"尖峰時間\": \"繁忙時間\",\n\"尚比亞\": \"贊比亞\",\n\"就里\": \"就裏\",\n\"尼克松\": \"尼克遜\",\n\"局里\": \"局裏\",\n\"屋里\": \"屋裏\",\n\"展著\": \"展着\",\n\"展著《\": \"展著《\",\n\"展著作\": \"展著作\",\n\"展著名\": \"展著名\",\n\"展著書\": \"展著書\",\n\"展著稱\": \"展著稱\",\n\"展著者\": \"展著者\",\n\"展著述\": \"展著述\",\n\"展著錄\": \"展著錄\",\n\"屯里\": \"屯裏\",\n\"山里有\": \"山裏有\",\n\"山里的\": \"山裏的\",\n\"岩\": \"巖\",\n\"岸裡\": \"岸裡\",\n\"工作台\": \"工作枱\",\n\"工具機\": \"機床\",\n\"已占\": \"已佔\",\n\"巴伦西亚\": \"華倫西亞\",\n\"巴倫西亞\": \"華倫西亞\",\n\"巴厘\": \"峇里\",\n\"巴塞罗那\": \"巴塞隆拿\",\n\"巴塞隆納\": \"巴塞隆拿\",\n\"巴士拉\": \"巴斯拉\",\n\"巴尔米拉环礁\": \"帕邁拉環礁\",\n\"巴貝多\": \"巴巴多斯\",\n\"巷里\": \"巷裏\",\n\"市占\": \"市佔\",\n\"市里的\": \"市裏的\",\n\"布下了\": \"佈下了\",\n\"布下的\": \"佈下的\",\n\"布于\": \"佈於\",\n\"布什\": \"布殊\",\n\"布光\": \"佈光\",\n\"布吉納法索\": \"布基納法索\",\n\"布告\": \"佈告\",\n\"布局\": \"佈局\",\n\"布展\": \"佈展\",\n\"布拉提斯拉瓦\": \"布拉迪斯拉發\",\n\"布控\": \"佈控\",\n\"布於\": \"佈於\",\n\"布景\": \"佈景\",\n\"布满\": \"佈滿\",\n\"布滿\": \"佈滿\",\n\"布点\": \"佈點\",\n\"布置\": \"佈置\",\n\"布莱尔\": \"貝理雅\",\n\"布蘭登堡\": \"勃蘭登堡\",\n\"布設\": \"佈設\",\n\"布警\": \"佈警\",\n\"布设\": \"佈設\",\n\"布道\": \"佈道\",\n\"布里斯托尔\": \"布里斯托\",\n\"布防\": \"佈防\",\n\"布阵\": \"佈陣\",\n\"布陣\": \"佈陣\",\n\"布雷、\": \"佈雷、\",\n\"布雷。\": \"佈雷。\",\n\"布雷封鎖\": \"佈雷封鎖\",\n\"布雷封锁\": \"佈雷封鎖\",\n\"布雷的\": \"佈雷的\",\n\"布雷舰\": \"佈雷艦\",\n\"布雷艇\": \"佈雷艇\",\n\"布雷艦\": \"佈雷艦\",\n\"布雷速度\": \"佈雷速度\",\n\"布雷，\": \"佈雷，\",\n\"布雷；\": \"佈雷；\",\n\"布點\": \"佈點\",\n\"希冀著\": \"希冀着\",\n\"希拉蕊\": \"希拉莉\",\n\"希特勒\": \"希特拉\",\n\"帕劳\": \"帛琉\",\n\"帕塔亚\": \"芭達亞\",\n\"帕拉林匹克\": \"殘疾人奧林匹克\",\n\"帕運會\": \"殘奧會\",\n\"帛琉\": \"帕勞\",\n\"席哈克\": \"希拉克\",\n\"帶著\": \"帶着\",\n\"帶著作\": \"帶著作\",\n\"帶著名\": \"帶著名\",\n\"帶著書\": \"帶著書\",\n\"帶著稱\": \"帶著稱\",\n\"帶著者\": \"帶著者\",\n\"帶著述\": \"帶著述\",\n\"帶著錄\": \"帶著錄\",\n\"幅图里\": \"幅圖裏\",\n\"幫浦\": \"泵\",\n\"幫著\": \"幫着\",\n\"幫著作\": \"幫著作\",\n\"幫著名\": \"幫著名\",\n\"幫著書\": \"幫著書\",\n\"幫著稱\": \"幫著稱\",\n\"幫著者\": \"幫著者\",\n\"幫著述\": \"幫著述\",\n\"幫著錄\": \"幫著錄\",\n\"干着\": \"幹着\",\n\"干着急\": \"干着急\",\n\"年代里\": \"年代裏\",\n\"年里\": \"年裏\",\n\"年里约\": \"年里約\",\n\"并发布\": \"並發佈\",\n\"幹著\": \"幹着\",\n\"幹著名\": \"幹著名\",\n\"幹著稱\": \"幹著稱\",\n\"幺\": \"么\",\n\"幾內亞比索\": \"幾內亞比紹\",\n\"广播里\": \"廣播裏\",\n\"庄里\": \"莊裏\",\n\"应用程序\": \"應用程式\",\n\"店里\": \"店裏\",\n\"庙里\": \"廟裏\",\n\"庫德人\": \"庫爾德人\",\n\"庫德族\": \"庫爾德族\",\n\"开诚布公\": \"開誠佈公\",\n\"強占\": \"強佔\",\n\"弹子台\": \"彈子枱\",\n\"弹珠台\": \"彈珠枱\",\n\"强占\": \"強佔\",\n\"形上學\": \"形而上學\",\n\"彩带\": \"綵帶\",\n\"彩帶\": \"綵帶\",\n\"彩排\": \"綵排\",\n\"彩楼\": \"綵樓\",\n\"彩樓\": \"綵樓\",\n\"彩牌楼\": \"綵牌樓\",\n\"彩牌樓\": \"綵牌樓\",\n\"彩球\": \"綵球\",\n\"彩綢\": \"綵綢\",\n\"彩绸\": \"綵綢\",\n\"彩船\": \"綵船\",\n\"往里\": \"往裏\",\n\"征占\": \"徵佔\",\n\"径入\": \"逕入\",\n\"径到\": \"逕到\",\n\"径取\": \"逕取\",\n\"径启\": \"逕啟\",\n\"径寄\": \"逕寄\",\n\"径庭\": \"逕庭\",\n\"径往\": \"逕往\",\n\"径自\": \"逕自\",\n\"径行\": \"逕行\",\n\"径迎\": \"逕迎\",\n\"待著\": \"待着\",\n\"待著作\": \"待著作\",\n\"待著名\": \"待著名\",\n\"待著書\": \"待著書\",\n\"待著稱\": \"待著稱\",\n\"待著者\": \"待著者\",\n\"待著述\": \"待著述\",\n\"待著錄\": \"待著錄\",\n\"得克萨斯\": \"德克薩斯\",\n\"得著\": \"得着\",\n\"得著作\": \"得著作\",\n\"得著名\": \"得著名\",\n\"得著書\": \"得著書\",\n\"得著稱\": \"得著稱\",\n\"得著者\": \"得著者\",\n\"得著述\": \"得著述\",\n\"得著錄\": \"得著錄\",\n\"循著\": \"循着\",\n\"循著作\": \"循著作\",\n\"循著名\": \"循著名\",\n\"循著書\": \"循著書\",\n\"循著稱\": \"循著稱\",\n\"循著者\": \"循著者\",\n\"循著述\": \"循著述\",\n\"循著錄\": \"循著錄\",\n\"徵占\": \"徵佔\",\n\"德勒斯登\": \"德累斯頓\",\n\"德占\": \"德佔\",\n\"德蕾莎·梅伊\": \"文翠珊\",\n\"心著\": \"心着\",\n\"心著《\": \"心著《\",\n\"心著作\": \"心著作\",\n\"心著名\": \"心著名\",\n\"心著書\": \"心著書\",\n\"心著称\": \"心著稱\",\n\"心著稱\": \"心著稱\",\n\"心著者\": \"心著者\",\n\"心著述\": \"心著述\",\n\"心著錄\": \"心著錄\",\n\"心里\": \"心裏\",\n\"心里面\": \"心裏面\",\n\"忍著\": \"忍着\",\n\"忍著作\": \"忍著作\",\n\"忍著名\": \"忍著名\",\n\"忍著書\": \"忍著書\",\n\"忍著稱\": \"忍著稱\",\n\"忍著者\": \"忍著者\",\n\"忍著述\": \"忍著述\",\n\"忍著錄\": \"忍著錄\",\n\"忙著\": \"忙着\",\n\"忙著作\": \"忙著作\",\n\"忙著名\": \"忙著名\",\n\"忙著書\": \"忙著書\",\n\"忙著稱\": \"忙著稱\",\n\"忙著者\": \"忙著者\",\n\"忙著述\": \"忙著述\",\n\"忙著錄\": \"忙著錄\",\n\"忙里\": \"忙裏\",\n\"忠貞著\": \"忠貞着\",\n\"怀里\": \"懷裏\",\n\"急著\": \"急着\",\n\"急著作\": \"急著作\",\n\"急著名\": \"急著名\",\n\"急著書\": \"急著書\",\n\"急著稱\": \"急著稱\",\n\"急著者\": \"急著者\",\n\"急著述\": \"急著述\",\n\"急著錄\": \"急著錄\",\n\"怪里怪气\": \"怪裏怪氣\",\n\"总数里\": \"總數裏\",\n\"恺撒\": \"凱撒\",\n\"悅\": \"悦\",\n\"悠著\": \"悠着\",\n\"悠著作\": \"悠著作\",\n\"悠著名\": \"悠著名\",\n\"悠著書\": \"悠著書\",\n\"悠著稱\": \"悠著稱\",\n\"悠著者\": \"悠著者\",\n\"悠著述\": \"悠著述\",\n\"悠著錄\": \"悠著錄\",\n\"悶著\": \"悶着\",\n\"想著\": \"想着\",\n\"想著作\": \"想著作\",\n\"想著名\": \"想著名\",\n\"想著書\": \"想著書\",\n\"想著称\": \"想著稱\",\n\"想著稱\": \"想著稱\",\n\"想著者\": \"想著者\",\n\"想著述\": \"想著述\",\n\"想著錄\": \"想著錄\",\n\"想象\": \"想像\",\n\"意占\": \"意佔\",\n\"愛荷華\": \"艾奧瓦\",\n\"愛著\": \"愛着\",\n\"愛著作\": \"愛著作\",\n\"愛著名\": \"愛著名\",\n\"愛著書\": \"愛著書\",\n\"愛著稱\": \"愛著稱\",\n\"愛著者\": \"愛著者\",\n\"愛著述\": \"愛著述\",\n\"愛著錄\": \"愛著錄\",\n\"慌里慌张\": \"慌裏慌張\",\n\"慍\": \"愠\",\n\"慣著\": \"慣着\",\n\"慣著作\": \"慣著作\",\n\"慣著名\": \"慣著名\",\n\"慣著書\": \"慣著書\",\n\"慣著稱\": \"慣著稱\",\n\"慣著者\": \"慣著者\",\n\"慣著述\": \"慣著述\",\n\"慣著錄\": \"慣著錄\",\n\"憑著\": \"憑着\",\n\"憑著作\": \"憑著作\",\n\"憑著名\": \"憑著名\",\n\"憑著者\": \"憑著者\",\n\"應著\": \"應着\",\n\"應著作\": \"應著作\",\n\"應著名\": \"應著名\",\n\"應著書\": \"應著書\",\n\"應著稱\": \"應著稱\",\n\"應著者\": \"應著者\",\n\"應著述\": \"應著述\",\n\"應著錄\": \"應著錄\",\n\"懷著\": \"懷着\",\n\"懷著《\": \"懷著《\",\n\"懷著作\": \"懷著作\",\n\"懷著名\": \"懷著名\",\n\"懷著書\": \"懷著書\",\n\"懷著稱\": \"懷著稱\",\n\"懷著者\": \"懷著者\",\n\"懷著述\": \"懷著述\",\n\"懷著錄\": \"懷著錄\",\n\"戀著\": \"戀着\",\n\"戀著作\": \"戀著作\",\n\"戀著名\": \"戀著名\",\n\"戀著書\": \"戀著書\",\n\"戀著稱\": \"戀著稱\",\n\"戀著者\": \"戀著者\",\n\"戀著述\": \"戀著述\",\n\"戀著錄\": \"戀著錄\",\n\"戈巴契夫\": \"戈爾巴喬夫\",\n\"戈登·布朗\": \"白高敦\",\n\"戏彩娱亲\": \"戲綵娛親\",\n\"戏里\": \"戲裏\",\n\"戛纳\": \"康城\",\n\"戰著\": \"戰着\",\n\"戰著作\": \"戰著作\",\n\"戰著名\": \"戰著名\",\n\"戰著書\": \"戰著書\",\n\"戰著稱\": \"戰著稱\",\n\"戰著者\": \"戰著者\",\n\"戰著述\": \"戰著述\",\n\"戰著錄\": \"戰著錄\",\n\"戲彩娛親\": \"戲綵娛親\",\n\"戴著\": \"戴着\",\n\"戴著作\": \"戴著作\",\n\"戴著名\": \"戴著名\",\n\"戴著書\": \"戴著書\",\n\"戴著稱\": \"戴著稱\",\n\"戴著者\": \"戴著者\",\n\"戴著述\": \"戴著述\",\n\"戴著錄\": \"戴著錄\",\n\"戶\": \"户\",\n\"房里\": \"房裏\",\n\"所占\": \"所佔\",\n\"手里\": \"手裏\",\n\"手里剑\": \"手裏劍\",\n\"打著\": \"打着\",\n\"打著作\": \"打著作\",\n\"打著名\": \"打著名\",\n\"打著書\": \"打著書\",\n\"打著稱\": \"打著稱\",\n\"打著者\": \"打著者\",\n\"打著述\": \"打著述\",\n\"打著錄\": \"打著錄\",\n\"扛著\": \"扛着\",\n\"扛著作\": \"扛著作\",\n\"扛著名\": \"扛著名\",\n\"扛著書\": \"扛著書\",\n\"扛著稱\": \"扛著稱\",\n\"扛著者\": \"扛著者\",\n\"扛著述\": \"扛著述\",\n\"扛著錄\": \"扛著錄\",\n\"找不著\": \"找不着\",\n\"找得著\": \"找得着\",\n\"承宣布政\": \"承宣布政\",\n\"抓著\": \"抓着\",\n\"抓著作\": \"抓著作\",\n\"抓著名\": \"抓著名\",\n\"抓著稱\": \"抓著稱\",\n\"抓著者\": \"抓著者\",\n\"抓著述\": \"抓著述\",\n\"抓著錄\": \"抓著錄\",\n\"折台\": \"摺枱\",\n\"抢占\": \"搶佔\",\n\"披著\": \"披着\",\n\"披著作\": \"披著作\",\n\"披著名\": \"披著名\",\n\"披著書\": \"披著書\",\n\"披著稱\": \"披著稱\",\n\"披著者\": \"披著者\",\n\"披著述\": \"披著述\",\n\"披著錄\": \"披著錄\",\n\"抬著\": \"抬着\",\n\"抬著作\": \"抬著作\",\n\"抬著名\": \"抬著名\",\n\"抬著稱\": \"抬著稱\",\n\"抬著者\": \"抬著者\",\n\"抬著述\": \"抬著述\",\n\"抬著錄\": \"抬著錄\",\n\"抱著\": \"抱着\",\n\"抱著作\": \"抱著作\",\n\"抱著名\": \"抱著名\",\n\"抱著稱\": \"抱著稱\",\n\"抱著者\": \"抱著者\",\n\"抱著述\": \"抱著述\",\n\"抱著錄\": \"抱著錄\",\n\"拉著\": \"拉着\",\n\"拉著作\": \"拉著作\",\n\"拉著名\": \"拉著名\",\n\"拉著書\": \"拉著書\",\n\"拉著稱\": \"拉著稱\",\n\"拉著者\": \"拉著者\",\n\"拉著述\": \"拉著述\",\n\"拉著錄\": \"拉著錄\",\n\"拎著\": \"拎着\",\n\"拎著作\": \"拎著作\",\n\"拎著名\": \"拎著名\",\n\"拎著稱\": \"拎著稱\",\n\"拎著者\": \"拎著者\",\n\"拎著述\": \"拎著述\",\n\"拎著錄\": \"拎著錄\",\n\"拖著\": \"拖着\",\n\"拖著作\": \"拖著作\",\n\"拖著名\": \"拖著名\",\n\"拖著稱\": \"拖著稱\",\n\"拖著者\": \"拖著者\",\n\"拖著述\": \"拖著述\",\n\"拖著錄\": \"拖著錄\",\n\"择日占星\": \"擇日占星\",\n\"拼著\": \"拼着\",\n\"拼著作\": \"拼著作\",\n\"拼著名\": \"拼著名\",\n\"拼著稱\": \"拼著稱\",\n\"拼著者\": \"拼著者\",\n\"拼著述\": \"拼著述\",\n\"拼著錄\": \"拼著錄\",\n\"拿著\": \"拿着\",\n\"拿著作\": \"拿著作\",\n\"拿著名\": \"拿著名\",\n\"拿著稱\": \"拿著稱\",\n\"拿著者\": \"拿著者\",\n\"拿著述\": \"拿著述\",\n\"拿著錄\": \"拿著錄\",\n\"持著\": \"持着\",\n\"持著作\": \"持著作\",\n\"持著名\": \"持著名\",\n\"持著稱\": \"持著稱\",\n\"持著者\": \"持著者\",\n\"持著述\": \"持著述\",\n\"持著錄\": \"持著錄\",\n\"挑著\": \"挑着\",\n\"挑著作\": \"挑著作\",\n\"挑著名\": \"挑著名\",\n\"挑著稱\": \"挑著稱\",\n\"挑著者\": \"挑著者\",\n\"挑著述\": \"挑著述\",\n\"挑著錄\": \"挑著錄\",\n\"挨著\": \"挨着\",\n\"挨著作\": \"挨著作\",\n\"挨著名\": \"挨著名\",\n\"挨著稱\": \"挨著稱\",\n\"挨著者\": \"挨著者\",\n\"挨著述\": \"挨著述\",\n\"挨著錄\": \"挨著錄\",\n\"挩\": \"捝\",\n\"捆著\": \"捆着\",\n\"捆著作\": \"捆著作\",\n\"捆著名\": \"捆著名\",\n\"捆著稱\": \"捆著稱\",\n\"捆著者\": \"捆著者\",\n\"捆著述\": \"捆著述\",\n\"捆著錄\": \"捆著錄\",\n\"捷豹\": \"積架\",\n\"掖著\": \"掖着\",\n\"掖著作\": \"掖著作\",\n\"掖著名\": \"掖著名\",\n\"掖著稱\": \"掖著稱\",\n\"掖著者\": \"掖著者\",\n\"掖著述\": \"掖著述\",\n\"掖著錄\": \"掖著錄\",\n\"掙著\": \"掙着\",\n\"掙著作\": \"掙著作\",\n\"掙著名\": \"掙著名\",\n\"掙著書\": \"掙著書\",\n\"掙著稱\": \"掙著稱\",\n\"掙著者\": \"掙著者\",\n\"掙著述\": \"掙著述\",\n\"掙著錄\": \"掙著錄\",\n\"掛著\": \"掛着\",\n\"接著\": \"接着\",\n\"接著作\": \"接著作\",\n\"接著名\": \"接著名\",\n\"接著稱\": \"接著稱\",\n\"接著者\": \"接著者\",\n\"接著述\": \"接著述\",\n\"接著錄\": \"接著錄\",\n\"揉著\": \"揉着\",\n\"揉著作\": \"揉著作\",\n\"揉著名\": \"揉著名\",\n\"揉著書\": \"揉著書\",\n\"揉著稱\": \"揉著稱\",\n\"揉著者\": \"揉著者\",\n\"揉著述\": \"揉著述\",\n\"揉著錄\": \"揉著錄\",\n\"提比里西\": \"第比利斯\",\n\"提著\": \"提着\",\n\"提著作\": \"提著作\",\n\"提著名\": \"提著名\",\n\"提著稱\": \"提著稱\",\n\"提著者\": \"提著者\",\n\"提著述\": \"提著述\",\n\"提著錄\": \"提著錄\",\n\"揮著\": \"揮着\",\n\"揮著作\": \"揮著作\",\n\"揮著名\": \"揮著名\",\n\"揮著稱\": \"揮著稱\",\n\"揮著者\": \"揮著者\",\n\"揮著述\": \"揮著述\",\n\"揮著錄\": \"揮著錄\",\n\"搜索引擎\": \"搜尋引擎\",\n\"搵\": \"揾\",\n\"搶占\": \"搶佔\",\n\"摆布\": \"擺佈\",\n\"摟著\": \"摟着\",\n\"摟著作\": \"摟著作\",\n\"摟著名\": \"摟著名\",\n\"摟著稱\": \"摟著稱\",\n\"摟著者\": \"摟著者\",\n\"摟著述\": \"摟著述\",\n\"摟著錄\": \"摟著錄\",\n\"撒切尔\": \"戴卓爾\",\n\"撒拉威阿拉伯\": \"阿拉伯撒哈拉\",\n\"撒马尔罕\": \"撒馬爾罕\",\n\"撞球\": \"桌球\",\n\"撼著\": \"撼着\",\n\"撼著作\": \"撼著作\",\n\"撼著名\": \"撼著名\",\n\"撼著書\": \"撼著書\",\n\"撼著稱\": \"撼著稱\",\n\"撼著者\": \"撼著者\",\n\"撼著述\": \"撼著述\",\n\"撼著錄\": \"撼著錄\",\n\"擇日占星\": \"擇日占星\",\n\"擊劍\": \"劍擊\",\n\"擋著\": \"擋着\",\n\"擋著作\": \"擋著作\",\n\"擋著名\": \"擋著名\",\n\"擋著稱\": \"擋著稱\",\n\"擋著者\": \"擋著者\",\n\"擋著述\": \"擋著述\",\n\"擋著錄\": \"擋著錄\",\n\"操作系统\": \"作業系統\",\n\"擔著\": \"擔着\",\n\"據著\": \"據着\",\n\"據著作\": \"據著作\",\n\"據著名\": \"據著名\",\n\"據著書\": \"據著書\",\n\"據著稱\": \"據著稱\",\n\"據著者\": \"據著者\",\n\"據著述\": \"據著述\",\n\"據著錄\": \"據著錄\",\n\"擡\": \"抬\",\n\"擡著\": \"擡着\",\n\"擺布\": \"擺佈\",\n\"擺著\": \"擺着\",\n\"擺著作\": \"擺著作\",\n\"擺著名\": \"擺著名\",\n\"擺著稱\": \"擺著稱\",\n\"擺著者\": \"擺著者\",\n\"擺著述\": \"擺著述\",\n\"擺著錄\": \"擺著錄\",\n\"收錄著\": \"收錄着\",\n\"攻占\": \"攻佔\",\n\"放著\": \"放着\",\n\"放著作\": \"放著作\",\n\"放著名\": \"放著名\",\n\"放著称\": \"放著稱\",\n\"放著稱\": \"放著稱\",\n\"敓\": \"敚\",\n\"敘\": \"敍\",\n\"敞著\": \"敞着\",\n\"敞著作\": \"敞著作\",\n\"敞著名\": \"敞著名\",\n\"敞著稱\": \"敞著稱\",\n\"敞著者\": \"敞著者\",\n\"敞著述\": \"敞著述\",\n\"敞著錄\": \"敞著錄\",\n\"散佈著\": \"散佈着\",\n\"散布\": \"散佈\",\n\"散布著\": \"散佈着\",\n\"数字信号\": \"數碼訊號\",\n\"数字化\": \"數碼化\",\n\"数字技术\": \"數碼技術\",\n\"数字照相机\": \"数碼照相機\",\n\"数字电视\": \"數碼電視\",\n\"数字音乐\": \"數碼音樂\",\n\"數位化\": \"數碼化\",\n\"數位技術\": \"數碼技術\",\n\"數位照相機\": \"数碼照相機\",\n\"數位相機\": \"數碼相機\",\n\"數位電視\": \"數碼電視\",\n\"數位音樂\": \"數碼音樂\",\n\"數據機\": \"調制解調器\",\n\"數碼訊號\": \"數碼訊號\",\n\"數著\": \"數着\",\n\"數著作\": \"數著作\",\n\"數著名\": \"數著名\",\n\"數著稱\": \"數著稱\",\n\"數著者\": \"數著者\",\n\"數著述\": \"數著述\",\n\"數著錄\": \"數著錄\",\n\"文莱\": \"汶萊\",\n\"斗着\": \"鬥着\",\n\"斥著\": \"斥着\",\n\"斥著作\": \"斥著作\",\n\"斥著名\": \"斥著名\",\n\"斥著書\": \"斥著書\",\n\"斥著稱\": \"斥著稱\",\n\"斥著者\": \"斥著者\",\n\"斥著述\": \"斥著述\",\n\"斥著錄\": \"斥著錄\",\n\"斯坦福大学\": \"史丹福大學\",\n\"斯堪地那維亞\": \"斯堪的納維亞\",\n\"斯洛維尼亞\": \"斯洛文尼亞\",\n\"斯皮尔伯格\": \"史匹堡\",\n\"斯蒂芬·斯皮尔伯格\": \"史提芬·史匹堡\",\n\"方法里\": \"方法裏\",\n\"族里\": \"族裏\",\n\"日占\": \"日佔\",\n\"日里\": \"日裏\",\n\"旧金山\": \"三藩市\",\n\"昂山素季\": \"昂山素姬\",\n\"昂著\": \"昂着\",\n\"昂著作\": \"昂著作\",\n\"昂著名\": \"昂著名\",\n\"昂著書\": \"昂著書\",\n\"昂著稱\": \"昂著稱\",\n\"昂著者\": \"昂著者\",\n\"昂著述\": \"昂著述\",\n\"昂著錄\": \"昂著錄\",\n\"星罗棋布\": \"星羅棋佈\",\n\"星羅棋布\": \"星羅棋佈\",\n\"映著\": \"映着\",\n\"映著作\": \"映著作\",\n\"映著名\": \"映著名\",\n\"映著書\": \"映著書\",\n\"映著稱\": \"映著稱\",\n\"映著者\": \"映著者\",\n\"映著述\": \"映著述\",\n\"映著錄\": \"映著錄\",\n\"晃著\": \"晃着\",\n\"晃著作\": \"晃著作\",\n\"晃著名\": \"晃著名\",\n\"晃著稱\": \"晃著稱\",\n\"晃著者\": \"晃著者\",\n\"晃著述\": \"晃著述\",\n\"晃著錄\": \"晃著錄\",\n\"普利托利亞\": \"比勒陀利亞\",\n\"普利策奖\": \"普立茲獎\",\n\"晶体管\": \"電晶體\",\n\"晶元\": \"晶片\",\n\"晶體管\": \"電晶體\",\n\"智慧卡\": \"智能卡\",\n\"智慧型\": \"智能\",\n\"智慧手機\": \"智能手機\",\n\"智慧機器人\": \"智能機械人\",\n\"智慧財產權\": \"知識產權\",\n\"智財權\": \"知識產權\",\n\"暗地里\": \"暗地裏\",\n\"暗沟里\": \"暗溝裏\",\n\"暗著\": \"暗着\",\n\"暗著作\": \"暗著作\",\n\"暗著名\": \"暗著名\",\n\"暗著書\": \"暗著書\",\n\"暗著稱\": \"暗著稱\",\n\"暗著者\": \"暗著者\",\n\"暗著述\": \"暗著述\",\n\"暗著錄\": \"暗著錄\",\n\"暗里\": \"暗裏\",\n\"會占\": \"會佔\",\n\"會占卜\": \"會占卜\",\n\"月裡来\": \"月裏來\",\n\"有著\": \"有着\",\n\"有著作\": \"有著作\",\n\"有著名\": \"有著名\",\n\"有著書\": \"有著書\",\n\"有著稱\": \"有著稱\",\n\"有著者\": \"有著者\",\n\"有著述\": \"有著述\",\n\"有著錄\": \"有著錄\",\n\"服务器\": \"伺服器\",\n\"望著\": \"望着\",\n\"望著作\": \"望著作\",\n\"望著名\": \"望著名\",\n\"望著書\": \"望著書\",\n\"望著稱\": \"望著稱\",\n\"望著者\": \"望著者\",\n\"望著述\": \"望著述\",\n\"望著錄\": \"望著錄\",\n\"朝著\": \"朝着\",\n\"朝著作\": \"朝著作\",\n\"朝著名\": \"朝著名\",\n\"朝著稱\": \"朝著稱\",\n\"朝著者\": \"朝著者\",\n\"朝著述\": \"朝著述\",\n\"朝著錄\": \"朝著錄\",\n\"朝鲜战争\": \"韓戰\",\n\"本著\": \"本着\",\n\"本著作\": \"本著作\",\n\"本著名\": \"本著名\",\n\"本著書\": \"本著書\",\n\"本著稱\": \"本著稱\",\n\"本著者\": \"本著者\",\n\"本著述\": \"本著述\",\n\"本著錄\": \"本著錄\",\n\"札格瑞布\": \"薩格勒布\",\n\"朴茨茅斯\": \"樸茨茅夫\",\n\"机器人\": \"機械人\",\n\"村里有\": \"村裏有\",\n\"村里的\": \"村裏的\",\n\"杜塞道夫\": \"杜塞爾多夫\",\n\"条文里\": \"條文裏\",\n\"東協\": \"東盟\",\n\"東協助\": \"東協助\",\n\"東協會\": \"東協會\",\n\"東協議\": \"東協議\",\n\"東南亞國家協會\": \"東南亞國家聯盟\",\n\"板著臉\": \"板着臉\",\n\"枕著\": \"枕着\",\n\"枕著作\": \"枕著作\",\n\"枕著名\": \"枕著名\",\n\"枕著稱\": \"枕著稱\",\n\"枕著者\": \"枕著者\",\n\"枕著述\": \"枕著述\",\n\"枕著錄\": \"枕著錄\",\n\"柏林墙\": \"柏林圍牆\",\n\"柜台\": \"櫃枱\",\n\"柜里\": \"櫃裏\",\n\"柯林頓\": \"克林頓\",\n\"柴契爾\": \"戴卓爾\",\n\"柺\": \"枴\",\n\"树林里\": \"樹林裏\",\n\"格瑞那丁\": \"格林納丁斯\",\n\"格瑞那達\": \"格林納達\",\n\"格莱美奖\": \"格林美獎\",\n\"框里\": \"框裏\",\n\"桑巴舞\": \"森巴舞\",\n\"梅鐸\": \"梅鐸\",\n\"梦有五不占\": \"夢有五不占\",\n\"梦里\": \"夢裏\",\n\"梲\": \"棁\",\n\"梳著\": \"梳着\",\n\"梳著作\": \"梳著作\",\n\"梳著名\": \"梳著名\",\n\"梳著稱\": \"梳著稱\",\n\"梳著者\": \"梳著者\",\n\"梳著述\": \"梳著述\",\n\"梳著錄\": \"梳著錄\",\n\"棉里\": \"棉裏\",\n\"森林里\": \"森林裏\",\n\"棱\": \"稜\",\n\"棺材里\": \"棺材裏\",\n\"榲\": \"榅\",\n\"榴莲\": \"榴槤\",\n\"榴蓮\": \"榴槤\",\n\"樂著\": \"樂着\",\n\"樂著《\": \"樂著《\",\n\"樂著作\": \"樂著作\",\n\"樂著名\": \"樂著名\",\n\"樂著書\": \"樂著書\",\n\"樂著稱\": \"樂著稱\",\n\"樂著者\": \"樂著者\",\n\"樂著述\": \"樂著述\",\n\"樂著錄\": \"樂著錄\",\n\"標志著\": \"標志着\",\n\"標誌著\": \"標誌着\",\n\"模里西斯\": \"毛里裘斯\",\n\"樸茨茅斯\": \"樸茨茅夫\",\n\"機器人\": \"機械人\",\n\"檯\": \"枱\",\n\"歐巴馬\": \"奧巴馬\",\n\"正文里\": \"正文裏\",\n\"正體中文\": \"繁體中文\",\n\"死里求生\": \"死裏求生\",\n\"死里逃生\": \"死裏逃生\",\n\"殺著\": \"殺着\",\n\"殺著作\": \"殺著作\",\n\"殺著名\": \"殺著名\",\n\"殺著書\": \"殺著書\",\n\"殺著稱\": \"殺著稱\",\n\"殺著者\": \"殺著者\",\n\"殺著述\": \"殺著述\",\n\"殺著錄\": \"殺著錄\",\n\"殿里\": \"殿裏\",\n\"毛里求斯\": \"毛里裘斯\",\n\"氳\": \"氲\",\n\"水来汤里去\": \"水來湯裏去\",\n\"水里\": \"水裏\",\n\"求著\": \"求着\",\n\"求著作\": \"求著作\",\n\"求著名\": \"求著名\",\n\"求著書\": \"求著書\",\n\"求著稱\": \"求著稱\",\n\"求著者\": \"求著者\",\n\"求著述\": \"求著述\",\n\"求著錄\": \"求著錄\",\n\"汙\": \"污\",\n\"池里\": \"池裏\",\n\"沃尓沃\": \"富豪\",\n\"沈著\": \"沈着\",\n\"沉著\": \"沉着\",\n\"沉著作\": \"沉著作\",\n\"沉著名\": \"沉著名\",\n\"沉著書\": \"沉著書\",\n\"沉著稱\": \"沉著稱\",\n\"沉著者\": \"沉著者\",\n\"沉著述\": \"沉著述\",\n\"沉著錄\": \"沉著錄\",\n\"沖著\": \"沖着\",\n\"沖著。\": \"沖著。\",\n\"沖著《\": \"沖著《\",\n\"沖著，\": \"沖著，\",\n\"沙地阿拉伯\": \"沙特阿拉伯\",\n\"沙烏地阿拉伯\": \"沙特阿拉伯\",\n\"沙里淘金\": \"沙裏淘金\",\n\"河里\": \"河裏\",\n\"沿著\": \"沿着\",\n\"沿著作\": \"沿著作\",\n\"沿著名\": \"沿著名\",\n\"沿著書\": \"沿著書\",\n\"沿著稱\": \"沿著稱\",\n\"沿著者\": \"沿著者\",\n\"沿著述\": \"沿著述\",\n\"沿著錄\": \"沿著錄\",\n\"法占\": \"法佔\",\n\"法里，\": \"法裏，\",\n\"波士尼亞\": \"波斯尼亞\",\n\"波士尼亞與赫塞哥維納\": \"波斯尼亞和黑塞哥維那\",\n\"波札那\": \"博茨瓦納\",\n\"泰坦尼克号\": \"鐵達尼號\",\n\"洞里\": \"洞裏\",\n\"活著\": \"活着\",\n\"活著作\": \"活著作\",\n\"活著名\": \"活著名\",\n\"活著書\": \"活著書\",\n\"活著稱\": \"活著稱\",\n\"活著者\": \"活著者\",\n\"活著述\": \"活著述\",\n\"活著錄\": \"活著錄\",\n\"流著\": \"流着\",\n\"流著作\": \"流著作\",\n\"流著名\": \"流著名\",\n\"流著書\": \"流著書\",\n\"流著稱\": \"流著稱\",\n\"流著者\": \"流著者\",\n\"流著述\": \"流著述\",\n\"流著錄\": \"流著錄\",\n\"流露著\": \"流露着\",\n\"浮著\": \"浮着\",\n\"浮著作\": \"浮著作\",\n\"浮著名\": \"浮著名\",\n\"浮著書\": \"浮著書\",\n\"浮著稱\": \"浮著稱\",\n\"浮著者\": \"浮著者\",\n\"浮著述\": \"浮著述\",\n\"浮著錄\": \"浮著錄\",\n\"海上布雷\": \"海上佈雷\",\n\"海洛因\": \"海洛英\",\n\"海湾布雷\": \"海灣佈雷\",\n\"海灣布雷\": \"海灣佈雷\",\n\"涗\": \"涚\",\n\"涼著\": \"涼着\",\n\"涼著作\": \"涼著作\",\n\"涼著名\": \"涼著名\",\n\"涼著書\": \"涼著書\",\n\"涼著稱\": \"涼著稱\",\n\"涼著者\": \"涼著者\",\n\"涼著述\": \"涼著述\",\n\"涼著錄\": \"涼著錄\",\n\"深山里\": \"深山裏\",\n\"渊里\": \"淵裏\",\n\"渴著\": \"渴着\",\n\"渴著作\": \"渴著作\",\n\"渴著名\": \"渴著名\",\n\"渴著書\": \"渴著書\",\n\"渴著稱\": \"渴著稱\",\n\"渴著者\": \"渴著者\",\n\"渴著述\": \"渴著述\",\n\"渴著錄\": \"渴著錄\",\n\"游戏里\": \"遊戲裏\",\n\"湊合著\": \"湊合着\",\n\"湖里\": \"湖裏\",\n\"源代码\": \"原始碼\",\n\"溢著\": \"溢着\",\n\"溢著作\": \"溢著作\",\n\"溢著名\": \"溢著名\",\n\"溢著書\": \"溢著書\",\n\"溢著稱\": \"溢著稱\",\n\"溢著者\": \"溢著者\",\n\"溢著述\": \"溢著述\",\n\"溢著錄\": \"溢著錄\",\n\"溫\": \"温\",\n\"溫荷克\": \"溫得和克\",\n\"溼\": \"濕\",\n\"演化論\": \"進化論\",\n\"演著\": \"演着\",\n\"演著作\": \"演著作\",\n\"演著名\": \"演著名\",\n\"演著書\": \"演著書\",\n\"演著稱\": \"演著稱\",\n\"演著者\": \"演著者\",\n\"演著述\": \"演著述\",\n\"演著錄\": \"演著錄\",\n\"漠里\": \"漠裏\",\n\"漢諾瓦\": \"漢諾威\",\n\"漫著\": \"漫着\",\n\"漫著作\": \"漫著作\",\n\"漫著名\": \"漫著名\",\n\"漫著書\": \"漫著書\",\n\"漫著稱\": \"漫著稱\",\n\"漫著者\": \"漫著者\",\n\"漫著述\": \"漫著述\",\n\"漫著錄\": \"漫著錄\",\n\"潙\": \"溈\",\n\"潜意识里\": \"潛意識裏\",\n\"潤著\": \"潤着\",\n\"潤著作\": \"潤著作\",\n\"潤著名\": \"潤著名\",\n\"潤著書\": \"潤著書\",\n\"潤著稱\": \"潤著稱\",\n\"潤著者\": \"潤著者\",\n\"潤著述\": \"潤著述\",\n\"潤著錄\": \"潤著錄\",\n\"潨\": \"潀\",\n\"潭里\": \"潭裏\",\n\"澈底\": \"徹底\",\n\"火山里\": \"火山裏\",\n\"火箭布雷\": \"火箭佈雷\",\n\"点里\": \"點裏\",\n\"点里程\": \"點里程\",\n\"為著\": \"為着\",\n\"為著《\": \"為著《\",\n\"為著作\": \"為著作\",\n\"為著名\": \"為著名\",\n\"為著稱\": \"為著稱\",\n\"為著者\": \"為著者\",\n\"為著述\": \"為著述\",\n\"為著錄\": \"為著錄\",\n\"烏龍麵\": \"烏冬麵\",\n\"照占\": \"照佔\",\n\"照著\": \"照着\",\n\"照著作\": \"照著作\",\n\"照著名\": \"照著名\",\n\"照著書\": \"照著書\",\n\"照著稱\": \"照著稱\",\n\"照著者\": \"照著者\",\n\"照著述\": \"照著述\",\n\"照著錄\": \"照著錄\",\n\"熅\": \"煴\",\n\"燒著\": \"燒着\",\n\"燒著作\": \"燒著作\",\n\"燒著名\": \"燒著名\",\n\"燒著書\": \"燒著書\",\n\"燒著稱\": \"燒著稱\",\n\"燒著者\": \"燒著者\",\n\"燒著述\": \"燒著述\",\n\"燒著錄\": \"燒著錄\",\n\"爭著\": \"爭着\",\n\"爭著作\": \"爭著作\",\n\"爭著名\": \"爭著名\",\n\"爭著書\": \"爭著書\",\n\"爭著稱\": \"爭著稱\",\n\"爭著者\": \"爭著者\",\n\"爭著述\": \"爭著述\",\n\"爭著錄\": \"爭著錄\",\n\"爱荷华\": \"艾奧瓦\",\n\"爲\": \"為\",\n\"版图里\": \"版圖裏\",\n\"版本里\": \"版本裏\",\n\"版权信息\": \"版權資訊\",\n\"牛軋\": \"鳥結\",\n\"牛轧\": \"鳥結\",\n\"牢里\": \"牢裏\",\n\"特蕾莎·梅\": \"文翠珊\",\n\"牽著\": \"牽着\",\n\"牽著作\": \"牽著作\",\n\"牽著名\": \"牽著名\",\n\"牽著書\": \"牽著書\",\n\"牽著稱\": \"牽著稱\",\n\"牽著者\": \"牽著者\",\n\"牽著述\": \"牽著述\",\n\"牽著錄\": \"牽著錄\",\n\"犯不著\": \"犯不着\",\n\"犯不著作\": \"犯不著作\",\n\"犯不著名\": \"犯不著名\",\n\"犯不著書\": \"犯不著書\",\n\"犯不著稱\": \"犯不著稱\",\n\"犯不著者\": \"犯不著者\",\n\"犯不著述\": \"犯不著述\",\n\"犯不著錄\": \"犯不著錄\",\n\"犯得著\": \"犯得着\",\n\"狂占\": \"狂佔\",\n\"狂牛症\": \"瘋牛症\",\n\"狄安娜\": \"戴安娜\",\n\"狄托\": \"鐵托\",\n\"独占\": \"獨佔\",\n\"狱里\": \"獄裏\",\n\"猜著\": \"猜着\",\n\"猜著作\": \"猜著作\",\n\"猜著名\": \"猜著名\",\n\"猜著書\": \"猜著書\",\n\"猜著稱\": \"猜著稱\",\n\"猜著者\": \"猜著者\",\n\"猜著述\": \"猜著述\",\n\"猜著錄\": \"猜著錄\",\n\"猶豫著\": \"猶豫着\",\n\"獨占\": \"獨佔\",\n\"獨立國協\": \"獨聯體\",\n\"獨立國家國協\": \"獨立國家聯合體\",\n\"獲著\": \"獲着\",\n\"獲著作\": \"獲著作\",\n\"獲著名\": \"獲著名\",\n\"獲著書\": \"獲著書\",\n\"獲著稱\": \"獲著稱\",\n\"獲著者\": \"獲著者\",\n\"獲著述\": \"獲著述\",\n\"獲著錄\": \"獲著錄\",\n\"玻利維亞多民族國\": \"多民族玻利維亞國\",\n\"玻里尼西亞\": \"波利尼西亞\",\n\"班傑明\": \"本傑明\",\n\"班固著\": \"班固著\",\n\"班里\": \"班裏\",\n\"球台\": \"球枱\",\n\"瓜地馬拉\": \"危地馬拉\",\n\"瓦倫西亞\": \"華倫西亞\",\n\"瓦文萨\": \"華里沙\",\n\"甘比亞\": \"岡比亞\",\n\"甜著\": \"甜着\",\n\"甜著作\": \"甜著作\",\n\"甜著名\": \"甜著名\",\n\"甜著書\": \"甜著書\",\n\"甜著稱\": \"甜著稱\",\n\"甜著者\": \"甜著者\",\n\"甜著述\": \"甜著述\",\n\"甜著錄\": \"甜著錄\",\n\"用不著\": \"用不着\",\n\"用得著\": \"用得着\",\n\"用法里\": \"用法裏\",\n\"用著\": \"用着\",\n\"用著作\": \"用著作\",\n\"用著名\": \"用著名\",\n\"用著書\": \"用著書\",\n\"用著稱\": \"用著稱\",\n\"用著者\": \"用著者\",\n\"用著述\": \"用著述\",\n\"用著錄\": \"用著錄\",\n\"田里\": \"田裏\",\n\"由表及里\": \"由表及裏\",\n\"电影里\": \"電影裏\",\n\"电梯里\": \"電梯裏\",\n\"电脑程序\": \"電腦程式\",\n\"电视里\": \"電視裏\",\n\"画里\": \"畫裏\",\n\"界里\": \"界裏\",\n\"留著\": \"留着\",\n\"留著作\": \"留著作\",\n\"留著名\": \"留著名\",\n\"留著書\": \"留著書\",\n\"留著稱\": \"留著稱\",\n\"留著者\": \"留著者\",\n\"留著述\": \"留著述\",\n\"留著錄\": \"留著錄\",\n\"畫著\": \"畫着\",\n\"畫著作\": \"畫著作\",\n\"畫著名\": \"畫著名\",\n\"畫著稱\": \"畫著稱\",\n\"畫著者\": \"畫著者\",\n\"當著\": \"當着\",\n\"當著作\": \"當著作\",\n\"當著名\": \"當著名\",\n\"當著書\": \"當著書\",\n\"當著稱\": \"當著稱\",\n\"當著者\": \"當著者\",\n\"當著述\": \"當著述\",\n\"當著錄\": \"當著錄\",\n\"疑著\": \"疑着\",\n\"疑著作\": \"疑著作\",\n\"疑著名\": \"疑著名\",\n\"疑著書\": \"疑著書\",\n\"疑著稱\": \"疑著稱\",\n\"疑著者\": \"疑著者\",\n\"疑著述\": \"疑著述\",\n\"疑著錄\": \"疑著錄\",\n\"疯牛病\": \"瘋牛症\",\n\"痹\": \"痺\",\n\"癡\": \"痴\",\n\"發布\": \"發佈\",\n\"發著\": \"發着\",\n\"發著《\": \"發著《\",\n\"發著作\": \"發著作\",\n\"發著名\": \"發著名\",\n\"發著稱\": \"發著稱\",\n\"發著者\": \"發著者\",\n\"白里透红\": \"白裏透紅\",\n\"百慕大\": \"百慕達\",\n\"百科里\": \"百科裏\",\n\"皁\": \"皂\",\n\"的图里\": \"的圖裏\",\n\"的山里\": \"的山裏\",\n\"皮特凯恩\": \"皮特肯\",\n\"皮里春秋\": \"皮裏春秋\",\n\"皮里阳秋\": \"皮裏陽秋\",\n\"皺著\": \"皺着\",\n\"皺著作\": \"皺著作\",\n\"皺著名\": \"皺著名\",\n\"皺著書\": \"皺著書\",\n\"皺著稱\": \"皺著稱\",\n\"皺著者\": \"皺著者\",\n\"皺著述\": \"皺著述\",\n\"皺著錄\": \"皺著錄\",\n\"盒里\": \"盒裏\",\n\"盘里\": \"盤裏\",\n\"盛著\": \"盛着\",\n\"盛著作\": \"盛著作\",\n\"盛著名\": \"盛著名\",\n\"盛著書\": \"盛著書\",\n\"盛著稱\": \"盛著稱\",\n\"盛著者\": \"盛著者\",\n\"盛著述\": \"盛著述\",\n\"盛著錄\": \"盛著錄\",\n\"盧安達\": \"盧旺達\",\n\"盯著\": \"盯着\",\n\"盯著作\": \"盯著作\",\n\"盯著名\": \"盯著名\",\n\"盯著書\": \"盯著書\",\n\"盯著稱\": \"盯著稱\",\n\"盯著者\": \"盯著者\",\n\"盯著述\": \"盯著述\",\n\"盯著錄\": \"盯著錄\",\n\"看不著\": \"看不着\",\n\"看得著\": \"看得着\",\n\"看法里\": \"看法裏\",\n\"看著\": \"看着\",\n\"看著作\": \"看著作\",\n\"看著名\": \"看著名\",\n\"看著書\": \"看著書\",\n\"看著稱\": \"看著稱\",\n\"看著者\": \"看著者\",\n\"看著述\": \"看著述\",\n\"看著錄\": \"看著錄\",\n\"真人秀\": \"真人騷\",\n\"眼眶里\": \"眼眶裏\",\n\"眼睛里\": \"眼睛裏\",\n\"眼里\": \"眼裏\",\n\"睡不著\": \"睡不着\",\n\"睡得著\": \"睡得着\",\n\"睡著\": \"睡着\",\n\"睡著作\": \"睡著作\",\n\"睡著名\": \"睡著名\",\n\"睡著書\": \"睡著書\",\n\"睡著稱\": \"睡著稱\",\n\"睡著者\": \"睡著者\",\n\"睡著述\": \"睡著述\",\n\"睡著錄\": \"睡著錄\",\n\"瞞著\": \"瞞着\",\n\"瞞著作\": \"瞞著作\",\n\"瞞著名\": \"瞞著名\",\n\"瞞著書\": \"瞞著書\",\n\"瞞著稱\": \"瞞著稱\",\n\"瞞著者\": \"瞞著者\",\n\"瞞著述\": \"瞞著述\",\n\"瞞著錄\": \"瞞著錄\",\n\"瞪著\": \"瞪着\",\n\"瞪著作\": \"瞪著作\",\n\"瞪著名\": \"瞪著名\",\n\"瞪著書\": \"瞪著書\",\n\"瞪著稱\": \"瞪著稱\",\n\"瞪著者\": \"瞪著者\",\n\"瞪著述\": \"瞪著述\",\n\"瞪著錄\": \"瞪著錄\",\n\"矛盾著\": \"矛盾着\",\n\"短信\": \"短訊\",\n\"硅\": \"矽\",\n\"硅藻\": \"硅藻\",\n\"硬件\": \"硬件\",\n\"硬體\": \"硬件\",\n\"碗里\": \"碗裏\",\n\"社里\": \"社裏\",\n\"福著\": \"福着\",\n\"福著作\": \"福著作\",\n\"福著名\": \"福著名\",\n\"福著書\": \"福著書\",\n\"福著稱\": \"福著稱\",\n\"福著者\": \"福著者\",\n\"福著述\": \"福著述\",\n\"福著錄\": \"福著錄\",\n\"福馬林\": \"福爾馬林\",\n\"秀发布\": \"秀發佈\",\n\"私下里\": \"私下裏\",\n\"移动操作系统\": \"流動作業系統\",\n\"移动支付\": \"流動支付\",\n\"移动电话\": \"流動電話\",\n\"移动网络\": \"流動網絡\",\n\"移动设备\": \"流動裝置\",\n\"稅\": \"税\",\n\"程序员\": \"程式設計師\",\n\"稳占\": \"穩佔\",\n\"穩占\": \"穩佔\",\n\"穫著\": \"穫着\",\n\"空中客车\": \"空中巴士\",\n\"空中布雷\": \"空中佈雷\",\n\"空投布雷\": \"空投佈雷\",\n\"空气质量\": \"空氣質素\",\n\"空氣品質\": \"空氣質素\",\n\"空著\": \"空着\",\n\"空著作\": \"空著作\",\n\"空著名\": \"空著名\",\n\"空著書\": \"空著書\",\n\"空著稱\": \"空著稱\",\n\"空著者\": \"空著者\",\n\"空著述\": \"空著述\",\n\"空著錄\": \"空著錄\",\n\"空里\": \"空裏\",\n\"穿著\": \"穿着\",\n\"穿著作\": \"穿著作\",\n\"穿著名\": \"穿著名\",\n\"穿著書\": \"穿著書\",\n\"穿著稱\": \"穿著稱\",\n\"穿著者\": \"穿著者\",\n\"穿著述\": \"穿著述\",\n\"穿著錄\": \"穿著錄\",\n\"窝里\": \"窩裏\",\n\"窝里斗\": \"窩裏鬥\",\n\"竈\": \"灶\",\n\"立著\": \"立着\",\n\"立著《\": \"立著《\",\n\"立著作\": \"立著作\",\n\"立著名\": \"立著名\",\n\"立著有\": \"立著有\",\n\"立著称\": \"立著稱\",\n\"立著稱\": \"立著稱\",\n\"立著者\": \"立著者\",\n\"立著（\": \"立著（\",\n\"站著\": \"站着\",\n\"站著作\": \"站著作\",\n\"站著名\": \"站著名\",\n\"站著書\": \"站著書\",\n\"站著稱\": \"站著稱\",\n\"站著者\": \"站著者\",\n\"站著述\": \"站著述\",\n\"站著錄\": \"站著錄\",\n\"竪著\": \"竪着\",\n\"笑著\": \"笑着\",\n\"笑著作\": \"笑著作\",\n\"笑著名\": \"笑著名\",\n\"笑著書\": \"笑著書\",\n\"笑著稱\": \"笑著稱\",\n\"笑著者\": \"笑著者\",\n\"笑著述\": \"笑著述\",\n\"笑著錄\": \"笑著錄\",\n\"笑里藏刀\": \"笑裏藏刀\",\n\"管著\": \"管着\",\n\"管著作\": \"管著作\",\n\"管著名\": \"管著名\",\n\"管著書\": \"管著書\",\n\"管著稱\": \"管著稱\",\n\"管著者\": \"管著者\",\n\"管著述\": \"管著述\",\n\"管著錄\": \"管著錄\",\n\"箱里\": \"箱裏\",\n\"簡訊\": \"短訊\",\n\"簽著\": \"簽着\",\n\"糉\": \"粽\",\n\"糊口\": \"餬口\",\n\"糊里糊涂\": \"糊裏糊塗\",\n\"系列里\": \"系列裏\",\n\"系着\": \"繫着\",\n\"系里\": \"系裏\",\n\"紀錄著\": \"紀錄着\",\n\"約占\": \"約佔\",\n\"約翰尼斯堡\": \"約翰內斯堡\",\n\"紐幾內亞\": \"新幾內亞\",\n\"紐澳良\": \"新奧爾良\",\n\"紐西蘭\": \"新西蘭\",\n\"紐賓士域\": \"紐賓士域\",\n\"索尔仁尼琴\": \"索贊尼辛\",\n\"索忍尼辛\": \"索贊尼辛\",\n\"索羅門群島\": \"所羅門群島\",\n\"索馬利亞\": \"索馬里\",\n\"索馬利里\": \"索馬里\",\n\"紮著\": \"紮着\",\n\"紮著作\": \"紮著作\",\n\"紮著名\": \"紮著名\",\n\"紮著書\": \"紮著書\",\n\"紮著稱\": \"紮著稱\",\n\"紮著者\": \"紮著者\",\n\"紮著述\": \"紮著述\",\n\"紮著錄\": \"紮著錄\",\n\"結彩\": \"結綵\",\n\"綁著\": \"綁着\",\n\"綁著作\": \"綁著作\",\n\"綁著名\": \"綁著名\",\n\"綁著書\": \"綁著書\",\n\"綁著稱\": \"綁著稱\",\n\"綁著者\": \"綁著者\",\n\"綁著述\": \"綁著述\",\n\"綁著錄\": \"綁著錄\",\n\"維德角\": \"佛得角\",\n\"網路\": \"網絡\",\n\"網際網路\": \"互聯網\",\n\"緝凶\": \"緝兇\",\n\"縕\": \"緼\",\n\"縱著\": \"縱着\",\n\"繃著\": \"繃着\",\n\"繞著\": \"繞着\",\n\"繞著作\": \"繞著作\",\n\"繞著名\": \"繞著名\",\n\"繞著書\": \"繞著書\",\n\"繞著稱\": \"繞著稱\",\n\"繞著者\": \"繞著者\",\n\"繞著述\": \"繞著述\",\n\"繞著錄\": \"繞著錄\",\n\"繫著\": \"繫着\",\n\"繮\": \"韁\",\n\"纏著\": \"纏着\",\n\"纏著作\": \"纏著作\",\n\"纏著名\": \"纏著名\",\n\"纏著書\": \"纏著書\",\n\"纏著稱\": \"纏著稱\",\n\"纏著者\": \"纏著者\",\n\"纏著述\": \"纏著述\",\n\"纏著錄\": \"纏著錄\",\n\"纔\": \"才\",\n\"约占\": \"約佔\",\n\"约翰斯顿岛\": \"強斯頓環礁\",\n\"线图里\": \"線圖裏\",\n\"组里\": \"組裏\",\n\"经文里\": \"經文裏\",\n\"结彩\": \"結綵\",\n\"缝里\": \"縫裏\",\n\"网站里\": \"網站裏\",\n\"网里\": \"網裏\",\n\"罗纳尔多\": \"朗拿度\",\n\"罗纳尔迪尼奥\": \"朗拿甸奴\",\n\"罗纳德·里根\": \"朗奴·列根\",\n\"罩著\": \"罩着\",\n\"罩著作\": \"罩著作\",\n\"罩著名\": \"罩著名\",\n\"罩著書\": \"罩著書\",\n\"罩著稱\": \"罩著稱\",\n\"罩著者\": \"罩著者\",\n\"罩著述\": \"罩著述\",\n\"罩著錄\": \"罩著錄\",\n\"罵著\": \"罵着\",\n\"罵著作\": \"罵著作\",\n\"罵著名\": \"罵著名\",\n\"罵著書\": \"罵著書\",\n\"罵著稱\": \"罵著稱\",\n\"罵著者\": \"罵著者\",\n\"罵著述\": \"罵著述\",\n\"罵著錄\": \"罵著錄\",\n\"羅亞爾\": \"盧瓦爾\",\n\"美占\": \"美佔\",\n\"美著\": \"美着\",\n\"美著作\": \"美著作\",\n\"美著名\": \"美著名\",\n\"美著書\": \"美著書\",\n\"美著称\": \"美著稱\",\n\"美著稱\": \"美著稱\",\n\"美著者\": \"美著者\",\n\"美著述\": \"美著述\",\n\"美著錄\": \"美著錄\",\n\"義占\": \"意佔\",\n\"義大利\": \"意大利\",\n\"翁山蘇姬\": \"昂山素姬\",\n\"耀著\": \"耀着\",\n\"耀著作\": \"耀著作\",\n\"耀著名\": \"耀著名\",\n\"耀著書\": \"耀著書\",\n\"耀著稱\": \"耀著稱\",\n\"耀著者\": \"耀著者\",\n\"耀著述\": \"耀著述\",\n\"耀著錄\": \"耀著錄\",\n\"考著\": \"考着\",\n\"考著作\": \"考著作\",\n\"考著名\": \"考著名\",\n\"考著書\": \"考著書\",\n\"考著稱\": \"考著稱\",\n\"考著者\": \"考著者\",\n\"考著述\": \"考著述\",\n\"考著錄\": \"考著錄\",\n\"聖克里斯多福及尼維斯\": \"聖吉斯納域斯\",\n\"聖喬治\": \"聖佐治\",\n\"聖多美普林西比\": \"聖多美和普林西比\",\n\"聖文森及格瑞那丁\": \"聖文森特和格林納丁斯\",\n\"聖文森國\": \"聖文森特和格林納丁斯\",\n\"聖露西亞\": \"聖盧西亞\",\n\"聖馬利諾\": \"聖馬力諾\",\n\"聞不著\": \"闻不着\",\n\"聞得著\": \"闻得着\",\n\"聞著\": \"闻着\",\n\"聽不著\": \"聽不着\",\n\"聽得著\": \"聽得着\",\n\"聽著\": \"聽着\",\n\"聽著作\": \"聽著作\",\n\"聽著名\": \"聽著名\",\n\"聽著書\": \"聽著書\",\n\"聽著稱\": \"聽著稱\",\n\"聽著者\": \"聽著者\",\n\"聽著述\": \"聽著述\",\n\"聽著錄\": \"聽著錄\",\n\"肖斯塔科维奇\": \"蕭士達高維契\",\n\"肖邦\": \"蕭邦\",\n\"肚里\": \"肚裏\",\n\"肯尼亚\": \"肯雅\",\n\"肯尼迪\": \"甘迺迪\",\n\"胃里\": \"胃裏\",\n\"背地里\": \"背地裏\",\n\"背著\": \"背着\",\n\"背著作\": \"背著作\",\n\"背著名\": \"背著名\",\n\"背著書\": \"背著書\",\n\"背著稱\": \"背著稱\",\n\"背著者\": \"背著者\",\n\"背著述\": \"背著述\",\n\"背著錄\": \"背著錄\",\n\"胡里胡涂\": \"胡裏胡塗\",\n\"脫\": \"脱\",\n\"腰里\": \"腰裏\",\n\"膃\": \"腽\",\n\"膠著\": \"膠着\",\n\"膠著作\": \"膠著作\",\n\"膠著名\": \"膠著名\",\n\"膠著書\": \"膠著書\",\n\"膠著稱\": \"膠著稱\",\n\"膠著者\": \"膠著者\",\n\"膠著述\": \"膠著述\",\n\"膠著錄\": \"膠著錄\",\n\"臥\": \"卧\",\n\"臨著\": \"臨着\",\n\"臨著作\": \"臨著作\",\n\"臨著名\": \"臨著名\",\n\"臨著書\": \"臨著書\",\n\"臨著稱\": \"臨著稱\",\n\"臨著者\": \"臨著者\",\n\"臨著述\": \"臨著述\",\n\"臨著錄\": \"臨著錄\",\n\"自行火炮\": \"自走炮\",\n\"臺\": \"台\",\n\"與著\": \"與着\",\n\"與著作\": \"與著作\",\n\"與著名\": \"與著名\",\n\"與著書\": \"與著書\",\n\"與著稱\": \"與著稱\",\n\"與著者\": \"與著者\",\n\"與著述\": \"與著述\",\n\"與著錄\": \"與著錄\",\n\"舊金山\": \"三藩市\",\n\"舒马赫\": \"舒麥加\",\n\"航天飞机\": \"穿梭機\",\n\"艾滋\": \"愛滋\",\n\"艾里爾·夏隆\": \"阿里埃勒·沙龍\",\n\"节目里\": \"節目裏\",\n\"芮氏0\": \"黎克特制0\",\n\"芮氏1\": \"黎克特制1\",\n\"芮氏2\": \"黎克特制2\",\n\"芮氏3\": \"黎克特制3\",\n\"芮氏4\": \"黎克特制4\",\n\"芮氏5\": \"黎克特制5\",\n\"芮氏6\": \"黎克特制6\",\n\"芮氏7\": \"黎克特制7\",\n\"芮氏8\": \"黎克特制8\",\n\"芮氏9\": \"黎克特制9\",\n\"芮氏地震規模\": \"黎克特制地震震級\",\n\"芮氏規模\": \"黎克特制震級\",\n\"芯片\": \"晶片\",\n\"花盆里\": \"花盆裏\",\n\"苑裡\": \"苑裡\",\n\"苑里\": \"苑裏\",\n\"苦著\": \"苦着\",\n\"苦著作\": \"苦著作\",\n\"苦著名\": \"苦著名\",\n\"苦著書\": \"苦著書\",\n\"苦著稱\": \"苦著稱\",\n\"苦著者\": \"苦著者\",\n\"苦著述\": \"苦著述\",\n\"苦著錄\": \"苦著錄\",\n\"苦里\": \"苦裏\",\n\"英占\": \"英佔\",\n\"英文里\": \"英文裏\",\n\"茅利塔尼亞\": \"毛里塔尼亞\",\n\"草丛里\": \"草叢裏\",\n\"荧屏\": \"螢屏\",\n\"荷姆茲\": \"霍爾木茲\",\n\"荷尼阿拉\": \"霍尼亞拉\",\n\"莫三比克\": \"莫桑比克\",\n\"莱特湾\": \"雷伊泰灣\",\n\"華勒沙\": \"華里沙\",\n\"菲利普亲王\": \"菲臘親王\",\n\"菲利普親王\": \"菲臘親王\",\n\"菸\": \"煙\",\n\"萊特灣\": \"雷伊泰灣\",\n\"萨达姆\": \"薩達姆\",\n\"萬那杜\": \"瓦努阿圖\",\n\"落著\": \"落着\",\n\"落著作\": \"落著作\",\n\"落著名\": \"落著名\",\n\"落著書\": \"落著書\",\n\"落著稱\": \"落著稱\",\n\"落著者\": \"落著者\",\n\"落著述\": \"落著述\",\n\"落著錄\": \"落著錄\",\n\"葉爾欽\": \"葉利欽\",\n\"葉里溫\": \"埃里溫\",\n\"葉門\": \"也門\",\n\"著什\": \"着什\",\n\"著他\": \"着他\",\n\"著你\": \"着你\",\n\"著力\": \"着力\",\n\"著地\": \"着地\",\n\"著墨\": \"着墨\",\n\"著她\": \"着她\",\n\"著妳\": \"着妳\",\n\"著它\": \"着它\",\n\"著實\": \"着實\",\n\"著忙\": \"着忙\",\n\"著急\": \"着急\",\n\"著想\": \"着想\",\n\"著意\": \"着意\",\n\"著我\": \"着我\",\n\"著手\": \"着手\",\n\"著數\": \"着數\",\n\"著法\": \"着法\",\n\"著涼\": \"着涼\",\n\"著火\": \"着火\",\n\"著甚麼\": \"着甚麼\",\n\"著眼\": \"着眼\",\n\"著祂\": \"着祂\",\n\"著筆\": \"着筆\",\n\"著絲\": \"着絲\",\n\"著緊\": \"着緊\",\n\"著腳\": \"着腳\",\n\"著艦\": \"着艦\",\n\"著色\": \"着色\",\n\"著落\": \"着落\",\n\"著衣\": \"着衣\",\n\"著裝\": \"着裝\",\n\"著迷\": \"着迷\",\n\"著重\": \"着重\",\n\"著錄\": \"着錄\",\n\"著陸\": \"着陸\",\n\"著鞭\": \"着鞭\",\n\"葛摩\": \"科摩羅\",\n\"葛萊美獎\": \"格林美獎\",\n\"葡占\": \"葡佔\",\n\"葫芦里卖甚么药\": \"葫蘆裏賣甚麼藥\",\n\"蒕\": \"蒀\",\n\"蒙特內哥羅\": \"黑山\",\n\"蒙特婁\": \"蒙特利爾\",\n\"蒙著\": \"蒙着\",\n\"蒙著作\": \"蒙著作\",\n\"蒙著名\": \"蒙著名\",\n\"蒙著書\": \"蒙著書\",\n\"蒙著稱\": \"蒙著稱\",\n\"蒙著者\": \"蒙著者\",\n\"蒙著述\": \"蒙著述\",\n\"蒙著錄\": \"蒙著錄\",\n\"蒲隆地\": \"布隆迪\",\n\"蓋亞那\": \"圭亞那\",\n\"蓋著\": \"蓋着\",\n\"蓋著作\": \"蓋著作\",\n\"蓋著名\": \"蓋著名\",\n\"蓋著稱\": \"蓋著稱\",\n\"蔥\": \"葱\",\n\"蔿\": \"蒍\",\n\"蕭士塔高維奇\": \"蕭士達高維契\",\n\"薛丁格\": \"薛定諤\",\n\"藉著\": \"藉着\",\n\"藏著\": \"藏着\",\n\"藏著作\": \"藏著作\",\n\"藏著名\": \"藏著名\",\n\"藏著書\": \"藏著書\",\n\"藏著稱\": \"藏著稱\",\n\"藏著者\": \"藏著者\",\n\"藏著述\": \"藏著述\",\n\"藏著錄\": \"藏著錄\",\n\"蘇利南\": \"蘇里南\",\n\"蘊\": \"藴\",\n\"蘊涵著\": \"蘊涵着\",\n\"蘭卡威\": \"浮羅交怡\",\n\"蘸著\": \"蘸着\",\n\"蘸著作\": \"蘸著作\",\n\"蘸著名\": \"蘸著名\",\n\"蘸著書\": \"蘸著書\",\n\"蘸著稱\": \"蘸著稱\",\n\"蘸著者\": \"蘸著者\",\n\"蘸著述\": \"蘸著述\",\n\"蘸著錄\": \"蘸著錄\",\n\"蛻\": \"蜕\",\n\"蜜里调油\": \"蜜裏調油\",\n\"衆\": \"眾\",\n\"行動作業系統\": \"流動作業系統\",\n\"行動支付\": \"流動支付\",\n\"行動網路\": \"流動網絡\",\n\"行動裝置\": \"流動裝置\",\n\"行動電話\": \"流動電話\",\n\"行家里手\": \"行家裏手\",\n\"行著\": \"行着\",\n\"行著作\": \"行著作\",\n\"行著名\": \"行著名\",\n\"行著書\": \"行著書\",\n\"行著稱\": \"行著稱\",\n\"行著者\": \"行著者\",\n\"行著述\": \"行著述\",\n\"行著錄\": \"行著錄\",\n\"衛\": \"衞\",\n\"衝著\": \"衝着\",\n\"衣索匹亞\": \"埃塞俄比亚\",\n\"衣索比亞\": \"埃塞俄比亞\",\n\"衣著\": \"衣着\",\n\"衣著作\": \"衣著作\",\n\"衣著名\": \"衣著名\",\n\"衣著書\": \"衣著書\",\n\"衣著稱\": \"衣著稱\",\n\"衣著者\": \"衣著者\",\n\"衣著述\": \"衣著述\",\n\"衣著錄\": \"衣著錄\",\n\"表里\": \"表裏\",\n\"表里一致\": \"表裏一致\",\n\"表里不一\": \"表裏不一\",\n\"表里如一\": \"表裏如一\",\n\"表里山河\": \"表裏山河\",\n\"衬里\": \"襯裏\",\n\"袋里\": \"袋裏\",\n\"袖里\": \"袖裏\",\n\"被里\": \"被裏\",\n\"裝著\": \"裝着\",\n\"裝著作\": \"裝著作\",\n\"裝著名\": \"裝著名\",\n\"裝著書\": \"裝著書\",\n\"裝著稱\": \"裝著稱\",\n\"裝著者\": \"裝著者\",\n\"裝著述\": \"裝著述\",\n\"裝著錄\": \"裝著錄\",\n\"裡\": \"裏\",\n\"裡冷\": \"裡冷\",\n\"裹著\": \"裹着\",\n\"裹著作\": \"裹著作\",\n\"裹著名\": \"裹著名\",\n\"裹著書\": \"裹著書\",\n\"裹著稱\": \"裹著稱\",\n\"裹著者\": \"裹著者\",\n\"裹著述\": \"裹著述\",\n\"裹著錄\": \"裹著錄\",\n\"西占\": \"西佔\",\n\"西洋棋\": \"國際象棋\",\n\"西臺人\": \"赫梯人\",\n\"西臺國\": \"赫梯國\",\n\"西臺帝\": \"赫梯帝\",\n\"西臺文\": \"赫梯文\",\n\"西臺族\": \"赫梯族\",\n\"西臺王\": \"赫梯王\",\n\"西臺語\": \"赫梯語\",\n\"要占\": \"要佔\",\n\"要占卜\": \"要占卜\",\n\"覆著\": \"覆着\",\n\"覆蓋著\": \"覆蓋着\",\n\"覈\": \"核\",\n\"見著\": \"見着\",\n\"見著作\": \"見著作\",\n\"見著名\": \"見著名\",\n\"見著書\": \"見著書\",\n\"見著稱\": \"見著稱\",\n\"見著者\": \"見著者\",\n\"見著述\": \"見著述\",\n\"見著錄\": \"見著錄\",\n\"視著\": \"視着\",\n\"視著作\": \"視著作\",\n\"視著名\": \"視著名\",\n\"視著稱\": \"視著稱\",\n\"視著者\": \"視著者\",\n\"角落里\": \"角落裏\",\n\"解析度\": \"解像度\",\n\"言里\": \"言裏\",\n\"計畫\": \"計劃\",\n\"記著\": \"記着\",\n\"記著作\": \"記著作\",\n\"記著名\": \"記著名\",\n\"記著書\": \"記著書\",\n\"記著稱\": \"記著稱\",\n\"記著者\": \"記著者\",\n\"記著述\": \"記著述\",\n\"記著錄\": \"記著錄\",\n\"記錄著\": \"記錄着\",\n\"試著\": \"試着\",\n\"試著作\": \"試著作\",\n\"試著名\": \"試著名\",\n\"試著書\": \"試著書\",\n\"試著稱\": \"試著稱\",\n\"試著者\": \"試著者\",\n\"試著述\": \"試著述\",\n\"試著錄\": \"試著錄\",\n\"語著\": \"語着\",\n\"語著作\": \"語著作\",\n\"語著名\": \"語著名\",\n\"語著書\": \"語著書\",\n\"語著稱\": \"語著稱\",\n\"語著者\": \"語著者\",\n\"語著述\": \"語著述\",\n\"語著錄\": \"語著錄\",\n\"說\": \"説\",\n\"說著\": \"說着\",\n\"說著作\": \"說著作\",\n\"說著稱\": \"說著稱\",\n\"說著者\": \"說著者\",\n\"說著述\": \"說著述\",\n\"諾鲁\": \"瑙魯\",\n\"警戒著\": \"警戒着\",\n\"譯文里\": \"譯文裏\",\n\"變著\": \"變着\",\n\"變著作\": \"變著作\",\n\"變著名\": \"變著名\",\n\"變著書\": \"變著書\",\n\"變著稱\": \"變著稱\",\n\"變著者\": \"變著者\",\n\"變著述\": \"變著述\",\n\"變著錄\": \"變著錄\",\n\"计算机程序\": \"電腦程式\",\n\"论文里\": \"論文裏\",\n\"词里\": \"詞裏\",\n\"话里有话\": \"話裏有話\",\n\"语法里\": \"語法裏\",\n\"语里\": \"語裏\",\n\"诺曼底\": \"諾曼第\",\n\"谢丽·布莱尔\": \"彭雪玲\",\n\"豎著\": \"豎着\",\n\"豎著作\": \"豎著作\",\n\"豎著名\": \"豎著名\",\n\"豎著書\": \"豎著書\",\n\"豎著稱\": \"豎著稱\",\n\"豎著者\": \"豎著者\",\n\"豎著述\": \"豎著述\",\n\"豎著錄\": \"豎著錄\",\n\"象徵著\": \"象著着\",\n\"象徵著名\": \"象徵著名\",\n\"貝克漢\": \"碧咸\",\n\"貝爾格勒\": \"貝爾格萊德\",\n\"貝里斯\": \"伯利茲\",\n\"負著\": \"負着\",\n\"貢寮\": \"貢寮\",\n\"買凶\": \"買兇\",\n\"費占\": \"費佔\",\n\"賈伯斯\": \"喬布斯\",\n\"賓·拉登\": \"本·拉登\",\n\"賓士\": \"平治\",\n\"賓拉登\": \"本拉登\",\n\"賴比瑞亞\": \"利比里亞\",\n\"賴索托\": \"萊索托\",\n\"賽普勒斯\": \"塞浦路斯\",\n\"贗\": \"贋\",\n\"贝克汉姆\": \"碧咸\",\n\"费占\": \"費佔\",\n\"赌台\": \"賭枱\",\n\"赫魯雪夫\": \"赫魯曉夫\",\n\"走為上著\": \"走為上着\",\n\"走著\": \"走着\",\n\"走著作\": \"走著作\",\n\"走著名\": \"走著名\",\n\"走著書\": \"走著書\",\n\"走著稱\": \"走著稱\",\n\"走著者\": \"走著者\",\n\"走著述\": \"走著述\",\n\"走著錄\": \"走著錄\",\n\"趕著\": \"趕着\",\n\"趕著作\": \"趕著作\",\n\"趕著名\": \"趕著名\",\n\"趕著書\": \"趕著書\",\n\"趕著稱\": \"趕著稱\",\n\"趕著者\": \"趕著者\",\n\"趕著述\": \"趕著述\",\n\"趕著錄\": \"趕著錄\",\n\"趴著\": \"趴着\",\n\"趴著作\": \"趴著作\",\n\"趴著名\": \"趴著名\",\n\"趴著書\": \"趴著書\",\n\"趴著稱\": \"趴著稱\",\n\"趴著者\": \"趴著者\",\n\"趴著述\": \"趴著述\",\n\"趴著錄\": \"趴著錄\",\n\"跑著\": \"跑着\",\n\"跑著作\": \"跑著作\",\n\"跑著名\": \"跑著名\",\n\"跑著書\": \"跑著書\",\n\"跑著稱\": \"跑著稱\",\n\"跑著者\": \"跑著者\",\n\"跑著述\": \"跑著述\",\n\"跑著錄\": \"跑著錄\",\n\"跟著\": \"跟着\",\n\"跟著作\": \"跟著作\",\n\"跟著名\": \"跟著名\",\n\"跟著書\": \"跟著書\",\n\"跟著稱\": \"跟著稱\",\n\"跟著者\": \"跟著者\",\n\"跟著述\": \"跟著述\",\n\"跟著錄\": \"跟著錄\",\n\"跪著\": \"跪着\",\n\"跪著作\": \"跪著作\",\n\"跪著名\": \"跪著名\",\n\"跪著書\": \"跪著書\",\n\"跪著稱\": \"跪著稱\",\n\"跪著者\": \"跪著者\",\n\"跪著述\": \"跪著述\",\n\"跪著錄\": \"跪著錄\",\n\"路图里\": \"路圖裏\",\n\"跳著\": \"跳着\",\n\"跳著作\": \"跳著作\",\n\"跳著名\": \"跳著名\",\n\"跳著書\": \"跳著書\",\n\"跳著稱\": \"跳著稱\",\n\"跳著者\": \"跳著者\",\n\"跳著述\": \"跳著述\",\n\"跳著錄\": \"跳著錄\",\n\"踊\": \"踴\",\n\"踏著\": \"踏着\",\n\"踏著作\": \"踏著作\",\n\"踏著名\": \"踏著名\",\n\"踏著稱\": \"踏著稱\",\n\"踏著者\": \"踏著者\",\n\"踏著述\": \"踏著述\",\n\"踏著錄\": \"踏著錄\",\n\"踩著\": \"踩着\",\n\"踩著作\": \"踩著作\",\n\"踩著名\": \"踩著名\",\n\"踩著書\": \"踩著書\",\n\"踩著稱\": \"踩著稱\",\n\"踩著者\": \"踩著者\",\n\"踩著述\": \"踩著述\",\n\"踩著錄\": \"踩著錄\",\n\"蹦床\": \"彈床\",\n\"躍著\": \"躍着\",\n\"躍著作\": \"躍著作\",\n\"躍著名\": \"躍著名\",\n\"躍著書\": \"躍著書\",\n\"躍著稱\": \"躍著稱\",\n\"躍著者\": \"躍著者\",\n\"躍著述\": \"躍著述\",\n\"躍著錄\": \"躍著錄\",\n\"身著\": \"身着\",\n\"身著作\": \"身著作\",\n\"身著名\": \"身著名\",\n\"身著書\": \"身著書\",\n\"身著稱\": \"身著稱\",\n\"身著者\": \"身著者\",\n\"身著述\": \"身著述\",\n\"身著錄\": \"身著錄\",\n\"躺著\": \"躺着\",\n\"躺著作\": \"躺著作\",\n\"躺著名\": \"躺著名\",\n\"躺著書\": \"躺著書\",\n\"躺著稱\": \"躺著稱\",\n\"躺著者\": \"躺著者\",\n\"躺著述\": \"躺著述\",\n\"躺著錄\": \"躺著錄\",\n\"軟體\": \"軟件\",\n\"軟體動物\": \"軟體動物\",\n\"軟體家具\": \"軟體家具\",\n\"載著\": \"載着\",\n\"載著作\": \"載著作\",\n\"載著名\": \"載著名\",\n\"載著書\": \"載著書\",\n\"載著稱\": \"載著稱\",\n\"載著者\": \"載著者\",\n\"載著述\": \"載著述\",\n\"載著錄\": \"載著錄\",\n\"轀\": \"輼\",\n\"轉著\": \"轉着\",\n\"轉著作\": \"轉著作\",\n\"轉著名\": \"轉著名\",\n\"轉著書\": \"轉著書\",\n\"轉著稱\": \"轉著稱\",\n\"轉著者\": \"轉著者\",\n\"轉著述\": \"轉著述\",\n\"轉著錄\": \"轉著錄\",\n\"车库里\": \"車庫裏\",\n\"车站里\": \"車站裏\",\n\"车里\": \"車裏\",\n\"车里雅宾斯克\": \"車里雅賓斯克\",\n\"辛巴威\": \"津巴布韋\",\n\"辦著\": \"辦着\",\n\"辦著作\": \"辦著作\",\n\"辦著名\": \"辦著名\",\n\"辦著書\": \"辦著書\",\n\"辦著稱\": \"辦著稱\",\n\"辦著者\": \"辦著者\",\n\"辦著述\": \"辦著述\",\n\"辦著錄\": \"辦著錄\",\n\"达·芬奇\": \"達·文西\",\n\"达芬奇\": \"達文西\",\n\"迈克尔\": \"米高\",\n\"迈克尔·欧文\": \"米高·奧雲\",\n\"还占\": \"還佔\",\n\"这里\": \"這裏\",\n\"进占\": \"進佔\",\n\"连占\": \"連佔\",\n\"迦納\": \"加納\",\n\"迪拜\": \"杜拜\",\n\"迫著\": \"迫着\",\n\"迭代\": \"疊代\",\n\"追著\": \"追着\",\n\"追著作\": \"追著作\",\n\"追著名\": \"追著名\",\n\"追著書\": \"追著書\",\n\"追著稱\": \"追著稱\",\n\"追著者\": \"追著者\",\n\"追著述\": \"追著述\",\n\"追著錄\": \"追著錄\",\n\"逆著\": \"逆着\",\n\"逆著作\": \"逆著作\",\n\"逆著名\": \"逆著名\",\n\"逆著書\": \"逆著書\",\n\"逆著稱\": \"逆著稱\",\n\"逆著者\": \"逆著者\",\n\"逆著述\": \"逆著述\",\n\"逆著錄\": \"逆著錄\",\n\"連占\": \"連佔\",\n\"連著\": \"連着\",\n\"連著作\": \"連著作\",\n\"連著名\": \"連著名\",\n\"連著書\": \"連著書\",\n\"連著稱\": \"連著稱\",\n\"連著者\": \"連著者\",\n\"連著述\": \"連著述\",\n\"連著錄\": \"連著錄\",\n\"進占\": \"進佔\",\n\"逼著\": \"逼着\",\n\"逼著作\": \"逼著作\",\n\"逼著名\": \"逼著名\",\n\"逼著書\": \"逼著書\",\n\"逼著稱\": \"逼著稱\",\n\"逼著者\": \"逼著者\",\n\"逼著述\": \"逼著述\",\n\"逼著錄\": \"逼著錄\",\n\"遇著\": \"遇着\",\n\"遇著作\": \"遇著作\",\n\"遇著名\": \"遇著名\",\n\"遇著書\": \"遇著書\",\n\"遇著称\": \"遇著稱\",\n\"遇著稱\": \"遇著稱\",\n\"遇著者\": \"遇著者\",\n\"遇著述\": \"遇著述\",\n\"遇著錄\": \"遇著錄\",\n\"遍佈著\": \"遍佈着\",\n\"遍布\": \"遍佈\",\n\"遍布著\": \"遍佈着\",\n\"過著\": \"過着\",\n\"過著作\": \"當著作\",\n\"過著名\": \"當著名\",\n\"過著書\": \"當著書\",\n\"過著稱\": \"當著稱\",\n\"過著者\": \"當著者\",\n\"過著述\": \"當著述\",\n\"過著錄\": \"當著錄\",\n\"道瓊\": \"道瓊斯\",\n\"道瓊斯\": \"道瓊斯\",\n\"達著\": \"達着\",\n\"達著作\": \"達著作\",\n\"達著名\": \"達著名\",\n\"達著書\": \"達著書\",\n\"達著稱\": \"達著稱\",\n\"達著者\": \"達著者\",\n\"達著述\": \"達著述\",\n\"達著錄\": \"達著錄\",\n\"還占\": \"還佔\",\n\"邋里邋遢\": \"邋裏邋遢\",\n\"那里\": \"那裏\",\n\"都市里\": \"都市裏\",\n\"配合著\": \"配合着\",\n\"配合著名\": \"配合著名\",\n\"配图里\": \"配圖裏\",\n\"配著\": \"配着\",\n\"配著作\": \"配著作\",\n\"配著名\": \"配著名\",\n\"配著書\": \"配著書\",\n\"配著稱\": \"配著稱\",\n\"配著者\": \"配著者\",\n\"配著述\": \"配著述\",\n\"配著錄\": \"配著錄\",\n\"醜著\": \"醜着\",\n\"醜著作\": \"醜著作\",\n\"醜著名\": \"醜著名\",\n\"醜著書\": \"醜著書\",\n\"醜著稱\": \"醜著稱\",\n\"醜著者\": \"醜著者\",\n\"醜著述\": \"醜著述\",\n\"醜著錄\": \"醜著錄\",\n\"醞\": \"醖\",\n\"醯\": \"酰\",\n\"醯壶\": \"醯壺\",\n\"醯壺\": \"醯壺\",\n\"醯酱\": \"醯醬\",\n\"醯醋\": \"醯醋\",\n\"醯醢\": \"醯醢\",\n\"醯醬\": \"醯醬\",\n\"醯雞\": \"醯雞\",\n\"醯鸡\": \"醯雞\",\n\"釀著\": \"釀着\",\n\"釀著作\": \"釀著作\",\n\"釀著名\": \"釀著名\",\n\"釀著書\": \"釀著書\",\n\"釀著稱\": \"釀著稱\",\n\"釀著者\": \"釀著者\",\n\"釀著述\": \"釀著述\",\n\"釀著錄\": \"釀著錄\",\n\"里勾外连\": \"裏勾外連\",\n\"里头\": \"裏頭\",\n\"里层\": \"裏層\",\n\"里屋\": \"裏屋\",\n\"里带\": \"裏帶\",\n\"里应外合\": \"裏應外合\",\n\"里弦\": \"裏弦\",\n\"里氏0\": \"黎克特制0\",\n\"里氏1\": \"黎克特制1\",\n\"里氏2\": \"黎克特制2\",\n\"里氏3\": \"黎克特制3\",\n\"里氏4\": \"黎克特制4\",\n\"里氏5\": \"黎克特制5\",\n\"里氏6\": \"黎克特制6\",\n\"里氏7\": \"黎克特制7\",\n\"里氏8\": \"黎克特制8\",\n\"里氏9\": \"黎克特制9\",\n\"里氏地震规模\": \"黎克特制地震震級\",\n\"里氏规模\": \"黎克特制震級\",\n\"里氏震级\": \"黎克特制震級\",\n\"里海\": \"裏海\",\n\"里瓦尔多\": \"李華度\",\n\"里脊\": \"裏脊\",\n\"里衣\": \"裏衣\",\n\"里边\": \"裏邊\",\n\"里通外国\": \"裏通外國\",\n\"里通外敌\": \"裏通外敵\",\n\"里间\": \"裏間\",\n\"里面\": \"裏面\",\n\"金氏世界紀錄\": \"健力士世界紀錄\",\n\"金装玉里\": \"金裝玉裏\",\n\"鉢\": \"缽\",\n\"鉤\": \"鈎\",\n\"銳\": \"鋭\",\n\"鋪著\": \"鋪着\",\n\"鋪著作\": \"鋪著作\",\n\"鋪著名\": \"鋪著名\",\n\"鋪著書\": \"鋪著書\",\n\"鋪著稱\": \"鋪著稱\",\n\"鋪著者\": \"鋪著者\",\n\"鋪著述\": \"鋪著述\",\n\"鋪著錄\": \"鋪著錄\",\n\"錢尼\": \"切尼\",\n\"钟在寺里\": \"鐘在寺裏\",\n\"链接\": \"連結\",\n\"镇里\": \"鎮裏\",\n\"镜图里\": \"鏡圖裏\",\n\"閉著\": \"閉着\",\n\"閉著作\": \"閉著作\",\n\"閉著名\": \"閉著名\",\n\"閉著書\": \"閉著書\",\n\"閉著稱\": \"閉著稱\",\n\"閉著者\": \"閉著者\",\n\"閉著述\": \"閉著述\",\n\"閉著錄\": \"閉著錄\",\n\"開著\": \"開着\",\n\"開著作\": \"開著作\",\n\"開著名\": \"開著名\",\n\"開著書\": \"開著書\",\n\"開著稱\": \"開著稱\",\n\"開著者\": \"開著者\",\n\"開著述\": \"開著述\",\n\"開著錄\": \"開著錄\",\n\"開誠布公\": \"開誠佈公\",\n\"閑著\": \"閑着\",\n\"閑著作\": \"閑著作\",\n\"閑著名\": \"閑著名\",\n\"閑著書\": \"閑著書\",\n\"閑著稱\": \"閑著稱\",\n\"閑著者\": \"閑著者\",\n\"閑著述\": \"閑著述\",\n\"閑著錄\": \"閑著錄\",\n\"閒著\": \"閒着\",\n\"閱\": \"閲\",\n\"關係著\": \"關係着\",\n\"關著\": \"關着\",\n\"關著作\": \"關著作\",\n\"關著名\": \"關著名\",\n\"關著書\": \"關著書\",\n\"關著稱\": \"關著稱\",\n\"關著者\": \"關著者\",\n\"關著述\": \"關著述\",\n\"關著錄\": \"關著錄\",\n\"门德尔松\": \"孟德爾遜\",\n\"门里\": \"門裏\",\n\"间里\": \"間裏\",\n\"队里\": \"隊裏\",\n\"阴沟里翻船\": \"陰溝裏翻船\",\n\"阿尔伯塔\": \"艾伯塔\",\n\"阿布達比\": \"阿布扎比\",\n\"阿拉伯聯合大公國\": \"阿拉伯聯合酋長國\",\n\"阿联酋\": \"阿聯酋\",\n\"阿迪斯阿貝巴\": \"亞的斯亞貝巴\",\n\"附著\": \"附着\",\n\"附著作\": \"附著作\",\n\"附著名\": \"附著名\",\n\"附著書\": \"附著書\",\n\"附著稱\": \"附著稱\",\n\"附著者\": \"附著者\",\n\"附著述\": \"附著述\",\n\"附著錄\": \"附著錄\",\n\"陋著\": \"陋着\",\n\"陋著作\": \"陋著作\",\n\"陋著名\": \"陋著名\",\n\"陋著書\": \"陋著書\",\n\"陋著稱\": \"陋著稱\",\n\"陋著者\": \"陋著者\",\n\"陋著述\": \"陋著述\",\n\"陋著錄\": \"陋著錄\",\n\"院里\": \"院裏\",\n\"陪著\": \"陪着\",\n\"陪著作\": \"陪著作\",\n\"陪著名\": \"陪著名\",\n\"陪著書\": \"陪著書\",\n\"陪著稱\": \"陪著稱\",\n\"陪著者\": \"陪著者\",\n\"陪著述\": \"陪著述\",\n\"陪著錄\": \"陪著錄\",\n\"隐占\": \"隱佔\",\n\"隐私\": \"私隱\",\n\"隔著\": \"隔着\",\n\"隔著作\": \"隔著作\",\n\"隔著名\": \"隔著名\",\n\"隔著書\": \"隔著書\",\n\"隔著稱\": \"隔著稱\",\n\"隔著者\": \"隔著者\",\n\"隔著述\": \"隔著述\",\n\"隔著錄\": \"隔著錄\",\n\"隨著\": \"隨着\",\n\"隨著作\": \"隨著作\",\n\"隨著名\": \"隨著名\",\n\"隨著書\": \"隨著書\",\n\"隨著稱\": \"隨著稱\",\n\"隨著者\": \"隨著者\",\n\"隨著述\": \"隨著述\",\n\"隨著錄\": \"隨著錄\",\n\"隱占\": \"隱佔\",\n\"隱私\": \"私隱\",\n\"雅爾達\": \"雅爾塔\",\n\"雅穆索戈\": \"雅穆蘇克雷\",\n\"雅著\": \"雅着\",\n\"雅著作\": \"雅著作\",\n\"雅著名\": \"雅著名\",\n\"雅著書\": \"雅著書\",\n\"雅著称\": \"雅著稱\",\n\"雅著稱\": \"雅著稱\",\n\"雅著者\": \"雅著者\",\n\"雅著述\": \"雅著述\",\n\"雅著錄\": \"雅著錄\",\n\"集数里\": \"集數裏\",\n\"集里\": \"集裏\",\n\"雇员\": \"僱員\",\n\"雇用\": \"僱用\",\n\"雜著\": \"雜着\",\n\"雜著作\": \"雜著作\",\n\"雜著名\": \"雜著名\",\n\"雜著書\": \"雜著書\",\n\"雜著稱\": \"雜著稱\",\n\"雜著者\": \"雜著者\",\n\"雜著述\": \"雜著述\",\n\"雜著錄\": \"雜著錄\",\n\"雪里\": \"雪裏\",\n\"雾里\": \"霧裏\",\n\"霄裡\": \"霄裡\",\n\"霍爾斯坦\": \"荷爾斯泰因\",\n\"霸占\": \"霸佔\",\n\"非占不可\": \"非佔不可\",\n\"靠著\": \"靠着\",\n\"靠著作\": \"靠著作\",\n\"靠著名\": \"靠著名\",\n\"靠著录\": \"靠著錄\",\n\"靠著称\": \"靠著稱\",\n\"靠著稱\": \"靠著稱\",\n\"靠著者\": \"靠著者\",\n\"靠著述\": \"靠著述\",\n\"靠著錄\": \"靠著錄\",\n\"面包著\": \"面包着\",\n\"鞋里\": \"鞋裏\",\n\"鞭辟入里\": \"鞭辟入裏\",\n\"響著\": \"響着\",\n\"響著作\": \"響著作\",\n\"響著名\": \"響著名\",\n\"響著書\": \"響著書\",\n\"響著稱\": \"響著稱\",\n\"響著者\": \"響著者\",\n\"響著述\": \"響著述\",\n\"響著錄\": \"響著錄\",\n\"頂著\": \"頂着\",\n\"頂著作\": \"頂著作\",\n\"頂著名\": \"頂著名\",\n\"頂著書\": \"頂著書\",\n\"頂著稱\": \"頂著稱\",\n\"頂著者\": \"頂著者\",\n\"頂著述\": \"頂著述\",\n\"頂著錄\": \"頂著錄\",\n\"順著\": \"順着\",\n\"順著作\": \"順著作\",\n\"順著名\": \"順著名\",\n\"順著書\": \"順著書\",\n\"順著稱\": \"順著稱\",\n\"順著者\": \"順著者\",\n\"順著述\": \"順著述\",\n\"順著錄\": \"順著錄\",\n\"頒布\": \"頒佈\",\n\"領著\": \"領着\",\n\"領著作\": \"領著作\",\n\"領著名\": \"領著名\",\n\"領著書\": \"領著書\",\n\"領著稱\": \"領著稱\",\n\"領著者\": \"領著者\",\n\"領著述\": \"領著述\",\n\"領著錄\": \"領著錄\",\n\"颁布\": \"頒佈\",\n\"颳著\": \"颳着\",\n\"飃著\": \"飃着\",\n\"飄著\": \"飄着\",\n\"飄著作\": \"飄著作\",\n\"飄著名\": \"飄著名\",\n\"飄著書\": \"飄著書\",\n\"飄著稱\": \"飄著稱\",\n\"飄著者\": \"飄著者\",\n\"飄著述\": \"飄著述\",\n\"飄著錄\": \"飄著錄\",\n\"风里\": \"風裏\",\n\"餐台\": \"餐枱\",\n\"馆里\": \"館裏\",\n\"首席执行官\": \"行政總裁\",\n\"馬利共和國\": \"馬里共和國\",\n\"馬拉威\": \"馬拉維\",\n\"馬拉度納\": \"馬勒當拿\",\n\"馬斯垂克\": \"馬斯特里赫特\",\n\"馬爾地夫\": \"馬爾代夫\",\n\"馬自達\": \"萬事得\",\n\"馬里蘭\": \"馬利蘭\",\n\"駕著\": \"駕着\",\n\"駕著作\": \"駕著作\",\n\"駕著名\": \"駕著名\",\n\"駕著書\": \"駕著書\",\n\"駕著稱\": \"駕著稱\",\n\"駕著者\": \"駕著者\",\n\"駕著述\": \"駕著述\",\n\"駕著錄\": \"駕著錄\",\n\"駛著\": \"駛着\",\n\"騎著\": \"騎着\",\n\"騎著作\": \"騎著作\",\n\"騎著名\": \"騎著名\",\n\"騎著書\": \"騎著書\",\n\"騎著稱\": \"騎著稱\",\n\"騎著者\": \"騎著者\",\n\"騎著述\": \"騎著述\",\n\"騎著錄\": \"騎著錄\",\n\"騙著\": \"騙着\",\n\"騙著作\": \"騙著作\",\n\"騙著名\": \"騙著名\",\n\"騙著書\": \"騙著書\",\n\"騙著稱\": \"騙著稱\",\n\"騙著者\": \"騙著者\",\n\"騙著述\": \"騙著述\",\n\"騙著錄\": \"騙著錄\",\n\"马恩岛\": \"萌島\",\n\"马拉多纳\": \"馬勒當拿\",\n\"马拉特·萨芬\": \"馬拉特·沙芬\",\n\"马自达\": \"萬事得\",\n\"马里兰\": \"馬利蘭\",\n\"高畫質\": \"高清\",\n\"高著\": \"高着\",\n\"高著作\": \"高著作\",\n\"高著名\": \"高著名\",\n\"高著書\": \"高著書\",\n\"高著称\": \"高著稱\",\n\"高著稱\": \"高著稱\",\n\"高著者\": \"高著者\",\n\"高著述\": \"高著述\",\n\"高著錄\": \"高著錄\",\n\"鬥著\": \"鬥着\",\n\"鬥著作\": \"鬥著作\",\n\"鬥著名\": \"鬥著名\",\n\"鬥著書\": \"鬥著書\",\n\"鬥著稱\": \"鬥著稱\",\n\"鬥著者\": \"鬥著者\",\n\"鬥著述\": \"鬥著述\",\n\"鬥著錄\": \"鬥著錄\",\n\"鬧著\": \"鬧着\",\n\"鰮\": \"鰛\",\n\"鱉\": \"鼈\",\n\"鳩占\": \"鳩佔\",\n\"鸠占\": \"鳩佔\",\n\"鸡蛋里挑骨头\": \"雞蛋裏挑骨頭\",\n\"麦克尔\": \"米高\",\n\"麼著\": \"麼着\",\n\"黏著\": \"黏着\",\n\"黏著作\": \"黏著作\",\n\"黏著名\": \"黏著名\",\n\"黏著書\": \"黏著書\",\n\"黏著稱\": \"黏著稱\",\n\"黏著者\": \"黏著者\",\n\"黏著述\": \"黏著述\",\n\"黏著錄\": \"黏著錄\",\n\"黛安娜\": \"戴安娜\",\n\"點著\": \"點着\",\n\"點著作\": \"點著作\",\n\"點著名\": \"點著名\",\n\"點著書\": \"點著書\",\n\"點著稱\": \"點著稱\",\n\"點著者\": \"點著者\",\n\"點著述\": \"點著述\",\n\"點著錄\": \"點著錄\",\n\"鼓里\": \"鼓裏\"\n},\n\"zh2Hans\": {\n\"。陞\": \"。升\",\n\"《易乾\": \"《易乾\",\n\"「\": \"“\",\n\"」\": \"”\",\n\"『\": \"‘\",\n\"』\": \"’\",\n\"㑮\": \"𫝈\",\n\"㑯\": \"㑔\",\n\"㑳\": \"㑇\",\n\"㑶\": \"㐹\",\n\"㒓\": \"𠉂\",\n\"㒺\": \"罔\",\n\"㓂\": \"寇\",\n\"㓄\": \"𪠟\",\n\"㓨\": \"刾\",\n\"㔋\": \"𪟎\",\n\"㕁\": \"却\",\n\"㕑\": \"厨\",\n\"㕘\": \"参\",\n\"㕥\": \"以\",\n\"㖮\": \"𪠵\",\n\"㗲\": \"𠵾\",\n\"㗿\": \"𪡛\",\n\"㘉\": \"𠰱\",\n\"㘓\": \"𪢌\",\n\"㘔\": \"㗷\",\n\"㘚\": \"㘎\",\n\"㘭\": \"坳\",\n\"㛝\": \"𫝦\",\n\"㜄\": \"㚯\",\n\"㜏\": \"㛣\",\n\"㜐\": \"𫝧\",\n\"㜗\": \"𡞋\",\n\"㜢\": \"𡞱\",\n\"㜷\": \"𡝠\",\n\"㝛\": \"宿\",\n\"㝠\": \"冥\",\n\"㞞\": \"𪨊\",\n\"㟺\": \"𪩇\",\n\"㠀\": \"岛\",\n\"㠏\": \"㟆\",\n\"㠣\": \"𫵷\",\n\"㠯\": \"以\",\n\"㠶\": \"帆\",\n\"㡌\": \"帽\",\n\"㢗\": \"𪪑\",\n\"㢘\": \"廉\",\n\"㢝\": \"𢋈\",\n\"㤙\": \"恩\",\n\"㥦\": \"惬\",\n\"㥮\": \"㤘\",\n\"㦎\": \"𢛯\",\n\"㦛\": \"𢗓\",\n\"㦞\": \"𪫷\",\n\"㨗\": \"捷\",\n\"㨪\": \"晃\",\n\"㨻\": \"𪮃\",\n\"㨿\": \"据\",\n\"㩋\": \"𪮋\",\n\"㩗\": \"携\",\n\"㩜\": \"㨫\",\n\"㩦\": \"携\",\n\"㩳\": \"㧐\",\n\"㩵\": \"擜\",\n\"㪎\": \"𪯋\",\n\"㪚\": \"散\",\n\"㪟\": \"敦\",\n\"㬉\": \"暖\",\n\"㬪\": \"叠\",\n\"㯤\": \"𣘐\",\n\"㯭\": \"橹\",\n\"㰙\": \"𣗙\",\n\"㱃\": \"饮\",\n\"㳒\": \"法\",\n\"㴱\": \"深\",\n\"㵗\": \"𣳆\",\n\"㵾\": \"𪷍\",\n\"㶆\": \"𫞛\",\n\"㷍\": \"𤆢\",\n\"㷿\": \"𤈷\",\n\"㸇\": \"𤎺\",\n\"㹽\": \"𫞣\",\n\"㺏\": \"𤠋\",\n\"㺜\": \"𪺻\",\n\"㻶\": \"𪼋\",\n\"㼝\": \"碗\",\n\"㽞\": \"留\",\n\"㿖\": \"𪽮\",\n\"㿗\": \"𤻊\",\n\"㿜\": \"瘪\",\n\"㿧\": \"𤽯\",\n\"䀉\": \"𥁢\",\n\"䀹\": \"𥅴\",\n\"䁪\": \"𥇢\",\n\"䁻\": \"䀥\",\n\"䂎\": \"𥎝\",\n\"䃮\": \"鿎\",\n\"䅐\": \"𫀨\",\n\"䅳\": \"𫀬\",\n\"䆉\": \"𫁂\",\n\"䈰\": \"筲\",\n\"䉑\": \"𫁲\",\n\"䉙\": \"𥬀\",\n\"䉬\": \"𫂈\",\n\"䉲\": \"𥮜\",\n\"䉶\": \"𫁷\",\n\"䊀\": \"糊\",\n\"䊭\": \"𥺅\",\n\"䊷\": \"䌶\",\n\"䊺\": \"𫄚\",\n\"䋃\": \"𫄜\",\n\"䋔\": \"𫄞\",\n\"䋙\": \"䌺\",\n\"䋚\": \"䌻\",\n\"䋦\": \"𫄩\",\n\"䋹\": \"䌿\",\n\"䋻\": \"䌾\",\n\"䋼\": \"𫄮\",\n\"䋿\": \"𦈓\",\n\"䌈\": \"𦈖\",\n\"䌋\": \"𦈘\",\n\"䌖\": \"𦈜\",\n\"䌝\": \"𦈟\",\n\"䌟\": \"𦈞\",\n\"䌥\": \"𦈠\",\n\"䌰\": \"𦈙\",\n\"䍤\": \"𫅅\",\n\"䍦\": \"䍠\",\n\"䍽\": \"𦍠\",\n\"䎙\": \"𫅭\",\n\"䎱\": \"䎬\",\n\"䓣\": \"𬜯\",\n\"䕤\": \"𫟕\",\n\"䕳\": \"𦰴\",\n\"䖅\": \"𫟑\",\n\"䗅\": \"𫊪\",\n\"䗬\": \"蜂\",\n\"䗿\": \"𧉞\",\n\"䘏\": \"恤\",\n\"䘑\": \"脉\",\n\"䘚\": \"卒\",\n\"䙔\": \"𫋲\",\n\"䙡\": \"䙌\",\n\"䙱\": \"𧜭\",\n\"䚩\": \"𫌯\",\n\"䛄\": \"𫍠\",\n\"䛐\": \"词\",\n\"䛡\": \"话\",\n\"䛳\": \"𫍫\",\n\"䜀\": \"䜧\",\n\"䜖\": \"𫟢\",\n\"䝔\": \"獾\",\n\"䝭\": \"𫎧\",\n\"䝻\": \"𧹕\",\n\"䝼\": \"䞍\",\n\"䞈\": \"𧹑\",\n\"䞋\": \"𫎪\",\n\"䞓\": \"𫎭\",\n\"䟃\": \"𫎺\",\n\"䟆\": \"𫎳\",\n\"䟐\": \"𫎱\",\n\"䠀\": \"蹚\",\n\"䠆\": \"𫏃\",\n\"䠱\": \"𨅛\",\n\"䠶\": \"射\",\n\"䡐\": \"𫟤\",\n\"䡩\": \"𫟥\",\n\"䡵\": \"𫟦\",\n\"䢨\": \"𨑹\",\n\"䤤\": \"𫟺\",\n\"䥄\": \"𫠀\",\n\"䥇\": \"䦂\",\n\"䥑\": \"鿏\",\n\"䥕\": \"𬭯\",\n\"䥗\": \"𫔋\",\n\"䥥\": \"镰\",\n\"䥩\": \"𨱖\",\n\"䥯\": \"𫔆\",\n\"䥱\": \"䥾\",\n\"䦘\": \"𨸄\",\n\"䦛\": \"䦶\",\n\"䦟\": \"䦷\",\n\"䦯\": \"𫔵\",\n\"䦳\": \"𨷿\",\n\"䧢\": \"𨸟\",\n\"䪊\": \"𫖅\",\n\"䪏\": \"𩏼\",\n\"䪗\": \"𩐀\",\n\"䪘\": \"𩏿\",\n\"䪴\": \"𫖫\",\n\"䪾\": \"𫖬\",\n\"䫀\": \"𫖱\",\n\"䫂\": \"𫖰\",\n\"䫟\": \"𫖲\",\n\"䫴\": \"𩖗\",\n\"䫶\": \"𫖺\",\n\"䫻\": \"𫗇\",\n\"䫾\": \"𫠈\",\n\"䬃\": \"飒\",\n\"䬓\": \"𫗊\",\n\"䬘\": \"𩙮\",\n\"䬝\": \"𩙯\",\n\"䬞\": \"𩙧\",\n\"䬧\": \"𫗟\",\n\"䭀\": \"𩠇\",\n\"䭃\": \"𩠈\",\n\"䭑\": \"𫗱\",\n\"䭔\": \"𫗰\",\n\"䭾\": \"驮\",\n\"䭿\": \"𩧭\",\n\"䮄\": \"𫠊\",\n\"䮝\": \"𩧰\",\n\"䮞\": \"𩨁\",\n\"䮠\": \"𩧿\",\n\"䮫\": \"𩨇\",\n\"䮰\": \"𫘮\",\n\"䮳\": \"𩨏\",\n\"䮾\": \"𩧪\",\n\"䯀\": \"䯅\",\n\"䯤\": \"𩩈\",\n\"䰟\": \"魂\",\n\"䰾\": \"鲃\",\n\"䱀\": \"𫚐\",\n\"䱁\": \"𫚏\",\n\"䱙\": \"𩾈\",\n\"䱧\": \"𫚠\",\n\"䱬\": \"𩾊\",\n\"䱰\": \"𩾋\",\n\"䱷\": \"䲣\",\n\"䱸\": \"𫠑\",\n\"䱽\": \"䲝\",\n\"䲁\": \"鳚\",\n\"䲅\": \"𫚜\",\n\"䲖\": \"𩾂\",\n\"䲘\": \"鳤\",\n\"䲰\": \"𪉂\",\n\"䳘\": \"鹅\",\n\"䳜\": \"𫛬\",\n\"䳢\": \"𫛰\",\n\"䳤\": \"𫛮\",\n\"䳧\": \"𫛺\",\n\"䳫\": \"𫛼\",\n\"䴉\": \"鹮\",\n\"䴋\": \"𫜅\",\n\"䴬\": \"𪎈\",\n\"䴱\": \"𫜒\",\n\"䴴\": \"𪎋\",\n\"䴽\": \"𫜔\",\n\"䵳\": \"𪑅\",\n\"䵴\": \"𫜙\",\n\"䶊\": \"衄\",\n\"䶕\": \"𫜨\",\n\"䶲\": \"𫜳\",\n\"一釐\": \"一厘\",\n\"上昇\": \"上升\",\n\"不穀\": \"不穀\",\n\"丟\": \"丢\",\n\"丣\": \"卯\",\n\"並\": \"并\",\n\"么九\": \"幺九\",\n\"么二三\": \"幺二三\",\n\"么元\": \"幺元\",\n\"么兒\": \"幺儿\",\n\"么半\": \"幺半\",\n\"么叔\": \"幺叔\",\n\"么喝\": \"幺喝\",\n\"么女\": \"幺女\",\n\"么妹\": \"幺妹\",\n\"么姓\": \"幺姓\",\n\"么姨\": \"幺姨\",\n\"么娘\": \"幺娘\",\n\"么媽\": \"幺妈\",\n\"么孃\": \"幺娘\",\n\"么子\": \"幺子\",\n\"么小\": \"幺小\",\n\"么弟\": \"幺弟\",\n\"么正\": \"幺正\",\n\"么氏\": \"幺氏\",\n\"么爸\": \"幺爸\",\n\"么爹\": \"幺爹\",\n\"么爺\": \"幺爷\",\n\"么篇\": \"幺篇\",\n\"么舅\": \"幺舅\",\n\"么蛾子\": \"幺蛾子\",\n\"么雞\": \"幺鸡\",\n\"么鳳\": \"幺凤\",\n\"么麼\": \"幺麽\",\n\"乗\": \"乘\",\n\"乹\": \"干\",\n\"乾\": \"干\",\n\"乾一坛\": \"乾一坛\",\n\"乾一壇\": \"乾一坛\",\n\"乾一組\": \"乾一组\",\n\"乾一组\": \"乾一组\",\n\"乾上乾下\": \"乾上乾下\",\n\"乾东\": \"乾东\",\n\"乾为天\": \"乾为天\",\n\"乾为阳\": \"乾为阳\",\n\"乾九\": \"乾九\",\n\"乾乾\": \"乾乾\",\n\"乾乾淨淨\": \"干干净净\",\n\"乾乾脆脆\": \"干干脆脆\",\n\"乾亨\": \"乾亨\",\n\"乾仪\": \"乾仪\",\n\"乾位\": \"乾位\",\n\"乾健\": \"乾健\",\n\"乾健也\": \"乾健也\",\n\"乾儀\": \"乾仪\",\n\"乾元\": \"乾元\",\n\"乾光\": \"乾光\",\n\"乾兴\": \"乾兴\",\n\"乾冈\": \"乾冈\",\n\"乾刘\": \"乾刘\",\n\"乾刚\": \"乾刚\",\n\"乾剛\": \"乾刚\",\n\"乾劉\": \"乾刘\",\n\"乾务\": \"乾务\",\n\"乾務\": \"乾务\",\n\"乾化\": \"乾化\",\n\"乾卦\": \"乾卦\",\n\"乾县\": \"乾县\",\n\"乾台\": \"乾台\",\n\"乾吉\": \"乾吉\",\n\"乾启\": \"乾启\",\n\"乾命\": \"乾命\",\n\"乾和\": \"乾和\",\n\"乾啟\": \"乾启\",\n\"乾嘉\": \"乾嘉\",\n\"乾图\": \"乾图\",\n\"乾圖\": \"乾图\",\n\"乾坤\": \"乾坤\",\n\"乾城\": \"乾城\",\n\"乾基\": \"乾基\",\n\"乾天也\": \"乾天也\",\n\"乾始\": \"乾始\",\n\"乾姓\": \"乾姓\",\n\"乾宁\": \"乾宁\",\n\"乾宅\": \"乾宅\",\n\"乾宇\": \"乾宇\",\n\"乾安\": \"乾安\",\n\"乾定\": \"乾定\",\n\"乾寧\": \"乾宁\",\n\"乾封\": \"乾封\",\n\"乾居\": \"乾居\",\n\"乾岗\": \"乾岗\",\n\"乾岡\": \"乾冈\",\n\"乾崗\": \"乾岗\",\n\"乾巛\": \"乾巛\",\n\"乾州\": \"乾州\",\n\"乾录\": \"乾录\",\n\"乾律\": \"乾律\",\n\"乾德\": \"乾德\",\n\"乾心\": \"乾心\",\n\"乾忠\": \"乾忠\",\n\"乾文\": \"乾文\",\n\"乾断\": \"乾断\",\n\"乾斷\": \"乾断\",\n\"乾方\": \"乾方\",\n\"乾施\": \"乾施\",\n\"乾旦\": \"乾旦\",\n\"乾明\": \"乾明\",\n\"乾昧\": \"乾昧\",\n\"乾晖\": \"乾晖\",\n\"乾景\": \"乾景\",\n\"乾晷\": \"乾晷\",\n\"乾暉\": \"乾晖\",\n\"乾曜\": \"乾曜\",\n\"乾東\": \"乾东\",\n\"乾构\": \"乾构\",\n\"乾枢\": \"乾枢\",\n\"乾栋\": \"乾栋\",\n\"乾棟\": \"乾栋\",\n\"乾構\": \"乾构\",\n\"乾樞\": \"乾枢\",\n\"乾步\": \"乾步\",\n\"乾氏\": \"乾氏\",\n\"乾沓和\": \"乾沓和\",\n\"乾沓婆\": \"乾沓婆\",\n\"乾泉\": \"乾泉\",\n\"乾泉水\": \"干泉水\",\n\"乾淳\": \"乾淳\",\n\"乾清\": \"乾清\",\n\"乾渥\": \"乾渥\",\n\"乾潭\": \"乾潭\",\n\"乾灵\": \"乾灵\",\n\"乾為天\": \"乾为天\",\n\"乾為陽\": \"乾为阳\",\n\"乾生元\": \"乾生元\",\n\"乾男\": \"乾男\",\n\"乾皋\": \"乾皋\",\n\"乾盛世\": \"乾盛世\",\n\"乾矢\": \"乾矢\",\n\"乾祐\": \"乾祐\",\n\"乾神\": \"乾神\",\n\"乾穹\": \"乾穹\",\n\"乾窦\": \"乾窦\",\n\"乾竇\": \"乾窦\",\n\"乾竺\": \"乾竺\",\n\"乾笃\": \"乾笃\",\n\"乾符\": \"乾符\",\n\"乾策\": \"乾策\",\n\"乾篤\": \"乾笃\",\n\"乾精\": \"乾精\",\n\"乾紅\": \"乾红\",\n\"乾紐\": \"乾纽\",\n\"乾絡\": \"乾络\",\n\"乾統\": \"乾统\",\n\"乾維\": \"乾维\",\n\"乾綱\": \"乾纲\",\n\"乾縣\": \"乾县\",\n\"乾红\": \"乾红\",\n\"乾纲\": \"乾纲\",\n\"乾纽\": \"乾纽\",\n\"乾络\": \"乾络\",\n\"乾统\": \"乾统\",\n\"乾维\": \"乾维\",\n\"乾罗\": \"乾罗\",\n\"乾羅\": \"乾罗\",\n\"乾興\": \"乾兴\",\n\"乾花\": \"乾花\",\n\"乾荫\": \"乾荫\",\n\"乾蔭\": \"乾荫\",\n\"乾行\": \"乾行\",\n\"乾衡\": \"乾衡\",\n\"乾西\": \"乾西\",\n\"乾覆\": \"乾覆\",\n\"乾象\": \"乾象\",\n\"乾象历\": \"乾象历\",\n\"乾象歷\": \"乾象历\",\n\"乾貞\": \"乾贞\",\n\"乾貴士\": \"乾贵士\",\n\"乾貺\": \"乾贶\",\n\"乾贞\": \"乾贞\",\n\"乾贵士\": \"乾贵士\",\n\"乾贶\": \"乾贶\",\n\"乾車\": \"乾车\",\n\"乾軸\": \"乾轴\",\n\"乾车\": \"乾车\",\n\"乾轴\": \"乾轴\",\n\"乾通\": \"乾通\",\n\"乾造\": \"乾造\",\n\"乾道\": \"乾道\",\n\"乾鈞\": \"乾钧\",\n\"乾鉴\": \"乾鉴\",\n\"乾錄\": \"乾录\",\n\"乾鑒\": \"乾鉴\",\n\"乾钧\": \"乾钧\",\n\"乾闥\": \"乾闼\",\n\"乾闼\": \"乾闼\",\n\"乾陀\": \"乾陀\",\n\"乾陵\": \"乾陵\",\n\"乾隆\": \"乾隆\",\n\"乾靈\": \"乾灵\",\n\"乾音\": \"乾音\",\n\"乾顧\": \"乾顾\",\n\"乾顺\": \"乾顺\",\n\"乾顾\": \"乾顾\",\n\"乾風\": \"乾风\",\n\"乾风\": \"乾风\",\n\"乾首\": \"乾首\",\n\"乾馬\": \"乾马\",\n\"乾马\": \"乾马\",\n\"乾鵠\": \"乾鹄\",\n\"乾鵲\": \"乾鹊\",\n\"乾鹄\": \"乾鹄\",\n\"乾鹊\": \"乾鹊\",\n\"乾龍\": \"乾龙\",\n\"乾龙\": \"乾龙\",\n\"乾，健也\": \"乾，健也\",\n\"乾，天也\": \"乾，天也\",\n\"亁\": \"干\",\n\"亂\": \"乱\",\n\"五箇山\": \"五箇山\",\n\"亙\": \"亘\",\n\"亝\": \"斋\",\n\"亞\": \"亚\",\n\"亱\": \"夜\",\n\"亷\": \"廉\",\n\"亾\": \"亡\",\n\"仇讎\": \"仇雠\",\n\"以微知著\": \"以微知著\",\n\"仰屋著書\": \"仰屋著书\",\n\"伊東豊雄\": \"伊东丰雄\",\n\"佇\": \"伫\",\n\"佈\": \"布\",\n\"佔\": \"占\",\n\"何光暐\": \"何光暐\",\n\"佛頭著糞\": \"佛头著粪\",\n\"併\": \"并\",\n\"來\": \"来\",\n\"侖\": \"仑\",\n\"侶\": \"侣\",\n\"侷\": \"局\",\n\"侷促\": \"局促\",\n\"侷限\": \"局限\",\n\"俁\": \"俣\",\n\"係\": \"系\",\n\"俓\": \"𠇹\",\n\"俔\": \"伣\",\n\"俠\": \"侠\",\n\"俥\": \"伡\",\n\"俬\": \"私\",\n\"俻\": \"备\",\n\"倀\": \"伥\",\n\"倆\": \"俩\",\n\"倈\": \"俫\",\n\"倉\": \"仓\",\n\"個\": \"个\",\n\"倐\": \"倏\",\n\"們\": \"们\",\n\"倖\": \"幸\",\n\"倖一郎\": \"倖一郎\",\n\"倖田\": \"倖田\",\n\"候覆\": \"候复\",\n\"倣\": \"仿\",\n\"倫\": \"伦\",\n\"倲\": \"㑈\",\n\"倸\": \"睬\",\n\"偉\": \"伟\",\n\"偑\": \"㐽\",\n\"側\": \"侧\",\n\"偵\": \"侦\",\n\"偵蒐\": \"侦搜\",\n\"偽\": \"伪\",\n\"傌\": \"㐷\",\n\"傑\": \"杰\",\n\"傒倖\": \"傒倖\",\n\"傖\": \"伧\",\n\"傘\": \"伞\",\n\"備\": \"备\",\n\"傚\": \"效\",\n\"傢\": \"家\",\n\"傭\": \"佣\",\n\"傯\": \"偬\",\n\"傳\": \"传\",\n\"傴\": \"伛\",\n\"債\": \"债\",\n\"傷\": \"伤\",\n\"傾\": \"倾\",\n\"僂\": \"偻\",\n\"僅\": \"仅\",\n\"僉\": \"佥\",\n\"僊\": \"仙\",\n\"働\": \"动\",\n\"僑\": \"侨\",\n\"僕\": \"仆\",\n\"僞\": \"伪\",\n\"僤\": \"𫢸\",\n\"僥\": \"侥\",\n\"僨\": \"偾\",\n\"僱\": \"雇\",\n\"價\": \"价\",\n\"儀\": \"仪\",\n\"儁\": \"俊\",\n\"儂\": \"侬\",\n\"億\": \"亿\",\n\"儈\": \"侩\",\n\"儉\": \"俭\",\n\"儌\": \"侥\",\n\"儎\": \"傤\",\n\"儐\": \"傧\",\n\"儔\": \"俦\",\n\"儕\": \"侪\",\n\"儘\": \"尽\",\n\"償\": \"偿\",\n\"儣\": \"𠆲\",\n\"優\": \"优\",\n\"儭\": \"𠋆\",\n\"儲\": \"储\",\n\"儷\": \"俪\",\n\"儸\": \"㑩\",\n\"儺\": \"傩\",\n\"儻\": \"傥\",\n\"儼\": \"俨\",\n\"兇\": \"凶\",\n\"先名後姓\": \"先名后姓\",\n\"兌\": \"兑\",\n\"兎\": \"兔\",\n\"兒\": \"儿\",\n\"兒宽\": \"兒宽\",\n\"兒寬\": \"兒宽\",\n\"兗\": \"兖\",\n\"兠\": \"兜\",\n\"內\": \"内\",\n\"內聯陞\": \"内联升\",\n\"兩\": \"两\",\n\"六么\": \"六幺\",\n\"冄\": \"冉\",\n\"冊\": \"册\",\n\"冐\": \"冒\",\n\"冑\": \"胄\",\n\"冪\": \"幂\",\n\"冺\": \"泯\",\n\"凈\": \"净\",\n\"凍\": \"冻\",\n\"凙\": \"𪞝\",\n\"凜\": \"凛\",\n\"凢\": \"凡\",\n\"凱\": \"凯\",\n\"凴\": \"凭\",\n\"初昇\": \"初升\",\n\"別\": \"别\",\n\"刦\": \"劫\",\n\"刧\": \"劫\",\n\"利欲薰心\": \"利欲薰心\",\n\"刪\": \"删\",\n\"刼\": \"劫\",\n\"剄\": \"刭\",\n\"則\": \"则\",\n\"剉\": \"锉\",\n\"剋\": \"克\",\n\"剋了\": \"剋了\",\n\"剋架\": \"剋架\",\n\"剎\": \"刹\",\n\"剏\": \"创\",\n\"剖釐\": \"剖厘\",\n\"剗\": \"刬\",\n\"剙\": \"创\",\n\"剛\": \"刚\",\n\"剝\": \"剥\",\n\"剮\": \"剐\",\n\"剳\": \"札\",\n\"剴\": \"剀\",\n\"創\": \"创\",\n\"剷\": \"铲\",\n\"剹\": \"戮\",\n\"剾\": \"𠛅\",\n\"劃\": \"划\",\n\"劄\": \"札\",\n\"劇\": \"剧\",\n\"劉\": \"刘\",\n\"劊\": \"刽\",\n\"劌\": \"刿\",\n\"劍\": \"剑\",\n\"劏\": \"㓥\",\n\"劑\": \"剂\",\n\"劒\": \"剑\",\n\"劚\": \"㔉\",\n\"効\": \"效\",\n\"勁\": \"劲\",\n\"勅\": \"敕\",\n\"勌\": \"倦\",\n\"勑\": \"𠡠\",\n\"動\": \"动\",\n\"務\": \"务\",\n\"勛\": \"勋\",\n\"勝\": \"胜\",\n\"勞\": \"劳\",\n\"勢\": \"势\",\n\"勣\": \"𪟝\",\n\"勦\": \"剿\",\n\"勩\": \"勚\",\n\"勱\": \"劢\",\n\"勳\": \"勋\",\n\"勵\": \"励\",\n\"勸\": \"劝\",\n\"勻\": \"匀\",\n\"匟\": \"炕\",\n\"匭\": \"匦\",\n\"匯\": \"汇\",\n\"匱\": \"匮\",\n\"匲\": \"奁\",\n\"匳\": \"奁\",\n\"區\": \"区\",\n\"卓著\": \"卓著\",\n\"協\": \"协\",\n\"博和託\": \"博和讬\",\n\"卹\": \"恤\",\n\"卻\": \"却\",\n\"卽\": \"即\",\n\"厀\": \"膝\",\n\"厙\": \"厍\",\n\"原著\": \"原著\",\n\"厠\": \"厕\",\n\"厤\": \"历\",\n\"厭\": \"厌\",\n\"厰\": \"厂\",\n\"厲\": \"厉\",\n\"厴\": \"厣\",\n\"參\": \"参\",\n\"叄\": \"叁\",\n\"又陞\": \"又升\",\n\"反反覆覆\": \"反反复复\",\n\"反覆\": \"反复\",\n\"叢\": \"丛\",\n\"可穿著\": \"可穿著\",\n\"吃衣著飯\": \"吃衣著饭\",\n\"合著\": \"合著\",\n\"同陞和\": \"同升和\",\n\"名著\": \"名著\",\n\"吒\": \"咤\",\n\"吚\": \"咿\",\n\"吳\": \"吴\",\n\"吳克羣\": \"吴克羣\",\n\"吴克羣\": \"吴克羣\",\n\"吶\": \"呐\",\n\"呂\": \"吕\",\n\"呌\": \"叫\",\n\"周易乾\": \"周易乾\",\n\"呪\": \"咒\",\n\"咊\": \"和\",\n\"咼\": \"呙\",\n\"員\": \"员\",\n\"哯\": \"𠯟\",\n\"哶\": \"咩\",\n\"唄\": \"呗\",\n\"唓\": \"𪠳\",\n\"唕\": \"唣\",\n\"唘\": \"启\",\n\"唚\": \"吣\",\n\"唸\": \"念\",\n\"啎\": \"忤\",\n\"問\": \"问\",\n\"啑\": \"喋\",\n\"啓\": \"启\",\n\"啗\": \"啖\",\n\"啞\": \"哑\",\n\"啟\": \"启\",\n\"啢\": \"唡\",\n\"啣\": \"衔\",\n\"喎\": \"㖞\",\n\"喚\": \"唤\",\n\"喪\": \"丧\",\n\"喫\": \"吃\",\n\"喬\": \"乔\",\n\"單\": \"单\",\n\"喲\": \"哟\",\n\"嗁\": \"啼\",\n\"嗆\": \"呛\",\n\"嗇\": \"啬\",\n\"嗊\": \"唝\",\n\"嗎\": \"吗\",\n\"嗚\": \"呜\",\n\"嗩\": \"唢\",\n\"嗰\": \"𠮶\",\n\"嗶\": \"哔\",\n\"嗹\": \"𪡏\",\n\"嘆\": \"叹\",\n\"嘍\": \"喽\",\n\"嘑\": \"呼\",\n\"嘓\": \"啯\",\n\"嘔\": \"呕\",\n\"嘖\": \"啧\",\n\"嘗\": \"尝\",\n\"嘜\": \"唛\",\n\"嘠\": \"嘎\",\n\"嘩\": \"哗\",\n\"嘪\": \"𪡃\",\n\"嘮\": \"唠\",\n\"嘯\": \"啸\",\n\"嘰\": \"叽\",\n\"嘳\": \"𪡞\",\n\"嘵\": \"哓\",\n\"嘷\": \"嗥\",\n\"嘸\": \"呒\",\n\"嘺\": \"𪡀\",\n\"嘽\": \"啴\",\n\"噁\": \"恶\",\n\"噁心\": \"恶心\",\n\"噅\": \"𠯠\",\n\"噉\": \"啖\",\n\"噓\": \"嘘\",\n\"噚\": \"㖊\",\n\"噝\": \"咝\",\n\"噞\": \"𪡋\",\n\"噠\": \"哒\",\n\"噥\": \"哝\",\n\"噦\": \"哕\",\n\"噯\": \"嗳\",\n\"噲\": \"哙\",\n\"噴\": \"喷\",\n\"噸\": \"吨\",\n\"噹\": \"当\",\n\"嚀\": \"咛\",\n\"嚇\": \"吓\",\n\"嚌\": \"哜\",\n\"嚐\": \"尝\",\n\"嚕\": \"噜\",\n\"嚙\": \"啮\",\n\"嚛\": \"𪠸\",\n\"嚥\": \"咽\",\n\"嚦\": \"呖\",\n\"嚧\": \"𠰷\",\n\"嚨\": \"咙\",\n\"嚮\": \"向\",\n\"嚲\": \"亸\",\n\"嚳\": \"喾\",\n\"嚴\": \"严\",\n\"嚶\": \"嘤\",\n\"嚽\": \"𪢕\",\n\"囀\": \"啭\",\n\"囁\": \"嗫\",\n\"囂\": \"嚣\",\n\"囃\": \"𠱞\",\n\"囅\": \"冁\",\n\"囈\": \"呓\",\n\"囉\": \"啰\",\n\"囌\": \"苏\",\n\"囑\": \"嘱\",\n\"囒\": \"𪢠\",\n\"囓\": \"啮\",\n\"囙\": \"因\",\n\"回覆\": \"回复\",\n\"囪\": \"囱\",\n\"圅\": \"函\",\n\"圇\": \"囵\",\n\"國\": \"国\",\n\"圍\": \"围\",\n\"園\": \"园\",\n\"圓\": \"圆\",\n\"圖\": \"图\",\n\"團\": \"团\",\n\"圞\": \"𪢮\",\n\"土著\": \"土著\",\n\"坤乾\": \"坤乾\",\n\"坿\": \"附\",\n\"垜\": \"垛\",\n\"垵\": \"埯\",\n\"垻\": \"坝\",\n\"埡\": \"垭\",\n\"埨\": \"𫭢\",\n\"埬\": \"𪣆\",\n\"埰\": \"采\",\n\"執\": \"执\",\n\"執著\": \"执著\",\n\"堅\": \"坚\",\n\"堊\": \"垩\",\n\"堖\": \"垴\",\n\"堚\": \"𪣒\",\n\"堝\": \"埚\",\n\"堯\": \"尧\",\n\"報\": \"报\",\n\"場\": \"场\",\n\"塊\": \"块\",\n\"塋\": \"茔\",\n\"塏\": \"垲\",\n\"塒\": \"埘\",\n\"塗\": \"涂\",\n\"塚\": \"冢\",\n\"塟\": \"葬\",\n\"塢\": \"坞\",\n\"塤\": \"埙\",\n\"塲\": \"场\",\n\"塵\": \"尘\",\n\"塸\": \"𫭟\",\n\"塹\": \"堑\",\n\"塿\": \"𪣻\",\n\"墊\": \"垫\",\n\"墖\": \"塔\",\n\"墜\": \"坠\",\n\"墠\": \"𫮃\",\n\"墨瀋\": \"墨渖\",\n\"墮\": \"堕\",\n\"墰\": \"坛\",\n\"墲\": \"𪢸\",\n\"墳\": \"坟\",\n\"墶\": \"垯\",\n\"墻\": \"墙\",\n\"墾\": \"垦\",\n\"壇\": \"坛\",\n\"壈\": \"𡒄\",\n\"壋\": \"垱\",\n\"壎\": \"埙\",\n\"壓\": \"压\",\n\"壗\": \"𡋤\",\n\"壘\": \"垒\",\n\"壙\": \"圹\",\n\"壚\": \"垆\",\n\"壜\": \"坛\",\n\"壞\": \"坏\",\n\"壟\": \"垄\",\n\"壠\": \"垅\",\n\"壢\": \"坜\",\n\"壣\": \"𪤚\",\n\"壩\": \"坝\",\n\"壪\": \"塆\",\n\"壯\": \"壮\",\n\"壺\": \"壶\",\n\"壻\": \"婿\",\n\"壼\": \"壸\",\n\"壽\": \"寿\",\n\"夘\": \"卯\",\n\"夠\": \"够\",\n\"夢\": \"梦\",\n\"夥\": \"伙\",\n\"夥計\": \"伙计\",\n\"大麴\": \"大曲\",\n\"天道为乾\": \"天道为乾\",\n\"天道為乾\": \"天道为乾\",\n\"夾\": \"夹\",\n\"奐\": \"奂\",\n\"奧\": \"奥\",\n\"奧區\": \"奧区\",\n\"奩\": \"奁\",\n\"奪\": \"夺\",\n\"奬\": \"奖\",\n\"奮\": \"奋\",\n\"奼\": \"姹\",\n\"如瀋\": \"如渖\",\n\"妝\": \"妆\",\n\"妬\": \"妒\",\n\"妳\": \"你\",\n\"妷\": \"侄\",\n\"姉\": \"姊\",\n\"姍\": \"姗\",\n\"姓么\": \"姓幺\",\n\"姙\": \"妊\",\n\"姦\": \"奸\",\n\"姪\": \"侄\",\n\"姸\": \"妍\",\n\"娙\": \"𫰛\",\n\"娛\": \"娱\",\n\"婁\": \"娄\",\n\"婡\": \"𫝫\",\n\"婣\": \"姻\",\n\"婦\": \"妇\",\n\"婬\": \"淫\",\n\"婭\": \"娅\",\n\"媈\": \"𫝨\",\n\"媍\": \"妇\",\n\"媧\": \"娲\",\n\"媯\": \"妫\",\n\"媰\": \"㛀\",\n\"媼\": \"媪\",\n\"媽\": \"妈\",\n\"媿\": \"愧\",\n\"嫋\": \"袅\",\n\"嫗\": \"妪\",\n\"嫰\": \"嫩\",\n\"嫵\": \"妩\",\n\"嫺\": \"娴\",\n\"嫻\": \"娴\",\n\"嫿\": \"婳\",\n\"嬀\": \"妫\",\n\"嬃\": \"媭\",\n\"嬇\": \"𫝬\",\n\"嬈\": \"娆\",\n\"嬋\": \"婵\",\n\"嬌\": \"娇\",\n\"嬙\": \"嫱\",\n\"嬝\": \"袅\",\n\"嬡\": \"嫒\",\n\"嬣\": \"𪥰\",\n\"嬤\": \"嬷\",\n\"嬦\": \"𫝩\",\n\"嬪\": \"嫔\",\n\"嬭\": \"奶\",\n\"嬰\": \"婴\",\n\"嬸\": \"婶\",\n\"嬻\": \"𪥿\",\n\"嬾\": \"懒\",\n\"孃\": \"娘\",\n\"孄\": \"𫝮\",\n\"孆\": \"𫝭\",\n\"孇\": \"𪥫\",\n\"孋\": \"㛤\",\n\"孌\": \"娈\",\n\"孎\": \"𡠟\",\n\"子餘\": \"子馀\",\n\"字乾生\": \"字乾生\",\n\"孙乾\": \"孙乾\",\n\"孫\": \"孙\",\n\"孫乾\": \"孙乾\",\n\"學\": \"学\",\n\"孻\": \"𡥧\",\n\"孼\": \"孽\",\n\"孾\": \"𪧀\",\n\"孿\": \"孪\",\n\"宂\": \"冗\",\n\"宏碁\": \"宏碁\",\n\"官陞\": \"官升\",\n\"宮\": \"宫\",\n\"寀\": \"采\",\n\"寃\": \"冤\",\n\"寑\": \"寝\",\n\"寠\": \"𪧘\",\n\"寢\": \"寝\",\n\"實\": \"实\",\n\"寧\": \"宁\",\n\"審\": \"审\",\n\"寫\": \"写\",\n\"寬\": \"宽\",\n\"寳\": \"宝\",\n\"寵\": \"宠\",\n\"寶\": \"宝\",\n\"尅\": \"克\",\n\"將\": \"将\",\n\"將軍抽俥\": \"将军抽俥\",\n\"將軍抽車\": \"将军抽車\",\n\"專\": \"专\",\n\"專著\": \"专著\",\n\"尋\": \"寻\",\n\"尋陞\": \"寻升\",\n\"對\": \"对\",\n\"導\": \"导\",\n\"尒\": \"尔\",\n\"尙\": \"尚\",\n\"尟\": \"鲜\",\n\"尠\": \"鲜\",\n\"尷\": \"尴\",\n\"尼乾陀\": \"尼乾陀\",\n\"屆\": \"届\",\n\"屍\": \"尸\",\n\"屓\": \"屃\",\n\"屛\": \"屏\",\n\"屜\": \"屉\",\n\"屢\": \"屡\",\n\"層\": \"层\",\n\"屨\": \"屦\",\n\"屩\": \"𪨗\",\n\"屬\": \"属\",\n\"屭\": \"屃\",\n\"山崎闇斋\": \"山崎闇斋\",\n\"山崎闇齋\": \"山崎闇斋\",\n\"岅\": \"坂\",\n\"岡\": \"冈\",\n\"岳託\": \"岳讬\",\n\"峝\": \"峒\",\n\"峯\": \"峰\",\n\"峯會\": \"峰会\",\n\"峴\": \"岘\",\n\"島\": \"岛\",\n\"峽\": \"峡\",\n\"崍\": \"崃\",\n\"崑\": \"昆\",\n\"崑劇\": \"昆剧\",\n\"崑山\": \"昆山\",\n\"崑岡\": \"昆冈\",\n\"崑崙\": \"昆仑\",\n\"崑嵛\": \"昆嵛\",\n\"崑承湖\": \"昆承湖\",\n\"崑曲\": \"昆曲\",\n\"崑腔\": \"昆腔\",\n\"崑蘇\": \"昆苏\",\n\"崑調\": \"昆调\",\n\"崗\": \"岗\",\n\"崙\": \"仑\",\n\"崢\": \"峥\",\n\"崬\": \"岽\",\n\"嵐\": \"岚\",\n\"嵗\": \"岁\",\n\"嵼\": \"𡶴\",\n\"嵽\": \"𫶇\",\n\"嵾\": \"㟥\",\n\"嶁\": \"嵝\",\n\"嶃\": \"崭\",\n\"嶄\": \"崭\",\n\"嶇\": \"岖\",\n\"嶈\": \"𡺃\",\n\"嶔\": \"嵚\",\n\"嶗\": \"崂\",\n\"嶘\": \"𡺄\",\n\"嶠\": \"峤\",\n\"嶢\": \"峣\",\n\"嶧\": \"峄\",\n\"嶨\": \"峃\",\n\"嶮\": \"崄\",\n\"嶴\": \"岙\",\n\"嶸\": \"嵘\",\n\"嶹\": \"𫝵\",\n\"嶺\": \"岭\",\n\"嶼\": \"屿\",\n\"嶽\": \"岳\",\n\"巊\": \"𪩎\",\n\"巋\": \"岿\",\n\"巒\": \"峦\",\n\"巔\": \"巅\",\n\"巔峯\": \"巅峰\",\n\"巖\": \"岩\",\n\"巗\": \"𪨷\",\n\"巘\": \"𪩘\",\n\"巠\": \"𢀖\",\n\"巨著\": \"巨著\",\n\"巰\": \"巯\",\n\"巵\": \"卮\",\n\"巹\": \"卺\",\n\"帀\": \"匝\",\n\"帋\": \"纸\",\n\"帥\": \"帅\",\n\"師\": \"师\",\n\"帬\": \"裙\",\n\"帳\": \"帐\",\n\"帶\": \"带\",\n\"幀\": \"帧\",\n\"幃\": \"帏\",\n\"幇\": \"帮\",\n\"幑\": \"徽\",\n\"幓\": \"㡎\",\n\"幗\": \"帼\",\n\"幘\": \"帻\",\n\"幙\": \"幕\",\n\"幚\": \"帮\",\n\"幝\": \"𪩷\",\n\"幟\": \"帜\",\n\"幣\": \"币\",\n\"幩\": \"𪩸\",\n\"幫\": \"帮\",\n\"幬\": \"帱\",\n\"年陞\": \"年升\",\n\"幹\": \"干\",\n\"幺麽\": \"幺麽\",\n\"幾\": \"几\",\n\"庫\": \"库\",\n\"康乾\": \"康乾\",\n\"庻\": \"庶\",\n\"庽\": \"寓\",\n\"廁\": \"厕\",\n\"廂\": \"厢\",\n\"廄\": \"厩\",\n\"廈\": \"厦\",\n\"廎\": \"庼\",\n\"廐\": \"厩\",\n\"廕\": \"荫\",\n\"廚\": \"厨\",\n\"廝\": \"厮\",\n\"廞\": \"𫷷\",\n\"廟\": \"庙\",\n\"廠\": \"厂\",\n\"廡\": \"庑\",\n\"廢\": \"废\",\n\"廣\": \"广\",\n\"廧\": \"𪪞\",\n\"廩\": \"廪\",\n\"廬\": \"庐\",\n\"廳\": \"厅\",\n\"廵\": \"巡\",\n\"廹\": \"迫\",\n\"廻\": \"回\",\n\"弒\": \"弑\",\n\"弔\": \"吊\",\n\"张法乾\": \"张法乾\",\n\"弳\": \"弪\",\n\"張\": \"张\",\n\"張法乾\": \"张法乾\",\n\"強\": \"强\",\n\"彃\": \"𪪼\",\n\"彄\": \"𫸩\",\n\"彆\": \"别\",\n\"彈\": \"弹\",\n\"彌\": \"弥\",\n\"彎\": \"弯\",\n\"彔\": \"录\",\n\"彙\": \"汇\",\n\"彞\": \"彝\",\n\"彠\": \"彟\",\n\"彥\": \"彦\",\n\"彫\": \"雕\",\n\"彰明較著\": \"彰明较著\",\n\"彲\": \"彨\",\n\"彷彿\": \"仿佛\",\n\"彿\": \"佛\",\n\"徃\": \"往\",\n\"待覆\": \"待复\",\n\"後\": \"后\",\n\"後姓\": \"後姓\",\n\"徑\": \"径\",\n\"從\": \"从\",\n\"徠\": \"徕\",\n\"徧\": \"遍\",\n\"復\": \"复\",\n\"復甦\": \"复苏\",\n\"徵\": \"征\",\n\"徹\": \"彻\",\n\"徿\": \"𪫌\",\n\"怱\": \"匆\",\n\"怳\": \"恍\",\n\"恆\": \"恒\",\n\"恠\": \"怪\",\n\"恡\": \"吝\",\n\"恥\": \"耻\",\n\"恩威並著\": \"恩威并著\",\n\"悅\": \"悦\",\n\"悞\": \"悮\",\n\"悤\": \"匆\",\n\"悵\": \"怅\",\n\"悶\": \"闷\",\n\"悽\": \"凄\",\n\"情蒐\": \"情搜\",\n\"情鍾\": \"情钟\",\n\"惏\": \"婪\",\n\"惏悷\": \"惏悷\",\n\"惏慄\": \"惏慄\",\n\"惡\": \"恶\",\n\"惥\": \"恿\",\n\"惱\": \"恼\",\n\"惲\": \"恽\",\n\"惷\": \"蠢\",\n\"惻\": \"恻\",\n\"愛\": \"爱\",\n\"愜\": \"惬\",\n\"愨\": \"悫\",\n\"愴\": \"怆\",\n\"愷\": \"恺\",\n\"愻\": \"𢙏\",\n\"愽\": \"博\",\n\"愾\": \"忾\",\n\"慄\": \"栗\",\n\"慇勤\": \"殷勤\",\n\"慇懃\": \"殷勤\",\n\"態\": \"态\",\n\"慍\": \"愠\",\n\"慘\": \"惨\",\n\"慘澹\": \"惨淡\",\n\"慙\": \"惭\",\n\"慚\": \"惭\",\n\"慟\": \"恸\",\n\"慣\": \"惯\",\n\"慤\": \"悫\",\n\"慪\": \"怄\",\n\"慫\": \"怂\",\n\"慫慂\": \"怂恿\",\n\"慮\": \"虑\",\n\"慳\": \"悭\",\n\"慴\": \"慑\",\n\"慶\": \"庆\",\n\"慶餘\": \"庆馀\",\n\"慺\": \"㥪\",\n\"慼\": \"戚\",\n\"慽\": \"戚\",\n\"慾\": \"欲\",\n\"憂\": \"忧\",\n\"憇\": \"憩\",\n\"憊\": \"惫\",\n\"憐\": \"怜\",\n\"憑\": \"凭\",\n\"憑藉\": \"凭借\",\n\"憒\": \"愦\",\n\"憖\": \"慭\",\n\"憚\": \"惮\",\n\"憢\": \"𢙒\",\n\"憤\": \"愤\",\n\"憫\": \"悯\",\n\"憮\": \"怃\",\n\"憲\": \"宪\",\n\"憶\": \"忆\",\n\"憸\": \"𪫺\",\n\"憹\": \"𢙐\",\n\"懀\": \"𢙓\",\n\"懇\": \"恳\",\n\"應\": \"应\",\n\"懌\": \"怿\",\n\"懍\": \"懔\",\n\"懎\": \"𢠁\",\n\"懞\": \"蒙\",\n\"懟\": \"怼\",\n\"懣\": \"懑\",\n\"懤\": \"㤽\",\n\"懨\": \"恹\",\n\"懲\": \"惩\",\n\"懶\": \"懒\",\n\"懷\": \"怀\",\n\"懸\": \"悬\",\n\"懺\": \"忏\",\n\"懼\": \"惧\",\n\"懾\": \"慑\",\n\"戀\": \"恋\",\n\"戇\": \"戆\",\n\"成效顯著\": \"成效显著\",\n\"成績顯著\": \"成绩显著\",\n\"戔\": \"戋\",\n\"戞\": \"戛\",\n\"戧\": \"戗\",\n\"戩\": \"戬\",\n\"戯\": \"戏\",\n\"戰\": \"战\",\n\"戱\": \"戯\",\n\"戲\": \"戏\",\n\"戶\": \"户\",\n\"戹\": \"厄\",\n\"所鍾\": \"所钟\",\n\"手鍊\": \"手链\",\n\"扞\": \"捍\",\n\"扞格\": \"扞格\",\n\"批覆\": \"批复\",\n\"承乾\": \"承乾\",\n\"抝\": \"拗\",\n\"拉鍊\": \"拉链\",\n\"拋\": \"抛\",\n\"拙著\": \"拙著\",\n\"拚\": \"拼\",\n\"拚却\": \"拚却\",\n\"拚卻\": \"拚却\",\n\"拚弃\": \"拚弃\",\n\"拚棄\": \"拚弃\",\n\"拚生尽死\": \"拚生尽死\",\n\"拚生盡死\": \"拚生尽死\",\n\"拾瀋\": \"拾渖\",\n\"挨剋\": \"挨剋\",\n\"挩\": \"捝\",\n\"挱\": \"挲\",\n\"挵\": \"弄\",\n\"挾\": \"挟\",\n\"捄\": \"救\",\n\"捨\": \"舍\",\n\"捫\": \"扪\",\n\"捱\": \"挨\",\n\"捲\": \"卷\",\n\"掃\": \"扫\",\n\"掄\": \"抡\",\n\"掆\": \"㧏\",\n\"掗\": \"挜\",\n\"掙\": \"挣\",\n\"掚\": \"𪭵\",\n\"掛\": \"挂\",\n\"採\": \"采\",\n\"掽\": \"碰\",\n\"揀\": \"拣\",\n\"提昇\": \"提升\",\n\"揑\": \"捏\",\n\"揚\": \"扬\",\n\"換\": \"换\",\n\"揫\": \"揪\",\n\"揮\": \"挥\",\n\"揯\": \"搄\",\n\"揷\": \"插\",\n\"揹\": \"背\",\n\"搆\": \"构\",\n\"搇\": \"揿\",\n\"搉\": \"榷\",\n\"損\": \"损\",\n\"搖\": \"摇\",\n\"搗\": \"捣\",\n\"搤\": \"扼\",\n\"搥\": \"捶\",\n\"搥打\": \"搥打\",\n\"搥胸頓足\": \"搥胸顿足\",\n\"搨\": \"拓\",\n\"搯\": \"掏\",\n\"搵\": \"揾\",\n\"搶\": \"抢\",\n\"搾\": \"榨\",\n\"摃\": \"扛\",\n\"摋\": \"𢫬\",\n\"摐\": \"𪭢\",\n\"摑\": \"掴\",\n\"摜\": \"掼\",\n\"摟\": \"搂\",\n\"摯\": \"挚\",\n\"摳\": \"抠\",\n\"摶\": \"抟\",\n\"摺\": \"折\",\n\"摻\": \"掺\",\n\"撈\": \"捞\",\n\"撊\": \"𪭾\",\n\"撏\": \"挦\",\n\"撐\": \"撑\",\n\"撓\": \"挠\",\n\"撝\": \"㧑\",\n\"撟\": \"挢\",\n\"撡\": \"操\",\n\"撣\": \"掸\",\n\"撥\": \"拨\",\n\"撦\": \"扯\",\n\"撧\": \"𪮖\",\n\"撫\": \"抚\",\n\"撰著\": \"撰著\",\n\"撲\": \"扑\",\n\"撳\": \"揿\",\n\"撻\": \"挞\",\n\"撾\": \"挝\",\n\"撿\": \"捡\",\n\"擁\": \"拥\",\n\"擄\": \"掳\",\n\"擇\": \"择\",\n\"擊\": \"击\",\n\"擋\": \"挡\",\n\"擓\": \"㧟\",\n\"擔\": \"担\",\n\"擕\": \"携\",\n\"據\": \"据\",\n\"擟\": \"𪭧\",\n\"擠\": \"挤\",\n\"擡\": \"抬\",\n\"擣\": \"𢭏\",\n\"擧\": \"举\",\n\"擫\": \"𢬍\",\n\"擬\": \"拟\",\n\"擯\": \"摈\",\n\"擰\": \"拧\",\n\"擱\": \"搁\",\n\"擲\": \"掷\",\n\"擴\": \"扩\",\n\"擷\": \"撷\",\n\"擺\": \"摆\",\n\"擻\": \"擞\",\n\"擼\": \"撸\",\n\"擽\": \"㧰\",\n\"擾\": \"扰\",\n\"攄\": \"摅\",\n\"攆\": \"撵\",\n\"攋\": \"𪮶\",\n\"攏\": \"拢\",\n\"攔\": \"拦\",\n\"攖\": \"撄\",\n\"攙\": \"搀\",\n\"攛\": \"撺\",\n\"攜\": \"携\",\n\"攝\": \"摄\",\n\"攢\": \"攒\",\n\"攣\": \"挛\",\n\"攤\": \"摊\",\n\"攩\": \"挡\",\n\"攪\": \"搅\",\n\"攬\": \"揽\",\n\"攷\": \"考\",\n\"敂\": \"叩\",\n\"效果顯著\": \"效果显著\",\n\"敍\": \"叙\",\n\"敎\": \"教\",\n\"敓\": \"敚\",\n\"敗\": \"败\",\n\"敘\": \"叙\",\n\"敵\": \"敌\",\n\"數\": \"数\",\n\"敺\": \"驱\",\n\"斂\": \"敛\",\n\"斃\": \"毙\",\n\"斅\": \"𢽾\",\n\"斆\": \"敩\",\n\"文徵明\": \"文徵明\",\n\"斕\": \"斓\",\n\"斬\": \"斩\",\n\"新著\": \"新著\",\n\"斷\": \"断\",\n\"斸\": \"𣃁\",\n\"於\": \"于\",\n\"於世成\": \"於世成\",\n\"於之瑩\": \"於之莹\",\n\"於之莹\": \"於之莹\",\n\"於乎\": \"於乎\",\n\"於乙于同\": \"於乙于同\",\n\"於乙宇同\": \"於乙宇同\",\n\"於于同\": \"於于同\",\n\"於哲\": \"於哲\",\n\"於夫罗\": \"於夫罗\",\n\"於夫羅\": \"於夫罗\",\n\"於姓\": \"於姓\",\n\"於宇同\": \"於宇同\",\n\"於崇文\": \"於崇文\",\n\"於志賀\": \"於志贺\",\n\"於志贺\": \"於志贺\",\n\"於戏\": \"於戏\",\n\"於戲\": \"於戏\",\n\"於梨华\": \"於梨华\",\n\"於梨華\": \"於梨华\",\n\"於氏\": \"於氏\",\n\"於潛縣\": \"於潜县\",\n\"於潜\": \"於潜\",\n\"於潜县\": \"於潜县\",\n\"於祥玉\": \"於祥玉\",\n\"於菟\": \"於菟\",\n\"於賢德\": \"於贤德\",\n\"於除鞬\": \"於除鞬\",\n\"施讎\": \"施雠\",\n\"旂\": \"旗\",\n\"旋乾轉坤\": \"旋乾转坤\",\n\"旋乾转坤\": \"旋乾转坤\",\n\"旣\": \"既\",\n\"旤\": \"祸\",\n\"旹\": \"时\",\n\"旾\": \"春\",\n\"昇\": \"升\",\n\"昇仙\": \"升仙\",\n\"昇天\": \"升天\",\n\"昇平\": \"升平\",\n\"昇汞\": \"升汞\",\n\"昇華\": \"升华\",\n\"昇起\": \"升起\",\n\"昇降\": \"升降\",\n\"易·乾\": \"易·乾\",\n\"易經·乾\": \"易经·乾\",\n\"易經乾\": \"易经乾\",\n\"易经·乾\": \"易经·乾\",\n\"易经乾\": \"易经乾\",\n\"昬\": \"昏\",\n\"昭著\": \"昭著\",\n\"時\": \"时\",\n\"晉\": \"晋\",\n\"晉陞\": \"晋升\",\n\"晛\": \"𬀪\",\n\"晝\": \"昼\",\n\"暈\": \"晕\",\n\"暉\": \"晖\",\n\"暐\": \"𬀩\",\n\"暗闇\": \"暗闇\",\n\"暘\": \"旸\",\n\"暢\": \"畅\",\n\"暫\": \"暂\",\n\"暱\": \"昵\",\n\"曄\": \"晔\",\n\"曆\": \"历\",\n\"曇\": \"昙\",\n\"曉\": \"晓\",\n\"曊\": \"𪰶\",\n\"曏\": \"向\",\n\"曖\": \"暧\",\n\"曠\": \"旷\",\n\"曠若發矇\": \"旷若发矇\",\n\"曡\": \"叠\",\n\"曥\": \"𣆐\",\n\"曨\": \"昽\",\n\"曬\": \"晒\",\n\"書\": \"书\",\n\"曾运乾\": \"曾运乾\",\n\"曾運乾\": \"曾运乾\",\n\"會\": \"会\",\n\"月陞\": \"月升\",\n\"朝乾夕惕\": \"朝乾夕惕\",\n\"朞\": \"期\",\n\"朢\": \"望\",\n\"朥\": \"𦛨\",\n\"朧\": \"胧\",\n\"朮\": \"术\",\n\"朱有燉\": \"朱有燉\",\n\"朱淛\": \"朱淛\",\n\"朴於宇同\": \"朴於宇同\",\n\"朶\": \"朵\",\n\"李乾德\": \"李乾德\",\n\"李乾順\": \"李乾顺\",\n\"李乾顺\": \"李乾顺\",\n\"李澤鉅\": \"李泽钜\",\n\"李祕\": \"李祕\",\n\"李譔\": \"李譔\",\n\"東\": \"东\",\n\"杴\": \"锨\",\n\"枱\": \"台\",\n\"枴\": \"拐\",\n\"柳詒徵\": \"柳诒徵\",\n\"柳诒徵\": \"柳诒徵\",\n\"柵\": \"栅\",\n\"柺\": \"拐\",\n\"査\": \"查\",\n\"栁\": \"柳\",\n\"栞\": \"刊\",\n\"校讎\": \"校雠\",\n\"栢\": \"柏\",\n\"栰\": \"筏\",\n\"桒\": \"桑\",\n\"桮\": \"杯\",\n\"桱\": \"𣐕\",\n\"桺\": \"柳\",\n\"桿\": \"杆\",\n\"梔\": \"栀\",\n\"梖\": \"𪱷\",\n\"梘\": \"枧\",\n\"梜\": \"𬂩\",\n\"條\": \"条\",\n\"梟\": \"枭\",\n\"梲\": \"棁\",\n\"棄\": \"弃\",\n\"棊\": \"棋\",\n\"棖\": \"枨\",\n\"棗\": \"枣\",\n\"棟\": \"栋\",\n\"棡\": \"㭎\",\n\"棧\": \"栈\",\n\"棲\": \"栖\",\n\"棶\": \"梾\",\n\"椏\": \"桠\",\n\"椗\": \"碇\",\n\"椲\": \"㭏\",\n\"椶\": \"棕\",\n\"椷\": \"缄\",\n\"椾\": \"笺\",\n\"楇\": \"𣒌\",\n\"楈枒\": \"楈枒\",\n\"楊\": \"杨\",\n\"楓\": \"枫\",\n\"楥\": \"楦\",\n\"楨\": \"桢\",\n\"業\": \"业\",\n\"極\": \"极\",\n\"榘\": \"矩\",\n\"榦\": \"干\",\n\"榪\": \"杩\",\n\"榮\": \"荣\",\n\"榮陞\": \"荣升\",\n\"榲\": \"榅\",\n\"榿\": \"桤\",\n\"構\": \"构\",\n\"槍\": \"枪\",\n\"槓\": \"杠\",\n\"槕\": \"桌\",\n\"槤\": \"梿\",\n\"槧\": \"椠\",\n\"槨\": \"椁\",\n\"槫\": \"𣏢\",\n\"槮\": \"椮\",\n\"槳\": \"桨\",\n\"槶\": \"椢\",\n\"槼\": \"椝\",\n\"樁\": \"桩\",\n\"樂\": \"乐\",\n\"樅\": \"枞\",\n\"樊於期\": \"樊於期\",\n\"樑\": \"梁\",\n\"樓\": \"楼\",\n\"標\": \"标\",\n\"樞\": \"枢\",\n\"樠\": \"𣗊\",\n\"樢\": \"㭤\",\n\"樣\": \"样\",\n\"樤\": \"𣔌\",\n\"樧\": \"榝\",\n\"樫\": \"㭴\",\n\"樳\": \"桪\",\n\"樸\": \"朴\",\n\"樹\": \"树\",\n\"樺\": \"桦\",\n\"樿\": \"椫\",\n\"橈\": \"桡\",\n\"橋\": \"桥\",\n\"橜\": \"橛\",\n\"機\": \"机\",\n\"橢\": \"椭\",\n\"橫\": \"横\",\n\"橯\": \"𣓿\",\n\"檁\": \"檩\",\n\"檉\": \"柽\",\n\"檔\": \"档\",\n\"檜\": \"桧\",\n\"檟\": \"槚\",\n\"檢\": \"检\",\n\"檣\": \"樯\",\n\"檭\": \"𣘴\",\n\"檮\": \"梼\",\n\"檯\": \"台\",\n\"檳\": \"槟\",\n\"檵\": \"𪲛\",\n\"檸\": \"柠\",\n\"檻\": \"槛\",\n\"檾\": \"𦼖\",\n\"櫃\": \"柜\",\n\"櫅\": \"𪲎\",\n\"櫈\": \"凳\",\n\"櫍\": \"𬃊\",\n\"櫓\": \"橹\",\n\"櫚\": \"榈\",\n\"櫛\": \"栉\",\n\"櫝\": \"椟\",\n\"櫞\": \"橼\",\n\"櫟\": \"栎\",\n\"櫠\": \"𪲮\",\n\"櫥\": \"橱\",\n\"櫧\": \"槠\",\n\"櫨\": \"栌\",\n\"櫪\": \"枥\",\n\"櫫\": \"橥\",\n\"櫬\": \"榇\",\n\"櫱\": \"蘖\",\n\"櫳\": \"栊\",\n\"櫸\": \"榉\",\n\"櫺\": \"棂\",\n\"櫻\": \"樱\",\n\"欄\": \"栏\",\n\"欅\": \"榉\",\n\"欇\": \"𪳍\",\n\"權\": \"权\",\n\"欍\": \"𣐤\",\n\"欏\": \"椤\",\n\"欐\": \"𪲔\",\n\"欑\": \"𪴙\",\n\"欒\": \"栾\",\n\"欓\": \"𣗋\",\n\"欖\": \"榄\",\n\"欘\": \"𣚚\",\n\"欝\": \"郁\",\n\"欞\": \"棂\",\n\"欵\": \"款\",\n\"欽\": \"钦\",\n\"歎\": \"叹\",\n\"歐\": \"欧\",\n\"歛\": \"敛\",\n\"歟\": \"欤\",\n\"歡\": \"欢\",\n\"歲\": \"岁\",\n\"歴\": \"历\",\n\"歷\": \"历\",\n\"歷陞\": \"历升\",\n\"歸\": \"归\",\n\"歿\": \"殁\",\n\"殀\": \"夭\",\n\"殘\": \"残\",\n\"殘瀋\": \"残渖\",\n\"殞\": \"殒\",\n\"殢\": \"𣨼\",\n\"殤\": \"殇\",\n\"殨\": \"㱮\",\n\"殫\": \"殚\",\n\"殭\": \"僵\",\n\"殮\": \"殓\",\n\"殯\": \"殡\",\n\"殰\": \"㱩\",\n\"殲\": \"歼\",\n\"殺\": \"杀\",\n\"殻\": \"壳\",\n\"殼\": \"壳\",\n\"毀\": \"毁\",\n\"毆\": \"殴\",\n\"毊\": \"𪵑\",\n\"比較顯著\": \"比较显著\",\n\"毧\": \"绒\",\n\"毫釐\": \"毫厘\",\n\"毬\": \"球\",\n\"毿\": \"毵\",\n\"氂\": \"牦\",\n\"氆氌\": \"氆氌\",\n\"氈\": \"毡\",\n\"氊\": \"毡\",\n\"氌\": \"氇\",\n\"氣\": \"气\",\n\"氫\": \"氢\",\n\"氬\": \"氩\",\n\"氭\": \"𣱝\",\n\"氳\": \"氲\",\n\"氷\": \"冰\",\n\"氾\": \"泛\",\n\"氾濫\": \"泛滥\",\n\"汎\": \"泛\",\n\"汙\": \"污\",\n\"汚\": \"污\",\n\"決\": \"决\",\n\"沈沒\": \"沉没\",\n\"沈澱\": \"沉淀\",\n\"沈積\": \"沉积\",\n\"沈船\": \"沉船\",\n\"沈重\": \"沉重\",\n\"沈默\": \"沉默\",\n\"沒\": \"没\",\n\"沖\": \"冲\",\n\"況\": \"况\",\n\"泝\": \"溯\",\n\"洗鍊\": \"洗练\",\n\"洩\": \"泄\",\n\"洶\": \"汹\",\n\"浹\": \"浃\",\n\"浿\": \"𬇙\",\n\"涇\": \"泾\",\n\"涖\": \"莅\",\n\"涗\": \"涚\",\n\"涼\": \"凉\",\n\"淒\": \"凄\",\n\"淚\": \"泪\",\n\"淛\": \"浙\",\n\"淥\": \"渌\",\n\"淨\": \"净\",\n\"淩\": \"凌\",\n\"淪\": \"沦\",\n\"淵\": \"渊\",\n\"淶\": \"涞\",\n\"淺\": \"浅\",\n\"渙\": \"涣\",\n\"減\": \"减\",\n\"渢\": \"沨\",\n\"渦\": \"涡\",\n\"測\": \"测\",\n\"渾\": \"浑\",\n\"湊\": \"凑\",\n\"湋\": \"𣲗\",\n\"湞\": \"浈\",\n\"湧\": \"涌\",\n\"湯\": \"汤\",\n\"湼\": \"涅\",\n\"溈\": \"沩\",\n\"準\": \"准\",\n\"溝\": \"沟\",\n\"溡\": \"𪶄\",\n\"溫\": \"温\",\n\"溮\": \"浉\",\n\"溳\": \"涢\",\n\"溼\": \"湿\",\n\"滄\": \"沧\",\n\"滅\": \"灭\",\n\"滌\": \"涤\",\n\"滎\": \"荥\",\n\"滙\": \"汇\",\n\"滛\": \"淫\",\n\"满拚自尽\": \"满拚自尽\",\n\"滬\": \"沪\",\n\"滯\": \"滞\",\n\"滲\": \"渗\",\n\"滷\": \"卤\",\n\"滸\": \"浒\",\n\"滻\": \"浐\",\n\"滾\": \"滚\",\n\"滿\": \"满\",\n\"滿拚自盡\": \"满拚自尽\",\n\"漁\": \"渔\",\n\"漊\": \"溇\",\n\"漍\": \"𬇹\",\n\"漚\": \"沤\",\n\"漢\": \"汉\",\n\"漣\": \"涟\",\n\"漬\": \"渍\",\n\"漲\": \"涨\",\n\"漵\": \"溆\",\n\"漸\": \"渐\",\n\"漿\": \"浆\",\n\"潁\": \"颍\",\n\"潄\": \"漱\",\n\"潑\": \"泼\",\n\"潔\": \"洁\",\n\"潕\": \"𣲘\",\n\"潙\": \"沩\",\n\"潚\": \"㴋\",\n\"潛\": \"潜\",\n\"潣\": \"𫞗\",\n\"潤\": \"润\",\n\"潯\": \"浔\",\n\"潰\": \"溃\",\n\"潷\": \"滗\",\n\"潿\": \"涠\",\n\"澀\": \"涩\",\n\"澁\": \"涩\",\n\"澅\": \"𣶩\",\n\"澆\": \"浇\",\n\"澇\": \"涝\",\n\"澐\": \"沄\",\n\"澗\": \"涧\",\n\"澠\": \"渑\",\n\"澤\": \"泽\",\n\"澦\": \"滪\",\n\"澩\": \"泶\",\n\"澫\": \"𬇕\",\n\"澬\": \"𫞚\",\n\"澮\": \"浍\",\n\"澱\": \"淀\",\n\"澾\": \"㳠\",\n\"濁\": \"浊\",\n\"濃\": \"浓\",\n\"濄\": \"㳡\",\n\"濆\": \"𣸣\",\n\"濇\": \"涩\",\n\"濕\": \"湿\",\n\"濘\": \"泞\",\n\"濚\": \"溁\",\n\"濛\": \"蒙\",\n\"濜\": \"浕\",\n\"濟\": \"济\",\n\"濤\": \"涛\",\n\"濧\": \"㳔\",\n\"濫\": \"滥\",\n\"濰\": \"潍\",\n\"濱\": \"滨\",\n\"濶\": \"阔\",\n\"濺\": \"溅\",\n\"濼\": \"泺\",\n\"濾\": \"滤\",\n\"濿\": \"𪵱\",\n\"瀂\": \"澛\",\n\"瀃\": \"𣽷\",\n\"瀅\": \"滢\",\n\"瀆\": \"渎\",\n\"瀇\": \"㲿\",\n\"瀉\": \"泻\",\n\"瀋\": \"沈\",\n\"瀋液\": \"渖液\",\n\"瀏\": \"浏\",\n\"瀕\": \"濒\",\n\"瀘\": \"泸\",\n\"瀝\": \"沥\",\n\"瀟\": \"潇\",\n\"瀠\": \"潆\",\n\"瀦\": \"潴\",\n\"瀧\": \"泷\",\n\"瀨\": \"濑\",\n\"瀰\": \"弥\",\n\"瀲\": \"潋\",\n\"瀾\": \"澜\",\n\"灃\": \"沣\",\n\"灄\": \"滠\",\n\"灋\": \"法\",\n\"灍\": \"𫞝\",\n\"灑\": \"洒\",\n\"灒\": \"𪷽\",\n\"灕\": \"漓\",\n\"灘\": \"滩\",\n\"灙\": \"𣺼\",\n\"灝\": \"灏\",\n\"灠\": \"漤\",\n\"灡\": \"㳕\",\n\"灣\": \"湾\",\n\"灤\": \"滦\",\n\"灧\": \"滟\",\n\"灩\": \"滟\",\n\"災\": \"灾\",\n\"為\": \"为\",\n\"烏\": \"乌\",\n\"烖\": \"灾\",\n\"烴\": \"烃\",\n\"無\": \"无\",\n\"無言不讎\": \"无言不雠\",\n\"煇\": \"𪸩\",\n\"煉\": \"炼\",\n\"煑\": \"煮\",\n\"煒\": \"炜\",\n\"煗\": \"暖\",\n\"煙\": \"烟\",\n\"煢\": \"茕\",\n\"煥\": \"焕\",\n\"煩\": \"烦\",\n\"煬\": \"炀\",\n\"煱\": \"㶽\",\n\"熂\": \"𪸕\",\n\"熅\": \"煴\",\n\"熈\": \"熙\",\n\"熉\": \"𤈶\",\n\"熌\": \"𤇄\",\n\"熒\": \"荧\",\n\"熓\": \"𤆡\",\n\"熗\": \"炝\",\n\"熚\": \"𤇹\",\n\"熡\": \"𤋏\",\n\"熰\": \"𬉼\",\n\"熱\": \"热\",\n\"熲\": \"颎\",\n\"熾\": \"炽\",\n\"燀\": \"𬊤\",\n\"燁\": \"烨\",\n\"燄\": \"焰\",\n\"燈\": \"灯\",\n\"燉\": \"炖\",\n\"燒\": \"烧\",\n\"燖\": \"𬊈\",\n\"燙\": \"烫\",\n\"燜\": \"焖\",\n\"營\": \"营\",\n\"燦\": \"灿\",\n\"燬\": \"毁\",\n\"燭\": \"烛\",\n\"燴\": \"烩\",\n\"燶\": \"㶶\",\n\"燻\": \"熏\",\n\"燼\": \"烬\",\n\"燾\": \"焘\",\n\"爃\": \"𫞡\",\n\"爄\": \"𤇃\",\n\"爇\": \"𦶟\",\n\"爍\": \"烁\",\n\"爐\": \"炉\",\n\"爖\": \"𤇭\",\n\"爗\": \"烨\",\n\"爛\": \"烂\",\n\"爥\": \"𪹳\",\n\"爧\": \"𫞠\",\n\"爨翫\": \"爨翫\",\n\"爭\": \"争\",\n\"爲\": \"为\",\n\"爺\": \"爷\",\n\"爾\": \"尔\",\n\"爾冬陞\": \"尔冬升\",\n\"牀\": \"床\",\n\"牆\": \"墙\",\n\"牋\": \"笺\",\n\"牎\": \"窗\",\n\"牐\": \"闸\",\n\"牓\": \"榜\",\n\"牕\": \"窗\",\n\"牘\": \"牍\",\n\"牠\": \"它\",\n\"牴\": \"抵\",\n\"牽\": \"牵\",\n\"犖\": \"荦\",\n\"犛\": \"牦\",\n\"犞\": \"𪺭\",\n\"犢\": \"犊\",\n\"犧\": \"牺\",\n\"狀\": \"状\",\n\"狥\": \"徇\",\n\"狹\": \"狭\",\n\"狽\": \"狈\",\n\"猂\": \"悍\",\n\"猌\": \"𪺽\",\n\"猙\": \"狰\",\n\"猨\": \"猿\",\n\"猶\": \"犹\",\n\"猻\": \"狲\",\n\"獁\": \"犸\",\n\"獃\": \"呆\",\n\"獄\": \"狱\",\n\"獅\": \"狮\",\n\"獊\": \"𪺷\",\n\"獎\": \"奖\",\n\"獘\": \"毙\",\n\"獧\": \"狷\",\n\"獨\": \"独\",\n\"獨鍾\": \"独钟\",\n\"獩\": \"𤞃\",\n\"獪\": \"狯\",\n\"獫\": \"猃\",\n\"獮\": \"狝\",\n\"獰\": \"狞\",\n\"獱\": \"㺍\",\n\"獲\": \"获\",\n\"獵\": \"猎\",\n\"獷\": \"犷\",\n\"獸\": \"兽\",\n\"獺\": \"獭\",\n\"獻\": \"献\",\n\"獼\": \"猕\",\n\"玀\": \"猡\",\n\"玁\": \"𤞤\",\n\"玅\": \"妙\",\n\"王道乾\": \"王道乾\",\n\"王餘魚\": \"王馀鱼\",\n\"珼\": \"𫞥\",\n\"現\": \"现\",\n\"琖\": \"盏\",\n\"琱\": \"雕\",\n\"琺\": \"珐\",\n\"琿\": \"珲\",\n\"瑇\": \"玳\",\n\"瑋\": \"玮\",\n\"瑒\": \"玚\",\n\"瑣\": \"琐\",\n\"瑤\": \"瑶\",\n\"瑩\": \"莹\",\n\"瑪\": \"玛\",\n\"瑯\": \"琅\",\n\"瑲\": \"玱\",\n\"瑻\": \"𪻲\",\n\"瑽\": \"𪻐\",\n\"璉\": \"琏\",\n\"璊\": \"𫞩\",\n\"璕\": \"𬍤\",\n\"璗\": \"𬍡\",\n\"璝\": \"𪻺\",\n\"璡\": \"琎\",\n\"璢\": \"瑠\",\n\"璣\": \"玑\",\n\"璦\": \"瑷\",\n\"璫\": \"珰\",\n\"璯\": \"㻅\",\n\"環\": \"环\",\n\"璵\": \"玙\",\n\"璸\": \"瑸\",\n\"璼\": \"𫞨\",\n\"璽\": \"玺\",\n\"璾\": \"𫞦\",\n\"瓄\": \"𪻨\",\n\"瓅\": \"𬍛\",\n\"瓊\": \"琼\",\n\"瓏\": \"珑\",\n\"瓔\": \"璎\",\n\"瓕\": \"𤦀\",\n\"瓚\": \"瓒\",\n\"瓛\": \"𤩽\",\n\"甌\": \"瓯\",\n\"甎\": \"砖\",\n\"甕\": \"瓮\",\n\"甖\": \"罂\",\n\"甚夥\": \"甚夥\",\n\"甞\": \"尝\",\n\"產\": \"产\",\n\"産\": \"产\",\n\"甦\": \"苏\",\n\"甦醒\": \"苏醒\",\n\"甯\": \"宁\",\n\"男为乾\": \"男为乾\",\n\"男性为乾\": \"男性为乾\",\n\"男性為乾\": \"男性为乾\",\n\"男為乾\": \"男为乾\",\n\"畂\": \"亩\",\n\"畆\": \"亩\",\n\"畝\": \"亩\",\n\"畢\": \"毕\",\n\"畧\": \"略\",\n\"畫\": \"画\",\n\"畮\": \"亩\",\n\"異\": \"异\",\n\"畱\": \"留\",\n\"畵\": \"画\",\n\"當\": \"当\",\n\"畼\": \"𪽈\",\n\"疇\": \"畴\",\n\"疊\": \"叠\",\n\"疎\": \"疏\",\n\"疘\": \"肛\",\n\"疿\": \"痱\",\n\"痐\": \"蛔\",\n\"痙\": \"痉\",\n\"痠\": \"酸\",\n\"痮\": \"𪽪\",\n\"痲\": \"痳\",\n\"痺\": \"痹\",\n\"痾\": \"疴\",\n\"瘂\": \"痖\",\n\"瘉\": \"愈\",\n\"瘋\": \"疯\",\n\"瘍\": \"疡\",\n\"瘓\": \"痪\",\n\"瘖\": \"喑\",\n\"瘞\": \"瘗\",\n\"瘡\": \"疮\",\n\"瘧\": \"疟\",\n\"瘮\": \"瘆\",\n\"瘱\": \"𪽷\",\n\"瘲\": \"疭\",\n\"瘺\": \"瘘\",\n\"瘻\": \"瘘\",\n\"療\": \"疗\",\n\"療效顯著\": \"疗效显著\",\n\"癄\": \"憔\",\n\"癅\": \"瘤\",\n\"癆\": \"痨\",\n\"癇\": \"痫\",\n\"癈\": \"废\",\n\"癉\": \"瘅\",\n\"癐\": \"𤶊\",\n\"癒\": \"愈\",\n\"癘\": \"疠\",\n\"癟\": \"瘪\",\n\"癡\": \"痴\",\n\"癢\": \"痒\",\n\"癤\": \"疖\",\n\"癥\": \"症\",\n\"癧\": \"疬\",\n\"癩\": \"癞\",\n\"癬\": \"癣\",\n\"癭\": \"瘿\",\n\"癮\": \"瘾\",\n\"癰\": \"痈\",\n\"癱\": \"瘫\",\n\"癲\": \"癫\",\n\"發\": \"发\",\n\"白瀋\": \"白渖\",\n\"皁\": \"皂\",\n\"皁保\": \"皁保\",\n\"皐\": \"皋\",\n\"皚\": \"皑\",\n\"皜\": \"皓\",\n\"皟\": \"𤾀\",\n\"皰\": \"疱\",\n\"皷\": \"鼓\",\n\"皸\": \"皲\",\n\"皺\": \"皱\",\n\"盃\": \"杯\",\n\"盇\": \"盍\",\n\"盌\": \"碗\",\n\"盜\": \"盗\",\n\"盞\": \"盏\",\n\"盡\": \"尽\",\n\"監\": \"监\",\n\"盤\": \"盘\",\n\"盧\": \"卢\",\n\"盨\": \"𪾔\",\n\"盪\": \"荡\",\n\"目劄\": \"目劄\",\n\"直昇\": \"直升\",\n\"盼覆\": \"盼复\",\n\"眎\": \"视\",\n\"眝\": \"𪾣\",\n\"眞\": \"真\",\n\"眡\": \"视\",\n\"眥\": \"眦\",\n\"眾\": \"众\",\n\"睍\": \"𪾢\",\n\"睏\": \"困\",\n\"睜\": \"睁\",\n\"睞\": \"睐\",\n\"睠\": \"眷\",\n\"睪\": \"睾\",\n\"睹微知著\": \"睹微知著\",\n\"瞇\": \"眯\",\n\"瞖\": \"翳\",\n\"瞘\": \"眍\",\n\"瞜\": \"䁖\",\n\"瞞\": \"瞒\",\n\"瞤\": \"𥆧\",\n\"瞭\": \"了\",\n\"瞭台\": \"瞭台\",\n\"瞭望\": \"瞭望\",\n\"瞭臺\": \"瞭台\",\n\"瞶\": \"瞆\",\n\"瞼\": \"睑\",\n\"矁\": \"瞅\",\n\"矇\": \"蒙\",\n\"矇眬\": \"矇眬\",\n\"矇矓\": \"矇眬\",\n\"矉\": \"𪾸\",\n\"矑\": \"𪾦\",\n\"矓\": \"眬\",\n\"矙\": \"瞰\",\n\"矚\": \"瞩\",\n\"矯\": \"矫\",\n\"石碁\": \"石碁\",\n\"石碁鎮\": \"石碁镇\",\n\"砲\": \"炮\",\n\"硃\": \"朱\",\n\"硃山湖\": \"硃山湖\",\n\"硜\": \"硁\",\n\"硤\": \"硖\",\n\"硨\": \"砗\",\n\"硯\": \"砚\",\n\"碁圣\": \"碁圣\",\n\"碁所\": \"碁所\",\n\"碁聖\": \"碁圣\",\n\"碕\": \"埼\",\n\"碙\": \"𥐻\",\n\"碩\": \"硕\",\n\"碩託\": \"硕讬\",\n\"碪\": \"砧\",\n\"碭\": \"砀\",\n\"碸\": \"砜\",\n\"確\": \"确\",\n\"碼\": \"码\",\n\"碽\": \"䂵\",\n\"磑\": \"硙\",\n\"磚\": \"砖\",\n\"磟\": \"碌\",\n\"磠\": \"硵\",\n\"磣\": \"碜\",\n\"磧\": \"碛\",\n\"磯\": \"矶\",\n\"磽\": \"硗\",\n\"磾\": \"䃅\",\n\"礄\": \"硚\",\n\"礆\": \"硷\",\n\"礎\": \"础\",\n\"礐\": \"𬒈\",\n\"礒\": \"𥐟\",\n\"礙\": \"碍\",\n\"礦\": \"矿\",\n\"礪\": \"砺\",\n\"礫\": \"砾\",\n\"礬\": \"矾\",\n\"礮\": \"𪿫\",\n\"礱\": \"砻\",\n\"祕\": \"秘\",\n\"祕宜\": \"祕宜\",\n\"祘\": \"算\",\n\"祿\": \"禄\",\n\"禍\": \"祸\",\n\"禎\": \"祯\",\n\"禕\": \"祎\",\n\"禡\": \"祃\",\n\"禦\": \"御\",\n\"禪\": \"禅\",\n\"禮\": \"礼\",\n\"禰\": \"祢\",\n\"禱\": \"祷\",\n\"禿\": \"秃\",\n\"秈\": \"籼\",\n\"秊\": \"年\",\n\"秌\": \"秋\",\n\"秖\": \"只\",\n\"稅\": \"税\",\n\"稈\": \"秆\",\n\"稉\": \"粳\",\n\"稏\": \"䅉\",\n\"稜\": \"棱\",\n\"稟\": \"禀\",\n\"稬\": \"糯\",\n\"稭\": \"秸\",\n\"種\": \"种\",\n\"稱\": \"称\",\n\"稾\": \"稿\",\n\"穀\": \"谷\",\n\"穀旦\": \"穀旦\",\n\"穀梁\": \"穀梁\",\n\"穀水\": \"穀水\",\n\"穀阳\": \"穀阳\",\n\"穀陽\": \"穀阳\",\n\"穇\": \"䅟\",\n\"穌\": \"稣\",\n\"積\": \"积\",\n\"穎\": \"颖\",\n\"穠\": \"秾\",\n\"穡\": \"穑\",\n\"穢\": \"秽\",\n\"穤\": \"糯\",\n\"穨\": \"颓\",\n\"穩\": \"稳\",\n\"穫\": \"获\",\n\"穭\": \"穞\",\n\"穽\": \"阱\",\n\"穿著者\": \"穿着者\",\n\"窓\": \"窗\",\n\"窩\": \"窝\",\n\"窪\": \"洼\",\n\"窮\": \"穷\",\n\"窯\": \"窑\",\n\"窰\": \"窑\",\n\"窵\": \"窎\",\n\"窶\": \"窭\",\n\"窺\": \"窥\",\n\"窻\": \"窗\",\n\"竄\": \"窜\",\n\"竅\": \"窍\",\n\"竇\": \"窦\",\n\"竈\": \"灶\",\n\"竊\": \"窃\",\n\"竚\": \"𥩟\",\n\"竝\": \"并\",\n\"竢\": \"俟\",\n\"竪\": \"竖\",\n\"竱\": \"𫁟\",\n\"競\": \"竞\",\n\"竹昇\": \"竹升\",\n\"筆\": \"笔\",\n\"筍\": \"笋\",\n\"答覆\": \"答复\",\n\"筞\": \"策\",\n\"筧\": \"笕\",\n\"筩\": \"筒\",\n\"筯\": \"箸\",\n\"筴\": \"䇲\",\n\"箇\": \"个\",\n\"箋\": \"笺\",\n\"箏\": \"筝\",\n\"箒\": \"帚\",\n\"箠\": \"棰\",\n\"節\": \"节\",\n\"範\": \"范\",\n\"築\": \"筑\",\n\"篋\": \"箧\",\n\"篔\": \"筼\",\n\"篘\": \"𥬠\",\n\"篛\": \"箬\",\n\"篠\": \"筿\",\n\"篢\": \"𬕂\",\n\"篤\": \"笃\",\n\"篩\": \"筛\",\n\"篳\": \"筚\",\n\"篸\": \"𥮾\",\n\"簀\": \"箦\",\n\"簂\": \"𫂆\",\n\"簍\": \"篓\",\n\"簑\": \"蓑\",\n\"簒\": \"篡\",\n\"簞\": \"箪\",\n\"簡\": \"简\",\n\"簢\": \"𫂃\",\n\"簣\": \"篑\",\n\"簫\": \"箫\",\n\"簮\": \"簪\",\n\"簷\": \"檐\",\n\"簹\": \"筜\",\n\"簽\": \"签\",\n\"簾\": \"帘\",\n\"籃\": \"篮\",\n\"籅\": \"𥫣\",\n\"籋\": \"𥬞\",\n\"籌\": \"筹\",\n\"籐\": \"藤\",\n\"籔\": \"䉤\",\n\"籙\": \"箓\",\n\"籛\": \"篯\",\n\"籜\": \"箨\",\n\"籟\": \"籁\",\n\"籠\": \"笼\",\n\"籤\": \"签\",\n\"籩\": \"笾\",\n\"籪\": \"簖\",\n\"籬\": \"篱\",\n\"籮\": \"箩\",\n\"籲\": \"吁\",\n\"米泽瑠美\": \"米泽瑠美\",\n\"米瀋\": \"米渖\",\n\"粃\": \"秕\",\n\"粧\": \"妆\",\n\"粵\": \"粤\",\n\"糉\": \"粽\",\n\"糝\": \"糁\",\n\"糞\": \"粪\",\n\"糧\": \"粮\",\n\"糰\": \"团\",\n\"糲\": \"粝\",\n\"糴\": \"籴\",\n\"糶\": \"粜\",\n\"糹\": \"纟\",\n\"糺\": \"𫄙\",\n\"糾\": \"纠\",\n\"紀\": \"纪\",\n\"紂\": \"纣\",\n\"紃\": \"𬘓\",\n\"約\": \"约\",\n\"紅\": \"红\",\n\"紆\": \"纡\",\n\"紇\": \"纥\",\n\"紈\": \"纨\",\n\"紉\": \"纫\",\n\"紋\": \"纹\",\n\"納\": \"纳\",\n\"紐\": \"纽\",\n\"紓\": \"纾\",\n\"純\": \"纯\",\n\"紕\": \"纰\",\n\"紖\": \"纼\",\n\"紗\": \"纱\",\n\"紘\": \"纮\",\n\"紙\": \"纸\",\n\"級\": \"级\",\n\"紛\": \"纷\",\n\"紜\": \"纭\",\n\"紝\": \"纴\",\n\"紞\": \"𬘘\",\n\"紟\": \"𫄛\",\n\"紡\": \"纺\",\n\"紥\": \"扎\",\n\"紬\": \"䌷\",\n\"紮\": \"扎\",\n\"細\": \"细\",\n\"紱\": \"绂\",\n\"紲\": \"绁\",\n\"紳\": \"绅\",\n\"紵\": \"纻\",\n\"紹\": \"绍\",\n\"紺\": \"绀\",\n\"紼\": \"绋\",\n\"紿\": \"绐\",\n\"絀\": \"绌\",\n\"絁\": \"𫄟\",\n\"終\": \"终\",\n\"絃\": \"弦\",\n\"組\": \"组\",\n\"絅\": \"䌹\",\n\"絆\": \"绊\",\n\"絍\": \"𫟃\",\n\"絎\": \"绗\",\n\"絏\": \"绁\",\n\"結\": \"结\",\n\"絕\": \"绝\",\n\"絙\": \"𫄠\",\n\"絛\": \"绦\",\n\"絝\": \"绔\",\n\"絞\": \"绞\",\n\"絡\": \"络\",\n\"絢\": \"绚\",\n\"絥\": \"𫄢\",\n\"給\": \"给\",\n\"絧\": \"𫄡\",\n\"絨\": \"绒\",\n\"絪\": \"𬘡\",\n\"絪縕\": \"絪缊\",\n\"絰\": \"绖\",\n\"統\": \"统\",\n\"絲\": \"丝\",\n\"絳\": \"绛\",\n\"絶\": \"绝\",\n\"絹\": \"绢\",\n\"絺\": \"𫄨\",\n\"綀\": \"𦈌\",\n\"綁\": \"绑\",\n\"綃\": \"绡\",\n\"綄\": \"𬘫\",\n\"綆\": \"绠\",\n\"綇\": \"𦈋\",\n\"綈\": \"绨\",\n\"綉\": \"绣\",\n\"綋\": \"𫟄\",\n\"綌\": \"绤\",\n\"綎\": \"𬘩\",\n\"綏\": \"绥\",\n\"綐\": \"䌼\",\n\"綑\": \"捆\",\n\"經\": \"经\",\n\"綖\": \"𫄧\",\n\"綜\": \"综\",\n\"綝\": \"𬘭\",\n\"綞\": \"缍\",\n\"綟\": \"𫄫\",\n\"綠\": \"绿\",\n\"綡\": \"𫟅\",\n\"綢\": \"绸\",\n\"綣\": \"绻\",\n\"綧\": \"𬘯\",\n\"綪\": \"𬘬\",\n\"綫\": \"线\",\n\"綬\": \"绶\",\n\"維\": \"维\",\n\"綯\": \"绹\",\n\"綰\": \"绾\",\n\"綱\": \"纲\",\n\"網\": \"网\",\n\"綳\": \"绷\",\n\"綴\": \"缀\",\n\"綵\": \"彩\",\n\"綸\": \"纶\",\n\"綹\": \"绺\",\n\"綺\": \"绮\",\n\"綻\": \"绽\",\n\"綽\": \"绰\",\n\"綾\": \"绫\",\n\"綿\": \"绵\",\n\"緄\": \"绲\",\n\"緇\": \"缁\",\n\"緊\": \"紧\",\n\"緋\": \"绯\",\n\"緍\": \"𦈏\",\n\"緐\": \"繁\",\n\"緑\": \"绿\",\n\"緒\": \"绪\",\n\"緓\": \"绬\",\n\"緔\": \"绱\",\n\"緗\": \"缃\",\n\"緘\": \"缄\",\n\"緙\": \"缂\",\n\"線\": \"线\",\n\"線國安\": \"缐国安\",\n\"線姓\": \"缐姓\",\n\"緜\": \"绵\",\n\"緝\": \"缉\",\n\"緞\": \"缎\",\n\"緟\": \"𫟆\",\n\"締\": \"缔\",\n\"緡\": \"缗\",\n\"緣\": \"缘\",\n\"緤\": \"𫄬\",\n\"緥\": \"褓\",\n\"緦\": \"缌\",\n\"編\": \"编\",\n\"編著\": \"编著\",\n\"緩\": \"缓\",\n\"緬\": \"缅\",\n\"緮\": \"𫄭\",\n\"緯\": \"纬\",\n\"緰\": \"𦈕\",\n\"緱\": \"缑\",\n\"緲\": \"缈\",\n\"練\": \"练\",\n\"緶\": \"缏\",\n\"緷\": \"𦈉\",\n\"緸\": \"𦈑\",\n\"緹\": \"缇\",\n\"緻\": \"致\",\n\"緼\": \"缊\",\n\"縈\": \"萦\",\n\"縉\": \"缙\",\n\"縊\": \"缢\",\n\"縋\": \"缒\",\n\"縍\": \"𫄰\",\n\"縎\": \"𦈔\",\n\"縐\": \"绉\",\n\"縑\": \"缣\",\n\"縕\": \"缊\",\n\"縗\": \"缞\",\n\"縛\": \"缚\",\n\"縝\": \"缜\",\n\"縞\": \"缟\",\n\"縟\": \"缛\",\n\"縣\": \"县\",\n\"縧\": \"绦\",\n\"縫\": \"缝\",\n\"縬\": \"𦈚\",\n\"縭\": \"缡\",\n\"縮\": \"缩\",\n\"縯\": \"𬙂\",\n\"縰\": \"𫄳\",\n\"縱\": \"纵\",\n\"縲\": \"缧\",\n\"縳\": \"䌸\",\n\"縴\": \"纤\",\n\"縵\": \"缦\",\n\"縶\": \"絷\",\n\"縷\": \"缕\",\n\"縸\": \"𫄲\",\n\"縹\": \"缥\",\n\"縺\": \"𦈐\",\n\"總\": \"总\",\n\"績\": \"绩\",\n\"繂\": \"𫄴\",\n\"繃\": \"绷\",\n\"繅\": \"缫\",\n\"繆\": \"缪\",\n\"繈\": \"𫄶\",\n\"繏\": \"𦈝\",\n\"繐\": \"穗\",\n\"繒\": \"缯\",\n\"繓\": \"𦈛\",\n\"織\": \"织\",\n\"繕\": \"缮\",\n\"繖\": \"伞\",\n\"繙\": \"翻\",\n\"繙㠾\": \"繙㠾\",\n\"繚\": \"缭\",\n\"繞\": \"绕\",\n\"繟\": \"𦈎\",\n\"繡\": \"绣\",\n\"繢\": \"缋\",\n\"繦\": \"襁\",\n\"繨\": \"𫄤\",\n\"繩\": \"绳\",\n\"繪\": \"绘\",\n\"繫\": \"系\",\n\"繬\": \"𫄱\",\n\"繭\": \"茧\",\n\"繮\": \"缰\",\n\"繯\": \"缳\",\n\"繰\": \"缲\",\n\"繳\": \"缴\",\n\"繶\": \"𫄷\",\n\"繷\": \"𫄣\",\n\"繸\": \"䍁\",\n\"繹\": \"绎\",\n\"繻\": \"𦈡\",\n\"繼\": \"继\",\n\"繽\": \"缤\",\n\"繾\": \"缱\",\n\"繿\": \"䍀\",\n\"纁\": \"𫄸\",\n\"纆\": \"𬙊\",\n\"纇\": \"颣\",\n\"纈\": \"缬\",\n\"纊\": \"纩\",\n\"續\": \"续\",\n\"纍\": \"累\",\n\"纏\": \"缠\",\n\"纓\": \"缨\",\n\"纔\": \"才\",\n\"纕\": \"𬙋\",\n\"纖\": \"纤\",\n\"纗\": \"𫄹\",\n\"纘\": \"缵\",\n\"纚\": \"𫄥\",\n\"纜\": \"缆\",\n\"缽\": \"钵\",\n\"罃\": \"䓨\",\n\"罇\": \"樽\",\n\"罈\": \"坛\",\n\"罋\": \"瓮\",\n\"罌\": \"罂\",\n\"罎\": \"坛\",\n\"罰\": \"罚\",\n\"罵\": \"骂\",\n\"罷\": \"罢\",\n\"罸\": \"罚\",\n\"羅\": \"罗\",\n\"羆\": \"罴\",\n\"羈\": \"羁\",\n\"羋\": \"芈\",\n\"羗\": \"羌\",\n\"羢\": \"绒\",\n\"羣\": \"群\",\n\"羥\": \"羟\",\n\"羨\": \"羡\",\n\"義\": \"义\",\n\"羵\": \"𫅗\",\n\"羶\": \"膻\",\n\"翄\": \"翅\",\n\"習\": \"习\",\n\"翫\": \"玩\",\n\"翬\": \"翚\",\n\"翶\": \"翱\",\n\"翹\": \"翘\",\n\"翽\": \"翙\",\n\"老么\": \"老幺\",\n\"耡\": \"锄\",\n\"耬\": \"耧\",\n\"耮\": \"耢\",\n\"聖\": \"圣\",\n\"聞\": \"闻\",\n\"聯\": \"联\",\n\"聰\": \"聪\",\n\"聲\": \"声\",\n\"聳\": \"耸\",\n\"聵\": \"聩\",\n\"聶\": \"聂\",\n\"職\": \"职\",\n\"聹\": \"聍\",\n\"聻\": \"𫆏\",\n\"聽\": \"听\",\n\"聾\": \"聋\",\n\"肅\": \"肃\",\n\"肉乾乾\": \"肉干干\",\n\"肎\": \"肯\",\n\"肐\": \"胳\",\n\"肘手鍊足\": \"肘手链足\",\n\"肧\": \"胚\",\n\"胷\": \"胸\",\n\"脃\": \"脆\",\n\"脅\": \"胁\",\n\"脇\": \"胁\",\n\"脈\": \"脉\",\n\"脗\": \"吻\",\n\"脛\": \"胫\",\n\"脣\": \"唇\",\n\"脥\": \"𣍰\",\n\"脩\": \"修\",\n\"脫\": \"脱\",\n\"脹\": \"胀\",\n\"腁\": \"胼\",\n\"腎\": \"肾\",\n\"腖\": \"胨\",\n\"腡\": \"脶\",\n\"腦\": \"脑\",\n\"腪\": \"𣍯\",\n\"腫\": \"肿\",\n\"腳\": \"脚\",\n\"腸\": \"肠\",\n\"膃\": \"腽\",\n\"膓\": \"肠\",\n\"膕\": \"腘\",\n\"膚\": \"肤\",\n\"膞\": \"䏝\",\n\"膠\": \"胶\",\n\"膢\": \"𦝼\",\n\"膩\": \"腻\",\n\"膹\": \"𪱥\",\n\"膽\": \"胆\",\n\"膾\": \"脍\",\n\"膿\": \"脓\",\n\"臈\": \"腊\",\n\"臉\": \"脸\",\n\"臋\": \"臀\",\n\"臍\": \"脐\",\n\"臏\": \"膑\",\n\"臕\": \"膘\",\n\"臗\": \"𣎑\",\n\"臘\": \"腊\",\n\"臙\": \"胭\",\n\"臚\": \"胪\",\n\"臝\": \"裸\",\n\"臟\": \"脏\",\n\"臠\": \"脔\",\n\"臢\": \"臜\",\n\"臥\": \"卧\",\n\"臨\": \"临\",\n\"臯\": \"皋\",\n\"臺\": \"台\",\n\"與\": \"与\",\n\"興\": \"兴\",\n\"舉\": \"举\",\n\"舊\": \"旧\",\n\"舖\": \"铺\",\n\"舘\": \"馆\",\n\"舩\": \"船\",\n\"艙\": \"舱\",\n\"艢\": \"樯\",\n\"艣\": \"𫇛\",\n\"艤\": \"舣\",\n\"艦\": \"舰\",\n\"艪\": \"橹\",\n\"艫\": \"舻\",\n\"艱\": \"艰\",\n\"艷\": \"艳\",\n\"芲\": \"花\",\n\"芻\": \"刍\",\n\"苧\": \"苎\",\n\"苧烯\": \"苧烯\",\n\"茘\": \"荔\",\n\"茲\": \"兹\",\n\"荊\": \"荆\",\n\"荠苧\": \"荠苧\",\n\"荳\": \"豆\",\n\"莊\": \"庄\",\n\"莖\": \"茎\",\n\"莢\": \"荚\",\n\"莧\": \"苋\",\n\"菕\": \"芲\",\n\"華\": \"华\",\n\"菴\": \"庵\",\n\"菸\": \"烟\",\n\"萇\": \"苌\",\n\"萊\": \"莱\",\n\"萧乾\": \"萧乾\",\n\"萬\": \"万\",\n\"萲\": \"萱\",\n\"萴\": \"荝\",\n\"萵\": \"莴\",\n\"葉\": \"叶\",\n\"葒\": \"荭\",\n\"著作\": \"著作\",\n\"著名\": \"著名\",\n\"著文\": \"著文\",\n\"著書\": \"著书\",\n\"著書立說\": \"著书立说\",\n\"著有\": \"著有\",\n\"著稱\": \"著称\",\n\"著者\": \"著者\",\n\"著身\": \"著身\",\n\"著述\": \"著述\",\n\"著錄\": \"著录\",\n\"著錄規則\": \"著录规则\",\n\"葝\": \"𫈎\",\n\"葠\": \"参\",\n\"葤\": \"荮\",\n\"葦\": \"苇\",\n\"葯\": \"药\",\n\"葷\": \"荤\",\n\"蒍\": \"𫇭\",\n\"蒐\": \"搜\",\n\"蒐採\": \"搜采\",\n\"蒐索\": \"搜索\",\n\"蒐羅\": \"搜罗\",\n\"蒐藏\": \"搜藏\",\n\"蒐證\": \"搜证\",\n\"蒐購\": \"搜购\",\n\"蒐輯\": \"搜辑\",\n\"蒐采\": \"搜采\",\n\"蒐錄\": \"搜录\",\n\"蒐集\": \"搜集\",\n\"蒓\": \"莼\",\n\"蒔\": \"莳\",\n\"蒕\": \"蒀\",\n\"蒞\": \"莅\",\n\"蒭\": \"𫇴\",\n\"蒼\": \"苍\",\n\"蓀\": \"荪\",\n\"蓆\": \"席\",\n\"蓋\": \"盖\",\n\"蓡\": \"参\",\n\"蓧\": \"𦰏\",\n\"蓮\": \"莲\",\n\"蓯\": \"苁\",\n\"蓴\": \"莼\",\n\"蓽\": \"荜\",\n\"蔄\": \"𬜬\",\n\"蔔\": \"卜\",\n\"蔕\": \"蒂\",\n\"蔘\": \"参\",\n\"蔞\": \"蒌\",\n\"蔡孝乾\": \"蔡孝乾\",\n\"蔡絛\": \"蔡絛\",\n\"蔣\": \"蒋\",\n\"蔥\": \"葱\",\n\"蔦\": \"茑\",\n\"蔭\": \"荫\",\n\"蔯\": \"𫈟\",\n\"蔿\": \"𫇭\",\n\"蕁\": \"荨\",\n\"蕆\": \"蒇\",\n\"蕎\": \"荞\",\n\"蕒\": \"荬\",\n\"蕓\": \"芸\",\n\"蕕\": \"莸\",\n\"蕘\": \"荛\",\n\"蕚\": \"萼\",\n\"蕝\": \"𫈵\",\n\"蕢\": \"蒉\",\n\"蕩\": \"荡\",\n\"蕪\": \"芜\",\n\"蕭\": \"萧\",\n\"蕭乾\": \"萧乾\",\n\"蕳\": \"𫈉\",\n\"蕷\": \"蓣\",\n\"蕽\": \"𫇽\",\n\"蕿\": \"萱\",\n\"薀\": \"蕰\",\n\"薆\": \"𫉁\",\n\"薈\": \"荟\",\n\"薊\": \"蓟\",\n\"薌\": \"芗\",\n\"薑\": \"姜\",\n\"薔\": \"蔷\",\n\"薘\": \"荙\",\n\"薟\": \"莶\",\n\"薦\": \"荐\",\n\"薩\": \"萨\",\n\"薰心\": \"熏心\",\n\"薰沐\": \"熏沐\",\n\"薰習\": \"熏习\",\n\"薰陶\": \"熏陶\",\n\"薰香\": \"熏香\",\n\"薳\": \"䓕\",\n\"薴\": \"苧\",\n\"薴烯\": \"苧烯\",\n\"薵\": \"䓓\",\n\"薺\": \"荠\",\n\"藉助\": \"借助\",\n\"藉口\": \"借口\",\n\"藉手\": \"借手\",\n\"藉故\": \"借故\",\n\"藉機\": \"借机\",\n\"藉此\": \"借此\",\n\"藉由\": \"借由\",\n\"藉端\": \"借端\",\n\"藉詞\": \"借词\",\n\"藍\": \"蓝\",\n\"藎\": \"荩\",\n\"藝\": \"艺\",\n\"藥\": \"药\",\n\"藪\": \"薮\",\n\"藭\": \"䓖\",\n\"藴\": \"蕴\",\n\"藶\": \"苈\",\n\"藷\": \"𫉄\",\n\"藹\": \"蔼\",\n\"藺\": \"蔺\",\n\"藼\": \"萱\",\n\"蘀\": \"萚\",\n\"蘄\": \"蕲\",\n\"蘆\": \"芦\",\n\"蘇\": \"苏\",\n\"蘇崑\": \"苏昆\",\n\"蘊\": \"蕴\",\n\"蘋\": \"𬞟\",\n\"蘋婆\": \"苹婆\",\n\"蘋果\": \"苹果\",\n\"蘐\": \"萱\",\n\"蘓\": \"苏\",\n\"蘚\": \"藓\",\n\"蘞\": \"蔹\",\n\"蘟\": \"𦻕\",\n\"蘢\": \"茏\",\n\"蘤\": \"花\",\n\"蘭\": \"兰\",\n\"蘭質薰心\": \"兰质薰心\",\n\"蘺\": \"蓠\",\n\"蘿\": \"萝\",\n\"虆\": \"蔂\",\n\"虉\": \"𬟁\",\n\"處\": \"处\",\n\"虛\": \"虚\",\n\"虜\": \"虏\",\n\"號\": \"号\",\n\"虧\": \"亏\",\n\"虯\": \"虬\",\n\"蚘\": \"蛔\",\n\"蛕\": \"蛔\",\n\"蛺\": \"蛱\",\n\"蛻\": \"蜕\",\n\"蜆\": \"蚬\",\n\"蜋\": \"螂\",\n\"蜖\": \"蛔\",\n\"蜨\": \"蝶\",\n\"蝀\": \"𬟽\",\n\"蝕\": \"蚀\",\n\"蝟\": \"猬\",\n\"蝦\": \"虾\",\n\"蝨\": \"虱\",\n\"蝯\": \"猿\",\n\"蝱\": \"虻\",\n\"蝸\": \"蜗\",\n\"螄\": \"蛳\",\n\"螎\": \"融\",\n\"螞\": \"蚂\",\n\"螡\": \"蚊\",\n\"螢\": \"萤\",\n\"螮\": \"䗖\",\n\"螻\": \"蝼\",\n\"螿\": \"螀\",\n\"蟁\": \"蚊\",\n\"蟂\": \"𫋇\",\n\"蟄\": \"蛰\",\n\"蟇\": \"蟆\",\n\"蟈\": \"蝈\",\n\"蟎\": \"螨\",\n\"蟘\": \"𫋌\",\n\"蟜\": \"𫊸\",\n\"蟣\": \"虮\",\n\"蟬\": \"蝉\",\n\"蟯\": \"蛲\",\n\"蟲\": \"虫\",\n\"蟳\": \"𫊻\",\n\"蟶\": \"蛏\",\n\"蟻\": \"蚁\",\n\"蠀\": \"𧏗\",\n\"蠁\": \"蚃\",\n\"蠅\": \"蝇\",\n\"蠆\": \"虿\",\n\"蠍\": \"蝎\",\n\"蠏\": \"蟹\",\n\"蠐\": \"蛴\",\n\"蠑\": \"蝾\",\n\"蠒\": \"茧\",\n\"蠔\": \"蚝\",\n\"蠙\": \"𧏖\",\n\"蠟\": \"蜡\",\n\"蠣\": \"蛎\",\n\"蠦\": \"𫊮\",\n\"蠨\": \"蟏\",\n\"蠭\": \"蜂\",\n\"蠱\": \"蛊\",\n\"蠶\": \"蚕\",\n\"蠻\": \"蛮\",\n\"蠾\": \"𧑏\",\n\"衂\": \"衄\",\n\"衆\": \"众\",\n\"衇\": \"脉\",\n\"衊\": \"蔑\",\n\"行餘\": \"行馀\",\n\"術\": \"术\",\n\"衕\": \"同\",\n\"衚\": \"胡\",\n\"衛\": \"卫\",\n\"衝\": \"冲\",\n\"衞\": \"卫\",\n\"衺\": \"邪\",\n\"袞\": \"衮\",\n\"袟\": \"帙\",\n\"袵\": \"衽\",\n\"裊\": \"袅\",\n\"裌\": \"袷\",\n\"裏\": \"里\",\n\"補\": \"补\",\n\"裝\": \"装\",\n\"裠\": \"裙\",\n\"裡\": \"里\",\n\"製\": \"制\",\n\"複\": \"复\",\n\"褌\": \"裈\",\n\"褘\": \"袆\",\n\"褭\": \"袅\",\n\"褲\": \"裤\",\n\"褳\": \"裢\",\n\"褸\": \"褛\",\n\"褻\": \"亵\",\n\"襀\": \"𫌀\",\n\"襃\": \"褒\",\n\"襆\": \"幞\",\n\"襇\": \"裥\",\n\"襉\": \"裥\",\n\"襍\": \"杂\",\n\"襏\": \"袯\",\n\"襓\": \"𫋹\",\n\"襖\": \"袄\",\n\"襗\": \"𫋷\",\n\"襘\": \"𫋻\",\n\"襝\": \"裣\",\n\"襠\": \"裆\",\n\"襤\": \"褴\",\n\"襪\": \"袜\",\n\"襬\": \"䙓\",\n\"襯\": \"衬\",\n\"襰\": \"𧝝\",\n\"襲\": \"袭\",\n\"襴\": \"襕\",\n\"襵\": \"𫌇\",\n\"西崑\": \"西昆\",\n\"覆審\": \"复审\",\n\"覆查\": \"复查\",\n\"覆核\": \"复核\",\n\"覆檢\": \"复检\",\n\"覆蓋\": \"覆盖\",\n\"覇\": \"霸\",\n\"覈\": \"核\",\n\"覊\": \"羁\",\n\"見\": \"见\",\n\"見微知著\": \"见微知著\",\n\"見著\": \"见著\",\n\"覎\": \"觃\",\n\"規\": \"规\",\n\"覓\": \"觅\",\n\"覔\": \"觅\",\n\"視\": \"视\",\n\"視微知著\": \"视微知著\",\n\"覘\": \"觇\",\n\"覛\": \"𫌪\",\n\"覡\": \"觋\",\n\"覥\": \"觍\",\n\"覦\": \"觎\",\n\"覩\": \"睹\",\n\"親\": \"亲\",\n\"覬\": \"觊\",\n\"覯\": \"觏\",\n\"覲\": \"觐\",\n\"覷\": \"觑\",\n\"覹\": \"𫌭\",\n\"覺\": \"觉\",\n\"覼\": \"𫌨\",\n\"覽\": \"览\",\n\"覿\": \"觌\",\n\"觀\": \"观\",\n\"觔斗\": \"斤斗\",\n\"觝\": \"抵\",\n\"觴\": \"觞\",\n\"觶\": \"觯\",\n\"觸\": \"触\",\n\"言幾析理\": \"言幾析理\",\n\"訁\": \"讠\",\n\"訂\": \"订\",\n\"訃\": \"讣\",\n\"計\": \"计\",\n\"訊\": \"讯\",\n\"訌\": \"讧\",\n\"討\": \"讨\",\n\"訏\": \"𬣙\",\n\"訐\": \"讦\",\n\"訑\": \"𫍙\",\n\"訒\": \"讱\",\n\"訓\": \"训\",\n\"訕\": \"讪\",\n\"訖\": \"讫\",\n\"託\": \"托\",\n\"託庸\": \"讬庸\",\n\"託恩多\": \"讬恩多\",\n\"託麻\": \"讬麻\",\n\"記\": \"记\",\n\"訛\": \"讹\",\n\"訜\": \"𫍛\",\n\"訝\": \"讶\",\n\"訞\": \"𫍚\",\n\"訟\": \"讼\",\n\"訢\": \"䜣\",\n\"訣\": \"诀\",\n\"訥\": \"讷\",\n\"訨\": \"𫟞\",\n\"訩\": \"讻\",\n\"訪\": \"访\",\n\"設\": \"设\",\n\"許\": \"许\",\n\"訴\": \"诉\",\n\"訶\": \"诃\",\n\"診\": \"诊\",\n\"註\": \"注\",\n\"証\": \"证\",\n\"詀\": \"𧮪\",\n\"詁\": \"诂\",\n\"詆\": \"诋\",\n\"詊\": \"𫟟\",\n\"詎\": \"讵\",\n\"詐\": \"诈\",\n\"詑\": \"𫍡\",\n\"詒\": \"诒\",\n\"詓\": \"𫍜\",\n\"詔\": \"诏\",\n\"評\": \"评\",\n\"詖\": \"诐\",\n\"詗\": \"诇\",\n\"詘\": \"诎\",\n\"詛\": \"诅\",\n\"詝\": \"𬣞\",\n\"詞\": \"词\",\n\"詠\": \"咏\",\n\"詡\": \"诩\",\n\"詢\": \"询\",\n\"詣\": \"诣\",\n\"試\": \"试\",\n\"詩\": \"诗\",\n\"詪\": \"𬣳\",\n\"詫\": \"诧\",\n\"詬\": \"诟\",\n\"詭\": \"诡\",\n\"詮\": \"诠\",\n\"詰\": \"诘\",\n\"話\": \"话\",\n\"該\": \"该\",\n\"詳\": \"详\",\n\"詵\": \"诜\",\n\"詶\": \"酬\",\n\"詷\": \"𫍣\",\n\"詼\": \"诙\",\n\"詿\": \"诖\",\n\"誂\": \"𫍥\",\n\"誄\": \"诔\",\n\"誅\": \"诛\",\n\"誆\": \"诓\",\n\"誇\": \"夸\",\n\"誋\": \"𫍪\",\n\"誌\": \"志\",\n\"認\": \"认\",\n\"誑\": \"诳\",\n\"誒\": \"诶\",\n\"誕\": \"诞\",\n\"誖\": \"悖\",\n\"誘\": \"诱\",\n\"誚\": \"诮\",\n\"語\": \"语\",\n\"誠\": \"诚\",\n\"誡\": \"诫\",\n\"誣\": \"诬\",\n\"誤\": \"误\",\n\"誥\": \"诰\",\n\"誦\": \"诵\",\n\"誨\": \"诲\",\n\"說\": \"说\",\n\"誫\": \"𫍨\",\n\"説\": \"说\",\n\"誰\": \"谁\",\n\"課\": \"课\",\n\"誳\": \"𫍮\",\n\"誴\": \"𫟡\",\n\"誶\": \"谇\",\n\"誷\": \"𫍬\",\n\"誹\": \"诽\",\n\"誺\": \"𫍧\",\n\"誼\": \"谊\",\n\"誾\": \"訚\",\n\"調\": \"调\",\n\"諂\": \"谄\",\n\"諄\": \"谆\",\n\"談\": \"谈\",\n\"諉\": \"诿\",\n\"請\": \"请\",\n\"諍\": \"诤\",\n\"諏\": \"诹\",\n\"諑\": \"诼\",\n\"諒\": \"谅\",\n\"諓\": \"𬣡\",\n\"論\": \"论\",\n\"論著\": \"论著\",\n\"諗\": \"谂\",\n\"諛\": \"谀\",\n\"諜\": \"谍\",\n\"諝\": \"谞\",\n\"諞\": \"谝\",\n\"諟\": \"𬤊\",\n\"諠譁\": \"喧哗\",\n\"諡\": \"谥\",\n\"諢\": \"诨\",\n\"諣\": \"𫍩\",\n\"諤\": \"谔\",\n\"諥\": \"𫍳\",\n\"諦\": \"谛\",\n\"諧\": \"谐\",\n\"諫\": \"谏\",\n\"諭\": \"谕\",\n\"諮\": \"谘\",\n\"諯\": \"𫍱\",\n\"諰\": \"𫍰\",\n\"諱\": \"讳\",\n\"諲\": \"𬤇\",\n\"諲譔\": \"諲譔\",\n\"諳\": \"谙\",\n\"諴\": \"𫍯\",\n\"諶\": \"谌\",\n\"諷\": \"讽\",\n\"諸\": \"诸\",\n\"諺\": \"谚\",\n\"諼\": \"谖\",\n\"諾\": \"诺\",\n\"謀\": \"谋\",\n\"謁\": \"谒\",\n\"謂\": \"谓\",\n\"謄\": \"誊\",\n\"謅\": \"诌\",\n\"謆\": \"𫍸\",\n\"謉\": \"𫍷\",\n\"謊\": \"谎\",\n\"謌\": \"歌\",\n\"謎\": \"谜\",\n\"謏\": \"𫍲\",\n\"謐\": \"谧\",\n\"謔\": \"谑\",\n\"謖\": \"谡\",\n\"謗\": \"谤\",\n\"謙\": \"谦\",\n\"謚\": \"谥\",\n\"講\": \"讲\",\n\"謝\": \"谢\",\n\"謝肇淛\": \"谢肇淛\",\n\"謠\": \"谣\",\n\"謡\": \"谣\",\n\"謨\": \"谟\",\n\"謫\": \"谪\",\n\"謬\": \"谬\",\n\"謭\": \"谫\",\n\"謯\": \"𫍹\",\n\"謱\": \"𫍴\",\n\"謳\": \"讴\",\n\"謸\": \"𫍵\",\n\"謹\": \"谨\",\n\"謾\": \"谩\",\n\"譁\": \"哗\",\n\"譂\": \"𫟠\",\n\"譅\": \"䜧\",\n\"譆\": \"𫍻\",\n\"證\": \"证\",\n\"譊\": \"𫍢\",\n\"譌\": \"讹\",\n\"譎\": \"谲\",\n\"譏\": \"讥\",\n\"譑\": \"𫍤\",\n\"譓\": \"𬤝\",\n\"譔\": \"撰\",\n\"譖\": \"谮\",\n\"識\": \"识\",\n\"譙\": \"谯\",\n\"譚\": \"谭\",\n\"譜\": \"谱\",\n\"譞\": \"𫍽\",\n\"譟\": \"噪\",\n\"譨\": \"𫍦\",\n\"譩譆\": \"譩譆\",\n\"譫\": \"谵\",\n\"譭\": \"毁\",\n\"譯\": \"译\",\n\"譯著\": \"译著\",\n\"議\": \"议\",\n\"譴\": \"谴\",\n\"護\": \"护\",\n\"譸\": \"诪\",\n\"譽\": \"誉\",\n\"譾\": \"谫\",\n\"讀\": \"读\",\n\"讁\": \"谪\",\n\"讅\": \"谉\",\n\"變\": \"变\",\n\"讋\": \"詟\",\n\"讌\": \"䜩\",\n\"讎\": \"雠\",\n\"讎問\": \"雠问\",\n\"讎夷\": \"雠夷\",\n\"讎定\": \"雠定\",\n\"讎校\": \"雠校\",\n\"讎正\": \"雠正\",\n\"讐\": \"雠\",\n\"讒\": \"谗\",\n\"讓\": \"让\",\n\"讕\": \"谰\",\n\"讖\": \"谶\",\n\"讚\": \"赞\",\n\"讜\": \"谠\",\n\"讞\": \"谳\",\n\"谢肇淛\": \"谢肇淛\",\n\"豈\": \"岂\",\n\"豎\": \"竖\",\n\"豐\": \"丰\",\n\"豓\": \"艳\",\n\"豔\": \"艳\",\n\"象乾\": \"象乾\",\n\"豬\": \"猪\",\n\"豵\": \"𫎆\",\n\"豶\": \"豮\",\n\"貍\": \"狸\",\n\"貓\": \"猫\",\n\"貗\": \"𫎌\",\n\"貙\": \"䝙\",\n\"貛\": \"獾\",\n\"貝\": \"贝\",\n\"貞\": \"贞\",\n\"貟\": \"贠\",\n\"負\": \"负\",\n\"財\": \"财\",\n\"貢\": \"贡\",\n\"貧\": \"贫\",\n\"貨\": \"货\",\n\"販\": \"贩\",\n\"貪\": \"贪\",\n\"貫\": \"贯\",\n\"責\": \"责\",\n\"貯\": \"贮\",\n\"貰\": \"贳\",\n\"貲\": \"赀\",\n\"貳\": \"贰\",\n\"貴\": \"贵\",\n\"貶\": \"贬\",\n\"買\": \"买\",\n\"貸\": \"贷\",\n\"貺\": \"贶\",\n\"費\": \"费\",\n\"貼\": \"贴\",\n\"貽\": \"贻\",\n\"貿\": \"贸\",\n\"賀\": \"贺\",\n\"賁\": \"贲\",\n\"賂\": \"赂\",\n\"賃\": \"赁\",\n\"賄\": \"贿\",\n\"賅\": \"赅\",\n\"資\": \"资\",\n\"賈\": \"贾\",\n\"賉\": \"恤\",\n\"賊\": \"贼\",\n\"賑\": \"赈\",\n\"賒\": \"赊\",\n\"賓\": \"宾\",\n\"賕\": \"赇\",\n\"賙\": \"赒\",\n\"賚\": \"赉\",\n\"賛\": \"赞\",\n\"賜\": \"赐\",\n\"賝\": \"𫎩\",\n\"賞\": \"赏\",\n\"賟\": \"𧹖\",\n\"賠\": \"赔\",\n\"賡\": \"赓\",\n\"賢\": \"贤\",\n\"賣\": \"卖\",\n\"賤\": \"贱\",\n\"賦\": \"赋\",\n\"賧\": \"赕\",\n\"質\": \"质\",\n\"賫\": \"赍\",\n\"賬\": \"账\",\n\"賭\": \"赌\",\n\"賰\": \"䞐\",\n\"賴\": \"赖\",\n\"賵\": \"赗\",\n\"賷\": \"赍\",\n\"賺\": \"赚\",\n\"賻\": \"赙\",\n\"購\": \"购\",\n\"賽\": \"赛\",\n\"賾\": \"赜\",\n\"贃\": \"𧹗\",\n\"贄\": \"贽\",\n\"贅\": \"赘\",\n\"贇\": \"赟\",\n\"贈\": \"赠\",\n\"贉\": \"𫎫\",\n\"贊\": \"赞\",\n\"贋\": \"赝\",\n\"贍\": \"赡\",\n\"贏\": \"赢\",\n\"贐\": \"赆\",\n\"贑\": \"𫎬\",\n\"贓\": \"赃\",\n\"贔\": \"赑\",\n\"贖\": \"赎\",\n\"贗\": \"赝\",\n\"贚\": \"𫎦\",\n\"贛\": \"赣\",\n\"贜\": \"赃\",\n\"赬\": \"赪\",\n\"趂\": \"趁\",\n\"趕\": \"赶\",\n\"趙\": \"赵\",\n\"趨\": \"趋\",\n\"趲\": \"趱\",\n\"跡\": \"迹\",\n\"跥\": \"跺\",\n\"跼促\": \"局促\",\n\"跼限\": \"局限\",\n\"踁\": \"胫\",\n\"踐\": \"践\",\n\"踫\": \"碰\",\n\"踰\": \"逾\",\n\"踴\": \"踊\",\n\"蹌\": \"跄\",\n\"蹏\": \"蹄\",\n\"蹔\": \"𫏐\",\n\"蹕\": \"跸\",\n\"蹟\": \"迹\",\n\"蹠\": \"跖\",\n\"蹣\": \"蹒\",\n\"蹤\": \"踪\",\n\"蹧\": \"糟\",\n\"蹳\": \"𫏆\",\n\"蹵\": \"蹴\",\n\"蹺\": \"跷\",\n\"蹻\": \"𫏋\",\n\"躂\": \"跶\",\n\"躉\": \"趸\",\n\"躊\": \"踌\",\n\"躊躇滿志\": \"踌躇滿志\",\n\"躋\": \"跻\",\n\"躍\": \"跃\",\n\"躎\": \"䟢\",\n\"躑\": \"踯\",\n\"躒\": \"跞\",\n\"躓\": \"踬\",\n\"躕\": \"蹰\",\n\"躘\": \"𨀁\",\n\"躚\": \"跹\",\n\"躝\": \"𨅬\",\n\"躡\": \"蹑\",\n\"躥\": \"蹿\",\n\"躦\": \"躜\",\n\"躪\": \"躏\",\n\"躭\": \"耽\",\n\"躳\": \"躬\",\n\"躶\": \"裸\",\n\"軀\": \"躯\",\n\"軉\": \"𨉗\",\n\"車\": \"车\",\n\"軋\": \"轧\",\n\"軌\": \"轨\",\n\"軍\": \"军\",\n\"軏\": \"𫐄\",\n\"軑\": \"轪\",\n\"軒\": \"轩\",\n\"軔\": \"轫\",\n\"軕\": \"𫐅\",\n\"軗\": \"𨐅\",\n\"軛\": \"轭\",\n\"軜\": \"𫐇\",\n\"軝\": \"𬨂\",\n\"軟\": \"软\",\n\"軤\": \"轷\",\n\"軨\": \"𫐉\",\n\"軫\": \"轸\",\n\"軬\": \"𫐊\",\n\"軲\": \"轱\",\n\"軷\": \"𫐈\",\n\"軸\": \"轴\",\n\"軹\": \"轵\",\n\"軺\": \"轺\",\n\"軻\": \"轲\",\n\"軼\": \"轶\",\n\"軾\": \"轼\",\n\"軿\": \"𫐌\",\n\"較\": \"较\",\n\"較著\": \"较著\",\n\"輄\": \"𨐈\",\n\"輅\": \"辂\",\n\"輇\": \"辁\",\n\"輈\": \"辀\",\n\"載\": \"载\",\n\"輊\": \"轾\",\n\"輋\": \"𪨶\",\n\"輒\": \"辄\",\n\"輓\": \"挽\",\n\"輔\": \"辅\",\n\"輕\": \"轻\",\n\"輖\": \"𫐏\",\n\"輗\": \"𫐐\",\n\"輙\": \"辄\",\n\"輛\": \"辆\",\n\"輜\": \"辎\",\n\"輝\": \"辉\",\n\"輞\": \"辋\",\n\"輟\": \"辍\",\n\"輢\": \"𫐎\",\n\"輥\": \"辊\",\n\"輦\": \"辇\",\n\"輨\": \"𫐑\",\n\"輩\": \"辈\",\n\"輪\": \"轮\",\n\"輬\": \"辌\",\n\"輭\": \"软\",\n\"輮\": \"𫐓\",\n\"輯\": \"辑\",\n\"輳\": \"辏\",\n\"輶\": \"𬨎\",\n\"輷\": \"𫐒\",\n\"輸\": \"输\",\n\"輻\": \"辐\",\n\"輼\": \"辒\",\n\"輾\": \"辗\",\n\"輿\": \"舆\",\n\"轀\": \"辒\",\n\"轂\": \"毂\",\n\"轄\": \"辖\",\n\"轅\": \"辕\",\n\"轆\": \"辘\",\n\"轇\": \"𫐖\",\n\"轉\": \"转\",\n\"轊\": \"𫐕\",\n\"轍\": \"辙\",\n\"轎\": \"轿\",\n\"轐\": \"𫐗\",\n\"轔\": \"辚\",\n\"轗\": \"𫐘\",\n\"轟\": \"轰\",\n\"轠\": \"𫐙\",\n\"轡\": \"辔\",\n\"轢\": \"轹\",\n\"轣\": \"𫐆\",\n\"轤\": \"轳\",\n\"辠\": \"罪\",\n\"辢\": \"辣\",\n\"辤\": \"辞\",\n\"辦\": \"办\",\n\"辭\": \"辞\",\n\"辮\": \"辫\",\n\"辯\": \"辩\",\n\"農\": \"农\",\n\"辳\": \"农\",\n\"近角聪信\": \"近角聪信\",\n\"迴\": \"回\",\n\"迻\": \"移\",\n\"逈\": \"迥\",\n\"逕\": \"迳\",\n\"這\": \"这\",\n\"造麴\": \"造曲\",\n\"連\": \"连\",\n\"逥\": \"回\",\n\"逩\": \"奔\",\n\"逬\": \"迸\",\n\"週\": \"周\",\n\"進\": \"进\",\n\"遉\": \"侦\",\n\"遊\": \"游\",\n\"運\": \"运\",\n\"過\": \"过\",\n\"達\": \"达\",\n\"違\": \"违\",\n\"遙\": \"遥\",\n\"遜\": \"逊\",\n\"遞\": \"递\",\n\"遠\": \"远\",\n\"遡\": \"溯\",\n\"適\": \"适\",\n\"遯\": \"遁\",\n\"遱\": \"𫐷\",\n\"遲\": \"迟\",\n\"遶境\": \"绕境\",\n\"遷\": \"迁\",\n\"選\": \"选\",\n\"遺\": \"遗\",\n\"遺著\": \"遗著\",\n\"遼\": \"辽\",\n\"邁\": \"迈\",\n\"還\": \"还\",\n\"邇\": \"迩\",\n\"邊\": \"边\",\n\"邏\": \"逻\",\n\"邐\": \"逦\",\n\"郟\": \"郏\",\n\"郭子乾\": \"郭子乾\",\n\"郵\": \"邮\",\n\"鄆\": \"郓\",\n\"鄉\": \"乡\",\n\"鄒\": \"邹\",\n\"鄔\": \"邬\",\n\"鄖\": \"郧\",\n\"鄟\": \"𫑘\",\n\"鄧\": \"邓\",\n\"鄩\": \"𬩽\",\n\"鄭\": \"郑\",\n\"鄭蘋如\": \"郑苹如\",\n\"鄰\": \"邻\",\n\"鄲\": \"郸\",\n\"鄳\": \"𫑡\",\n\"鄴\": \"邺\",\n\"鄶\": \"郐\",\n\"鄺\": \"邝\",\n\"酇\": \"酂\",\n\"酈\": \"郦\",\n\"酒麴\": \"酒曲\",\n\"酖\": \"鸩\",\n\"酧\": \"酬\",\n\"醃\": \"腌\",\n\"醆\": \"盏\",\n\"醉瀋\": \"醉渖\",\n\"醕\": \"醇\",\n\"醖\": \"酝\",\n\"醜\": \"丑\",\n\"醞\": \"酝\",\n\"醟\": \"蒏\",\n\"醣\": \"糖\",\n\"醫\": \"医\",\n\"醬\": \"酱\",\n\"醯\": \"酰\",\n\"醯壶\": \"醯壶\",\n\"醯壺\": \"醯壶\",\n\"醯酱\": \"醯酱\",\n\"醯醋\": \"醯醋\",\n\"醯醢\": \"醯醢\",\n\"醯醬\": \"醯酱\",\n\"醯雞\": \"醯鸡\",\n\"醯鸡\": \"醯鸡\",\n\"醱\": \"酦\",\n\"醲\": \"𬪩\",\n\"醶\": \"𫑷\",\n\"醻\": \"酬\",\n\"醼\": \"宴\",\n\"釀\": \"酿\",\n\"釁\": \"衅\",\n\"釃\": \"酾\",\n\"釅\": \"酽\",\n\"釋\": \"释\",\n\"重覆\": \"重复\",\n\"釐\": \"厘\",\n\"釐改\": \"厘改\",\n\"釐整\": \"厘整\",\n\"釐正\": \"厘正\",\n\"釐毫\": \"厘毫\",\n\"釐清\": \"厘清\",\n\"釐米\": \"厘米\",\n\"釐訂\": \"厘订\",\n\"釐革\": \"厘革\",\n\"金鍊\": \"金链\",\n\"釒\": \"钅\",\n\"釓\": \"钆\",\n\"釔\": \"钇\",\n\"釕\": \"钌\",\n\"釗\": \"钊\",\n\"釘\": \"钉\",\n\"釙\": \"钋\",\n\"釚\": \"𫟲\",\n\"針\": \"针\",\n\"釟\": \"𫓥\",\n\"釣\": \"钓\",\n\"釤\": \"钐\",\n\"釦\": \"扣\",\n\"釧\": \"钏\",\n\"釨\": \"𫓦\",\n\"釩\": \"钒\",\n\"釬\": \"焊\",\n\"釲\": \"𫟳\",\n\"釳\": \"𨰿\",\n\"釴\": \"𬬩\",\n\"釵\": \"钗\",\n\"釷\": \"钍\",\n\"釹\": \"钕\",\n\"釺\": \"钎\",\n\"釾\": \"䥺\",\n\"釿\": \"𬬱\",\n\"鈀\": \"钯\",\n\"鈁\": \"钫\",\n\"鈃\": \"钘\",\n\"鈄\": \"钭\",\n\"鈅\": \"钥\",\n\"鈆\": \"𫓪\",\n\"鈇\": \"𫓧\",\n\"鈈\": \"钚\",\n\"鈉\": \"钠\",\n\"鈋\": \"𨱂\",\n\"鈍\": \"钝\",\n\"鈎\": \"钩\",\n\"鈐\": \"钤\",\n\"鈑\": \"钣\",\n\"鈒\": \"钑\",\n\"鈔\": \"钞\",\n\"鈕\": \"钮\",\n\"鈖\": \"𫟴\",\n\"鈗\": \"𫟵\",\n\"鈛\": \"𫓨\",\n\"鈞\": \"钧\",\n\"鈠\": \"𨱁\",\n\"鈡\": \"钟\",\n\"鈣\": \"钙\",\n\"鈥\": \"钬\",\n\"鈦\": \"钛\",\n\"鈧\": \"钪\",\n\"鈮\": \"铌\",\n\"鈯\": \"𨱄\",\n\"鈰\": \"铈\",\n\"鈲\": \"𨱃\",\n\"鈳\": \"钶\",\n\"鈴\": \"铃\",\n\"鈷\": \"钴\",\n\"鈸\": \"钹\",\n\"鈹\": \"铍\",\n\"鈺\": \"钰\",\n\"鈽\": \"钸\",\n\"鈾\": \"铀\",\n\"鈿\": \"钿\",\n\"鉀\": \"钾\",\n\"鉁\": \"𨱅\",\n\"鉄\": \"铁\",\n\"鉅\": \"钜\",\n\"鉆\": \"钻\",\n\"鉈\": \"铊\",\n\"鉉\": \"铉\",\n\"鉊\": \"𬬿\",\n\"鉋\": \"铇\",\n\"鉍\": \"铋\",\n\"鉑\": \"铂\",\n\"鉔\": \"𫓬\",\n\"鉕\": \"钷\",\n\"鉗\": \"钳\",\n\"鉚\": \"铆\",\n\"鉛\": \"铅\",\n\"鉝\": \"𫟷\",\n\"鉞\": \"钺\",\n\"鉠\": \"𫓭\",\n\"鉢\": \"钵\",\n\"鉤\": \"钩\",\n\"鉥\": \"𬬸\",\n\"鉦\": \"钲\",\n\"鉧\": \"𬭁\",\n\"鉬\": \"钼\",\n\"鉭\": \"钽\",\n\"鉮\": \"𬬹\",\n\"鉳\": \"锫\",\n\"鉶\": \"铏\",\n\"鉷\": \"𫟹\",\n\"鉸\": \"铰\",\n\"鉸鍊\": \"铰链\",\n\"鉺\": \"铒\",\n\"鉻\": \"铬\",\n\"鉽\": \"𫟸\",\n\"鉾\": \"𫓴\",\n\"鉿\": \"铪\",\n\"銀\": \"银\",\n\"銀鍊\": \"银链\",\n\"銁\": \"𫓲\",\n\"銂\": \"𫟻\",\n\"銃\": \"铳\",\n\"銅\": \"铜\",\n\"銈\": \"𫓯\",\n\"銊\": \"𫓰\",\n\"銍\": \"铚\",\n\"銏\": \"𫟶\",\n\"銑\": \"铣\",\n\"銓\": \"铨\",\n\"銖\": \"铢\",\n\"銘\": \"铭\",\n\"銚\": \"铫\",\n\"銛\": \"铦\",\n\"銜\": \"衔\",\n\"銠\": \"铑\",\n\"銣\": \"铷\",\n\"銥\": \"铱\",\n\"銦\": \"铟\",\n\"銨\": \"铵\",\n\"銩\": \"铥\",\n\"銪\": \"铕\",\n\"銫\": \"铯\",\n\"銬\": \"铐\",\n\"銱\": \"铞\",\n\"銲\": \"焊\",\n\"銳\": \"锐\",\n\"銶\": \"𨱇\",\n\"銷\": \"销\",\n\"銹\": \"锈\",\n\"銻\": \"锑\",\n\"銼\": \"锉\",\n\"鋁\": \"铝\",\n\"鋂\": \"镅\",\n\"鋃\": \"锒\",\n\"鋅\": \"锌\",\n\"鋇\": \"钡\",\n\"鋉\": \"𨱈\",\n\"鋌\": \"铤\",\n\"鋏\": \"铗\",\n\"鋐\": \"𬭎\",\n\"鋒\": \"锋\",\n\"鋗\": \"𫓶\",\n\"鋙\": \"铻\",\n\"鋝\": \"锊\",\n\"鋟\": \"锓\",\n\"鋠\": \"𫓵\",\n\"鋣\": \"铘\",\n\"鋤\": \"锄\",\n\"鋥\": \"锃\",\n\"鋦\": \"锔\",\n\"鋨\": \"锇\",\n\"鋩\": \"铓\",\n\"鋪\": \"铺\",\n\"鋭\": \"锐\",\n\"鋮\": \"铖\",\n\"鋯\": \"锆\",\n\"鋰\": \"锂\",\n\"鋱\": \"铽\",\n\"鋶\": \"锍\",\n\"鋸\": \"锯\",\n\"鋹\": \"𬬮\",\n\"鋼\": \"钢\",\n\"錀\": \"𬬭\",\n\"錁\": \"锞\",\n\"錂\": \"𨱋\",\n\"錄\": \"录\",\n\"錆\": \"锖\",\n\"錇\": \"锫\",\n\"錈\": \"锩\",\n\"錏\": \"铔\",\n\"錐\": \"锥\",\n\"錒\": \"锕\",\n\"錕\": \"锟\",\n\"錘\": \"锤\",\n\"錙\": \"锱\",\n\"錚\": \"铮\",\n\"錛\": \"锛\",\n\"錜\": \"𫓻\",\n\"錝\": \"𫓽\",\n\"錞\": \"𬭚\",\n\"錟\": \"锬\",\n\"錠\": \"锭\",\n\"錡\": \"锜\",\n\"錢\": \"钱\",\n\"錤\": \"𫓹\",\n\"錥\": \"𫓾\",\n\"錦\": \"锦\",\n\"錨\": \"锚\",\n\"錩\": \"锠\",\n\"錫\": \"锡\",\n\"錮\": \"锢\",\n\"錯\": \"错\",\n\"録\": \"录\",\n\"錳\": \"锰\",\n\"錶\": \"表\",\n\"錸\": \"铼\",\n\"錼\": \"镎\",\n\"錽\": \"𫓸\",\n\"鍀\": \"锝\",\n\"鍁\": \"锨\",\n\"鍃\": \"锪\",\n\"鍄\": \"𨱉\",\n\"鍅\": \"钫\",\n\"鍆\": \"钔\",\n\"鍇\": \"锴\",\n\"鍈\": \"锳\",\n\"鍉\": \"𫔂\",\n\"鍊\": \"炼\",\n\"鍊子\": \"链子\",\n\"鍊條\": \"链条\",\n\"鍊狀\": \"链状\",\n\"鍊表\": \"链表\",\n\"鍊錘\": \"链锤\",\n\"鍊鎖\": \"链锁\",\n\"鍋\": \"锅\",\n\"鍍\": \"镀\",\n\"鍒\": \"𫔄\",\n\"鍔\": \"锷\",\n\"鍘\": \"铡\",\n\"鍚\": \"钖\",\n\"鍛\": \"锻\",\n\"鍠\": \"锽\",\n\"鍤\": \"锸\",\n\"鍥\": \"锲\",\n\"鍩\": \"锘\",\n\"鍫\": \"锹\",\n\"鍬\": \"锹\",\n\"鍭\": \"𬭤\",\n\"鍮\": \"𨱎\",\n\"鍰\": \"锾\",\n\"鍳\": \"鉴\",\n\"鍵\": \"键\",\n\"鍶\": \"锶\",\n\"鍺\": \"锗\",\n\"鍼\": \"针\",\n\"鍾\": \"锺\",\n\"鍾情\": \"钟情\",\n\"鍾意\": \"钟意\",\n\"鍾愛\": \"钟爱\",\n\"鍾祥\": \"钟祥\",\n\"鍾靈\": \"钟灵\",\n\"鎂\": \"镁\",\n\"鎄\": \"锿\",\n\"鎇\": \"镅\",\n\"鎈\": \"𫟿\",\n\"鎊\": \"镑\",\n\"鎌\": \"镰\",\n\"鎍\": \"𫔅\",\n\"鎓\": \"𬭩\",\n\"鎔\": \"镕\",\n\"鎖\": \"锁\",\n\"鎖鍊\": \"锁链\",\n\"鎗\": \"枪\",\n\"鎘\": \"镉\",\n\"鎙\": \"𫔈\",\n\"鎚\": \"锤\",\n\"鎛\": \"镈\",\n\"鎝\": \"𨱏\",\n\"鎞\": \"𫔇\",\n\"鎡\": \"镃\",\n\"鎢\": \"钨\",\n\"鎣\": \"蓥\",\n\"鎦\": \"镏\",\n\"鎧\": \"铠\",\n\"鎩\": \"铩\",\n\"鎪\": \"锼\",\n\"鎬\": \"镐\",\n\"鎭\": \"镇\",\n\"鎮\": \"镇\",\n\"鎯\": \"𨱍\",\n\"鎰\": \"镒\",\n\"鎲\": \"镋\",\n\"鎳\": \"镍\",\n\"鎵\": \"镓\",\n\"鎶\": \"鿔\",\n\"鎷\": \"𨰾\",\n\"鎸\": \"镌\",\n\"鎻\": \"锁\",\n\"鎿\": \"镎\",\n\"鏃\": \"镞\",\n\"鏆\": \"𨱌\",\n\"鏇\": \"镟\",\n\"鏈\": \"链\",\n\"鏉\": \"𨱒\",\n\"鏌\": \"镆\",\n\"鏍\": \"镙\",\n\"鏏\": \"𬭬\",\n\"鏐\": \"镠\",\n\"鏑\": \"镝\",\n\"鏗\": \"铿\",\n\"鏘\": \"锵\",\n\"鏚\": \"戚\",\n\"鏜\": \"镗\",\n\"鏝\": \"镘\",\n\"鏞\": \"镛\",\n\"鏟\": \"铲\",\n\"鏡\": \"镜\",\n\"鏢\": \"镖\",\n\"鏤\": \"镂\",\n\"鏥\": \"𫔊\",\n\"鏦\": \"𫓩\",\n\"鏨\": \"錾\",\n\"鏰\": \"镚\",\n\"鏵\": \"铧\",\n\"鏷\": \"镤\",\n\"鏹\": \"镪\",\n\"鏺\": \"䥽\",\n\"鏻\": \"𬭸\",\n\"鏽\": \"锈\",\n\"鏾\": \"𫔌\",\n\"鐃\": \"铙\",\n\"鐄\": \"𨱑\",\n\"鐇\": \"𫔍\",\n\"鐈\": \"𫓱\",\n\"鐋\": \"铴\",\n\"鐍\": \"𫔎\",\n\"鐎\": \"𨱓\",\n\"鐏\": \"𨱔\",\n\"鐐\": \"镣\",\n\"鐒\": \"铹\",\n\"鐓\": \"镦\",\n\"鐔\": \"镡\",\n\"鐗\": \"锏\",\n\"鐘\": \"钟\",\n\"鐙\": \"镫\",\n\"鐝\": \"镢\",\n\"鐠\": \"镨\",\n\"鐥\": \"䦅\",\n\"鐦\": \"锎\",\n\"鐧\": \"锏\",\n\"鐨\": \"镄\",\n\"鐩\": \"𬭼\",\n\"鐪\": \"𫓺\",\n\"鐫\": \"镌\",\n\"鐮\": \"镰\",\n\"鐯\": \"䦃\",\n\"鐲\": \"镯\",\n\"鐳\": \"镭\",\n\"鐵\": \"铁\",\n\"鐵鍊\": \"铁链\",\n\"鐶\": \"镮\",\n\"鐸\": \"铎\",\n\"鐺\": \"铛\",\n\"鐼\": \"𫔁\",\n\"鐽\": \"𫟼\",\n\"鐿\": \"镱\",\n\"鑀\": \"锿\",\n\"鑄\": \"铸\",\n\"鑉\": \"𫠁\",\n\"鑊\": \"镬\",\n\"鑌\": \"镔\",\n\"鑑\": \"鉴\",\n\"鑒\": \"鉴\",\n\"鑔\": \"镲\",\n\"鑕\": \"锧\",\n\"鑚\": \"钻\",\n\"鑛\": \"矿\",\n\"鑞\": \"镴\",\n\"鑠\": \"铄\",\n\"鑣\": \"镳\",\n\"鑤\": \"刨\",\n\"鑥\": \"镥\",\n\"鑪\": \"𬬻\",\n\"鑭\": \"镧\",\n\"鑰\": \"钥\",\n\"鑱\": \"镵\",\n\"鑲\": \"镶\",\n\"鑴\": \"𫔔\",\n\"鑵\": \"罐\",\n\"鑷\": \"镊\",\n\"鑹\": \"镩\",\n\"鑼\": \"锣\",\n\"鑽\": \"钻\",\n\"鑾\": \"銮\",\n\"鑿\": \"凿\",\n\"钁\": \"镢\",\n\"钂\": \"镋\",\n\"镟\": \"旋\",\n\"長\": \"长\",\n\"門\": \"门\",\n\"閂\": \"闩\",\n\"閃\": \"闪\",\n\"閆\": \"闫\",\n\"閈\": \"闬\",\n\"閉\": \"闭\",\n\"開\": \"开\",\n\"閌\": \"闶\",\n\"閍\": \"𨸂\",\n\"閎\": \"闳\",\n\"閏\": \"闰\",\n\"閐\": \"𨸃\",\n\"閑\": \"闲\",\n\"閒\": \"闲\",\n\"間\": \"间\",\n\"閔\": \"闵\",\n\"閗\": \"𫔯\",\n\"閘\": \"闸\",\n\"閙\": \"闹\",\n\"閝\": \"𫠂\",\n\"閞\": \"𫔰\",\n\"閡\": \"阂\",\n\"閣\": \"阁\",\n\"閤\": \"合\",\n\"閥\": \"阀\",\n\"閧\": \"哄\",\n\"閨\": \"闺\",\n\"閩\": \"闽\",\n\"閫\": \"阃\",\n\"閬\": \"阆\",\n\"閭\": \"闾\",\n\"閱\": \"阅\",\n\"閲\": \"阅\",\n\"閵\": \"𫔴\",\n\"閶\": \"阊\",\n\"閹\": \"阉\",\n\"閻\": \"阎\",\n\"閻懷禮\": \"闫怀礼\",\n\"閼\": \"阏\",\n\"閽\": \"阍\",\n\"閾\": \"阈\",\n\"閿\": \"阌\",\n\"闃\": \"阒\",\n\"闆\": \"板\",\n\"闇\": \"暗\",\n\"闇公\": \"闇公\",\n\"闈\": \"闱\",\n\"闉\": \"𬮱\",\n\"闊\": \"阔\",\n\"闋\": \"阕\",\n\"闌\": \"阑\",\n\"闍\": \"阇\",\n\"闐\": \"阗\",\n\"闑\": \"𫔶\",\n\"闒\": \"阘\",\n\"闓\": \"闿\",\n\"闔\": \"阖\",\n\"闕\": \"阙\",\n\"闖\": \"闯\",\n\"闚\": \"窥\",\n\"關\": \"关\",\n\"闞\": \"阚\",\n\"闠\": \"阓\",\n\"闡\": \"阐\",\n\"闢\": \"辟\",\n\"闤\": \"阛\",\n\"闥\": \"闼\",\n\"阨\": \"厄\",\n\"阬\": \"坑\",\n\"阳为乾\": \"阳为乾\",\n\"阿部正瞭\": \"阿部正瞭\",\n\"陆徵祥\": \"陆徵祥\",\n\"陈乾生\": \"陈乾生\",\n\"陈元扞\": \"陈元扞\",\n\"陈公乾生\": \"陈公乾生\",\n\"陈遇乾\": \"陈遇乾\",\n\"陗\": \"峭\",\n\"陘\": \"陉\",\n\"陜\": \"陕\",\n\"陝\": \"陕\",\n\"陞\": \"升\",\n\"陞了\": \"升了\",\n\"陞任\": \"升任\",\n\"陞官\": \"升官\",\n\"陞為\": \"升为\",\n\"陞用\": \"升用\",\n\"陞補\": \"升补\",\n\"陞遷\": \"升迁\",\n\"陣\": \"阵\",\n\"陰\": \"阴\",\n\"陳\": \"陈\",\n\"陳乾生\": \"陈乾生\",\n\"陳元扞\": \"陈元扞\",\n\"陳公乾生\": \"陈公乾生\",\n\"陳堵\": \"陳堵\",\n\"陳禕\": \"陳禕\",\n\"陳遇乾\": \"陈遇乾\",\n\"陸\": \"陆\",\n\"陸徵祥\": \"陆徵祥\",\n\"陻\": \"堙\",\n\"陽\": \"阳\",\n\"陽為乾\": \"阳为乾\",\n\"陿\": \"狭\",\n\"隂\": \"阴\",\n\"隄\": \"堤\",\n\"隉\": \"陧\",\n\"隊\": \"队\",\n\"階\": \"阶\",\n\"隑\": \"𬮿\",\n\"隕\": \"陨\",\n\"隖\": \"坞\",\n\"際\": \"际\",\n\"隣\": \"邻\",\n\"隤\": \"𬯎\",\n\"隨\": \"随\",\n\"險\": \"险\",\n\"隮\": \"𬯀\",\n\"隯\": \"陦\",\n\"隱\": \"隐\",\n\"隴\": \"陇\",\n\"隷\": \"隶\",\n\"隸\": \"隶\",\n\"隻\": \"只\",\n\"雋\": \"隽\",\n\"雍乾\": \"雍乾\",\n\"雖\": \"虽\",\n\"雙\": \"双\",\n\"雛\": \"雏\",\n\"雜\": \"杂\",\n\"雞\": \"鸡\",\n\"離\": \"离\",\n\"難\": \"难\",\n\"雪鍊\": \"雪链\",\n\"雲\": \"云\",\n\"電\": \"电\",\n\"霢\": \"霡\",\n\"霣\": \"𫕥\",\n\"霧\": \"雾\",\n\"霼\": \"𪵣\",\n\"霽\": \"霁\",\n\"靂\": \"雳\",\n\"靄\": \"霭\",\n\"靆\": \"叇\",\n\"靈\": \"灵\",\n\"靈崑\": \"灵昆\",\n\"靉\": \"叆\",\n\"靚\": \"靓\",\n\"靜\": \"静\",\n\"靝\": \"靔\",\n\"靦\": \"腼\",\n\"靧\": \"𫖃\",\n\"靨\": \"靥\",\n\"靭\": \"韧\",\n\"靱\": \"韧\",\n\"鞀\": \"鼗\",\n\"鞏\": \"巩\",\n\"鞝\": \"绱\",\n\"鞦\": \"秋\",\n\"鞵\": \"鞋\",\n\"鞽\": \"鞒\",\n\"鞾\": \"𫖇\",\n\"韁\": \"缰\",\n\"韃\": \"鞑\",\n\"韆\": \"千\",\n\"韈\": \"袜\",\n\"韉\": \"鞯\",\n\"韋\": \"韦\",\n\"韌\": \"韧\",\n\"韍\": \"韨\",\n\"韓\": \"韩\",\n\"韙\": \"韪\",\n\"韚\": \"𫠅\",\n\"韛\": \"𫖔\",\n\"韜\": \"韬\",\n\"韞\": \"韫\",\n\"韠\": \"𫖒\",\n\"韤\": \"袜\",\n\"韮\": \"韭\",\n\"韻\": \"韵\",\n\"響\": \"响\",\n\"頁\": \"页\",\n\"頂\": \"顶\",\n\"頂峯\": \"顶峰\",\n\"頃\": \"顷\",\n\"項\": \"项\",\n\"項鍊\": \"项链\",\n\"順\": \"顺\",\n\"頇\": \"顸\",\n\"須\": \"须\",\n\"頊\": \"顼\",\n\"頌\": \"颂\",\n\"頍\": \"𫠆\",\n\"頎\": \"颀\",\n\"頏\": \"颃\",\n\"預\": \"预\",\n\"頑\": \"顽\",\n\"頒\": \"颁\",\n\"頓\": \"顿\",\n\"頔\": \"𬱖\",\n\"頗\": \"颇\",\n\"領\": \"领\",\n\"頜\": \"颌\",\n\"頟\": \"额\",\n\"頠\": \"𬱟\",\n\"頡\": \"颉\",\n\"頤\": \"颐\",\n\"頦\": \"颏\",\n\"頫\": \"𫖯\",\n\"頭\": \"头\",\n\"頮\": \"颒\",\n\"頰\": \"颊\",\n\"頲\": \"颋\",\n\"頴\": \"颕\",\n\"頵\": \"𫖳\",\n\"頷\": \"颔\",\n\"頸\": \"颈\",\n\"頹\": \"颓\",\n\"頻\": \"频\",\n\"頼\": \"赖\",\n\"頽\": \"颓\",\n\"顂\": \"𩓋\",\n\"顃\": \"𩖖\",\n\"顅\": \"𫖶\",\n\"顆\": \"颗\",\n\"顇\": \"悴\",\n\"顋\": \"腮\",\n\"題\": \"题\",\n\"額\": \"额\",\n\"顎\": \"颚\",\n\"顏\": \"颜\",\n\"顒\": \"颙\",\n\"顓\": \"颛\",\n\"顔\": \"颜\",\n\"顗\": \"𫖮\",\n\"願\": \"愿\",\n\"顙\": \"颡\",\n\"顛\": \"颠\",\n\"類\": \"类\",\n\"顢\": \"颟\",\n\"顣\": \"𫖹\",\n\"顥\": \"颢\",\n\"顦\": \"憔\",\n\"顧\": \"顾\",\n\"顫\": \"颤\",\n\"顬\": \"颥\",\n\"顯\": \"显\",\n\"顯著\": \"显著\",\n\"顯著地\": \"显著地\",\n\"顯著地位\": \"显著地位\",\n\"顯著性\": \"显著性\",\n\"顯著成績\": \"显著成绩\",\n\"顯著效果\": \"显著效果\",\n\"顯著特點\": \"显著特点\",\n\"顰\": \"颦\",\n\"顱\": \"颅\",\n\"顳\": \"颞\",\n\"顴\": \"颧\",\n\"風\": \"风\",\n\"颭\": \"飐\",\n\"颮\": \"飑\",\n\"颯\": \"飒\",\n\"颰\": \"𩙥\",\n\"颱\": \"台\",\n\"颳\": \"刮\",\n\"颶\": \"飓\",\n\"颷\": \"𩙪\",\n\"颸\": \"飔\",\n\"颺\": \"飏\",\n\"颻\": \"飖\",\n\"颼\": \"飕\",\n\"颾\": \"𩙫\",\n\"飀\": \"飗\",\n\"飃\": \"飘\",\n\"飄\": \"飘\",\n\"飆\": \"飙\",\n\"飈\": \"飚\",\n\"飋\": \"𫗋\",\n\"飛\": \"飞\",\n\"飛昇\": \"飞升\",\n\"飜\": \"翻\",\n\"飠\": \"饣\",\n\"飢\": \"饥\",\n\"飣\": \"饤\",\n\"飤\": \"饲\",\n\"飥\": \"饦\",\n\"飦\": \"𫗞\",\n\"飩\": \"饨\",\n\"飪\": \"饪\",\n\"飫\": \"饫\",\n\"飭\": \"饬\",\n\"飭令\": \"飭令\",\n\"飯\": \"饭\",\n\"飱\": \"飧\",\n\"飲\": \"饮\",\n\"飴\": \"饴\",\n\"飵\": \"𫗢\",\n\"飶\": \"𫗣\",\n\"飼\": \"饲\",\n\"飽\": \"饱\",\n\"飽託\": \"饱讬\",\n\"飾\": \"饰\",\n\"飿\": \"饳\",\n\"餁\": \"饪\",\n\"餃\": \"饺\",\n\"餄\": \"饸\",\n\"餅\": \"饼\",\n\"餈\": \"糍\",\n\"餉\": \"饷\",\n\"養\": \"养\",\n\"餌\": \"饵\",\n\"餎\": \"饹\",\n\"餏\": \"饻\",\n\"餑\": \"饽\",\n\"餒\": \"馁\",\n\"餓\": \"饿\",\n\"餔\": \"𫗦\",\n\"餕\": \"馂\",\n\"餖\": \"饾\",\n\"餗\": \"𫗧\",\n\"餘\": \"馀\",\n\"餘慶\": \"馀庆\",\n\"餘瀋\": \"馀渖\",\n\"餚\": \"肴\",\n\"餛\": \"馄\",\n\"餜\": \"馃\",\n\"餞\": \"饯\",\n\"餡\": \"馅\",\n\"餦\": \"𫗠\",\n\"餧\": \"𫗪\",\n\"館\": \"馆\",\n\"餪\": \"𫗬\",\n\"餫\": \"𫗥\",\n\"餬口\": \"糊口\",\n\"餭\": \"𫗮\",\n\"餱\": \"糇\",\n\"餳\": \"饧\",\n\"餵\": \"喂\",\n\"餶\": \"馉\",\n\"餷\": \"馇\",\n\"餸\": \"𩠌\",\n\"餹\": \"糖\",\n\"餺\": \"馎\",\n\"餻\": \"糕\",\n\"餼\": \"饩\",\n\"餽\": \"馈\",\n\"餾\": \"馏\",\n\"餿\": \"馊\",\n\"饁\": \"馌\",\n\"饃\": \"馍\",\n\"饅\": \"馒\",\n\"饈\": \"馐\",\n\"饉\": \"馑\",\n\"饊\": \"馓\",\n\"饋\": \"馈\",\n\"饌\": \"馔\",\n\"饍\": \"膳\",\n\"饑\": \"饥\",\n\"饒\": \"饶\",\n\"饗\": \"飨\",\n\"饘\": \"𫗴\",\n\"饜\": \"餍\",\n\"饝\": \"馍\",\n\"饞\": \"馋\",\n\"饟\": \"𫗵\",\n\"饠\": \"𫗩\",\n\"饢\": \"馕\",\n\"馬\": \"马\",\n\"馬鞌\": \"马鞍\",\n\"馭\": \"驭\",\n\"馮\": \"冯\",\n\"馯\": \"𫘛\",\n\"馱\": \"驮\",\n\"馳\": \"驰\",\n\"馴\": \"驯\",\n\"馹\": \"驲\",\n\"馼\": \"𫘜\",\n\"駁\": \"驳\",\n\"駃\": \"𫘝\",\n\"駈\": \"驱\",\n\"駉\": \"𬳶\",\n\"駊\": \"𫘟\",\n\"駎\": \"𩧨\",\n\"駐\": \"驻\",\n\"駑\": \"驽\",\n\"駒\": \"驹\",\n\"駓\": \"𬳵\",\n\"駔\": \"驵\",\n\"駕\": \"驾\",\n\"駘\": \"骀\",\n\"駙\": \"驸\",\n\"駚\": \"𩧫\",\n\"駛\": \"驶\",\n\"駝\": \"驼\",\n\"駞\": \"𫘞\",\n\"駟\": \"驷\",\n\"駡\": \"骂\",\n\"駢\": \"骈\",\n\"駤\": \"𫘠\",\n\"駧\": \"𩧲\",\n\"駩\": \"𩧴\",\n\"駪\": \"𬳽\",\n\"駫\": \"𫘡\",\n\"駭\": \"骇\",\n\"駰\": \"骃\",\n\"駱\": \"骆\",\n\"駶\": \"𩧺\",\n\"駸\": \"骎\",\n\"駻\": \"𫘣\",\n\"駼\": \"𬳿\",\n\"駿\": \"骏\",\n\"騁\": \"骋\",\n\"騂\": \"骍\",\n\"騃\": \"𫘤\",\n\"騄\": \"𫘧\",\n\"騅\": \"骓\",\n\"騉\": \"𫘥\",\n\"騊\": \"𫘦\",\n\"騌\": \"骔\",\n\"騍\": \"骒\",\n\"騎\": \"骑\",\n\"騏\": \"骐\",\n\"騐\": \"验\",\n\"騑\": \"𬴂\",\n\"騔\": \"𩨀\",\n\"騖\": \"骛\",\n\"騙\": \"骗\",\n\"騚\": \"𩨊\",\n\"騜\": \"𫘩\",\n\"騝\": \"𩨃\",\n\"騞\": \"𬴃\",\n\"騟\": \"𩨈\",\n\"騠\": \"𫘨\",\n\"騣\": \"鬃\",\n\"騤\": \"骙\",\n\"騧\": \"䯄\",\n\"騪\": \"𩨄\",\n\"騫\": \"骞\",\n\"騭\": \"骘\",\n\"騮\": \"骝\",\n\"騰\": \"腾\",\n\"騱\": \"𫘬\",\n\"騴\": \"𫘫\",\n\"騵\": \"𫘪\",\n\"騶\": \"驺\",\n\"騷\": \"骚\",\n\"騸\": \"骟\",\n\"騻\": \"𫘭\",\n\"騼\": \"𫠋\",\n\"騾\": \"骡\",\n\"驀\": \"蓦\",\n\"驁\": \"骜\",\n\"驂\": \"骖\",\n\"驃\": \"骠\",\n\"驄\": \"骢\",\n\"驅\": \"驱\",\n\"驊\": \"骅\",\n\"驋\": \"𩧯\",\n\"驌\": \"骕\",\n\"驍\": \"骁\",\n\"驎\": \"𬴊\",\n\"驏\": \"骣\",\n\"驓\": \"𫘯\",\n\"驕\": \"骄\",\n\"驗\": \"验\",\n\"驘\": \"骡\",\n\"驙\": \"𫘰\",\n\"驚\": \"惊\",\n\"驛\": \"驿\",\n\"驟\": \"骤\",\n\"驢\": \"驴\",\n\"驤\": \"骧\",\n\"驥\": \"骥\",\n\"驦\": \"骦\",\n\"驨\": \"𫘱\",\n\"驪\": \"骊\",\n\"驫\": \"骉\",\n\"骯\": \"肮\",\n\"骽\": \"腿\",\n\"骾\": \"鲠\",\n\"髈\": \"膀\",\n\"髏\": \"髅\",\n\"髒\": \"脏\",\n\"體\": \"体\",\n\"髕\": \"髌\",\n\"髖\": \"髋\",\n\"高昇\": \"高升\",\n\"高陞\": \"高升\",\n\"髥\": \"髯\",\n\"髮\": \"发\",\n\"鬀\": \"剃\",\n\"鬆\": \"松\",\n\"鬉\": \"鬃\",\n\"鬍\": \"胡\",\n\"鬖\": \"𩭹\",\n\"鬚\": \"须\",\n\"鬠\": \"𫘽\",\n\"鬢\": \"鬓\",\n\"鬥\": \"斗\",\n\"鬦\": \"斗\",\n\"鬧\": \"闹\",\n\"鬨\": \"哄\",\n\"鬩\": \"阋\",\n\"鬪\": \"斗\",\n\"鬮\": \"阄\",\n\"鬰\": \"郁\",\n\"鬱\": \"郁\",\n\"鬱姓\": \"鬱姓\",\n\"鬱氏\": \"鬱氏\",\n\"鬹\": \"鬶\",\n\"魎\": \"魉\",\n\"魏徵\": \"魏徵\",\n\"魘\": \"魇\",\n\"魚\": \"鱼\",\n\"魚乾乾\": \"鱼干干\",\n\"魛\": \"鱽\",\n\"魟\": \"𫚉\",\n\"魢\": \"鱾\",\n\"魥\": \"𩽹\",\n\"魦\": \"𫚌\",\n\"魨\": \"鲀\",\n\"魯\": \"鲁\",\n\"魴\": \"鲂\",\n\"魵\": \"𫚍\",\n\"魷\": \"鱿\",\n\"魺\": \"鲄\",\n\"魽\": \"𫠐\",\n\"鮀\": \"𬶍\",\n\"鮁\": \"鲅\",\n\"鮃\": \"鲆\",\n\"鮄\": \"𫚒\",\n\"鮅\": \"𫚑\",\n\"鮆\": \"𫚖\",\n\"鮈\": \"𬶋\",\n\"鮊\": \"鲌\",\n\"鮋\": \"鲉\",\n\"鮍\": \"鲏\",\n\"鮎\": \"鲇\",\n\"鮐\": \"鲐\",\n\"鮑\": \"鲍\",\n\"鮒\": \"鲋\",\n\"鮓\": \"鲊\",\n\"鮕\": \"𩾀\",\n\"鮚\": \"鲒\",\n\"鮜\": \"鲘\",\n\"鮝\": \"鲞\",\n\"鮞\": \"鲕\",\n\"鮟\": \"𩽾\",\n\"鮠\": \"𬶏\",\n\"鮡\": \"𬶐\",\n\"鮣\": \"䲟\",\n\"鮤\": \"𫚓\",\n\"鮦\": \"鲖\",\n\"鮪\": \"鲔\",\n\"鮫\": \"鲛\",\n\"鮭\": \"鲑\",\n\"鮮\": \"鲜\",\n\"鮯\": \"𫚗\",\n\"鮰\": \"𫚔\",\n\"鮳\": \"鲓\",\n\"鮵\": \"𫚛\",\n\"鮶\": \"鲪\",\n\"鮸\": \"𩾃\",\n\"鮺\": \"鲝\",\n\"鮿\": \"𫚚\",\n\"鯀\": \"鲧\",\n\"鯁\": \"鲠\",\n\"鯄\": \"𩾁\",\n\"鯆\": \"𫚙\",\n\"鯇\": \"鲩\",\n\"鯉\": \"鲤\",\n\"鯊\": \"鲨\",\n\"鯒\": \"鲬\",\n\"鯔\": \"鲻\",\n\"鯕\": \"鲯\",\n\"鯖\": \"鲭\",\n\"鯗\": \"鲞\",\n\"鯛\": \"鲷\",\n\"鯝\": \"鲴\",\n\"鯞\": \"𫚡\",\n\"鯡\": \"鲱\",\n\"鯢\": \"鲵\",\n\"鯤\": \"鲲\",\n\"鯧\": \"鲳\",\n\"鯨\": \"鲸\",\n\"鯪\": \"鲮\",\n\"鯫\": \"鲰\",\n\"鯬\": \"𫚞\",\n\"鯰\": \"鲶\",\n\"鯱\": \"𩾇\",\n\"鯴\": \"鲺\",\n\"鯶\": \"𩽼\",\n\"鯷\": \"鳀\",\n\"鯻\": \"𬶟\",\n\"鯽\": \"鲫\",\n\"鯾\": \"𫚣\",\n\"鯿\": \"鳊\",\n\"鰁\": \"鳈\",\n\"鰂\": \"鲗\",\n\"鰃\": \"鳂\",\n\"鰆\": \"䲠\",\n\"鰈\": \"鲽\",\n\"鰉\": \"鳇\",\n\"鰊\": \"𬶠\",\n\"鰋\": \"𫚢\",\n\"鰌\": \"䲡\",\n\"鰍\": \"鳅\",\n\"鰏\": \"鲾\",\n\"鰐\": \"鳄\",\n\"鰑\": \"𫚊\",\n\"鰒\": \"鳆\",\n\"鰓\": \"鳃\",\n\"鰕\": \"𫚥\",\n\"鰛\": \"鳁\",\n\"鰜\": \"鳒\",\n\"鰟\": \"鳑\",\n\"鰠\": \"鳋\",\n\"鰣\": \"鲥\",\n\"鰤\": \"𫚕\",\n\"鰥\": \"鳏\",\n\"鰦\": \"𫚤\",\n\"鰧\": \"䲢\",\n\"鰨\": \"鳎\",\n\"鰩\": \"鳐\",\n\"鰫\": \"𫚦\",\n\"鰭\": \"鳍\",\n\"鰮\": \"鳁\",\n\"鰱\": \"鲢\",\n\"鰲\": \"鳌\",\n\"鰳\": \"鳓\",\n\"鰵\": \"鳘\",\n\"鰶\": \"𬶭\",\n\"鰷\": \"鲦\",\n\"鰹\": \"鲣\",\n\"鰺\": \"鲹\",\n\"鰻\": \"鳗\",\n\"鰼\": \"鳛\",\n\"鰽\": \"𫚧\",\n\"鰾\": \"鳔\",\n\"鱀\": \"𬶨\",\n\"鱂\": \"鳉\",\n\"鱄\": \"𫚋\",\n\"鱅\": \"鳙\",\n\"鱆\": \"𫠒\",\n\"鱇\": \"𩾌\",\n\"鱈\": \"鳕\",\n\"鱉\": \"鳖\",\n\"鱊\": \"𫚪\",\n\"鱒\": \"鳟\",\n\"鱔\": \"鳝\",\n\"鱖\": \"鳜\",\n\"鱗\": \"鳞\",\n\"鱘\": \"鲟\",\n\"鱚\": \"𬶮\",\n\"鱝\": \"鲼\",\n\"鱟\": \"鲎\",\n\"鱠\": \"鲙\",\n\"鱢\": \"𫚫\",\n\"鱣\": \"鳣\",\n\"鱤\": \"鳡\",\n\"鱧\": \"鳢\",\n\"鱨\": \"鲿\",\n\"鱭\": \"鲚\",\n\"鱮\": \"𫚈\",\n\"鱯\": \"鳠\",\n\"鱲\": \"𫚭\",\n\"鱷\": \"鳄\",\n\"鱸\": \"鲈\",\n\"鱺\": \"鲡\",\n\"鳥\": \"鸟\",\n\"鳧\": \"凫\",\n\"鳩\": \"鸠\",\n\"鳬\": \"凫\",\n\"鳲\": \"鸤\",\n\"鳳\": \"凤\",\n\"鳴\": \"鸣\",\n\"鳶\": \"鸢\",\n\"鳷\": \"𫛛\",\n\"鳼\": \"𪉃\",\n\"鳽\": \"𫛚\",\n\"鳾\": \"䴓\",\n\"鴀\": \"𫛜\",\n\"鴃\": \"𫛞\",\n\"鴅\": \"𫛝\",\n\"鴆\": \"鸩\",\n\"鴇\": \"鸨\",\n\"鴈\": \"雁\",\n\"鴉\": \"鸦\",\n\"鴐\": \"𫛤\",\n\"鴒\": \"鸰\",\n\"鴔\": \"𫛡\",\n\"鴕\": \"鸵\",\n\"鴗\": \"𫁡\",\n\"鴛\": \"鸳\",\n\"鴜\": \"𪉈\",\n\"鴝\": \"鸲\",\n\"鴞\": \"鸮\",\n\"鴟\": \"鸱\",\n\"鴣\": \"鸪\",\n\"鴥\": \"𫛣\",\n\"鴦\": \"鸯\",\n\"鴨\": \"鸭\",\n\"鴮\": \"𫛦\",\n\"鴯\": \"鸸\",\n\"鴰\": \"鸹\",\n\"鴲\": \"𪉆\",\n\"鴳\": \"𫛩\",\n\"鴴\": \"鸻\",\n\"鴷\": \"䴕\",\n\"鴻\": \"鸿\",\n\"鴽\": \"𫛪\",\n\"鴿\": \"鸽\",\n\"鵁\": \"䴔\",\n\"鵂\": \"鸺\",\n\"鵃\": \"鸼\",\n\"鵊\": \"𫛥\",\n\"鵏\": \"𬷕\",\n\"鵐\": \"鹀\",\n\"鵑\": \"鹃\",\n\"鵒\": \"鹆\",\n\"鵓\": \"鹁\",\n\"鵚\": \"𪉍\",\n\"鵜\": \"鹈\",\n\"鵝\": \"鹅\",\n\"鵞\": \"鹅\",\n\"鵟\": \"𫛭\",\n\"鵠\": \"鹄\",\n\"鵡\": \"鹉\",\n\"鵧\": \"𫛨\",\n\"鵩\": \"𫛳\",\n\"鵪\": \"鹌\",\n\"鵫\": \"𫛱\",\n\"鵬\": \"鹏\",\n\"鵮\": \"鹐\",\n\"鵯\": \"鹎\",\n\"鵰\": \"雕\",\n\"鵲\": \"鹊\",\n\"鵶\": \"鸦\",\n\"鵷\": \"鹓\",\n\"鵾\": \"鹍\",\n\"鶄\": \"䴖\",\n\"鶇\": \"鸫\",\n\"鶉\": \"鹑\",\n\"鶊\": \"鹒\",\n\"鶌\": \"𫛵\",\n\"鶒\": \"𫛶\",\n\"鶓\": \"鹋\",\n\"鶖\": \"鹙\",\n\"鶗\": \"𫛸\",\n\"鶘\": \"鹕\",\n\"鶚\": \"鹗\",\n\"鶠\": \"𬸘\",\n\"鶡\": \"鹖\",\n\"鶥\": \"鹛\",\n\"鶦\": \"𫛷\",\n\"鶩\": \"鹜\",\n\"鶪\": \"䴗\",\n\"鶬\": \"鸧\",\n\"鶭\": \"𫛯\",\n\"鶯\": \"莺\",\n\"鶰\": \"𫛫\",\n\"鶱\": \"𬸣\",\n\"鶲\": \"鹟\",\n\"鶴\": \"鹤\",\n\"鶹\": \"鹠\",\n\"鶺\": \"鹡\",\n\"鶻\": \"鹘\",\n\"鶼\": \"鹣\",\n\"鶿\": \"鹚\",\n\"鷀\": \"鹚\",\n\"鷁\": \"鹢\",\n\"鷂\": \"鹞\",\n\"鷄\": \"鸡\",\n\"鷅\": \"𫛽\",\n\"鷈\": \"䴘\",\n\"鷉\": \"䴘\",\n\"鷊\": \"鹝\",\n\"鷐\": \"𫜀\",\n\"鷓\": \"鹧\",\n\"鷔\": \"𪉑\",\n\"鷖\": \"鹥\",\n\"鷗\": \"鸥\",\n\"鷙\": \"鸷\",\n\"鷚\": \"鹨\",\n\"鷟\": \"𬸦\",\n\"鷣\": \"𫜃\",\n\"鷤\": \"𫛴\",\n\"鷥\": \"鸶\",\n\"鷦\": \"鹪\",\n\"鷨\": \"𪉊\",\n\"鷩\": \"𫜁\",\n\"鷫\": \"鹔\",\n\"鷭\": \"𬸪\",\n\"鷯\": \"鹩\",\n\"鷰\": \"燕\",\n\"鷲\": \"鹫\",\n\"鷳\": \"鹇\",\n\"鷴\": \"鹇\",\n\"鷷\": \"𫜄\",\n\"鷸\": \"鹬\",\n\"鷹\": \"鹰\",\n\"鷺\": \"鹭\",\n\"鷽\": \"鸴\",\n\"鷿\": \"䴙\",\n\"鸂\": \"㶉\",\n\"鸇\": \"鹯\",\n\"鸊\": \"䴙\",\n\"鸋\": \"𫛢\",\n\"鸌\": \"鹱\",\n\"鸎\": \"莺\",\n\"鸏\": \"鹲\",\n\"鸑\": \"𬸚\",\n\"鸕\": \"鸬\",\n\"鸗\": \"𫛟\",\n\"鸘\": \"鹴\",\n\"鸚\": \"鹦\",\n\"鸛\": \"鹳\",\n\"鸝\": \"鹂\",\n\"鸞\": \"鸾\",\n\"鹵\": \"卤\",\n\"鹹\": \"咸\",\n\"鹺\": \"鹾\",\n\"鹻\": \"碱\",\n\"鹼\": \"碱\",\n\"鹼菜\": \"硷菜\",\n\"鹽\": \"盐\",\n\"麗\": \"丽\",\n\"麥\": \"麦\",\n\"麨\": \"𪎊\",\n\"麩\": \"麸\",\n\"麪\": \"面\",\n\"麫\": \"面\",\n\"麬\": \"𤿲\",\n\"麯\": \"曲\",\n\"麲\": \"𪎉\",\n\"麳\": \"𪎌\",\n\"麴\": \"麹\",\n\"麴黴\": \"曲霉\",\n\"麵\": \"面\",\n\"麷\": \"𫜑\",\n\"麼\": \"么\",\n\"麼氏\": \"麽氏\",\n\"麽\": \"么\",\n\"麽氏\": \"麽氏\",\n\"黃\": \"黄\",\n\"黃潤乾\": \"黄润乾\",\n\"黃麴毒素\": \"黄曲毒素\",\n\"黄润乾\": \"黄润乾\",\n\"黌\": \"黉\",\n\"點\": \"点\",\n\"黨\": \"党\",\n\"黲\": \"黪\",\n\"黴\": \"霉\",\n\"黶\": \"黡\",\n\"黷\": \"黩\",\n\"黽\": \"黾\",\n\"黿\": \"鼋\",\n\"鼂\": \"鼌\",\n\"鼃\": \"蛙\",\n\"鼇\": \"鳌\",\n\"鼈\": \"鳖\",\n\"鼉\": \"鼍\",\n\"鼕\": \"冬\",\n\"鼴\": \"鼹\",\n\"齇\": \"齄\",\n\"齊\": \"齐\",\n\"齋\": \"斋\",\n\"齎\": \"赍\",\n\"齏\": \"齑\",\n\"齒\": \"齿\",\n\"齔\": \"龀\",\n\"齕\": \"龁\",\n\"齗\": \"龂\",\n\"齘\": \"𬹼\",\n\"齙\": \"龅\",\n\"齜\": \"龇\",\n\"齟\": \"龃\",\n\"齠\": \"龆\",\n\"齡\": \"龄\",\n\"齣\": \"出\",\n\"齦\": \"龈\",\n\"齧\": \"啮\",\n\"齩\": \"𫜪\",\n\"齪\": \"龊\",\n\"齬\": \"龉\",\n\"齭\": \"𫜭\",\n\"齮\": \"𬺈\",\n\"齯\": \"𫠜\",\n\"齰\": \"𫜬\",\n\"齲\": \"龋\",\n\"齴\": \"𫜮\",\n\"齶\": \"腭\",\n\"齷\": \"龌\",\n\"齼\": \"𬺓\",\n\"齾\": \"𫜰\",\n\"龍\": \"龙\",\n\"龍鍾\": \"龙钟\",\n\"龎\": \"厐\",\n\"龐\": \"庞\",\n\"龑\": \"䶮\",\n\"龓\": \"𫜲\",\n\"龔\": \"龚\",\n\"龕\": \"龛\",\n\"龜\": \"龟\",\n\"龭\": \"𩨎\",\n\"龯\": \"𨱆\",\n\"鿁\": \"䜤\",\n\"鿐\": \"䲤\",\n\"鿓\": \"鿒\",\n\"，陞\": \"，升\",\n\"｢\": \"“\",\n\"｣\": \"”\",\n\"𠁞\": \"𠀾\",\n\"𠌥\": \"𠆿\",\n\"𠏢\": \"𠉗\",\n\"𠐊\": \"𫝋\",\n\"𠕂\": \"再\",\n\"𠕅\": \"再\",\n\"𠗣\": \"㓆\",\n\"𠞆\": \"𠛆\",\n\"𠞰\": \"剿\",\n\"𠠎\": \"𠚳\",\n\"𠬙\": \"𪠡\",\n\"𠽃\": \"𪠺\",\n\"𠿕\": \"𪜎\",\n\"𡂡\": \"𪢒\",\n\"𡃄\": \"𪡺\",\n\"𡃕\": \"𠴛\",\n\"𡃤\": \"𪢐\",\n\"𡄔\": \"𠴢\",\n\"𡄣\": \"𠵸\",\n\"𡅏\": \"𠲥\",\n\"𡅯\": \"𪢖\",\n\"𡑍\": \"𫭼\",\n\"𡑭\": \"𡋗\",\n\"𡓁\": \"𪤄\",\n\"𡓾\": \"𡋀\",\n\"𡔖\": \"𡍣\",\n\"𡚁\": \"弊\",\n\"𡞵\": \"㛟\",\n\"𡟫\": \"𫝪\",\n\"𡠹\": \"㛿\",\n\"𡡎\": \"𡞱\",\n\"𡢃\": \"㛠\",\n\"𡨥\": \"寇\",\n\"𡮉\": \"𡭜\",\n\"𡮣\": \"𡭬\",\n\"𡳳\": \"𡳃\",\n\"𡸗\": \"𪨩\",\n\"𡹬\": \"𪨹\",\n\"𡻕\": \"岁\",\n\"𡽗\": \"𡸃\",\n\"𡾱\": \"㟜\",\n\"𡿖\": \"𪩛\",\n\"𢍰\": \"𪪴\",\n\"𢠼\": \"𢙑\",\n\"𢣐\": \"𪬚\",\n\"𢣚\": \"𢘝\",\n\"𢣭\": \"𢘞\",\n\"𢤩\": \"𪫡\",\n\"𢤱\": \"𢘙\",\n\"𢤿\": \"𪬯\",\n\"𢯷\": \"𪭝\",\n\"𢶒\": \"𪭯\",\n\"𢶫\": \"𢫞\",\n\"𢷬\": \"𢭏\",\n\"𢷮\": \"𢫊\",\n\"𢹿\": \"𢬦\",\n\"𢺳\": \"𪮳\",\n\"𣈶\": \"暅\",\n\"𣋋\": \"𣈣\",\n\"𣍐\": \"𠊉\",\n\"𣙎\": \"㭣\",\n\"𣙜\": \"榷\",\n\"𣜬\": \"𪳗\",\n\"𣝕\": \"𣘷\",\n\"𣞻\": \"𣘓\",\n\"𣠩\": \"𣞎\",\n\"𣠲\": \"𣑶\",\n\"𣯩\": \"𣯣\",\n\"𣯴\": \"𣭤\",\n\"𣯶\": \"毶\",\n\"𣽏\": \"𪶮\",\n\"𣾷\": \"㳢\",\n\"𣿉\": \"𣶫\",\n\"𤁣\": \"𣺽\",\n\"𤄷\": \"𪶒\",\n\"𤅶\": \"𣷷\",\n\"𤋮\": \"熙\",\n\"𤑳\": \"𤎻\",\n\"𤑹\": \"𪹀\",\n\"𤒎\": \"𤊀\",\n\"𤒻\": \"𪹹\",\n\"𤓌\": \"𪹠\",\n\"𤓩\": \"𤊰\",\n\"𤘀\": \"𪺣\",\n\"𤛮\": \"𤙯\",\n\"𤛱\": \"𫞢\",\n\"𤜆\": \"𪺪\",\n\"𤠮\": \"𪺸\",\n\"𤢟\": \"𤝢\",\n\"𤢻\": \"𢢐\",\n\"𤨏\": \"琐\",\n\"𤩂\": \"𫞧\",\n\"𤪺\": \"㻘\",\n\"𤫩\": \"㻏\",\n\"𤬅\": \"𪼴\",\n\"𤱈\": \"亩\",\n\"𤳷\": \"𪽝\",\n\"𤳸\": \"𤳄\",\n\"𤷃\": \"𪽭\",\n\"𤸫\": \"𤶧\",\n\"𤺔\": \"𪽴\",\n\"𤺥\": \"瘩\",\n\"𥊝\": \"𥅿\",\n\"𥌃\": \"𥅘\",\n\"𥏝\": \"𪿊\",\n\"𥕥\": \"𥐰\",\n\"𥖅\": \"𥐯\",\n\"𥖲\": \"𪿞\",\n\"𥗇\": \"𪿵\",\n\"𥗽\": \"𬒗\",\n\"𥜐\": \"𫀓\",\n\"𥜰\": \"𫀌\",\n\"𥞵\": \"𥞦\",\n\"𥢢\": \"䅪\",\n\"𥢶\": \"𫞷\",\n\"𥢷\": \"𫀮\",\n\"𥨐\": \"𥧂\",\n\"𥪂\": \"𥩺\",\n\"𥯤\": \"𫁳\",\n\"𥴨\": \"𫂖\",\n\"𥴼\": \"𫁺\",\n\"𥵃\": \"𥱔\",\n\"𥵊\": \"𥭉\",\n\"𥶽\": \"𫁱\",\n\"𥸠\": \"𥮋\",\n\"𥻦\": \"𫂿\",\n\"𥼽\": \"𥹥\",\n\"𥽖\": \"𥺇\",\n\"𥾯\": \"𫄝\",\n\"𥿊\": \"𦈈\",\n\"𦀖\": \"𫄦\",\n\"𦂅\": \"𦈒\",\n\"𦃄\": \"𦈗\",\n\"𦃩\": \"𫄯\",\n\"𦅇\": \"𫄪\",\n\"𦅈\": \"𫄵\",\n\"𦆲\": \"𫟇\",\n\"𦊱\": \"挂\",\n\"𦍑\": \"羌\",\n\"𦒀\": \"𫅥\",\n\"𦔖\": \"𫅼\",\n\"𦕈\": \"眇\",\n\"𦘧\": \"𡳒\",\n\"𦟼\": \"𫆝\",\n\"𦠅\": \"𫞅\",\n\"𦡝\": \"𫆫\",\n\"𦢈\": \"𣍨\",\n\"𦣎\": \"𦟗\",\n\"𦧺\": \"𫇘\",\n\"𦪙\": \"䑽\",\n\"𦪽\": \"𦨩\",\n\"𦱌\": \"𫇪\",\n\"𦵏\": \"葬\",\n\"𦾟\": \"𦶻\",\n\"𧎈\": \"𧌥\",\n\"𧒯\": \"𫊹\",\n\"𧔥\": \"𧒭\",\n\"𧕟\": \"𧉐\",\n\"𧜗\": \"䘞\",\n\"𧜵\": \"䙊\",\n\"𧝞\": \"䘛\",\n\"𧞫\": \"𫌋\",\n\"𧟀\": \"𧝧\",\n\"𧡴\": \"𫌫\",\n\"𧢄\": \"𫌬\",\n\"𧦝\": \"𫍞\",\n\"𧦧\": \"𫍟\",\n\"𧩕\": \"𫍭\",\n\"𧩙\": \"䜥\",\n\"𧩼\": \"𫍶\",\n\"𧫝\": \"𫍺\",\n\"𧬤\": \"𫍼\",\n\"𧭈\": \"𫍾\",\n\"𧭹\": \"𫍐\",\n\"𧳟\": \"𧳕\",\n\"𧵳\": \"䞌\",\n\"𧶔\": \"𧹓\",\n\"𧶧\": \"䞎\",\n\"𧷎\": \"𪠀\",\n\"𧸘\": \"𫎨\",\n\"𧹈\": \"𪥠\",\n\"𧽯\": \"𫎸\",\n\"𨂐\": \"𫏌\",\n\"𨄣\": \"𨀱\",\n\"𨅍\": \"𨁴\",\n\"𨆪\": \"𫏕\",\n\"𨇁\": \"𧿈\",\n\"𨇞\": \"𨅫\",\n\"𨇤\": \"𫏨\",\n\"𨇰\": \"𫏞\",\n\"𨇽\": \"𫏑\",\n\"𨈊\": \"𨂺\",\n\"𨈌\": \"𨄄\",\n\"𨊰\": \"䢀\",\n\"𨊸\": \"䢁\",\n\"𨊻\": \"𨐆\",\n\"𨋢\": \"䢂\",\n\"𨌈\": \"𫐍\",\n\"𨍰\": \"𫐔\",\n\"𨎌\": \"𫐋\",\n\"𨎮\": \"𨐉\",\n\"𨏠\": \"𨐇\",\n\"𨏥\": \"𨐊\",\n\"𨞺\": \"𫟫\",\n\"𨟊\": \"𫟬\",\n\"𨢿\": \"𨡙\",\n\"𨣈\": \"𨡺\",\n\"𨣞\": \"𨟳\",\n\"𨣧\": \"𨠨\",\n\"𨤻\": \"𨤰\",\n\"𨥛\": \"𨱀\",\n\"𨥟\": \"𫓫\",\n\"𨦫\": \"䦀\",\n\"𨧀\": \"𬭊\",\n\"𨧜\": \"䦁\",\n\"𨧰\": \"𫟽\",\n\"𨧱\": \"𨱊\",\n\"𨨏\": \"𬭛\",\n\"𨨛\": \"𫓼\",\n\"𨨢\": \"𫓿\",\n\"𨩰\": \"𫟾\",\n\"𨪕\": \"𫓮\",\n\"𨫒\": \"𨱐\",\n\"𨬖\": \"𫔏\",\n\"𨭆\": \"𬭶\",\n\"𨭎\": \"𬭳\",\n\"𨭖\": \"𫔑\",\n\"𨭸\": \"𫔐\",\n\"𨮂\": \"𨱕\",\n\"𨮳\": \"𫔒\",\n\"𨯅\": \"䥿\",\n\"𨯟\": \"𫔓\",\n\"𨰃\": \"𫔉\",\n\"𨰋\": \"𫓳\",\n\"𨰥\": \"𫔕\",\n\"𨰲\": \"𫔃\",\n\"𨲳\": \"𫔖\",\n\"𨳑\": \"𨸁\",\n\"𨳕\": \"𨸀\",\n\"𨴗\": \"𨸅\",\n\"𨴹\": \"𫔲\",\n\"𨵩\": \"𨸆\",\n\"𨵸\": \"𨸇\",\n\"𨶀\": \"𨸉\",\n\"𨶏\": \"𨸊\",\n\"𨶮\": \"𨸌\",\n\"𨶲\": \"𨸋\",\n\"𨷲\": \"𨸎\",\n\"𨼳\": \"𫔽\",\n\"𨽏\": \"𨸘\",\n\"𨽻\": \"隶\",\n\"𩀨\": \"𫕚\",\n\"𩅙\": \"𫕨\",\n\"𩎖\": \"𫖑\",\n\"𩎢\": \"𩏾\",\n\"𩏂\": \"𫖓\",\n\"𩏠\": \"𫖖\",\n\"𩏪\": \"𩏽\",\n\"𩏷\": \"𫃗\",\n\"𩑔\": \"𫖪\",\n\"𩒎\": \"𫖭\",\n\"𩓐\": \"脖\",\n\"𩓣\": \"𩖕\",\n\"𩓥\": \"𫖵\",\n\"𩔑\": \"𫖷\",\n\"𩔳\": \"𫖴\",\n\"𩖰\": \"𫠇\",\n\"𩗀\": \"𩙦\",\n\"𩗓\": \"𫗈\",\n\"𩗗\": \"飓\",\n\"𩗡\": \"𩙧\",\n\"𩗴\": \"𫗉\",\n\"𩘀\": \"𩙩\",\n\"𩘝\": \"𩙭\",\n\"𩘹\": \"𩙨\",\n\"𩘺\": \"𩙬\",\n\"𩙈\": \"𩙰\",\n\"𩚛\": \"𩟿\",\n\"𩚥\": \"𩠀\",\n\"𩚩\": \"𫗡\",\n\"𩚵\": \"𩠁\",\n\"𩛆\": \"𩠂\",\n\"𩛌\": \"𫗤\",\n\"𩛡\": \"𫗨\",\n\"𩛩\": \"𩠃\",\n\"𩜇\": \"𩠉\",\n\"𩜦\": \"𩠆\",\n\"𩜵\": \"𩠊\",\n\"𩝔\": \"𩠋\",\n\"𩝽\": \"𫗳\",\n\"𩞄\": \"𩠎\",\n\"𩞦\": \"𩠏\",\n\"𩞯\": \"䭪\",\n\"𩟐\": \"𩠅\",\n\"𩟗\": \"𫗚\",\n\"𩠴\": \"𩠠\",\n\"𩡣\": \"𩡖\",\n\"𩡺\": \"𩧦\",\n\"𩢡\": \"𩧬\",\n\"𩢴\": \"𩧵\",\n\"𩢸\": \"𩧳\",\n\"𩢾\": \"𩧮\",\n\"𩣏\": \"𩧶\",\n\"𩣑\": \"䯃\",\n\"𩣫\": \"𩧸\",\n\"𩣵\": \"𩧻\",\n\"𩣺\": \"𩧼\",\n\"𩤊\": \"𩧩\",\n\"𩤙\": \"𩨆\",\n\"𩤲\": \"𩨉\",\n\"𩤸\": \"𩨅\",\n\"𩥄\": \"𩨋\",\n\"𩥇\": \"𩨍\",\n\"𩥉\": \"𩧱\",\n\"𩥑\": \"𩨌\",\n\"𩦠\": \"𫠌\",\n\"𩧆\": \"𩨐\",\n\"𩭙\": \"𩬣\",\n\"𩯁\": \"𫙂\",\n\"𩯳\": \"𩯒\",\n\"𩰀\": \"𩬤\",\n\"𩰹\": \"𩰰\",\n\"𩳤\": \"𩲒\",\n\"𩴵\": \"𩴌\",\n\"𩵦\": \"𫠏\",\n\"𩵩\": \"𩽺\",\n\"𩵹\": \"𩽻\",\n\"𩶁\": \"𫚎\",\n\"𩶘\": \"䲞\",\n\"𩶰\": \"𩽿\",\n\"𩶱\": \"𩽽\",\n\"𩷰\": \"𩾄\",\n\"𩸃\": \"𩾅\",\n\"𩸄\": \"𫚝\",\n\"𩸡\": \"𫚟\",\n\"𩸦\": \"𩾆\",\n\"𩻗\": \"𫚨\",\n\"𩻬\": \"𫚩\",\n\"𩻮\": \"𫚘\",\n\"𩼶\": \"𫚬\",\n\"𩽇\": \"𩾎\",\n\"𩿅\": \"𫠖\",\n\"𩿤\": \"𫛠\",\n\"𩿪\": \"𪉄\",\n\"𪀖\": \"𫛧\",\n\"𪀦\": \"𪉅\",\n\"𪀾\": \"𪉋\",\n\"𪁈\": \"𪉉\",\n\"𪁖\": \"𪉌\",\n\"𪂆\": \"𪉎\",\n\"𪃍\": \"𪉐\",\n\"𪃏\": \"𪉏\",\n\"𪃒\": \"𫛻\",\n\"𪃧\": \"𫛹\",\n\"𪄆\": \"𪉔\",\n\"𪄕\": \"𪉒\",\n\"𪅂\": \"𫜂\",\n\"𪆷\": \"𫛾\",\n\"𪇳\": \"𪉕\",\n\"𪈼\": \"𪉓\",\n\"𪉸\": \"𫜊\",\n\"𪋿\": \"𪎍\",\n\"𪌭\": \"𫜓\",\n\"𪍠\": \"𫜕\",\n\"𪓰\": \"𫜟\",\n\"𪔵\": \"𪔭\",\n\"𪘀\": \"𪚏\",\n\"𪘯\": \"𪚐\",\n\"𪙏\": \"𫜯\",\n\"𪟖\": \"𠛾\",\n\"𪷓\": \"𣶭\",\n\"𫒡\": \"𫓷\",\n\"𫜦\": \"𫜫\"\n},\n\"zh2Hant\": {\n\"0余\": \"0餘\",\n\"0出。\": \"0齣。\",\n\"0出电影\": \"0齣電影\",\n\"0出，\": \"0齣，\",\n\"0只\": \"0隻\",\n\"0只支持\": \"0只支持\",\n\"0只支援\": \"0只支援\",\n\"0周后\": \"0周後\",\n\"0天后\": \"0天後\",\n\"1余\": \"1餘\",\n\"1只\": \"1隻\",\n\"1只支持\": \"1只支持\",\n\"1只支援\": \"1只支援\",\n\"1周后\": \"1周後\",\n\"1天后\": \"1天後\",\n\"2余\": \"2餘\",\n\"2只\": \"2隻\",\n\"2只支持\": \"2只支持\",\n\"2只支援\": \"2只支援\",\n\"2周后\": \"2周後\",\n\"2天后\": \"2天後\",\n\"3余\": \"3餘\",\n\"3只\": \"3隻\",\n\"3只支持\": \"3只支持\",\n\"3只支援\": \"3只支援\",\n\"3周后\": \"3周後\",\n\"3天后\": \"3天後\",\n\"4余\": \"4餘\",\n\"4只\": \"4隻\",\n\"4只支持\": \"4只支持\",\n\"4只支援\": \"4只支援\",\n\"4周后\": \"4周後\",\n\"4天后\": \"4天後\",\n\"5余\": \"5餘\",\n\"5只\": \"5隻\",\n\"5只支持\": \"5只支持\",\n\"5只支援\": \"5只支援\",\n\"5周后\": \"5周後\",\n\"5天后\": \"5天後\",\n\"6余\": \"6餘\",\n\"6只\": \"6隻\",\n\"6只支持\": \"6只支持\",\n\"6只支援\": \"6只支援\",\n\"6周后\": \"6周後\",\n\"6天后\": \"6天後\",\n\"7余\": \"7餘\",\n\"7只\": \"7隻\",\n\"7只支持\": \"7只支持\",\n\"7只支援\": \"7只支援\",\n\"7周后\": \"7周後\",\n\"7天后\": \"7天後\",\n\"8余\": \"8餘\",\n\"8只\": \"8隻\",\n\"8只支持\": \"8只支持\",\n\"8只支援\": \"8只支援\",\n\"8周后\": \"8周後\",\n\"8天后\": \"8天後\",\n\"9余\": \"9餘\",\n\"9只\": \"9隻\",\n\"9只支持\": \"9只支持\",\n\"9只支援\": \"9只支援\",\n\"9周后\": \"9周後\",\n\"9天后\": \"9天後\",\n\"·范\": \"·范\",\n\"‘\": \"『\",\n\"’\": \"』\",\n\"’m\": \"’m\",\n\"’re\": \"’re\",\n\"’s\": \"’s\",\n\"’t\": \"’t\",\n\"“\": \"「\",\n\"”\": \"」\",\n\"、面点\": \"、麵點\",\n\"。个中\": \"。箇中\",\n\"〇余\": \"〇餘\",\n\"〇只\": \"〇隻\",\n\"〇周后\": \"〇周後\",\n\"》里\": \"》裡\",\n\"㐷\": \"傌\",\n\"㐹\": \"㑶\",\n\"㐽\": \"偑\",\n\"㑇\": \"㑳\",\n\"㑈\": \"倲\",\n\"㑔\": \"㑯\",\n\"㑩\": \"儸\",\n\"㓆\": \"𠗣\",\n\"㓥\": \"劏\",\n\"㓰\": \"劃\",\n\"㔉\": \"劚\",\n\"㖊\": \"噚\",\n\"㖞\": \"喎\",\n\"㗷\": \"㘔\",\n\"㘎\": \"㘚\",\n\"㚯\": \"㜄\",\n\"㛀\": \"媰\",\n\"㛟\": \"𡞵\",\n\"㛠\": \"𡢃\",\n\"㛣\": \"㜏\",\n\"㛤\": \"孋\",\n\"㛿\": \"𡠹\",\n\"㟆\": \"㠏\",\n\"㟜\": \"𡾱\",\n\"㟥\": \"嵾\",\n\"㡎\": \"幓\",\n\"㤘\": \"㥮\",\n\"㤽\": \"懤\",\n\"㥪\": \"慺\",\n\"㧏\": \"掆\",\n\"㧐\": \"㩳\",\n\"㧑\": \"撝\",\n\"㧟\": \"擓\",\n\"㧰\": \"擽\",\n\"㨫\": \"㩜\",\n\"㭎\": \"棡\",\n\"㭏\": \"椲\",\n\"㭣\": \"𣙎\",\n\"㭤\": \"樢\",\n\"㭴\": \"樫\",\n\"㱩\": \"殰\",\n\"㱮\": \"殨\",\n\"㲿\": \"瀇\",\n\"㳔\": \"濧\",\n\"㳕\": \"灡\",\n\"㳠\": \"澾\",\n\"㳡\": \"濄\",\n\"㳢\": \"𣾷\",\n\"㳽\": \"瀰\",\n\"㴋\": \"潚\",\n\"㶉\": \"鸂\",\n\"㶶\": \"燶\",\n\"㶽\": \"煱\",\n\"㺍\": \"獱\",\n\"㻅\": \"璯\",\n\"㻏\": \"𤫩\",\n\"㻘\": \"𤪺\",\n\"䀥\": \"䁻\",\n\"䁖\": \"瞜\",\n\"䂵\": \"碽\",\n\"䃅\": \"磾\",\n\"䅉\": \"稏\",\n\"䅟\": \"穇\",\n\"䅪\": \"𥢢\",\n\"䇲\": \"筴\",\n\"䉤\": \"籔\",\n\"䌶\": \"䊷\",\n\"䌷\": \"紬\",\n\"䌸\": \"縳\",\n\"䌹\": \"絅\",\n\"䌺\": \"䋙\",\n\"䌻\": \"䋚\",\n\"䌼\": \"綐\",\n\"䌽\": \"綵\",\n\"䌾\": \"䋻\",\n\"䌿\": \"䋹\",\n\"䍀\": \"繿\",\n\"䍁\": \"繸\",\n\"䍠\": \"䍦\",\n\"䎬\": \"䎱\",\n\"䏝\": \"膞\",\n\"䑽\": \"𦪙\",\n\"䓓\": \"薵\",\n\"䓕\": \"薳\",\n\"䓖\": \"藭\",\n\"䓨\": \"罃\",\n\"䗖\": \"螮\",\n\"䘛\": \"𧝞\",\n\"䘞\": \"𧜗\",\n\"䙊\": \"𧜵\",\n\"䙌\": \"䙡\",\n\"䙓\": \"襬\",\n\"䜣\": \"訢\",\n\"䜤\": \"鿁\",\n\"䜥\": \"𧩙\",\n\"䜧\": \"䜀\",\n\"䜩\": \"讌\",\n\"䝙\": \"貙\",\n\"䞌\": \"𧵳\",\n\"䞍\": \"䝼\",\n\"䞎\": \"𧶧\",\n\"䞐\": \"賰\",\n\"䟢\": \"躎\",\n\"䢀\": \"𨊰\",\n\"䢁\": \"𨊸\",\n\"䢂\": \"𨋢\",\n\"䥺\": \"釾\",\n\"䥽\": \"鏺\",\n\"䥾\": \"䥱\",\n\"䥿\": \"𨯅\",\n\"䦀\": \"𨦫\",\n\"䦁\": \"𨧜\",\n\"䦂\": \"䥇\",\n\"䦃\": \"鐯\",\n\"䦅\": \"鐥\",\n\"䦆\": \"钁\",\n\"䦶\": \"䦛\",\n\"䦷\": \"䦟\",\n\"䩄\": \"靦\",\n\"䭪\": \"𩞯\",\n\"䯃\": \"𩣑\",\n\"䯄\": \"騧\",\n\"䯅\": \"䯀\",\n\"䲝\": \"䱽\",\n\"䲞\": \"𩶘\",\n\"䲟\": \"鮣\",\n\"䲠\": \"鰆\",\n\"䲡\": \"鰌\",\n\"䲢\": \"鰧\",\n\"䲣\": \"䱷\",\n\"䲤\": \"鿐\",\n\"䴓\": \"鳾\",\n\"䴔\": \"鵁\",\n\"䴕\": \"鴷\",\n\"䴖\": \"鶄\",\n\"䴗\": \"鶪\",\n\"䴘\": \"鷈\",\n\"䴙\": \"鷿\",\n\"䶮\": \"龑\",\n\"一个\": \"一個\",\n\"一个准\": \"一個準\",\n\"一争两丑\": \"一爭兩醜\",\n\"一伙\": \"一夥\",\n\"一伙人\": \"一伙人\",\n\"一伙头\": \"一伙頭\",\n\"一伙食\": \"一伙食\",\n\"一余\": \"一餘\",\n\"一冲\": \"一衝\",\n\"一准\": \"一準\",\n\"一出剧\": \"一齣劇\",\n\"一出喜剧\": \"一齣喜劇\",\n\"一出好戏\": \"一齣好戲\",\n\"一出子\": \"一齣子\",\n\"一出悲剧\": \"一齣悲劇\",\n\"一出戏\": \"一齣戲\",\n\"一出电影\": \"一齣電影\",\n\"一划\": \"一划\",\n\"一半只\": \"一半只\",\n\"一厘一毫\": \"一釐一毫\",\n\"一发千钧\": \"一髮千鈞\",\n\"一只\": \"一隻\",\n\"一吊钱\": \"一吊錢\",\n\"一周后\": \"一周後\",\n\"一哄而散\": \"一鬨而散\",\n\"一地里\": \"一地裡\",\n\"一天后\": \"一天後\",\n\"一天钟\": \"一天鐘\",\n\"一干二净\": \"一乾二淨\",\n\"一干人\": \"一干人\",\n\"一干家中\": \"一干家中\",\n\"一干弟兄\": \"一干弟兄\",\n\"一干弟子\": \"一干弟子\",\n\"一干部下\": \"一干部下\",\n\"一并\": \"一併\",\n\"一扎\": \"一紮\",\n\"一斗斗\": \"一斗斗\",\n\"一树百获\": \"一樹百穫\",\n\"一物克一物\": \"一物剋一物\",\n\"一目了然\": \"一目了然\",\n\"一碗面\": \"一碗麵\",\n\"一锅面\": \"一鍋麵\",\n\"一面食\": \"一面食\",\n\"丁丁当当\": \"丁丁當當\",\n\"丁丑\": \"丁丑\",\n\"七个\": \"七個\",\n\"七余\": \"七餘\",\n\"七只\": \"七隻\",\n\"七周后\": \"七周後\",\n\"七天后\": \"七天後\",\n\"七情六欲\": \"七情六慾\",\n\"七扎\": \"七紮\",\n\"万\": \"萬\",\n\"万一只\": \"萬一只\",\n\"万个\": \"萬個\",\n\"万余\": \"萬餘\",\n\"万俟\": \"万俟\",\n\"万历\": \"萬曆\",\n\"万历史\": \"萬歷史\",\n\"万只\": \"萬隻\",\n\"万周后\": \"萬周後\",\n\"万天后\": \"萬天後\",\n\"万年历表\": \"萬年曆錶\",\n\"万扎\": \"萬紮\",\n\"万旗\": \"万旗\",\n\"万签插架\": \"萬籤插架\",\n\"万象\": \"萬象\",\n\"三个\": \"三個\",\n\"三余\": \"三餘\",\n\"三准\": \"三準\",\n\"三出戏\": \"三齣戲\",\n\"三只\": \"三隻\",\n\"三周后\": \"三周後\",\n\"三天后\": \"三天後\",\n\"三征七辟\": \"三徵七辟\",\n\"三扎\": \"三紮\",\n\"三统历\": \"三統曆\",\n\"三统历史\": \"三統歷史\",\n\"上台面\": \"上檯面\",\n\"上天里\": \"上天里\",\n\"上梁\": \"上樑\",\n\"上梁山\": \"上梁山\",\n\"上签\": \"上籤\",\n\"上签了\": \"上簽了\",\n\"上签写\": \"上簽寫\",\n\"上签发\": \"上簽發\",\n\"上签名\": \"上簽名\",\n\"上签字\": \"上簽字\",\n\"上签定\": \"上簽定\",\n\"上签收\": \"上簽收\",\n\"上签约\": \"上簽約\",\n\"上签署\": \"上簽署\",\n\"上签订\": \"上簽訂\",\n\"上签证\": \"上簽證\",\n\"上系上\": \"上繫上\",\n\"上课钟\": \"上課鐘\",\n\"上面糊\": \"上面糊\",\n\"下文里\": \"下文裡\",\n\"下梁\": \"下樑\",\n\"下注解\": \"下注解\",\n\"下签\": \"下籤\",\n\"下签了\": \"下簽了\",\n\"下签写\": \"下簽寫\",\n\"下签发\": \"下簽發\",\n\"下签名\": \"下簽名\",\n\"下签字\": \"下簽字\",\n\"下签定\": \"下簽定\",\n\"下签收\": \"下簽收\",\n\"下签约\": \"下簽約\",\n\"下签署\": \"下簽署\",\n\"下签订\": \"下簽訂\",\n\"下签证\": \"下簽證\",\n\"下课钟\": \"下課鐘\",\n\"不丑\": \"不醜\",\n\"不克自制\": \"不克自制\",\n\"不加自制\": \"不加自制\",\n\"不占凶吉\": \"不占凶吉\",\n\"不占卜\": \"不占卜\",\n\"不占吉凶\": \"不占吉凶\",\n\"不占算\": \"不占算\",\n\"不卷\": \"不捲\",\n\"不只\": \"不只\",\n\"不吊，\": \"不弔，\",\n\"不太准\": \"不太準\",\n\"不好干涉\": \"不好干涉\",\n\"不好干預\": \"不好干預\",\n\"不好干预\": \"不好干預\",\n\"不嫌母丑\": \"不嫌母醜\",\n\"不寒而栗\": \"不寒而慄\",\n\"不干不净\": \"不乾不淨\",\n\"不干胶\": \"不乾膠\",\n\"不托\": \"不託\",\n\"不斗\": \"不鬥\",\n\"不斗胆\": \"不斗膽\",\n\"不斗膽\": \"不斗膽\",\n\"不断发\": \"不斷發\",\n\"不每只\": \"不每只\",\n\"不谷\": \"不穀\",\n\"不负所托\": \"不負所托\",\n\"不通吊庆\": \"不通弔慶\",\n\"不采\": \"不採\",\n\"不采声\": \"不采聲\",\n\"不采聲\": \"不采聲\",\n\"不食乾腊\": \"不食乾腊\",\n\"不食干腊\": \"不食乾腊\",\n\"与\": \"與\",\n\"丑三\": \"丑三\",\n\"丑丑\": \"醜醜\",\n\"丑丫头\": \"醜丫頭\",\n\"丑事\": \"醜事\",\n\"丑人\": \"醜人\",\n\"丑侪\": \"醜儕\",\n\"丑八怪\": \"醜八怪\",\n\"丑剌剌\": \"醜剌剌\",\n\"丑剧\": \"醜劇\",\n\"丑化\": \"醜化\",\n\"丑史\": \"醜史\",\n\"丑名\": \"醜名\",\n\"丑吒\": \"醜吒\",\n\"丑地\": \"醜地\",\n\"丑声\": \"醜聲\",\n\"丑声远播\": \"醜聲遠播\",\n\"丑头怪脸\": \"醜頭怪臉\",\n\"丑夷\": \"醜夷\",\n\"丑女\": \"醜女\",\n\"丑女效颦\": \"醜女效顰\",\n\"丑奴儿\": \"醜奴兒\",\n\"丑妇\": \"醜婦\",\n\"丑媳\": \"醜媳\",\n\"丑媳妇\": \"醜媳婦\",\n\"丑小鸭\": \"醜小鴨\",\n\"丑巴怪\": \"醜巴怪\",\n\"丑年\": \"丑年\",\n\"丑徒\": \"醜徒\",\n\"丑态\": \"醜態\",\n\"丑恶\": \"醜惡\",\n\"丑日\": \"丑日\",\n\"丑旦\": \"丑旦\",\n\"丑时\": \"丑時\",\n\"丑月\": \"丑月\",\n\"丑末\": \"醜末\",\n\"丑杂\": \"醜雜\",\n\"丑样\": \"醜樣\",\n\"丑死\": \"醜死\",\n\"丑比\": \"醜比\",\n\"丑毙了\": \"醜斃了\",\n\"丑沮\": \"醜沮\",\n\"丑男\": \"醜男\",\n\"丑类\": \"醜類\",\n\"丑脸\": \"醜臉\",\n\"丑虏\": \"醜虜\",\n\"丑行\": \"醜行\",\n\"丑表功\": \"丑表功\",\n\"丑角\": \"丑角\",\n\"丑言\": \"醜言\",\n\"丑诋\": \"醜詆\",\n\"丑话\": \"醜話\",\n\"丑语\": \"醜語\",\n\"丑贼生\": \"醜賊生\",\n\"丑辞\": \"醜辭\",\n\"丑辱\": \"醜辱\",\n\"丑逆\": \"醜逆\",\n\"丑闻\": \"醜聞\",\n\"丑陋\": \"醜陋\",\n\"专\": \"專\",\n\"专辑里\": \"專輯裡\",\n\"世界杯\": \"世界盃\",\n\"世纪里\": \"世紀裡\",\n\"世纪钟\": \"世紀鐘\",\n\"世纪钟表\": \"世紀鐘錶\",\n\"业\": \"業\",\n\"业余\": \"業餘\",\n\"丛\": \"叢\",\n\"丛林里\": \"叢林裡\",\n\"东\": \"東\",\n\"东冲西突\": \"東衝西突\",\n\"东周钟\": \"東周鐘\",\n\"东岳\": \"東嶽\",\n\"东游\": \"東遊\",\n\"丝\": \"絲\",\n\"丝制\": \"絲製\",\n\"丝发\": \"絲髮\",\n\"丝发现\": \"絲發現\",\n\"丝发生\": \"絲發生\",\n\"丝恩发怨\": \"絲恩髮怨\",\n\"丢\": \"丟\",\n\"丢丑\": \"丟醜\",\n\"两\": \"兩\",\n\"两个\": \"兩個\",\n\"两余\": \"兩餘\",\n\"两出\": \"兩齣\",\n\"两只\": \"兩隻\",\n\"两周后\": \"兩周後\",\n\"两天后\": \"兩天後\",\n\"两扎\": \"兩紮\",\n\"两杆\": \"兩桿\",\n\"两虎共斗\": \"兩虎共鬥\",\n\"两鼠斗穴\": \"兩鼠鬥穴\",\n\"严\": \"嚴\",\n\"严云农\": \"嚴云農\",\n\"丧\": \"喪\",\n\"丧钟\": \"喪鐘\",\n\"个\": \"個\",\n\"个中原因\": \"箇中原因\",\n\"个中奥\": \"箇中奧\",\n\"个中好手\": \"箇中好手\",\n\"个中强手\": \"箇中強手\",\n\"个中滋味\": \"箇中滋味\",\n\"个中玄机\": \"箇中玄機\",\n\"个中理由\": \"箇中理由\",\n\"个中翘楚\": \"箇中翹楚\",\n\"个中道理\": \"箇中道理\",\n\"个中高手\": \"箇中高手\",\n\"个旧市\": \"箇舊市\",\n\"个月里\": \"個月裡\",\n\"个里\": \"個裡\",\n\"个钟\": \"個鐘\",\n\"个钟表\": \"個鐘錶\",\n\"中国国际信托投资公司\": \"中國國際信托投資公司\",\n\"中型钟\": \"中型鐘\",\n\"中型钟表\": \"中型鐘錶\",\n\"中型钟表面\": \"中型鐘表面\",\n\"中型钟面\": \"中型鐘面\",\n\"中境里\": \"中境里\",\n\"中岳\": \"中嶽\",\n\"中庄子\": \"中庄子\",\n\"中文里\": \"中文裡\",\n\"中断发\": \"中斷發\",\n\"中签\": \"中籤\",\n\"中签了\": \"中簽了\",\n\"中签写\": \"中簽寫\",\n\"中签发\": \"中簽發\",\n\"中签名\": \"中簽名\",\n\"中签字\": \"中簽字\",\n\"中签定\": \"中簽定\",\n\"中签收\": \"中簽收\",\n\"中签约\": \"中簽約\",\n\"中签署\": \"中簽署\",\n\"中签订\": \"中簽訂\",\n\"中签证\": \"中簽證\",\n\"中风后\": \"中風後\",\n\"丰\": \"豐\",\n\"丰仪\": \"丰儀\",\n\"丰儀\": \"丰儀\",\n\"丰台\": \"豐臺\",\n\"丰姿\": \"丰姿\",\n\"丰容\": \"丰容\",\n\"丰度\": \"豐度\",\n\"丰情\": \"丰情\",\n\"丰标\": \"丰標\",\n\"丰标不凡\": \"丰標不凡\",\n\"丰標\": \"丰標\",\n\"丰標不凡\": \"丰標不凡\",\n\"丰滨\": \"豐濱\",\n\"丰滨乡\": \"豐濱鄉\",\n\"丰神\": \"丰神\",\n\"丰茸\": \"丰茸\",\n\"丰采\": \"丰采\",\n\"丰韵\": \"丰韻\",\n\"丰韻\": \"丰韻\",\n\"临\": \"臨\",\n\"临潼斗宝\": \"臨潼鬥寶\",\n\"丹棱\": \"丹稜\",\n\"为\": \"爲\",\n\"为准\": \"為準\",\n\"为鉴\": \"為鑑\",\n\"主仆\": \"主僕\",\n\"主干\": \"主幹\",\n\"主钟差\": \"主鐘差\",\n\"主钟曲线\": \"主鐘曲線\",\n\"丽\": \"麗\",\n\"举\": \"舉\",\n\"举手表\": \"舉手表\",\n\"乃系\": \"乃係\",\n\"么\": \"麼\",\n\"么九\": \"么九\",\n\"么二三\": \"么二三\",\n\"么元\": \"么元\",\n\"么兒\": \"么兒\",\n\"么半\": \"么半\",\n\"么叔\": \"么叔\",\n\"么喝\": \"么喝\",\n\"么女\": \"么女\",\n\"么妹\": \"么妹\",\n\"么姓\": \"么姓\",\n\"么姨\": \"么姨\",\n\"么娘\": \"么娘\",\n\"么媽\": \"么媽\",\n\"么孃\": \"么孃\",\n\"么子\": \"么子\",\n\"么小\": \"么小\",\n\"么弟\": \"么弟\",\n\"么正\": \"么正\",\n\"么氏\": \"么氏\",\n\"么爸\": \"么爸\",\n\"么爹\": \"么爹\",\n\"么爺\": \"么爺\",\n\"么篇\": \"么篇\",\n\"么舅\": \"么舅\",\n\"么蛾子\": \"么蛾子\",\n\"么雞\": \"么雞\",\n\"么鳳\": \"么鳳\",\n\"么麼\": \"么麼\",\n\"义\": \"義\",\n\"义仆\": \"義僕\",\n\"之一只\": \"之一只\",\n\"之二只\": \"之二只\",\n\"之余\": \"之餘\",\n\"之八九只\": \"之八九只\",\n\"之征\": \"之徵\",\n\"之托\": \"之託\",\n\"之鉴\": \"之鑑\",\n\"之钟\": \"之鐘\",\n\"乌\": \"烏\",\n\"乌兹冲锋枪\": \"烏茲衝鋒槍\",\n\"乌发\": \"烏髮\",\n\"乌苏里\": \"烏蘇里\",\n\"乌龙面\": \"烏龍麵\",\n\"乐\": \"樂\",\n\"乐器钟\": \"樂器鐘\",\n\"乐游原\": \"樂遊原\",\n\"乔\": \"喬\",\n\"乔岳\": \"喬嶽\",\n\"乙丑\": \"乙丑\",\n\"九世之仇\": \"九世之讎\",\n\"九个\": \"九個\",\n\"九余\": \"九餘\",\n\"九只\": \"九隻\",\n\"九周后\": \"九周後\",\n\"九天后\": \"九天後\",\n\"九扎\": \"九紮\",\n\"九谷\": \"九穀\",\n\"习\": \"習\",\n\"乡\": \"鄉\",\n\"乡愿\": \"鄉愿\",\n\"书\": \"書\",\n\"书签\": \"書籤\",\n\"书面\": \"書面\",\n\"买\": \"買\",\n\"买凶\": \"買兇\",\n\"买断发\": \"買斷發\",\n\"乱\": \"亂\",\n\"乱哄哄\": \"亂鬨鬨\",\n\"乱斗\": \"亂鬥\",\n\"乾象历\": \"乾象曆\",\n\"乾象曆\": \"乾象曆\",\n\"了望\": \"瞭望\",\n\"了然\": \"瞭然\",\n\"了然后\": \"了然後\",\n\"了若指掌\": \"瞭若指掌\",\n\"争\": \"爭\",\n\"争奇斗妍\": \"爭奇鬥妍\",\n\"争奇斗异\": \"爭奇鬥異\",\n\"争奇斗艳\": \"爭奇鬥豔\",\n\"争妍斗奇\": \"爭妍鬥奇\",\n\"争妍斗艳\": \"爭妍鬥豔\",\n\"争斗\": \"爭鬥\",\n\"争红斗紫\": \"爭紅鬥紫\",\n\"事有斗巧\": \"事有鬥巧\",\n\"事里\": \"事裡\",\n\"二不棱登\": \"二不稜登\",\n\"二个\": \"二個\",\n\"二余\": \"二餘\",\n\"二只\": \"二隻\",\n\"二只得\": \"二只得\",\n\"二周后\": \"二周後\",\n\"二天后\": \"二天後\",\n\"二缶钟惑\": \"二缶鐘惑\",\n\"二老板\": \"二老板\",\n\"二虎相斗\": \"二虎相鬥\",\n\"二里头\": \"二里頭\",\n\"二里頭\": \"二里頭\",\n\"于\": \"於\",\n\"于丹\": \"于丹\",\n\"于于\": \"于于\",\n\"于云鹤\": \"于雲鶴\",\n\"于仁泰\": \"于仁泰\",\n\"于从濂\": \"于從濂\",\n\"于仲文\": \"于仲文\",\n\"于会泳\": \"于會泳\",\n\"于伟国\": \"于偉國\",\n\"于余曲折\": \"于餘曲折\",\n\"于佳卉\": \"于佳卉\",\n\"于來山\": \"于來山\",\n\"于偉國\": \"于偉國\",\n\"于光新\": \"于光新\",\n\"于光远\": \"于光遠\",\n\"于光遠\": \"于光遠\",\n\"于克-兰多县\": \"于克-蘭多縣\",\n\"于克-蘭多縣\": \"于克-蘭多縣\",\n\"于克勒\": \"于克勒\",\n\"于再清\": \"于再清\",\n\"于冕\": \"于冕\",\n\"于冠华\": \"于冠華\",\n\"于冠華\": \"于冠華\",\n\"于凌奎\": \"于凌奎\",\n\"于凌辰\": \"于凌辰\",\n\"于凤桐\": \"于鳳桐\",\n\"于凤至\": \"于鳳至\",\n\"于勒\": \"于勒\",\n\"于化虎\": \"于化虎\",\n\"于占元\": \"于占元\",\n\"于友泽\": \"于友澤\",\n\"于友澤\": \"于友澤\",\n\"于双戈\": \"于雙戈\",\n\"于台烟\": \"于台煙\",\n\"于台煙\": \"于台煙\",\n\"于右任\": \"于右任\",\n\"于吉\": \"于吉\",\n\"于吉林\": \"於吉林\",\n\"于和伟\": \"于和偉\",\n\"于和偉\": \"于和偉\",\n\"于品海\": \"于品海\",\n\"于国桢\": \"于國楨\",\n\"于国治\": \"于國治\",\n\"于國楨\": \"于國楨\",\n\"于國治\": \"于國治\",\n\"于坚\": \"于堅\",\n\"于堅\": \"于堅\",\n\"于大宝\": \"于大寶\",\n\"于大寶\": \"于大寶\",\n\"于天仁\": \"于天仁\",\n\"于天龍\": \"于天龍\",\n\"于天龙\": \"于天龍\",\n\"于奇库杜克\": \"于奇庫杜克\",\n\"于奇庫杜克\": \"于奇庫杜克\",\n\"于姓\": \"于姓\",\n\"于娜\": \"于娜\",\n\"于娟\": \"于娟\",\n\"于子千\": \"于子千\",\n\"于孔兼\": \"于孔兼\",\n\"于学忠\": \"于學忠\",\n\"于學忠\": \"于學忠\",\n\"于宝轩\": \"于寶軒\",\n\"于家堡\": \"于家堡\",\n\"于寘\": \"于寘\",\n\"于寶軒\": \"于寶軒\",\n\"于小伟\": \"于小偉\",\n\"于小偉\": \"于小偉\",\n\"于小彤\": \"于小彤\",\n\"于小惠\": \"于小惠\",\n\"于少保\": \"于少保\",\n\"于尔岑\": \"于爾岑\",\n\"于尔根\": \"于爾根\",\n\"于尔里克\": \"于爾里克\",\n\"于山国\": \"于山國\",\n\"于山國\": \"于山國\",\n\"于山岛\": \"于山島\",\n\"于山島\": \"于山島\",\n\"于帅\": \"于帥\",\n\"于帥\": \"于帥\",\n\"于幼军\": \"于幼軍\",\n\"于幼軍\": \"于幼軍\",\n\"于广洲\": \"于廣洲\",\n\"于康震\": \"于康震\",\n\"于廣洲\": \"于廣洲\",\n\"于建嵘\": \"于建嶸\",\n\"于建嶸\": \"于建嶸\",\n\"于式枚\": \"于式枚\",\n\"于归\": \"于歸\",\n\"于從濂\": \"于從濂\",\n\"于德海\": \"于德海\",\n\"于志宁\": \"于志寧\",\n\"于志寧\": \"于志寧\",\n\"于忠肃集\": \"于忠肅集\",\n\"于忠肅集\": \"于忠肅集\",\n\"于慎行\": \"于慎行\",\n\"于慧\": \"于慧\",\n\"于成龍\": \"于成龍\",\n\"于成龙\": \"于成龍\",\n\"于承惠\": \"于承惠\",\n\"于振\": \"于振\",\n\"于振武\": \"于振武\",\n\"于敏\": \"于敏\",\n\"于敏中\": \"于敏中\",\n\"于斌\": \"于斌\",\n\"于斯塔德\": \"于斯塔德\",\n\"于斯納爾斯貝里\": \"于斯納爾斯貝里\",\n\"于斯纳尔斯贝里\": \"于斯納爾斯貝里\",\n\"于斯达尔\": \"于斯達爾\",\n\"于斯達爾\": \"于斯達爾\",\n\"于明涛\": \"于明濤\",\n\"于明濤\": \"于明濤\",\n\"于是之\": \"于是之\",\n\"于晨楠\": \"于晨楠\",\n\"于晴\": \"于晴\",\n\"于會泳\": \"于會泳\",\n\"于来山\": \"于來山\",\n\"于枫\": \"于楓\",\n\"于树洁\": \"于樹潔\",\n\"于根伟\": \"于根偉\",\n\"于根偉\": \"于根偉\",\n\"于格\": \"于格\",\n\"于格林\": \"於格林\",\n\"于楓\": \"于楓\",\n\"于榮光\": \"于榮光\",\n\"于樂\": \"于樂\",\n\"于樹潔\": \"于樹潔\",\n\"于欣\": \"于欣\",\n\"于欣源\": \"于欣源\",\n\"于正昇\": \"于正昇\",\n\"于正昌\": \"于正昌\",\n\"于氏\": \"于氏\",\n\"于永波\": \"于永波\",\n\"于汉超\": \"于漢超\",\n\"于江震\": \"于江震\",\n\"于波\": \"于波\",\n\"于泽尔\": \"于澤爾\",\n\"于洋\": \"于洋\",\n\"于洪区\": \"于洪區\",\n\"于洪區\": \"于洪區\",\n\"于浩威\": \"于浩威\",\n\"于涛\": \"于濤\",\n\"于湘兰\": \"于湘蘭\",\n\"于湘蘭\": \"于湘蘭\",\n\"于漢超\": \"于漢超\",\n\"于澄\": \"于澄\",\n\"于澤爾\": \"于澤爾\",\n\"于濤\": \"于濤\",\n\"于熙珍\": \"于熙珍\",\n\"于爾岑\": \"于爾岑\",\n\"于爾根\": \"于爾根\",\n\"于爾里克\": \"于爾里克\",\n\"于特森\": \"于特森\",\n\"于玉立\": \"于玉立\",\n\"于田\": \"于田\",\n\"于禁\": \"于禁\",\n\"于秀敏\": \"于秀敏\",\n\"于立成\": \"于立成\",\n\"于素秋\": \"于素秋\",\n\"于美人\": \"于美人\",\n\"于耘婕\": \"于耘婕\",\n\"于芷山\": \"于芷山\",\n\"于若木\": \"于若木\",\n\"于荣光\": \"于榮光\",\n\"于荫霖\": \"于蔭霖\",\n\"于蔭霖\": \"于蔭霖\",\n\"于衡\": \"于衡\",\n\"于西翰\": \"于西翰\",\n\"于謙\": \"于謙\",\n\"于謹\": \"于謹\",\n\"于谦\": \"于謙\",\n\"于谨\": \"于謹\",\n\"于貝爾\": \"于貝爾\",\n\"于贈\": \"于贈\",\n\"于贝尔\": \"于貝爾\",\n\"于赠\": \"于贈\",\n\"于越\": \"于越\",\n\"于越南\": \"於越南\",\n\"于軍\": \"于軍\",\n\"于远伟\": \"于遠偉\",\n\"于逸堯\": \"于逸堯\",\n\"于道泉\": \"于道泉\",\n\"于遠偉\": \"于遠偉\",\n\"于都县\": \"于都縣\",\n\"于都縣\": \"于都縣\",\n\"于里察\": \"于里察\",\n\"于闐\": \"于闐\",\n\"于阗\": \"于闐\",\n\"于雙戈\": \"于雙戈\",\n\"于雲鶴\": \"于雲鶴\",\n\"于震\": \"于震\",\n\"于震中\": \"於震中\",\n\"于震前\": \"於震前\",\n\"于震后\": \"於震後\",\n\"于震寰\": \"于震寰\",\n\"于震环\": \"于震環\",\n\"于震環\": \"于震環\",\n\"于靖\": \"于靖\",\n\"于非暗\": \"于非闇\",\n\"于非闇\": \"于非闇\",\n\"于韋斯屈萊\": \"于韋斯屈萊\",\n\"于韦斯屈莱\": \"于韋斯屈萊\",\n\"于風政\": \"于風政\",\n\"于风政\": \"于風政\",\n\"于鬯\": \"于鬯\",\n\"于魁智\": \"于魁智\",\n\"于鳳桐\": \"于鳳桐\",\n\"于鳳至\": \"于鳳至\",\n\"于默奥\": \"于默奧\",\n\"于默奧\": \"于默奧\",\n\"亏\": \"虧\",\n\"云\": \"雲\",\n\"云为\": \"云為\",\n\"云乎\": \"云乎\",\n\"云云\": \"云云\",\n\"云何\": \"云何\",\n\"云南个旧\": \"雲南箇舊\",\n\"云吞\": \"雲吞\",\n\"云吞面\": \"雲吞麵\",\n\"云尔\": \"云爾\",\n\"云敞\": \"云敞\",\n\"云游\": \"雲遊\",\n\"云為\": \"云為\",\n\"云然\": \"云然\",\n\"云笈七签\": \"雲笈七籤\",\n\"云里雾里\": \"雲裡霧裡\",\n\"云须\": \"雲鬚\",\n\"云：\": \"云：\",\n\"五个\": \"五個\",\n\"五余\": \"五餘\",\n\"五只\": \"五隻\",\n\"五周后\": \"五周後\",\n\"五天后\": \"五天後\",\n\"五岳\": \"五嶽\",\n\"五峰县\": \"五峯縣\",\n\"五扎\": \"五紮\",\n\"五脏\": \"五臟\",\n\"五行生克\": \"五行生剋\",\n\"五谷\": \"五穀\",\n\"五谷王北街\": \"五谷王北街\",\n\"五谷王南街\": \"五谷王南街\",\n\"井干\": \"井幹\",\n\"井里\": \"井裡\",\n\"亚\": \"亞\",\n\"交哄\": \"交鬨\",\n\"交托\": \"交託\",\n\"交游\": \"交遊\",\n\"亦云\": \"亦云\",\n\"产\": \"產\",\n\"亩\": \"畝\",\n\"京沈\": \"京瀋\",\n\"亮丑\": \"亮醜\",\n\"亮钟\": \"亮鐘\",\n\"亲\": \"親\",\n\"亵\": \"褻\",\n\"亸\": \"嚲\",\n\"人云\": \"人云\",\n\"人发指\": \"人髮指\",\n\"人如风后入江云\": \"人如風後入江雲\",\n\"人干的\": \"人幹的\",\n\"人数只\": \"人數只\",\n\"人数里\": \"人數裡\",\n\"人欲\": \"人慾\",\n\"人物志\": \"人物誌\",\n\"人生天里\": \"人生天里\",\n\"亿\": \"億\",\n\"亿个\": \"億個\",\n\"亿余\": \"億餘\",\n\"亿只\": \"億隻\",\n\"亿周后\": \"億周後\",\n\"亿天后\": \"億天後\",\n\"什锦面\": \"什錦麵\",\n\"仁贵\": \"仁貴\",\n\"仅\": \"僅\",\n\"仅余\": \"僅餘\",\n\"仆人\": \"僕人\",\n\"仆仆\": \"僕僕\",\n\"仆从\": \"僕從\",\n\"仆使\": \"僕使\",\n\"仆僮\": \"僕僮\",\n\"仆吏\": \"僕吏\",\n\"仆固怀恩\": \"僕固懷恩\",\n\"仆夫\": \"僕夫\",\n\"仆妇\": \"僕婦\",\n\"仆姑\": \"僕姑\",\n\"仆婢\": \"僕婢\",\n\"仆射\": \"僕射\",\n\"仆少\": \"僕少\",\n\"仆役\": \"僕役\",\n\"仆憎\": \"僕憎\",\n\"仆欧\": \"僕歐\",\n\"仆程\": \"僕程\",\n\"仆虽罢驽\": \"僕雖罷駑\",\n\"仇隙\": \"讎隙\",\n\"介胄\": \"介冑\",\n\"从\": \"從\",\n\"从仆\": \"從僕\",\n\"从图里\": \"從圖裡\",\n\"从山里\": \"從山裡\",\n\"从里到外\": \"從裡到外\",\n\"从里向外\": \"從裡向外\",\n\"仑\": \"侖\",\n\"仓\": \"倉\",\n\"他干的\": \"他幹的\",\n\"付托\": \"付託\",\n\"仙后\": \"仙后\",\n\"仙后座\": \"仙后座\",\n\"仙游\": \"仙遊\",\n\"代数里\": \"代數裡\",\n\"代理发行\": \"代理發行\",\n\"代码表\": \"代碼表\",\n\"代表\": \"代表\",\n\"以自制\": \"以自制\",\n\"仪\": \"儀\",\n\"仪范\": \"儀範\",\n\"们\": \"們\",\n\"们干的\": \"們幹的\",\n\"仲裁制\": \"仲裁制\",\n\"件钟\": \"件鐘\",\n\"价\": \"價\",\n\"价川\": \"价川\",\n\"仿制\": \"仿製\",\n\"伊东怜\": \"伊東怜\",\n\"伊于湖底\": \"伊于湖底\",\n\"伊尔汗历表\": \"伊爾汗曆表\",\n\"伊府面\": \"伊府麵\",\n\"伊斯兰历\": \"伊斯蘭曆\",\n\"伊斯兰历史\": \"伊斯蘭歷史\",\n\"伊斯兰教历\": \"伊斯蘭教曆\",\n\"伊斯兰教历史\": \"伊斯蘭教歷史\",\n\"伊東怜\": \"伊東怜\",\n\"伊达里子\": \"伊達里子\",\n\"伊适杰\": \"伊適杰\",\n\"伊適杰\": \"伊適杰\",\n\"伊郁\": \"伊鬱\",\n\"伊里布\": \"伊里布\",\n\"伏几\": \"伏几\",\n\"伐罪吊民\": \"伐罪弔民\",\n\"休克期\": \"休克期\",\n\"休征\": \"休徵\",\n\"众\": \"衆\",\n\"优\": \"優\",\n\"优游\": \"優遊\",\n\"伙众\": \"夥眾\",\n\"伙伴\": \"夥伴\",\n\"伙友\": \"夥友\",\n\"伙同\": \"夥同\",\n\"伙头\": \"伙頭\",\n\"伙计\": \"夥計\",\n\"会\": \"會\",\n\"会吊\": \"會弔\",\n\"会干\": \"會幹\",\n\"会干扰\": \"會干擾\",\n\"会里\": \"會裡\",\n\"伛\": \"傴\",\n\"伞\": \"傘\",\n\"伟\": \"偉\",\n\"传\": \"傳\",\n\"传位于四太子\": \"傳位于四太子\",\n\"伡\": \"俥\",\n\"伣\": \"俔\",\n\"伤\": \"傷\",\n\"伥\": \"倀\",\n\"伦\": \"倫\",\n\"伧\": \"傖\",\n\"伪\": \"僞\",\n\"伫\": \"佇\",\n\"伴游\": \"伴遊\",\n\"但云\": \"但云\",\n\"位准\": \"位準\",\n\"低洼\": \"低洼\",\n\"住扎\": \"住紮\",\n\"体\": \"體\",\n\"体征\": \"體徵\",\n\"体系\": \"體系\",\n\"体范\": \"體範\",\n\"体里\": \"體裡\",\n\"何杰\": \"何杰\",\n\"余0\": \"餘0\",\n\"余1\": \"餘1\",\n\"余2\": \"餘2\",\n\"余3\": \"餘3\",\n\"余4\": \"餘4\",\n\"余5\": \"餘5\",\n\"余6\": \"餘6\",\n\"余7\": \"餘7\",\n\"余8\": \"餘8\",\n\"余9\": \"餘9\",\n\"余〇\": \"餘〇\",\n\"余一\": \"餘一\",\n\"余七\": \"餘七\",\n\"余三\": \"餘三\",\n\"余三勝\": \"余三勝\",\n\"余三胜\": \"余三勝\",\n\"余下\": \"餘下\",\n\"余业\": \"餘業\",\n\"余九\": \"餘九\",\n\"余事\": \"餘事\",\n\"余二\": \"餘二\",\n\"余五\": \"餘五\",\n\"余人\": \"餘人\",\n\"余众\": \"餘眾\",\n\"余俗\": \"餘俗\",\n\"余倍\": \"餘倍\",\n\"余僇\": \"餘僇\",\n\"余光\": \"餘光\",\n\"余光中\": \"余光中\",\n\"余光生\": \"余光生\",\n\"余党\": \"餘黨\",\n\"余八\": \"餘八\",\n\"余六\": \"餘六\",\n\"余兴\": \"餘興\",\n\"余刃\": \"餘刃\",\n\"余切\": \"餘切\",\n\"余利\": \"餘利\",\n\"余割\": \"餘割\",\n\"余力\": \"餘力\",\n\"余力为\": \"余力為\",\n\"余力為\": \"余力為\",\n\"余勇\": \"餘勇\",\n\"余十\": \"餘十\",\n\"余味\": \"餘味\",\n\"余响\": \"餘響\",\n\"余喘\": \"餘喘\",\n\"余四\": \"餘四\",\n\"余地\": \"餘地\",\n\"余墨\": \"餘墨\",\n\"余声\": \"餘聲\",\n\"余外\": \"餘外\",\n\"余妙\": \"餘妙\",\n\"余姚\": \"餘姚\",\n\"余威\": \"餘威\",\n\"余威德\": \"余威德\",\n\"余子\": \"餘子\",\n\"余子明\": \"余子明\",\n\"余存\": \"餘存\",\n\"余孽\": \"餘孽\",\n\"余干\": \"餘干\",\n\"余年\": \"餘年\",\n\"余庆\": \"餘慶\",\n\"余式\": \"餘式\",\n\"余弦\": \"餘弦\",\n\"余思\": \"餘思\",\n\"余思敏\": \"余思敏\",\n\"余悸\": \"餘悸\",\n\"余数\": \"餘數\",\n\"余明\": \"餘明\",\n\"余映\": \"餘映\",\n\"余晖\": \"餘暉\",\n\"余暇\": \"餘暇\",\n\"余杭\": \"餘杭\",\n\"余杯\": \"餘杯\",\n\"余杰\": \"余杰\",\n\"余桃\": \"餘桃\",\n\"余桶\": \"餘桶\",\n\"余欢\": \"餘歡\",\n\"余款\": \"餘款\",\n\"余步\": \"餘步\",\n\"余殃\": \"餘殃\",\n\"余毒\": \"餘毒\",\n\"余气\": \"餘氣\",\n\"余江\": \"餘江\",\n\"余沥\": \"餘瀝\",\n\"余波\": \"餘波\",\n\"余泽\": \"餘澤\",\n\"余温\": \"餘溫\",\n\"余烈\": \"餘烈\",\n\"余烬\": \"餘燼\",\n\"余热\": \"餘熱\",\n\"余珍\": \"餘珍\",\n\"余生\": \"餘生\",\n\"余留\": \"餘留\",\n\"余窍\": \"餘竅\",\n\"余粮\": \"餘糧\",\n\"余绪\": \"餘緒\",\n\"余缺\": \"餘缺\",\n\"余罪\": \"餘罪\",\n\"余羡\": \"餘羨\",\n\"余膏\": \"餘膏\",\n\"余荫\": \"餘蔭\",\n\"余蓄\": \"餘蓄\",\n\"余裕\": \"餘裕\",\n\"余角\": \"餘角\",\n\"余论\": \"餘論\",\n\"余貾\": \"餘貾\",\n\"余责\": \"餘責\",\n\"余辉\": \"餘輝\",\n\"余辜\": \"餘辜\",\n\"余部\": \"餘部\",\n\"余酲\": \"餘酲\",\n\"余量\": \"餘量\",\n\"余闰\": \"餘閏\",\n\"余闲\": \"餘閒\",\n\"余零\": \"餘零\",\n\"余震\": \"餘震\",\n\"余霞\": \"餘霞\",\n\"余音\": \"餘音\",\n\"余韵\": \"餘韻\",\n\"余项\": \"餘項\",\n\"余额\": \"餘額\",\n\"余风\": \"餘風\",\n\"余食\": \"餘食\",\n\"佛历\": \"佛曆\",\n\"佛罗棱萨\": \"佛羅稜薩\",\n\"佛钟\": \"佛鐘\",\n\"作准\": \"作準\",\n\"作品里\": \"作品裡\",\n\"你夸\": \"你誇\",\n\"佣\": \"傭\",\n\"佣仆\": \"傭僕\",\n\"佣金\": \"佣金\",\n\"佣鈿\": \"佣鈿\",\n\"佣錢\": \"佣錢\",\n\"佣钱\": \"佣錢\",\n\"佣钿\": \"佣鈿\",\n\"佥\": \"僉\",\n\"佳肴\": \"佳肴\",\n\"佳里鎮\": \"佳里鎮\",\n\"使其斗\": \"使其鬥\",\n\"侍仆\": \"侍僕\",\n\"依依不舍\": \"依依不捨\",\n\"依托\": \"依託\",\n\"侠\": \"俠\",\n\"侣\": \"侶\",\n\"侥\": \"僥\",\n\"侥幸\": \"僥倖\",\n\"侦\": \"偵\",\n\"侧\": \"側\",\n\"侨\": \"僑\",\n\"侩\": \"儈\",\n\"侪\": \"儕\",\n\"侬\": \"儂\",\n\"侭\": \"儘\",\n\"侵并\": \"侵併\",\n\"保险柜\": \"保險柜\",\n\"信托\": \"信託\",\n\"信托贸易\": \"信托貿易\",\n\"俣\": \"俁\",\n\"俦\": \"儔\",\n\"俨\": \"儼\",\n\"俩\": \"倆\",\n\"俪\": \"儷\",\n\"俫\": \"倈\",\n\"俭\": \"儉\",\n\"俭仆\": \"儉僕\",\n\"俭朴\": \"儉樸\",\n\"俭确之教\": \"儉确之教\",\n\"修杰楷\": \"修杰楷\",\n\"修杰麟\": \"修杰麟\",\n\"修筑前\": \"修築前\",\n\"修筑后\": \"修築後\",\n\"修胡刀\": \"修鬍刀\",\n\"俯冲\": \"俯衝\",\n\"候复\": \"候覆\",\n\"倚闲\": \"倚閑\",\n\"倛丑\": \"倛醜\",\n\"借以\": \"藉以\",\n\"借助\": \"藉助\",\n\"借口\": \"藉口\",\n\"借寇兵\": \"藉寇兵\",\n\"借手\": \"藉手\",\n\"借故\": \"藉故\",\n\"借机\": \"藉機\",\n\"借此\": \"藉此\",\n\"借由\": \"藉由\",\n\"借箸代筹\": \"藉箸代籌\",\n\"借资\": \"藉資\",\n\"借鉴\": \"借鑑\",\n\"倦游\": \"倦遊\",\n\"债\": \"債\",\n\"债累累\": \"債纍纍\",\n\"倾\": \"傾\",\n\"假发\": \"假髮\",\n\"假发票\": \"假發票\",\n\"假托\": \"假託\",\n\"假里\": \"假裡\",\n\"偎干\": \"偎乾\",\n\"停停当当\": \"停停當當\",\n\"停制\": \"停製\",\n\"停征\": \"停徵\",\n\"偬\": \"傯\",\n\"偻\": \"僂\",\n\"偾\": \"僨\",\n\"偿\": \"償\",\n\"傤\": \"儎\",\n\"傥\": \"儻\",\n\"傧\": \"儐\",\n\"储\": \"儲\",\n\"傩\": \"儺\",\n\"催并\": \"催併\",\n\"傲游\": \"傲遊\",\n\"傲霜斗雪\": \"傲霜鬥雪\",\n\"傳位于四太子\": \"傳位于四太子\",\n\"傻里傻气\": \"傻裡傻氣\",\n\"像赞\": \"像讚\",\n\"僮仆\": \"僮僕\",\n\"僵尸\": \"殭屍\",\n\"儉确之教\": \"儉确之教\",\n\"儒略历\": \"儒略曆\",\n\"儒略历史\": \"儒略歷史\",\n\"儒略改革历\": \"儒略改革曆\",\n\"儒略改革历史\": \"儒略改革歷史\",\n\"儿\": \"兒\",\n\"兀术\": \"兀朮\",\n\"元凶\": \"元兇\",\n\"兆个\": \"兆個\",\n\"兆余\": \"兆餘\",\n\"先采\": \"先採\",\n\"光致致\": \"光緻緻\",\n\"克剥\": \"剋剝\",\n\"克扣\": \"剋扣\",\n\"克期\": \"剋期\",\n\"克期间\": \"克期間\",\n\"克死\": \"剋死\",\n\"克薄\": \"剋薄\",\n\"免征\": \"免徵\",\n\"兑\": \"兌\",\n\"兖\": \"兗\",\n\"党\": \"黨\",\n\"党太尉\": \"党太尉\",\n\"党姓\": \"党姓\",\n\"党家\": \"党家\",\n\"党怀英\": \"党懷英\",\n\"党懷英\": \"党懷英\",\n\"党进\": \"党進\",\n\"党進\": \"党進\",\n\"党項\": \"党項\",\n\"党项\": \"党項\",\n\"入侵并\": \"入侵並\",\n\"全干\": \"全乾\",\n\"八个\": \"八個\",\n\"八余\": \"八餘\",\n\"八只\": \"八隻\",\n\"八周后\": \"八周後\",\n\"八天后\": \"八天後\",\n\"八字胡\": \"八字鬍\",\n\"八扎\": \"八紮\",\n\"八蜡\": \"八蜡\",\n\"公仆\": \"公僕\",\n\"公仔面\": \"公仔麵\",\n\"公余\": \"公餘\",\n\"公历\": \"公曆\",\n\"公历史\": \"公歷史\",\n\"公孙丑\": \"公孫丑\",\n\"公寓里\": \"公寓裡\",\n\"公寓里弄\": \"公寓里弄\",\n\"公干\": \"公幹\",\n\"公里海\": \"公里海\",\n\"六个\": \"六個\",\n\"六么\": \"六么\",\n\"六余\": \"六餘\",\n\"六冲\": \"六衝\",\n\"六只\": \"六隻\",\n\"六周后\": \"六周後\",\n\"六天后\": \"六天後\",\n\"六扎\": \"六紮\",\n\"六楼后座\": \"六樓后座\",\n\"六樓后座\": \"六樓后座\",\n\"六谷\": \"六穀\",\n\"兰\": \"蘭\",\n\"兰溪市\": \"蘭谿市\",\n\"共和历\": \"共和曆\",\n\"共和历史\": \"共和歷史\",\n\"关\": \"關\",\n\"关注：\": \"關注：\",\n\"关系\": \"關係\",\n\"关系列\": \"關系列\",\n\"关系所\": \"關系所\",\n\"关系科\": \"關系科\",\n\"关系统\": \"關系統\",\n\"兴\": \"興\",\n\"其一只\": \"其一只\",\n\"其二只\": \"其二只\",\n\"其余\": \"其餘\",\n\"其八九只\": \"其八九只\",\n\"其次辟地\": \"其次辟地\",\n\"典范\": \"典範\",\n\"兹\": \"茲\",\n\"养\": \"養\",\n\"养脏\": \"養臟\",\n\"兼并\": \"兼併\",\n\"兽\": \"獸\",\n\"兽欲\": \"獸慾\",\n\"冁\": \"囅\",\n\"内\": \"內\",\n\"内制\": \"內製\",\n\"内哄\": \"內鬨\",\n\"内斗\": \"內鬥\",\n\"内脏\": \"內臟\",\n\"内面包\": \"內面包\",\n\"内面包的\": \"內面包的\",\n\"冈\": \"岡\",\n\"冉有仆\": \"冉有僕\",\n\"册\": \"冊\",\n\"冗余\": \"冗餘\",\n\"写\": \"寫\",\n\"写字台\": \"寫字檯\",\n\"军\": \"軍\",\n\"农\": \"農\",\n\"农历\": \"農曆\",\n\"农历史\": \"農歷史\",\n\"农民历\": \"農民曆\",\n\"农民历史\": \"農民歷史\",\n\"冤仇\": \"冤讎\",\n\"冥蒙\": \"冥濛\",\n\"冬冬鼓\": \"鼕鼕鼓\",\n\"冬山庄\": \"冬山庄\",\n\"冬游\": \"冬遊\",\n\"冯\": \"馮\",\n\"冰山里\": \"冰山裡\",\n\"冲\": \"沖\",\n\"冲上\": \"衝上\",\n\"冲下\": \"衝下\",\n\"冲倒\": \"衝倒\",\n\"冲克\": \"衝剋\",\n\"冲冠\": \"衝冠\",\n\"冲冠发怒\": \"沖冠髮怒\",\n\"冲决\": \"衝決\",\n\"冲出\": \"衝出\",\n\"冲击\": \"衝擊\",\n\"冲到\": \"衝到\",\n\"冲刺\": \"衝刺\",\n\"冲力\": \"衝力\",\n\"冲动\": \"衝動\",\n\"冲劲\": \"衝勁\",\n\"冲压\": \"衝壓\",\n\"冲去\": \"衝去\",\n\"冲口\": \"衝口\",\n\"冲坚陷阵\": \"衝堅陷陣\",\n\"冲垮\": \"衝垮\",\n\"冲堂\": \"衝堂\",\n\"冲天\": \"沖天\",\n\"冲天炮\": \"衝天炮\",\n\"冲头阵\": \"衝頭陣\",\n\"冲州撞府\": \"衝州撞府\",\n\"冲心\": \"衝心\",\n\"冲掉\": \"衝掉\",\n\"冲撞\": \"衝撞\",\n\"冲散\": \"衝散\",\n\"冲杀\": \"衝殺\",\n\"冲来\": \"衝來\",\n\"冲波\": \"衝波\",\n\"冲浪\": \"衝浪\",\n\"冲激\": \"衝激\",\n\"冲然\": \"衝然\",\n\"冲盹\": \"衝盹\",\n\"冲着\": \"衝着\",\n\"冲破\": \"衝破\",\n\"冲程\": \"衝程\",\n\"冲突\": \"衝突\",\n\"冲线\": \"衝線\",\n\"冲要\": \"衝要\",\n\"冲起\": \"衝起\",\n\"冲车\": \"衝車\",\n\"冲过\": \"衝過\",\n\"冲进\": \"衝進\",\n\"冲量\": \"衝量\",\n\"冲锋\": \"衝鋒\",\n\"冲锋枪\": \"衝鋒鎗\",\n\"冲陷\": \"衝陷\",\n\"冲风\": \"衝風\",\n\"决\": \"決\",\n\"决斗\": \"決鬥\",\n\"况\": \"況\",\n\"冶游\": \"冶遊\",\n\"冷面\": \"冷麵\",\n\"冷面天使\": \"冷面天使\",\n\"冷面杀手\": \"冷面殺手\",\n\"冷面殺手\": \"冷面殺手\",\n\"冷面相\": \"冷面相\",\n\"冷面笑匠\": \"冷面笑匠\",\n\"冻\": \"凍\",\n\"净\": \"淨\",\n\"净余\": \"淨餘\",\n\"净发\": \"淨髮\",\n\"凄\": \"淒\",\n\"凄厉\": \"悽厲\",\n\"凄怆\": \"悽愴\",\n\"凄怨\": \"悽怨\",\n\"凄恻\": \"悽惻\",\n\"凄惋\": \"悽惋\",\n\"凄惨\": \"悽慘\",\n\"凄惶\": \"悽惶\",\n\"凄戾\": \"悽戾\",\n\"凄然\": \"悽然\",\n\"凄美\": \"悽美\",\n\"凄苦\": \"悽苦\",\n\"凄酸\": \"悽酸\",\n\"准三后\": \"准三后\",\n\"准不准\": \"準不準\",\n\"准会\": \"準會\",\n\"准例\": \"準例\",\n\"准保\": \"準保\",\n\"准保护\": \"准保護\",\n\"准保護\": \"准保護\",\n\"准保释\": \"准保釋\",\n\"准保釋\": \"准保釋\",\n\"准儿\": \"準兒\",\n\"准军事\": \"準軍事\",\n\"准决赛\": \"準決賽\",\n\"准分子\": \"準分子\",\n\"准则\": \"準則\",\n\"准噶尔\": \"準噶爾\",\n\"准备\": \"準備\",\n\"准头\": \"準頭\",\n\"准定\": \"準定\",\n\"准平原\": \"準平原\",\n\"准度\": \"準度\",\n\"准式\": \"準式\",\n\"准拟\": \"準擬\",\n\"准拿督\": \"準拿督\",\n\"准据\": \"準據\",\n\"准新娘\": \"準新娘\",\n\"准新郎\": \"準新郎\",\n\"准时\": \"準時\",\n\"准星\": \"準星\",\n\"准是\": \"準是\",\n\"准点\": \"準點\",\n\"准的\": \"準的\",\n\"准直\": \"準直\",\n\"准确\": \"準確\",\n\"准线\": \"準線\",\n\"准绳\": \"準繩\",\n\"准话\": \"準話\",\n\"准谱\": \"準譜\",\n\"准货币\": \"準貨幣\",\n\"凉\": \"涼\",\n\"凉席\": \"涼蓆\",\n\"凉面\": \"涼麵\",\n\"凌蒙初\": \"凌濛初\",\n\"减\": \"減\",\n\"凑\": \"湊\",\n\"凛\": \"凜\",\n\"凝炼\": \"凝鍊\",\n\"几\": \"幾\",\n\"几上\": \"几上\",\n\"几个\": \"幾個\",\n\"几净窗明\": \"几淨窗明\",\n\"几几\": \"几几\",\n\"几凳\": \"几凳\",\n\"几出\": \"幾齣\",\n\"几只\": \"幾隻\",\n\"几周后\": \"幾周後\",\n\"几天后\": \"幾天後\",\n\"几子\": \"几子\",\n\"几旁\": \"几旁\",\n\"几杖\": \"几杖\",\n\"几案\": \"几案\",\n\"几椅\": \"几椅\",\n\"几榻\": \"几榻\",\n\"几淨窗明\": \"几淨窗明\",\n\"几筵\": \"几筵\",\n\"几进几出\": \"幾進幾出\",\n\"几面上\": \"几面上\",\n\"凤\": \"鳳\",\n\"凤凰于飞\": \"鳳凰于飛\",\n\"凤梨干\": \"鳳梨乾\",\n\"凫\": \"鳧\",\n\"凭\": \"憑\",\n\"凭借\": \"憑藉\",\n\"凭准\": \"憑準\",\n\"凭几\": \"憑几\",\n\"凭吊\": \"憑弔\",\n\"凭折\": \"憑摺\",\n\"凭闲\": \"憑閑\",\n\"凯\": \"凱\",\n\"凶刀\": \"兇刀\",\n\"凶器\": \"兇器\",\n\"凶嫌\": \"兇嫌\",\n\"凶巴巴\": \"兇巴巴\",\n\"凶征\": \"凶徵\",\n\"凶徒\": \"兇徒\",\n\"凶恶\": \"兇惡\",\n\"凶悍\": \"兇悍\",\n\"凶手\": \"兇手\",\n\"凶杀\": \"兇殺\",\n\"凶枪\": \"兇槍\",\n\"凶案\": \"兇案\",\n\"凶横\": \"兇橫\",\n\"凶残\": \"兇殘\",\n\"凶犯\": \"兇犯\",\n\"凶狠\": \"兇狠\",\n\"凶猛\": \"兇猛\",\n\"凶疑\": \"兇疑\",\n\"凶相\": \"兇相\",\n\"凶相毕露\": \"凶相畢露\",\n\"凶险\": \"兇險\",\n\"出丑\": \"出醜\",\n\"出乖弄丑\": \"出乖弄醜\",\n\"出乖露丑\": \"出乖露醜\",\n\"出征收\": \"出征收\",\n\"出游\": \"出遊\",\n\"击\": \"擊\",\n\"击扑\": \"擊扑\",\n\"击钟\": \"擊鐘\",\n\"函数里\": \"函數裡\",\n\"凿\": \"鑿\",\n\"分别致\": \"分别致\",\n\"分半钟\": \"分半鐘\",\n\"分多钟\": \"分多鐘\",\n\"分子云\": \"分子雲\",\n\"分子钟\": \"分子鐘\",\n\"分钟\": \"分鐘\",\n\"分钟里\": \"分鐘裡\",\n\"刍\": \"芻\",\n\"刑余\": \"刑餘\",\n\"划\": \"劃\",\n\"划一桨\": \"划一槳\",\n\"划一槳\": \"划一槳\",\n\"划不來\": \"划不來\",\n\"划不来\": \"划不來\",\n\"划为\": \"劃為\",\n\"划了一会\": \"划了一會\",\n\"划了一會\": \"划了一會\",\n\"划來划去\": \"划來划去\",\n\"划入\": \"劃入\",\n\"划具\": \"划具\",\n\"划到岸\": \"划到岸\",\n\"划到江心\": \"划到江心\",\n\"划动\": \"划動\",\n\"划動\": \"划動\",\n\"划去\": \"划去\",\n\"划子\": \"划子\",\n\"划得來\": \"划得來\",\n\"划得来\": \"划得來\",\n\"划拳\": \"划拳\",\n\"划来划去\": \"划來划去\",\n\"划桨\": \"划槳\",\n\"划槳\": \"划槳\",\n\"划水\": \"划水\",\n\"划着独木舟\": \"划着獨木舟\",\n\"划着獨木舟\": \"划着獨木舟\",\n\"划着竹筏\": \"划着竹筏\",\n\"划着船\": \"划着船\",\n\"划算\": \"划算\",\n\"划船\": \"划船\",\n\"划艇\": \"划艇\",\n\"划著\": \"劃著名\",\n\"划行\": \"划行\",\n\"划走\": \"划走\",\n\"划起\": \"划起\",\n\"划过\": \"划過\",\n\"划进\": \"划進\",\n\"划進\": \"划進\",\n\"划過\": \"划過\",\n\"划龍舟\": \"划龍舟\",\n\"划龍船\": \"划龍船\",\n\"划龙舟\": \"划龍舟\",\n\"划龙船\": \"划龍船\",\n\"刘\": \"劉\",\n\"刘佳怜\": \"劉佳怜\",\n\"刘芸后\": \"劉芸后\",\n\"则\": \"則\",\n\"刚\": \"剛\",\n\"刚干\": \"剛乾\",\n\"刚雇\": \"剛僱\",\n\"创\": \"創\",\n\"创制\": \"創製\",\n\"创获\": \"創穫\",\n\"删\": \"刪\",\n\"判断发\": \"判斷發\",\n\"利欲\": \"利慾\",\n\"别\": \"別\",\n\"别扭\": \"彆扭\",\n\"别拗\": \"彆拗\",\n\"别气\": \"彆氣\",\n\"别辟\": \"別闢\",\n\"刬\": \"剗\",\n\"刭\": \"剄\",\n\"刮了\": \"颳了\",\n\"刮倒\": \"颳倒\",\n\"刮大风\": \"颳大風\",\n\"刮得\": \"颳得\",\n\"刮胡\": \"刮鬍\",\n\"刮走\": \"颳走\",\n\"刮起\": \"颳起\",\n\"刮起来\": \"刮起來\",\n\"刮雪\": \"颳雪\",\n\"刮风\": \"颳風\",\n\"刮风后\": \"颳風後\",\n\"到山里\": \"到山裡\",\n\"制件\": \"製件\",\n\"制作\": \"製作\",\n\"制做\": \"製做\",\n\"制冰\": \"製冰\",\n\"制冷\": \"製冷\",\n\"制冷机\": \"制冷機\",\n\"制剂\": \"製劑\",\n\"制取\": \"製取\",\n\"制品\": \"製品\",\n\"制图\": \"製圖\",\n\"制备\": \"製備\",\n\"制得\": \"製得\",\n\"制成\": \"製成\",\n\"制毒\": \"製毒\",\n\"制汉字\": \"製漢字\",\n\"制法\": \"製法\",\n\"制浆\": \"製漿\",\n\"制片\": \"製片\",\n\"制版\": \"製版\",\n\"制盐\": \"製鹽\",\n\"制程\": \"製程\",\n\"制糖\": \"製糖\",\n\"制纸\": \"製紙\",\n\"制药\": \"製藥\",\n\"制衣\": \"製衣\",\n\"制表键\": \"製表鍵\",\n\"制贩\": \"製販\",\n\"制造\": \"製造\",\n\"制钟\": \"制鐘\",\n\"制革\": \"製革\",\n\"制鞋\": \"製鞋\",\n\"刹\": \"剎\",\n\"刻半钟\": \"刻半鐘\",\n\"刻多钟\": \"刻多鐘\",\n\"刻钟\": \"刻鐘\",\n\"刽\": \"劊\",\n\"刾\": \"㓨\",\n\"刿\": \"劌\",\n\"剀\": \"剴\",\n\"剂\": \"劑\",\n\"剃发\": \"剃髮\",\n\"剃胡\": \"剃鬍\",\n\"剃须\": \"剃鬚\",\n\"削发\": \"削髮\",\n\"削面\": \"削麵\",\n\"前往\": \"前往\",\n\"前面店\": \"前面店\",\n\"剐\": \"剮\",\n\"剑\": \"劍\",\n\"剖厘\": \"剖釐\",\n\"剥\": \"剝\",\n\"剥制\": \"剝製\",\n\"剧\": \"劇\",\n\"剩余\": \"剩餘\",\n\"剪其发\": \"剪其髮\",\n\"剪发\": \"剪髮\",\n\"割舍\": \"割捨\",\n\"劉佳怜\": \"劉佳怜\",\n\"劉芸后\": \"劉芸后\",\n\"力争上游\": \"力爭上遊\",\n\"劝\": \"勸\",\n\"办\": \"辦\",\n\"办公台\": \"辦公檯\",\n\"功勋\": \"功勳\",\n\"加氢精制\": \"加氫精制\",\n\"务\": \"務\",\n\"劢\": \"勱\",\n\"动\": \"動\",\n\"劫余\": \"劫餘\",\n\"励\": \"勵\",\n\"劲\": \"勁\",\n\"劳\": \"勞\",\n\"势\": \"勢\",\n\"勃郁\": \"勃鬱\",\n\"勋\": \"勛\",\n\"勋业\": \"勳業\",\n\"勋劳\": \"勳勞\",\n\"勋爵\": \"勳爵\",\n\"勋章\": \"勳章\",\n\"勋绩\": \"勳績\",\n\"勚\": \"勩\",\n\"勤仆\": \"勤僕\",\n\"勤朴\": \"勤樸\",\n\"勾干\": \"勾幹\",\n\"勾心斗角\": \"勾心鬥角\",\n\"勾魂荡魄\": \"勾魂蕩魄\",\n\"匀\": \"勻\",\n\"包准\": \"包準\",\n\"包制\": \"包製\",\n\"包干\": \"包幹\",\n\"包扎\": \"包紮\",\n\"包谷\": \"包穀\",\n\"匏系\": \"匏繫\",\n\"北仑河\": \"北崙河\",\n\"北回线\": \"北迴線\",\n\"北回铁路\": \"北迴鐵路\",\n\"北山索面\": \"北山索麵\",\n\"北岳\": \"北嶽\",\n\"匦\": \"匭\",\n\"匪干\": \"匪幹\",\n\"匮\": \"匱\",\n\"区\": \"區\",\n\"区里有\": \"區裡有\",\n\"区里的\": \"區裡的\",\n\"医\": \"醫\",\n\"十个\": \"十個\",\n\"十余\": \"十餘\",\n\"十出\": \"十齣\",\n\"十出击\": \"十出擊\",\n\"十出头\": \"十出頭\",\n\"十出家\": \"十出家\",\n\"十出生\": \"十出生\",\n\"十出祁山\": \"十出祁山\",\n\"十出頭\": \"十出頭\",\n\"十只\": \"十隻\",\n\"十周后\": \"十周後\",\n\"十天后\": \"十天後\",\n\"十扎\": \"十紮\",\n\"千个\": \"千個\",\n\"千余\": \"千餘\",\n\"千只\": \"千隻\",\n\"千只可\": \"千只可\",\n\"千只够\": \"千只夠\",\n\"千只夠\": \"千只夠\",\n\"千只怕\": \"千只怕\",\n\"千只能\": \"千只能\",\n\"千只足够\": \"千只足夠\",\n\"千只足夠\": \"千只足夠\",\n\"千周后\": \"千周後\",\n\"千回百折\": \"千迴百折\",\n\"千回百转\": \"千迴百轉\",\n\"千天后\": \"千天後\",\n\"千扎\": \"千紮\",\n\"千钧一发\": \"千鈞一髮\",\n\"升州\": \"昇州\",\n\"升平\": \"昇平\",\n\"升阳\": \"昇陽\",\n\"升高后\": \"升高後\",\n\"半制品\": \"半制品\",\n\"半只\": \"半隻\",\n\"半只可\": \"半只可\",\n\"半只够\": \"半只夠\",\n\"华\": \"華\",\n\"华严钟\": \"華嚴鐘\",\n\"协\": \"協\",\n\"协防\": \"協防\",\n\"单\": \"單\",\n\"单于\": \"單于\",\n\"单单于\": \"單單於\",\n\"单向\": \"單向\",\n\"单干\": \"單幹\",\n\"单打独斗\": \"單打獨鬥\",\n\"卖\": \"賣\",\n\"卖断发\": \"賣斷發\",\n\"南京钟\": \"南京鐘\",\n\"南京钟表\": \"南京鐘錶\",\n\"南回线\": \"南迴線\",\n\"南回铁路\": \"南迴鐵路\",\n\"南宫适\": \"南宮适\",\n\"南宮适\": \"南宮适\",\n\"南屏晚钟\": \"南屏晚鐘\",\n\"南岳\": \"南嶽\",\n\"南游\": \"南遊\",\n\"南筑\": \"南筑\",\n\"博尔术\": \"博爾朮\",\n\"博杰普尔\": \"博杰普爾\",\n\"博杰普爾\": \"博杰普爾\",\n\"博采\": \"博採\",\n\"卜云吉\": \"卜云吉\",\n\"占了卜\": \"占了卜\",\n\"占头筹\": \"佔頭籌\",\n\"占毕\": \"佔畢\",\n\"占高枝儿\": \"佔高枝兒\",\n\"卢\": \"盧\",\n\"卢棱伽\": \"盧稜伽\",\n\"卤\": \"鹵\",\n\"卤了\": \"滷了\",\n\"卤五花\": \"滷五花\",\n\"卤制\": \"滷製\",\n\"卤味\": \"滷味\",\n\"卤好\": \"滷好\",\n\"卤子\": \"滷子\",\n\"卤料\": \"滷料\",\n\"卤水\": \"滷水\",\n\"卤汁\": \"滷汁\",\n\"卤湖\": \"滷湖\",\n\"卤煮\": \"滷煮\",\n\"卤牛\": \"滷牛\",\n\"卤的\": \"滷的\",\n\"卤肉\": \"滷肉\",\n\"卤菜\": \"滷菜\",\n\"卤虾\": \"滷蝦\",\n\"卤蛋\": \"滷蛋\",\n\"卤豆\": \"滷豆\",\n\"卤面\": \"滷麵\",\n\"卤鸡\": \"滷雞\",\n\"卤鸭\": \"滷鴨\",\n\"卤鹅\": \"滷鵝\",\n\"卧\": \"臥\",\n\"卧游\": \"臥遊\",\n\"卫\": \"衛\",\n\"卫后庄公\": \"衛後莊公\",\n\"卫星钟\": \"衛星鐘\",\n\"印制\": \"印製\",\n\"印累绶若\": \"印纍綬若\",\n\"印鉴\": \"印鑑\",\n\"却\": \"卻\",\n\"卵与石斗\": \"卵與石鬥\",\n\"卷云\": \"捲雲\",\n\"卷住\": \"捲住\",\n\"卷儿\": \"捲兒\",\n\"卷入\": \"捲入\",\n\"卷动\": \"捲動\",\n\"卷去\": \"捲去\",\n\"卷发\": \"捲髮\",\n\"卷叶蛾\": \"捲葉蛾\",\n\"卷图\": \"捲圖\",\n\"卷土重来\": \"捲土重來\",\n\"卷地\": \"捲地\",\n\"卷尺\": \"捲尺\",\n\"卷尾猴\": \"捲尾猴\",\n\"卷帘\": \"捲簾\",\n\"卷心菜\": \"捲心菜\",\n\"卷成\": \"捲成\",\n\"卷曲\": \"捲曲\",\n\"卷来\": \"捲來\",\n\"卷款\": \"捲款\",\n\"卷毛\": \"捲毛\",\n\"卷烟\": \"捲菸\",\n\"卷烟盒\": \"捲煙盒\",\n\"卷瓣\": \"捲瓣\",\n\"卷积云\": \"捲積雲\",\n\"卷筒\": \"捲筒\",\n\"卷纸\": \"捲紙\",\n\"卷缩\": \"捲縮\",\n\"卷舌\": \"捲舌\",\n\"卷袖\": \"捲袖\",\n\"卷走\": \"捲走\",\n\"卷起\": \"捲起\",\n\"卷轴\": \"捲軸\",\n\"卷逃\": \"捲逃\",\n\"卷铺盖\": \"捲鋪蓋\",\n\"卷须\": \"卷鬚\",\n\"卷风\": \"捲風\",\n\"卺\": \"巹\",\n\"厂\": \"廠\",\n\"厂部\": \"厂部\",\n\"厅\": \"廳\",\n\"历\": \"歷\",\n\"历书\": \"曆書\",\n\"历元\": \"曆元\",\n\"历史里\": \"歷史裡\",\n\"历命\": \"曆命\",\n\"历始\": \"曆始\",\n\"历室\": \"曆室\",\n\"历尾\": \"曆尾\",\n\"历局\": \"曆局\",\n\"历数书\": \"曆數書\",\n\"历日\": \"曆日\",\n\"历本\": \"曆本\",\n\"历法\": \"曆法\",\n\"历物之意\": \"厤物之意\",\n\"历狱\": \"曆獄\",\n\"历纪\": \"曆紀\",\n\"历象\": \"曆象\",\n\"厉\": \"厲\",\n\"压\": \"壓\",\n\"压制出\": \"壓製出\",\n\"压制机\": \"壓製機\",\n\"厌\": \"厭\",\n\"厍\": \"厙\",\n\"厐\": \"龎\",\n\"厕\": \"廁\",\n\"厘改\": \"釐改\",\n\"厘整\": \"釐整\",\n\"厘正\": \"釐正\",\n\"厘毫\": \"釐毫\",\n\"厘清\": \"釐清\",\n\"厘订\": \"釐訂\",\n\"厘革\": \"釐革\",\n\"原子钟\": \"原子鐘\",\n\"原文里\": \"原文裡\",\n\"原钟\": \"原鐘\",\n\"厢\": \"廂\",\n\"厣\": \"厴\",\n\"厦\": \"廈\",\n\"厨\": \"廚\",\n\"厨余\": \"廚餘\",\n\"厩\": \"廄\",\n\"厮\": \"廝\",\n\"厮斗\": \"廝鬥\",\n\"去山里\": \"去山裡\",\n\"县\": \"縣\",\n\"县志\": \"縣誌\",\n\"县里\": \"縣裡\",\n\"叁\": \"叄\",\n\"参\": \"參\",\n\"参数只\": \"參數只\",\n\"参数里\": \"參數裡\",\n\"参绥\": \"蔘綏\",\n\"叆\": \"靉\",\n\"叇\": \"靆\",\n\"双\": \"雙\",\n\"双折\": \"雙摺\",\n\"双折射\": \"雙折射\",\n\"双胜类\": \"雙胜類\",\n\"双雕\": \"雙鵰\",\n\"反冲\": \"反衝\",\n\"反反复复\": \"反反覆覆\",\n\"反复\": \"反覆\",\n\"反复制\": \"反複製\",\n\"反应制得\": \"反應製得\",\n\"反朴\": \"反樸\",\n\"反覆\": \"反覆\",\n\"发\": \"發\",\n\"发上冲冠\": \"髮上沖冠\",\n\"发上指冠\": \"髮上指冠\",\n\"发丝\": \"髮絲\",\n\"发为血之本\": \"髮為血之本\",\n\"发乳\": \"髮乳\",\n\"发光可鉴\": \"髮光可鑑\",\n\"发匪\": \"髮匪\",\n\"发卷\": \"髮捲\",\n\"发及腰\": \"髮及腰\",\n\"发型\": \"髮型\",\n\"发夹\": \"髮夾\",\n\"发妻\": \"髮妻\",\n\"发屋\": \"髮屋\",\n\"发已霜白\": \"髮已霜白\",\n\"发带\": \"髮帶\",\n\"发干\": \"發乾\",\n\"发廊\": \"髮廊\",\n\"发式\": \"髮式\",\n\"发引千钧\": \"髮引千鈞\",\n\"发披肩\": \"髮披肩\",\n\"发松\": \"發鬆\",\n\"发根\": \"髮根\",\n\"发油\": \"髮油\",\n\"发漂\": \"髮漂\",\n\"发状\": \"髮狀\",\n\"发状况\": \"發狀況\",\n\"发状态\": \"發狀態\",\n\"发癣\": \"髮癬\",\n\"发短心长\": \"髮短心長\",\n\"发禁\": \"髮禁\",\n\"发笺\": \"髮箋\",\n\"发签\": \"發籤\",\n\"发簪\": \"髮簪\",\n\"发纱\": \"髮紗\",\n\"发结\": \"髮結\",\n\"发网菌\": \"髮網菌\",\n\"发肤\": \"髮膚\",\n\"发胶\": \"髮膠\",\n\"发脚\": \"髮腳\",\n\"发菜\": \"髮菜\",\n\"发蜡\": \"髮蠟\",\n\"发表\": \"發表\",\n\"发踊冲冠\": \"髮踴沖冠\",\n\"发辫\": \"髮辮\",\n\"发钗\": \"髮釵\",\n\"发长\": \"髮長\",\n\"发际\": \"髮際\",\n\"发雕\": \"髮雕\",\n\"发霜\": \"髮霜\",\n\"发面\": \"發麵\",\n\"发饰\": \"髮飾\",\n\"发髻\": \"髮髻\",\n\"发鬓\": \"髮鬢\",\n\"取舍\": \"取捨\",\n\"受托\": \"受託\",\n\"受雇\": \"受僱\",\n\"变\": \"變\",\n\"变丑\": \"變醜\",\n\"变征\": \"變徵\",\n\"叙\": \"敘\",\n\"叠\": \"疊\",\n\"叠席\": \"疊蓆\",\n\"口干\": \"口乾\",\n\"口干冒\": \"口干冒\",\n\"口干政\": \"口干政\",\n\"口干涉\": \"口干涉\",\n\"口干犯\": \"口干犯\",\n\"口干预\": \"口干預\",\n\"口燥唇干\": \"口燥唇乾\",\n\"口腹之欲\": \"口腹之慾\",\n\"口里\": \"口裡\",\n\"口钟\": \"口鐘\",\n\"古书云\": \"古書云\",\n\"古人有云\": \"古人有云\",\n\"古文里\": \"古文裡\",\n\"古書云\": \"古書云\",\n\"古朴\": \"古樸\",\n\"古柯咸\": \"古柯鹹\",\n\"古語云\": \"古語云\",\n\"古语云\": \"古語云\",\n\"古迹\": \"古蹟\",\n\"古钟\": \"古鐘\",\n\"古钟表\": \"古鐘錶\",\n\"另辟\": \"另闢\",\n\"叩钟\": \"叩鐘\",\n\"只冲\": \"只衝\",\n\"只占卜\": \"只占卜\",\n\"只占吉\": \"只占吉\",\n\"只占神问卜\": \"只占神問卜\",\n\"只占算\": \"只占算\",\n\"只字\": \"隻字\",\n\"只影\": \"隻影\",\n\"只影响\": \"只影響\",\n\"只影響\": \"只影響\",\n\"只手遮天\": \"隻手遮天\",\n\"只眼\": \"隻眼\",\n\"只言片语\": \"隻言片語\",\n\"只身\": \"隻身\",\n\"只身上已\": \"只身上已\",\n\"只身上无\": \"只身上無\",\n\"只身上有\": \"只身上有\",\n\"只身上沒\": \"只身上沒\",\n\"只身上没\": \"只身上沒\",\n\"只身上無\": \"只身上無\",\n\"只身上的\": \"只身上的\",\n\"只身世\": \"只身世\",\n\"只身为\": \"只身為\",\n\"只身份\": \"只身份\",\n\"只身体\": \"只身體\",\n\"只身前\": \"只身前\",\n\"只身受\": \"只身受\",\n\"只身后\": \"只身後\",\n\"只身子\": \"只身子\",\n\"只身形\": \"只身形\",\n\"只身影\": \"只身影\",\n\"只身後\": \"只身後\",\n\"只身心\": \"只身心\",\n\"只身旁\": \"只身旁\",\n\"只身材\": \"只身材\",\n\"只身段\": \"只身段\",\n\"只身為\": \"只身為\",\n\"只身边\": \"只身邊\",\n\"只身邊\": \"只身邊\",\n\"只身首\": \"只身首\",\n\"只身體\": \"只身體\",\n\"只身高\": \"只身高\",\n\"只采\": \"只採\",\n\"只采声\": \"只采聲\",\n\"叮叮当当\": \"叮叮噹噹\",\n\"叮当\": \"叮噹\",\n\"可紧可松\": \"可緊可鬆\",\n\"可能干預\": \"可能干預\",\n\"可能干预\": \"可能干預\",\n\"可自制\": \"可自制\",\n\"可鉴\": \"可鑑\",\n\"台佟\": \"臺佟\",\n\"台历\": \"檯曆\",\n\"台历史\": \"台歷史\",\n\"台子女\": \"台子女\",\n\"台子孙\": \"台子孫\",\n\"台州\": \"台州\",\n\"台灯\": \"檯燈\",\n\"台球\": \"檯球\",\n\"台钟\": \"台鐘\",\n\"台静农\": \"臺靜農\",\n\"台面上\": \"檯面上\",\n\"台面化\": \"檯面化\",\n\"台风\": \"颱風\",\n\"台风后\": \"颱風後\",\n\"台风奖\": \"台風獎\",\n\"台风稳健\": \"台風穩健\",\n\"史鉴\": \"史鑑\",\n\"叶\": \"葉\",\n\"叶不二子\": \"叶不二子\",\n\"叶叶琴\": \"葉叶琴\",\n\"叶叶琹\": \"葉叶琹\",\n\"叶志穗\": \"叶志穗\",\n\"叶恭弘\": \"叶恭弘\",\n\"叶阳后\": \"葉陽后\",\n\"叶音\": \"叶音\",\n\"叶韵\": \"叶韻\",\n\"叶韻\": \"叶韻\",\n\"号\": \"號\",\n\"号志\": \"號誌\",\n\"叹\": \"嘆\",\n\"叽\": \"嘰\",\n\"吁天\": \"籲天\",\n\"吁求\": \"籲求\",\n\"吁请\": \"籲請\",\n\"吃姜\": \"吃薑\",\n\"吃板刀面\": \"吃板刀麵\",\n\"吃碗面\": \"吃碗麵\",\n\"吃里扒外\": \"吃裡扒外\",\n\"吃里爬外\": \"吃裡爬外\",\n\"吃面\": \"吃麵\",\n\"各类钟\": \"各類鐘\",\n\"各辟\": \"各闢\",\n\"合伙\": \"合夥\",\n\"合伙人\": \"合伙人\",\n\"合准\": \"合準\",\n\"合历\": \"合曆\",\n\"合历史\": \"合歷史\",\n\"合并\": \"合併\",\n\"合府上\": \"合府上\",\n\"合采\": \"合採\",\n\"吉凶庆吊\": \"吉凶慶弔\",\n\"吉征\": \"吉徵\",\n\"吊丧\": \"弔喪\",\n\"吊卷\": \"弔卷\",\n\"吊取\": \"弔取\",\n\"吊古\": \"弔古\",\n\"吊唁\": \"弔唁\",\n\"吊喉\": \"弔喉\",\n\"吊喭\": \"弔喭\",\n\"吊头\": \"弔頭\",\n\"吊奠\": \"弔奠\",\n\"吊孝\": \"弔孝\",\n\"吊客\": \"弔客\",\n\"吊宴\": \"弔宴\",\n\"吊影\": \"弔影\",\n\"吊恤\": \"弔恤\",\n\"吊慰\": \"弔慰\",\n\"吊扣\": \"弔扣\",\n\"吊拷\": \"弔拷\",\n\"吊撒\": \"弔撒\",\n\"吊文\": \"弔文\",\n\"吊旗\": \"弔旗\",\n\"吊民\": \"弔民\",\n\"吊祭\": \"弔祭\",\n\"吊纸\": \"弔紙\",\n\"吊者大悦\": \"弔者大悅\",\n\"吊脚儿事\": \"弔腳兒事\",\n\"吊腰撒跨\": \"弔腰撒跨\",\n\"吊膀子\": \"弔膀子\",\n\"吊词\": \"弔詞\",\n\"吊诡\": \"弔詭\",\n\"吊谎\": \"弔謊\",\n\"吊贺迎送\": \"弔賀迎送\",\n\"吊钟\": \"吊鐘\",\n\"吊问\": \"弔問\",\n\"吊鹤\": \"弔鶴\",\n\"同人志\": \"同人誌\",\n\"同伙\": \"同夥\",\n\"同余\": \"同餘\",\n\"名单于\": \"名單於\",\n\"后\": \"後\",\n\"后丰\": \"后豐\",\n\"后冠\": \"后冠\",\n\"后北街\": \"后北街\",\n\"后印\": \"後印\",\n\"后发FK型星\": \"后髮FK型星\",\n\"后发座\": \"后髮座\",\n\"后发星系团\": \"后髮星系團\",\n\"后台老板\": \"後台老板\",\n\"后土\": \"后土\",\n\"后天\": \"後天\",\n\"后妃\": \"后妃\",\n\"后姓\": \"后姓\",\n\"后安路\": \"后安路\",\n\"后平路\": \"后平路\",\n\"后庄\": \"后庄\",\n\"后母戊\": \"后母戊\",\n\"后海湾\": \"后海灣\",\n\"后海灣\": \"后海灣\",\n\"后瑞站\": \"后瑞站\",\n\"后稷\": \"后稷\",\n\"后綜\": \"后綜\",\n\"后羿\": \"后羿\",\n\"后苍\": \"后蒼\",\n\"后蒼\": \"后蒼\",\n\"后街\": \"后街\",\n\"后角\": \"后角\",\n\"后豐\": \"后豐\",\n\"后里\": \"后里\",\n\"后面店\": \"後面店\",\n\"后髮FK型星\": \"后髮FK型星\",\n\"后髮座\": \"后髮座\",\n\"后髮星系團\": \"后髮星系團\",\n\"吐哺捉发\": \"吐哺捉髮\",\n\"吐哺握发\": \"吐哺握髮\",\n\"向导\": \"嚮導\",\n\"向往\": \"嚮往\",\n\"向往常\": \"向往常\",\n\"向往日\": \"向往日\",\n\"向往时\": \"向往時\",\n\"向往来\": \"向往來\",\n\"向慕\": \"嚮慕\",\n\"向迩\": \"嚮邇\",\n\"吓\": \"嚇\",\n\"吕\": \"呂\",\n\"吕后\": \"呂后\",\n\"吗\": \"嗎\",\n\"吞并\": \"吞併\",\n\"吟游\": \"吟遊\",\n\"吣\": \"唚\",\n\"吧台\": \"吧檯\",\n\"吨\": \"噸\",\n\"含齿戴发\": \"含齒戴髮\",\n\"听\": \"聽\",\n\"启\": \"啓\",\n\"启发式\": \"啟發式\",\n\"吴\": \"吳\",\n\"吸干\": \"吸乾\",\n\"吹干\": \"吹乾\",\n\"吾为之范我驰驱\": \"吾爲之範我馳驅\",\n\"呂后\": \"呂后\",\n\"呆致致\": \"呆緻緻\",\n\"呆里呆气\": \"呆裡呆氣\",\n\"告札\": \"告劄\",\n\"告里\": \"告裡\",\n\"呐\": \"吶\",\n\"呒\": \"嘸\",\n\"呓\": \"囈\",\n\"呕\": \"嘔\",\n\"呖\": \"嚦\",\n\"呗\": \"唄\",\n\"呗赞\": \"唄讚\",\n\"员\": \"員\",\n\"呙\": \"咼\",\n\"呛\": \"嗆\",\n\"呜\": \"嗚\",\n\"呦喂\": \"呦喂\",\n\"周历\": \"周曆\",\n\"周历史\": \"周歷史\",\n\"周后\": \"周后\",\n\"周惠后\": \"周惠后\",\n\"周杰\": \"周杰\",\n\"周游\": \"週遊\",\n\"周游列国\": \"周遊列國\",\n\"呵喂\": \"呵喂\",\n\"呼吁\": \"呼籲\",\n\"命中注定\": \"命中注定\",\n\"和制汉\": \"和製漢\",\n\"和制英语\": \"和製英語\",\n\"和奸\": \"和姦\",\n\"咎征\": \"咎徵\",\n\"咏\": \"詠\",\n\"咕咕钟\": \"咕咕鐘\",\n\"咙\": \"嚨\",\n\"咚咚鼓\": \"鼕鼕鼓\",\n\"咛\": \"嚀\",\n\"咝\": \"噝\",\n\"咤\": \"吒\",\n\"咨询\": \"諮詢\",\n\"咪表\": \"咪錶\",\n\"咬姜呷醋\": \"咬薑呷醋\",\n\"咯当\": \"咯噹\",\n\"咸、甜\": \"鹹、甜\",\n\"咸卤\": \"鹹鹵\",\n\"咸吃\": \"鹹吃\",\n\"咸味\": \"鹹味\",\n\"咸咸\": \"鹹鹹\",\n\"咸嘴淡舌\": \"鹹嘴淡舌\",\n\"咸土\": \"鹹土\",\n\"咸度\": \"鹹度\",\n\"咸得\": \"鹹得\",\n\"咸批\": \"鹹批\",\n\"咸水\": \"鹹水\",\n\"咸汤\": \"鹹湯\",\n\"咸派\": \"鹹派\",\n\"咸海\": \"鹹海\",\n\"咸淡\": \"鹹淡\",\n\"咸湖\": \"鹹湖\",\n\"咸湿\": \"鹹濕\",\n\"咸潟\": \"鹹潟\",\n\"咸猪\": \"鹹豬\",\n\"咸甜\": \"鹹甜\",\n\"咸的\": \"鹹的\",\n\"咸类\": \"鹹類\",\n\"咸粥\": \"鹹粥\",\n\"咸肉\": \"鹹肉\",\n\"咸菜\": \"鹹菜\",\n\"咸菜干\": \"鹹菜乾\",\n\"咸蛋\": \"鹹蛋\",\n\"咸食\": \"鹹食\",\n\"咸鱼\": \"鹹魚\",\n\"咸鸭蛋\": \"鹹鴨蛋\",\n\"哀吊\": \"哀弔\",\n\"哀挽\": \"哀輓\",\n\"品鉴\": \"品鑑\",\n\"哄动\": \"鬨動\",\n\"哄堂\": \"鬨堂\",\n\"哄堂大笑\": \"哄堂大笑\",\n\"哄笑\": \"鬨笑\",\n\"哈啰喂\": \"哈囉喂\",\n\"哈囉喂\": \"哈囉喂\",\n\"响\": \"響\",\n\"响钟\": \"響鐘\",\n\"哑\": \"啞\",\n\"哒\": \"噠\",\n\"哓\": \"嘵\",\n\"哔\": \"嗶\",\n\"哕\": \"噦\",\n\"哗\": \"嘩\",\n\"哗众\": \"譁眾\",\n\"哗变\": \"譁變\",\n\"哗噪\": \"譁噪\",\n\"哗嚣\": \"譁囂\",\n\"哗然\": \"譁然\",\n\"哗笑\": \"譁笑\",\n\"哙\": \"噲\",\n\"哜\": \"嚌\",\n\"哝\": \"噥\",\n\"哟\": \"喲\",\n\"哟喂\": \"喲喂\",\n\"員山庄\": \"員山庄\",\n\"哪里\": \"哪裡\",\n\"唁吊\": \"唁弔\",\n\"唇\": \"脣\",\n\"唇干\": \"唇乾\",\n\"唛\": \"嘜\",\n\"唝\": \"嗊\",\n\"唠\": \"嘮\",\n\"唡\": \"啢\",\n\"唢\": \"嗩\",\n\"唤\": \"喚\",\n\"唯一只\": \"唯一只\",\n\"唱游\": \"唱遊\",\n\"唾余\": \"唾餘\",\n\"唾面自干\": \"唾面自乾\",\n\"商历\": \"商曆\",\n\"商历史\": \"商歷史\",\n\"商标准许\": \"商標准許\",\n\"啊喂\": \"啊喂\",\n\"啧\": \"嘖\",\n\"啬\": \"嗇\",\n\"啭\": \"囀\",\n\"啮\": \"齧\",\n\"啮合\": \"嚙合\",\n\"啮虫\": \"囓蟲\",\n\"啮齿类\": \"嚙齒類\",\n\"啯\": \"嘓\",\n\"啰\": \"囉\",\n\"啰啰苏苏\": \"囉囉囌囌\",\n\"啰苏\": \"囉囌\",\n\"啴\": \"嘽\",\n\"啷当\": \"啷噹\",\n\"啸\": \"嘯\",\n\"喂\": \"餵\",\n\"喂了一声\": \"喂了一聲\",\n\"喂了一聲\": \"喂了一聲\",\n\"喂哟\": \"喂喲\",\n\"喂喂\": \"喂喂\",\n\"喂喲\": \"喂喲\",\n\"喂！\": \"喂！\",\n\"喂，\": \"喂，\",\n\"喝干\": \"喝乾\",\n\"喧哄\": \"喧鬨\",\n\"喧哗\": \"喧譁\",\n\"單于\": \"單于\",\n\"單向\": \"單向\",\n\"喲喂\": \"喲喂\",\n\"喷\": \"噴\",\n\"喽\": \"嘍\",\n\"喾\": \"嚳\",\n\"嗫\": \"囁\",\n\"嗳\": \"噯\",\n\"嘉肴\": \"嘉肴\",\n\"嘉谷\": \"嘉穀\",\n\"嘘\": \"噓\",\n\"嘤\": \"嚶\",\n\"嘱\": \"囑\",\n\"嘱托\": \"囑託\",\n\"嘴里\": \"嘴裡\",\n\"噙齿戴发\": \"噙齒戴髮\",\n\"噜\": \"嚕\",\n\"噜苏\": \"嚕囌\",\n\"噪诈\": \"譟詐\",\n\"嚣\": \"囂\",\n\"嚴云農\": \"嚴云農\",\n\"嚼谷\": \"嚼穀\",\n\"四个\": \"四個\",\n\"四余\": \"四餘\",\n\"四出征收\": \"四出徵收\",\n\"四分历\": \"四分曆\",\n\"四分历史\": \"四分歷史\",\n\"四只\": \"四隻\",\n\"四周后\": \"四周後\",\n\"四天后\": \"四天後\",\n\"四扎\": \"四紮\",\n\"四杆铁笔\": \"四桿鐵筆\",\n\"四舍五入\": \"四捨五入\",\n\"四舍六入\": \"四捨六入\",\n\"四面包\": \"四面包\",\n\"四面钟\": \"四面鐘\",\n\"回佣\": \"回佣\",\n\"回光返照\": \"迴光返照\",\n\"回历\": \"回曆\",\n\"回历史\": \"回歷史\",\n\"回响\": \"迴響\",\n\"回圈\": \"迴圈\",\n\"回复中\": \"回覆中\",\n\"回复你\": \"回覆你\",\n\"回复帖子\": \"回覆帖子\",\n\"回复意见\": \"回覆意見\",\n\"回复说\": \"回覆說\",\n\"回复邮件\": \"回覆郵件\",\n\"回复：\": \"回覆：\",\n\"回廊\": \"迴廊\",\n\"回形夹\": \"迴形夾\",\n\"回文序列\": \"迴文序列\",\n\"回文数\": \"迴文數\",\n\"回文构词\": \"迴文構詞\",\n\"回文结构\": \"迴文結構\",\n\"回文联\": \"迴文聯\",\n\"回文诗\": \"迴文詩\",\n\"回文锦\": \"迴文錦\",\n\"回旋\": \"迴旋\",\n\"回旋加速\": \"回旋加速\",\n\"回游\": \"回遊\",\n\"回环\": \"迴環\",\n\"回纹针\": \"迴紋針\",\n\"回绕\": \"迴繞\",\n\"回翔\": \"迴翔\",\n\"回肠\": \"迴腸\",\n\"回肠荡气\": \"迴腸盪氣\",\n\"回荡\": \"迴蕩\",\n\"回诵\": \"迴誦\",\n\"回路\": \"迴路\",\n\"回转\": \"迴轉\",\n\"回递性\": \"迴遞性\",\n\"回避\": \"迴避\",\n\"回采\": \"回採\",\n\"回銮\": \"迴鑾\",\n\"回风\": \"迴風\",\n\"团\": \"團\",\n\"团子\": \"糰子\",\n\"园\": \"園\",\n\"园游会\": \"園遊會\",\n\"园里\": \"園裡\",\n\"困乏\": \"睏乏\",\n\"困倦\": \"睏倦\",\n\"困倦起来\": \"困倦起來\",\n\"困兽之斗\": \"困獸之鬥\",\n\"困兽犹斗\": \"困獸猶鬥\",\n\"困斗\": \"困鬥\",\n\"困觉\": \"睏覺\",\n\"囱\": \"囪\",\n\"围\": \"圍\",\n\"囵\": \"圇\",\n\"固定制\": \"固定制\",\n\"固征\": \"固徵\",\n\"国\": \"國\",\n\"国之桢干\": \"國之楨榦\",\n\"国仇\": \"國讎\",\n\"国历\": \"國曆\",\n\"国历代\": \"國歷代\",\n\"国历任\": \"國歷任\",\n\"国历史\": \"國歷史\",\n\"国历届\": \"國歷屆\",\n\"国历来\": \"國歷來\",\n\"国历经\": \"國歷經\",\n\"图\": \"圖\",\n\"图里的\": \"圖裡的\",\n\"图里，\": \"圖裡，\",\n\"图鉴\": \"圖鑑\",\n\"圆\": \"圓\",\n\"圈梁\": \"圈樑\",\n\"圈里\": \"圈裡\",\n\"土制\": \"土製\",\n\"土索面\": \"土索麵\",\n\"土里\": \"土裡\",\n\"圣\": \"聖\",\n\"圣人历\": \"聖人曆\",\n\"圣后\": \"聖后\",\n\"圣马尔谷日\": \"聖馬爾谷日\",\n\"在制品\": \"在制品\",\n\"在山里\": \"在山裡\",\n\"地丑德齐\": \"地醜德齊\",\n\"地图里\": \"地圖裡\",\n\"地心历表\": \"地心曆表\",\n\"地志\": \"地誌\",\n\"圹\": \"壙\",\n\"场\": \"場\",\n\"场里\": \"場裡\",\n\"坂\": \"阪\",\n\"坏\": \"壞\",\n\"坐台\": \"坐檯\",\n\"坐台鐵\": \"坐台鐵\",\n\"坐台铁\": \"坐台鐵\",\n\"坐如钟\": \"坐如鐘\",\n\"坐钟\": \"坐鐘\",\n\"坑口里\": \"坑口里\",\n\"坑里\": \"坑裡\",\n\"块\": \"塊\",\n\"坚\": \"堅\",\n\"坚致\": \"堅緻\",\n\"坛\": \"壇\",\n\"坛坛罐罐\": \"罈罈罐罐\",\n\"坛子\": \"罈子\",\n\"坛𬴃\": \"罈騞\",\n\"坜\": \"壢\",\n\"坝\": \"壩\",\n\"坞\": \"塢\",\n\"坟\": \"墳\",\n\"坠\": \"墜\",\n\"坤范\": \"坤範\",\n\"坦荡\": \"坦蕩\",\n\"坦荡荡\": \"坦蕩蕩\",\n\"坱郁\": \"坱鬱\",\n\"垂发\": \"垂髮\",\n\"垂范\": \"垂範\",\n\"垄\": \"壟\",\n\"垅\": \"壠\",\n\"垆\": \"壚\",\n\"型范\": \"型範\",\n\"垒\": \"壘\",\n\"垦\": \"墾\",\n\"垦辟\": \"墾闢\",\n\"垩\": \"堊\",\n\"垫\": \"墊\",\n\"垭\": \"埡\",\n\"垯\": \"墶\",\n\"垱\": \"壋\",\n\"垲\": \"塏\",\n\"垴\": \"堖\",\n\"埃及历\": \"埃及曆\",\n\"埃及历史\": \"埃及歷史\",\n\"埃及艳后\": \"埃及豔后\",\n\"埃荣冲\": \"埃榮衝\",\n\"城市里\": \"城市裡\",\n\"城里\": \"城裡\",\n\"埔子里\": \"埔子里\",\n\"埔里社\": \"埔裏社\",\n\"埘\": \"塒\",\n\"埙\": \"塤\",\n\"埚\": \"堝\",\n\"域里\": \"域裡\",\n\"埯\": \"垵\",\n\"基准\": \"基準\",\n\"基干\": \"基幹\",\n\"堑\": \"塹\",\n\"堕\": \"墮\",\n\"堙淀\": \"堙澱\",\n\"堡子里\": \"堡子里\",\n\"塆\": \"壪\",\n\"塞耳盗钟\": \"塞耳盜鐘\",\n\"境里\": \"境裡\",\n\"境里程\": \"境里程\",\n\"墓志\": \"墓誌\",\n\"墓志铭\": \"墓志銘\",\n\"墙\": \"牆\",\n\"墙里\": \"牆裡\",\n\"增辟\": \"增闢\",\n\"墨子里\": \"墨子里\",\n\"墨斗\": \"墨斗\",\n\"墨沈\": \"墨瀋\",\n\"墨沈沈\": \"墨沈沈\",\n\"壮\": \"壯\",\n\"壮游\": \"壯遊\",\n\"壮面\": \"壯麵\",\n\"声\": \"聲\",\n\"声母后\": \"聲母後\",\n\"壳\": \"殼\",\n\"壳里\": \"殼裡\",\n\"壶\": \"壺\",\n\"壶里\": \"壺裡\",\n\"壸\": \"壼\",\n\"壸范\": \"壼範\",\n\"壹郁\": \"壹鬱\",\n\"壽天里\": \"壽天里\",\n\"处\": \"處\",\n\"备\": \"備\",\n\"备注\": \"備註\",\n\"复\": \"復\",\n\"复习\": \"複習\",\n\"复信\": \"覆信\",\n\"复元音\": \"複元音\",\n\"复写\": \"複寫\",\n\"复决\": \"複決\",\n\"复函数\": \"複函數\",\n\"复分数\": \"複分數\",\n\"复分析\": \"複分析\",\n\"复分解\": \"複分解\",\n\"复列\": \"複列\",\n\"复利\": \"複利\",\n\"复制\": \"複製\",\n\"复印\": \"複印\",\n\"复变函数\": \"複變函數\",\n\"复句\": \"複句\",\n\"复叶\": \"複葉\",\n\"复合\": \"複合\",\n\"复壁\": \"複壁\",\n\"复始\": \"復始\",\n\"复姓\": \"複姓\",\n\"复字键\": \"複字鍵\",\n\"复审\": \"覆審\",\n\"复对数\": \"複對數\",\n\"复平面\": \"複平面\",\n\"复式\": \"複式\",\n\"复数\": \"複數\",\n\"复方\": \"複方\",\n\"复本\": \"複本\",\n\"复杂\": \"複雜\",\n\"复查\": \"複查\",\n\"复核\": \"覆核\",\n\"复次\": \"複次\",\n\"复比\": \"複比\",\n\"复活节历表\": \"復活節曆表\",\n\"复流\": \"複流\",\n\"复测\": \"複測\",\n\"复目\": \"複目\",\n\"复眼\": \"複眼\",\n\"复种\": \"複種\",\n\"复穗\": \"複穗\",\n\"复线\": \"複線\",\n\"复色\": \"複色\",\n\"复苏\": \"復甦\",\n\"复议\": \"複議\",\n\"复评\": \"複評\",\n\"复诊\": \"複診\",\n\"复词\": \"複詞\",\n\"复试\": \"複試\",\n\"复读机\": \"複讀機\",\n\"复课\": \"複課\",\n\"复赛\": \"複賽\",\n\"复辅音\": \"複輔音\",\n\"复述\": \"複述\",\n\"复选\": \"複選\",\n\"复钱\": \"複錢\",\n\"复阅\": \"複閱\",\n\"复音\": \"複音\",\n\"复韵\": \"複韻\",\n\"夏于乔\": \"夏于喬\",\n\"夏于喬\": \"夏于喬\",\n\"夏历\": \"夏曆\",\n\"夏历史\": \"夏歷史\",\n\"夏后氏\": \"夏后氏\",\n\"夏游\": \"夏遊\",\n\"外制\": \"外製\",\n\"外强中干\": \"外強中乾\",\n\"外面包\": \"外面包\",\n\"多丑\": \"多醜\",\n\"多余\": \"多餘\",\n\"多冲\": \"多衝\",\n\"多出电影\": \"多齣電影\",\n\"多半只\": \"多半只\",\n\"多只\": \"多隻\",\n\"多只会\": \"多只會\",\n\"多只包括\": \"多只包括\",\n\"多只可\": \"多只可\",\n\"多只含\": \"多只含\",\n\"多只在\": \"多只在\",\n\"多只是\": \"多只是\",\n\"多只會\": \"多只會\",\n\"多只有\": \"多只有\",\n\"多只比\": \"多只比\",\n\"多只用\": \"多只用\",\n\"多只能\": \"多只能\",\n\"多只限\": \"多只限\",\n\"多只需\": \"多只需\",\n\"多只須\": \"多只須\",\n\"多只须\": \"多只須\",\n\"多周后\": \"多周後\",\n\"多天后\": \"多天後\",\n\"夜晚里\": \"夜晚裡\",\n\"夜游\": \"夜遊\",\n\"夜里\": \"夜裡\",\n\"够\": \"夠\",\n\"大丑\": \"大醜\",\n\"大伙\": \"大夥\",\n\"大伙儿\": \"大伙兒\",\n\"大历\": \"大曆\",\n\"大历史\": \"大歷史\",\n\"大历险\": \"大歷險\",\n\"大只\": \"大隻\",\n\"大只会\": \"大只會\",\n\"大只可\": \"大只可\",\n\"大只在\": \"大只在\",\n\"大只是\": \"大只是\",\n\"大只有\": \"大只有\",\n\"大只能\": \"大只能\",\n\"大只需\": \"大只需\",\n\"大周后\": \"大周后\",\n\"大周折\": \"大週摺\",\n\"大型钟\": \"大型鐘\",\n\"大型钟表\": \"大型鐘錶\",\n\"大型钟表面\": \"大型鐘表面\",\n\"大型钟面\": \"大型鐘面\",\n\"大多只\": \"大多只\",\n\"大夸\": \"大誇\",\n\"大干一\": \"大幹一\",\n\"大批涌到\": \"大批湧到\",\n\"大折儿\": \"大摺兒\",\n\"大明历\": \"大明曆\",\n\"大明历史\": \"大明歷史\",\n\"大本钟\": \"大本鐘\",\n\"大病初愈\": \"大病初癒\",\n\"大目干连\": \"大目乾連\",\n\"大笨钟\": \"大笨鐘\",\n\"大蜡\": \"大蜡\",\n\"大衍历\": \"大衍曆\",\n\"大衍历史\": \"大衍歷史\",\n\"大言非夸\": \"大言非夸\",\n\"大赞\": \"大讚\",\n\"大金发苔\": \"大金髮苔\",\n\"大钟\": \"大鐘\",\n\"大风后\": \"大風後\",\n\"天克地冲\": \"天克地衝\",\n\"天历\": \"天曆\",\n\"天历史\": \"天歷史\",\n\"天台\": \"天台\",\n\"天后\": \"天后\",\n\"天后半\": \"天後半\",\n\"天后天\": \"天後天\",\n\"天后宫\": \"天后宮\",\n\"天后来\": \"天後來\",\n\"天地为范\": \"天地為範\",\n\"天地志狼\": \"天地志狼\",\n\"天文历表\": \"天文曆表\",\n\"天文学钟\": \"天文學鐘\",\n\"天文钟\": \"天文鐘\",\n\"天神之后\": \"天神之后\",\n\"天里\": \"天裡\",\n\"天里昂\": \"天里昂\",\n\"天里村\": \"天里村\",\n\"太丑\": \"太醜\",\n\"太仆\": \"太僕\",\n\"太凶\": \"太兇\",\n\"太初历\": \"太初曆\",\n\"太初历史\": \"太初歷史\",\n\"太后\": \"太后\",\n\"太阁\": \"太閤\",\n\"头\": \"頭\",\n\"头乱发\": \"頭亂髮\",\n\"头发\": \"頭髮\",\n\"头发动\": \"頭發動\",\n\"头发展\": \"頭發展\",\n\"头发现\": \"頭發現\",\n\"头发生\": \"頭發生\",\n\"头里\": \"頭裡\",\n\"头长发\": \"頭長髮\",\n\"夸下海口\": \"誇下海口\",\n\"夸丽\": \"誇麗\",\n\"夸了\": \"誇了\",\n\"夸人\": \"誇人\",\n\"夸他\": \"誇他\",\n\"夸你\": \"誇你\",\n\"夸克\": \"夸克\",\n\"夸别\": \"誇別\",\n\"夸功\": \"誇功\",\n\"夸口\": \"誇口\",\n\"夸嘴\": \"誇嘴\",\n\"夸多斗靡\": \"誇多鬥靡\",\n\"夸大\": \"誇大\",\n\"夸夸\": \"誇誇\",\n\"夸夸其谈\": \"誇誇其談\",\n\"夸奖\": \"誇獎\",\n\"夸她\": \"誇她\",\n\"夸姣\": \"誇姣\",\n\"夸官\": \"誇官\",\n\"夸容\": \"誇容\",\n\"夸张\": \"誇張\",\n\"夸强说会\": \"誇強說會\",\n\"夸得\": \"誇得\",\n\"夸成\": \"誇成\",\n\"夸我\": \"誇我\",\n\"夸才\": \"誇才\",\n\"夸来夸去\": \"誇來誇去\",\n\"夸毗\": \"誇毗\",\n\"夸海口\": \"誇海口\",\n\"夸父\": \"夸父\",\n\"夸特\": \"夸特\",\n\"夸示\": \"誇示\",\n\"夸称\": \"誇稱\",\n\"夸耀\": \"誇耀\",\n\"夸胜道强\": \"誇勝道強\",\n\"夸能\": \"誇能\",\n\"夸能斗智\": \"誇能鬥智\",\n\"夸脱\": \"夸脫\",\n\"夸诞\": \"誇誕\",\n\"夸诩\": \"誇詡\",\n\"夸说\": \"誇說\",\n\"夸赞\": \"誇讚\",\n\"夸起\": \"誇起\",\n\"夸辩\": \"誇辯\",\n\"夸过\": \"誇過\",\n\"夸饰\": \"誇飾\",\n\"夹\": \"夾\",\n\"夹衣\": \"袷衣\",\n\"夹裙\": \"袷裙\",\n\"夺\": \"奪\",\n\"夺斗\": \"奪鬥\",\n\"奁\": \"奩\",\n\"奂\": \"奐\",\n\"奇丑\": \"奇醜\",\n\"奇勋\": \"奇勳\",\n\"奇迹\": \"奇蹟\",\n\"奋\": \"奮\",\n\"奋斗\": \"奮鬥\",\n\"奏折\": \"奏摺\",\n\"奖\": \"獎\",\n\"奖杯\": \"獎盃\",\n\"奥\": \"奧\",\n\"女丑\": \"女丑\",\n\"女仆\": \"女僕\",\n\"奴仆\": \"奴僕\",\n\"奸夫\": \"姦夫\",\n\"奸妇\": \"姦婦\",\n\"奸情\": \"姦情\",\n\"奸杀\": \"姦殺\",\n\"奸污\": \"姦污\",\n\"奸淫\": \"姦淫\",\n\"奸淫掳掠\": \"奸淫擄掠\",\n\"好丑\": \"好醜\",\n\"好凶\": \"好兇\",\n\"好勇斗狠\": \"好勇鬥狠\",\n\"好困\": \"好睏\",\n\"好家伙\": \"好傢夥\",\n\"好斗\": \"好鬥\",\n\"好斗大\": \"好斗大\",\n\"好斗室\": \"好斗室\",\n\"好斗笠\": \"好斗笠\",\n\"好斗篷\": \"好斗篷\",\n\"好斗胆\": \"好斗膽\",\n\"好斗膽\": \"好斗膽\",\n\"好斗蓬\": \"好斗蓬\",\n\"如果干\": \"如果幹\",\n\"如饥似渴\": \"如饑似渴\",\n\"妆\": \"妝\",\n\"妆台\": \"妝檯\",\n\"妇\": \"婦\",\n\"妈\": \"媽\",\n\"妖后\": \"妖后\",\n\"妖气冲天\": \"妖氣衝天\",\n\"妩\": \"嫵\",\n\"妪\": \"嫗\",\n\"妫\": \"嬀\",\n\"姓么\": \"姓么\",\n\"委托\": \"委託\",\n\"委托书\": \"委託書\",\n\"姗\": \"姍\",\n\"姜丝\": \"薑絲\",\n\"姜啤\": \"薑啤\",\n\"姜是老的辣\": \"薑是老的辣\",\n\"姜末\": \"薑末\",\n\"姜桂\": \"薑桂\",\n\"姜母\": \"薑母\",\n\"姜汁\": \"薑汁\",\n\"姜汤\": \"薑湯\",\n\"姜片\": \"薑片\",\n\"姜糖\": \"薑糖\",\n\"姜老辣\": \"薑老辣\",\n\"姜茶\": \"薑茶\",\n\"姜蓉\": \"薑蓉\",\n\"姜还是老的辣\": \"薑還是老的辣\",\n\"姜酮\": \"薑酮\",\n\"姜饼\": \"薑餅\",\n\"姜黄\": \"薑黃\",\n\"姹\": \"奼\",\n\"威棱\": \"威稜\",\n\"娄\": \"婁\",\n\"娅\": \"婭\",\n\"娆\": \"嬈\",\n\"娇\": \"嬌\",\n\"娈\": \"孌\",\n\"娱\": \"娛\",\n\"娲\": \"媧\",\n\"娴\": \"嫻\",\n\"婢仆\": \"婢僕\",\n\"婳\": \"嫿\",\n\"婴\": \"嬰\",\n\"婵\": \"嬋\",\n\"婶\": \"嬸\",\n\"媪\": \"媼\",\n\"媭\": \"嬃\",\n\"嫌凶\": \"嫌兇\",\n\"嫌好道丑\": \"嫌好道醜\",\n\"嫒\": \"嬡\",\n\"嫔\": \"嬪\",\n\"嫩姜\": \"嫩薑\",\n\"嫱\": \"嬙\",\n\"嬉游\": \"嬉遊\",\n\"嬖幸\": \"嬖倖\",\n\"嬴余\": \"嬴餘\",\n\"嬷\": \"嬤\",\n\"子之丰兮\": \"子之丰兮\",\n\"子云\": \"子云\",\n\"子里\": \"子裡\",\n\"子里甲\": \"子里甲\",\n\"字母后\": \"字母後\",\n\"字汇\": \"字彙\",\n\"字码表\": \"字碼表\",\n\"字里行间\": \"字裡行間\",\n\"存折\": \"存摺\",\n\"孙\": \"孫\",\n\"孙杰\": \"孫杰\",\n\"孛里海\": \"孛里海\",\n\"孝惠后\": \"孝惠后\",\n\"学\": \"學\",\n\"学家\": \"學家\",\n\"学里\": \"學裡\",\n\"孪\": \"孿\",\n\"孫杰\": \"孫杰\",\n\"宁\": \"寧\",\n\"宇宙志\": \"宇宙誌\",\n\"安沈铁路\": \"安瀋鐵路\",\n\"宋王台\": \"宋王臺\",\n\"宗周钟\": \"宗周鐘\",\n\"官不怕大只怕管\": \"官不怕大只怕管\",\n\"官历\": \"官曆\",\n\"官历史\": \"官歷史\",\n\"官地为采\": \"官地為寀\",\n\"定准\": \"定準\",\n\"定制\": \"定製\",\n\"宜云\": \"宜云\",\n\"宝\": \"寶\",\n\"宝历\": \"寶曆\",\n\"宝历史\": \"寶歷史\",\n\"宝里宝气\": \"寶裡寶氣\",\n\"宝鉴\": \"寶鑑\",\n\"实\": \"實\",\n\"实干\": \"實幹\",\n\"实累累\": \"實纍纍\",\n\"实验里\": \"實驗裡\",\n\"宠\": \"寵\",\n\"审\": \"審\",\n\"宣泄\": \"宣洩\",\n\"宦游\": \"宦遊\",\n\"宪\": \"憲\",\n\"宪法里\": \"憲法裡\",\n\"宫\": \"宮\",\n\"宫里\": \"宮裡\",\n\"宴游\": \"宴遊\",\n\"家丑\": \"家醜\",\n\"家仆\": \"家僕\",\n\"家伙\": \"傢伙\",\n\"家里\": \"家裡\",\n\"容范\": \"容範\",\n\"宽\": \"寬\",\n\"宽余\": \"寬餘\",\n\"宽松\": \"寬鬆\",\n\"宽松松\": \"寬鬆鬆\",\n\"宾\": \"賓\",\n\"宿舍\": \"宿舍\",\n\"寄托\": \"寄託\",\n\"寄托在\": \"寄托在\",\n\"密致\": \"密緻\",\n\"寇仇\": \"寇讎\",\n\"寇准\": \"寇準\",\n\"富余\": \"富餘\",\n\"寒栗\": \"寒慄\",\n\"寓禁于征\": \"寓禁於徵\",\n\"寝\": \"寢\",\n\"寡欲\": \"寡慾\",\n\"寮采\": \"寮寀\",\n\"寶山庄\": \"寶山庄\",\n\"寶曆\": \"寶曆\",\n\"寸发千金\": \"寸髮千金\",\n\"对\": \"對\",\n\"对不准\": \"對不準\",\n\"对准\": \"對準\",\n\"对准表\": \"對準錶\",\n\"对准钟\": \"對準鐘\",\n\"对准钟表\": \"對準鐘錶\",\n\"对华发\": \"對華發\",\n\"对折\": \"對摺\",\n\"对着干\": \"對着幹\",\n\"对表中\": \"對表中\",\n\"对表扬\": \"對表揚\",\n\"对表明\": \"對表明\",\n\"对表演\": \"對表演\",\n\"对表现\": \"對表現\",\n\"对表达\": \"對表達\",\n\"寺钟\": \"寺鐘\",\n\"寻\": \"尋\",\n\"导\": \"導\",\n\"导游\": \"導遊\",\n\"寿\": \"壽\",\n\"寿面\": \"壽麵\",\n\"封为后\": \"封為后\",\n\"封后\": \"封后\",\n\"封為后\": \"封為后\",\n\"封面里\": \"封面裡\",\n\"射雕\": \"射鵰\",\n\"将\": \"將\",\n\"尊后\": \"尊后\",\n\"對着幹\": \"對着幹\",\n\"小丑\": \"小丑\",\n\"小井里\": \"小井里\",\n\"小仆\": \"小僕\",\n\"小价\": \"小价\",\n\"小几\": \"小几\",\n\"小只\": \"小隻\",\n\"小只会\": \"小只會\",\n\"小只可\": \"小只可\",\n\"小只在\": \"小只在\",\n\"小只是\": \"小只是\",\n\"小只有\": \"小只有\",\n\"小只能\": \"小只能\",\n\"小只需\": \"小只需\",\n\"小周后\": \"小周后\",\n\"小型钟\": \"小型鐘\",\n\"小型钟表\": \"小型鐘錶\",\n\"小型钟表面\": \"小型鐘表面\",\n\"小型钟面\": \"小型鐘面\",\n\"小时里\": \"小時裡\",\n\"小米面\": \"小米麵\",\n\"少采\": \"少採\",\n\"尔\": \"爾\",\n\"尔冬升\": \"爾冬陞\",\n\"尘\": \"塵\",\n\"尝\": \"嘗\",\n\"尝粪\": \"嚐糞\",\n\"尧\": \"堯\",\n\"就范\": \"就範\",\n\"就里\": \"就裡\",\n\"尴\": \"尷\",\n\"尸\": \"屍\",\n\"尸位素餐\": \"尸位素餐\",\n\"尸佼\": \"尸佼\",\n\"尸利\": \"尸利\",\n\"尸子\": \"尸子\",\n\"尸居余气\": \"尸居餘氣\",\n\"尸弃佛\": \"尸棄佛\",\n\"尸棄佛\": \"尸棄佛\",\n\"尸祝\": \"尸祝\",\n\"尸祿\": \"尸祿\",\n\"尸禄\": \"尸祿\",\n\"尸罗\": \"尸羅\",\n\"尸罗精舍\": \"尸羅精舍\",\n\"尸羅\": \"尸羅\",\n\"尸羅精舍\": \"尸羅精舍\",\n\"尸臣\": \"尸臣\",\n\"尸谏\": \"尸諫\",\n\"尸魂界\": \"尸魂界\",\n\"尸鳩\": \"尸鳩\",\n\"尸鸠\": \"尸鳩\",\n\"尽\": \"盡\",\n\"尽先\": \"儘先\",\n\"尽其所有\": \"儘其所有\",\n\"尽可能\": \"儘可能\",\n\"尽尽\": \"儘儘\",\n\"尽快\": \"儘快\",\n\"尽早\": \"儘早\",\n\"尽是\": \"儘是\",\n\"尽管\": \"儘管\",\n\"尽自\": \"儘自\",\n\"尽速\": \"儘速\",\n\"尽量\": \"儘量\",\n\"局促\": \"侷促\",\n\"局促不安\": \"局促不安\",\n\"局蹐\": \"跼蹐\",\n\"局躅\": \"跼躅\",\n\"局里\": \"局裡\",\n\"层\": \"層\",\n\"屃\": \"屓\",\n\"屉\": \"屜\",\n\"届\": \"屆\",\n\"屋梁\": \"屋樑\",\n\"屋里\": \"屋裡\",\n\"屏风后\": \"屏風後\",\n\"属\": \"屬\",\n\"属托\": \"屬託\",\n\"屡\": \"屢\",\n\"屡顾尔仆\": \"屢顧爾僕\",\n\"屦\": \"屨\",\n\"屯扎\": \"屯紮\",\n\"屯里\": \"屯裡\",\n\"山仔后\": \"山仔后\",\n\"山岳\": \"山嶽\",\n\"山崩钟应\": \"山崩鐘應\",\n\"山梁\": \"山樑\",\n\"山棱\": \"山稜\",\n\"山羊胡\": \"山羊鬍\",\n\"山谷\": \"山谷\",\n\"山里有\": \"山裡有\",\n\"山里的\": \"山裡的\",\n\"山重水复\": \"山重水複\",\n\"屿\": \"嶼\",\n\"岁\": \"歲\",\n\"岁聿云暮\": \"歲聿云暮\",\n\"岂\": \"豈\",\n\"岖\": \"嶇\",\n\"岗\": \"崗\",\n\"岘\": \"峴\",\n\"岙\": \"嶴\",\n\"岚\": \"嵐\",\n\"岛\": \"島\",\n\"岩松了\": \"岩松了\",\n\"岫岩\": \"岫巖\",\n\"岭\": \"嶺\",\n\"岱岳\": \"岱嶽\",\n\"岳岳\": \"嶽嶽\",\n\"岳麓\": \"嶽麓\",\n\"岽\": \"崬\",\n\"岿\": \"巋\",\n\"峃\": \"嶨\",\n\"峄\": \"嶧\",\n\"峇里海\": \"峇里海\",\n\"峡\": \"峽\",\n\"峣\": \"嶢\",\n\"峤\": \"嶠\",\n\"峥\": \"崢\",\n\"峦\": \"巒\",\n\"峰\": \"峯\",\n\"峰回\": \"峰迴\",\n\"峻岭\": \"峻岭\",\n\"崂\": \"嶗\",\n\"崃\": \"崍\",\n\"崄\": \"嶮\",\n\"崖广\": \"崖广\",\n\"崭\": \"嶄\",\n\"嵘\": \"嶸\",\n\"嵚\": \"嶔\",\n\"嵝\": \"嶁\",\n\"嶒棱\": \"嶒稜\",\n\"巅\": \"巔\",\n\"巡回\": \"巡迴\",\n\"巡回医疗\": \"巡回醫療\",\n\"巡游\": \"巡遊\",\n\"工作台\": \"工作檯\",\n\"左冲右突\": \"左衝右突\",\n\"巧历\": \"巧曆\",\n\"巧历史\": \"巧歷史\",\n\"巧干\": \"巧幹\",\n\"巨制\": \"巨製\",\n\"巩\": \"鞏\",\n\"差之毫厘\": \"差之毫厘\",\n\"巯\": \"巰\",\n\"己丑\": \"己丑\",\n\"已占卜\": \"已占卜\",\n\"已占算\": \"已占算\",\n\"巴尔干\": \"巴爾幹\",\n\"巴而术\": \"巴而朮\",\n\"巷里\": \"巷裡\",\n\"币\": \"幣\",\n\"市里的\": \"市裡的\",\n\"布谷\": \"布穀\",\n\"布谷鸟\": \"布穀鳥\",\n\"布谷鸟钟\": \"布穀鳥鐘\",\n\"布里海\": \"布里海\",\n\"帅\": \"帥\",\n\"师\": \"師\",\n\"师范\": \"師範\",\n\"希伯来历\": \"希伯來曆\",\n\"希伯来历史\": \"希伯來歷史\",\n\"帏\": \"幃\",\n\"帐\": \"帳\",\n\"帘\": \"簾\",\n\"帘子\": \"帘子\",\n\"帘布\": \"帘布\",\n\"帛尸梨\": \"帛尸梨\",\n\"帜\": \"幟\",\n\"帝后台\": \"帝后臺\",\n\"帝后臺\": \"帝后臺\",\n\"带\": \"帶\",\n\"带余\": \"帶餘\",\n\"带发修行\": \"帶髮修行\",\n\"带征\": \"帶徵\",\n\"帧\": \"幀\",\n\"席卷\": \"席捲\",\n\"席子\": \"蓆子\",\n\"帮\": \"幫\",\n\"帱\": \"幬\",\n\"帻\": \"幘\",\n\"帼\": \"幗\",\n\"幂\": \"冪\",\n\"幅图里\": \"幅圖裡\",\n\"幞\": \"襆\",\n\"干上\": \"幹上\",\n\"干下去\": \"幹下去\",\n\"干不了\": \"幹不了\",\n\"干不成\": \"幹不成\",\n\"干丝\": \"乾絲\",\n\"干个\": \"幹個\",\n\"干个够\": \"乾個夠\",\n\"干么\": \"幹麼\",\n\"干乔\": \"乾喬\",\n\"干了\": \"幹了\",\n\"干事\": \"幹事\",\n\"干井\": \"乾井\",\n\"干些\": \"幹些\",\n\"干产\": \"乾產\",\n\"干亲\": \"乾親\",\n\"干什么\": \"幹什麼\",\n\"干仗\": \"幹仗\",\n\"干儿\": \"乾兒\",\n\"干冰\": \"乾冰\",\n\"干冷\": \"乾冷\",\n\"干净\": \"乾淨\",\n\"干凉\": \"乾涼\",\n\"干刍\": \"乾芻\",\n\"干刻版\": \"乾刻版\",\n\"干剥剥\": \"乾剝剝\",\n\"干办\": \"幹辦\",\n\"干劲\": \"幹勁\",\n\"干卦\": \"乾卦\",\n\"干号\": \"乾號\",\n\"干吏\": \"幹吏\",\n\"干吗\": \"幹嗎\",\n\"干呕\": \"乾嘔\",\n\"干员\": \"幹員\",\n\"干咳\": \"乾咳\",\n\"干咽\": \"乾咽\",\n\"干哕\": \"乾噦\",\n\"干哥\": \"乾哥\",\n\"干哭\": \"乾哭\",\n\"干唱\": \"乾唱\",\n\"干啥\": \"幹啥\",\n\"干啼\": \"乾啼\",\n\"干嘛\": \"幹嘛\",\n\"干嚎\": \"乾嚎\",\n\"干回付\": \"乾回付\",\n\"干圆洁净\": \"乾圓潔淨\",\n\"干坏事\": \"幹壞事\",\n\"干坞\": \"乾塢\",\n\"干大事\": \"幹大事\",\n\"干头\": \"幹頭\",\n\"干女\": \"乾女\",\n\"干奴才\": \"乾奴才\",\n\"干妈\": \"乾媽\",\n\"干妹\": \"乾妹\",\n\"干姊\": \"乾姊\",\n\"干姐\": \"乾姐\",\n\"干姜\": \"乾薑\",\n\"干娘\": \"乾娘\",\n\"干子\": \"乾子\",\n\"干季\": \"乾季\",\n\"干完\": \"幹完\",\n\"干家\": \"幹家\",\n\"干尸\": \"乾屍\",\n\"干屎橛\": \"乾屎橛\",\n\"干巴\": \"乾巴\",\n\"干干\": \"乾乾\",\n\"干干净净\": \"乾乾淨淨\",\n\"干式\": \"乾式\",\n\"干弟\": \"乾弟\",\n\"干当\": \"幹當\",\n\"干得\": \"幹得\",\n\"干急\": \"乾急\",\n\"干性\": \"乾性\",\n\"干性油\": \"幹性油\",\n\"干才\": \"幹才\",\n\"干打雷\": \"乾打雷\",\n\"干折\": \"乾折\",\n\"干拌面\": \"乾拌麵\",\n\"干掉\": \"幹掉\",\n\"干探\": \"幹探\",\n\"干撂台\": \"乾撂台\",\n\"干撇下\": \"乾撇下\",\n\"干擦\": \"乾擦\",\n\"干支剌\": \"乾支剌\",\n\"干支支\": \"乾支支\",\n\"干料\": \"乾料\",\n\"干旱\": \"乾旱\",\n\"干暖\": \"乾暖\",\n\"干材\": \"乾材\",\n\"干村沙\": \"乾村沙\",\n\"干杯\": \"乾杯\",\n\"干果\": \"乾果\",\n\"干枯\": \"乾枯\",\n\"干柴\": \"乾柴\",\n\"干柴烈火\": \"乾柴烈火\",\n\"干校\": \"幹校\",\n\"干梅\": \"乾梅\",\n\"干死\": \"乾死\",\n\"干池\": \"乾池\",\n\"干沟\": \"乾溝\",\n\"干没\": \"乾沒\",\n\"干洗\": \"乾洗\",\n\"干活\": \"幹活\",\n\"干流\": \"幹流\",\n\"干济\": \"幹濟\",\n\"干涩\": \"乾澀\",\n\"干涸\": \"乾涸\",\n\"干渠\": \"乾渠\",\n\"干渴\": \"乾渴\",\n\"干湿\": \"乾濕\",\n\"干漆\": \"乾漆\",\n\"干灯盏\": \"乾燈盞\",\n\"干热\": \"乾熱\",\n\"干熬\": \"乾熬\",\n\"干燥\": \"乾燥\",\n\"干父之蛊\": \"幹父之蠱\",\n\"干爸\": \"乾爸\",\n\"干爹\": \"乾爹\",\n\"干爽\": \"乾爽\",\n\"干片\": \"乾片\",\n\"干物\": \"乾物\",\n\"干球温度\": \"幹球溫度\",\n\"干甚么\": \"幹甚麼\",\n\"干生受\": \"乾生受\",\n\"干生子\": \"乾生子\",\n\"干田\": \"乾田\",\n\"干电\": \"乾電\",\n\"干略\": \"幹略\",\n\"干疥\": \"乾疥\",\n\"干瘦\": \"乾瘦\",\n\"干瘪\": \"乾癟\",\n\"干瘾\": \"乾癮\",\n\"干癣\": \"乾癬\",\n\"干白儿\": \"乾白兒\",\n\"干白葡萄酒\": \"乾白葡萄酒\",\n\"干的\": \"乾的\",\n\"干的事\": \"幹的事\",\n\"干的好事\": \"幹的好事\",\n\"干眼\": \"乾眼\",\n\"干瞪眼\": \"乾瞪眼\",\n\"干礼\": \"乾禮\",\n\"干稿\": \"乾稿\",\n\"干笑\": \"乾笑\",\n\"干等\": \"乾等\",\n\"干篾片\": \"乾篾片\",\n\"干粉\": \"乾粉\",\n\"干粮\": \"乾糧\",\n\"干糇\": \"乾餱\",\n\"干系\": \"干係\",\n\"干红葡萄酒\": \"乾紅葡萄酒\",\n\"干纲\": \"乾綱\",\n\"干线\": \"幹線\",\n\"干练\": \"幹練\",\n\"干细胞\": \"幹細胞\",\n\"干结\": \"乾結\",\n\"干绷\": \"乾繃\",\n\"干缺\": \"幹缺\",\n\"干群关系\": \"幹群關係\",\n\"干耗\": \"乾耗\",\n\"干肉片\": \"乾肉片\",\n\"干股\": \"乾股\",\n\"干肥\": \"乾肥\",\n\"干脆\": \"乾脆\",\n\"干脆面\": \"乾脆麵\",\n\"干花\": \"乾花\",\n\"干苔\": \"乾苔\",\n\"干茨腊\": \"乾茨臘\",\n\"干茶钱\": \"乾茶錢\",\n\"干草\": \"乾草\",\n\"干菜\": \"乾菜\",\n\"干营生\": \"幹營生\",\n\"干落\": \"乾落\",\n\"干薪\": \"乾薪\",\n\"干虔\": \"乾虔\",\n\"干蛊\": \"幹蠱\",\n\"干血浆\": \"乾血漿\",\n\"干衣\": \"乾衣\",\n\"干裂\": \"乾裂\",\n\"干警\": \"幹警\",\n\"干贝\": \"乾貝\",\n\"干货\": \"乾貨\",\n\"干起来\": \"幹起來\",\n\"干路\": \"幹路\",\n\"干躁\": \"乾躁\",\n\"干过\": \"幹過\",\n\"干这\": \"幹這\",\n\"干逼\": \"乾逼\",\n\"干道\": \"幹道\",\n\"干部\": \"幹部\",\n\"干酪\": \"乾酪\",\n\"干酵母\": \"乾酵母\",\n\"干醋\": \"乾醋\",\n\"干重\": \"乾重\",\n\"干量\": \"乾量\",\n\"干锅\": \"乾鍋\",\n\"干阿奶\": \"乾阿奶\",\n\"干雷\": \"乾雷\",\n\"干霍乱\": \"乾霍亂\",\n\"干面\": \"乾麵\",\n\"干革命\": \"幹革命\",\n\"干颡\": \"乾顙\",\n\"干食\": \"乾食\",\n\"干饭\": \"乾飯\",\n\"干馆\": \"乾館\",\n\"干馏\": \"乾餾\",\n\"干鱼\": \"乾魚\",\n\"干鲜\": \"乾鮮\",\n\"平准\": \"平準\",\n\"平平当当\": \"平平當當\",\n\"年代里\": \"年代裡\",\n\"年历\": \"年曆\",\n\"年历史\": \"年歷史\",\n\"年历次\": \"年歷次\",\n\"年谷\": \"年穀\",\n\"年里\": \"年裡\",\n\"年里约\": \"年里約\",\n\"年鉴\": \"年鑑\",\n\"并\": \"並\",\n\"并一不二\": \"併一不二\",\n\"并为一体\": \"併為一體\",\n\"并为一家\": \"併為一家\",\n\"并入\": \"併入\",\n\"并兼\": \"併兼\",\n\"并到\": \"併到\",\n\"并力\": \"併力\",\n\"并发动\": \"並發動\",\n\"并发型模式\": \"併發型模式\",\n\"并发展\": \"並發展\",\n\"并发布\": \"並發布\",\n\"并发模式\": \"併發模式\",\n\"并发现\": \"並發現\",\n\"并发症\": \"併發症\",\n\"并发表\": \"並發表\",\n\"并发重症\": \"併發重症\",\n\"并叠\": \"併疊\",\n\"并合\": \"併合\",\n\"并名\": \"併名\",\n\"并吞\": \"併吞\",\n\"并吞下\": \"並吞下\",\n\"并州\": \"并州\",\n\"并拢\": \"併攏\",\n\"并日而食\": \"并日而食\",\n\"并曰入淀\": \"並曰入澱\",\n\"并案\": \"併案\",\n\"并科\": \"併科\",\n\"并线\": \"併線\",\n\"并网\": \"併網\",\n\"并肩子\": \"併肩子\",\n\"并行\": \"並行\",\n\"并购\": \"併購\",\n\"并迭\": \"并迭\",\n\"并骨\": \"併骨\",\n\"幸免\": \"倖免\",\n\"幸存\": \"倖存\",\n\"幸幸\": \"倖幸\",\n\"幸运胡\": \"幸運鬍\",\n\"幽并\": \"幽并\",\n\"广\": \"廣\",\n\"广征\": \"廣徵\",\n\"广播里\": \"廣播裡\",\n\"广舍\": \"廣捨\",\n\"广部\": \"广部\",\n\"庄\": \"莊\",\n\"庄內\": \"庄內\",\n\"庄内地方\": \"庄內地方\",\n\"庄司\": \"庄司\",\n\"庄里\": \"莊裡\",\n\"庆\": \"慶\",\n\"庆历\": \"慶曆\",\n\"庆历史\": \"慶歷史\",\n\"庆吊\": \"慶弔\",\n\"床\": \"牀\",\n\"床席\": \"床蓆\",\n\"庐\": \"廬\",\n\"庑\": \"廡\",\n\"库\": \"庫\",\n\"应\": \"應\",\n\"应制得\": \"應制得\",\n\"应征\": \"應徵\",\n\"应钟\": \"應鐘\",\n\"店里\": \"店裡\",\n\"庙\": \"廟\",\n\"庙里\": \"廟裡\",\n\"府干\": \"府幹\",\n\"府干卿\": \"府干卿\",\n\"府干扰\": \"府干擾\",\n\"府干擾\": \"府干擾\",\n\"府干政\": \"府干政\",\n\"府干涉\": \"府干涉\",\n\"府干犯\": \"府干犯\",\n\"府干預\": \"府干預\",\n\"府干预\": \"府干預\",\n\"庞\": \"龐\",\n\"废\": \"廢\",\n\"废后\": \"廢后\",\n\"座钟\": \"座鐘\",\n\"庼\": \"廎\",\n\"廍子里\": \"廍子里\",\n\"廓子里\": \"廓子里\",\n\"廢后\": \"廢后\",\n\"廪\": \"廩\",\n\"延历\": \"延曆\",\n\"建筑前\": \"建築前\",\n\"建筑后\": \"建築後\",\n\"开\": \"開\",\n\"开发\": \"開發\",\n\"开吊\": \"開弔\",\n\"开哄\": \"開鬨\",\n\"开山辟谷\": \"開山闢谷\",\n\"开征\": \"開徵\",\n\"开辟\": \"開闢\",\n\"开采\": \"開採\",\n\"异\": \"異\",\n\"弃\": \"棄\",\n\"弃舍\": \"棄捨\",\n\"弄丑\": \"弄醜\",\n\"弄干\": \"弄乾\",\n\"弄松\": \"弄鬆\",\n\"弄脏胸\": \"弄髒胸\",\n\"弄鬼吊猴\": \"弄鬼弔猴\",\n\"弑\": \"弒\",\n\"引发\": \"引發\",\n\"引斗\": \"引鬥\",\n\"弘历\": \"弘曆\",\n\"弘历史\": \"弘歷史\",\n\"张\": \"張\",\n\"张三丰\": \"張三丰\",\n\"张乐于张徐\": \"張樂于張徐\",\n\"张勋\": \"張勳\",\n\"张杰\": \"張杰\",\n\"张柏芝\": \"張栢芝\",\n\"弥\": \"彌\",\n\"弥山遍野\": \"瀰山遍野\",\n\"弥弥\": \"瀰瀰\",\n\"弥漫\": \"瀰漫\",\n\"弪\": \"弳\",\n\"弯\": \"彎\",\n\"弱水三千只取一瓢\": \"弱水三千只取一瓢\",\n\"張三丰\": \"張三丰\",\n\"張杰\": \"張杰\",\n\"張樂于張徐\": \"張樂于張徐\",\n\"強制\": \"強制\",\n\"弹\": \"彈\",\n\"弹子台\": \"彈子檯\",\n\"弹珠台\": \"彈珠檯\",\n\"强\": \"強\",\n\"强制\": \"強制\",\n\"强制作用\": \"強制作用\",\n\"强奸\": \"強姦\",\n\"强干\": \"強幹\",\n\"归\": \"歸\",\n\"归余\": \"歸餘\",\n\"归并\": \"歸併\",\n\"当\": \"當\",\n\"当准\": \"當準\",\n\"当啷\": \"噹啷\",\n\"当当\": \"噹噹\",\n\"当当丁丁\": \"當當丁丁\",\n\"当当网\": \"當當網\",\n\"录\": \"錄\",\n\"录制\": \"錄製\",\n\"彟\": \"彠\",\n\"形单影只\": \"形單影隻\",\n\"彦\": \"彥\",\n\"彨\": \"彲\",\n\"彭于晏\": \"彭于晏\",\n\"影后\": \"影后\",\n\"影相吊\": \"影相弔\",\n\"彻\": \"徹\",\n\"往复式\": \"往復式\",\n\"往日无仇\": \"往日無讎\",\n\"往里\": \"往裡\",\n\"征令\": \"徵令\",\n\"征信\": \"徵信\",\n\"征候\": \"徵候\",\n\"征兆\": \"徵兆\",\n\"征兵\": \"徵兵\",\n\"征到\": \"徵到\",\n\"征募\": \"徵募\",\n\"征友\": \"徵友\",\n\"征发\": \"徵發\",\n\"征召\": \"徵召\",\n\"征名责实\": \"徵名責實\",\n\"征吏\": \"徵吏\",\n\"征启\": \"徵啟\",\n\"征咎\": \"徵咎\",\n\"征圣\": \"徵聖\",\n\"征士\": \"徵士\",\n\"征婚\": \"徵婚\",\n\"征实\": \"徵實\",\n\"征庸\": \"徵庸\",\n\"征引\": \"徵引\",\n\"征得\": \"徵得\",\n\"征怪\": \"徵怪\",\n\"征才\": \"徵才\",\n\"征招\": \"徵招\",\n\"征收\": \"徵收\",\n\"征效\": \"徵效\",\n\"征文\": \"徵文\",\n\"征求\": \"徵求\",\n\"征状\": \"徵狀\",\n\"征用\": \"徵用\",\n\"征税\": \"徵稅\",\n\"征稿\": \"徵稿\",\n\"征答\": \"徵答\",\n\"征结\": \"徵結\",\n\"征聘\": \"徵聘\",\n\"征训\": \"徵訓\",\n\"征询\": \"徵詢\",\n\"征调\": \"徵調\",\n\"征象\": \"徵象\",\n\"征购\": \"徵購\",\n\"征车\": \"徵車\",\n\"征辟\": \"徵辟\",\n\"征迹\": \"徵跡\",\n\"征选\": \"徵選\",\n\"征逐\": \"徵逐\",\n\"征集\": \"徵集\",\n\"征风召雨\": \"徵風召雨\",\n\"征验\": \"徵驗\",\n\"径\": \"徑\",\n\"待复\": \"待覆\",\n\"很丑\": \"很醜\",\n\"很准\": \"很準\",\n\"很凶\": \"很兇\",\n\"很干\": \"很乾\",\n\"很松\": \"很鬆\",\n\"律历志\": \"律曆志\",\n\"後庄\": \"後庄\",\n\"徐干\": \"徐幹\",\n\"徒托空言\": \"徒託空言\",\n\"徒杠\": \"徒杠\",\n\"徕\": \"徠\",\n\"得到回复\": \"得到回覆\",\n\"得力干将\": \"得力幹將\",\n\"御侮\": \"禦侮\",\n\"御制\": \"御製\",\n\"御寇\": \"禦寇\",\n\"御寒\": \"禦寒\",\n\"御岳山\": \"御嶽山\",\n\"御敌\": \"禦敵\",\n\"心余\": \"心餘\",\n\"心愿\": \"心愿\",\n\"心理\": \"心理\",\n\"心系一\": \"心繫一\",\n\"心系万\": \"心繫萬\",\n\"心系世\": \"心繫世\",\n\"心系东\": \"心繫東\",\n\"心系两\": \"心繫兩\",\n\"心系中\": \"心繫中\",\n\"心系乔\": \"心繫喬\",\n\"心系五\": \"心繫五\",\n\"心系京\": \"心繫京\",\n\"心系人\": \"心繫人\",\n\"心系他\": \"心繫他\",\n\"心系伊\": \"心繫伊\",\n\"心系众\": \"心繫眾\",\n\"心系传\": \"心繫傳\",\n\"心系何\": \"心繫何\",\n\"心系你\": \"心繫你\",\n\"心系健\": \"心繫健\",\n\"心系全\": \"心繫全\",\n\"心系兰\": \"心繫蘭\",\n\"心系农\": \"心繫农\",\n\"心系功\": \"心繫功\",\n\"心系动\": \"心繫動\",\n\"心系募\": \"心繫募\",\n\"心系北\": \"心繫北\",\n\"心系十\": \"心繫十\",\n\"心系千\": \"心繫千\",\n\"心系南\": \"心繫南\",\n\"心系台\": \"心繫台\",\n\"心系和\": \"心繫和\",\n\"心系哪\": \"心繫哪\",\n\"心系唐\": \"心繫唐\",\n\"心系嘱\": \"心繫囑\",\n\"心系四\": \"心繫四\",\n\"心系困\": \"心繫困\",\n\"心系国\": \"心繫國\",\n\"心系在\": \"心繫在\",\n\"心系地\": \"心繫地\",\n\"心系大\": \"心繫大\",\n\"心系天\": \"心繫天\",\n\"心系夫\": \"心繫夫\",\n\"心系奥\": \"心繫奧\",\n\"心系女\": \"心繫女\",\n\"心系她\": \"心繫她\",\n\"心系妇\": \"心繫婦\",\n\"心系妻\": \"心繫妻\",\n\"心系子\": \"心繫子\",\n\"心系它\": \"心繫它\",\n\"心系宣\": \"心繫宣\",\n\"心系家\": \"心繫家\",\n\"心系富\": \"心繫富\",\n\"心系小\": \"心繫小\",\n\"心系山\": \"心繫山\",\n\"心系川\": \"心繫川\",\n\"心系幼\": \"心繫幼\",\n\"心系广\": \"心繫廣\",\n\"心系彼\": \"心繫彼\",\n\"心系德\": \"心繫德\",\n\"心系您\": \"心繫您\",\n\"心系慈\": \"心繫慈\",\n\"心系我\": \"心繫我\",\n\"心系摩\": \"心繫摩\",\n\"心系故\": \"心繫故\",\n\"心系新\": \"心繫新\",\n\"心系日\": \"心繫日\",\n\"心系昌\": \"心繫昌\",\n\"心系晓\": \"心繫曉\",\n\"心系曼\": \"心繫曼\",\n\"心系林\": \"心繫林\",\n\"心系母\": \"心繫母\",\n\"心系民\": \"心繫民\",\n\"心系江\": \"心繫江\",\n\"心系汶\": \"心繫汶\",\n\"心系沈\": \"心繫沈\",\n\"心系沙\": \"心繫沙\",\n\"心系泰\": \"心繫泰\",\n\"心系浙\": \"心繫浙\",\n\"心系港\": \"心繫港\",\n\"心系湖\": \"心繫湖\",\n\"心系澳\": \"心繫澳\",\n\"心系灾\": \"心繫災\",\n\"心系父\": \"心繫父\",\n\"心系生\": \"心繫生\",\n\"心系病\": \"心繫病\",\n\"心系百\": \"心繫百\",\n\"心系的\": \"心繫的\",\n\"心系社\": \"心繫社\",\n\"心系祖\": \"心繫祖\",\n\"心系神\": \"心繫神\",\n\"心系红\": \"心繫紅\",\n\"心系美\": \"心繫美\",\n\"心系群\": \"心繫群\",\n\"心系老\": \"心繫老\",\n\"心系舞\": \"心繫舞\",\n\"心系英\": \"心繫英\",\n\"心系茶\": \"心繫茶\",\n\"心系西\": \"心繫西\",\n\"心系贫\": \"心繫貧\",\n\"心系输\": \"心繫輸\",\n\"心系近\": \"心繫近\",\n\"心系远\": \"心繫遠\",\n\"心系选\": \"心繫選\",\n\"心系重\": \"心繫重\",\n\"心系长\": \"心繫長\",\n\"心系阮\": \"心繫阮\",\n\"心系震\": \"心繫震\",\n\"心系非\": \"心繫非\",\n\"心系风\": \"心繫風\",\n\"心系香\": \"心繫香\",\n\"心系高\": \"心繫高\",\n\"心系麦\": \"心繫麥\",\n\"心系黄\": \"心繫黃\",\n\"心繫农\": \"心繫农\",\n\"心细如发\": \"心細如髮\",\n\"心脏\": \"心臟\",\n\"心脏痳痹\": \"心臟痲痺\",\n\"心荡\": \"心蕩\",\n\"心里\": \"心裡\",\n\"心里面\": \"心裏面\",\n\"心长发短\": \"心長髮短\",\n\"必须\": \"必須\",\n\"忆\": \"憶\",\n\"忏\": \"懺\",\n\"志哀\": \"誌哀\",\n\"志喜\": \"誌喜\",\n\"志庆\": \"誌慶\",\n\"志异\": \"誌異\",\n\"忙里\": \"忙裡\",\n\"忙里偷闲\": \"忙裡偷閒\",\n\"忠人之托\": \"忠人之托\",\n\"忠仆\": \"忠僕\",\n\"忧\": \"憂\",\n\"忧郁\": \"憂鬱\",\n\"快冲\": \"快衝\",\n\"快快当当\": \"快快當當\",\n\"忾\": \"愾\",\n\"怀\": \"懷\",\n\"怀里\": \"懷裡\",\n\"怀钟\": \"懷鐘\",\n\"态\": \"態\",\n\"怂\": \"慫\",\n\"怃\": \"憮\",\n\"怄\": \"慪\",\n\"怅\": \"悵\",\n\"怆\": \"愴\",\n\"怎么干\": \"怎麼幹\",\n\"怒发冲冠\": \"怒髮衝冠\",\n\"怒气冲天\": \"怒氣衝天\",\n\"怒火冲天\": \"怒火衝天\",\n\"怜\": \"憐\",\n\"怜奈\": \"怜奈\",\n\"思如泉涌\": \"思如泉湧\",\n\"急冲而下\": \"急衝而下\",\n\"性别扭曲\": \"性別扭曲\",\n\"性征\": \"性徵\",\n\"性欲\": \"性慾\",\n\"怨气冲天\": \"怨氣衝天\",\n\"怪里怪气\": \"怪裡怪氣\",\n\"怫郁\": \"怫鬱\",\n\"总\": \"總\",\n\"总数只\": \"總數只\",\n\"总数里\": \"總數裡\",\n\"总裁制\": \"總裁制\",\n\"怼\": \"懟\",\n\"怿\": \"懌\",\n\"恂栗\": \"恂慄\",\n\"恋\": \"戀\",\n\"恋恋不舍\": \"戀戀不捨\",\n\"恒\": \"恆\",\n\"恒基\": \"恒基\",\n\"恒生\": \"恒生\",\n\"恒隆\": \"恒隆\",\n\"恕乏价催\": \"恕乏价催\",\n\"恢复\": \"恢復\",\n\"息交绝游\": \"息交絕遊\",\n\"息谷\": \"息穀\",\n\"恳\": \"懇\",\n\"恳托\": \"懇託\",\n\"恶\": \"惡\",\n\"恶仆\": \"惡僕\",\n\"恶心\": \"噁心\",\n\"恶斗\": \"惡鬥\",\n\"恶直丑正\": \"惡直醜正\",\n\"恸\": \"慟\",\n\"恹\": \"懨\",\n\"恺\": \"愷\",\n\"恻\": \"惻\",\n\"恼\": \"惱\",\n\"恽\": \"惲\",\n\"悒郁\": \"悒鬱\",\n\"悠悠荡荡\": \"悠悠蕩蕩\",\n\"悠游\": \"悠遊\",\n\"悠荡\": \"悠蕩\",\n\"悦\": \"悅\",\n\"悫\": \"愨\",\n\"悬\": \"懸\",\n\"悬挂\": \"懸掛\",\n\"悬梁\": \"懸樑\",\n\"悬臂梁\": \"懸臂樑\",\n\"悬钟\": \"懸鐘\",\n\"悭\": \"慳\",\n\"悮\": \"悞\",\n\"悯\": \"憫\",\n\"悲凄\": \"悲悽\",\n\"悲筑\": \"悲筑\",\n\"悲郁\": \"悲鬱\",\n\"悸栗\": \"悸慄\",\n\"情欲\": \"情慾\",\n\"惇朴\": \"惇樸\",\n\"惊\": \"驚\",\n\"惊栗\": \"驚慄\",\n\"惊赞\": \"驚讚\",\n\"惊钟\": \"驚鐘\",\n\"惠文后\": \"惠文后\",\n\"惧\": \"懼\",\n\"惨\": \"慘\",\n\"惨淡\": \"慘澹\",\n\"惩\": \"懲\",\n\"惩忿窒欲\": \"懲忿窒欲\",\n\"惫\": \"憊\",\n\"惬\": \"愜\",\n\"惭\": \"慚\",\n\"惮\": \"憚\",\n\"惯\": \"慣\",\n\"惴栗\": \"惴慄\",\n\"愈合\": \"癒合\",\n\"意大利面\": \"意大利麵\",\n\"意大利面临\": \"意大利面臨\",\n\"意大利面臨\": \"意大利面臨\",\n\"愛河里花子\": \"愛河里花子\",\n\"愠\": \"慍\",\n\"愤\": \"憤\",\n\"愦\": \"憒\",\n\"愿\": \"願\",\n\"愿朴\": \"愿樸\",\n\"愿樸\": \"愿樸\",\n\"愿而恭\": \"愿而恭\",\n\"慈溪\": \"慈谿\",\n\"慌里慌张\": \"慌裡慌張\",\n\"慑\": \"懾\",\n\"慭\": \"憖\",\n\"憑几\": \"憑几\",\n\"懈松\": \"懈鬆\",\n\"應制得\": \"應制得\",\n\"懑\": \"懣\",\n\"懒\": \"懶\",\n\"懔\": \"懍\",\n\"懔栗\": \"懍慄\",\n\"懞懞懂懂\": \"懞懞懂懂\",\n\"懞直\": \"懞直\",\n\"懿范\": \"懿範\",\n\"戆\": \"戇\",\n\"戋\": \"戔\",\n\"戏\": \"戲\",\n\"戏里\": \"戲裡\",\n\"成于思\": \"成於思\",\n\"戗\": \"戧\",\n\"战\": \"戰\",\n\"战天斗地\": \"戰天鬥地\",\n\"战斗\": \"戰鬥\",\n\"战栗\": \"戰慄\",\n\"戬\": \"戩\",\n\"戬谷\": \"戩穀\",\n\"戯\": \"戱\",\n\"戲院里\": \"戲院里\",\n\"戴发含齿\": \"戴髮含齒\",\n\"戴表元\": \"戴表元\",\n\"户\": \"戶\",\n\"房里\": \"房裡\",\n\"所云\": \"所云\",\n\"所云云\": \"所云云\",\n\"所占卜\": \"所占卜\",\n\"所占星\": \"所占星\",\n\"所占算\": \"所占算\",\n\"所托\": \"所託\",\n\"所有只\": \"所有只\",\n\"扁拟谷盗虫\": \"扁擬穀盜蟲\",\n\"手冢治虫\": \"手塚治虫\",\n\"手塚治虫\": \"手塚治虫\",\n\"手折\": \"手摺\",\n\"手松\": \"手鬆\",\n\"手游\": \"手遊\",\n\"手表\": \"手錶\",\n\"手表决\": \"手表決\",\n\"手表态\": \"手表態\",\n\"手表態\": \"手表態\",\n\"手表明\": \"手表明\",\n\"手表決\": \"手表決\",\n\"手表演\": \"手表演\",\n\"手表现\": \"手表現\",\n\"手表現\": \"手表現\",\n\"手表示\": \"手表示\",\n\"手表达\": \"手表達\",\n\"手表達\": \"手表達\",\n\"手表露\": \"手表露\",\n\"手表面\": \"手表面\",\n\"手里\": \"手裡\",\n\"手里剑\": \"手裏劍\",\n\"手链\": \"手鍊\",\n\"才干\": \"才幹\",\n\"才干休\": \"才干休\",\n\"才干戈\": \"才干戈\",\n\"才干扰\": \"才干擾\",\n\"才干政\": \"才干政\",\n\"才干涉\": \"才干涉\",\n\"才干预\": \"才干預\",\n\"扎上\": \"紮上\",\n\"扎下\": \"紮下\",\n\"扎囮\": \"紮囮\",\n\"扎好\": \"紮好\",\n\"扎好底子\": \"扎好底子\",\n\"扎好根\": \"扎好根\",\n\"扎实\": \"紮實\",\n\"扎寨\": \"紮寨\",\n\"扎带子\": \"紮帶子\",\n\"扎成\": \"紮成\",\n\"扎根\": \"紮根\",\n\"扎紧\": \"紮緊\",\n\"扎脚\": \"紮腳\",\n\"扎营\": \"紮營\",\n\"扎裹\": \"紮裹\",\n\"扎诈\": \"紮詐\",\n\"扎起\": \"紮起\",\n\"扎铁\": \"紮鐵\",\n\"扑\": \"撲\",\n\"扑作教刑\": \"扑作教刑\",\n\"扑冬\": \"撲鼕\",\n\"扑咚\": \"撲鼕\",\n\"扑咚咚\": \"撲鼕鼕\",\n\"扑打\": \"扑打\",\n\"扑挞\": \"扑撻\",\n\"扑撻\": \"扑撻\",\n\"打出吊入\": \"打出弔入\",\n\"打卡钟\": \"打卡鐘\",\n\"打卤\": \"打滷\",\n\"打吨\": \"打吨\",\n\"打干\": \"打幹\",\n\"打干哕\": \"打乾噦\",\n\"打斗\": \"打鬥\",\n\"打断发\": \"打斷發\",\n\"打谷\": \"打穀\",\n\"打钟\": \"打鐘\",\n\"打风后\": \"打風後\",\n\"托买\": \"託買\",\n\"托了\": \"託了\",\n\"托事\": \"託事\",\n\"托交\": \"託交\",\n\"托付\": \"託付\",\n\"托克逊\": \"託克遜\",\n\"托卖\": \"託賣\",\n\"托古讽今\": \"託古諷今\",\n\"托名\": \"託名\",\n\"托命\": \"託命\",\n\"托咎\": \"託咎\",\n\"托孤\": \"託孤\",\n\"托庇\": \"託庇\",\n\"托故\": \"託故\",\n\"托梦\": \"託夢\",\n\"托疾\": \"託疾\",\n\"托病\": \"託病\",\n\"托管\": \"託管\",\n\"托管国\": \"托管國\",\n\"托言\": \"託言\",\n\"托词\": \"託詞\",\n\"托身\": \"託身\",\n\"托辞\": \"託辭\",\n\"托过\": \"託過\",\n\"托运\": \"託運\",\n\"托里县\": \"託里縣\",\n\"托附\": \"託附\",\n\"扛大梁\": \"扛大樑\",\n\"执\": \"執\",\n\"扩\": \"擴\",\n\"扪\": \"捫\",\n\"扫\": \"掃\",\n\"扫荡\": \"掃蕩\",\n\"扬\": \"揚\",\n\"扯面\": \"扯麵\",\n\"扰\": \"擾\",\n\"扶余\": \"扶餘\",\n\"批准\": \"批准\",\n\"批准确定\": \"批准確定\",\n\"批复\": \"批覆\",\n\"批斗\": \"批鬥\",\n\"批注\": \"批註\",\n\"扼肮\": \"搤肮\",\n\"扼肮拊背\": \"搤肮拊背\",\n\"抑制\": \"抑制\",\n\"抑郁\": \"抑鬱\",\n\"抓奸\": \"抓姦\",\n\"抓斗\": \"抓斗\",\n\"抗御\": \"抗禦\",\n\"折冲\": \"折衝\",\n\"折叠\": \"摺疊\",\n\"折台\": \"摺檯\",\n\"折奏\": \"摺奏\",\n\"折子\": \"摺子\",\n\"折子戏\": \"折子戲\",\n\"折子戲\": \"折子戲\",\n\"折尺\": \"摺尺\",\n\"折戟沈河\": \"折戟沈河\",\n\"折扇\": \"摺扇\",\n\"折梯\": \"摺梯\",\n\"折椅\": \"摺椅\",\n\"折痕\": \"摺痕\",\n\"折篷\": \"摺篷\",\n\"折纸\": \"摺紙\",\n\"折裙\": \"摺裙\",\n\"抚\": \"撫\",\n\"抛\": \"拋\",\n\"抟\": \"摶\",\n\"抠\": \"摳\",\n\"抡\": \"掄\",\n\"抢\": \"搶\",\n\"护\": \"護\",\n\"护发\": \"護髮\",\n\"护发展\": \"護發展\",\n\"报\": \"報\",\n\"披发\": \"披髮\",\n\"披头散发\": \"披頭散髮\",\n\"披榛采兰\": \"披榛採蘭\",\n\"抬\": \"擡\",\n\"抱朴而长吟兮\": \"抱朴而長吟兮\",\n\"抱素怀朴\": \"抱素懷樸\",\n\"抵御\": \"抵禦\",\n\"抵牾\": \"牴牾\",\n\"抵触\": \"牴觸\",\n\"抹干\": \"抹乾\",\n\"抽公签\": \"抽公籤\",\n\"抽干\": \"抽乾\",\n\"抽签\": \"抽籤\",\n\"抿发\": \"抿髮\",\n\"拂钟无声\": \"拂鐘無聲\",\n\"担\": \"擔\",\n\"担仔面\": \"擔仔麵\",\n\"担担面\": \"擔擔麵\",\n\"拆伙\": \"拆夥\",\n\"拈须\": \"拈鬚\",\n\"拉克施尔德钟\": \"拉克施爾德鐘\",\n\"拉纤\": \"拉縴\",\n\"拉面\": \"拉麵\",\n\"拉面上\": \"拉面上\",\n\"拉面具\": \"拉面具\",\n\"拉面前\": \"拉面前\",\n\"拉面巾\": \"拉面巾\",\n\"拉面无\": \"拉面無\",\n\"拉面皮\": \"拉面皮\",\n\"拉面罩\": \"拉面罩\",\n\"拉面色\": \"拉面色\",\n\"拉面部\": \"拉面部\",\n\"拌面\": \"拌麵\",\n\"拓朴\": \"拓樸\",\n\"拔发\": \"拔髮\",\n\"拔须\": \"拔鬚\",\n\"拗别\": \"拗彆\",\n\"拙朴\": \"拙樸\",\n\"拚舍\": \"拚捨\",\n\"拜托\": \"拜託\",\n\"拟\": \"擬\",\n\"拢\": \"攏\",\n\"拣\": \"揀\",\n\"拥\": \"擁\",\n\"拦\": \"攔\",\n\"拧\": \"擰\",\n\"拧干\": \"擰乾\",\n\"拨\": \"撥\",\n\"拨谷\": \"撥穀\",\n\"择\": \"擇\",\n\"拭干\": \"拭乾\",\n\"拮据\": \"拮据\",\n\"拳局\": \"拳跼\",\n\"拼斗\": \"拼鬥\",\n\"拾沈\": \"拾瀋\",\n\"拿不准\": \"拿不準\",\n\"拿准\": \"拿準\",\n\"拿破仑\": \"拿破崙\",\n\"挂\": \"掛\",\n\"挂历\": \"掛曆\",\n\"挂名\": \"掛名\",\n\"挂钩\": \"掛鈎\",\n\"挂面\": \"掛麵\",\n\"挌斗\": \"挌鬥\",\n\"挑大梁\": \"挑大樑\",\n\"挑斗\": \"挑鬥\",\n\"挚\": \"摯\",\n\"挛\": \"攣\",\n\"挜\": \"掗\",\n\"挝\": \"撾\",\n\"挞\": \"撻\",\n\"挟\": \"挾\",\n\"挠\": \"撓\",\n\"挡\": \"擋\",\n\"挢\": \"撟\",\n\"挣\": \"掙\",\n\"挤\": \"擠\",\n\"挥\": \"揮\",\n\"挥手表\": \"揮手表\",\n\"挦\": \"撏\",\n\"挽曲\": \"輓曲\",\n\"挽歌\": \"輓歌\",\n\"挽联\": \"輓聯\",\n\"挽词\": \"輓詞\",\n\"挽诗\": \"輓詩\",\n\"挽车\": \"輓車\",\n\"挽输\": \"輓輸\",\n\"挽辞\": \"輓辭\",\n\"捆扎\": \"綑紮\",\n\"捉奸\": \"捉姦\",\n\"捉奸党\": \"捉奸黨\",\n\"捉奸徒\": \"捉奸徒\",\n\"捉奸细\": \"捉奸細\",\n\"捉奸贼\": \"捉奸賊\",\n\"捍御\": \"捍禦\",\n\"捏面人\": \"捏麵人\",\n\"捝\": \"挩\",\n\"捞\": \"撈\",\n\"捞干\": \"撈乾\",\n\"捞面\": \"撈麵\",\n\"损\": \"損\",\n\"捡\": \"撿\",\n\"换\": \"換\",\n\"换只\": \"換隻\",\n\"捣\": \"搗\",\n\"捣鬼吊白\": \"搗鬼弔白\",\n\"据\": \"據\",\n\"据云\": \"據云\",\n\"捵面\": \"捵麵\",\n\"捶炼\": \"捶鍊\",\n\"授勋\": \"授勳\",\n\"授时历\": \"授時曆\",\n\"掌柜\": \"掌柜\",\n\"排干\": \"排乾\",\n\"排干部\": \"排幹部\",\n\"排骨面\": \"排骨麵\",\n\"掣签\": \"掣籤\",\n\"控制\": \"控制\",\n\"推情准理\": \"推情準理\",\n\"推托\": \"推託\",\n\"推托之词\": \"推托之詞\",\n\"掳\": \"擄\",\n\"掴\": \"摑\",\n\"掷\": \"擲\",\n\"掸\": \"撣\",\n\"掺\": \"摻\",\n\"掼\": \"摜\",\n\"提子干\": \"提子乾\",\n\"提心吊胆\": \"提心弔膽\",\n\"提摩太后书\": \"提摩太後書\",\n\"提高后\": \"提高後\",\n\"握发\": \"握髮\",\n\"揩干\": \"揩乾\",\n\"揪发\": \"揪髮\",\n\"揪采\": \"揪採\",\n\"揪须\": \"揪鬚\",\n\"揭丑\": \"揭醜\",\n\"揮手表\": \"揮手表\",\n\"揽\": \"攬\",\n\"揾\": \"搵\",\n\"揿\": \"撳\",\n\"搀\": \"攙\",\n\"搁\": \"擱\",\n\"搂\": \"摟\",\n\"搄\": \"揯\",\n\"搅\": \"攪\",\n\"搋面\": \"搋麵\",\n\"搏斗\": \"搏鬥\",\n\"搤肮\": \"搤肮\",\n\"搬斗\": \"搬鬥\",\n\"搭伙\": \"搭夥\",\n\"搭干铺\": \"搭乾鋪\",\n\"携\": \"攜\",\n\"摄\": \"攝\",\n\"摄制\": \"攝製\",\n\"摅\": \"攄\",\n\"摆\": \"擺\",\n\"摆钟\": \"擺鐘\",\n\"摇\": \"搖\",\n\"摈\": \"擯\",\n\"摊\": \"攤\",\n\"摧坚获丑\": \"摧堅獲醜\",\n\"摭采\": \"摭採\",\n\"摸棱\": \"摸稜\",\n\"摸钟\": \"摸鐘\",\n\"撄\": \"攖\",\n\"撇吊\": \"撇弔\",\n\"撑\": \"撐\",\n\"撚须\": \"撚鬚\",\n\"撞钟\": \"撞鐘\",\n\"撞阵冲军\": \"撞陣衝軍\",\n\"撤并\": \"撤併\",\n\"撩斗\": \"撩鬥\",\n\"撵\": \"攆\",\n\"撷\": \"擷\",\n\"撸\": \"擼\",\n\"撺\": \"攛\",\n\"擀面\": \"擀麵\",\n\"擊扑\": \"擊扑\",\n\"操作钟\": \"操作鐘\",\n\"擜\": \"㩵\",\n\"擞\": \"擻\",\n\"擢发\": \"擢髮\",\n\"擦干\": \"擦乾\",\n\"攒\": \"攢\",\n\"支干\": \"支幹\",\n\"支配欲\": \"支配慾\",\n\"收回\": \"收回\",\n\"收获\": \"收穫\",\n\"改制成\": \"改制成\",\n\"改征\": \"改徵\",\n\"改采\": \"改採\",\n\"放懞挣\": \"放懞掙\",\n\"放松\": \"放鬆\",\n\"放荡\": \"放蕩\",\n\"政斗\": \"政鬥\",\n\"故云\": \"故云\",\n\"敌\": \"敵\",\n\"敌忾同仇\": \"敵愾同讎\",\n\"教学钟\": \"教學鐘\",\n\"教范\": \"教範\",\n\"敚\": \"敓\",\n\"敛\": \"斂\",\n\"敢干\": \"敢幹\",\n\"敢情欲\": \"敢情欲\",\n\"散伙\": \"散夥\",\n\"散荡\": \"散蕩\",\n\"敦朴\": \"敦樸\",\n\"敩\": \"斆\",\n\"敬挽\": \"敬輓\",\n\"数\": \"數\",\n\"数只\": \"數隻\",\n\"数只会\": \"數只會\",\n\"数只包括\": \"數只包括\",\n\"数只可\": \"數只可\",\n\"数只含\": \"數只含\",\n\"数只在\": \"數只在\",\n\"数只应\": \"數只應\",\n\"数只是\": \"數只是\",\n\"数只有\": \"數只有\",\n\"数只比\": \"數只比\",\n\"数只能\": \"數只能\",\n\"数只限\": \"數只限\",\n\"数只需\": \"數只需\",\n\"数只须\": \"數只須\",\n\"数天后\": \"數天後\",\n\"数字钟\": \"數字鐘\",\n\"数字钟表\": \"數字鐘錶\",\n\"数罪并罚\": \"數罪併罰\",\n\"敲扑\": \"敲扑\",\n\"敲钟\": \"敲鐘\",\n\"整出剧\": \"整齣劇\",\n\"整出戏\": \"整齣戲\",\n\"整出电影\": \"整齣電影\",\n\"整发用品\": \"整髮用品\",\n\"整只\": \"整隻\",\n\"整风后\": \"整風後\",\n\"文丑\": \"文丑\",\n\"文学志\": \"文學誌\",\n\"文征明\": \"文徵明\",\n\"文思泉涌\": \"文思泉湧\",\n\"文杰\": \"文杰\",\n\"文采郁郁\": \"文采郁郁\",\n\"斋\": \"齋\",\n\"斓\": \"斕\",\n\"斗不过\": \"鬥不過\",\n\"斗丽\": \"鬥麗\",\n\"斗了\": \"鬥了\",\n\"斗争\": \"鬥爭\",\n\"斗争斗合\": \"鬥爭鬥合\",\n\"斗倒\": \"鬥倒\",\n\"斗兽\": \"鬥獸\",\n\"斗分子\": \"鬥分子\",\n\"斗别气\": \"鬥彆氣\",\n\"斗剑\": \"鬥劍\",\n\"斗力\": \"鬥力\",\n\"斗劲\": \"鬥勁\",\n\"斗勇\": \"鬥勇\",\n\"斗叠\": \"鬥疊\",\n\"斗叶儿\": \"鬥葉兒\",\n\"斗叶子\": \"鬥葉子\",\n\"斗合\": \"鬥合\",\n\"斗哄\": \"鬥鬨\",\n\"斗嘴\": \"鬥嘴\",\n\"斗地主\": \"鬥地主\",\n\"斗垮\": \"鬥垮\",\n\"斗士\": \"鬥士\",\n\"斗头\": \"鬥頭\",\n\"斗富\": \"鬥富\",\n\"斗巧\": \"鬥巧\",\n\"斗幌子\": \"鬥幌子\",\n\"斗弄\": \"鬥弄\",\n\"斗引\": \"鬥引\",\n\"斗彩\": \"鬥彩\",\n\"斗心眼\": \"鬥心眼\",\n\"斗志\": \"鬥志\",\n\"斗成\": \"鬥成\",\n\"斗战\": \"鬥戰\",\n\"斗打\": \"鬥打\",\n\"斗批改\": \"鬥批改\",\n\"斗技\": \"鬥技\",\n\"斗文\": \"鬥文\",\n\"斗斗\": \"鬥鬥\",\n\"斗智\": \"鬥智\",\n\"斗暴\": \"鬥暴\",\n\"斗来斗去\": \"鬥來鬥去\",\n\"斗武\": \"鬥武\",\n\"斗殴\": \"鬥毆\",\n\"斗气\": \"鬥氣\",\n\"斗法\": \"鬥法\",\n\"斗法会\": \"斗法會\",\n\"斗牌\": \"鬥牌\",\n\"斗牙拌齿\": \"鬥牙拌齒\",\n\"斗牙斗齿\": \"鬥牙鬥齒\",\n\"斗牛\": \"鬥牛\",\n\"斗牛星\": \"斗牛星\",\n\"斗犀台\": \"鬥犀臺\",\n\"斗犬\": \"鬥犬\",\n\"斗狗\": \"鬥狗\",\n\"斗狠\": \"鬥狠\",\n\"斗百草\": \"鬥百草\",\n\"斗眼\": \"鬥眼\",\n\"斗私批修\": \"鬥私批修\",\n\"斗而铸兵\": \"鬥而鑄兵\",\n\"斗而铸锥\": \"鬥而鑄錐\",\n\"斗胜\": \"鬥勝\",\n\"斗脚\": \"鬥腳\",\n\"斗舰\": \"鬥艦\",\n\"斗艳\": \"鬥豔\",\n\"斗茶\": \"鬥茶\",\n\"斗草\": \"鬥草\",\n\"斗蛐\": \"鬥蛐\",\n\"斗蟋蟀\": \"鬥蟋蟀\",\n\"斗话\": \"鬥話\",\n\"斗败\": \"鬥敗\",\n\"斗起\": \"鬥起\",\n\"斗趣\": \"鬥趣\",\n\"斗闲气\": \"鬥閒氣\",\n\"斗闷\": \"鬥悶\",\n\"斗雪红\": \"鬥雪紅\",\n\"斗风\": \"鬥風\",\n\"斗饤\": \"鬥飣\",\n\"斗鱼\": \"鬥魚\",\n\"斗鸡\": \"鬥雞\",\n\"斗鸭\": \"鬥鴨\",\n\"斗鹌鹑\": \"鬥鵪鶉\",\n\"斗龙\": \"鬥龍\",\n\"斩\": \"斬\",\n\"斫雕为朴\": \"斫雕為樸\",\n\"断\": \"斷\",\n\"断发\": \"斷髮\",\n\"断发文身\": \"斷髮文身\",\n\"断发现\": \"斷發現\",\n\"新井里美\": \"新井里美\",\n\"新历\": \"新曆\",\n\"新历史\": \"新歷史\",\n\"新干县\": \"新幹縣\",\n\"新庄子\": \"新庄子\",\n\"新扎\": \"新紮\",\n\"斲雕为朴\": \"斲雕為樸\",\n\"方便面\": \"方便麵\",\n\"方向\": \"方向\",\n\"方法里\": \"方法裡\",\n\"施舍\": \"施捨\",\n\"施舍之道\": \"施舍之道\",\n\"旁征博引\": \"旁徵博引\",\n\"旁注\": \"旁註\",\n\"旅游\": \"旅遊\",\n\"旋回\": \"旋迴\",\n\"旋松\": \"旋鬆\",\n\"族里\": \"族裡\",\n\"无\": \"無\",\n\"无业游民\": \"無業游民\",\n\"无余\": \"無餘\",\n\"无征不信\": \"無徵不信\",\n\"无梁楼盖\": \"無樑樓蓋\",\n\"日历\": \"日曆\",\n\"日历史\": \"日歷史\",\n\"日心历表\": \"日心曆表\",\n\"日志\": \"日誌\",\n\"日里\": \"日裡\",\n\"旧\": \"舊\",\n\"旧历\": \"舊曆\",\n\"旧历史\": \"舊歷史\",\n\"旧游\": \"舊遊\",\n\"旧表\": \"舊錶\",\n\"旧钟\": \"舊鐘\",\n\"旧钟表\": \"舊鐘錶\",\n\"旱干\": \"旱乾\",\n\"时\": \"時\",\n\"时钟\": \"時鐘\",\n\"时间不准\": \"時間不準\",\n\"旷\": \"曠\",\n\"旸\": \"暘\",\n\"昆仑\": \"崑崙\",\n\"昆冈\": \"崑岡\",\n\"昆剧\": \"崑劇\",\n\"昆山\": \"崑山\",\n\"昆嵛\": \"崑嵛\",\n\"昆承湖\": \"崑承湖\",\n\"昆曲\": \"崑曲\",\n\"昆腔\": \"崑腔\",\n\"昆苏\": \"崑蘇\",\n\"昆调\": \"崑調\",\n\"昊天不吊\": \"昊天不弔\",\n\"明征\": \"明徵\",\n\"明目张胆\": \"明目張胆\",\n\"明窗净几\": \"明窗淨几\",\n\"明范\": \"明範\",\n\"明鉴\": \"明鑑\",\n\"昔人有云\": \"昔人有云\",\n\"昙\": \"曇\",\n\"星历\": \"星曆\",\n\"星历史\": \"星歷史\",\n\"星期后\": \"星期後\",\n\"星露谷物语\": \"星露谷物語\",\n\"春游\": \"春遊\",\n\"春香斗学\": \"春香鬥學\",\n\"昭惠后\": \"昭惠后\",\n\"是发小\": \"是髮小\",\n\"昵\": \"暱\",\n\"昵称\": \"暱稱\",\n\"昼\": \"晝\",\n\"昽\": \"曨\",\n\"显\": \"顯\",\n\"显示表\": \"顯示錶\",\n\"显示表头\": \"顯示表頭\",\n\"显示表明\": \"顯示表明\",\n\"显示表格\": \"顯示表格\",\n\"显示表现\": \"顯示表現\",\n\"显示表示\": \"顯示表示\",\n\"显示表达\": \"顯示表達\",\n\"显示表面\": \"顯示表面\",\n\"显示钟\": \"顯示鐘\",\n\"显示钟表\": \"顯示鐘錶\",\n\"晃荡\": \"晃蕩\",\n\"晋\": \"晉\",\n\"晒\": \"曬\",\n\"晒干\": \"曬乾\",\n\"晒谷\": \"曬穀\",\n\"晓\": \"曉\",\n\"晔\": \"曄\",\n\"晕\": \"暈\",\n\"晖\": \"暉\",\n\"晚钟\": \"晚鐘\",\n\"晞发\": \"晞髮\",\n\"晨钟\": \"晨鐘\",\n\"普咚咚\": \"普鼕鼕\",\n\"晾干\": \"晾乾\",\n\"暂\": \"暫\",\n\"暅\": \"𣈶\",\n\"暗地里\": \"暗地裡\",\n\"暗斗\": \"暗鬥\",\n\"暗沟里\": \"暗溝裡\",\n\"暗里\": \"暗裡\",\n\"暧\": \"曖\",\n\"暴敛横征\": \"暴斂橫徵\",\n\"曰云\": \"曰云\",\n\"曲尘\": \"麴塵\",\n\"曲櫱\": \"麴櫱\",\n\"曲秀才\": \"麴秀才\",\n\"曲车\": \"麴車\",\n\"曲道士\": \"麴道士\",\n\"曲酒\": \"麯酒\",\n\"曲钱\": \"麴錢\",\n\"曲霉\": \"麴黴\",\n\"更仆难数\": \"更僕難數\",\n\"更钟\": \"更鐘\",\n\"更钟情\": \"更鍾情\",\n\"更钟意\": \"更鍾意\",\n\"更钟爱\": \"更鍾愛\",\n\"曹子里\": \"曹子里\",\n\"曼谷\": \"曼谷\",\n\"曾朴\": \"曾樸\",\n\"最多\": \"最多\",\n\"最多只\": \"最多只\",\n\"會干擾\": \"會干擾\",\n\"月历\": \"月曆\",\n\"月历史\": \"月歷史\",\n\"月球历表\": \"月球曆表\",\n\"月里来\": \"月裡來\",\n\"月面\": \"月面\",\n\"有事之无范\": \"有事之無範\",\n\"有仆\": \"有僕\",\n\"有余\": \"有餘\",\n\"有准\": \"有準\",\n\"有发头陀寺\": \"有髮頭陀寺\",\n\"有只\": \"有隻\",\n\"有只不\": \"有只不\",\n\"有只允\": \"有只允\",\n\"有只容\": \"有只容\",\n\"有只採\": \"有只採\",\n\"有只是\": \"有只是\",\n\"有只用\": \"有只用\",\n\"有只采\": \"有只採\",\n\"有回复\": \"有回覆\",\n\"有够赞\": \"有夠讚\",\n\"有征\": \"有徵\",\n\"有征伐\": \"有征伐\",\n\"有征战\": \"有征戰\",\n\"有征戰\": \"有征戰\",\n\"有征服\": \"有征服\",\n\"有征討\": \"有征討\",\n\"有征讨\": \"有征討\",\n\"有恒街\": \"有恒街\",\n\"有栖川\": \"有栖川\",\n\"有棱有角\": \"有稜有角\",\n\"望了望\": \"望了望\",\n\"望后石\": \"望后石\",\n\"朝乾夕惕\": \"朝乾夕惕\",\n\"朝钟\": \"朝鐘\",\n\"朝鲜于\": \"朝鮮於\",\n\"朦胧\": \"朦朧\",\n\"木偶戏扎\": \"木偶戲紮\",\n\"木制\": \"木製\",\n\"木材干馏\": \"木材乾餾\",\n\"木梁\": \"木樑\",\n\"木签\": \"木籤\",\n\"木钟\": \"木鐘\",\n\"未干\": \"未乾\",\n\"未干涉\": \"未干涉\",\n\"未干預\": \"未干預\",\n\"未干预\": \"未干預\",\n\"本出戏\": \"本齣戲\",\n\"本庄\": \"本庄\",\n\"本征\": \"本徵\",\n\"术\": \"術\",\n\"术忽\": \"朮忽\",\n\"术虎高\": \"朮虎高\",\n\"术赤\": \"朮赤\",\n\"朱卷\": \"硃卷\",\n\"朱庆余\": \"朱慶餘\",\n\"朱批\": \"硃批\",\n\"朱理安历\": \"朱理安曆\",\n\"朱理安历史\": \"朱理安歷史\",\n\"朱砂\": \"硃砂\",\n\"朱笔\": \"硃筆\",\n\"朱谕\": \"硃諭\",\n\"朴修斯\": \"樸修斯\",\n\"朴厚\": \"樸厚\",\n\"朴子里\": \"朴子里\",\n\"朴学\": \"樸學\",\n\"朴实\": \"樸實\",\n\"朴念仁\": \"樸念仁\",\n\"朴拙\": \"樸拙\",\n\"朴樕\": \"樸樕\",\n\"朴父\": \"樸父\",\n\"朴直\": \"樸直\",\n\"朴素\": \"樸素\",\n\"朴茨茅斯\": \"樸茨茅斯\",\n\"朴讷\": \"樸訥\",\n\"朴质\": \"樸質\",\n\"朴鄙\": \"樸鄙\",\n\"朴重\": \"樸重\",\n\"朴野\": \"樸野\",\n\"朴钝\": \"樸鈍\",\n\"朴陋\": \"樸陋\",\n\"朴马\": \"樸馬\",\n\"朴鲁\": \"樸魯\",\n\"机\": \"機\",\n\"机械系\": \"機械系\",\n\"机械表\": \"機械錶\",\n\"机械钟\": \"機械鐘\",\n\"机械钟表\": \"機械鐘錶\",\n\"杀\": \"殺\",\n\"杂\": \"雜\",\n\"杂合面儿\": \"雜合麵兒\",\n\"杂志\": \"雜誌\",\n\"杂面\": \"雜麵\",\n\"权\": \"權\",\n\"杆枪\": \"桿槍\",\n\"杆秤\": \"桿秤\",\n\"杆菌\": \"桿菌\",\n\"李志喜\": \"李志喜\",\n\"李连杰\": \"李連杰\",\n\"李适\": \"李适\",\n\"李連杰\": \"李連杰\",\n\"材干\": \"材幹\",\n\"村落发\": \"村落發\",\n\"村里有\": \"村裡有\",\n\"村里的\": \"村裡的\",\n\"杜琪峰\": \"杜琪峯\",\n\"杜老志道\": \"杜老誌道\",\n\"杞宋无征\": \"杞宋無徵\",\n\"束发\": \"束髮\",\n\"杠\": \"槓\",\n\"杠人\": \"杠人\",\n\"杠杆\": \"槓桿\",\n\"杠梁\": \"杠梁\",\n\"杠毂\": \"杠轂\",\n\"杠轂\": \"杠轂\",\n\"条\": \"條\",\n\"条文里\": \"條文裡\",\n\"来\": \"來\",\n\"杨\": \"楊\",\n\"杨雅筑\": \"楊雅筑\",\n\"杩\": \"榪\",\n\"杯干\": \"杯乾\",\n\"杯面\": \"杯麵\",\n\"杰\": \"傑\",\n\"杰伦\": \"杰倫\",\n\"杰倫\": \"杰倫\",\n\"杰威尔\": \"杰威爾\",\n\"杰威爾\": \"杰威爾\",\n\"東湖里\": \"東湖里\",\n\"松一口气\": \"鬆一口氣\",\n\"松了\": \"鬆了\",\n\"松些\": \"鬆些\",\n\"松元音\": \"鬆元音\",\n\"松动\": \"鬆動\",\n\"松劲\": \"鬆勁\",\n\"松化\": \"鬆化\",\n\"松口\": \"鬆口\",\n\"松口镇\": \"松口鎮\",\n\"松喉\": \"鬆喉\",\n\"松土\": \"鬆土\",\n\"松宽\": \"鬆寬\",\n\"松山庄\": \"松山庄\",\n\"松开\": \"鬆開\",\n\"松开始\": \"松開始\",\n\"松弛\": \"鬆弛\",\n\"松快\": \"鬆快\",\n\"松懈\": \"鬆懈\",\n\"松手\": \"鬆手\",\n\"松掉\": \"鬆掉\",\n\"松散\": \"鬆散\",\n\"松松地\": \"鬆鬆地\",\n\"松柔\": \"鬆柔\",\n\"松气\": \"鬆氣\",\n\"松浮\": \"鬆浮\",\n\"松溪县\": \"松谿縣\",\n\"松紧\": \"鬆緊\",\n\"松绑\": \"鬆綁\",\n\"松缓\": \"鬆緩\",\n\"松耦合\": \"鬆耦合\",\n\"松脆\": \"鬆脆\",\n\"松脱\": \"鬆脫\",\n\"松蛋\": \"鬆蛋\",\n\"松软\": \"鬆軟\",\n\"松通\": \"鬆通\",\n\"松饼\": \"鬆餅\",\n\"板荡\": \"板蕩\",\n\"极\": \"極\",\n\"构\": \"構\",\n\"林宏岳\": \"林宏嶽\",\n\"林杰樑\": \"林杰樑\",\n\"林郁方\": \"林郁方\",\n\"林钟\": \"林鐘\",\n\"林鹅峰\": \"林鵞峰\",\n\"果子干\": \"果子乾\",\n\"果干\": \"果乾\",\n\"果累累\": \"果纍纍\",\n\"枝干\": \"枝幹\",\n\"枞\": \"樅\",\n\"枢\": \"樞\",\n\"枣\": \"棗\",\n\"枥\": \"櫪\",\n\"枧\": \"梘\",\n\"枨\": \"棖\",\n\"枪\": \"槍\",\n\"枪杆\": \"槍桿\",\n\"枫\": \"楓\",\n\"枭\": \"梟\",\n\"枯干\": \"枯乾\",\n\"架钟\": \"架鐘\",\n\"某只\": \"某隻\",\n\"染发\": \"染髮\",\n\"染发生\": \"染發生\",\n\"染殿后\": \"染殿后\",\n\"柜\": \"櫃\",\n\"柜上\": \"柜上\",\n\"柜台\": \"櫃檯\",\n\"柜子\": \"柜子\",\n\"柜柳\": \"柜柳\",\n\"柜里\": \"櫃裡\",\n\"柠\": \"檸\",\n\"查封后\": \"查封後\",\n\"柱梁\": \"柱樑\",\n\"柳斌杰\": \"柳斌杰\",\n\"柳诒征\": \"柳詒徵\",\n\"柽\": \"檉\",\n\"栀\": \"梔\",\n\"栅\": \"柵\",\n\"标\": \"標\",\n\"标准\": \"標準\",\n\"标志\": \"標誌\",\n\"标标致致\": \"標標致致\",\n\"标注\": \"標註\",\n\"标签\": \"標籤\",\n\"标致\": \"標緻\",\n\"栈\": \"棧\",\n\"栉\": \"櫛\",\n\"栉发工\": \"櫛髮工\",\n\"栊\": \"櫳\",\n\"栋\": \"棟\",\n\"栋梁\": \"棟樑\",\n\"栌\": \"櫨\",\n\"栎\": \"櫟\",\n\"栏\": \"欄\",\n\"树\": \"樹\",\n\"树干\": \"樹幹\",\n\"树林里\": \"樹林裡\",\n\"树梁\": \"樹樑\",\n\"栖\": \"棲\",\n\"栖栖皇皇\": \"栖栖皇皇\",\n\"栗冽\": \"慄冽\",\n\"栗栖溪\": \"栗栖溪\",\n\"栗栗\": \"慄慄\",\n\"校准\": \"校準\",\n\"校舍\": \"校舍\",\n\"样\": \"樣\",\n\"样范\": \"樣範\",\n\"核准\": \"核准\",\n\"格斗\": \"格鬥\",\n\"格范\": \"格範\",\n\"格里历\": \"格里曆\",\n\"格里高利历\": \"格里高利曆\",\n\"栾\": \"欒\",\n\"桂圆干\": \"桂圓乾\",\n\"框里\": \"框裡\",\n\"桌几\": \"桌几\",\n\"桌历\": \"桌曆\",\n\"桌历史\": \"桌歷史\",\n\"桌游\": \"桌遊\",\n\"桑干\": \"桑乾\",\n\"桠\": \"椏\",\n\"桡\": \"橈\",\n\"桢\": \"楨\",\n\"桢干\": \"楨幹\",\n\"档\": \"檔\",\n\"桤\": \"榿\",\n\"桥\": \"橋\",\n\"桥梁\": \"橋樑\",\n\"桦\": \"樺\",\n\"桧\": \"檜\",\n\"桨\": \"槳\",\n\"桩\": \"樁\",\n\"桪\": \"樳\",\n\"梁上\": \"樑上\",\n\"梁上君子\": \"梁上君子\",\n\"梁启超\": \"梁啓超\",\n\"梁柱\": \"樑柱\",\n\"梦\": \"夢\",\n\"梦游\": \"夢遊\",\n\"梦里\": \"夢裡\",\n\"梨干\": \"梨乾\",\n\"梯冲\": \"梯衝\",\n\"械斗\": \"械鬥\",\n\"械系\": \"械繫\",\n\"梼\": \"檮\",\n\"梾\": \"棶\",\n\"梿\": \"槤\",\n\"检\": \"檢\",\n\"棁\": \"梲\",\n\"棂\": \"欞\",\n\"棉制\": \"棉製\",\n\"棉里\": \"棉裡\",\n\"棒子面\": \"棒子麵\",\n\"棫朴\": \"棫樸\",\n\"森林里\": \"森林裡\",\n\"棱体\": \"稜體\",\n\"棱台\": \"稜台\",\n\"棱子\": \"稜子\",\n\"棱层\": \"稜層\",\n\"棱柱\": \"稜柱\",\n\"棱棱\": \"稜稜\",\n\"棱登\": \"稜登\",\n\"棱等登\": \"稜等登\",\n\"棱线\": \"稜線\",\n\"棱缝\": \"稜縫\",\n\"棱角\": \"稜角\",\n\"棱锥\": \"稜錐\",\n\"棱镜\": \"稜鏡\",\n\"棺材里\": \"棺材裡\",\n\"椁\": \"槨\",\n\"植发\": \"植髮\",\n\"椒面\": \"椒麵\",\n\"椝\": \"槼\",\n\"椟\": \"櫝\",\n\"椠\": \"槧\",\n\"椢\": \"槶\",\n\"椤\": \"欏\",\n\"椫\": \"樿\",\n\"椭\": \"橢\",\n\"椮\": \"槮\",\n\"椰枣干\": \"椰棗乾\",\n\"楊雅筑\": \"楊雅筑\",\n\"楼\": \"樓\",\n\"榄\": \"欖\",\n\"榅\": \"榲\",\n\"榇\": \"櫬\",\n\"榈\": \"櫚\",\n\"榉\": \"櫸\",\n\"榝\": \"樧\",\n\"榨干\": \"榨乾\",\n\"槚\": \"檟\",\n\"槛\": \"檻\",\n\"槟\": \"檳\",\n\"槠\": \"櫧\",\n\"樗里子\": \"樗里子\",\n\"模制\": \"模製\",\n\"模棱\": \"模稜\",\n\"模范\": \"模範\",\n\"模范七棒\": \"模范七棒\",\n\"模范三军\": \"模范三軍\",\n\"模范三軍\": \"模范三軍\",\n\"模范棒棒堂\": \"模范棒棒堂\",\n\"横\": \"橫\",\n\"横冲\": \"橫衝\",\n\"横峰县\": \"橫峯縣\",\n\"横征暴敛\": \"橫徵暴斂\",\n\"横梁\": \"橫樑\",\n\"樯\": \"檣\",\n\"樱\": \"櫻\",\n\"樵采\": \"樵採\",\n\"機械系\": \"機械系\",\n\"橥\": \"櫫\",\n\"橱\": \"櫥\",\n\"橹\": \"櫓\",\n\"橼\": \"櫞\",\n\"檩\": \"檁\",\n\"欢\": \"歡\",\n\"欤\": \"歟\",\n\"欧\": \"歐\",\n\"欧游\": \"歐遊\",\n\"欲令智昏\": \"慾令智昏\",\n\"欲壑难填\": \"慾壑難填\",\n\"欲念\": \"慾念\",\n\"欲海\": \"慾海\",\n\"欲海难填\": \"欲海難填\",\n\"欲火\": \"慾火\",\n\"欲障\": \"慾障\",\n\"欺蒙\": \"欺矇\",\n\"歌后\": \"歌后\",\n\"歌钟\": \"歌鐘\",\n\"正官庄\": \"正官庄\",\n\"正文里\": \"正文裡\",\n\"正杰\": \"正杰\",\n\"武丑\": \"武丑\",\n\"武后\": \"武后\",\n\"武斗\": \"武鬥\",\n\"歲聿云暮\": \"歲聿云暮\",\n\"歹斗\": \"歹鬥\",\n\"死里求生\": \"死裡求生\",\n\"死里逃生\": \"死裡逃生\",\n\"歼\": \"殲\",\n\"殁\": \"歿\",\n\"殇\": \"殤\",\n\"残\": \"殘\",\n\"残余\": \"殘餘\",\n\"残肴\": \"殘肴\",\n\"殒\": \"殞\",\n\"殓\": \"殮\",\n\"殖谷\": \"殖穀\",\n\"殚\": \"殫\",\n\"殡\": \"殯\",\n\"殴\": \"毆\",\n\"殴斗\": \"毆鬥\",\n\"殷师牛斗\": \"殷師牛鬥\",\n\"殷鉴\": \"殷鑑\",\n\"殿里\": \"殿裡\",\n\"殿钟自鸣\": \"殿鐘自鳴\",\n\"毁\": \"毀\",\n\"毁钟为铎\": \"毀鐘為鐸\",\n\"毂\": \"轂\",\n\"母丑\": \"母醜\",\n\"母后\": \"母后\",\n\"母范\": \"母範\",\n\"每只\": \"每隻\",\n\"每每只\": \"每每只\",\n\"毕\": \"畢\",\n\"毗婆尸佛\": \"毗婆尸佛\",\n\"毙\": \"斃\",\n\"毛发\": \"毛髮\",\n\"毛坏\": \"毛坏\",\n\"毛姜\": \"毛薑\",\n\"毡\": \"氈\",\n\"毫厘\": \"毫釐\",\n\"毫发\": \"毫髮\",\n\"毵\": \"毿\",\n\"氇\": \"氌\",\n\"气\": \"氣\",\n\"气冲斗牛\": \"氣沖斗牛\",\n\"气郁\": \"氣鬱\",\n\"氢\": \"氫\",\n\"氤郁\": \"氤鬱\",\n\"氩\": \"氬\",\n\"氲\": \"氳\",\n\"水准\": \"水準\",\n\"水并流\": \"水併流\",\n\"水来汤里去\": \"水來湯裡去\",\n\"水表\": \"水錶\",\n\"水表示\": \"水表示\",\n\"水表面\": \"水表面\",\n\"水里\": \"水裡\",\n\"水里商工\": \"水里商工\",\n\"水里溪\": \"水里溪\",\n\"水里濁水溪\": \"水里濁水溪\",\n\"水里鄉\": \"水里鄉\",\n\"水里高級商工\": \"水里高級商工\",\n\"水里鳳林\": \"水里鳳林\",\n\"永历\": \"永曆\",\n\"永历史\": \"永歷史\",\n\"永志不忘\": \"永誌不忘\",\n\"求知欲\": \"求知慾\",\n\"求签\": \"求籤\",\n\"汇\": \"匯\",\n\"汇丰\": \"滙豐\",\n\"汇刊\": \"彙刊\",\n\"汇算\": \"彙算\",\n\"汇纂\": \"彙纂\",\n\"汇辑\": \"彙輯\",\n\"汉\": \"漢\",\n\"汉弥登钟\": \"漢彌登鐘\",\n\"江并流\": \"江併流\",\n\"池里\": \"池裡\",\n\"污蔑\": \"污衊\",\n\"汤\": \"湯\",\n\"汤下面\": \"湯下麵\",\n\"汤卤\": \"汤滷\",\n\"汤团\": \"湯糰\",\n\"汤滷\": \"汤滷\",\n\"汤面\": \"湯麵\",\n\"汹\": \"洶\",\n\"汹涌\": \"洶湧\",\n\"沈丹客运\": \"瀋丹客運\",\n\"沈丹线\": \"瀋丹線\",\n\"沈丹铁路\": \"瀋丹鐵路\",\n\"沈丹高\": \"瀋丹高\",\n\"沈北\": \"瀋北\",\n\"沈吉\": \"瀋吉\",\n\"沈大线\": \"瀋大線\",\n\"沈大铁路\": \"瀋大鐵路\",\n\"沈大高速\": \"瀋大高速\",\n\"沈山线\": \"瀋山線\",\n\"沈山铁路\": \"瀋山鐵路\",\n\"沈州\": \"瀋州\",\n\"沈抚\": \"瀋撫\",\n\"沈水\": \"瀋水\",\n\"沈河\": \"瀋河\",\n\"沈海铁路\": \"瀋海鐵路\",\n\"沈海高速\": \"瀋海高速\",\n\"沈淀\": \"沈澱\",\n\"沈郁\": \"沈鬱\",\n\"沈阳\": \"瀋陽\",\n\"沉淀\": \"沉澱\",\n\"沉郁\": \"沉鬱\",\n\"沙琅\": \"沙瑯\",\n\"沙羡\": \"沙羡\",\n\"沙里淘金\": \"沙裡淘金\",\n\"沟\": \"溝\",\n\"沟大曲\": \"溝大麯\",\n\"沟谷\": \"溝谷\",\n\"没\": \"沒\",\n\"没事干\": \"沒事幹\",\n\"没准\": \"沒準\",\n\"没干\": \"沒幹\",\n\"没干没净\": \"沒乾沒淨\",\n\"没折至\": \"沒摺至\",\n\"没样范\": \"沒樣範\",\n\"沣\": \"灃\",\n\"沤\": \"漚\",\n\"沤郁\": \"漚鬱\",\n\"沥\": \"瀝\",\n\"沥干\": \"瀝乾\",\n\"沦\": \"淪\",\n\"沧\": \"滄\",\n\"沨\": \"渢\",\n\"沩\": \"潙\",\n\"沪\": \"滬\",\n\"河岳\": \"河嶽\",\n\"河里\": \"河裡\",\n\"油斗\": \"油鬥\",\n\"油泼面\": \"油潑麵\",\n\"油面\": \"油麵\",\n\"治愈\": \"治癒\",\n\"沾化\": \"霑化\",\n\"沾益\": \"霑益\",\n\"沿溯\": \"沿泝\",\n\"泄欲\": \"洩慾\",\n\"法自制\": \"法自制\",\n\"法里，\": \"法裡，\",\n\"泛游\": \"泛遊\",\n\"泞\": \"濘\",\n\"泡制\": \"泡製\",\n\"泡面\": \"泡麵\",\n\"波发藻\": \"波髮藻\",\n\"波棱菜\": \"波稜菜\",\n\"注上\": \"註上\",\n\"注云\": \"注云\",\n\"注册\": \"註冊\",\n\"注失\": \"註失\",\n\"注定\": \"註定\",\n\"注明\": \"註明\",\n\"注标\": \"註標\",\n\"注生娘娘\": \"註生娘娘\",\n\"注疏\": \"註疏\",\n\"注脚\": \"註腳\",\n\"注解\": \"註解\",\n\"注记\": \"註記\",\n\"注译\": \"註譯\",\n\"注释\": \"注釋\",\n\"注里\": \"註裡\",\n\"注销\": \"註銷\",\n\"注：\": \"註：\",\n\"泪\": \"淚\",\n\"泪如泉涌\": \"淚如泉湧\",\n\"泪干\": \"淚乾\",\n\"泰山梁木\": \"泰山梁木\",\n\"泱郁\": \"泱鬱\",\n\"泳气钟\": \"泳氣鐘\",\n\"泶\": \"澩\",\n\"泷\": \"瀧\",\n\"泸\": \"瀘\",\n\"泸州大曲\": \"瀘州大麯\",\n\"泺\": \"濼\",\n\"泻\": \"瀉\",\n\"泼\": \"潑\",\n\"泽\": \"澤\",\n\"泾\": \"涇\",\n\"洁\": \"潔\",\n\"洋河大曲\": \"洋河大麯\",\n\"洒\": \"灑\",\n\"洒家\": \"洒家\",\n\"洒淅\": \"洒淅\",\n\"洒濯\": \"洒濯\",\n\"洒然\": \"洒然\",\n\"洗发\": \"洗髮\",\n\"洗炼\": \"洗鍊\",\n\"洗练\": \"洗鍊\",\n\"洛钟东应\": \"洛鐘東應\",\n\"洞里\": \"洞裡\",\n\"洞里萨\": \"洞里薩\",\n\"洞里薩\": \"洞里薩\",\n\"洪范\": \"洪範\",\n\"洪谷子\": \"洪谷子\",\n\"洪适\": \"洪适\",\n\"洪钟\": \"洪鐘\",\n\"洼\": \"窪\",\n\"流征\": \"流徵\",\n\"流荡\": \"流蕩\",\n\"流风余俗\": \"流風餘俗\",\n\"流风余韵\": \"流風餘韻\",\n\"浃\": \"浹\",\n\"浅\": \"淺\",\n\"浅淀\": \"淺澱\",\n\"浆\": \"漿\",\n\"浇\": \"澆\",\n\"浈\": \"湞\",\n\"浉\": \"溮\",\n\"浊\": \"濁\",\n\"测\": \"測\",\n\"测不准\": \"測不準\",\n\"浍\": \"澮\",\n\"济\": \"濟\",\n\"浏\": \"瀏\",\n\"浐\": \"滻\",\n\"浑\": \"渾\",\n\"浑个\": \"渾箇\",\n\"浑朴\": \"渾樸\",\n\"浒\": \"滸\",\n\"浓\": \"濃\",\n\"浓发\": \"濃髮\",\n\"浔\": \"潯\",\n\"浕\": \"濜\",\n\"浚县\": \"濬縣\",\n\"浚州\": \"濬州\",\n\"浩浩荡荡\": \"浩浩蕩蕩\",\n\"浩荡\": \"浩蕩\",\n\"浪游\": \"浪遊\",\n\"浪荡\": \"浪蕩\",\n\"浮夸\": \"浮誇\",\n\"浮松\": \"浮鬆\",\n\"浮荡\": \"浮蕩\",\n\"海干\": \"海乾\",\n\"海淀山后\": \"海淀山後\",\n\"海淀山後\": \"海淀山後\",\n\"浸卤\": \"浸滷\",\n\"涂\": \"塗\",\n\"涂善妮\": \"涂善妮\",\n\"涂坤\": \"涂坤\",\n\"涂壮勋\": \"涂壯勳\",\n\"涂壯勳\": \"涂壯勳\",\n\"涂天相\": \"涂天相\",\n\"涂姓\": \"涂姓\",\n\"涂尔干\": \"涂爾幹\",\n\"涂序瑄\": \"涂序瑄\",\n\"涂敏恆\": \"涂敏恆\",\n\"涂敏恒\": \"涂敏恆\",\n\"涂泽民\": \"涂澤民\",\n\"涂澤民\": \"涂澤民\",\n\"涂爾幹\": \"涂爾幹\",\n\"涂紹煃\": \"涂紹煃\",\n\"涂绍煃\": \"涂紹煃\",\n\"涂羽卿\": \"涂羽卿\",\n\"涂謹申\": \"涂謹申\",\n\"涂谨申\": \"涂謹申\",\n\"涂逢年\": \"涂逢年\",\n\"涂醒哲\": \"涂醒哲\",\n\"涂長望\": \"涂長望\",\n\"涂长望\": \"涂長望\",\n\"涂鴻欽\": \"涂鴻欽\",\n\"涂鸿钦\": \"涂鴻欽\",\n\"涌上\": \"湧上\",\n\"涌入\": \"湧入\",\n\"涌出\": \"湧出\",\n\"涌向\": \"湧向\",\n\"涌来\": \"湧來\",\n\"涌水\": \"湧水\",\n\"涌水塘\": \"涌水塘\",\n\"涌泉\": \"湧泉\",\n\"涌现\": \"湧現\",\n\"涌起\": \"湧起\",\n\"涌进\": \"湧進\",\n\"涚\": \"涗\",\n\"涛\": \"濤\",\n\"涝\": \"澇\",\n\"涞\": \"淶\",\n\"涟\": \"漣\",\n\"涠\": \"潿\",\n\"涡\": \"渦\",\n\"涢\": \"溳\",\n\"涣\": \"渙\",\n\"涤\": \"滌\",\n\"润\": \"潤\",\n\"涧\": \"澗\",\n\"涨\": \"漲\",\n\"涩\": \"澀\",\n\"涩谷区\": \"澀谷區\",\n\"涳蒙\": \"涳濛\",\n\"涸干\": \"涸乾\",\n\"淀乃不耕之地\": \"澱乃不耕之地\",\n\"淀北片\": \"澱北片\",\n\"淀山\": \"澱山\",\n\"淀淀\": \"澱澱\",\n\"淀积\": \"澱積\",\n\"淀粉\": \"澱粉\",\n\"淀解物\": \"澱解物\",\n\"淀谓之滓\": \"澱謂之滓\",\n\"淋余土\": \"淋餘土\",\n\"淑范\": \"淑範\",\n\"淡蒙蒙\": \"淡濛濛\",\n\"淫欲\": \"淫慾\",\n\"淫荡\": \"淫蕩\",\n\"淬炼\": \"淬鍊\",\n\"深山何处钟\": \"深山何處鐘\",\n\"深山里\": \"深山裡\",\n\"淳于\": \"淳于\",\n\"淳朴\": \"淳樸\",\n\"清心寡欲\": \"清心寡欲\",\n\"渊\": \"淵\",\n\"渊淳岳峙\": \"淵淳嶽峙\",\n\"渊里\": \"淵裡\",\n\"渌\": \"淥\",\n\"渍\": \"漬\",\n\"渎\": \"瀆\",\n\"渐\": \"漸\",\n\"渑\": \"澠\",\n\"渔\": \"漁\",\n\"渖\": \"瀋\",\n\"渗\": \"滲\",\n\"渗漓\": \"滲灕\",\n\"渠冲\": \"渠衝\",\n\"温\": \"溫\",\n\"温岚\": \"温嵐\",\n\"温嵐\": \"温嵐\",\n\"温洛克期\": \"溫洛克期\",\n\"港制\": \"港製\",\n\"游丝\": \"遊絲\",\n\"游乐\": \"遊樂\",\n\"游了\": \"遊了\",\n\"游人\": \"遊人\",\n\"游仙\": \"遊仙\",\n\"游伴\": \"遊伴\",\n\"游侠\": \"遊俠\",\n\"游兴\": \"遊興\",\n\"游冶\": \"遊冶\",\n\"游刃\": \"遊刃\",\n\"游动\": \"遊動\",\n\"游历\": \"遊歷\",\n\"游园\": \"遊園\",\n\"游子\": \"遊子\",\n\"游学\": \"遊學\",\n\"游客\": \"遊客\",\n\"游宦\": \"遊宦\",\n\"游山玩水\": \"遊山玩水\",\n\"游廊\": \"遊廊\",\n\"游必有方\": \"遊必有方\",\n\"游憩\": \"遊憩\",\n\"游戏\": \"遊戲\",\n\"游戏里\": \"遊戲裡\",\n\"游手好闲\": \"遊手好閒\",\n\"游方\": \"遊方\",\n\"游星\": \"遊星\",\n\"游春\": \"遊春\",\n\"游标卡尺\": \"遊標卡尺\",\n\"游民\": \"遊民\",\n\"游河\": \"遊河\",\n\"游牧\": \"遊牧\",\n\"游猎\": \"遊獵\",\n\"游玩\": \"遊玩\",\n\"游目骋怀\": \"遊目騁懷\",\n\"游离\": \"游離\",\n\"游程\": \"遊程\",\n\"游美学务\": \"遊美學務\",\n\"游船\": \"遊船\",\n\"游艇\": \"遊艇\",\n\"游艺\": \"遊藝\",\n\"游荡\": \"遊蕩\",\n\"游行\": \"遊行\",\n\"游街\": \"遊街\",\n\"游览\": \"遊覽\",\n\"游记\": \"遊記\",\n\"游说\": \"遊說\",\n\"游资\": \"遊資\",\n\"游走\": \"遊走\",\n\"游踪\": \"遊蹤\",\n\"游轮\": \"遊輪\",\n\"游逛\": \"遊逛\",\n\"游错\": \"遊錯\",\n\"游骑兵\": \"遊騎兵\",\n\"游魂\": \"遊魂\",\n\"湖里\": \"湖裡\",\n\"湘累\": \"湘纍\",\n\"湮郁\": \"湮鬱\",\n\"湾\": \"灣\",\n\"湿\": \"溼\",\n\"溁\": \"濚\",\n\"溃\": \"潰\",\n\"溅\": \"濺\",\n\"溆\": \"漵\",\n\"溇\": \"漊\",\n\"溟蒙\": \"溟濛\",\n\"溲面\": \"溲麵\",\n\"滃郁\": \"滃鬱\",\n\"滑借\": \"滑藉\",\n\"滗\": \"潷\",\n\"滚\": \"滾\",\n\"滞\": \"滯\",\n\"滟\": \"灩\",\n\"滠\": \"灄\",\n\"满\": \"滿\",\n\"满头洋发\": \"滿頭洋髮\",\n\"满满当当\": \"滿滿當當\",\n\"滢\": \"瀅\",\n\"滤\": \"濾\",\n\"滥\": \"濫\",\n\"滦\": \"灤\",\n\"滨\": \"濱\",\n\"滨田里佳子\": \"濱田里佳子\",\n\"滩\": \"灘\",\n\"滩席\": \"灘蓆\",\n\"滩涂\": \"灘涂\",\n\"滪\": \"澦\",\n\"漂荡\": \"漂蕩\",\n\"漓水\": \"灕水\",\n\"漓江\": \"灕江\",\n\"漓湘\": \"灕湘\",\n\"漓然\": \"灕然\",\n\"漕挽\": \"漕輓\",\n\"漠里\": \"漠裡\",\n\"漤\": \"灠\",\n\"漫卷\": \"漫捲\",\n\"漫游\": \"漫遊\",\n\"潆\": \"瀠\",\n\"潇\": \"瀟\",\n\"潋\": \"瀲\",\n\"潍\": \"濰\",\n\"潜\": \"潛\",\n\"潜意识里\": \"潛意識裡\",\n\"潜水表\": \"潛水錶\",\n\"潜水钟\": \"潛水鐘\",\n\"潜水钟表\": \"潛水鐘錶\",\n\"潭里\": \"潭裡\",\n\"潮涌\": \"潮湧\",\n\"潴\": \"瀦\",\n\"澄江县\": \"澂江縣\",\n\"澄澹精致\": \"澄澹精致\",\n\"澒蒙\": \"澒濛\",\n\"澛\": \"瀂\",\n\"澜\": \"瀾\",\n\"澹台\": \"澹臺\",\n\"澹荡\": \"澹蕩\",\n\"激斗\": \"激鬥\",\n\"濑\": \"瀨\",\n\"濒\": \"瀕\",\n\"灏\": \"灝\",\n\"灘涂\": \"灘涂\",\n\"火山里\": \"火山裡\",\n\"火并\": \"火併\",\n\"火并非\": \"火並非\",\n\"火折子\": \"火摺子\",\n\"火签\": \"火籤\",\n\"灭\": \"滅\",\n\"灯\": \"燈\",\n\"灰蒙\": \"灰濛\",\n\"灰蒙蒙\": \"灰濛濛\",\n\"灵\": \"靈\",\n\"灵昆\": \"靈崑\",\n\"灶\": \"竈\",\n\"灾\": \"災\",\n\"灿\": \"燦\",\n\"炀\": \"煬\",\n\"炆面\": \"炆麵\",\n\"炉\": \"爐\",\n\"炒面\": \"炒麵\",\n\"炖\": \"燉\",\n\"炖制\": \"燉製\",\n\"炜\": \"煒\",\n\"炝\": \"熗\",\n\"炮制\": \"炮製\",\n\"炸酱面\": \"炸醬麵\",\n\"点\": \"點\",\n\"点个赞\": \"點個讚\",\n\"点半钟\": \"點半鐘\",\n\"点多钟\": \"點多鐘\",\n\"点札\": \"點劄\",\n\"点赞\": \"點讚\",\n\"点里\": \"點裡\",\n\"点里程\": \"點里程\",\n\"点钟\": \"點鐘\",\n\"炼\": \"煉\",\n\"炼冶\": \"鍊冶\",\n\"炼制\": \"煉製\",\n\"炼句\": \"鍊句\",\n\"炼字\": \"鍊字\",\n\"炼师\": \"鍊師\",\n\"炼度\": \"鍊度\",\n\"炼形\": \"鍊形\",\n\"炼气\": \"鍊氣\",\n\"炼汞\": \"鍊汞\",\n\"炼石\": \"鍊石\",\n\"炼贫\": \"鍊貧\",\n\"炼金术\": \"鍊金術\",\n\"炽\": \"熾\",\n\"烁\": \"爍\",\n\"烂\": \"爛\",\n\"烃\": \"烴\",\n\"烘制\": \"烘製\",\n\"烘干\": \"烘乾\",\n\"烛\": \"燭\",\n\"烟\": \"煙\",\n\"烟卷\": \"煙捲\",\n\"烟台\": \"煙臺\",\n\"烤卤\": \"烤滷\",\n\"烤干\": \"烤乾\",\n\"烦\": \"煩\",\n\"烧\": \"燒\",\n\"烧干\": \"燒乾\",\n\"烨\": \"燁\",\n\"烩\": \"燴\",\n\"烩面\": \"燴麵\",\n\"烫\": \"燙\",\n\"烫一个发\": \"燙一個髮\",\n\"烫一次发\": \"燙一次髮\",\n\"烫个发\": \"燙個髮\",\n\"烫发\": \"燙髮\",\n\"烫完发\": \"燙完髮\",\n\"烫次发\": \"燙次髮\",\n\"烫面\": \"燙麵\",\n\"烬\": \"燼\",\n\"烬余\": \"燼餘\",\n\"热\": \"熱\",\n\"烹制\": \"烹製\",\n\"焕\": \"煥\",\n\"焖\": \"燜\",\n\"焘\": \"燾\",\n\"焙干\": \"焙乾\",\n\"煎面\": \"煎麵\",\n\"照入签\": \"照入籤\",\n\"照相干片\": \"照相乾片\",\n\"煨干\": \"煨乾\",\n\"煮制\": \"煮製\",\n\"煮面\": \"煮麵\",\n\"煴\": \"熅\",\n\"熊杰\": \"熊杰\",\n\"熏习\": \"薰習\",\n\"熏心\": \"薰心\",\n\"熏染\": \"薰染\",\n\"熏沐\": \"薰沐\",\n\"熏陶\": \"薰陶\",\n\"熏风\": \"薰風\",\n\"熏香\": \"薰香\",\n\"熬制\": \"熬製\",\n\"燎发\": \"燎髮\",\n\"燕几\": \"燕几\",\n\"燕游\": \"燕遊\",\n\"爆发\": \"爆發\",\n\"爰定祥历\": \"爰定祥厤\",\n\"爱\": \"愛\",\n\"爱困\": \"愛睏\",\n\"爱河里花子\": \"愛河里花子\",\n\"爷\": \"爺\",\n\"爽荡\": \"爽蕩\",\n\"片言只语\": \"片言隻語\",\n\"片里\": \"片裡\",\n\"版图里\": \"版圖裡\",\n\"版本里\": \"版本裡\",\n\"牍\": \"牘\",\n\"牙签\": \"牙籤\",\n\"牛只\": \"牛隻\",\n\"牢里\": \"牢裡\",\n\"牦\": \"犛\",\n\"物欲\": \"物慾\",\n\"牵\": \"牽\",\n\"牵一发\": \"牽一髮\",\n\"牵系\": \"牽繫\",\n\"特别致\": \"特别致\",\n\"特制\": \"特製\",\n\"特制住\": \"特制住\",\n\"特制定\": \"特制定\",\n\"特制止\": \"特制止\",\n\"特制订\": \"特制訂\",\n\"特征\": \"特徵\",\n\"牺\": \"犧\",\n\"犊\": \"犢\",\n\"犖确\": \"犖确\",\n\"状\": \"狀\",\n\"犷\": \"獷\",\n\"犸\": \"獁\",\n\"犹\": \"猶\",\n\"狂并潮\": \"狂併潮\",\n\"狄志杰\": \"狄志杰\",\n\"狈\": \"狽\",\n\"狐借虎威\": \"狐藉虎威\",\n\"狝\": \"獮\",\n\"狞\": \"獰\",\n\"独\": \"獨\",\n\"独裁制\": \"獨裁制\",\n\"独辟蹊径\": \"獨闢蹊徑\",\n\"狭\": \"狹\",\n\"狮\": \"獅\",\n\"狯\": \"獪\",\n\"狰\": \"猙\",\n\"狱\": \"獄\",\n\"狱里\": \"獄裡\",\n\"狲\": \"猻\",\n\"猃\": \"獫\",\n\"猎\": \"獵\",\n\"猕\": \"獼\",\n\"猛冲\": \"猛衝\",\n\"猜三划五\": \"猜三划五\",\n\"猡\": \"玀\",\n\"猪\": \"豬\",\n\"猫\": \"貓\",\n\"猬\": \"蝟\",\n\"献\": \"獻\",\n\"献丑\": \"獻醜\",\n\"獨裁制\": \"獨裁制\",\n\"獭\": \"獺\",\n\"玉历\": \"玉曆\",\n\"玉历史\": \"玉歷史\",\n\"玉米面\": \"玉米面\",\n\"王余鱼\": \"王餘魚\",\n\"王侯后\": \"王侯后\",\n\"王后\": \"王后\",\n\"王添灯\": \"王添灯\",\n\"王田里\": \"王田里\",\n\"王鉴\": \"王鑑\",\n\"玑\": \"璣\",\n\"玙\": \"璵\",\n\"玚\": \"瑒\",\n\"玛\": \"瑪\",\n\"玮\": \"瑋\",\n\"环\": \"環\",\n\"环游\": \"環遊\",\n\"现\": \"現\",\n\"玱\": \"瑲\",\n\"玺\": \"璽\",\n\"珍肴异馔\": \"珍肴異饌\",\n\"珐\": \"琺\",\n\"珐琅\": \"琺瑯\",\n\"珑\": \"瓏\",\n\"班里\": \"班裡\",\n\"珰\": \"璫\",\n\"珲\": \"琿\",\n\"球台\": \"球檯\",\n\"理一个发\": \"理一個髮\",\n\"理一次发\": \"理一次髮\",\n\"理个发\": \"理個髮\",\n\"理发\": \"理髮\",\n\"理发动\": \"理發動\",\n\"理发展\": \"理發展\",\n\"理发放\": \"理發放\",\n\"理发现\": \"理發現\",\n\"理发生\": \"理發生\",\n\"理发表\": \"理發表\",\n\"理完发\": \"理完髮\",\n\"理次发\": \"理次髮\",\n\"琎\": \"璡\",\n\"琏\": \"璉\",\n\"琐\": \"瑣\",\n\"琴钟\": \"琴鐘\",\n\"琼\": \"瓊\",\n\"瑞城里\": \"瑞城里\",\n\"瑞征\": \"瑞徵\",\n\"瑶\": \"瑤\",\n\"瑶签\": \"瑤籤\",\n\"瑷\": \"璦\",\n\"瑸\": \"璸\",\n\"璎\": \"瓔\",\n\"瓒\": \"瓚\",\n\"瓮\": \"甕\",\n\"瓮安\": \"甕安\",\n\"瓯\": \"甌\",\n\"瓷制\": \"瓷製\",\n\"甄后\": \"甄后\",\n\"甜、咸\": \"甜、鹹\",\n\"甜咸\": \"甜鹹\",\n\"甜水面\": \"甜水麵\",\n\"甜面酱\": \"甜麵醬\",\n\"生力面\": \"生力麵\",\n\"生华发\": \"生華髮\",\n\"生发剂\": \"生髮劑\",\n\"生发水\": \"生髮水\",\n\"生发油\": \"生髮油\",\n\"生发液\": \"生髮液\",\n\"生发药\": \"生髮藥\",\n\"生姜\": \"生薑\",\n\"生物钟\": \"生物鐘\",\n\"用法里\": \"用法裡\",\n\"甩发\": \"甩髮\",\n\"田子里\": \"田子里\",\n\"田庄英雄\": \"田庄英雄\",\n\"田里\": \"田裡\",\n\"田里穗\": \"田里穗\",\n\"由余\": \"由余\",\n\"甲后路\": \"甲后路\",\n\"甲胄\": \"甲冑\",\n\"电\": \"電\",\n\"电冲\": \"電衝\",\n\"电子制表\": \"電子製表\",\n\"电子表格\": \"電子表格\",\n\"电子钟\": \"電子鐘\",\n\"电子钟表\": \"電子鐘錶\",\n\"电影后\": \"電影後\",\n\"电影里\": \"電影裡\",\n\"电梯里\": \"電梯裡\",\n\"电波钟\": \"電波鐘\",\n\"电码表\": \"電碼表\",\n\"电表\": \"電錶\",\n\"电视台风\": \"電視台風\",\n\"电视里\": \"電視裡\",\n\"电钟\": \"電鐘\",\n\"男仆\": \"男僕\",\n\"画\": \"畫\",\n\"画里\": \"畫裡\",\n\"畅\": \"暢\",\n\"畅游\": \"暢遊\",\n\"界里\": \"界裡\",\n\"留发\": \"留髮\",\n\"留发展\": \"留發展\",\n\"留发生\": \"留發生\",\n\"留发行\": \"留發行\",\n\"留长发\": \"留長髮\",\n\"畴\": \"疇\",\n\"疏松\": \"疏鬆\",\n\"疑凶\": \"疑兇\",\n\"疖\": \"癤\",\n\"疗\": \"療\",\n\"疟\": \"瘧\",\n\"疠\": \"癘\",\n\"疡\": \"瘍\",\n\"疬\": \"癧\",\n\"疭\": \"瘲\",\n\"疮\": \"瘡\",\n\"疯\": \"瘋\",\n\"疱\": \"皰\",\n\"疲困\": \"疲睏\",\n\"疴\": \"痾\",\n\"病余\": \"病餘\",\n\"病征\": \"病徵\",\n\"病愈\": \"病癒\",\n\"症结\": \"癥結\",\n\"痈\": \"癰\",\n\"痉\": \"痙\",\n\"痊愈\": \"痊癒\",\n\"痒\": \"癢\",\n\"痒疹\": \"痒疹\",\n\"痒痒\": \"痒痒\",\n\"痖\": \"瘂\",\n\"痨\": \"癆\",\n\"痪\": \"瘓\",\n\"痫\": \"癇\",\n\"痳\": \"痲\",\n\"痳木\": \"痳木\",\n\"痳疯\": \"痳瘋\",\n\"痳疹\": \"痳疹\",\n\"痳病\": \"痳病\",\n\"痳痹\": \"痳痺\",\n\"痴\": \"癡\",\n\"瘅\": \"癉\",\n\"瘆\": \"瘮\",\n\"瘗\": \"瘞\",\n\"瘘\": \"瘻\",\n\"瘪\": \"癟\",\n\"瘫\": \"癱\",\n\"瘾\": \"癮\",\n\"瘿\": \"癭\",\n\"癞\": \"癩\",\n\"癣\": \"癬\",\n\"癫\": \"癲\",\n\"癸丑\": \"癸丑\",\n\"白净面皮\": \"白淨面皮\",\n\"白发\": \"白髮\",\n\"白发其事\": \"白發其事\",\n\"白干儿\": \"白乾兒\",\n\"白术\": \"白朮\",\n\"白朴\": \"白樸\",\n\"白皮松\": \"白皮松\",\n\"白粉面\": \"白粉麵\",\n\"白里透红\": \"白裡透紅\",\n\"白霉\": \"白黴\",\n\"白面包青天\": \"白面包青天\",\n\"百个\": \"百個\",\n\"百余\": \"百餘\",\n\"百只\": \"百隻\",\n\"百只可\": \"百只可\",\n\"百只够\": \"百只夠\",\n\"百只夠\": \"百只夠\",\n\"百只怕\": \"百只怕\",\n\"百只足够\": \"百只足夠\",\n\"百只足夠\": \"百只足夠\",\n\"百周后\": \"百周後\",\n\"百天后\": \"百天後\",\n\"百子里\": \"百子里\",\n\"百扎\": \"百紮\",\n\"百拙千丑\": \"百拙千醜\",\n\"百炼\": \"百鍊\",\n\"百科里\": \"百科裡\",\n\"百花历\": \"百花曆\",\n\"百花历史\": \"百花歷史\",\n\"百谷\": \"百穀\",\n\"的个中\": \"的箇中\",\n\"的发小\": \"的髮小\",\n\"的回复\": \"的回覆\",\n\"的图里\": \"的圖裡\",\n\"的山里\": \"的山裡\",\n\"的干将\": \"的幹將\",\n\"的钟\": \"的鐘\",\n\"的长发\": \"的長髮\",\n\"皆准\": \"皆準\",\n\"皆可作淀\": \"皆可作澱\",\n\"皇历\": \"皇曆\",\n\"皇历史\": \"皇歷史\",\n\"皇后\": \"皇后\",\n\"皇极历\": \"皇極曆\",\n\"皇极历史\": \"皇極歷史\",\n\"皑\": \"皚\",\n\"皓发\": \"皓髮\",\n\"皮制\": \"皮製\",\n\"皮制服\": \"皮制服\",\n\"皮托管\": \"皮托管\",\n\"皮松\": \"皮鬆\",\n\"皮肤\": \"皮膚\",\n\"皮里春秋\": \"皮裡春秋\",\n\"皮里阳秋\": \"皮裡陽秋\",\n\"皱\": \"皺\",\n\"皱折\": \"皺摺\",\n\"皲\": \"皸\",\n\"盆吊\": \"盆弔\",\n\"盈余\": \"盈餘\",\n\"盏\": \"盞\",\n\"盐\": \"鹽\",\n\"盐余\": \"鹽餘\",\n\"盐卤\": \"鹽滷\",\n\"盐打怎么咸\": \"鹽打怎麼鹹\",\n\"监\": \"監\",\n\"监制\": \"監製\",\n\"盒里\": \"盒裡\",\n\"盖\": \"蓋\",\n\"盗\": \"盜\",\n\"盗采\": \"盜採\",\n\"盗钟\": \"盜鐘\",\n\"盘\": \"盤\",\n\"盘回\": \"盤迴\",\n\"盘里\": \"盤裡\",\n\"盛赞\": \"盛讚\",\n\"盲干\": \"盲幹\",\n\"直冲\": \"直衝\",\n\"相克\": \"相剋\",\n\"相克制\": \"相克制\",\n\"相克服\": \"相克服\",\n\"相冲\": \"相衝\",\n\"相干\": \"相干\",\n\"相并\": \"相併\",\n\"相斗\": \"相鬥\",\n\"盼复\": \"盼覆\",\n\"看准\": \"看準\",\n\"看法里\": \"看法裡\",\n\"看钟\": \"看鐘\",\n\"眍\": \"瞘\",\n\"真丑\": \"真醜\",\n\"真个\": \"真箇\",\n\"真凶\": \"真兇\",\n\"眦\": \"眥\",\n\"眬\": \"矓\",\n\"眼帘\": \"眼帘\",\n\"眼干\": \"眼乾\",\n\"眼眶里\": \"眼眶裡\",\n\"眼睛里\": \"眼睛裡\",\n\"眼里\": \"眼裡\",\n\"睁\": \"睜\",\n\"睐\": \"睞\",\n\"睑\": \"瞼\",\n\"睡游病\": \"睡遊病\",\n\"瞄准\": \"瞄準\",\n\"瞆\": \"瞶\",\n\"瞎蒙\": \"瞎矇\",\n\"瞒\": \"瞞\",\n\"瞩\": \"矚\",\n\"瞩托\": \"矚託\",\n\"瞳蒙\": \"瞳矇\",\n\"矜夸\": \"矜誇\",\n\"矫\": \"矯\",\n\"短几\": \"短几\",\n\"短发\": \"短髮\",\n\"短发生\": \"短發生\",\n\"矮几\": \"矮几\",\n\"石几\": \"石几\",\n\"石杠\": \"石杠\",\n\"石梁\": \"石樑\",\n\"石英钟\": \"石英鐘\",\n\"石英钟表\": \"石英鐘錶\",\n\"石钟\": \"石鐘\",\n\"矶\": \"磯\",\n\"矾\": \"礬\",\n\"矿\": \"礦\",\n\"砀\": \"碭\",\n\"码\": \"碼\",\n\"码码表\": \"碼碼表\",\n\"码表\": \"碼錶\",\n\"码表示\": \"碼表示\",\n\"研制\": \"研製\",\n\"砖\": \"磚\",\n\"砗\": \"硨\",\n\"砚\": \"硯\",\n\"砜\": \"碸\",\n\"砰当\": \"砰噹\",\n\"破鉴\": \"破鑑\",\n\"砺\": \"礪\",\n\"砻\": \"礱\",\n\"砻谷\": \"礱穀\",\n\"砾\": \"礫\",\n\"础\": \"礎\",\n\"硁\": \"硜\",\n\"硕\": \"碩\",\n\"硖\": \"硤\",\n\"硗\": \"磽\",\n\"硗确\": \"磽确\",\n\"硙\": \"磑\",\n\"硚\": \"礄\",\n\"硬干\": \"硬幹\",\n\"确\": \"確\",\n\"确瘠\": \"确瘠\",\n\"确系\": \"確係\",\n\"硵\": \"磠\",\n\"硷\": \"礆\",\n\"碍\": \"礙\",\n\"碑志\": \"碑誌\",\n\"碗里\": \"碗裡\",\n\"碛\": \"磧\",\n\"碜\": \"磣\",\n\"碧河里\": \"碧河里\",\n\"碰钟\": \"碰鐘\",\n\"碱\": \"鹼\",\n\"磁制\": \"磁製\",\n\"磨制\": \"磨製\",\n\"磨炼\": \"磨鍊\",\n\"磨蝎\": \"磨蝎\",\n\"磨面\": \"磨麵\",\n\"磬钟\": \"磬鐘\",\n\"磽确\": \"磽确\",\n\"示范\": \"示範\",\n\"礼\": \"禮\",\n\"礼赞\": \"禮讚\",\n\"社里\": \"社裡\",\n\"祃\": \"禡\",\n\"祎\": \"禕\",\n\"祝发\": \"祝髮\",\n\"祝赞\": \"祝讚\",\n\"神游\": \"神遊\",\n\"神荼郁垒\": \"神荼鬱壘\",\n\"神雕\": \"神鵰\",\n\"神雕像\": \"神雕像\",\n\"祢\": \"禰\",\n\"祭吊\": \"祭弔\",\n\"祯\": \"禎\",\n\"祷\": \"禱\",\n\"祸\": \"禍\",\n\"禀\": \"稟\",\n\"禁欲\": \"禁慾\",\n\"禁欲主义\": \"禁欲主義\",\n\"禄\": \"祿\",\n\"禅\": \"禪\",\n\"离\": \"離\",\n\"禾谷\": \"禾穀\",\n\"秀发\": \"秀髮\",\n\"秀发动\": \"秀發動\",\n\"秀发展\": \"秀發展\",\n\"秀发布\": \"秀發布\",\n\"秀发村\": \"秀發村\",\n\"秀发现\": \"秀發現\",\n\"秀发生\": \"秀發生\",\n\"秀发表\": \"秀發表\",\n\"秀发起\": \"秀發起\",\n\"私下里\": \"私下裡\",\n\"私斗\": \"私鬥\",\n\"私欲\": \"私慾\",\n\"秃\": \"禿\",\n\"秃发\": \"禿髮\",\n\"秃妃之发\": \"禿妃之髮\",\n\"秆\": \"稈\",\n\"秋千\": \"鞦韆\",\n\"秋游\": \"秋遊\",\n\"种\": \"種\",\n\"种丹妮\": \"种丹妮\",\n\"种师中\": \"种師中\",\n\"种师道\": \"种師道\",\n\"种師中\": \"种師中\",\n\"种師道\": \"种師道\",\n\"种放\": \"种放\",\n\"种谷\": \"種穀\",\n\"科尼亚克期\": \"科尼亞克期\",\n\"科斗\": \"科斗\",\n\"科范\": \"科範\",\n\"秒表明\": \"秒表明\",\n\"秒表示\": \"秒表示\",\n\"秒钟\": \"秒鐘\",\n\"秘\": \"祕\",\n\"秤杆\": \"秤桿\",\n\"秦沈客运\": \"秦瀋客運\",\n\"积\": \"積\",\n\"积淀\": \"積澱\",\n\"积谷\": \"積穀\",\n\"积谷防饥\": \"積穀防饑\",\n\"积郁\": \"積鬱\",\n\"称\": \"稱\",\n\"称赞\": \"稱讚\",\n\"秽\": \"穢\",\n\"秾\": \"穠\",\n\"稀松\": \"稀鬆\",\n\"稆\": \"穭\",\n\"程十发\": \"程十髮\",\n\"税\": \"稅\",\n\"稣\": \"穌\",\n\"稳\": \"穩\",\n\"稳健的台风\": \"穩健的台風\",\n\"稳扎\": \"穩紮\",\n\"稻谷\": \"稻穀\",\n\"稽征\": \"稽徵\",\n\"穆棱\": \"穆稜\",\n\"穆罕默德历\": \"穆罕默德曆\",\n\"穆罕默德历史\": \"穆罕默德歷史\",\n\"穑\": \"穡\",\n\"穞\": \"穭\",\n\"穷\": \"窮\",\n\"穷发\": \"窮髮\",\n\"穷追不舍\": \"窮追不捨\",\n\"空余\": \"空餘\",\n\"空荡\": \"空蕩\",\n\"空荡荡\": \"空蕩蕩\",\n\"空蒙\": \"空濛\",\n\"空里\": \"空裡\",\n\"空钟\": \"空鐘\",\n\"窃\": \"竊\",\n\"窃钟掩耳\": \"竊鐘掩耳\",\n\"窍\": \"竅\",\n\"窎\": \"窵\",\n\"窑\": \"窯\",\n\"窒欲\": \"窒慾\",\n\"窗帘\": \"窗簾\",\n\"窗明几亮\": \"窗明几亮\",\n\"窗明几净\": \"窗明几淨\",\n\"窜\": \"竄\",\n\"窝\": \"窩\",\n\"窝里\": \"窩裡\",\n\"窝里斗\": \"窩裡鬥\",\n\"窥\": \"窺\",\n\"窦\": \"竇\",\n\"窭\": \"窶\",\n\"立范\": \"立範\",\n\"竖\": \"豎\",\n\"竖起脊梁\": \"豎起脊梁\",\n\"竞\": \"競\",\n\"竞斗\": \"競鬥\",\n\"童仆\": \"童僕\",\n\"竹几\": \"竹几\",\n\"竹制\": \"竹製\",\n\"竹席\": \"竹蓆\",\n\"竹林之游\": \"竹林之遊\",\n\"竹溪县\": \"竹谿縣\",\n\"竹签\": \"竹籤\",\n\"笃\": \"篤\",\n\"笋\": \"筍\",\n\"笋干\": \"筍乾\",\n\"笑里藏刀\": \"笑裡藏刀\",\n\"笔\": \"筆\",\n\"笔杆\": \"筆桿\",\n\"笔秃墨干\": \"筆禿墨乾\",\n\"笕\": \"筧\",\n\"笺\": \"箋\",\n\"笼\": \"籠\",\n\"笾\": \"籩\",\n\"筑\": \"築\",\n\"筑前\": \"筑前\",\n\"筑北\": \"筑北\",\n\"筑后\": \"筑後\",\n\"筑州\": \"筑州\",\n\"筑後\": \"筑後\",\n\"筑波\": \"筑波\",\n\"筑紫\": \"筑紫\",\n\"筑肥\": \"筑肥\",\n\"筑西\": \"筑西\",\n\"筑邦\": \"筑邦\",\n\"筑阳\": \"筑陽\",\n\"筑陽\": \"筑陽\",\n\"答复\": \"答覆\",\n\"筚\": \"篳\",\n\"筛\": \"篩\",\n\"筜\": \"簹\",\n\"筝\": \"箏\",\n\"筵几\": \"筵几\",\n\"筹\": \"籌\",\n\"筼\": \"篔\",\n\"签\": \"簽\",\n\"签幐\": \"籤幐\",\n\"签押\": \"籤押\",\n\"签条\": \"籤條\",\n\"签诗\": \"籤詩\",\n\"筿\": \"篠\",\n\"简\": \"簡\",\n\"简并\": \"簡併\",\n\"简朴\": \"簡樸\",\n\"简短发\": \"簡短發\",\n\"简筑翎\": \"簡筑翎\",\n\"箓\": \"籙\",\n\"算准\": \"算準\",\n\"算历\": \"算曆\",\n\"算历史\": \"算歷史\",\n\"管制\": \"管制\",\n\"管干\": \"管幹\",\n\"箦\": \"簀\",\n\"箧\": \"篋\",\n\"箨\": \"籜\",\n\"箩\": \"籮\",\n\"箪\": \"簞\",\n\"箫\": \"簫\",\n\"箱里\": \"箱裡\",\n\"篑\": \"簣\",\n\"篓\": \"簍\",\n\"篮\": \"籃\",\n\"篯\": \"籛\",\n\"篱\": \"籬\",\n\"簖\": \"籪\",\n\"簡筑翎\": \"簡筑翎\",\n\"簸荡\": \"簸蕩\",\n\"籁\": \"籟\",\n\"米余\": \"米餘\",\n\"米团\": \"米糰\",\n\"米沈\": \"米瀋\",\n\"米面\": \"米麵\",\n\"籴\": \"糴\",\n\"类\": \"類\",\n\"籼\": \"秈\",\n\"粗制\": \"粗製\",\n\"粜\": \"糶\",\n\"粝\": \"糲\",\n\"粤\": \"粵\",\n\"粪\": \"糞\",\n\"粪秽蔑面\": \"糞穢衊面\",\n\"粮\": \"糧\",\n\"粽\": \"糉\",\n\"精准\": \"精準\",\n\"精制\": \"精製\",\n\"精制伏\": \"精制伏\",\n\"精制住\": \"精制住\",\n\"精制服\": \"精制服\",\n\"精干\": \"精幹\",\n\"精松\": \"精鬆\",\n\"精致\": \"精緻\",\n\"精辟\": \"精闢\",\n\"糁\": \"糝\",\n\"糇\": \"餱\",\n\"糊里糊涂\": \"糊裡糊塗\",\n\"糍\": \"餈\",\n\"糕干\": \"糕乾\",\n\"系上。\": \"繫上。\",\n\"系上丝\": \"繫上絲\",\n\"系上了\": \"繫上了\",\n\"系上头\": \"繫上頭\",\n\"系上安全\": \"繫上安全\",\n\"系上红\": \"繫上紅\",\n\"系上绳\": \"繫上繩\",\n\"系上黑\": \"繫上黑\",\n\"系上，\": \"繫上，\",\n\"系为\": \"係為\",\n\"系于\": \"繫於\",\n\"系于一发\": \"繫於一髮\",\n\"系列里\": \"系列裡\",\n\"系到\": \"繫到\",\n\"系囚\": \"繫囚\",\n\"系心\": \"繫心\",\n\"系念\": \"繫念\",\n\"系怀\": \"繫懷\",\n\"系恋\": \"繫戀\",\n\"系数\": \"係數\",\n\"系着\": \"繫着\",\n\"系紧\": \"繫緊\",\n\"系累\": \"繫纍\",\n\"系结\": \"繫結\",\n\"系绳\": \"繫繩\",\n\"系膜\": \"繫膜\",\n\"系舟\": \"繫舟\",\n\"系船\": \"繫船\",\n\"系辞\": \"繫辭\",\n\"系里\": \"系裡\",\n\"系鞋带\": \"繫鞋帶\",\n\"系风捕影\": \"繫風捕影\",\n\"紅后假說\": \"紅后假說\",\n\"素发\": \"素髮\",\n\"素发现\": \"素發現\",\n\"素发生\": \"素發生\",\n\"素数里\": \"素數裡\",\n\"素朴\": \"素樸\",\n\"素面\": \"素麵\",\n\"索面\": \"索麵\",\n\"索馬里\": \"索馬里\",\n\"索马里\": \"索馬里\",\n\"紧\": \"緊\",\n\"紧致\": \"緊緻\",\n\"紧追不舍\": \"緊追不捨\",\n\"紫姜\": \"紫薑\",\n\"累囚\": \"纍囚\",\n\"累堆\": \"纍堆\",\n\"累瓦结绳\": \"纍瓦結繩\",\n\"累绁\": \"纍紲\",\n\"累臣\": \"纍臣\",\n\"絷\": \"縶\",\n\"經有云\": \"經有云\",\n\"網球台\": \"網球台\",\n\"緼\": \"縕\",\n\"縆\": \"緪\",\n\"總裁制\": \"總裁制\",\n\"繁复\": \"繁複\",\n\"繁钟\": \"繁鐘\",\n\"繫着\": \"繫着\",\n\"纟\": \"糹\",\n\"纠\": \"糾\",\n\"纡\": \"紆\",\n\"纡余\": \"紆餘\",\n\"纡回\": \"紆迴\",\n\"纡郁\": \"紆鬱\",\n\"红\": \"紅\",\n\"红发\": \"紅髮\",\n\"红后假说\": \"紅后假說\",\n\"红绳系足\": \"紅繩繫足\",\n\"红钟\": \"紅鐘\",\n\"纣\": \"紂\",\n\"纤\": \"纖\",\n\"纤夫\": \"縴夫\",\n\"纤手\": \"縴手\",\n\"纤绳\": \"縴繩\",\n\"纥\": \"紇\",\n\"约\": \"約\",\n\"级\": \"級\",\n\"纨\": \"紈\",\n\"纩\": \"纊\",\n\"纪\": \"紀\",\n\"纪历\": \"紀曆\",\n\"纪历史\": \"紀歷史\",\n\"纫\": \"紉\",\n\"纬\": \"緯\",\n\"纭\": \"紜\",\n\"纮\": \"紘\",\n\"纯\": \"純\",\n\"纯朴\": \"純樸\",\n\"纰\": \"紕\",\n\"纱\": \"紗\",\n\"纲\": \"綱\",\n\"纲鉴\": \"綱鑑\",\n\"纳\": \"納\",\n\"纳征\": \"納徵\",\n\"纴\": \"紝\",\n\"纵\": \"縱\",\n\"纵欲\": \"縱慾\",\n\"纶\": \"綸\",\n\"纷\": \"紛\",\n\"纸\": \"紙\",\n\"纸扎\": \"紙紮\",\n\"纹\": \"紋\",\n\"纺\": \"紡\",\n\"纻\": \"紵\",\n\"纼\": \"紖\",\n\"纽\": \"紐\",\n\"纾\": \"紓\",\n\"线\": \"線\",\n\"线图里\": \"線圖裡\",\n\"绀\": \"紺\",\n\"绁\": \"紲\",\n\"绂\": \"紱\",\n\"练\": \"練\",\n\"组\": \"組\",\n\"组里\": \"組裡\",\n\"绅\": \"紳\",\n\"细\": \"細\",\n\"细不容发\": \"細不容髮\",\n\"细如发\": \"細如髮\",\n\"细炼\": \"細鍊\",\n\"细致\": \"細緻\",\n\"织\": \"織\",\n\"终\": \"終\",\n\"绉\": \"縐\",\n\"绊\": \"絆\",\n\"绋\": \"紼\",\n\"绌\": \"絀\",\n\"绍\": \"紹\",\n\"绎\": \"繹\",\n\"经\": \"經\",\n\"经文里\": \"經文裡\",\n\"经有云\": \"經有云\",\n\"绐\": \"紿\",\n\"绑\": \"綁\",\n\"绑扎\": \"綁紮\",\n\"绒\": \"絨\",\n\"结\": \"結\",\n\"结伙\": \"結夥\",\n\"结伴同游\": \"結伴同遊\",\n\"结余\": \"結餘\",\n\"结发\": \"結髮\",\n\"结发育\": \"結發育\",\n\"结发表\": \"結發表\",\n\"结扎\": \"結紮\",\n\"绔\": \"絝\",\n\"绕\": \"繞\",\n\"绕梁\": \"繞樑\",\n\"绖\": \"絰\",\n\"绗\": \"絎\",\n\"绘\": \"繪\",\n\"绘制\": \"繪製\",\n\"给\": \"給\",\n\"绚\": \"絢\",\n\"绛\": \"絳\",\n\"络\": \"絡\",\n\"络腮胡\": \"絡腮鬍\",\n\"绝\": \"絕\",\n\"绞\": \"絞\",\n\"绞干\": \"絞乾\",\n\"统\": \"統\",\n\"绠\": \"綆\",\n\"绡\": \"綃\",\n\"绢\": \"絹\",\n\"绣\": \"繡\",\n\"绤\": \"綌\",\n\"绥\": \"綏\",\n\"绥棱\": \"綏稜\",\n\"绦\": \"絛\",\n\"继\": \"繼\",\n\"绨\": \"綈\",\n\"绩\": \"績\",\n\"绪\": \"緒\",\n\"绪余\": \"緒餘\",\n\"绫\": \"綾\",\n\"绬\": \"緓\",\n\"续\": \"續\",\n\"绮\": \"綺\",\n\"绯\": \"緋\",\n\"绰\": \"綽\",\n\"绱\": \"鞝\",\n\"绲\": \"緄\",\n\"绳\": \"繩\",\n\"维\": \"維\",\n\"维系\": \"維繫\",\n\"维系统\": \"維系統\",\n\"绵\": \"綿\",\n\"绶\": \"綬\",\n\"绷\": \"繃\",\n\"绷扒吊拷\": \"繃扒弔拷\",\n\"绸\": \"綢\",\n\"绹\": \"綯\",\n\"绺\": \"綹\",\n\"绻\": \"綣\",\n\"综\": \"綜\",\n\"综合征\": \"綜合徵\",\n\"绽\": \"綻\",\n\"绾\": \"綰\",\n\"绾发\": \"綰髮\",\n\"绿\": \"綠\",\n\"绿发\": \"綠髮\",\n\"缀\": \"綴\",\n\"缁\": \"緇\",\n\"缂\": \"緙\",\n\"缃\": \"緗\",\n\"缄\": \"緘\",\n\"缅\": \"緬\",\n\"缆\": \"纜\",\n\"缇\": \"緹\",\n\"缈\": \"緲\",\n\"缉\": \"緝\",\n\"缉凶\": \"緝兇\",\n\"缊\": \"縕\",\n\"缋\": \"繢\",\n\"缌\": \"緦\",\n\"缍\": \"綞\",\n\"缎\": \"緞\",\n\"缏\": \"緶\",\n\"缐\": \"線\",\n\"缑\": \"緱\",\n\"缒\": \"縋\",\n\"缓\": \"緩\",\n\"缓冲\": \"緩衝\",\n\"缓征\": \"緩徵\",\n\"缔\": \"締\",\n\"缕\": \"縷\",\n\"编\": \"編\",\n\"编余\": \"編餘\",\n\"编制法\": \"編制法\",\n\"编码表\": \"編碼表\",\n\"编采\": \"編採\",\n\"编钟\": \"編鐘\",\n\"缗\": \"緡\",\n\"缘\": \"緣\",\n\"缙\": \"縉\",\n\"缚\": \"縛\",\n\"缛\": \"縟\",\n\"缜\": \"縝\",\n\"缜致\": \"縝緻\",\n\"缝\": \"縫\",\n\"缝制\": \"縫製\",\n\"缝里\": \"縫裡\",\n\"缞\": \"縗\",\n\"缟\": \"縞\",\n\"缠\": \"纏\",\n\"缠斗\": \"纏鬥\",\n\"缡\": \"縭\",\n\"缢\": \"縊\",\n\"缣\": \"縑\",\n\"缤\": \"繽\",\n\"缥\": \"縹\",\n\"缦\": \"縵\",\n\"缧\": \"縲\",\n\"缨\": \"纓\",\n\"缩\": \"縮\",\n\"缩栗\": \"縮慄\",\n\"缩短发\": \"縮短發\",\n\"缪\": \"繆\",\n\"缫\": \"繅\",\n\"缬\": \"纈\",\n\"缭\": \"繚\",\n\"缮\": \"繕\",\n\"缯\": \"繒\",\n\"缰\": \"繮\",\n\"缱\": \"繾\",\n\"缲\": \"繰\",\n\"缳\": \"繯\",\n\"缴\": \"繳\",\n\"缵\": \"纘\",\n\"罂\": \"罌\",\n\"网\": \"網\",\n\"网志\": \"網誌\",\n\"网游\": \"網遊\",\n\"网球台\": \"網球台\",\n\"网站里\": \"網站裡\",\n\"网里\": \"網裡\",\n\"罗\": \"羅\",\n\"罗马历\": \"羅馬曆\",\n\"罗马历代\": \"羅馬歷代\",\n\"罗马历史\": \"羅馬歷史\",\n\"罚\": \"罰\",\n\"罢\": \"罷\",\n\"置言成范\": \"置言成範\",\n\"罴\": \"羆\",\n\"羁\": \"羈\",\n\"羁系\": \"羈繫\",\n\"美丑\": \"美醜\",\n\"美发业\": \"美髮業\",\n\"美发学\": \"美髮學\",\n\"美发师\": \"美髮師\",\n\"美发店\": \"美髮店\",\n\"美发沙龙\": \"美髮沙龍\",\n\"美发馆\": \"美髮館\",\n\"美容美发\": \"美容美髮\",\n\"羟\": \"羥\",\n\"羡\": \"羨\",\n\"羡余\": \"羨餘\",\n\"群\": \"羣\",\n\"群丑\": \"群醜\",\n\"義联\": \"義联\",\n\"翁子里\": \"翁子里\",\n\"翕辟\": \"翕闢\",\n\"翘\": \"翹\",\n\"翙\": \"翽\",\n\"翚\": \"翬\",\n\"翱游\": \"翱遊\",\n\"翻松\": \"翻鬆\",\n\"翻涌\": \"翻湧\",\n\"老么\": \"老么\",\n\"老仆\": \"老僕\",\n\"老姜\": \"老薑\",\n\"老干\": \"老乾\",\n\"老干部\": \"老幹部\",\n\"老懞\": \"老懞\",\n\"老板\": \"老闆\",\n\"老爷钟\": \"老爺鐘\",\n\"老白干\": \"老白乾\",\n\"老面皮\": \"老面皮\",\n\"考征\": \"考徵\",\n\"考试制度\": \"考試制度\",\n\"耍斗\": \"耍鬥\",\n\"耕获\": \"耕穫\",\n\"耢\": \"耮\",\n\"耧\": \"耬\",\n\"耳余\": \"耳餘\",\n\"耶律术烈\": \"耶律朮烈\",\n\"耸\": \"聳\",\n\"耻\": \"恥\",\n\"聂\": \"聶\",\n\"聊斋志异\": \"聊齋志異\",\n\"聋\": \"聾\",\n\"职\": \"職\",\n\"聍\": \"聹\",\n\"联\": \"聯\",\n\"联系\": \"聯繫\",\n\"聖后\": \"聖后\",\n\"聖馬爾谷日\": \"聖馬爾谷日\",\n\"聘雇\": \"聘僱\",\n\"聚药雄蕊\": \"聚葯雄蕊\",\n\"聩\": \"聵\",\n\"聪\": \"聰\",\n\"肃\": \"肅\",\n\"肉丝面\": \"肉絲麵\",\n\"肉干\": \"肉乾\",\n\"肉松\": \"肉鬆\",\n\"肉欲\": \"肉慾\",\n\"肉羹面\": \"肉羹麵\",\n\"肉面\": \"肉麵\",\n\"肚里\": \"肚裡\",\n\"肝脏\": \"肝臟\",\n\"肝郁\": \"肝鬱\",\n\"肠\": \"腸\",\n\"肠脏\": \"腸臟\",\n\"股栗\": \"股慄\",\n\"肤\": \"膚\",\n\"肥筑方言\": \"肥筑方言\",\n\"肮\": \"骯\",\n\"肴\": \"餚\",\n\"肴馔\": \"肴饌\",\n\"肺脏\": \"肺臟\",\n\"肾\": \"腎\",\n\"肾脏\": \"腎臟\",\n\"肿\": \"腫\",\n\"胀\": \"脹\",\n\"胁\": \"脅\",\n\"胃脏\": \"胃臟\",\n\"胃里\": \"胃裡\",\n\"胆\": \"膽\",\n\"背地里\": \"背地裡\",\n\"胎发\": \"胎髮\",\n\"胎发展\": \"胎發展\",\n\"胎发生\": \"胎發生\",\n\"胎发育\": \"胎發育\",\n\"胜\": \"勝\",\n\"胜肽\": \"胜肽\",\n\"胜鍵\": \"胜鍵\",\n\"胜键\": \"胜鍵\",\n\"胡云\": \"胡云\",\n\"胡子\": \"鬍子\",\n\"胡子婴\": \"胡子嬰\",\n\"胡子昂\": \"胡子昂\",\n\"胡朴安\": \"胡樸安\",\n\"胡杰\": \"胡杰\",\n\"胡梢\": \"鬍梢\",\n\"胡渣\": \"鬍渣\",\n\"胡里胡涂\": \"胡裡胡塗\",\n\"胡须\": \"鬍鬚\",\n\"胡髭\": \"鬍髭\",\n\"胡髯\": \"鬍髯\",\n\"胧\": \"朧\",\n\"胨\": \"腖\",\n\"胪\": \"臚\",\n\"胫\": \"脛\",\n\"胰脏\": \"胰臟\",\n\"胶\": \"膠\",\n\"胶卷\": \"膠捲\",\n\"能干\": \"能幹\",\n\"能干休\": \"能干休\",\n\"能干戈\": \"能干戈\",\n\"能干扰\": \"能干擾\",\n\"能干政\": \"能干政\",\n\"能干涉\": \"能干涉\",\n\"能干预\": \"能干預\",\n\"能自制\": \"能自制\",\n\"脉\": \"脈\",\n\"脉冲\": \"脈衝\",\n\"脊梁\": \"脊樑\",\n\"脊梁背\": \"脊梁背\",\n\"脊梁骨\": \"脊梁骨\",\n\"脍\": \"膾\",\n\"脏\": \"髒\",\n\"脏器\": \"臟器\",\n\"脏胸\": \"臟胸\",\n\"脏腑\": \"臟腑\",\n\"脐\": \"臍\",\n\"脑\": \"腦\",\n\"脑干\": \"腦幹\",\n\"脓\": \"膿\",\n\"脔\": \"臠\",\n\"脚\": \"腳\",\n\"脚注\": \"腳註\",\n\"脱\": \"脫\",\n\"脱发\": \"脫髮\",\n\"脱谷机\": \"脫穀機\",\n\"脶\": \"腡\",\n\"脸\": \"臉\",\n\"脺脏\": \"脺臟\",\n\"脾脏\": \"脾臟\",\n\"腊\": \"臘\",\n\"腊味\": \"腊味\",\n\"腊毒\": \"腊毒\",\n\"腊笔\": \"腊筆\",\n\"腌\": \"醃\",\n\"腌制\": \"醃製\",\n\"腌臜\": \"腌臢\",\n\"腌臢\": \"腌臢\",\n\"腐余\": \"腐餘\",\n\"腐干\": \"腐乾\",\n\"腑脏\": \"腑臟\",\n\"腕表\": \"腕錶\",\n\"腘\": \"膕\",\n\"腭\": \"齶\",\n\"腰里\": \"腰裡\",\n\"腻\": \"膩\",\n\"腼\": \"靦\",\n\"腽\": \"膃\",\n\"腾\": \"騰\",\n\"腾冲\": \"騰衝\",\n\"腾格里\": \"騰格里\",\n\"腾涌\": \"騰湧\",\n\"膑\": \"臏\",\n\"膨松\": \"膨鬆\",\n\"膵脏\": \"膵臟\",\n\"臊子面\": \"臊子麵\",\n\"臜\": \"臢\",\n\"臣仆\": \"臣僕\",\n\"臧谷亡羊\": \"臧穀亡羊\",\n\"自制\": \"自製\",\n\"自制一下\": \"自制一下\",\n\"自制下来\": \"自制下來\",\n\"自制不\": \"自制不\",\n\"自制之力\": \"自制之力\",\n\"自制之能\": \"自制之能\",\n\"自制他\": \"自制他\",\n\"自制伏\": \"自制伏\",\n\"自制你\": \"自制你\",\n\"自制力\": \"自制力\",\n\"自制地\": \"自制地\",\n\"自制她\": \"自制她\",\n\"自制情\": \"自制情\",\n\"自制我\": \"自制我\",\n\"自制服\": \"自制服\",\n\"自制的能\": \"自制的能\",\n\"自制能力\": \"自制能力\",\n\"自夸\": \"自誇\",\n\"自干五\": \"自乾五\",\n\"自然数里\": \"自然數裡\",\n\"自由钟\": \"自由鐘\",\n\"自觉自愿\": \"自覺自愿\",\n\"臭气冲天\": \"臭氣衝天\",\n\"至多\": \"至多\",\n\"至多只\": \"至多只\",\n\"致密\": \"緻密\",\n\"舂谷\": \"舂穀\",\n\"舆\": \"輿\",\n\"舉手表\": \"舉手表\",\n\"舊庄\": \"舊庄\",\n\"舌干唇焦\": \"舌乾唇焦\",\n\"舍不得\": \"捨不得\",\n\"舍入\": \"捨入\",\n\"舍入口\": \"舍入口\",\n\"舍出\": \"捨出\",\n\"舍去\": \"捨去\",\n\"舍命\": \"捨命\",\n\"舍堕\": \"捨墮\",\n\"舍安就危\": \"捨安就危\",\n\"舍实\": \"捨實\",\n\"舍己为人\": \"捨己為人\",\n\"舍己为公\": \"捨己為公\",\n\"舍己为国\": \"捨己為國\",\n\"舍己从人\": \"捨己從人\",\n\"舍己救人\": \"捨己救人\",\n\"舍弃\": \"捨棄\",\n\"舍得\": \"捨得\",\n\"舍我其谁\": \"捨我其誰\",\n\"舍本逐末\": \"捨本逐末\",\n\"舍死忘生\": \"捨死忘生\",\n\"舍生\": \"捨生\",\n\"舍短取长\": \"捨短取長\",\n\"舍身\": \"捨身\",\n\"舍车保帅\": \"捨車保帥\",\n\"舍近求远\": \"捨近求遠\",\n\"舒卷\": \"舒捲\",\n\"舞台风格\": \"舞台風格\",\n\"舞后\": \"舞后\",\n\"舣\": \"艤\",\n\"航海历\": \"航海曆\",\n\"航海历史\": \"航海歷史\",\n\"舰\": \"艦\",\n\"舰只\": \"艦隻\",\n\"舱\": \"艙\",\n\"船只\": \"船隻\",\n\"船只得\": \"船只得\",\n\"船只有\": \"船只有\",\n\"船只能\": \"船只能\",\n\"船钟\": \"船鐘\",\n\"舻\": \"艫\",\n\"艰\": \"艱\",\n\"色欲\": \"色慾\",\n\"色长发\": \"色長髮\",\n\"艳\": \"艷\",\n\"艳后\": \"艷后\",\n\"艷后\": \"艷后\",\n\"艸木丰丰\": \"艸木丰丰\",\n\"艺\": \"藝\",\n\"节\": \"節\",\n\"节余\": \"節餘\",\n\"节欲\": \"節慾\",\n\"节目里\": \"節目裡\",\n\"芈\": \"羋\",\n\"芒果干\": \"芒果乾\",\n\"芗\": \"薌\",\n\"芜\": \"蕪\",\n\"芦\": \"蘆\",\n\"花不要采\": \"花不要採\",\n\"花哄\": \"花鬨\",\n\"花盆里\": \"花盆裡\",\n\"花药\": \"花葯\",\n\"花菴词选\": \"花菴詞選\",\n\"花钟\": \"花鐘\",\n\"花马吊嘴\": \"花馬弔嘴\",\n\"芸薹\": \"蕓薹\",\n\"苁\": \"蓯\",\n\"苇\": \"葦\",\n\"苈\": \"藶\",\n\"苋\": \"莧\",\n\"苌\": \"萇\",\n\"苍\": \"蒼\",\n\"苍发\": \"蒼髮\",\n\"苍术\": \"蒼朮\",\n\"苍郁\": \"蒼鬱\",\n\"苎\": \"苧\",\n\"苏\": \"蘇\",\n\"苏昆\": \"蘇崑\",\n\"苏醒\": \"甦醒\",\n\"苑里\": \"苑裡\",\n\"苘\": \"檾\",\n\"若干\": \"若干\",\n\"苦干\": \"苦幹\",\n\"苦斗\": \"苦鬥\",\n\"苦里\": \"苦裡\",\n\"苧\": \"薴\",\n\"苧悴\": \"薴悴\",\n\"苧烯\": \"薴烯\",\n\"苧麻\": \"苧麻\",\n\"英文里\": \"英文裡\",\n\"苹婆\": \"蘋婆\",\n\"苹果\": \"蘋果\",\n\"苹果干\": \"蘋果乾\",\n\"茂都淀\": \"茂都澱\",\n\"范亭\": \"範亭\",\n\"范例\": \"範例\",\n\"范围\": \"範圍\",\n\"范字\": \"範字\",\n\"范式\": \"範式\",\n\"范性形变\": \"範性形變\",\n\"范数\": \"範數\",\n\"范文\": \"範文\",\n\"范文同\": \"范文同\",\n\"范文正公\": \"范文正公\",\n\"范文澜\": \"范文瀾\",\n\"范文瀾\": \"范文瀾\",\n\"范文照\": \"范文照\",\n\"范文程\": \"范文程\",\n\"范文芳\": \"范文芳\",\n\"范文藤\": \"范文藤\",\n\"范文虎\": \"范文虎\",\n\"范本\": \"範本\",\n\"范畴\": \"範疇\",\n\"范登堡\": \"范登堡\",\n\"范賢惠\": \"范賢惠\",\n\"范贤惠\": \"范賢惠\",\n\"范金\": \"範金\",\n\"茅于軾\": \"茅于軾\",\n\"茅于轼\": \"茅于軾\",\n\"茎\": \"莖\",\n\"茎干\": \"莖幹\",\n\"茏\": \"蘢\",\n\"茑\": \"蔦\",\n\"茔\": \"塋\",\n\"茕\": \"煢\",\n\"茧\": \"繭\",\n\"茶余\": \"茶餘\",\n\"茶几\": \"茶几\",\n\"茶面\": \"茶麵\",\n\"荆\": \"荊\",\n\"草丛里\": \"草叢裡\",\n\"草席\": \"草蓆\",\n\"草荐\": \"草荐\",\n\"荐\": \"薦\",\n\"荐居\": \"荐居\",\n\"荐臻\": \"荐臻\",\n\"荐饑\": \"荐饑\",\n\"荐饥\": \"荐饑\",\n\"荙\": \"薘\",\n\"荚\": \"莢\",\n\"荛\": \"蕘\",\n\"荜\": \"蓽\",\n\"荝\": \"萴\",\n\"荞\": \"蕎\",\n\"荞麦面\": \"蕎麥麵\",\n\"荟\": \"薈\",\n\"荠\": \"薺\",\n\"荡\": \"盪\",\n\"荡产\": \"蕩產\",\n\"荡女\": \"蕩女\",\n\"荡妇\": \"蕩婦\",\n\"荡寇\": \"蕩寇\",\n\"荡平\": \"蕩平\",\n\"荡来荡去\": \"蕩來蕩去\",\n\"荡气\": \"蕩氣\",\n\"荡气回肠\": \"盪氣迴腸\",\n\"荡涤\": \"蕩滌\",\n\"荡漾\": \"蕩漾\",\n\"荡然\": \"蕩然\",\n\"荡舟\": \"蕩舟\",\n\"荡船\": \"蕩船\",\n\"荡荡\": \"蕩蕩\",\n\"荣\": \"榮\",\n\"荤\": \"葷\",\n\"荥\": \"滎\",\n\"荦\": \"犖\",\n\"荦确\": \"犖确\",\n\"荧\": \"熒\",\n\"荧郁\": \"熒鬱\",\n\"荨\": \"蕁\",\n\"荩\": \"藎\",\n\"荪\": \"蓀\",\n\"荫\": \"蔭\",\n\"荬\": \"蕒\",\n\"荭\": \"葒\",\n\"荮\": \"葤\",\n\"药\": \"藥\",\n\"药签\": \"藥籤\",\n\"药面儿\": \"藥麵兒\",\n\"荷花淀\": \"荷花澱\",\n\"莅\": \"蒞\",\n\"莜面\": \"莜麵\",\n\"莪术\": \"莪朮\",\n\"莱\": \"萊\",\n\"莲\": \"蓮\",\n\"莳\": \"蒔\",\n\"莴\": \"萵\",\n\"莶\": \"薟\",\n\"获\": \"獲\",\n\"获匪其丑\": \"獲匪其醜\",\n\"莸\": \"蕕\",\n\"莹\": \"瑩\",\n\"莺\": \"鶯\",\n\"莼\": \"蓴\",\n\"莽荡\": \"莽蕩\",\n\"菜坛\": \"菜罈\",\n\"菜干\": \"菜乾\",\n\"菜肴\": \"菜餚\",\n\"菠棱菜\": \"菠稜菜\",\n\"菠萝干\": \"菠蘿乾\",\n\"萚\": \"蘀\",\n\"萝\": \"蘿\",\n\"萝卜\": \"蘿蔔\",\n\"萝卜干\": \"蘿蔔乾\",\n\"萤\": \"螢\",\n\"营\": \"營\",\n\"营干\": \"營幹\",\n\"萦\": \"縈\",\n\"萦回\": \"縈迴\",\n\"萧\": \"蕭\",\n\"萧参\": \"蕭蔘\",\n\"萨\": \"薩\",\n\"萬一只\": \"萬一只\",\n\"落发\": \"落髮\",\n\"落腮胡\": \"落腮鬍\",\n\"葉叶琴\": \"葉叶琴\",\n\"葉叶琹\": \"葉叶琹\",\n\"葉陽后\": \"葉陽后\",\n\"葡萄干\": \"葡萄乾\",\n\"董氏封发\": \"董氏封髮\",\n\"葫芦里卖甚么药\": \"葫蘆裡賣甚麼藥\",\n\"葱\": \"蔥\",\n\"葱郁\": \"蔥鬱\",\n\"蒀\": \"蒕\",\n\"蒇\": \"蕆\",\n\"蒉\": \"蕢\",\n\"蒋\": \"蔣\",\n\"蒌\": \"蔞\",\n\"蒏\": \"醟\",\n\"蒙事\": \"矇事\",\n\"蒙头转\": \"矇頭轉\",\n\"蒙昧无知\": \"矇昧無知\",\n\"蒙松雨\": \"矇松雨\",\n\"蒙汜\": \"濛汜\",\n\"蒙混\": \"矇混\",\n\"蒙眬\": \"矇矓\",\n\"蒙瞍\": \"矇瞍\",\n\"蒙聩\": \"矇聵\",\n\"蒙胧\": \"朦朧\",\n\"蒙蒙细雨\": \"濛濛細雨\",\n\"蒙雾\": \"濛霧\",\n\"蒙雾露\": \"蒙霧露\",\n\"蒙骗\": \"矇騙\",\n\"蒙鸿\": \"濛鴻\",\n\"蒜发\": \"蒜髮\",\n\"蒲席\": \"蒲蓆\",\n\"蒸制\": \"蒸製\",\n\"蒸干\": \"蒸乾\",\n\"蓄发\": \"蓄髮\",\n\"蓄胡\": \"蓄鬍\",\n\"蓄须\": \"蓄鬚\",\n\"蓊郁\": \"蓊鬱\",\n\"蓝\": \"藍\",\n\"蓝淀\": \"藍澱\",\n\"蓟\": \"薊\",\n\"蓠\": \"蘺\",\n\"蓣\": \"蕷\",\n\"蓥\": \"鎣\",\n\"蓦\": \"驀\",\n\"蓬发\": \"蓬髮\",\n\"蓬松\": \"蓬鬆\",\n\"蓬松松\": \"蓬鬆鬆\",\n\"蔂\": \"虆\",\n\"蔷\": \"薔\",\n\"蔹\": \"蘞\",\n\"蔺\": \"藺\",\n\"蔼\": \"藹\",\n\"蕰\": \"薀\",\n\"蕲\": \"蘄\",\n\"蕴\": \"蘊\",\n\"薄干\": \"薄幹\",\n\"薄幸\": \"薄倖\",\n\"薙发\": \"薙髮\",\n\"薝卜\": \"薝蔔\",\n\"薮\": \"藪\",\n\"薴烯\": \"薴烯\",\n\"藏历\": \"藏曆\",\n\"藏历史\": \"藏歷史\",\n\"藏蒙歌儿\": \"藏矇歌兒\",\n\"藓\": \"蘚\",\n\"藤制\": \"藤製\",\n\"藤席\": \"藤蓆\",\n\"藴\": \"蘊\",\n\"蘖\": \"櫱\",\n\"虎斗\": \"虎鬥\",\n\"虎须\": \"虎鬚\",\n\"虏\": \"虜\",\n\"虑\": \"慮\",\n\"虚\": \"虛\",\n\"虚夸\": \"虛誇\",\n\"虫\": \"蟲\",\n\"虫部\": \"虫部\",\n\"虬\": \"虯\",\n\"虮\": \"蟣\",\n\"虮虱相吊\": \"蟣蝨相弔\",\n\"虱\": \"蝨\",\n\"虽\": \"雖\",\n\"虾\": \"蝦\",\n\"虾面\": \"蝦麵\",\n\"虿\": \"蠆\",\n\"蚀\": \"蝕\",\n\"蚁\": \"蟻\",\n\"蚁后\": \"蟻后\",\n\"蚂\": \"螞\",\n\"蚃\": \"蠁\",\n\"蚃干\": \"蠁幹\",\n\"蚊动牛斗\": \"蚊動牛鬥\",\n\"蚕\": \"蠶\",\n\"蚬\": \"蜆\",\n\"蛇发女妖\": \"蛇髮女妖\",\n\"蛊\": \"蠱\",\n\"蛋白发\": \"蛋白發\",\n\"蛎\": \"蠣\",\n\"蛏\": \"蟶\",\n\"蛏干\": \"蟶乾\",\n\"蛮\": \"蠻\",\n\"蛮干\": \"蠻幹\",\n\"蛰\": \"蟄\",\n\"蛱\": \"蛺\",\n\"蛲\": \"蟯\",\n\"蛳\": \"螄\",\n\"蛴\": \"蠐\",\n\"蜂准\": \"蜂準\",\n\"蜂后\": \"蜂后\",\n\"蜂涌\": \"蜂湧\",\n\"蜕\": \"蛻\",\n\"蜗\": \"蝸\",\n\"蜜里调油\": \"蜜裡調油\",\n\"蜡\": \"蠟\",\n\"蜡月\": \"蜡月\",\n\"蜡祭\": \"蜡祭\",\n\"蝇\": \"蠅\",\n\"蝈\": \"蟈\",\n\"蝉\": \"蟬\",\n\"蝎\": \"蠍\",\n\"蝎虎\": \"蝎虎\",\n\"蝎蝎螫螫\": \"蝎蝎螫螫\",\n\"蝎谮\": \"蝎譖\",\n\"蝼\": \"螻\",\n\"蝾\": \"蠑\",\n\"螀\": \"螿\",\n\"螨\": \"蟎\",\n\"蟏\": \"蠨\",\n\"蟻后\": \"蟻后\",\n\"血余\": \"血餘\",\n\"衅\": \"釁\",\n\"衅钟\": \"釁鐘\",\n\"行事历\": \"行事曆\",\n\"行事历史\": \"行事歷史\",\n\"行凶\": \"行兇\",\n\"行家里手\": \"行家裡手\",\n\"衔\": \"銜\",\n\"街庄\": \"街庄\",\n\"衝着\": \"衝着\",\n\"衡鉴\": \"衡鑑\",\n\"补\": \"補\",\n\"补注\": \"補註\",\n\"表停\": \"錶停\",\n\"表冠\": \"錶冠\",\n\"表带\": \"錶帶\",\n\"表征\": \"表徵\",\n\"表板\": \"錶板\",\n\"表王\": \"錶王\",\n\"表盘\": \"錶盤\",\n\"表蒙子\": \"錶蒙子\",\n\"表转\": \"錶轉\",\n\"表速\": \"錶速\",\n\"表针\": \"錶針\",\n\"表面包\": \"表面包\",\n\"衬\": \"襯\",\n\"衬里\": \"襯裡\",\n\"衮\": \"袞\",\n\"袄\": \"襖\",\n\"袅\": \"裊\",\n\"袆\": \"褘\",\n\"袋杆\": \"袋桿\",\n\"袋表\": \"袋錶\",\n\"袋里\": \"袋裡\",\n\"袖里\": \"袖裡\",\n\"袜\": \"襪\",\n\"被卷回\": \"被捲回\",\n\"被发佯狂\": \"被髮佯狂\",\n\"被发入山\": \"被髮入山\",\n\"被发左衽\": \"被髮左衽\",\n\"被发缨冠\": \"被髮纓冠\",\n\"被发阳狂\": \"被髮陽狂\",\n\"被夸\": \"被誇\",\n\"被废后\": \"被廢後\",\n\"被系上\": \"被繫上\",\n\"被里\": \"被裡\",\n\"袭\": \"襲\",\n\"袯\": \"襏\",\n\"裁制\": \"裁製\",\n\"裁并\": \"裁併\",\n\"装\": \"裝\",\n\"装折\": \"裝摺\",\n\"裆\": \"襠\",\n\"裈\": \"褌\",\n\"裢\": \"褳\",\n\"裣\": \"襝\",\n\"裤\": \"褲\",\n\"裥\": \"襉\",\n\"褒赞\": \"褒讚\",\n\"褛\": \"褸\",\n\"褴\": \"襤\",\n\"襕\": \"襴\",\n\"西井里\": \"西井里\",\n\"西历\": \"西曆\",\n\"西历代\": \"西歷代\",\n\"西历任\": \"西歷任\",\n\"西历史\": \"西歷史\",\n\"西历次\": \"西歷次\",\n\"西周钟\": \"西周鐘\",\n\"西岳\": \"西嶽\",\n\"西昆\": \"西崑\",\n\"西游\": \"西遊\",\n\"西湖里\": \"西湖里\",\n\"西西里\": \"西西里\",\n\"西谷米\": \"西谷米\",\n\"要冲\": \"要衝\",\n\"要自制\": \"要自制\",\n\"见\": \"見\",\n\"见棱见角\": \"見稜見角\",\n\"见素抱朴\": \"見素抱樸\",\n\"见钟不打\": \"見鐘不打\",\n\"观\": \"觀\",\n\"观采\": \"觀採\",\n\"觃\": \"覎\",\n\"规\": \"規\",\n\"规范\": \"規範\",\n\"觅\": \"覓\",\n\"视\": \"視\",\n\"觇\": \"覘\",\n\"览\": \"覽\",\n\"觉\": \"覺\",\n\"觊\": \"覬\",\n\"觋\": \"覡\",\n\"觌\": \"覿\",\n\"觍\": \"覥\",\n\"觎\": \"覦\",\n\"觏\": \"覯\",\n\"觐\": \"覲\",\n\"觑\": \"覷\",\n\"角抵\": \"角牴\",\n\"角落发\": \"角落發\",\n\"角落里\": \"角落裡\",\n\"觚棱\": \"觚稜\",\n\"觞\": \"觴\",\n\"解发佯狂\": \"解髮佯狂\",\n\"解封后\": \"解封後\",\n\"解铃仍须系铃人\": \"解鈴仍須繫鈴人\",\n\"解铃还须系铃人\": \"解鈴還須繫鈴人\",\n\"解雇\": \"解僱\",\n\"触\": \"觸\",\n\"触须\": \"觸鬚\",\n\"觯\": \"觶\",\n\"言云\": \"言云\",\n\"言大而夸\": \"言大而夸\",\n\"言里\": \"言裡\",\n\"訚\": \"誾\",\n\"許愿起經\": \"許愿起經\",\n\"許聖杰\": \"許聖杰\",\n\"詟\": \"讋\",\n\"詩云\": \"詩云\",\n\"誉\": \"譽\",\n\"誊\": \"謄\",\n\"語有云\": \"語有云\",\n\"謝杰\": \"謝杰\",\n\"謝華后\": \"謝華后\",\n\"謷丑\": \"謷醜\",\n\"謹愿\": \"謹愿\",\n\"警世钟\": \"警世鐘\",\n\"警报钟\": \"警報鐘\",\n\"警示钟\": \"警示鐘\",\n\"警钟\": \"警鐘\",\n\"讠\": \"訁\",\n\"计\": \"計\",\n\"计划\": \"計劃\",\n\"计时表\": \"計時錶\",\n\"订\": \"訂\",\n\"订制\": \"訂製\",\n\"讣\": \"訃\",\n\"认\": \"認\",\n\"认准\": \"認準\",\n\"讥\": \"譏\",\n\"讦\": \"訐\",\n\"讧\": \"訌\",\n\"讨\": \"討\",\n\"让\": \"讓\",\n\"讪\": \"訕\",\n\"讫\": \"訖\",\n\"讬\": \"託\",\n\"训\": \"訓\",\n\"议\": \"議\",\n\"讯\": \"訊\",\n\"记\": \"記\",\n\"讱\": \"訒\",\n\"讲\": \"講\",\n\"讳\": \"諱\",\n\"讴\": \"謳\",\n\"讵\": \"詎\",\n\"讶\": \"訝\",\n\"讷\": \"訥\",\n\"许\": \"許\",\n\"许愿起经\": \"許愿起經\",\n\"讹\": \"訛\",\n\"论\": \"論\",\n\"论文里\": \"論文裡\",\n\"讻\": \"訩\",\n\"讼\": \"訟\",\n\"讽\": \"諷\",\n\"设\": \"設\",\n\"访\": \"訪\",\n\"诀\": \"訣\",\n\"证\": \"證\",\n\"证谏\": \"証諫\",\n\"诂\": \"詁\",\n\"诃\": \"訶\",\n\"评\": \"評\",\n\"评断发\": \"評斷發\",\n\"评注\": \"評註\",\n\"评鉴\": \"評鑑\",\n\"诅\": \"詛\",\n\"识\": \"識\",\n\"诇\": \"詗\",\n\"诈\": \"詐\",\n\"诉\": \"訴\",\n\"诊\": \"診\",\n\"诋\": \"詆\",\n\"诌\": \"謅\",\n\"词\": \"詞\",\n\"词余\": \"詞餘\",\n\"词干\": \"詞幹\",\n\"词汇\": \"詞彙\",\n\"词里\": \"詞裡\",\n\"诎\": \"詘\",\n\"诏\": \"詔\",\n\"诐\": \"詖\",\n\"译\": \"譯\",\n\"译制\": \"譯製\",\n\"译文里\": \"譯文裡\",\n\"译注\": \"譯註\",\n\"诒\": \"詒\",\n\"诓\": \"誆\",\n\"诔\": \"誄\",\n\"诔赞\": \"誄讚\",\n\"试\": \"試\",\n\"试制\": \"試製\",\n\"诖\": \"詿\",\n\"诗\": \"詩\",\n\"诗云\": \"詩云\",\n\"诗余\": \"詩餘\",\n\"诗赞\": \"詩讚\",\n\"诗钟\": \"詩鐘\",\n\"诘\": \"詰\",\n\"诙\": \"詼\",\n\"诚\": \"誠\",\n\"诚征\": \"誠徵\",\n\"诚朴\": \"誠樸\",\n\"诛\": \"誅\",\n\"诜\": \"詵\",\n\"话\": \"話\",\n\"话里有话\": \"話裡有話\",\n\"诞\": \"誕\",\n\"诟\": \"詬\",\n\"诠\": \"詮\",\n\"诡\": \"詭\",\n\"询\": \"詢\",\n\"诣\": \"詣\",\n\"诤\": \"諍\",\n\"该\": \"該\",\n\"该钟\": \"該鐘\",\n\"详\": \"詳\",\n\"详征博引\": \"詳徵博引\",\n\"详注\": \"詳註\",\n\"诧\": \"詫\",\n\"诨\": \"諢\",\n\"诩\": \"詡\",\n\"诪\": \"譸\",\n\"诫\": \"誡\",\n\"诬\": \"誣\",\n\"诬蔑\": \"誣衊\",\n\"语\": \"語\",\n\"语云\": \"語云\",\n\"语有云\": \"語有云\",\n\"语汇\": \"語彙\",\n\"语法里\": \"語法裡\",\n\"语里\": \"語裡\",\n\"诮\": \"誚\",\n\"误\": \"誤\",\n\"诰\": \"誥\",\n\"诱\": \"誘\",\n\"诱奸\": \"誘姦\",\n\"诲\": \"誨\",\n\"诳\": \"誑\",\n\"说\": \"說\",\n\"说不准\": \"說不準\",\n\"诵\": \"誦\",\n\"诶\": \"誒\",\n\"请\": \"請\",\n\"请君入瓮\": \"請君入甕\",\n\"请托\": \"請託\",\n\"诸\": \"諸\",\n\"诸余\": \"諸餘\",\n\"诹\": \"諏\",\n\"诺\": \"諾\",\n\"读\": \"讀\",\n\"诼\": \"諑\",\n\"诽\": \"誹\",\n\"课\": \"課\",\n\"课余\": \"課餘\",\n\"课征\": \"課徵\",\n\"诿\": \"諉\",\n\"谀\": \"諛\",\n\"谁\": \"誰\",\n\"谁干的\": \"誰幹的\",\n\"谂\": \"諗\",\n\"调\": \"調\",\n\"调准\": \"調準\",\n\"调制\": \"調製\",\n\"调表\": \"調錶\",\n\"调钟表\": \"調鐘錶\",\n\"谄\": \"諂\",\n\"谅\": \"諒\",\n\"谆\": \"諄\",\n\"谇\": \"誶\",\n\"谈\": \"談\",\n\"谈征\": \"談徵\",\n\"谉\": \"讅\",\n\"谊\": \"誼\",\n\"谋\": \"謀\",\n\"谋干\": \"謀幹\",\n\"谌\": \"諶\",\n\"谍\": \"諜\",\n\"谎\": \"謊\",\n\"谏\": \"諫\",\n\"谐\": \"諧\",\n\"谑\": \"謔\",\n\"谒\": \"謁\",\n\"谓\": \"謂\",\n\"谔\": \"諤\",\n\"谕\": \"諭\",\n\"谖\": \"諼\",\n\"谗\": \"讒\",\n\"谘\": \"諮\",\n\"谙\": \"諳\",\n\"谚\": \"諺\",\n\"谛\": \"諦\",\n\"谜\": \"謎\",\n\"谝\": \"諞\",\n\"谞\": \"諝\",\n\"谟\": \"謨\",\n\"谠\": \"讜\",\n\"谡\": \"謖\",\n\"谢\": \"謝\",\n\"谢华后\": \"謝華后\",\n\"谢杰\": \"謝杰\",\n\"谣\": \"謠\",\n\"谤\": \"謗\",\n\"谥\": \"諡\",\n\"谦\": \"謙\",\n\"谧\": \"謐\",\n\"谨\": \"謹\",\n\"谨愿\": \"謹愿\",\n\"谩\": \"謾\",\n\"谪\": \"謫\",\n\"谫\": \"譾\",\n\"谬\": \"謬\",\n\"谬赞\": \"謬讚\",\n\"谬采虚声\": \"謬採虛聲\",\n\"谭\": \"譚\",\n\"谮\": \"譖\",\n\"谯\": \"譙\",\n\"谰\": \"讕\",\n\"谱\": \"譜\",\n\"谲\": \"譎\",\n\"谳\": \"讞\",\n\"谴\": \"譴\",\n\"谵\": \"譫\",\n\"谶\": \"讖\",\n\"谷仓\": \"穀倉\",\n\"谷保家商\": \"穀保家商\",\n\"谷圭\": \"穀圭\",\n\"谷场\": \"穀場\",\n\"谷城县\": \"穀城縣\",\n\"谷壳\": \"穀殼\",\n\"谷子\": \"穀子\",\n\"谷子敬\": \"谷子敬\",\n\"谷日\": \"穀日\",\n\"谷旦\": \"穀旦\",\n\"谷梁\": \"穀梁\",\n\"谷氨\": \"穀氨\",\n\"谷物\": \"穀物\",\n\"谷皮\": \"穀皮\",\n\"谷神\": \"穀神\",\n\"谷禄\": \"穀祿\",\n\"谷米\": \"穀米\",\n\"谷类\": \"穀類\",\n\"谷粒\": \"穀粒\",\n\"谷胱\": \"穀胱\",\n\"谷舱\": \"穀艙\",\n\"谷苗\": \"穀苗\",\n\"谷茬\": \"穀茬\",\n\"谷草\": \"穀草\",\n\"谷谷\": \"穀穀\",\n\"谷贱伤农\": \"穀賤傷農\",\n\"谷贵饿农\": \"穀貴餓農\",\n\"谷雨\": \"穀雨\",\n\"谷食\": \"穀食\",\n\"豆干\": \"豆乾\",\n\"豆腐干\": \"豆腐乾\",\n\"豔后\": \"豔后\",\n\"象征\": \"象徵\",\n\"豮\": \"豶\",\n\"貴价\": \"貴价\",\n\"貴子里\": \"貴子里\",\n\"費米面\": \"費米面\",\n\"賈后\": \"賈后\",\n\"賢后\": \"賢后\",\n\"賦范\": \"賦范\",\n\"賭后\": \"賭后\",\n\"贝\": \"貝\",\n\"贞\": \"貞\",\n\"负\": \"負\",\n\"贠\": \"貟\",\n\"贡\": \"貢\",\n\"财\": \"財\",\n\"责\": \"責\",\n\"贤\": \"賢\",\n\"贤后\": \"賢后\",\n\"败\": \"敗\",\n\"账\": \"賬\",\n\"货\": \"貨\",\n\"质\": \"質\",\n\"质数里\": \"質數裡\",\n\"质朴\": \"質樸\",\n\"贩\": \"販\",\n\"贪\": \"貪\",\n\"贪欲\": \"貪慾\",\n\"贫\": \"貧\",\n\"贬\": \"貶\",\n\"购\": \"購\",\n\"购买欲\": \"購買慾\",\n\"购并\": \"購併\",\n\"贮\": \"貯\",\n\"贯\": \"貫\",\n\"贰\": \"貳\",\n\"贱\": \"賤\",\n\"贲\": \"賁\",\n\"贳\": \"貰\",\n\"贴\": \"貼\",\n\"贵\": \"貴\",\n\"贵价\": \"貴价\",\n\"贵干\": \"貴幹\",\n\"贵征\": \"貴徵\",\n\"贶\": \"貺\",\n\"贷\": \"貸\",\n\"贸\": \"貿\",\n\"费\": \"費\",\n\"费米面\": \"費米面\",\n\"贺\": \"賀\",\n\"贻\": \"貽\",\n\"贻范\": \"貽範\",\n\"贼\": \"賊\",\n\"贽\": \"贄\",\n\"贾\": \"賈\",\n\"贾后\": \"賈后\",\n\"贿\": \"賄\",\n\"赀\": \"貲\",\n\"赁\": \"賃\",\n\"赂\": \"賂\",\n\"赃\": \"贓\",\n\"资\": \"資\",\n\"赅\": \"賅\",\n\"赆\": \"贐\",\n\"赇\": \"賕\",\n\"赈\": \"賑\",\n\"赈饥\": \"賑饑\",\n\"赉\": \"賚\",\n\"赊\": \"賒\",\n\"赋\": \"賦\",\n\"赋范\": \"賦范\",\n\"赌\": \"賭\",\n\"赌台\": \"賭檯\",\n\"赌后\": \"賭后\",\n\"赌斗\": \"賭鬥\",\n\"赍\": \"齎\",\n\"赎\": \"贖\",\n\"赏\": \"賞\",\n\"赏赞\": \"賞讚\",\n\"赐\": \"賜\",\n\"赑\": \"贔\",\n\"赒\": \"賙\",\n\"赓\": \"賡\",\n\"赔\": \"賠\",\n\"赕\": \"賧\",\n\"赖\": \"賴\",\n\"赗\": \"賵\",\n\"赘\": \"贅\",\n\"赙\": \"賻\",\n\"赚\": \"賺\",\n\"赛\": \"賽\",\n\"赜\": \"賾\",\n\"赝\": \"贗\",\n\"赞\": \"贊\",\n\"赞一个\": \"讚一個\",\n\"赞不绝口\": \"讚不絕口\",\n\"赞乐\": \"讚樂\",\n\"赞佩\": \"讚佩\",\n\"赞叹\": \"讚嘆\",\n\"赞呗\": \"讚唄\",\n\"赞扬\": \"讚揚\",\n\"赞歌\": \"讚歌\",\n\"赞美\": \"讚美\",\n\"赞羡\": \"讚羨\",\n\"赞誉\": \"讚譽\",\n\"赞许\": \"讚許\",\n\"赞词\": \"讚詞\",\n\"赞赏\": \"讚賞\",\n\"赞辞\": \"讚辭\",\n\"赞颂\": \"讚頌\",\n\"赟\": \"贇\",\n\"赠\": \"贈\",\n\"赡\": \"贍\",\n\"赢\": \"贏\",\n\"赢余\": \"贏餘\",\n\"赣\": \"贛\",\n\"赤术\": \"赤朮\",\n\"赤绳系足\": \"赤繩繫足\",\n\"赪\": \"赬\",\n\"走回路\": \"走回路\",\n\"赵\": \"趙\",\n\"赵威后\": \"趙威后\",\n\"赵惠后\": \"趙惠后\",\n\"赵治勋\": \"趙治勳\",\n\"赶\": \"趕\",\n\"赶制\": \"趕製\",\n\"赶面棍\": \"趕麵棍\",\n\"起哄\": \"起鬨\",\n\"超级杯\": \"超級盃\",\n\"超赞\": \"超讚\",\n\"趋\": \"趨\",\n\"趙威后\": \"趙威后\",\n\"趙惠后\": \"趙惠后\",\n\"趱\": \"趲\",\n\"趱干\": \"趲幹\",\n\"足球台\": \"足球台\",\n\"趸\": \"躉\",\n\"跃\": \"躍\",\n\"跄\": \"蹌\",\n\"跌扑\": \"跌扑\",\n\"跞\": \"躒\",\n\"路图里\": \"路圖裡\",\n\"路签\": \"路籤\",\n\"路面\": \"路面\",\n\"跳梁小丑\": \"跳樑小丑\",\n\"跳荡\": \"跳蕩\",\n\"践\": \"踐\",\n\"跶\": \"躂\",\n\"跷\": \"蹺\",\n\"跸\": \"蹕\",\n\"跹\": \"躚\",\n\"跻\": \"躋\",\n\"踊\": \"踴\",\n\"踌\": \"躊\",\n\"踡局\": \"踡跼\",\n\"踪\": \"蹤\",\n\"踬\": \"躓\",\n\"踯\": \"躑\",\n\"蹑\": \"躡\",\n\"蹒\": \"蹣\",\n\"蹒局\": \"蹣跼\",\n\"蹭棱子\": \"蹭稜子\",\n\"蹰\": \"躕\",\n\"蹿\": \"躥\",\n\"躁郁\": \"躁鬱\",\n\"躏\": \"躪\",\n\"躜\": \"躦\",\n\"身体发肤\": \"身體髮膚\",\n\"躯\": \"軀\",\n\"躯干\": \"軀幹\",\n\"輼\": \"轀\",\n\"轉向\": \"轉向\",\n\"车\": \"車\",\n\"车库里\": \"車庫裡\",\n\"车站里\": \"車站裡\",\n\"车里\": \"車裡\",\n\"车里雅宾斯克\": \"車里雅賓斯克\",\n\"轧\": \"軋\",\n\"轨\": \"軌\",\n\"轨范\": \"軌範\",\n\"轩\": \"軒\",\n\"轩辟\": \"軒闢\",\n\"轪\": \"軑\",\n\"轫\": \"軔\",\n\"转\": \"轉\",\n\"转向\": \"轉向\",\n\"转托\": \"轉託\",\n\"转斗千里\": \"轉鬥千里\",\n\"轭\": \"軛\",\n\"轮\": \"輪\",\n\"轮回\": \"輪迴\",\n\"轮奸\": \"輪姦\",\n\"软\": \"軟\",\n\"轰\": \"轟\",\n\"轱\": \"軲\",\n\"轲\": \"軻\",\n\"轳\": \"轤\",\n\"轴\": \"軸\",\n\"轵\": \"軹\",\n\"轶\": \"軼\",\n\"轷\": \"軤\",\n\"轸\": \"軫\",\n\"轹\": \"轢\",\n\"轺\": \"軺\",\n\"轻\": \"輕\",\n\"轻松\": \"輕鬆\",\n\"轻松松\": \"輕鬆鬆\",\n\"轼\": \"軾\",\n\"载\": \"載\",\n\"轾\": \"輊\",\n\"轿\": \"轎\",\n\"辀\": \"輈\",\n\"辁\": \"輇\",\n\"辂\": \"輅\",\n\"较\": \"較\",\n\"辄\": \"輒\",\n\"辅\": \"輔\",\n\"辆\": \"輛\",\n\"辇\": \"輦\",\n\"辈\": \"輩\",\n\"辉\": \"輝\",\n\"辊\": \"輥\",\n\"辋\": \"輞\",\n\"辌\": \"輬\",\n\"辍\": \"輟\",\n\"辎\": \"輜\",\n\"辏\": \"輳\",\n\"辐\": \"輻\",\n\"辑\": \"輯\",\n\"辒\": \"轀\",\n\"输\": \"輸\",\n\"辔\": \"轡\",\n\"辕\": \"轅\",\n\"辖\": \"轄\",\n\"辗\": \"輾\",\n\"辘\": \"轆\",\n\"辙\": \"轍\",\n\"辚\": \"轔\",\n\"辛丑\": \"辛丑\",\n\"辞\": \"辭\",\n\"辞汇\": \"辭彙\",\n\"辟为\": \"闢為\",\n\"辟佛\": \"闢佛\",\n\"辟作\": \"闢作\",\n\"辟划\": \"闢劃\",\n\"辟土\": \"闢土\",\n\"辟地\": \"闢地\",\n\"辟室\": \"闢室\",\n\"辟建\": \"闢建\",\n\"辟田\": \"闢田\",\n\"辟筑\": \"闢築\",\n\"辟谣\": \"闢謠\",\n\"辟谷\": \"辟穀\",\n\"辟辟\": \"闢辟\",\n\"辟邪以律\": \"闢邪以律\",\n\"辣面\": \"辣麵\",\n\"辩\": \"辯\",\n\"辩斗\": \"辯鬥\",\n\"辫\": \"辮\",\n\"辫发\": \"辮髮\",\n\"辰溪县\": \"辰谿縣\",\n\"边\": \"邊\",\n\"辽\": \"遼\",\n\"辽沈\": \"遼瀋\",\n\"达\": \"達\",\n\"迁\": \"遷\",\n\"迂回\": \"迂迴\",\n\"过\": \"過\",\n\"过水面\": \"過水麵\",\n\"迈\": \"邁\",\n\"运\": \"運\",\n\"近日无仇\": \"近日無讎\",\n\"返朴\": \"返樸\",\n\"还\": \"還\",\n\"还冲\": \"還衝\",\n\"还采\": \"還採\",\n\"这\": \"這\",\n\"这么干\": \"這麼幹\",\n\"这伙人\": \"這夥人\",\n\"这出\": \"這齣\",\n\"这出世\": \"這出世\",\n\"这出乎\": \"這出乎\",\n\"这出人\": \"這出人\",\n\"这出版\": \"這出版\",\n\"这出现\": \"這出現\",\n\"这出生\": \"這出生\",\n\"这出色\": \"這出色\",\n\"这出身\": \"這出身\",\n\"这出道\": \"這出道\",\n\"这只\": \"這隻\",\n\"这只不\": \"這只不\",\n\"这只不过\": \"這只不過\",\n\"这只会\": \"這只會\",\n\"这只允\": \"這只允\",\n\"这只包括\": \"這只包括\",\n\"这只可\": \"這只可\",\n\"这只在\": \"這只在\",\n\"这只容\": \"這只容\",\n\"这只应\": \"這只應\",\n\"这只是\": \"這只是\",\n\"这只比\": \"這只比\",\n\"这只用\": \"這只用\",\n\"这只能\": \"這只能\",\n\"这只要\": \"這只要\",\n\"这只采\": \"這只採\",\n\"这只限\": \"這只限\",\n\"这只需\": \"這只需\",\n\"这只须\": \"這只須\",\n\"这里\": \"這裡\",\n\"这钟\": \"這鐘\",\n\"进\": \"進\",\n\"进两出\": \"進兩出\",\n\"进制\": \"進制\",\n\"远\": \"遠\",\n\"远游\": \"遠遊\",\n\"违\": \"違\",\n\"连\": \"連\",\n\"连三并四\": \"連三併四\",\n\"连发式\": \"連發式\",\n\"连系\": \"連繫\",\n\"连采\": \"連採\",\n\"迟\": \"遲\",\n\"迥然回异\": \"迥然迴異\",\n\"迩\": \"邇\",\n\"迳\": \"逕\",\n\"迷蒙\": \"迷濛\",\n\"迹\": \"跡\",\n\"追凶\": \"追兇\",\n\"退伙\": \"退夥\",\n\"适\": \"適\",\n\"逆钟\": \"逆鐘\",\n\"逆钟向\": \"逆鐘向\",\n\"逆风后\": \"逆風後\",\n\"选\": \"選\",\n\"选手表决\": \"選手表決\",\n\"选手表明\": \"選手表明\",\n\"选手表现\": \"選手表現\",\n\"选手表示\": \"選手表示\",\n\"选手表达\": \"選手表達\",\n\"逊\": \"遜\",\n\"逋发\": \"逋髮\",\n\"逍遥游\": \"逍遙遊\",\n\"透辟\": \"透闢\",\n\"递\": \"遞\",\n\"递回\": \"遞迴\",\n\"通历\": \"通曆\",\n\"通历史\": \"通歷史\",\n\"通奸\": \"通姦\",\n\"通心面\": \"通心麵\",\n\"通鉴\": \"通鑑\",\n\"逞凶斗狠\": \"逞兇鬥狠\",\n\"造钟\": \"造鐘\",\n\"逦\": \"邐\",\n\"進制\": \"進制\",\n\"逻\": \"邏\",\n\"逼并\": \"逼併\",\n\"逾闲\": \"踰閑\",\n\"遇风后\": \"遇風後\",\n\"遏制\": \"遏制\",\n\"道范\": \"道範\",\n\"遗\": \"遺\",\n\"遗传钟\": \"遺傳鐘\",\n\"遗范\": \"遺範\",\n\"遗迹\": \"遺蹟\",\n\"遥\": \"遙\",\n\"遨游\": \"遨遊\",\n\"遮丑\": \"遮醜\",\n\"邀天之幸\": \"邀天之倖\",\n\"邋里邋遢\": \"邋裡邋遢\",\n\"邓\": \"鄧\",\n\"邝\": \"鄺\",\n\"那卷\": \"那捲\",\n\"那只\": \"那隻\",\n\"那只不过\": \"那只不過\",\n\"那只会\": \"那只會\",\n\"那只包括\": \"那只包括\",\n\"那只可\": \"那只可\",\n\"那只在\": \"那只在\",\n\"那只应\": \"那只應\",\n\"那只怕\": \"那只怕\",\n\"那只是\": \"那只是\",\n\"那只有\": \"那只有\",\n\"那只比\": \"那只比\",\n\"那只用\": \"那只用\",\n\"那只能\": \"那只能\",\n\"那只要\": \"那只要\",\n\"那只限\": \"那只限\",\n\"那只需\": \"那只需\",\n\"那只须\": \"那只須\",\n\"那里\": \"那裡\",\n\"邬\": \"鄔\",\n\"邮\": \"郵\",\n\"邱于庭\": \"邱于庭\",\n\"邹\": \"鄒\",\n\"邺\": \"鄴\",\n\"邻\": \"鄰\",\n\"郁伊\": \"鬱伊\",\n\"郁勃\": \"鬱勃\",\n\"郁卒\": \"鬱卒\",\n\"郁南\": \"鬱南\",\n\"郁垒\": \"鬱壘\",\n\"郁堙不偶\": \"鬱堙不偶\",\n\"郁塞\": \"鬱塞\",\n\"郁律\": \"鬱律\",\n\"郁悒\": \"鬱悒\",\n\"郁愤\": \"鬱憤\",\n\"郁抑\": \"鬱抑\",\n\"郁挹\": \"鬱挹\",\n\"郁朴\": \"郁樸\",\n\"郁林\": \"鬱林\",\n\"郁气\": \"鬱氣\",\n\"郁江\": \"鬱江\",\n\"郁沉沉\": \"鬱沉沉\",\n\"郁泱\": \"鬱泱\",\n\"郁火\": \"鬱火\",\n\"郁热\": \"鬱熱\",\n\"郁燠\": \"鬱燠\",\n\"郁症\": \"鬱症\",\n\"郁积\": \"鬱積\",\n\"郁纡\": \"鬱紆\",\n\"郁结\": \"鬱結\",\n\"郁蒸\": \"鬱蒸\",\n\"郁蓊\": \"鬱蓊\",\n\"郁血\": \"鬱血\",\n\"郁邑\": \"鬱邑\",\n\"郁郁\": \"鬱郁\",\n\"郁郁不乐\": \"鬱鬱不樂\",\n\"郁郁不平\": \"鬱鬱不平\",\n\"郁郁寡欢\": \"鬱鬱寡歡\",\n\"郁郁而终\": \"鬱鬱而終\",\n\"郁郁苍苍\": \"鬱鬱蒼蒼\",\n\"郁郁菲菲\": \"郁郁菲菲\",\n\"郁郁葱葱\": \"鬱鬱蔥蔥\",\n\"郁郁青青\": \"郁郁青青\",\n\"郁金\": \"鬱金\",\n\"郁闭\": \"鬱閉\",\n\"郁闷\": \"鬱悶\",\n\"郁陶\": \"鬱陶\",\n\"郁黑\": \"鬱黑\",\n\"郊游\": \"郊遊\",\n\"郏\": \"郟\",\n\"郐\": \"鄶\",\n\"郑\": \"鄭\",\n\"郑凯云\": \"鄭凱云\",\n\"郑苹如\": \"鄭蘋如\",\n\"郓\": \"鄆\",\n\"郘钟\": \"郘鐘\",\n\"郦\": \"酈\",\n\"郧\": \"鄖\",\n\"部子里\": \"部子里\",\n\"部落发\": \"部落發\",\n\"郭后\": \"郭后\",\n\"郸\": \"鄲\",\n\"都市里\": \"都市裡\",\n\"鄉愿\": \"鄉愿\",\n\"鄭凱云\": \"鄭凱云\",\n\"酂\": \"酇\",\n\"配制\": \"配製\",\n\"配制饲料\": \"配制飼料\",\n\"配图里\": \"配圖裡\",\n\"酒坛\": \"酒罈\",\n\"酒帘\": \"酒帘\",\n\"酒曲\": \"酒麴\",\n\"酒气冲天\": \"酒氣衝天\",\n\"酒肴\": \"酒肴\",\n\"酒麹\": \"酒麴\",\n\"酝\": \"醞\",\n\"酥松\": \"酥鬆\",\n\"酦\": \"醱\",\n\"酱\": \"醬\",\n\"酸姜\": \"酸薑\",\n\"酽\": \"釅\",\n\"酾\": \"釃\",\n\"酿\": \"釀\",\n\"酿制\": \"釀製\",\n\"醇朴\": \"醇樸\",\n\"醋坛\": \"醋罈\",\n\"醖\": \"醞\",\n\"采下\": \"採下\",\n\"采为\": \"採為\",\n\"采买\": \"採買\",\n\"采伐\": \"採伐\",\n\"采住\": \"採住\",\n\"采信\": \"採信\",\n\"采光\": \"採光\",\n\"采到\": \"採到\",\n\"采制\": \"採制\",\n\"采办\": \"採辦\",\n\"采区\": \"採區\",\n\"采去\": \"採去\",\n\"采取\": \"採取\",\n\"采回\": \"採回\",\n\"采在\": \"採在\",\n\"采好\": \"採好\",\n\"采录\": \"採錄\",\n\"采得\": \"採得\",\n\"采择\": \"採擇\",\n\"采拾\": \"採拾\",\n\"采挖\": \"採挖\",\n\"采掘\": \"採掘\",\n\"采摘\": \"採摘\",\n\"采摭\": \"採摭\",\n\"采撷\": \"採擷\",\n\"采收\": \"採收\",\n\"采料\": \"採料\",\n\"采暖\": \"採暖\",\n\"采树种\": \"採樹種\",\n\"采样\": \"採樣\",\n\"采桑\": \"採桑\",\n\"采樵人\": \"採樵人\",\n\"采气\": \"採氣\",\n\"采油\": \"採油\",\n\"采煤\": \"採煤\",\n\"采猎\": \"採獵\",\n\"采珠\": \"採珠\",\n\"采生折割\": \"採生折割\",\n\"采用\": \"採用\",\n\"采盐\": \"採鹽\",\n\"采石\": \"採石\",\n\"采石之役\": \"采石之役\",\n\"采石之战\": \"采石之戰\",\n\"采石之戰\": \"采石之戰\",\n\"采石矶\": \"采石磯\",\n\"采石磯\": \"采石磯\",\n\"采矿\": \"採礦\",\n\"采砂场\": \"採砂場\",\n\"采种\": \"採種\",\n\"采空区\": \"採空區\",\n\"采空采穗\": \"採空採穗\",\n\"采纳\": \"採納\",\n\"采给\": \"採給\",\n\"采编\": \"採編\",\n\"采花\": \"採花\",\n\"采芹人\": \"採芹人\",\n\"采茶\": \"採茶\",\n\"采药\": \"採藥\",\n\"采莲\": \"採蓮\",\n\"采获\": \"採獲\",\n\"采菊\": \"採菊\",\n\"采薇\": \"採薇\",\n\"采薪\": \"採薪\",\n\"采血\": \"採血\",\n\"采行\": \"採行\",\n\"采补\": \"採補\",\n\"采访\": \"採訪\",\n\"采证\": \"採證\",\n\"采购\": \"採購\",\n\"采过\": \"採過\",\n\"采运\": \"採運\",\n\"采选\": \"採選\",\n\"采金\": \"採金\",\n\"采铁\": \"採鐵\",\n\"采集\": \"採集\",\n\"采风\": \"採風\",\n\"采风问俗\": \"採風問俗\",\n\"采食\": \"採食\",\n\"释\": \"釋\",\n\"里勾外连\": \"裡勾外連\",\n\"里头\": \"裡頭\",\n\"里层\": \"裡層\",\n\"里屋\": \"裡屋\",\n\"里带\": \"裡帶\",\n\"里应外合\": \"裡應外合\",\n\"里弦\": \"裡弦\",\n\"里水镇\": \"裏水鎮\",\n\"里海\": \"裏海\",\n\"里海大学\": \"里海大學\",\n\"里海大學\": \"里海大學\",\n\"里海崖\": \"里海崖\",\n\"里海茨\": \"里海茨\",\n\"里白\": \"裏白\",\n\"里脊\": \"裡脊\",\n\"里衣\": \"裡衣\",\n\"里边\": \"裡邊\",\n\"里运河\": \"裏運河\",\n\"里通外国\": \"裡通外國\",\n\"里通外敌\": \"裡通外敵\",\n\"里铺\": \"里舖\",\n\"里间\": \"裡間\",\n\"里面\": \"裡面\",\n\"里面包\": \"裡面包\",\n\"重制\": \"重製\",\n\"重回\": \"重回\",\n\"重复\": \"重複\",\n\"重托\": \"重託\",\n\"重游\": \"重遊\",\n\"重罗面\": \"重羅麵\",\n\"野姜\": \"野薑\",\n\"野游\": \"野遊\",\n\"量不准\": \"量不準\",\n\"金仆姑\": \"金僕姑\",\n\"金发\": \"金髮\",\n\"金发放\": \"金發放\",\n\"金圣叹\": \"金聖歎\",\n\"金城里\": \"金城里\",\n\"金溪县\": \"金谿縣\",\n\"金范\": \"金範\",\n\"金表态\": \"金表態\",\n\"金表情\": \"金表情\",\n\"金表扬\": \"金表揚\",\n\"金表明\": \"金表明\",\n\"金表演\": \"金表演\",\n\"金表现\": \"金表現\",\n\"金表示\": \"金表示\",\n\"金表达\": \"金表達\",\n\"金表露\": \"金表露\",\n\"金表面\": \"金表面\",\n\"金装玉里\": \"金裝玉裡\",\n\"金钟\": \"金鐘\",\n\"金链\": \"金鍊\",\n\"鉴\": \"鑒\",\n\"鉴于\": \"鑑於\",\n\"鉴别\": \"鑑別\",\n\"鉴古\": \"鑑古\",\n\"鉴定\": \"鑑定\",\n\"鉴察\": \"鑑察\",\n\"鉴往知来\": \"鑑往知來\",\n\"鉴戒\": \"鑑戒\",\n\"鉴湖\": \"鑑湖\",\n\"鉴藏\": \"鑑藏\",\n\"鉴证\": \"鑑證\",\n\"鉴识\": \"鑑識\",\n\"鉴谅\": \"鑑諒\",\n\"鉴赏\": \"鑑賞\",\n\"銮\": \"鑾\",\n\"錾\": \"鏨\",\n\"钅\": \"釒\",\n\"钆\": \"釓\",\n\"钇\": \"釔\",\n\"针\": \"針\",\n\"钉\": \"釘\",\n\"钊\": \"釗\",\n\"钋\": \"釙\",\n\"钌\": \"釕\",\n\"钍\": \"釷\",\n\"钎\": \"釺\",\n\"钏\": \"釧\",\n\"钐\": \"釤\",\n\"钑\": \"鈒\",\n\"钒\": \"釩\",\n\"钓\": \"釣\",\n\"钔\": \"鍆\",\n\"钕\": \"釹\",\n\"钖\": \"鍚\",\n\"钗\": \"釵\",\n\"钘\": \"鈃\",\n\"钙\": \"鈣\",\n\"钚\": \"鈈\",\n\"钛\": \"鈦\",\n\"钜\": \"鉅\",\n\"钝\": \"鈍\",\n\"钞\": \"鈔\",\n\"钟\": \"鍾\",\n\"钟上\": \"鐘上\",\n\"钟下\": \"鐘下\",\n\"钟不\": \"鐘不\",\n\"钟不扣不鸣\": \"鐘不扣不鳴\",\n\"钟不撞不鸣\": \"鐘不撞不鳴\",\n\"钟不敲不响\": \"鐘不敲不響\",\n\"钟不空则哑\": \"鐘不空則啞\",\n\"钟乳洞\": \"鐘乳洞\",\n\"钟乳石\": \"鐘乳石\",\n\"钟体\": \"鐘體\",\n\"钟停\": \"鐘停\",\n\"钟关\": \"鐘關\",\n\"钟匠\": \"鐘匠\",\n\"钟发音\": \"鐘發音\",\n\"钟口\": \"鐘口\",\n\"钟响\": \"鐘響\",\n\"钟在寺里\": \"鐘在寺裡\",\n\"钟塔\": \"鐘塔\",\n\"钟壁\": \"鐘壁\",\n\"钟声\": \"鐘聲\",\n\"钟太\": \"鐘太\",\n\"钟头\": \"鐘頭\",\n\"钟好\": \"鐘好\",\n\"钟山\": \"鐘山\",\n\"钟左右\": \"鐘左右\",\n\"钟差\": \"鐘差\",\n\"钟座\": \"鐘座\",\n\"钟形\": \"鐘形\",\n\"钟形虫\": \"鐘形蟲\",\n\"钟律\": \"鐘律\",\n\"钟摆\": \"鐘擺\",\n\"钟敲\": \"鐘敲\",\n\"钟有\": \"鐘有\",\n\"钟楼\": \"鐘樓\",\n\"钟模\": \"鐘模\",\n\"钟没\": \"鐘沒\",\n\"钟漏\": \"鐘漏\",\n\"钟点\": \"鐘點\",\n\"钟王\": \"鐘王\",\n\"钟琴\": \"鐘琴\",\n\"钟的\": \"鐘的\",\n\"钟盘\": \"鐘盤\",\n\"钟相\": \"鐘相\",\n\"钟磬\": \"鐘磬\",\n\"钟纽\": \"鐘紐\",\n\"钟罩\": \"鐘罩\",\n\"钟腰\": \"鐘腰\",\n\"钟花\": \"鐘花\",\n\"钟螺\": \"鐘螺\",\n\"钟行\": \"鐘行\",\n\"钟表\": \"鐘錶\",\n\"钟表停\": \"鐘錶停\",\n\"钟表盘\": \"鐘錶盤\",\n\"钟表速\": \"鐘錶速\",\n\"钟表面\": \"鐘表面\",\n\"钟被\": \"鐘被\",\n\"钟调\": \"鐘調\",\n\"钟身\": \"鐘身\",\n\"钟速\": \"鐘速\",\n\"钟陈列\": \"鐘陳列\",\n\"钟面\": \"鐘面\",\n\"钟顶\": \"鐘頂\",\n\"钟鸣\": \"鐘鳴\",\n\"钟鼎\": \"鐘鼎\",\n\"钟鼓\": \"鐘鼓\",\n\"钠\": \"鈉\",\n\"钡\": \"鋇\",\n\"钢\": \"鋼\",\n\"钢之炼金术师\": \"鋼之鍊金術師\",\n\"钢制\": \"鋼製\",\n\"钢梁\": \"鋼樑\",\n\"钣\": \"鈑\",\n\"钤\": \"鈐\",\n\"钥\": \"鑰\",\n\"钦\": \"欽\",\n\"钧\": \"鈞\",\n\"钨\": \"鎢\",\n\"钩\": \"鉤\",\n\"钩心斗角\": \"鈎心鬥角\",\n\"钪\": \"鈧\",\n\"钫\": \"鈁\",\n\"钬\": \"鈥\",\n\"钭\": \"鈄\",\n\"钮\": \"鈕\",\n\"钯\": \"鈀\",\n\"钰\": \"鈺\",\n\"钱\": \"錢\",\n\"钱范\": \"錢範\",\n\"钱谷\": \"錢穀\",\n\"钲\": \"鉦\",\n\"钳\": \"鉗\",\n\"钴\": \"鈷\",\n\"钵\": \"鉢\",\n\"钶\": \"鈳\",\n\"钷\": \"鉕\",\n\"钸\": \"鈽\",\n\"钹\": \"鈸\",\n\"钺\": \"鉞\",\n\"钻\": \"鑽\",\n\"钼\": \"鉬\",\n\"钽\": \"鉭\",\n\"钾\": \"鉀\",\n\"钿\": \"鈿\",\n\"铀\": \"鈾\",\n\"铁\": \"鐵\",\n\"铁制\": \"鐵製\",\n\"铁钟\": \"鐵鐘\",\n\"铂\": \"鉑\",\n\"铃\": \"鈴\",\n\"铄\": \"鑠\",\n\"铅\": \"鉛\",\n\"铆\": \"鉚\",\n\"铇\": \"鉋\",\n\"铈\": \"鈰\",\n\"铉\": \"鉉\",\n\"铊\": \"鉈\",\n\"铋\": \"鉍\",\n\"铌\": \"鈮\",\n\"铍\": \"鈹\",\n\"铎\": \"鐸\",\n\"铏\": \"鉶\",\n\"铐\": \"銬\",\n\"铑\": \"銠\",\n\"铒\": \"鉺\",\n\"铓\": \"鋩\",\n\"铔\": \"錏\",\n\"铕\": \"銪\",\n\"铖\": \"鋮\",\n\"铗\": \"鋏\",\n\"铘\": \"鋣\",\n\"铙\": \"鐃\",\n\"铚\": \"銍\",\n\"铛\": \"鐺\",\n\"铜\": \"銅\",\n\"铜制\": \"銅製\",\n\"铜范\": \"銅範\",\n\"铜钟\": \"銅鐘\",\n\"铝\": \"鋁\",\n\"铝制\": \"鋁製\",\n\"铞\": \"銱\",\n\"铟\": \"銦\",\n\"铠\": \"鎧\",\n\"铡\": \"鍘\",\n\"铢\": \"銖\",\n\"铣\": \"銑\",\n\"铤\": \"鋌\",\n\"铥\": \"銩\",\n\"铦\": \"銛\",\n\"铧\": \"鏵\",\n\"铨\": \"銓\",\n\"铩\": \"鎩\",\n\"铪\": \"鉿\",\n\"铫\": \"銚\",\n\"铬\": \"鉻\",\n\"铭\": \"銘\",\n\"铮\": \"錚\",\n\"铯\": \"銫\",\n\"铯钟\": \"銫鐘\",\n\"铰\": \"鉸\",\n\"铱\": \"銥\",\n\"铲\": \"鏟\",\n\"铲出\": \"剷出\",\n\"铲刈\": \"剷刈\",\n\"铲头\": \"剷頭\",\n\"铲平\": \"剷平\",\n\"铲除\": \"剷除\",\n\"铳\": \"銃\",\n\"铴\": \"鐋\",\n\"铵\": \"銨\",\n\"银\": \"銀\",\n\"银发\": \"銀髮\",\n\"银朱\": \"銀硃\",\n\"铷\": \"銣\",\n\"铸\": \"鑄\",\n\"铸钟\": \"鑄鐘\",\n\"铹\": \"鐒\",\n\"铺\": \"鋪\",\n\"铻\": \"鋙\",\n\"铼\": \"錸\",\n\"铽\": \"鋱\",\n\"链\": \"鏈\",\n\"链表\": \"鍊表\",\n\"铿\": \"鏗\",\n\"销\": \"銷\",\n\"锁\": \"鎖\",\n\"锂\": \"鋰\",\n\"锃\": \"鋥\",\n\"锄\": \"鋤\",\n\"锅\": \"鍋\",\n\"锆\": \"鋯\",\n\"锇\": \"鋨\",\n\"锈\": \"鏽\",\n\"锈病\": \"銹病\",\n\"锉\": \"銼\",\n\"锊\": \"鋝\",\n\"锋\": \"鋒\",\n\"锌\": \"鋅\",\n\"锌制\": \"鋅製\",\n\"锍\": \"鋶\",\n\"锎\": \"鐦\",\n\"锏\": \"鐧\",\n\"锐\": \"銳\",\n\"锑\": \"銻\",\n\"锒\": \"鋃\",\n\"锓\": \"鋟\",\n\"锔\": \"鋦\",\n\"锕\": \"錒\",\n\"锖\": \"錆\",\n\"锗\": \"鍺\",\n\"锘\": \"鍩\",\n\"错\": \"錯\",\n\"锚\": \"錨\",\n\"锛\": \"錛\",\n\"锜\": \"錡\",\n\"锝\": \"鍀\",\n\"锞\": \"錁\",\n\"锟\": \"錕\",\n\"锠\": \"錩\",\n\"锡\": \"錫\",\n\"锢\": \"錮\",\n\"锣\": \"鑼\",\n\"锤\": \"錘\",\n\"锤炼\": \"錘鍊\",\n\"锥\": \"錐\",\n\"锦\": \"錦\",\n\"锦卤\": \"錦滷\",\n\"锦绣花园\": \"錦綉花園\",\n\"锧\": \"鑕\",\n\"锨\": \"杴\",\n\"锩\": \"錈\",\n\"锪\": \"鍃\",\n\"锫\": \"錇\",\n\"锬\": \"錟\",\n\"锭\": \"錠\",\n\"键\": \"鍵\",\n\"锯\": \"鋸\",\n\"锰\": \"錳\",\n\"锱\": \"錙\",\n\"锲\": \"鍥\",\n\"锲而不舍\": \"鍥而不捨\",\n\"锳\": \"鍈\",\n\"锴\": \"鍇\",\n\"锵\": \"鏘\",\n\"锶\": \"鍶\",\n\"锷\": \"鍔\",\n\"锸\": \"鍤\",\n\"锹\": \"鍬\",\n\"锺\": \"鍾\",\n\"锻\": \"鍛\",\n\"锼\": \"鎪\",\n\"锽\": \"鍠\",\n\"锾\": \"鍰\",\n\"锿\": \"鎄\",\n\"镀\": \"鍍\",\n\"镁\": \"鎂\",\n\"镂\": \"鏤\",\n\"镃\": \"鎡\",\n\"镄\": \"鐨\",\n\"镅\": \"鎇\",\n\"镆\": \"鏌\",\n\"镇\": \"鎮\",\n\"镇里\": \"鎮裡\",\n\"镈\": \"鎛\",\n\"镉\": \"鎘\",\n\"镊\": \"鑷\",\n\"镋\": \"钂\",\n\"镌\": \"鐫\",\n\"镍\": \"鎳\",\n\"镎\": \"鎿\",\n\"镏\": \"鎦\",\n\"镐\": \"鎬\",\n\"镑\": \"鎊\",\n\"镒\": \"鎰\",\n\"镓\": \"鎵\",\n\"镔\": \"鑌\",\n\"镕\": \"鎔\",\n\"镖\": \"鏢\",\n\"镗\": \"鏜\",\n\"镘\": \"鏝\",\n\"镙\": \"鏍\",\n\"镚\": \"鏰\",\n\"镛\": \"鏞\",\n\"镜\": \"鏡\",\n\"镜图里\": \"鏡圖裡\",\n\"镝\": \"鏑\",\n\"镞\": \"鏃\",\n\"镟\": \"鏇\",\n\"镠\": \"鏐\",\n\"镡\": \"鐔\",\n\"镢\": \"钁\",\n\"镣\": \"鐐\",\n\"镤\": \"鏷\",\n\"镥\": \"鑥\",\n\"镦\": \"鐓\",\n\"镧\": \"鑭\",\n\"镨\": \"鐠\",\n\"镩\": \"鑹\",\n\"镪\": \"鏹\",\n\"镫\": \"鐙\",\n\"镬\": \"鑊\",\n\"镭\": \"鐳\",\n\"镮\": \"鐶\",\n\"镯\": \"鐲\",\n\"镰\": \"鐮\",\n\"镰仓\": \"鎌倉\",\n\"镱\": \"鐿\",\n\"镲\": \"鑔\",\n\"镳\": \"鑣\",\n\"镴\": \"鑞\",\n\"镵\": \"鑱\",\n\"镶\": \"鑲\",\n\"長几\": \"長几\",\n\"长\": \"長\",\n\"长几\": \"長几\",\n\"长历\": \"長曆\",\n\"长历史\": \"長歷史\",\n\"长发公主\": \"長髮公主\",\n\"长发妹\": \"長髮妹\",\n\"长发姑娘\": \"長髮姑娘\",\n\"长得丑\": \"長得醜\",\n\"開山辟谷\": \"開山辟谷\",\n\"關注：\": \"關注：\",\n\"门\": \"門\",\n\"门吊儿\": \"門弔兒\",\n\"门帘\": \"門帘\",\n\"门里\": \"門裡\",\n\"闩\": \"閂\",\n\"闪\": \"閃\",\n\"闫\": \"閆\",\n\"闫怀礼\": \"閆懷禮\",\n\"闬\": \"閈\",\n\"闭\": \"閉\",\n\"问\": \"問\",\n\"闯\": \"闖\",\n\"闯炼\": \"闖鍊\",\n\"闯荡\": \"闖蕩\",\n\"闰\": \"閏\",\n\"闱\": \"闈\",\n\"闲\": \"閒\",\n\"闲情逸致\": \"閒情逸緻\",\n\"闲游\": \"閒遊\",\n\"闲荡\": \"閒蕩\",\n\"闲邪\": \"閑邪\",\n\"闳\": \"閎\",\n\"间\": \"間\",\n\"间不容发\": \"間不容髮\",\n\"间里\": \"間裡\",\n\"闵\": \"閔\",\n\"闵采尔\": \"閔採爾\",\n\"闶\": \"閌\",\n\"闷\": \"悶\",\n\"闸\": \"閘\",\n\"闹\": \"鬧\",\n\"闹表\": \"鬧錶\",\n\"闹钟\": \"鬧鐘\",\n\"闺\": \"閨\",\n\"闺范\": \"閨範\",\n\"闻\": \"聞\",\n\"闻风后\": \"聞風後\",\n\"闼\": \"闥\",\n\"闽\": \"閩\",\n\"闾\": \"閭\",\n\"闿\": \"闓\",\n\"阀\": \"閥\",\n\"阁\": \"閣\",\n\"阁府\": \"閤府\",\n\"阂\": \"閡\",\n\"阃\": \"閫\",\n\"阃范\": \"閫範\",\n\"阄\": \"鬮\",\n\"阅\": \"閱\",\n\"阆\": \"閬\",\n\"阇\": \"闍\",\n\"阈\": \"閾\",\n\"阉\": \"閹\",\n\"阊\": \"閶\",\n\"阋\": \"鬩\",\n\"阌\": \"閿\",\n\"阍\": \"閽\",\n\"阎\": \"閻\",\n\"阏\": \"閼\",\n\"阐\": \"闡\",\n\"阑\": \"闌\",\n\"阒\": \"闃\",\n\"阓\": \"闠\",\n\"阔\": \"闊\",\n\"阕\": \"闋\",\n\"阖\": \"闔\",\n\"阗\": \"闐\",\n\"阘\": \"闒\",\n\"阙\": \"闕\",\n\"阚\": \"闞\",\n\"阛\": \"闤\",\n\"队\": \"隊\",\n\"队里\": \"隊裡\",\n\"防制法\": \"防制法\",\n\"防御\": \"防禦\",\n\"防水表\": \"防水錶\",\n\"防范\": \"防範\",\n\"阳\": \"陽\",\n\"阳历\": \"陽曆\",\n\"阳历史\": \"陽歷史\",\n\"阳春面\": \"陽春麵\",\n\"阳谷\": \"陽穀\",\n\"阴\": \"陰\",\n\"阴历\": \"陰曆\",\n\"阴历史\": \"陰歷史\",\n\"阴干\": \"陰乾\",\n\"阴沟里翻船\": \"陰溝裡翻船\",\n\"阴郁\": \"陰鬱\",\n\"阵\": \"陣\",\n\"阶\": \"階\",\n\"阿里\": \"阿里\",\n\"附注\": \"附註\",\n\"际\": \"際\",\n\"陆\": \"陸\",\n\"陇\": \"隴\",\n\"陈\": \"陳\",\n\"陈升\": \"陳昇\",\n\"陈有后\": \"陳有后\",\n\"陈杰\": \"陳杰\",\n\"陈炼\": \"陳鍊\",\n\"陉\": \"陘\",\n\"限制\": \"限制\",\n\"陕\": \"陝\",\n\"院里\": \"院裡\",\n\"陦\": \"隯\",\n\"陧\": \"隉\",\n\"陨\": \"隕\",\n\"险\": \"險\",\n\"陪吊\": \"陪弔\",\n\"陳冲\": \"陳冲\",\n\"陳士杰\": \"陳士杰\",\n\"陳有后\": \"陳有后\",\n\"陳杰\": \"陳杰\",\n\"陶制\": \"陶製\",\n\"隆准\": \"隆準\",\n\"隆准许\": \"隆准許\",\n\"随\": \"隨\",\n\"隐\": \"隱\",\n\"隐几\": \"隱几\",\n\"隐占\": \"隱佔\",\n\"隱几\": \"隱几\",\n\"隶\": \"隸\",\n\"隽\": \"雋\",\n\"难\": \"難\",\n\"难舍\": \"難捨\",\n\"雄斗斗\": \"雄斗斗\",\n\"雅范\": \"雅範\",\n\"集团\": \"集團\",\n\"集数里\": \"集數裡\",\n\"集游法\": \"集遊法\",\n\"集里\": \"集裡\",\n\"雇\": \"僱\",\n\"雇主\": \"僱主\",\n\"雇人\": \"僱人\",\n\"雇佣\": \"僱傭\",\n\"雇农\": \"僱農\",\n\"雇到\": \"僱到\",\n\"雇工\": \"僱工\",\n\"雇船\": \"僱船\",\n\"雇请\": \"僱請\",\n\"雇车\": \"僱車\",\n\"雏\": \"雛\",\n\"雕心雁爪\": \"鵰心雁爪\",\n\"雕悍\": \"鵰悍\",\n\"雕梁画栋\": \"雕樑畫棟\",\n\"雕翎\": \"鵰翎\",\n\"雕鹗\": \"鵰鶚\",\n\"雙胜類\": \"雙胜類\",\n\"雠\": \"讎\",\n\"雨蒙蒙\": \"雨濛濛\",\n\"雪窗萤几\": \"雪窗螢几\",\n\"雪窗螢几\": \"雪窗螢几\",\n\"雪里\": \"雪裡\",\n\"雪里红\": \"雪裡紅\",\n\"雪里蕻\": \"雪裡蕻\",\n\"雳\": \"靂\",\n\"零个\": \"零個\",\n\"零余\": \"零餘\",\n\"零只\": \"零隻\",\n\"零周后\": \"零周後\",\n\"零天后\": \"零天後\",\n\"雾\": \"霧\",\n\"雾里\": \"霧裡\",\n\"霁\": \"霽\",\n\"霁范\": \"霽範\",\n\"震栗\": \"震慄\",\n\"霉\": \"黴\",\n\"霉毒\": \"黴毒\",\n\"霉气冲天\": \"霉氣衝天\",\n\"霉素\": \"黴素\",\n\"霉菌\": \"黴菌\",\n\"霉黑\": \"黴黑\",\n\"霉黧\": \"黴黧\",\n\"霡\": \"霢\",\n\"霭\": \"靄\",\n\"露丑\": \"露醜\",\n\"青山一发\": \"青山一髮\",\n\"青霉\": \"青黴\",\n\"靓\": \"靚\",\n\"靔\": \"靝\",\n\"静\": \"靜\",\n\"非常准\": \"非常準\",\n\"面人儿\": \"麵人兒\",\n\"面制品\": \"麵製品\",\n\"面包\": \"麵包\",\n\"面包住\": \"面包住\",\n\"面包办\": \"面包辦\",\n\"面包厢\": \"面包廂\",\n\"面包含\": \"面包含\",\n\"面包围\": \"面包圍\",\n\"面包圍\": \"面包圍\",\n\"面包容\": \"面包容\",\n\"面包庇\": \"面包庇\",\n\"面包扎\": \"面包紮\",\n\"面包抄\": \"面包抄\",\n\"面包括\": \"面包括\",\n\"面包揽\": \"面包攬\",\n\"面包涵\": \"面包涵\",\n\"面包着\": \"面包著\",\n\"面包管\": \"面包管\",\n\"面包罗\": \"面包羅\",\n\"面包藏\": \"面包藏\",\n\"面包装\": \"面包裝\",\n\"面包裝\": \"面包裝\",\n\"面包裹\": \"面包裹\",\n\"面包起\": \"面包起\",\n\"面厂\": \"麵廠\",\n\"面团\": \"麵團\",\n\"面坊\": \"麵坊\",\n\"面坯儿\": \"麵坯兒\",\n\"面塑\": \"麵塑\",\n\"面店\": \"麵店\",\n\"面店铺\": \"面店鋪\",\n\"面摊\": \"麵攤\",\n\"面杖\": \"麵杖\",\n\"面条\": \"麵條\",\n\"面条目\": \"面條目\",\n\"面條目\": \"面條目\",\n\"面汤\": \"麵湯\",\n\"面浆\": \"麵漿\",\n\"面点、\": \"麵點、\",\n\"面点师\": \"麵點師\",\n\"面疙瘩\": \"麵疙瘩\",\n\"面皮\": \"麵皮\",\n\"面码儿\": \"麵碼兒\",\n\"面筋\": \"麵筋\",\n\"面粉\": \"麵粉\",\n\"面粉碎\": \"面粉碎\",\n\"面粉红\": \"面粉紅\",\n\"面糊\": \"麵糊\",\n\"面缸\": \"麵缸\",\n\"面茶\": \"麵茶\",\n\"面食\": \"麵食\",\n\"面食饭\": \"面食飯\",\n\"面饺\": \"麵餃\",\n\"面饼\": \"麵餅\",\n\"面馆\": \"麵館\",\n\"靥\": \"靨\",\n\"鞋里\": \"鞋裡\",\n\"鞑\": \"韃\",\n\"鞒\": \"鞽\",\n\"鞣制\": \"鞣製\",\n\"鞭辟入里\": \"鞭辟入裡\",\n\"鞯\": \"韉\",\n\"鞲\": \"韝\",\n\"韦\": \"韋\",\n\"韦席\": \"韋蓆\",\n\"韧\": \"韌\",\n\"韨\": \"韍\",\n\"韩\": \"韓\",\n\"韩制\": \"韓製\",\n\"韩国制\": \"韓國製\",\n\"韪\": \"韙\",\n\"韫\": \"韞\",\n\"韬\": \"韜\",\n\"音不准\": \"音不準\",\n\"音准\": \"音準\",\n\"音声如钟\": \"音聲如鐘\",\n\"韵\": \"韻\",\n\"韶山冲\": \"韶山沖\",\n\"頁面\": \"頁面\",\n\"頂多\": \"頂多\",\n\"顛顛仆仆\": \"顛顛仆仆\",\n\"页\": \"頁\",\n\"页面\": \"頁面\",\n\"顶\": \"頂\",\n\"顶凶\": \"頂兇\",\n\"顶多\": \"頂多\",\n\"顷\": \"頃\",\n\"顸\": \"頇\",\n\"项\": \"項\",\n\"项链\": \"項鍊\",\n\"顺\": \"順\",\n\"顺钟向\": \"順鐘向\",\n\"顺风后\": \"順風後\",\n\"须\": \"須\",\n\"须发\": \"鬚髮\",\n\"须根\": \"鬚根\",\n\"须根据\": \"須根據\",\n\"须毛\": \"鬚毛\",\n\"须生\": \"鬚生\",\n\"须眉\": \"鬚眉\",\n\"须胡\": \"鬚鬍\",\n\"须须\": \"鬚鬚\",\n\"须鲨\": \"鬚鯊\",\n\"须鲸\": \"鬚鯨\",\n\"顼\": \"頊\",\n\"顽\": \"頑\",\n\"顾\": \"顧\",\n\"顿\": \"頓\",\n\"颀\": \"頎\",\n\"颁\": \"頒\",\n\"颂\": \"頌\",\n\"颂系\": \"頌繫\",\n\"颂赞\": \"頌讚\",\n\"颃\": \"頏\",\n\"预\": \"預\",\n\"预制\": \"預製\",\n\"预报不准\": \"預報不準\",\n\"颅\": \"顱\",\n\"领\": \"領\",\n\"领袖欲\": \"領袖慾\",\n\"颇\": \"頗\",\n\"颈\": \"頸\",\n\"颉\": \"頡\",\n\"颊\": \"頰\",\n\"颊须\": \"頰鬚\",\n\"颋\": \"頲\",\n\"颌\": \"頜\",\n\"颍\": \"潁\",\n\"颎\": \"熲\",\n\"颏\": \"頦\",\n\"颐\": \"頤\",\n\"频\": \"頻\",\n\"颒\": \"頮\",\n\"颓\": \"頹\",\n\"颔\": \"頷\",\n\"颕\": \"頴\",\n\"颖\": \"穎\",\n\"颗\": \"顆\",\n\"题\": \"題\",\n\"颙\": \"顒\",\n\"颚\": \"顎\",\n\"颛\": \"顓\",\n\"颛顼历\": \"顓頊曆\",\n\"颜\": \"顏\",\n\"颜范\": \"顏範\",\n\"额\": \"額\",\n\"额征\": \"額徵\",\n\"额我略历\": \"額我略曆\",\n\"额我略历史\": \"額我略歷史\",\n\"颞\": \"顳\",\n\"颟\": \"顢\",\n\"颠\": \"顛\",\n\"颠干倒坤\": \"顛乾倒坤\",\n\"颠颠仆仆\": \"顛顛仆仆\",\n\"颡\": \"顙\",\n\"颢\": \"顥\",\n\"颣\": \"纇\",\n\"颤\": \"顫\",\n\"颤栗\": \"顫慄\",\n\"颥\": \"顬\",\n\"颦\": \"顰\",\n\"颧\": \"顴\",\n\"風后\": \"風后\",\n\"风\": \"風\",\n\"风刮\": \"風颳\",\n\"风卷残云\": \"風捲殘雲\",\n\"风后\": \"風后\",\n\"风后，\": \"風後，\",\n\"风土志\": \"風土誌\",\n\"风干\": \"風乾\",\n\"风物志\": \"風物誌\",\n\"风范\": \"風範\",\n\"风起云涌\": \"風起雲湧\",\n\"风里\": \"風裡\",\n\"飏\": \"颺\",\n\"飐\": \"颭\",\n\"飑\": \"颮\",\n\"飒\": \"颯\",\n\"飓\": \"颶\",\n\"飔\": \"颸\",\n\"飕\": \"颼\",\n\"飖\": \"颻\",\n\"飗\": \"飀\",\n\"飘\": \"飄\",\n\"飘发自由女神\": \"飄髮自由女神\",\n\"飘游\": \"飄遊\",\n\"飘荡\": \"飄蕩\",\n\"飘飘荡荡\": \"飄飄蕩蕩\",\n\"飙\": \"飆\",\n\"飚\": \"飈\",\n\"飞\": \"飛\",\n\"飞刍挽粟\": \"飛芻輓粟\",\n\"飞扎\": \"飛紮\",\n\"飞行钟\": \"飛行鐘\",\n\"食欲\": \"食慾\",\n\"食欲不振\": \"食欲不振\",\n\"食面\": \"食麵\",\n\"飨\": \"饗\",\n\"餍\": \"饜\",\n\"餐台\": \"餐檯\",\n\"饣\": \"飠\",\n\"饤\": \"飣\",\n\"饥\": \"飢\",\n\"饥寒\": \"饑寒\",\n\"饥民\": \"饑民\",\n\"饥渴\": \"饑渴\",\n\"饥溺\": \"饑溺\",\n\"饥荒\": \"饑荒\",\n\"饥饱\": \"饑飽\",\n\"饥馑\": \"饑饉\",\n\"饦\": \"飥\",\n\"饧\": \"餳\",\n\"饨\": \"飩\",\n\"饩\": \"餼\",\n\"饪\": \"飪\",\n\"饫\": \"飫\",\n\"饬\": \"飭\",\n\"饭\": \"飯\",\n\"饭后钟\": \"飯後鐘\",\n\"饭团\": \"飯糰\",\n\"饮\": \"飲\",\n\"饯\": \"餞\",\n\"饰\": \"飾\",\n\"饱\": \"飽\",\n\"饲\": \"飼\",\n\"饳\": \"飿\",\n\"饴\": \"飴\",\n\"饵\": \"餌\",\n\"饶\": \"饒\",\n\"饷\": \"餉\",\n\"饸\": \"餄\",\n\"饹\": \"餎\",\n\"饺\": \"餃\",\n\"饻\": \"餏\",\n\"饼\": \"餅\",\n\"饼干\": \"餅乾\",\n\"饽\": \"餑\",\n\"饾\": \"餖\",\n\"饿\": \"餓\",\n\"馀\": \"餘\",\n\"馁\": \"餒\",\n\"馂\": \"餕\",\n\"馂余\": \"餕餘\",\n\"馃\": \"餜\",\n\"馄\": \"餛\",\n\"馄饨面\": \"餛飩麵\",\n\"馅\": \"餡\",\n\"馆\": \"館\",\n\"馆谷\": \"館穀\",\n\"馆里\": \"館裡\",\n\"馇\": \"餷\",\n\"馈\": \"饋\",\n\"馉\": \"餶\",\n\"馊\": \"餿\",\n\"馋\": \"饞\",\n\"馌\": \"饁\",\n\"馍\": \"饃\",\n\"馎\": \"餺\",\n\"馏\": \"餾\",\n\"馐\": \"饈\",\n\"馑\": \"饉\",\n\"馒\": \"饅\",\n\"馓\": \"饊\",\n\"馔\": \"饌\",\n\"馕\": \"饢\",\n\"首出电影\": \"首齣電影\",\n\"首发\": \"首發\",\n\"首只\": \"首隻\",\n\"首当其冲\": \"首當其衝\",\n\"香山庄\": \"香山庄\",\n\"香干\": \"香乾\",\n\"馬占山\": \"馬占山\",\n\"馬格里布\": \"馬格里布\",\n\"騰格里\": \"騰格里\",\n\"马\": \"馬\",\n\"马云：\": \"馬雲：\",\n\"马干\": \"馬乾\",\n\"马德钟\": \"馬德鐘\",\n\"马斯垂克期\": \"馬斯垂克期\",\n\"马格里布\": \"馬格里布\",\n\"驭\": \"馭\",\n\"驮\": \"馱\",\n\"驯\": \"馴\",\n\"驰\": \"馳\",\n\"驱\": \"驅\",\n\"驲\": \"馹\",\n\"驳\": \"駁\",\n\"驴\": \"驢\",\n\"驵\": \"駔\",\n\"驶\": \"駛\",\n\"驷\": \"駟\",\n\"驸\": \"駙\",\n\"驹\": \"駒\",\n\"驺\": \"騶\",\n\"驻\": \"駐\",\n\"驻扎\": \"駐紮\",\n\"驼\": \"駝\",\n\"驽\": \"駑\",\n\"驾\": \"駕\",\n\"驿\": \"驛\",\n\"骀\": \"駘\",\n\"骀荡\": \"駘蕩\",\n\"骁\": \"驍\",\n\"骂\": \"罵\",\n\"骃\": \"駰\",\n\"骄\": \"驕\",\n\"骅\": \"驊\",\n\"骆\": \"駱\",\n\"骇\": \"駭\",\n\"骈\": \"駢\",\n\"骉\": \"驫\",\n\"骊\": \"驪\",\n\"骋\": \"騁\",\n\"验\": \"驗\",\n\"骍\": \"騂\",\n\"骎\": \"駸\",\n\"骏\": \"駿\",\n\"骐\": \"騏\",\n\"骑\": \"騎\",\n\"骒\": \"騍\",\n\"骓\": \"騅\",\n\"骔\": \"騌\",\n\"骕\": \"驌\",\n\"骖\": \"驂\",\n\"骗\": \"騙\",\n\"骘\": \"騭\",\n\"骙\": \"騤\",\n\"骚\": \"騷\",\n\"骛\": \"騖\",\n\"骜\": \"驁\",\n\"骝\": \"騮\",\n\"骞\": \"騫\",\n\"骟\": \"騸\",\n\"骠\": \"驃\",\n\"骡\": \"騾\",\n\"骢\": \"驄\",\n\"骣\": \"驏\",\n\"骤\": \"驟\",\n\"骥\": \"驥\",\n\"骦\": \"驦\",\n\"骧\": \"驤\",\n\"骨坛\": \"骨罈\",\n\"骨干\": \"骨幹\",\n\"骨灰坛\": \"骨灰罈\",\n\"髅\": \"髏\",\n\"髋\": \"髖\",\n\"髌\": \"髕\",\n\"高几\": \"高几\",\n\"高后\": \"高后\",\n\"高干\": \"高幹\",\n\"高干扰\": \"高干擾\",\n\"高干预\": \"高干預\",\n\"高度自制\": \"高度自制\",\n\"高涌泉\": \"高涌泉\",\n\"高清愿\": \"高清愿\",\n\"髡发\": \"髡髮\",\n\"髭胡\": \"髭鬍\",\n\"髭须\": \"髭鬚\",\n\"髮踊沖冠\": \"髮踊沖冠\",\n\"髯胡\": \"髯鬍\",\n\"髼松\": \"髼鬆\",\n\"鬅松\": \"鬅鬆\",\n\"鬈发\": \"鬈髮\",\n\"鬒发\": \"鬒髮\",\n\"鬓\": \"鬢\",\n\"鬓发\": \"鬢髮\",\n\"鬶\": \"鬹\",\n\"鬼气冲天\": \"鬼氣衝天\",\n\"鬼谷子\": \"鬼谷子\",\n\"魂牵梦系\": \"魂牽夢繫\",\n\"魇\": \"魘\",\n\"魉\": \"魎\",\n\"魏征\": \"魏徵\",\n\"魔表\": \"魔錶\",\n\"鮮于\": \"鮮于\",\n\"鱼\": \"魚\",\n\"鱼干\": \"魚乾\",\n\"鱼松\": \"魚鬆\",\n\"鱽\": \"魛\",\n\"鱾\": \"魢\",\n\"鱿\": \"魷\",\n\"鲀\": \"魨\",\n\"鲁\": \"魯\",\n\"鲂\": \"魴\",\n\"鲃\": \"䰾\",\n\"鲄\": \"魺\",\n\"鲅\": \"鮁\",\n\"鲆\": \"鮃\",\n\"鲇\": \"鮎\",\n\"鲈\": \"鱸\",\n\"鲉\": \"鮋\",\n\"鲊\": \"鮓\",\n\"鲋\": \"鮒\",\n\"鲌\": \"鮊\",\n\"鲍\": \"鮑\",\n\"鲎\": \"鱟\",\n\"鲏\": \"鮍\",\n\"鲐\": \"鮐\",\n\"鲑\": \"鮭\",\n\"鲒\": \"鮚\",\n\"鲓\": \"鮳\",\n\"鲔\": \"鮪\",\n\"鲕\": \"鮞\",\n\"鲖\": \"鮦\",\n\"鲗\": \"鰂\",\n\"鲘\": \"鮜\",\n\"鲙\": \"鱠\",\n\"鲚\": \"鱭\",\n\"鲛\": \"鮫\",\n\"鲜\": \"鮮\",\n\"鲜于\": \"鮮于\",\n\"鲝\": \"鮺\",\n\"鲞\": \"鯗\",\n\"鲟\": \"鱘\",\n\"鲠\": \"鯁\",\n\"鲡\": \"鱺\",\n\"鲢\": \"鰱\",\n\"鲣\": \"鰹\",\n\"鲤\": \"鯉\",\n\"鲥\": \"鰣\",\n\"鲦\": \"鰷\",\n\"鲧\": \"鯀\",\n\"鲨\": \"鯊\",\n\"鲩\": \"鯇\",\n\"鲪\": \"鮶\",\n\"鲫\": \"鯽\",\n\"鲬\": \"鯒\",\n\"鲭\": \"鯖\",\n\"鲮\": \"鯪\",\n\"鲯\": \"鯕\",\n\"鲰\": \"鯫\",\n\"鲱\": \"鯡\",\n\"鲲\": \"鯤\",\n\"鲳\": \"鯧\",\n\"鲴\": \"鯝\",\n\"鲵\": \"鯢\",\n\"鲷\": \"鯛\",\n\"鲸\": \"鯨\",\n\"鲸须\": \"鯨鬚\",\n\"鲹\": \"鰺\",\n\"鲺\": \"鯴\",\n\"鲻\": \"鯔\",\n\"鲼\": \"鱝\",\n\"鲽\": \"鰈\",\n\"鲾\": \"鰏\",\n\"鲿\": \"鱨\",\n\"鳀\": \"鯷\",\n\"鳁\": \"鰮\",\n\"鳂\": \"鰃\",\n\"鳃\": \"鰓\",\n\"鳄\": \"鱷\",\n\"鳅\": \"鰍\",\n\"鳆\": \"鰒\",\n\"鳇\": \"鰉\",\n\"鳈\": \"鰁\",\n\"鳉\": \"鱂\",\n\"鳊\": \"鯿\",\n\"鳋\": \"鰠\",\n\"鳌\": \"鰲\",\n\"鳍\": \"鰭\",\n\"鳎\": \"鰨\",\n\"鳏\": \"鰥\",\n\"鳐\": \"鰩\",\n\"鳑\": \"鰟\",\n\"鳒\": \"鰜\",\n\"鳓\": \"鰳\",\n\"鳔\": \"鰾\",\n\"鳕\": \"鱈\",\n\"鳖\": \"鱉\",\n\"鳗\": \"鰻\",\n\"鳘\": \"鰵\",\n\"鳙\": \"鱅\",\n\"鳚\": \"䲁\",\n\"鳛\": \"鰼\",\n\"鳜\": \"鱖\",\n\"鳝\": \"鱔\",\n\"鳞\": \"鱗\",\n\"鳟\": \"鱒\",\n\"鳠\": \"鱯\",\n\"鳡\": \"鱤\",\n\"鳢\": \"鱧\",\n\"鳣\": \"鱣\",\n\"鳤\": \"䲘\",\n\"鳥栖\": \"鳥栖\",\n\"鳥栖市\": \"鳥栖市\",\n\"鳳凰于飛\": \"鳳凰于飛\",\n\"鸟\": \"鳥\",\n\"鸟栖市\": \"鳥栖市\",\n\"鸠\": \"鳩\",\n\"鸡\": \"雞\",\n\"鸡丝\": \"雞絲\",\n\"鸡丝面\": \"雞絲麵\",\n\"鸡争鹅斗\": \"雞爭鵝鬥\",\n\"鸡只\": \"雞隻\",\n\"鸡吵鹅斗\": \"雞吵鵝鬥\",\n\"鸡奸\": \"雞姦\",\n\"鸡腿面\": \"雞腿麵\",\n\"鸡蛋里挑骨头\": \"雞蛋裡挑骨頭\",\n\"鸢\": \"鳶\",\n\"鸣\": \"鳴\",\n\"鸣钟\": \"鳴鐘\",\n\"鸤\": \"鳲\",\n\"鸥\": \"鷗\",\n\"鸦\": \"鴉\",\n\"鸧\": \"鶬\",\n\"鸨\": \"鴇\",\n\"鸩\": \"鴆\",\n\"鸪\": \"鴣\",\n\"鸫\": \"鶇\",\n\"鸬\": \"鸕\",\n\"鸭\": \"鴨\",\n\"鸮\": \"鴞\",\n\"鸯\": \"鴦\",\n\"鸰\": \"鴒\",\n\"鸱\": \"鴟\",\n\"鸲\": \"鴝\",\n\"鸳\": \"鴛\",\n\"鸴\": \"鷽\",\n\"鸵\": \"鴕\",\n\"鸶\": \"鷥\",\n\"鸷\": \"鷙\",\n\"鸸\": \"鴯\",\n\"鸹\": \"鴰\",\n\"鸺\": \"鵂\",\n\"鸻\": \"鴴\",\n\"鸼\": \"鵃\",\n\"鸽\": \"鴿\",\n\"鸾\": \"鸞\",\n\"鸾鉴\": \"鸞鑑\",\n\"鸿\": \"鴻\",\n\"鸿范\": \"鴻範\",\n\"鹀\": \"鵐\",\n\"鹁\": \"鵓\",\n\"鹂\": \"鸝\",\n\"鹃\": \"鵑\",\n\"鹄\": \"鵠\",\n\"鹄发\": \"鵠髮\",\n\"鹅\": \"鵝\",\n\"鹅准\": \"鵝準\",\n\"鹆\": \"鵒\",\n\"鹇\": \"鷳\",\n\"鹈\": \"鵜\",\n\"鹉\": \"鵡\",\n\"鹊\": \"鵲\",\n\"鹋\": \"鶓\",\n\"鹌\": \"鵪\",\n\"鹍\": \"鵾\",\n\"鹎\": \"鵯\",\n\"鹏\": \"鵬\",\n\"鹐\": \"鵮\",\n\"鹑\": \"鶉\",\n\"鹒\": \"鶊\",\n\"鹓\": \"鵷\",\n\"鹔\": \"鷫\",\n\"鹕\": \"鶘\",\n\"鹖\": \"鶡\",\n\"鹗\": \"鶚\",\n\"鹘\": \"鶻\",\n\"鹙\": \"鶖\",\n\"鹚\": \"鶿\",\n\"鹛\": \"鶥\",\n\"鹜\": \"鶩\",\n\"鹝\": \"鷊\",\n\"鹞\": \"鷂\",\n\"鹟\": \"鶲\",\n\"鹠\": \"鶹\",\n\"鹡\": \"鶺\",\n\"鹢\": \"鷁\",\n\"鹣\": \"鶼\",\n\"鹤\": \"鶴\",\n\"鹤发\": \"鶴髮\",\n\"鹤吊\": \"鶴弔\",\n\"鹤峰县\": \"鶴峯縣\",\n\"鹥\": \"鷖\",\n\"鹦\": \"鸚\",\n\"鹧\": \"鷓\",\n\"鹨\": \"鷚\",\n\"鹩\": \"鷯\",\n\"鹪\": \"鷦\",\n\"鹫\": \"鷲\",\n\"鹬\": \"鷸\",\n\"鹭\": \"鷺\",\n\"鹮\": \"䴉\",\n\"鹯\": \"鸇\",\n\"鹰\": \"鷹\",\n\"鹰雕\": \"鹰鵰\",\n\"鹰鵰\": \"鹰鵰\",\n\"鹱\": \"鸌\",\n\"鹲\": \"鸏\",\n\"鹳\": \"鸛\",\n\"鹴\": \"鸘\",\n\"鹾\": \"鹺\",\n\"鹿場里\": \"鹿場里\",\n\"麟游\": \"麟遊\",\n\"麦\": \"麥\",\n\"麸\": \"麩\",\n\"麹\": \"麴\",\n\"麹霉\": \"麴黴\",\n\"麺\": \"麪\",\n\"麻将席\": \"麻將蓆\",\n\"麻酱面\": \"麻醬麵\",\n\"麽\": \"麼\",\n\"黃杰\": \"黃杰\",\n\"黃詩杰\": \"黃詩杰\",\n\"黃鈺筑\": \"黃鈺筑\",\n\"黄\": \"黃\",\n\"黄历\": \"黃曆\",\n\"黄历史\": \"黃歷史\",\n\"黄发\": \"黃髮\",\n\"黄岩区\": \"黃巖區\",\n\"黄岩县\": \"黃巖縣\",\n\"黄干黑瘦\": \"黃乾黑瘦\",\n\"黄曲毒素\": \"黃麴毒素\",\n\"黄杰\": \"黃杰\",\n\"黄白术\": \"黃白術\",\n\"黄诗杰\": \"黃詩杰\",\n\"黄金表\": \"黃金表\",\n\"黄钟\": \"黃鐘\",\n\"黄钰筑\": \"黃鈺筑\",\n\"黉\": \"黌\",\n\"黎克特制\": \"黎克特制\",\n\"黎吉云\": \"黎吉雲\",\n\"黎吉雲\": \"黎吉雲\",\n\"黑发\": \"黑髮\",\n\"黑奴吁天录\": \"黑奴籲天錄\",\n\"黑干将\": \"黑幹將\",\n\"黑长发\": \"黑長髮\",\n\"黡\": \"黶\",\n\"黩\": \"黷\",\n\"黪\": \"黲\",\n\"黾\": \"黽\",\n\"鼋\": \"黿\",\n\"鼌\": \"鼂\",\n\"鼍\": \"鼉\",\n\"鼓噪\": \"鼓譟\",\n\"鼓里\": \"鼓裡\",\n\"鼗\": \"鞀\",\n\"鼠曲草\": \"鼠麴草\",\n\"鼹\": \"鼴\",\n\"鼻准\": \"鼻準\",\n\"鼻梁\": \"鼻樑\",\n\"鼻梁儿\": \"鼻梁兒\",\n\"齄\": \"齇\",\n\"齐\": \"齊\",\n\"齐王舍牛\": \"齊王捨牛\",\n\"齑\": \"齏\",\n\"齿\": \"齒\",\n\"齿危发秀\": \"齒危髮秀\",\n\"齿落发白\": \"齒落髮白\",\n\"龀\": \"齔\",\n\"龁\": \"齕\",\n\"龂\": \"齗\",\n\"龃\": \"齟\",\n\"龄\": \"齡\",\n\"龅\": \"齙\",\n\"龆\": \"齠\",\n\"龇\": \"齜\",\n\"龈\": \"齦\",\n\"龉\": \"齬\",\n\"龊\": \"齪\",\n\"龋\": \"齲\",\n\"龌\": \"齷\",\n\"龙\": \"龍\",\n\"龙卷\": \"龍捲\",\n\"龙岩\": \"龍巖\",\n\"龙斗虎伤\": \"龍鬥虎傷\",\n\"龙眼干\": \"龍眼乾\",\n\"龙须\": \"龍鬚\",\n\"龙须面\": \"龍鬚麵\",\n\"龚\": \"龔\",\n\"龛\": \"龕\",\n\"龜山庄\": \"龜山庄\",\n\"龟\": \"龜\",\n\"龟鉴\": \"龜鑑\",\n\"鿎\": \"䃮\",\n\"鿏\": \"䥑\",\n\"鿒\": \"鿓\",\n\"鿔\": \"鎶\",\n\"，个中\": \"，箇中\",\n\"，并力\": \"，並力\",\n\"，并力討\": \"，并力討\",\n\"，并力讨\": \"，并力討\",\n\"𠀾\": \"𠁞\",\n\"𠆲\": \"儣\",\n\"𠆿\": \"𠌥\",\n\"𠇹\": \"俓\",\n\"𠉂\": \"㒓\",\n\"𠉗\": \"𠏢\",\n\"𠊉\": \"𣍐\",\n\"𠋆\": \"儭\",\n\"𠚳\": \"𠠎\",\n\"𠛅\": \"剾\",\n\"𠛆\": \"𠞆\",\n\"𠛾\": \"𪟖\",\n\"𠡠\": \"勑\",\n\"𠮶\": \"嗰\",\n\"𠯟\": \"哯\",\n\"𠯠\": \"噅\",\n\"𠰱\": \"㘉\",\n\"𠰷\": \"嚧\",\n\"𠱞\": \"囃\",\n\"𠲥\": \"𡅏\",\n\"𠴛\": \"𡃕\",\n\"𠴢\": \"𡄔\",\n\"𠵸\": \"𡄣\",\n\"𠵾\": \"㗲\",\n\"𡋀\": \"𡓾\",\n\"𡋗\": \"𡑭\",\n\"𡋤\": \"壗\",\n\"𡍣\": \"𡔖\",\n\"𡒄\": \"壈\",\n\"𡝠\": \"㜷\",\n\"𡞋\": \"㜗\",\n\"𡞱\": \"㜢\",\n\"𡠟\": \"孎\",\n\"𡥧\": \"孻\",\n\"𡭜\": \"𡮉\",\n\"𡭬\": \"𡮣\",\n\"𡳃\": \"𡳳\",\n\"𡳒\": \"𦘧\",\n\"𡶴\": \"嵼\",\n\"𡸃\": \"𡽗\",\n\"𡺃\": \"嶈\",\n\"𡺄\": \"嶘\",\n\"𢀖\": \"巠\",\n\"𢋈\": \"㢝\",\n\"𢗓\": \"㦛\",\n\"𢘙\": \"𢤱\",\n\"𢘝\": \"𢣚\",\n\"𢘞\": \"𢣭\",\n\"𢙏\": \"愻\",\n\"𢙐\": \"憹\",\n\"𢙑\": \"𢠼\",\n\"𢙒\": \"憢\",\n\"𢙓\": \"懀\",\n\"𢛯\": \"㦎\",\n\"𢠁\": \"懎\",\n\"𢢐\": \"𤢻\",\n\"𢧐\": \"戰\",\n\"𢫊\": \"𢷮\",\n\"𢫞\": \"𢶫\",\n\"𢫬\": \"摋\",\n\"𢬍\": \"擫\",\n\"𢬦\": \"𢹿\",\n\"𢭏\": \"擣\",\n\"𢽾\": \"斅\",\n\"𣃁\": \"斸\",\n\"𣆐\": \"曥\",\n\"𣈣\": \"𣋋\",\n\"𣍨\": \"𦢈\",\n\"𣍯\": \"腪\",\n\"𣍰\": \"脥\",\n\"𣎑\": \"臗\",\n\"𣏢\": \"槫\",\n\"𣐕\": \"桱\",\n\"𣐤\": \"欍\",\n\"𣑶\": \"𣠲\",\n\"𣒌\": \"楇\",\n\"𣓿\": \"橯\",\n\"𣔌\": \"樤\",\n\"𣗊\": \"樠\",\n\"𣗋\": \"欓\",\n\"𣗙\": \"㰙\",\n\"𣘐\": \"㯤\",\n\"𣘓\": \"𣞻\",\n\"𣘴\": \"檭\",\n\"𣘷\": \"𣝕\",\n\"𣚚\": \"欘\",\n\"𣞎\": \"𣠩\",\n\"𣨼\": \"殢\",\n\"𣭤\": \"𣯴\",\n\"𣯣\": \"𣯩\",\n\"𣱝\": \"氭\",\n\"𣲗\": \"湋\",\n\"𣲘\": \"潕\",\n\"𣳆\": \"㵗\",\n\"𣶩\": \"澅\",\n\"𣶫\": \"𣿉\",\n\"𣶭\": \"𪷓\",\n\"𣷷\": \"𤅶\",\n\"𣸣\": \"濆\",\n\"𣺼\": \"灙\",\n\"𣺽\": \"𤁣\",\n\"𣽷\": \"瀃\",\n\"𤆡\": \"熓\",\n\"𤆢\": \"㷍\",\n\"𤇃\": \"爄\",\n\"𤇄\": \"熌\",\n\"𤇭\": \"爖\",\n\"𤇹\": \"熚\",\n\"𤈶\": \"熉\",\n\"𤈷\": \"㷿\",\n\"𤊀\": \"𤒎\",\n\"𤊰\": \"𤓩\",\n\"𤋏\": \"熡\",\n\"𤎺\": \"㸇\",\n\"𤎻\": \"𤑳\",\n\"𤙯\": \"𤛮\",\n\"𤝢\": \"𤢟\",\n\"𤞃\": \"獩\",\n\"𤞤\": \"玁\",\n\"𤠋\": \"㺏\",\n\"𤦀\": \"瓕\",\n\"𤩽\": \"瓛\",\n\"𤳄\": \"𤳸\",\n\"𤶊\": \"癐\",\n\"𤶧\": \"𤸫\",\n\"𤻊\": \"㿗\",\n\"𤽯\": \"㿧\",\n\"𤾀\": \"皟\",\n\"𤿲\": \"麬\",\n\"𥁢\": \"䀉\",\n\"𥅘\": \"𥌃\",\n\"𥅴\": \"䀹\",\n\"𥅿\": \"𥊝\",\n\"𥆧\": \"瞤\",\n\"𥇢\": \"䁪\",\n\"𥎝\": \"䂎\",\n\"𥐟\": \"礒\",\n\"𥐯\": \"𥖅\",\n\"𥐰\": \"𥕥\",\n\"𥐻\": \"碙\",\n\"𥞦\": \"𥞵\",\n\"𥧂\": \"𥨐\",\n\"𥩟\": \"竚\",\n\"𥩺\": \"𥪂\",\n\"𥫣\": \"籅\",\n\"𥬀\": \"䉙\",\n\"𥬞\": \"籋\",\n\"𥬠\": \"篘\",\n\"𥭉\": \"𥵊\",\n\"𥮋\": \"𥸠\",\n\"𥮜\": \"䉲\",\n\"𥮾\": \"篸\",\n\"𥱔\": \"𥵃\",\n\"𥹥\": \"𥼽\",\n\"𥺅\": \"䊭\",\n\"𥺇\": \"𥽖\",\n\"𦈈\": \"𥿊\",\n\"𦈉\": \"緷\",\n\"𦈋\": \"綇\",\n\"𦈌\": \"綀\",\n\"𦈎\": \"繟\",\n\"𦈏\": \"緍\",\n\"𦈐\": \"縺\",\n\"𦈑\": \"緸\",\n\"𦈒\": \"𦂅\",\n\"𦈓\": \"䋿\",\n\"𦈔\": \"縎\",\n\"𦈕\": \"緰\",\n\"𦈖\": \"䌈\",\n\"𦈗\": \"𦃄\",\n\"𦈘\": \"䌋\",\n\"𦈙\": \"䌰\",\n\"𦈚\": \"縬\",\n\"𦈛\": \"繓\",\n\"𦈜\": \"䌖\",\n\"𦈝\": \"繏\",\n\"𦈞\": \"䌟\",\n\"𦈟\": \"䌝\",\n\"𦈠\": \"䌥\",\n\"𦈡\": \"繻\",\n\"𦍠\": \"䍽\",\n\"𦛨\": \"朥\",\n\"𦝼\": \"膢\",\n\"𦟗\": \"𦣎\",\n\"𦨩\": \"𦪽\",\n\"𦰏\": \"蓧\",\n\"𦰴\": \"䕳\",\n\"𦶟\": \"爇\",\n\"𦶻\": \"𦾟\",\n\"𦻕\": \"蘟\",\n\"𦼖\": \"檾\",\n\"𧉐\": \"𧕟\",\n\"𧉞\": \"䗿\",\n\"𧌥\": \"𧎈\",\n\"𧏖\": \"蠙\",\n\"𧏗\": \"蠀\",\n\"𧑏\": \"蠾\",\n\"𧒭\": \"𧔥\",\n\"𧜭\": \"䙱\",\n\"𧝝\": \"襰\",\n\"𧝧\": \"𧟀\",\n\"𧮪\": \"詀\",\n\"𧳕\": \"𧳟\",\n\"𧹑\": \"䞈\",\n\"𧹒\": \"買\",\n\"𧹓\": \"𧶔\",\n\"𧹔\": \"賬\",\n\"𧹕\": \"䝻\",\n\"𧹖\": \"賟\",\n\"𧹗\": \"贃\",\n\"𧿈\": \"𨇁\",\n\"𨀁\": \"躘\",\n\"𨀱\": \"𨄣\",\n\"𨁴\": \"𨅍\",\n\"𨂺\": \"𨈊\",\n\"𨄄\": \"𨈌\",\n\"𨅛\": \"䠱\",\n\"𨅫\": \"𨇞\",\n\"𨅬\": \"躝\",\n\"𨉗\": \"軉\",\n\"𨐅\": \"軗\",\n\"𨐆\": \"𨊻\",\n\"𨐇\": \"𨏠\",\n\"𨐈\": \"輄\",\n\"𨐉\": \"𨎮\",\n\"𨐊\": \"𨏥\",\n\"𨑹\": \"䢨\",\n\"𨟳\": \"𨣞\",\n\"𨠨\": \"𨣧\",\n\"𨡙\": \"𨢿\",\n\"𨡺\": \"𨣈\",\n\"𨤰\": \"𨤻\",\n\"𨰾\": \"鎷\",\n\"𨰿\": \"釳\",\n\"𨱀\": \"𨥛\",\n\"𨱁\": \"鈠\",\n\"𨱂\": \"鈋\",\n\"𨱃\": \"鈲\",\n\"𨱄\": \"鈯\",\n\"𨱅\": \"鉁\",\n\"𨱆\": \"龯\",\n\"𨱇\": \"銶\",\n\"𨱈\": \"鋉\",\n\"𨱉\": \"鍄\",\n\"𨱊\": \"𨧱\",\n\"𨱋\": \"錂\",\n\"𨱌\": \"鏆\",\n\"𨱍\": \"鎯\",\n\"𨱎\": \"鍮\",\n\"𨱏\": \"鎝\",\n\"𨱐\": \"𨫒\",\n\"𨱑\": \"鐄\",\n\"𨱒\": \"鏉\",\n\"𨱓\": \"鐎\",\n\"𨱔\": \"鐏\",\n\"𨱕\": \"𨮂\",\n\"𨱖\": \"䥩\",\n\"𨷿\": \"䦳\",\n\"𨸀\": \"𨳕\",\n\"𨸁\": \"𨳑\",\n\"𨸂\": \"閍\",\n\"𨸃\": \"閐\",\n\"𨸄\": \"䦘\",\n\"𨸅\": \"𨴗\",\n\"𨸆\": \"𨵩\",\n\"𨸇\": \"𨵸\",\n\"𨸉\": \"𨶀\",\n\"𨸊\": \"𨶏\",\n\"𨸋\": \"𨶲\",\n\"𨸌\": \"𨶮\",\n\"𨸎\": \"𨷲\",\n\"𨸘\": \"𨽏\",\n\"𨸟\": \"䧢\",\n\"𩏼\": \"䪏\",\n\"𩏽\": \"𩏪\",\n\"𩏾\": \"𩎢\",\n\"𩏿\": \"䪘\",\n\"𩐀\": \"䪗\",\n\"𩓋\": \"顂\",\n\"𩖕\": \"𩓣\",\n\"𩖖\": \"顃\",\n\"𩖗\": \"䫴\",\n\"𩙥\": \"颰\",\n\"𩙦\": \"𩗀\",\n\"𩙧\": \"䬞\",\n\"𩙨\": \"𩘹\",\n\"𩙩\": \"𩘀\",\n\"𩙪\": \"颷\",\n\"𩙫\": \"颾\",\n\"𩙬\": \"𩘺\",\n\"𩙭\": \"𩘝\",\n\"𩙮\": \"䬘\",\n\"𩙯\": \"䬝\",\n\"𩙰\": \"𩙈\",\n\"𩟿\": \"𩚛\",\n\"𩠀\": \"𩚥\",\n\"𩠁\": \"𩚵\",\n\"𩠂\": \"𩛆\",\n\"𩠃\": \"𩛩\",\n\"𩠅\": \"𩟐\",\n\"𩠆\": \"𩜦\",\n\"𩠇\": \"䭀\",\n\"𩠈\": \"䭃\",\n\"𩠉\": \"𩜇\",\n\"𩠊\": \"𩜵\",\n\"𩠋\": \"𩝔\",\n\"𩠌\": \"餸\",\n\"𩠎\": \"𩞄\",\n\"𩠏\": \"𩞦\",\n\"𩠠\": \"𩠴\",\n\"𩡖\": \"𩡣\",\n\"𩧦\": \"𩡺\",\n\"𩧨\": \"駎\",\n\"𩧩\": \"𩤊\",\n\"𩧪\": \"䮾\",\n\"𩧫\": \"駚\",\n\"𩧬\": \"𩢡\",\n\"𩧭\": \"䭿\",\n\"𩧮\": \"𩢾\",\n\"𩧯\": \"驋\",\n\"𩧰\": \"䮝\",\n\"𩧱\": \"𩥉\",\n\"𩧲\": \"駧\",\n\"𩧳\": \"𩢸\",\n\"𩧴\": \"駩\",\n\"𩧵\": \"𩢴\",\n\"𩧶\": \"𩣏\",\n\"𩧸\": \"𩣫\",\n\"𩧺\": \"駶\",\n\"𩧻\": \"𩣵\",\n\"𩧼\": \"𩣺\",\n\"𩧿\": \"䮠\",\n\"𩨀\": \"騔\",\n\"𩨁\": \"䮞\",\n\"𩨂\": \"驄\",\n\"𩨃\": \"騝\",\n\"𩨄\": \"騪\",\n\"𩨅\": \"𩤸\",\n\"𩨆\": \"𩤙\",\n\"𩨇\": \"䮫\",\n\"𩨈\": \"騟\",\n\"𩨉\": \"𩤲\",\n\"𩨊\": \"騚\",\n\"𩨋\": \"𩥄\",\n\"𩨌\": \"𩥑\",\n\"𩨍\": \"𩥇\",\n\"𩨎\": \"龭\",\n\"𩨏\": \"䮳\",\n\"𩨐\": \"𩧆\",\n\"𩩈\": \"䯤\",\n\"𩬣\": \"𩭙\",\n\"𩬤\": \"𩰀\",\n\"𩭹\": \"鬖\",\n\"𩯒\": \"𩯳\",\n\"𩰰\": \"𩰹\",\n\"𩲒\": \"𩳤\",\n\"𩴌\": \"𩴵\",\n\"𩽹\": \"魥\",\n\"𩽺\": \"𩵩\",\n\"𩽻\": \"𩵹\",\n\"𩽼\": \"鯶\",\n\"𩽽\": \"𩶱\",\n\"𩽾\": \"鮟\",\n\"𩽿\": \"𩶰\",\n\"𩾀\": \"鮕\",\n\"𩾁\": \"鯄\",\n\"𩾂\": \"䲖\",\n\"𩾃\": \"鮸\",\n\"𩾄\": \"𩷰\",\n\"𩾅\": \"𩸃\",\n\"𩾆\": \"𩸦\",\n\"𩾇\": \"鯱\",\n\"𩾈\": \"䱙\",\n\"𩾊\": \"䱬\",\n\"𩾋\": \"䱰\",\n\"𩾌\": \"鱇\",\n\"𩾎\": \"𩽇\",\n\"𪉂\": \"䲰\",\n\"𪉃\": \"鳼\",\n\"𪉄\": \"𩿪\",\n\"𪉅\": \"𪀦\",\n\"𪉆\": \"鴲\",\n\"𪉈\": \"鴜\",\n\"𪉉\": \"𪁈\",\n\"𪉊\": \"鷨\",\n\"𪉋\": \"𪀾\",\n\"𪉌\": \"𪁖\",\n\"𪉍\": \"鵚\",\n\"𪉎\": \"𪂆\",\n\"𪉏\": \"𪃏\",\n\"𪉐\": \"𪃍\",\n\"𪉑\": \"鷔\",\n\"𪉒\": \"𪄕\",\n\"𪉓\": \"𪈼\",\n\"𪉔\": \"𪄆\",\n\"𪉕\": \"𪇳\",\n\"𪎈\": \"䴬\",\n\"𪎉\": \"麲\",\n\"𪎊\": \"麨\",\n\"𪎋\": \"䴴\",\n\"𪎌\": \"麳\",\n\"𪎍\": \"𪋿\",\n\"𪑅\": \"䵳\",\n\"𪔭\": \"𪔵\",\n\"𪚏\": \"𪘀\",\n\"𪚐\": \"𪘯\",\n\"𪜎\": \"𠿕\",\n\"𪞝\": \"凙\",\n\"𪟎\": \"㔋\",\n\"𪟝\": \"勣\",\n\"𪠀\": \"𧷎\",\n\"𪠟\": \"㓄\",\n\"𪠡\": \"𠬙\",\n\"𪠳\": \"唓\",\n\"𪠵\": \"㖮\",\n\"𪠸\": \"嚛\",\n\"𪠺\": \"𠽃\",\n\"𪠽\": \"噹\",\n\"𪡀\": \"嘺\",\n\"𪡃\": \"嘪\",\n\"𪡋\": \"噞\",\n\"𪡏\": \"嗹\",\n\"𪡛\": \"㗿\",\n\"𪡞\": \"嘳\",\n\"𪡺\": \"𡃄\",\n\"𪢌\": \"㘓\",\n\"𪢐\": \"𡃤\",\n\"𪢒\": \"𡂡\",\n\"𪢕\": \"嚽\",\n\"𪢖\": \"𡅯\",\n\"𪢠\": \"囒\",\n\"𪢮\": \"圞\",\n\"𪢸\": \"墲\",\n\"𪣆\": \"埬\",\n\"𪣒\": \"堚\",\n\"𪣻\": \"塿\",\n\"𪤄\": \"𡓁\",\n\"𪤚\": \"壣\",\n\"𪥠\": \"𧹈\",\n\"𪥫\": \"孇\",\n\"𪥰\": \"嬣\",\n\"𪥿\": \"嬻\",\n\"𪧀\": \"孾\",\n\"𪧘\": \"寠\",\n\"𪨊\": \"㞞\",\n\"𪨗\": \"屩\",\n\"𪨧\": \"崙\",\n\"𪨩\": \"𡸗\",\n\"𪨶\": \"輋\",\n\"𪨷\": \"巗\",\n\"𪨹\": \"𡹬\",\n\"𪩇\": \"㟺\",\n\"𪩎\": \"巊\",\n\"𪩘\": \"巘\",\n\"𪩛\": \"𡿖\",\n\"𪩷\": \"幝\",\n\"𪩸\": \"幩\",\n\"𪪏\": \"廬\",\n\"𪪑\": \"㢗\",\n\"𪪞\": \"廧\",\n\"𪪴\": \"𢍰\",\n\"𪪼\": \"彃\",\n\"𪫌\": \"徿\",\n\"𪫡\": \"𢤩\",\n\"𪫷\": \"㦞\",\n\"𪫺\": \"憸\",\n\"𪬚\": \"𢣐\",\n\"𪬯\": \"𢤿\",\n\"𪭝\": \"𢯷\",\n\"𪭢\": \"摐\",\n\"𪭧\": \"擟\",\n\"𪭯\": \"𢶒\",\n\"𪭵\": \"掚\",\n\"𪭾\": \"撊\",\n\"𪮃\": \"㨻\",\n\"𪮋\": \"㩋\",\n\"𪮖\": \"撧\",\n\"𪮳\": \"𢺳\",\n\"𪮶\": \"攋\",\n\"𪯋\": \"㪎\",\n\"𪰶\": \"曊\",\n\"𪱥\": \"膹\",\n\"𪱷\": \"梖\",\n\"𪲎\": \"櫅\",\n\"𪲔\": \"欐\",\n\"𪲛\": \"檵\",\n\"𪲮\": \"櫠\",\n\"𪳍\": \"欇\",\n\"𪳗\": \"𣜬\",\n\"𪴙\": \"欑\",\n\"𪵑\": \"毊\",\n\"𪵣\": \"霼\",\n\"𪵱\": \"濿\",\n\"𪶄\": \"溡\",\n\"𪶒\": \"𤄷\",\n\"𪶮\": \"𣽏\",\n\"𪷍\": \"㵾\",\n\"𪷽\": \"灒\",\n\"𪸕\": \"熂\",\n\"𪸩\": \"煇\",\n\"𪹀\": \"𤑹\",\n\"𪹠\": \"𤓌\",\n\"𪹳\": \"爥\",\n\"𪹹\": \"𤒻\",\n\"𪺣\": \"𤘀\",\n\"𪺪\": \"𤜆\",\n\"𪺭\": \"犞\",\n\"𪺷\": \"獊\",\n\"𪺸\": \"𤠮\",\n\"𪺻\": \"㺜\",\n\"𪺽\": \"猌\",\n\"𪻐\": \"瑽\",\n\"𪻨\": \"瓄\",\n\"𪻲\": \"瑻\",\n\"𪻺\": \"璝\",\n\"𪼋\": \"㻶\",\n\"𪼴\": \"𤬅\",\n\"𪽈\": \"畼\",\n\"𪽝\": \"𤳷\",\n\"𪽪\": \"痮\",\n\"𪽭\": \"𤷃\",\n\"𪽮\": \"㿖\",\n\"𪽴\": \"𤺔\",\n\"𪽷\": \"瘱\",\n\"𪾔\": \"盨\",\n\"𪾢\": \"睍\",\n\"𪾣\": \"眝\",\n\"𪾦\": \"矑\",\n\"𪾸\": \"矉\",\n\"𪿊\": \"𥏝\",\n\"𪿞\": \"𥖲\",\n\"𪿫\": \"礮\",\n\"𪿵\": \"𥗇\",\n\"𫀌\": \"𥜰\",\n\"𫀓\": \"𥜐\",\n\"𫀨\": \"䅐\",\n\"𫀬\": \"䅳\",\n\"𫀮\": \"𥢷\",\n\"𫁂\": \"䆉\",\n\"𫁟\": \"竱\",\n\"𫁡\": \"鴗\",\n\"𫁱\": \"𥶽\",\n\"𫁲\": \"䉑\",\n\"𫁳\": \"𥯤\",\n\"𫁷\": \"䉶\",\n\"𫁺\": \"𥴼\",\n\"𫂃\": \"簢\",\n\"𫂆\": \"簂\",\n\"𫂈\": \"䉬\",\n\"𫂖\": \"𥴨\",\n\"𫂿\": \"𥻦\",\n\"𫃗\": \"𩏷\",\n\"𫄙\": \"糺\",\n\"𫄚\": \"䊺\",\n\"𫄛\": \"紟\",\n\"𫄜\": \"䋃\",\n\"𫄝\": \"𥾯\",\n\"𫄞\": \"䋔\",\n\"𫄟\": \"絁\",\n\"𫄠\": \"絙\",\n\"𫄡\": \"絧\",\n\"𫄢\": \"絥\",\n\"𫄣\": \"繷\",\n\"𫄤\": \"繨\",\n\"𫄥\": \"纚\",\n\"𫄦\": \"𦀖\",\n\"𫄧\": \"綖\",\n\"𫄨\": \"絺\",\n\"𫄩\": \"䋦\",\n\"𫄪\": \"𦅇\",\n\"𫄫\": \"綟\",\n\"𫄬\": \"緤\",\n\"𫄭\": \"緮\",\n\"𫄮\": \"䋼\",\n\"𫄯\": \"𦃩\",\n\"𫄰\": \"縍\",\n\"𫄱\": \"繬\",\n\"𫄲\": \"縸\",\n\"𫄳\": \"縰\",\n\"𫄴\": \"繂\",\n\"𫄵\": \"𦅈\",\n\"𫄶\": \"繈\",\n\"𫄷\": \"繶\",\n\"𫄸\": \"纁\",\n\"𫄹\": \"纗\",\n\"𫅅\": \"䍤\",\n\"𫅗\": \"羵\",\n\"𫅥\": \"𦒀\",\n\"𫅭\": \"䎙\",\n\"𫅼\": \"𦔖\",\n\"𫆏\": \"聻\",\n\"𫆝\": \"𦟼\",\n\"𫆫\": \"𦡝\",\n\"𫇘\": \"𦧺\",\n\"𫇛\": \"艣\",\n\"𫇪\": \"𦱌\",\n\"𫇭\": \"蔿\",\n\"𫇴\": \"蒭\",\n\"𫇽\": \"蕽\",\n\"𫈉\": \"蕳\",\n\"𫈎\": \"葝\",\n\"𫈟\": \"蔯\",\n\"𫈵\": \"蕝\",\n\"𫉁\": \"薆\",\n\"𫉄\": \"藷\",\n\"𫊪\": \"䗅\",\n\"𫊮\": \"蠦\",\n\"𫊸\": \"蟜\",\n\"𫊹\": \"𧒯\",\n\"𫊻\": \"蟳\",\n\"𫋇\": \"蟂\",\n\"𫋌\": \"蟘\",\n\"𫋲\": \"䙔\",\n\"𫋷\": \"襗\",\n\"𫋹\": \"襓\",\n\"𫋻\": \"襘\",\n\"𫌀\": \"襀\",\n\"𫌇\": \"襵\",\n\"𫌋\": \"𧞫\",\n\"𫌨\": \"覼\",\n\"𫌪\": \"覛\",\n\"𫌫\": \"𧡴\",\n\"𫌬\": \"𧢄\",\n\"𫌭\": \"覹\",\n\"𫌯\": \"䚩\",\n\"𫍐\": \"𧭹\",\n\"𫍙\": \"訑\",\n\"𫍚\": \"訞\",\n\"𫍛\": \"訜\",\n\"𫍜\": \"詓\",\n\"𫍝\": \"諫\",\n\"𫍞\": \"𧦝\",\n\"𫍟\": \"𧦧\",\n\"𫍠\": \"䛄\",\n\"𫍡\": \"詑\",\n\"𫍢\": \"譊\",\n\"𫍣\": \"詷\",\n\"𫍤\": \"譑\",\n\"𫍥\": \"誂\",\n\"𫍦\": \"譨\",\n\"𫍧\": \"誺\",\n\"𫍨\": \"誫\",\n\"𫍩\": \"諣\",\n\"𫍪\": \"誋\",\n\"𫍫\": \"䛳\",\n\"𫍬\": \"誷\",\n\"𫍭\": \"𧩕\",\n\"𫍮\": \"誳\",\n\"𫍯\": \"諴\",\n\"𫍰\": \"諰\",\n\"𫍱\": \"諯\",\n\"𫍲\": \"謏\",\n\"𫍳\": \"諥\",\n\"𫍴\": \"謱\",\n\"𫍵\": \"謸\",\n\"𫍶\": \"𧩼\",\n\"𫍷\": \"謉\",\n\"𫍸\": \"謆\",\n\"𫍹\": \"謯\",\n\"𫍺\": \"𧫝\",\n\"𫍻\": \"譆\",\n\"𫍼\": \"𧬤\",\n\"𫍽\": \"譞\",\n\"𫍾\": \"𧭈\",\n\"𫍿\": \"譾\",\n\"𫎆\": \"豵\",\n\"𫎌\": \"貗\",\n\"𫎦\": \"贚\",\n\"𫎧\": \"䝭\",\n\"𫎨\": \"𧸘\",\n\"𫎩\": \"賝\",\n\"𫎪\": \"䞋\",\n\"𫎫\": \"贉\",\n\"𫎬\": \"贑\",\n\"𫎭\": \"䞓\",\n\"𫎱\": \"䟐\",\n\"𫎳\": \"䟆\",\n\"𫎸\": \"𧽯\",\n\"𫎺\": \"䟃\",\n\"𫏃\": \"䠆\",\n\"𫏆\": \"蹳\",\n\"𫏋\": \"蹻\",\n\"𫏌\": \"𨂐\",\n\"𫏐\": \"蹔\",\n\"𫏑\": \"𨇽\",\n\"𫏕\": \"𨆪\",\n\"𫏞\": \"𨇰\",\n\"𫏨\": \"𨇤\",\n\"𫐄\": \"軏\",\n\"𫐅\": \"軕\",\n\"𫐆\": \"轣\",\n\"𫐇\": \"軜\",\n\"𫐈\": \"軷\",\n\"𫐉\": \"軨\",\n\"𫐊\": \"軬\",\n\"𫐋\": \"𨎌\",\n\"𫐌\": \"軿\",\n\"𫐍\": \"𨌈\",\n\"𫐎\": \"輢\",\n\"𫐏\": \"輖\",\n\"𫐐\": \"輗\",\n\"𫐑\": \"輨\",\n\"𫐒\": \"輷\",\n\"𫐓\": \"輮\",\n\"𫐔\": \"𨍰\",\n\"𫐕\": \"轊\",\n\"𫐖\": \"轇\",\n\"𫐗\": \"轐\",\n\"𫐘\": \"轗\",\n\"𫐙\": \"轠\",\n\"𫐷\": \"遱\",\n\"𫑘\": \"鄟\",\n\"𫑡\": \"鄳\",\n\"𫑷\": \"醶\",\n\"𫓥\": \"釟\",\n\"𫓦\": \"釨\",\n\"𫓧\": \"鈇\",\n\"𫓨\": \"鈛\",\n\"𫓩\": \"鏦\",\n\"𫓪\": \"鈆\",\n\"𫓫\": \"𨥟\",\n\"𫓬\": \"鉔\",\n\"𫓭\": \"鉠\",\n\"𫓮\": \"𨪕\",\n\"𫓯\": \"銈\",\n\"𫓰\": \"銊\",\n\"𫓱\": \"鐈\",\n\"𫓲\": \"銁\",\n\"𫓳\": \"𨰋\",\n\"𫓴\": \"鉾\",\n\"𫓵\": \"鋠\",\n\"𫓶\": \"鋗\",\n\"𫓷\": \"𫒡\",\n\"𫓸\": \"錽\",\n\"𫓹\": \"錤\",\n\"𫓺\": \"鐪\",\n\"𫓻\": \"錜\",\n\"𫓼\": \"𨨛\",\n\"𫓽\": \"錝\",\n\"𫓾\": \"錥\",\n\"𫓿\": \"𨨢\",\n\"𫔀\": \"鍊\",\n\"𫔁\": \"鐼\",\n\"𫔂\": \"鍉\",\n\"𫔃\": \"𨰲\",\n\"𫔄\": \"鍒\",\n\"𫔅\": \"鎍\",\n\"𫔆\": \"䥯\",\n\"𫔇\": \"鎞\",\n\"𫔈\": \"鎙\",\n\"𫔉\": \"𨰃\",\n\"𫔊\": \"鏥\",\n\"𫔋\": \"䥗\",\n\"𫔌\": \"鏾\",\n\"𫔍\": \"鐇\",\n\"𫔎\": \"鐍\",\n\"𫔏\": \"𨬖\",\n\"𫔐\": \"𨭸\",\n\"𫔑\": \"𨭖\",\n\"𫔒\": \"𨮳\",\n\"𫔓\": \"𨯟\",\n\"𫔔\": \"鑴\",\n\"𫔕\": \"𨰥\",\n\"𫔖\": \"𨲳\",\n\"𫔭\": \"開\",\n\"𫔮\": \"閒\",\n\"𫔯\": \"閗\",\n\"𫔰\": \"閞\",\n\"𫔲\": \"𨴹\",\n\"𫔴\": \"閵\",\n\"𫔵\": \"䦯\",\n\"𫔶\": \"闑\",\n\"𫔽\": \"𨼳\",\n\"𫕚\": \"𩀨\",\n\"𫕥\": \"霣\",\n\"𫕨\": \"𩅙\",\n\"𫖃\": \"靧\",\n\"𫖅\": \"䪊\",\n\"𫖇\": \"鞾\",\n\"𫖑\": \"𩎖\",\n\"𫖒\": \"韠\",\n\"𫖓\": \"𩏂\",\n\"𫖔\": \"韛\",\n\"𫖕\": \"韝\",\n\"𫖖\": \"𩏠\",\n\"𫖪\": \"𩑔\",\n\"𫖫\": \"䪴\",\n\"𫖬\": \"䪾\",\n\"𫖭\": \"𩒎\",\n\"𫖮\": \"顗\",\n\"𫖯\": \"頫\",\n\"𫖰\": \"䫂\",\n\"𫖱\": \"䫀\",\n\"𫖲\": \"䫟\",\n\"𫖳\": \"頵\",\n\"𫖴\": \"𩔳\",\n\"𫖵\": \"𩓥\",\n\"𫖶\": \"顅\",\n\"𫖷\": \"𩔑\",\n\"𫖸\": \"願\",\n\"𫖹\": \"顣\",\n\"𫖺\": \"䫶\",\n\"𫗇\": \"䫻\",\n\"𫗈\": \"𩗓\",\n\"𫗉\": \"𩗴\",\n\"𫗊\": \"䬓\",\n\"𫗋\": \"飋\",\n\"𫗚\": \"𩟗\",\n\"𫗞\": \"飦\",\n\"𫗟\": \"䬧\",\n\"𫗠\": \"餦\",\n\"𫗡\": \"𩚩\",\n\"𫗢\": \"飵\",\n\"𫗣\": \"飶\",\n\"𫗤\": \"𩛌\",\n\"𫗥\": \"餫\",\n\"𫗦\": \"餔\",\n\"𫗧\": \"餗\",\n\"𫗨\": \"𩛡\",\n\"𫗩\": \"饠\",\n\"𫗪\": \"餧\",\n\"𫗫\": \"餬\",\n\"𫗬\": \"餪\",\n\"𫗭\": \"餵\",\n\"𫗮\": \"餭\",\n\"𫗯\": \"餱\",\n\"𫗰\": \"䭔\",\n\"𫗱\": \"䭑\",\n\"𫗳\": \"𩝽\",\n\"𫗴\": \"饘\",\n\"𫗵\": \"饟\",\n\"𫘛\": \"馯\",\n\"𫘜\": \"馼\",\n\"𫘝\": \"駃\",\n\"𫘞\": \"駞\",\n\"𫘟\": \"駊\",\n\"𫘠\": \"駤\",\n\"𫘡\": \"駫\",\n\"𫘣\": \"駻\",\n\"𫘤\": \"騃\",\n\"𫘥\": \"騉\",\n\"𫘦\": \"騊\",\n\"𫘧\": \"騄\",\n\"𫘨\": \"騠\",\n\"𫘩\": \"騜\",\n\"𫘪\": \"騵\",\n\"𫘫\": \"騴\",\n\"𫘬\": \"騱\",\n\"𫘭\": \"騻\",\n\"𫘮\": \"䮰\",\n\"𫘯\": \"驓\",\n\"𫘰\": \"驙\",\n\"𫘱\": \"驨\",\n\"𫘽\": \"鬠\",\n\"𫙂\": \"𩯁\",\n\"𫚈\": \"鱮\",\n\"𫚉\": \"魟\",\n\"𫚊\": \"鰑\",\n\"𫚋\": \"鱄\",\n\"𫚌\": \"魦\",\n\"𫚍\": \"魵\",\n\"𫚎\": \"𩶁\",\n\"𫚏\": \"䱁\",\n\"𫚐\": \"䱀\",\n\"𫚑\": \"鮅\",\n\"𫚒\": \"鮄\",\n\"𫚓\": \"鮤\",\n\"𫚔\": \"鮰\",\n\"𫚕\": \"鰤\",\n\"𫚖\": \"鮆\",\n\"𫚗\": \"鮯\",\n\"𫚘\": \"𩻮\",\n\"𫚙\": \"鯆\",\n\"𫚚\": \"鮿\",\n\"𫚛\": \"鮵\",\n\"𫚜\": \"䲅\",\n\"𫚝\": \"𩸄\",\n\"𫚞\": \"鯬\",\n\"𫚟\": \"𩸡\",\n\"𫚠\": \"䱧\",\n\"𫚡\": \"鯞\",\n\"𫚢\": \"鰋\",\n\"𫚣\": \"鯾\",\n\"𫚤\": \"鰦\",\n\"𫚥\": \"鰕\",\n\"𫚦\": \"鰫\",\n\"𫚧\": \"鰽\",\n\"𫚨\": \"𩻗\",\n\"𫚩\": \"𩻬\",\n\"𫚪\": \"鱊\",\n\"𫚫\": \"鱢\",\n\"𫚬\": \"𩼶\",\n\"𫚭\": \"鱲\",\n\"𫛚\": \"鳽\",\n\"𫛛\": \"鳷\",\n\"𫛜\": \"鴀\",\n\"𫛝\": \"鴅\",\n\"𫛞\": \"鴃\",\n\"𫛟\": \"鸗\",\n\"𫛠\": \"𩿤\",\n\"𫛡\": \"鴔\",\n\"𫛢\": \"鸋\",\n\"𫛣\": \"鴥\",\n\"𫛤\": \"鴐\",\n\"𫛥\": \"鵊\",\n\"𫛦\": \"鴮\",\n\"𫛧\": \"𪀖\",\n\"𫛨\": \"鵧\",\n\"𫛩\": \"鴳\",\n\"𫛪\": \"鴽\",\n\"𫛫\": \"鶰\",\n\"𫛬\": \"䳜\",\n\"𫛭\": \"鵟\",\n\"𫛮\": \"䳤\",\n\"𫛯\": \"鶭\",\n\"𫛰\": \"䳢\",\n\"𫛱\": \"鵫\",\n\"𫛲\": \"鵰\",\n\"𫛳\": \"鵩\",\n\"𫛴\": \"鷤\",\n\"𫛵\": \"鶌\",\n\"𫛶\": \"鶒\",\n\"𫛷\": \"鶦\",\n\"𫛸\": \"鶗\",\n\"𫛹\": \"𪃧\",\n\"𫛺\": \"䳧\",\n\"𫛻\": \"𪃒\",\n\"𫛼\": \"䳫\",\n\"𫛽\": \"鷅\",\n\"𫛾\": \"𪆷\",\n\"𫜀\": \"鷐\",\n\"𫜁\": \"鷩\",\n\"𫜂\": \"𪅂\",\n\"𫜃\": \"鷣\",\n\"𫜄\": \"鷷\",\n\"𫜅\": \"䴋\",\n\"𫜊\": \"𪉸\",\n\"𫜑\": \"麷\",\n\"𫜒\": \"䴱\",\n\"𫜓\": \"𪌭\",\n\"𫜔\": \"䴽\",\n\"𫜕\": \"𪍠\",\n\"𫜙\": \"䵴\",\n\"𫜟\": \"𪓰\",\n\"𫜨\": \"䶕\",\n\"𫜩\": \"齧\",\n\"𫜪\": \"齩\",\n\"𫜫\": \"𫜦\",\n\"𫜬\": \"齰\",\n\"𫜭\": \"齭\",\n\"𫜮\": \"齴\",\n\"𫜯\": \"𪙏\",\n\"𫜰\": \"齾\",\n\"𫜲\": \"龓\",\n\"𫜳\": \"䶲\",\n\"𫝈\": \"㑮\",\n\"𫝋\": \"𠐊\",\n\"𫝦\": \"㛝\",\n\"𫝧\": \"㜐\",\n\"𫝨\": \"媈\",\n\"𫝩\": \"嬦\",\n\"𫝪\": \"𡟫\",\n\"𫝫\": \"婡\",\n\"𫝬\": \"嬇\",\n\"𫝭\": \"孆\",\n\"𫝮\": \"孄\",\n\"𫝵\": \"嶹\",\n\"𫞅\": \"𦠅\",\n\"𫞗\": \"潣\",\n\"𫞚\": \"澬\",\n\"𫞛\": \"㶆\",\n\"𫞝\": \"灍\",\n\"𫞠\": \"爧\",\n\"𫞡\": \"爃\",\n\"𫞢\": \"𤛱\",\n\"𫞣\": \"㹽\",\n\"𫞥\": \"珼\",\n\"𫞦\": \"璾\",\n\"𫞧\": \"𤩂\",\n\"𫞨\": \"璼\",\n\"𫞩\": \"璊\",\n\"𫞷\": \"𥢶\",\n\"𫟃\": \"絍\",\n\"𫟄\": \"綋\",\n\"𫟅\": \"綡\",\n\"𫟆\": \"緟\",\n\"𫟇\": \"𦆲\",\n\"𫟑\": \"䖅\",\n\"𫟕\": \"䕤\",\n\"𫟞\": \"訨\",\n\"𫟟\": \"詊\",\n\"𫟠\": \"譂\",\n\"𫟡\": \"誴\",\n\"𫟢\": \"䜖\",\n\"𫟤\": \"䡐\",\n\"𫟥\": \"䡩\",\n\"𫟦\": \"䡵\",\n\"𫟫\": \"𨞺\",\n\"𫟬\": \"𨟊\",\n\"𫟲\": \"釚\",\n\"𫟳\": \"釲\",\n\"𫟴\": \"鈖\",\n\"𫟵\": \"鈗\",\n\"𫟶\": \"銏\",\n\"𫟷\": \"鉝\",\n\"𫟸\": \"鉽\",\n\"𫟹\": \"鉷\",\n\"𫟺\": \"䤤\",\n\"𫟻\": \"銂\",\n\"𫟼\": \"鐽\",\n\"𫟽\": \"𨧰\",\n\"𫟾\": \"𨩰\",\n\"𫟿\": \"鎈\",\n\"𫠀\": \"䥄\",\n\"𫠁\": \"鑉\",\n\"𫠂\": \"閝\",\n\"𫠅\": \"韚\",\n\"𫠆\": \"頍\",\n\"𫠇\": \"𩖰\",\n\"𫠈\": \"䫾\",\n\"𫠊\": \"䮄\",\n\"𫠋\": \"騼\",\n\"𫠌\": \"𩦠\",\n\"𫠏\": \"𩵦\",\n\"𫠐\": \"魽\",\n\"𫠑\": \"䱸\",\n\"𫠒\": \"鱆\",\n\"𫠖\": \"𩿅\",\n\"𫠜\": \"齯\",\n\"𫢸\": \"僤\",\n\"𫫇\": \"噁\",\n\"𫭟\": \"塸\",\n\"𫭢\": \"埨\",\n\"𫭼\": \"𡑍\",\n\"𫮃\": \"墠\",\n\"𫰛\": \"娙\",\n\"𫵷\": \"㠣\",\n\"𫶇\": \"嵽\",\n\"𫷷\": \"廞\",\n\"𫸩\": \"彄\",\n\"𬀩\": \"暐\",\n\"𬀪\": \"晛\",\n\"𬂩\": \"梜\",\n\"𬃊\": \"櫍\",\n\"𬇕\": \"澫\",\n\"𬇙\": \"浿\",\n\"𬇹\": \"漍\",\n\"𬉼\": \"熰\",\n\"𬊈\": \"燖\",\n\"𬊤\": \"燀\",\n\"𬍛\": \"瓅\",\n\"𬍡\": \"璗\",\n\"𬍤\": \"璕\",\n\"𬒈\": \"礐\",\n\"𬒗\": \"𥗽\",\n\"𬕂\": \"篢\",\n\"𬘓\": \"紃\",\n\"𬘘\": \"紞\",\n\"𬘡\": \"絪\",\n\"𬘩\": \"綎\",\n\"𬘫\": \"綄\",\n\"𬘬\": \"綪\",\n\"𬘭\": \"綝\",\n\"𬘯\": \"綧\",\n\"𬙂\": \"縯\",\n\"𬙊\": \"纆\",\n\"𬙋\": \"纕\",\n\"𬜬\": \"蔄\",\n\"𬜯\": \"䓣\",\n\"𬞟\": \"蘋\",\n\"𬟁\": \"虉\",\n\"𬟽\": \"蝀\",\n\"𬣙\": \"訏\",\n\"𬣞\": \"詝\",\n\"𬣡\": \"諓\",\n\"𬣳\": \"詪\",\n\"𬤇\": \"諲\",\n\"𬤊\": \"諟\",\n\"𬤝\": \"譓\",\n\"𬨂\": \"軝\",\n\"𬨎\": \"輶\",\n\"𬩽\": \"鄩\",\n\"𬪩\": \"醲\",\n\"𬬩\": \"釴\",\n\"𬬭\": \"錀\",\n\"𬬮\": \"鋹\",\n\"𬬱\": \"釿\",\n\"𬬸\": \"鉥\",\n\"𬬹\": \"鉮\",\n\"𬬻\": \"鑪\",\n\"𬬿\": \"鉊\",\n\"𬭁\": \"鉧\",\n\"𬭊\": \"𨧀\",\n\"𬭎\": \"鋐\",\n\"𬭚\": \"錞\",\n\"𬭛\": \"𨨏\",\n\"𬭤\": \"鍭\",\n\"𬭩\": \"鎓\",\n\"𬭬\": \"鏏\",\n\"𬭯\": \"䥕\",\n\"𬭳\": \"𨭎\",\n\"𬭶\": \"𨭆\",\n\"𬭸\": \"鏻\",\n\"𬭼\": \"鐩\",\n\"𬮱\": \"闉\",\n\"𬮿\": \"隑\",\n\"𬯀\": \"隮\",\n\"𬯎\": \"隤\",\n\"𬱖\": \"頔\",\n\"𬱟\": \"頠\",\n\"𬳵\": \"駓\",\n\"𬳶\": \"駉\",\n\"𬳽\": \"駪\",\n\"𬳿\": \"駼\",\n\"𬴂\": \"騑\",\n\"𬴃\": \"騞\",\n\"𬴊\": \"驎\",\n\"𬶋\": \"鮈\",\n\"𬶍\": \"鮀\",\n\"𬶏\": \"鮠\",\n\"𬶐\": \"鮡\",\n\"𬶟\": \"鯻\",\n\"𬶠\": \"鰊\",\n\"𬶨\": \"鱀\",\n\"𬶭\": \"鰶\",\n\"𬶮\": \"鱚\",\n\"𬷕\": \"鵏\",\n\"𬸘\": \"鶠\",\n\"𬸚\": \"鸑\",\n\"𬸣\": \"鶱\",\n\"𬸦\": \"鷟\",\n\"𬸪\": \"鷭\",\n\"𬹼\": \"齘\",\n\"𬺈\": \"齮\",\n\"𬺓\": \"齼\"\n},\n\"zh2SG\": {},\n\"zh2TW\": {\n\"0字节\": \"0位元組\",\n\"0杆\": \"0桿\",\n\"1字节\": \"1位元組\",\n\"1杆\": \"1桿\",\n\"2字节\": \"2位元組\",\n\"2杆\": \"2桿\",\n\"3字节\": \"3位元組\",\n\"3杆\": \"3桿\",\n\"4字节\": \"4位元組\",\n\"4杆\": \"4桿\",\n\"5字节\": \"5位元組\",\n\"5杆\": \"5桿\",\n\"6字节\": \"6位元組\",\n\"6杆\": \"6桿\",\n\"7字节\": \"7位元組\",\n\"7杆\": \"7桿\",\n\"8字节\": \"8位元組\",\n\"8杆\": \"8桿\",\n\"9字节\": \"9位元組\",\n\"9杆\": \"9桿\",\n\"IP地址\": \"IP位址\",\n\"·威尔士\": \"·威爾士\",\n\"·威爾士\": \"·威爾士\",\n\"一杆\": \"一桿\",\n\"七杆\": \"七桿\",\n\"万历朝鲜战争\": \"萬曆朝鮮戰爭\",\n\"万维网\": \"全球資訊網\",\n\"三杆\": \"三桿\",\n\"三极管\": \"三極體\",\n\"三極管\": \"三極體\",\n\"三藩市\": \"舊金山\",\n\"上落客\": \"上下客\",\n\"不來梅\": \"不萊梅\",\n\"不列颠哥伦比亚省\": \"卑詩省\",\n\"不来梅\": \"不萊梅\",\n\"丘吉尔\": \"邱吉爾\",\n\"丙型肝炎\": \"C型肝炎\",\n\"丙肝\": \"C肝\",\n\"东南亚国家联盟\": \"東南亞國家協會\",\n\"东盟\": \"東協\",\n\"乌冬面\": \"烏龍麵\",\n\"乍得\": \"查德\",\n\"乒乓\": \"桌球\",\n\"乒乓球\": \"桌球\",\n\"乔布斯\": \"賈伯斯\",\n\"乔戈里峰\": \"K2\",\n\"乔治·奥威尔\": \"喬治·歐威爾\",\n\"乙型肝炎\": \"B型肝炎\",\n\"乙肝\": \"B肝\",\n\"九杆\": \"九桿\",\n\"乞力馬札羅\": \"吉力馬札羅\",\n\"乞力马扎罗\": \"吉力馬札羅\",\n\"也門\": \"葉門\",\n\"也门\": \"葉門\",\n\"了結他\": \"了結他\",\n\"二手烟\": \"二手菸\",\n\"二手煙\": \"二手菸\",\n\"二杆\": \"二桿\",\n\"二极管\": \"二極體\",\n\"二極管\": \"二極體\",\n\"互联网\": \"網際網路\",\n\"互联网络\": \"網際網路\",\n\"互聯網\": \"網際網路\",\n\"互聯網絡\": \"網際網路\",\n\"五杆\": \"五桿\",\n\"亚拉巴马\": \"阿拉巴馬\",\n\"亚的斯亚贝巴\": \"阿迪斯阿貝巴\",\n\"亚细安\": \"東協\",\n\"亞的斯亞貝巴\": \"阿迪斯阿貝巴\",\n\"交互设计\": \"互動設計\",\n\"人工智能\": \"人工智慧\",\n\"人机交互\": \"人機互動\",\n\"以太网\": \"乙太網\",\n\"伊丽莎白\": \"伊莉莎白\",\n\"伊利诺伊州\": \"伊利諾州\",\n\"伊斯兰堡\": \"伊斯蘭瑪巴德\",\n\"伊斯坦布尔\": \"伊斯坦堡\",\n\"伊斯坦布爾\": \"伊斯坦堡\",\n\"伊斯蘭堡\": \"伊斯蘭瑪巴德\",\n\"伯利兹\": \"貝里斯\",\n\"伯利茲\": \"貝里斯\",\n\"伯明翰\": \"伯明罕\",\n\"佈\": \"布\",\n\"佐治亚\": \"喬治亞\",\n\"佐治亞\": \"喬治亞\",\n\"佛得角\": \"維德角\",\n\"佛罗伦萨\": \"佛羅倫斯\",\n\"侯賽因\": \"海珊\",\n\"侯赛因\": \"海珊\",\n\"便携式\": \"可攜式\",\n\"信息时代\": \"資訊時代\",\n\"信息论\": \"資訊理論\",\n\"俯卧撑\": \"伏地挺身\",\n\"健力士世界紀錄\": \"金氏世界紀錄\",\n\"健力士世界纪录\": \"金氏世界紀錄\",\n\"傅里叶\": \"傅立葉\",\n\"僞\": \"偽\",\n\"兇\": \"凶\",\n\"光盘\": \"光碟\",\n\"光驱\": \"光碟機\",\n\"克林頓\": \"柯林頓\",\n\"克林顿\": \"柯林頓\",\n\"克罗地亚\": \"克羅埃西亞\",\n\"克羅地亞\": \"克羅埃西亞\",\n\"克里斯托弗\": \"克里斯多福\",\n\"克隆人\": \"複製人\",\n\"內羅畢\": \"奈洛比\",\n\"全角\": \"全形\",\n\"全角度\": \"全角度\",\n\"全角色\": \"全角色\",\n\"八杆\": \"八桿\",\n\"公共交通\": \"公共運輸\",\n\"六杆\": \"六桿\",\n\"共和联邦\": \"大英國協\",\n\"关系着\": \"關係著\",\n\"内罗毕\": \"奈洛比\",\n\"冈比亚\": \"甘比亞\",\n\"写保护\": \"防寫\",\n\"冲着\": \"衝著\",\n\"几内亚比绍\": \"幾內亞比索\",\n\"几率\": \"機率\",\n\"凯瑟琳\": \"凱薩琳\",\n\"出租车\": \"計程車\",\n\"分辨率\": \"解析度\",\n\"切尔诺贝利\": \"車諾比\",\n\"划着独木舟\": \"划著獨木舟\",\n\"划着竹筏\": \"划著竹筏\",\n\"划着船\": \"划著船\",\n\"列奥纳多\": \"李奧納多\",\n\"列支敦士登\": \"列支敦斯登\",\n\"利比里亚\": \"賴比瑞亞\",\n\"利比里亞\": \"賴比瑞亞\",\n\"前波美拉尼亚\": \"前波莫瑞\",\n\"前波美拉尼亞\": \"前波莫瑞\",\n\"加沙地带\": \"加薩走廊\",\n\"加沙地帶\": \"加薩走廊\",\n\"加泰罗尼亚\": \"加泰隆尼亞\",\n\"加泰羅尼亞\": \"加泰隆尼亞\",\n\"加蓬\": \"加彭\",\n\"劳拉\": \"蘿拉\",\n\"勃兰登堡\": \"布蘭登堡\",\n\"勃朗宁\": \"白朗寧\",\n\"勃蘭登堡\": \"布蘭登堡\",\n\"包豪斯\": \"包浩斯\",\n\"北朝鲜\": \"北韓\",\n\"十杆\": \"十桿\",\n\"单反相机\": \"單眼相機\",\n\"南朝鲜\": \"南韓\",\n\"博茨瓦納\": \"波札那\",\n\"博茨瓦纳\": \"波札那\",\n\"卡塔尔\": \"卡達\",\n\"卡塔爾\": \"卡達\",\n\"卡拉奇\": \"喀拉蚩\",\n\"卡斯特罗\": \"卡斯楚\",\n\"卢塞恩\": \"琉森\",\n\"卢旺达\": \"盧安達\",\n\"卢浮宫\": \"羅浮宮\",\n\"卢瓦尔\": \"羅亞爾\",\n\"危地馬拉\": \"瓜地馬拉\",\n\"危地马拉\": \"瓜地馬拉\",\n\"卷烟\": \"捲菸\",\n\"厄利垂亚\": \"厄利垂亞\",\n\"厄瓜多\": \"厄瓜多\",\n\"厄瓜多尔\": \"厄瓜多\",\n\"厄瓜多爾\": \"厄瓜多\",\n\"厄立特里亚\": \"厄利垂亞\",\n\"厄立特里亞\": \"厄利垂亞\",\n\"反烟\": \"反菸\",\n\"反煙\": \"反菸\",\n\"可卡因\": \"古柯鹼\",\n\"台式电脑\": \"桌上型電腦\",\n\"台球\": \"撞球\",\n\"叱咤\": \"叱吒\",\n\"叱咤9\": \"叱咤9\",\n\"叱咤M\": \"叱咤M\",\n\"叱咤叱\": \"叱咤叱\",\n\"叱咤咤\": \"叱咤咤\",\n\"叱咤樂壇\": \"叱咤樂壇\",\n\"叶利钦\": \"葉爾欽\",\n\"吉尼斯世界纪录\": \"金氏世界紀錄\",\n\"吉布堤\": \"吉布地\",\n\"吉布提\": \"吉布地\",\n\"吕宋烟\": \"呂宋菸\",\n\"吸烟\": \"吸菸\",\n\"吸煙\": \"吸菸\",\n\"呂宋煙\": \"呂宋菸\",\n\"味美思\": \"苦艾酒\",\n\"哥斯达黎加\": \"哥斯大黎加\",\n\"哥斯達黎加\": \"哥斯大黎加\",\n\"哥特式\": \"哥德式\",\n\"唐纳德·特朗普\": \"唐納·川普\",\n\"啓\": \"啟\",\n\"喫\": \"吃\",\n\"單鏡反光機\": \"單眼相機\",\n\"嘉芙蓮\": \"凱薩琳\",\n\"嘯咤\": \"嘯吒\",\n\"四杆\": \"四桿\",\n\"因特网\": \"網際網路\",\n\"国际象棋\": \"西洋棋\",\n\"图卢兹\": \"土魯斯\",\n\"图瓦卢\": \"吐瓦魯\",\n\"圆珠笔\": \"原子筆\",\n\"國際象棋\": \"西洋棋\",\n\"圖瓦盧\": \"吐瓦魯\",\n\"圖盧茲\": \"土魯斯\",\n\"圣佩德罗苏拉\": \"汕埠\",\n\"圣卢西亚\": \"聖露西亞\",\n\"圣基茨和尼维斯\": \"聖克里斯多福及尼維斯\",\n\"圣文森特和格林纳丁斯\": \"聖文森及格瑞那丁\",\n\"圣赫勒拿\": \"聖赫倫那\",\n\"圣马力诺\": \"聖馬利諾\",\n\"圭亚那\": \"蓋亞那\",\n\"坦桑尼亚\": \"坦尚尼亞\",\n\"坦桑尼亞\": \"坦尚尼亞\",\n\"埃博拉\": \"伊波拉\",\n\"埃塞俄比亚\": \"衣索比亞\",\n\"埃塞俄比亞\": \"衣索比亞\",\n\"埃菲尔\": \"艾菲爾\",\n\"埃里温\": \"葉里溫\",\n\"埃里溫\": \"葉里溫\",\n\"基里巴斯\": \"吉里巴斯\",\n\"堪培拉\": \"坎培拉\",\n\"塑料袋\": \"塑膠袋\",\n\"塔希提\": \"大溪地\",\n\"塞尔维亚和黑山\": \"塞爾維亞與蒙特內哥羅\",\n\"塞拉利昂\": \"獅子山\",\n\"塞浦路斯\": \"賽普勒斯\",\n\"塞爾維亞和黑山\": \"塞爾維亞與蒙特內哥羅\",\n\"塞爾維亞與蒙特內哥羅\": \"塞爾維亞與蒙特內哥羅\",\n\"塞维利亚\": \"塞維亞\",\n\"塞舌尔\": \"塞席爾\",\n\"塞舌爾\": \"塞席爾\",\n\"塞黑\": \"塞蒙\",\n\"声卡\": \"音效卡\",\n\"多普勒\": \"都卜勒\",\n\"多民族玻利維亞國\": \"玻利維亞多民族國\",\n\"多民族玻利维亚国\": \"玻利維亞多民族國\",\n\"多美和普林西比\": \"多美普林西比\",\n\"太空飛行員\": \"太空人\",\n\"奥巴马\": \"歐巴馬\",\n\"奧巴馬\": \"歐巴馬\",\n\"威士顿康星\": \"威斯康辛\",\n\"威尔士\": \"威爾斯\",\n\"威廉姆斯\": \"威廉士\",\n\"威斯特法伦\": \"威斯伐倫\",\n\"威斯特法倫\": \"威斯伐倫\",\n\"威爾士\": \"威爾斯\",\n\"嫺\": \"嫻\",\n\"嬀\": \"媯\",\n\"字段\": \"欄位\",\n\"存盘\": \"存檔\",\n\"孟德爾遜\": \"孟德爾頌\",\n\"宇航员\": \"太空人\",\n\"宇航服\": \"太空衣\",\n\"安哈尔特\": \"安哈特\",\n\"安哈爾特\": \"安哈特\",\n\"安提瓜\": \"安地卡\",\n\"安提瓜和巴布达\": \"安地卡及巴布達\",\n\"安提瓜和巴布達\": \"安地卡及巴布達\",\n\"宾西法尼亚\": \"賓夕法尼亞\",\n\"密歇根\": \"密西根\",\n\"对着干\": \"對著幹\",\n\"导弹\": \"飛彈\",\n\"尼克松\": \"尼克森\",\n\"尼日利亚\": \"奈及利亞\",\n\"尼日利亞\": \"奈及利亞\",\n\"尼日尔\": \"尼日\",\n\"尼日爾\": \"尼日\",\n\"尾班車\": \"末班車\",\n\"局域网\": \"區域網\",\n\"局域网络\": \"區域網路\",\n\"岡比亞\": \"甘比亞\",\n\"峯\": \"峰\",\n\"巴伦西亚\": \"瓦倫西亞\",\n\"巴厘\": \"峇里\",\n\"巴塞罗那\": \"巴塞隆納\",\n\"巴塞隆拿\": \"巴塞隆納\",\n\"巴士拉\": \"巴斯拉\",\n\"巴尔米拉环礁\": \"帕邁拉環礁\",\n\"巴巴多斯\": \"巴貝多\",\n\"布什\": \"布希\",\n\"布基納法索\": \"布吉納法索\",\n\"布基纳法索\": \"布吉納法索\",\n\"布拉迪斯拉发\": \"布拉提斯拉瓦\",\n\"布拉迪斯拉發\": \"布拉提斯拉瓦\",\n\"布殊\": \"布希\",\n\"布里斯托尔\": \"布里斯托\",\n\"布隆方丹\": \"布隆泉\",\n\"布隆迪\": \"蒲隆地\",\n\"希拉克\": \"席哈克\",\n\"希拉克略\": \"希拉克略\",\n\"希拉莉\": \"希拉蕊\",\n\"希拉里\": \"希拉蕊\",\n\"希特拉\": \"希特勒\",\n\"帕劳\": \"帛琉\",\n\"帕塔亚\": \"芭達亞\",\n\"帕特里克\": \"派屈克\",\n\"干着\": \"幹著\",\n\"干着急\": \"干著急\",\n\"幺\": \"么\",\n\"幾內亞比紹\": \"幾內亞比索\",\n\"库尔德人\": \"庫德人\",\n\"库尔德族\": \"庫德族\",\n\"应用程序\": \"應用程式\",\n\"康涅狄格\": \"康乃狄克\",\n\"开普勒\": \"克卜勒\",\n\"弗吉尼亚\": \"維吉尼亞\",\n\"当且仅当\": \"若且唯若\",\n\"形而上学\": \"形上學\",\n\"形而上學\": \"形上學\",\n\"径入\": \"逕入\",\n\"径到\": \"逕到\",\n\"径取\": \"逕取\",\n\"径启\": \"逕啟\",\n\"径寄\": \"逕寄\",\n\"径庭\": \"逕庭\",\n\"径往\": \"逕往\",\n\"径自\": \"逕自\",\n\"径行\": \"逕行\",\n\"径迎\": \"逕迎\",\n\"得克萨斯\": \"德克薩斯\",\n\"得克薩斯\": \"德克薩斯\",\n\"徵狀\": \"症狀\",\n\"德累斯頓\": \"德勒斯登\",\n\"德累斯顿\": \"德勒斯登\",\n\"德里达\": \"德希達\",\n\"忌廉\": \"奶油\",\n\"快闪存储器\": \"快閃記憶體\",\n\"悉尼\": \"雪梨\",\n\"想象\": \"想像\",\n\"意大利\": \"義大利\",\n\"意大利面\": \"義大利麵\",\n\"愛德文\": \"愛德溫\",\n\"戈尔巴乔夫\": \"戈巴契夫\",\n\"戈爾巴喬夫\": \"戈巴契夫\",\n\"戒烟\": \"戒菸\",\n\"戒煙\": \"戒菸\",\n\"戛纳\": \"坎城\",\n\"戴克里先\": \"戴克里先\",\n\"戴卓爾\": \"柴契爾\",\n\"戴安娜\": \"黛安娜\",\n\"所罗门群岛\": \"索羅門群島\",\n\"所羅門群島\": \"索羅門群島\",\n\"扎伊尔\": \"薩伊\",\n\"扎伊爾\": \"薩伊\",\n\"打印\": \"列印\",\n\"打印度\": \"打印度\",\n\"打印机\": \"印表機\",\n\"打印機\": \"印表機\",\n\"报道\": \"報導\",\n\"抽烟\": \"抽菸\",\n\"抽煙\": \"抽菸\",\n\"拒烟\": \"拒菸\",\n\"拒煙\": \"拒菸\",\n\"挥杆\": \"揮桿\",\n\"捲煙\": \"捲菸\",\n\"掌上壓\": \"伏地挺身\",\n\"控件\": \"控制項\",\n\"推杆\": \"推桿\",\n\"揮杆\": \"揮桿\",\n\"搜索引擎\": \"搜尋引擎\",\n\"摩根士丹利\": \"摩根史坦利\",\n\"撒切尔\": \"柴契爾\",\n\"操作系统\": \"作業系統\",\n\"擡\": \"抬\",\n\"攻打\": \"攻打\",\n\"数字信号\": \"數位訊號\",\n\"数字化\": \"數位化\",\n\"数字技术\": \"數位技術\",\n\"数字照相机\": \"數位照相機\",\n\"数字电视\": \"數位電視\",\n\"数字音乐\": \"數位音樂\",\n\"数据库\": \"資料庫\",\n\"数码照相机\": \"數位照相機\",\n\"数码相机\": \"數位相機\",\n\"數據庫\": \"資料庫\",\n\"數碼化\": \"數位化\",\n\"數碼技術\": \"數位技術\",\n\"數碼照相機\": \"數位照相機\",\n\"數碼相機\": \"數位相機\",\n\"數碼訊號\": \"數位訊號\",\n\"數碼電視\": \"數位電視\",\n\"數碼音樂\": \"數位音樂\",\n\"文翠珊\": \"德蕾莎·梅伊\",\n\"文莱\": \"汶萊\",\n\"斗着\": \"鬥著\",\n\"斯坦福大学\": \"史丹福大學\",\n\"斯堪的納維亞\": \"斯堪地那維亞\",\n\"斯堪的纳维亚\": \"斯堪地那維亞\",\n\"斯大林\": \"史達林\",\n\"斯威士兰\": \"史瓦帝尼\",\n\"斯威士蘭\": \"史瓦帝尼\",\n\"斯洛文尼亚\": \"斯洛維尼亞\",\n\"斯洛文尼亞\": \"斯洛維尼亞\",\n\"斯特劳斯\": \"史特勞斯\",\n\"斯皮尔伯格\": \"史匹柏\",\n\"斯蒂芬\": \"史蒂芬\",\n\"新几内亚\": \"紐幾內亞\",\n\"新奥尔良\": \"紐奧良\",\n\"新奧爾良\": \"紐奧良\",\n\"新幾內亞\": \"紐幾內亞\",\n\"新罕布什尔\": \"新罕布夏\",\n\"新西兰\": \"紐西蘭\",\n\"新西蘭\": \"紐西蘭\",\n\"施罗德\": \"施洛德\",\n\"无烟日\": \"無菸日\",\n\"无烟环境\": \"無菸環境\",\n\"旱烟\": \"旱菸\",\n\"旱煙\": \"旱菸\",\n\"昂山素姬\": \"翁山蘇姬\",\n\"昂山素季\": \"翁山蘇姬\",\n\"普利策\": \"普利茲\",\n\"普利策奖\": \"普立茲獎\",\n\"普密蓬\": \"蒲美蓬\",\n\"晶体管\": \"電晶體\",\n\"晶體管\": \"電晶體\",\n\"智能卡\": \"智慧卡\",\n\"智能手机\": \"智慧型手機\",\n\"智能手機\": \"智慧型手機\",\n\"智能机器人\": \"智慧機器人\",\n\"智能機械人\": \"智慧機器人\",\n\"智能电话\": \"智慧型電話\",\n\"智能電話\": \"智慧型電話\",\n\"曬\": \"晒\",\n\"服务器\": \"伺服器\",\n\"朝鲜战争\": \"韓戰\",\n\"木杆\": \"木桿\",\n\"本·拉登\": \"賓·拉登\",\n\"本傑明\": \"班傑明\",\n\"本拉登\": \"賓拉登\",\n\"本杰明\": \"班傑明\",\n\"机床\": \"工具機\",\n\"杆头\": \"桿頭\",\n\"杆弟\": \"桿弟\",\n\"杆身\": \"桿身\",\n\"杆頭\": \"桿頭\",\n\"杜塞尔多夫\": \"杜塞道夫\",\n\"杜塞爾多夫\": \"杜塞道夫\",\n\"東南亞國家聯盟\": \"東南亞國家協會\",\n\"東盟\": \"東協\",\n\"枪支\": \"槍枝\",\n\"枱\": \"檯\",\n\"柏林墙\": \"柏林圍牆\",\n\"柏林牆\": \"柏林圍牆\",\n\"查韦斯\": \"查維茲\",\n\"标准杆\": \"標準桿\",\n\"格丁根\": \"哥廷根\",\n\"格林納丁斯\": \"格瑞那丁\",\n\"格林納達\": \"格瑞那達\",\n\"格林纳丁斯\": \"格瑞那丁\",\n\"格林纳达\": \"格瑞那達\",\n\"格林美獎\": \"葛萊美獎\",\n\"格莱美奖\": \"葛萊美獎\",\n\"格魯吉亞\": \"喬治亞\",\n\"格鲁吉亚\": \"喬治亞\",\n\"桃金娘\": \"桃金孃\",\n\"桑巴舞\": \"森巴舞\",\n\"梅尔·吉布森\": \"梅爾·吉勃遜\",\n\"梵高\": \"梵谷\",\n\"棱\": \"稜\",\n\"榴莲\": \"榴槤\",\n\"榴蓮\": \"榴槤\",\n\"樂行童軍\": \"羅浮童軍\",\n\"標準杆\": \"標準桿\",\n\"樸茨茅夫\": \"樸茨茅斯\",\n\"機床\": \"工具機\",\n\"機械人\": \"機器人\",\n\"檐\": \"簷\",\n\"正在叱咤\": \"正在叱咤\",\n\"残奥会\": \"帕運會\",\n\"残疾人奥林匹克\": \"帕拉林匹克\",\n\"殘奧會\": \"帕運會\",\n\"殘疾人奧林匹克\": \"帕拉林匹克\",\n\"比利牛斯\": \"庇里牛斯\",\n\"比勒陀利\": \"普利托利\",\n\"毕加索\": \"畢卡索\",\n\"毛里塔尼亚\": \"茅利塔尼亞\",\n\"毛里塔尼亞\": \"茅利塔尼亞\",\n\"毛里求斯\": \"模里西斯\",\n\"毛里裘斯\": \"模里西斯\",\n\"氨基酸\": \"胺基酸\",\n\"汇编\": \"彙編\",\n\"汉诺威\": \"漢諾瓦\",\n\"污\": \"汙\",\n\"沙地阿拉伯\": \"沙烏地阿拉伯\",\n\"沙律\": \"沙拉\",\n\"沙特阿拉伯\": \"沙烏地阿拉伯\",\n\"泄\": \"洩\",\n\"法属圭亚那\": \"法屬蓋亞那\",\n\"波利尼西亚\": \"玻里尼西亞\",\n\"波利尼西亞\": \"玻里尼西亞\",\n\"波斯尼亚\": \"波士尼亞\",\n\"波斯尼亚和黑塞哥维那\": \"波士尼亞與赫塞哥維納\",\n\"波斯尼亞\": \"波士尼亞\",\n\"波斯尼亞和黑塞哥維那\": \"波士尼亞與赫塞哥維納\",\n\"波里活\": \"寶萊塢\",\n\"波黑\": \"波赫\",\n\"泰坦尼克号\": \"鐵達尼號\",\n\"洋烟\": \"洋菸\",\n\"洋煙\": \"洋菸\",\n\"津巴布韋\": \"辛巴威\",\n\"津巴布韦\": \"辛巴威\",\n\"洪都拉斯\": \"宏都拉斯\",\n\"流動作業系統\": \"行動作業系統\",\n\"流動支付\": \"行動支付\",\n\"流動網絡\": \"行動網路\",\n\"流動裝置\": \"行動裝置\",\n\"流動電話\": \"行動電話\",\n\"浮罗交怡\": \"蘭卡威\",\n\"浮羅交怡\": \"蘭卡威\",\n\"海洛英\": \"海洛因\",\n\"涌\": \"湧\",\n\"温得和克\": \"溫荷克\",\n\"源代码\": \"原始碼\",\n\"溫得和克\": \"溫荷克\",\n\"溫納圖萬\": \"那杜\",\n\"漢诺威\": \"漢諾瓦\",\n\"潙\": \"溈\",\n\"潨\": \"潀\",\n\"激光\": \"雷射\",\n\"点烟\": \"點菸\",\n\"炼金\": \"鍊金\",\n\"烟丝\": \"菸絲\",\n\"烟具\": \"菸具\",\n\"烟农\": \"菸農\",\n\"烟卷\": \"菸捲\",\n\"烟叶\": \"菸葉\",\n\"烟品\": \"菸品\",\n\"烟嘴\": \"菸嘴\",\n\"烟头\": \"菸頭\",\n\"烟斗\": \"菸斗\",\n\"烟民\": \"菸民\",\n\"烟灰\": \"菸灰\",\n\"烟熏\": \"煙燻\",\n\"烟瘾\": \"菸癮\",\n\"烟碱\": \"菸鹼\",\n\"烟草\": \"菸草\",\n\"烟蒂\": \"菸蒂\",\n\"烟袋\": \"菸袋\",\n\"烟酒\": \"菸酒\",\n\"烟鬼\": \"菸鬼\",\n\"烤烟\": \"烤菸\",\n\"烤煙\": \"烤菸\",\n\"無煙日\": \"無菸日\",\n\"無煙環境\": \"無菸環境\",\n\"煙具\": \"菸具\",\n\"煙品\": \"菸品\",\n\"煙嘴\": \"菸嘴\",\n\"煙捲\": \"菸捲\",\n\"煙斗\": \"菸斗\",\n\"煙民\": \"菸民\",\n\"煙灰\": \"菸灰\",\n\"煙癮\": \"菸癮\",\n\"煙絲\": \"菸絲\",\n\"煙草\": \"菸草\",\n\"煙葉\": \"菸葉\",\n\"煙蒂\": \"菸蒂\",\n\"煙袋\": \"菸袋\",\n\"煙農\": \"菸農\",\n\"煙酒\": \"菸酒\",\n\"煙頭\": \"菸頭\",\n\"煙鬼\": \"菸鬼\",\n\"煙鹼\": \"菸鹼\",\n\"熏烤\": \"燻烤\",\n\"熏肉\": \"燻肉\",\n\"熏黑\": \"燻黑\",\n\"爱德华州\": \"愛達荷州\",\n\"爲\": \"為\",\n\"牀\": \"床\",\n\"版权信息\": \"版權資訊\",\n\"特拉华\": \"德拉瓦\",\n\"特拉華\": \"德拉瓦\",\n\"特朗普\": \"川普\",\n\"特立尼达和托巴哥\": \"千里達及托巴哥\",\n\"特立尼達和多巴哥\": \"千里達及托巴哥\",\n\"特蕾莎·梅\": \"德蕾莎·梅伊\",\n\"狄安娜\": \"黛安娜\",\n\"独立国家联合体\": \"獨立國家國協\",\n\"独联体\": \"獨立國協\",\n\"獨立國家聯合體\": \"獨立國家國協\",\n\"獨聯體\": \"獨立國協\",\n\"珍寶客機\": \"巨無霸客機\",\n\"球杆\": \"球桿\",\n\"理查德\": \"理察\",\n\"瑙魯\": \"諾魯\",\n\"瑙鲁\": \"諾魯\",\n\"瓦努阿图\": \"萬那杜\",\n\"瓦努阿圖\": \"萬那杜\",\n\"瓦文萨\": \"華勒沙\",\n\"瓦格纳\": \"華格納\",\n\"甲型肝炎\": \"A型肝炎\",\n\"甲肝\": \"A肝\",\n\"电子烟\": \"電子菸\",\n\"电杆\": \"電桿\",\n\"电线杆\": \"電線桿\",\n\"电脑程序\": \"電腦程式\",\n\"电脑网络\": \"電腦網路\",\n\"留尼汪\": \"留尼旺\",\n\"當勞·特朗普\": \"唐納·川普\",\n\"當奴·特朗普\": \"唐納·川普\",\n\"疯牛病\": \"狂牛症\",\n\"痹\": \"痺\",\n\"瘋牛症\": \"狂牛症\",\n\"癡\": \"痴\",\n\"登巴萨\": \"丹帕沙\",\n\"登巴薩\": \"丹帕沙\",\n\"百慕大\": \"百慕達\",\n\"皮特凯恩\": \"皮特肯\",\n\"盘片\": \"碟片\",\n\"盧旺達\": \"盧安達\",\n\"盧瓦爾\": \"羅亞爾\",\n\"真人騷\": \"真人秀\",\n\"着\": \"著\",\n\"着眼于\": \"著眼於\",\n\"睾\": \"睪\",\n\"知識產權\": \"智慧財產權\",\n\"知識產權局\": \"知識產權署\",\n\"知識產權署\": \"知識產權署\",\n\"知识产权\": \"智慧財產權\",\n\"知识产权局\": \"知識產權局\",\n\"知识产权署\": \"知識產權署\",\n\"短信\": \"簡訊\",\n\"石勒苏益格\": \"什勒斯維希\",\n\"石勒蘇益格\": \"什勒斯維希\",\n\"硅\": \"矽\",\n\"硅藻\": \"硅藻\",\n\"硬件\": \"硬體\",\n\"硬盘\": \"硬碟\",\n\"碧咸\": \"貝克漢\",\n\"磁盘\": \"磁碟\",\n\"磁道\": \"磁軌\",\n\"禁烟\": \"禁菸\",\n\"禁煙\": \"禁菸\",\n\"福尔马林\": \"福馬林\",\n\"福爾馬林\": \"福馬林\",\n\"私烟\": \"私菸\",\n\"私煙\": \"私菸\",\n\"私隱\": \"隱私\",\n\"科摩罗\": \"葛摩\",\n\"科摩羅\": \"葛摩\",\n\"科特迪瓦\": \"象牙海岸\",\n\"移动操作系统\": \"行動作業系統\",\n\"移动支付\": \"行動支付\",\n\"移动电话\": \"行動電話\",\n\"移动网络\": \"行動網路\",\n\"移动设备\": \"行動裝置\",\n\"程序员\": \"程式設計師\",\n\"積架\": \"捷豹\",\n\"空中客车\": \"空中巴士\",\n\"空气质量\": \"空氣品質\",\n\"空氣質素\": \"空氣品質\",\n\"穿梭機\": \"太空梭\",\n\"突尼斯\": \"突尼西亞\",\n\"竈\": \"灶\",\n\"端口\": \"埠\",\n\"第比利斯\": \"提比里西\",\n\"粘膜\": \"黏膜\",\n\"糉\": \"粽\",\n\"糊口\": \"餬口\",\n\"系数\": \"係數\",\n\"系着\": \"繫著\",\n\"約翰內斯堡\": \"約翰尼斯堡\",\n\"紙煙\": \"紙菸\",\n\"素檀\": \"蘇丹\",\n\"索尔仁尼琴\": \"索忍尼辛\",\n\"索贊尼辛\": \"索忍尼辛\",\n\"索馬里\": \"索馬利亞\",\n\"索馬里蘭\": \"索馬利蘭\",\n\"索马里\": \"索馬利亞\",\n\"索马里兰\": \"索馬利蘭\",\n\"結他\": \"吉他\",\n\"維爾京群島\": \"維京群島\",\n\"網絡遊戲\": \"網路遊戲\",\n\"繮\": \"韁\",\n\"纔\": \"才\",\n\"约翰内斯堡\": \"約翰尼斯堡\",\n\"约翰斯顿岛\": \"強斯頓環礁\",\n\"约翰逊\": \"詹森\",\n\"纸烟\": \"紙菸\",\n\"纽黑文\": \"紐哈芬\",\n\"绑紧跳\": \"笨豬跳\",\n\"维尔京群岛\": \"維京群島\",\n\"维特根斯坦\": \"維根斯坦\",\n\"编程语言\": \"程式語言\",\n\"缺省\": \"預設\",\n\"网络游戏\": \"網路遊戲\",\n\"罗纳德·里根\": \"隆納·雷根\",\n\"羣\": \"群\",\n\"老挝\": \"寮國\",\n\"老挝人民民主共和国\": \"寮人民民主共和國\",\n\"老挝语\": \"寮語\",\n\"老撾\": \"寮國\",\n\"老撾人民民主共和國\": \"寮人民民主共和國\",\n\"老撾語\": \"寮語\",\n\"耶加達\": \"雅加達\",\n\"聖佐治\": \"聖喬治\",\n\"聖吉斯納域斯\": \"聖克里斯多福及尼維斯\",\n\"聖文森特和格林納丁斯\": \"聖文森及格瑞那丁\",\n\"聖盧西亞\": \"聖露西亞\",\n\"聖馬力諾\": \"聖馬利諾\",\n\"肖斯塔科维奇\": \"蕭士塔高維奇\",\n\"肖邦\": \"蕭邦\",\n\"肯尼亚\": \"肯亞\",\n\"肯尼迪\": \"甘迺迪\",\n\"自由泳\": \"自由式\",\n\"航天器\": \"太空飛行器\",\n\"航天飞机\": \"太空梭\",\n\"艾伯塔\": \"亞伯塔\",\n\"艾奧瓦\": \"愛荷華\",\n\"艾森豪威尔\": \"艾森豪\",\n\"艾滋\": \"愛滋\",\n\"芯片\": \"晶片\",\n\"苏里南\": \"蘇利南\",\n\"英联邦\": \"大英國協\",\n\"英聯邦\": \"大英國協\",\n\"荧光\": \"螢光\",\n\"荧屏\": \"螢屏\",\n\"荷尔斯泰因\": \"霍爾斯坦\",\n\"荷爾斯泰因\": \"霍爾斯坦\",\n\"荷里活\": \"好萊塢\",\n\"荷里活廣場\": \"荷里活廣場\",\n\"荷里活道\": \"荷里活道\",\n\"莫桑比克\": \"莫三比克\",\n\"莱特湾\": \"雷伊泰灣\",\n\"莱索托\": \"賴索托\",\n\"華倫西亞\": \"瓦倫西亞\",\n\"華里沙\": \"華勒沙\",\n\"萊特灣\": \"雷伊泰灣\",\n\"萊索托\": \"賴索托\",\n\"萌島\": \"曼島\",\n\"萨拉热窝\": \"塞拉耶佛\",\n\"萨格勒布\": \"札格瑞布\",\n\"落車\": \"下車\",\n\"葉利欽\": \"葉爾欽\",\n\"蒙特利尔\": \"蒙特婁\",\n\"蒙特利爾\": \"蒙特婁\",\n\"蔿\": \"蒍\",\n\"蕭士達高維契\": \"蕭士塔高維奇\",\n\"薛定谔\": \"薛丁格\",\n\"薩拉熱窩\": \"塞拉耶佛\",\n\"薩格勒布\": \"札格瑞布\",\n\"蘇里南\": \"蘇利南\",\n\"虚拟现实\": \"虛擬實境\",\n\"衆\": \"眾\",\n\"行人路\": \"人行道\",\n\"行人路权\": \"行人路權\",\n\"行人路權\": \"行人路權\",\n\"裏\": \"裡\",\n\"西維爾\": \"塞維亞\",\n\"覈\": \"核\",\n\"解像度\": \"解析度\",\n\"触摸屏\": \"觸控螢幕\",\n\"調制解調器\": \"數據機\",\n\"计算机程序\": \"電腦程式\",\n\"译码\": \"解碼\",\n\"诺曼底\": \"諾曼第\",\n\"调制解调器\": \"數據機\",\n\"貝爾格萊德\": \"貝爾格勒\",\n\"贊比亞\": \"尚比亞\",\n\"贝尔格莱德\": \"貝爾格勒\",\n\"账\": \"帳\",\n\"赞比亚\": \"尚比亞\",\n\"赫丘勒·波洛\": \"赫丘勒·白羅\",\n\"赫梯\": \"西臺\",\n\"赫鲁晓夫\": \"赫魯雪夫\",\n\"踊\": \"踴\",\n\"蹦极跳\": \"笨豬跳\",\n\"軟件\": \"軟體\",\n\"软件\": \"軟體\",\n\"软驱\": \"軟碟機\",\n\"达·芬奇\": \"達·文西\",\n\"达累斯萨拉姆\": \"三蘭港\",\n\"达芬奇\": \"達文西\",\n\"迈克尔\": \"麥可\",\n\"迈凯轮\": \"麥拿輪\",\n\"进制\": \"進位\",\n\"迪拜\": \"杜拜\",\n\"迭代\": \"疊代\",\n\"連結他\": \"連結他\",\n\"道琼斯\": \"道瓊\",\n\"道瓊斯\": \"道瓊\",\n\"避孕套\": \"保險套\",\n\"邁凱輪\": \"麥拿輪\",\n\"酰\": \"醯\",\n\"里士满\": \"里奇蒙\",\n\"里氏0\": \"芮氏0\",\n\"里氏1\": \"芮氏1\",\n\"里氏2\": \"芮氏2\",\n\"里氏3\": \"芮氏3\",\n\"里氏4\": \"芮氏4\",\n\"里氏5\": \"芮氏5\",\n\"里氏6\": \"芮氏6\",\n\"里氏7\": \"芮氏7\",\n\"里氏8\": \"芮氏8\",\n\"里氏9\": \"芮氏9\",\n\"里氏地震规模\": \"芮氏地震規模\",\n\"里氏规模\": \"芮氏規模\",\n\"里氏震级\": \"芮氏規模\",\n\"金沙萨\": \"金夏沙\",\n\"金沙薩\": \"金夏沙\",\n\"鈎\": \"鉤\",\n\"鉢\": \"缽\",\n\"鐵托\": \"狄托\",\n\"鐵杆\": \"鐵桿\",\n\"钚\": \"鈽\",\n\"钩\": \"鉤\",\n\"钫\": \"鍅\",\n\"铁托\": \"狄托\",\n\"铁杆\": \"鐵桿\",\n\"铆足\": \"卯足\",\n\"链接\": \"連結\",\n\"锎\": \"鉲\",\n\"锝\": \"鎝\",\n\"锫\": \"鉳\",\n\"锻炼\": \"鍛鍊\",\n\"锿\": \"鑀\",\n\"镅\": \"鋂\",\n\"镎\": \"錼\",\n\"開普勒\": \"克卜勒\",\n\"门德尔松\": \"孟德爾頌\",\n\"闪存\": \"快閃記憶體\",\n\"阿塞拜疆\": \"亞塞拜然\",\n\"阿尔伯塔\": \"亞伯塔\",\n\"阿布扎比\": \"阿布達比\",\n\"阿拉伯撒哈拉\": \"撒拉威阿拉伯\",\n\"阿拉伯联合酋长国\": \"阿拉伯聯合大公國\",\n\"阿拉伯聯合酋長國\": \"阿拉伯聯合大公國\",\n\"阿斯旺\": \"亞斯文\",\n\"阿联酋\": \"阿聯\",\n\"阿聯酋\": \"阿聯\",\n\"阿里埃勒·沙龍\": \"艾里爾·夏隆\",\n\"阿里埃勒·沙龙\": \"艾里爾·夏隆\",\n\"雅尔塔\": \"雅爾達\",\n\"雅爾塔\": \"雅爾達\",\n\"雅穆苏克雷\": \"雅穆索戈\",\n\"雅穆蘇克雷\": \"雅穆索戈\",\n\"雅马哈\": \"山葉\",\n\"集装箱\": \"貨櫃\",\n\"雪茄烟\": \"雪茄菸\",\n\"雪茄煙\": \"雪茄菸\",\n\"雷诺阿\": \"雷諾瓦\",\n\"電單車\": \"機車\",\n\"電子煙\": \"電子菸\",\n\"電腦網絡\": \"電腦網路\",\n\"霉素\": \"黴素\",\n\"霍尔木兹\": \"荷姆茲\",\n\"霍尼亚拉\": \"荷尼阿拉\",\n\"霍尼亞拉\": \"荷尼阿拉\",\n\"霍爾木茲\": \"荷姆茲\",\n\"面包着\": \"面包著\",\n\"首席执行官\": \"執行長\",\n\"首席财务官\": \"財務長\",\n\"首席运营官\": \"營運長\",\n\"香烟\": \"香菸\",\n\"香煙\": \"香菸\",\n\"馬利蘭\": \"馬里蘭\",\n\"馬勒當拿\": \"馬拉度納\",\n\"馬拉維\": \"馬拉威\",\n\"馬斯特里赫特\": \"馬斯垂克\",\n\"馬爾代夫\": \"馬爾地夫\",\n\"馬里共和國\": \"馬利共和國\",\n\"马尔代夫\": \"馬爾地夫\",\n\"马恩岛\": \"曼島\",\n\"马拉多纳\": \"馬拉度納\",\n\"马拉维\": \"馬拉威\",\n\"马斯特里赫特\": \"馬斯垂克\",\n\"马耳他\": \"馬爾他\",\n\"马萨诸塞\": \"麻薩諸塞\",\n\"马里共和国\": \"馬利共和國\",\n\"高峰时段\": \"尖峰時段\",\n\"高峰时间\": \"尖峰時間\",\n\"高清电视\": \"高畫質電視\",\n\"魯賓斯·巴里切羅\": \"魯本·巴瑞切羅\",\n\"鮎\": \"鯰\",\n\"麦克尔\": \"麥可\",\n\"麪\": \"麵\",\n\"黎克特制\": \"芮氏\",\n\"黑山共和国\": \"蒙特內哥羅共和國\",\n\"黑山共和國\": \"蒙特內哥羅共和國\",\n\"點煙\": \"點菸\",\n\"鼠标\": \"滑鼠\",\n\"齶\": \"顎\"\n}\n}\n"
  },
  {
    "path": "plugin.video.bangumi/resources/lib/zhconv.py",
    "content": "#!/usr/bin/env python\n# -*- coding: utf-8 -*-\n\"\"\"\nThis module implements a simple conversion and localization between simplified and traditional Chinese using tables from MediaWiki.\nIt doesn't contains a segmentation function and uses maximal forward matching, so it's simple.\nFor a complete and accurate solution, see OpenCC.\nFor Chinese segmentation, see Jieba.\n\n    >>> print(convert('我幹什麼不干你事。', 'zh-cn'))\n    我干什么不干你事。\n    >>> print(convert('人体内存在很多微生物', 'zh-tw'))\n    人體內存在很多微生物\n\nSupport MediaWiki's convertion format:\n\n    >>> print(convert_for_mw('在现代，机械计算-{}-机的应用已经完全被电子计算-{}-机所取代', 'zh-hk'))\n    在現代，機械計算機的應用已經完全被電子計算機所取代\n    >>> print(convert_for_mw('-{zh-hant:資訊工程;zh-hans:计算机工程学;}-是电子工程的一个分支，主要研究计算机软硬件和二者间的彼此联系。', 'zh-tw'))\n    資訊工程是電子工程的一個分支，主要研究計算機軟硬體和二者間的彼此聯繫。\n    >>> print(convert_for_mw('張國榮曾在英國-{zh:利兹;zh-hans:利兹;zh-hk:列斯;zh-tw:里茲}-大学學習。', 'zh-sg'))\n    张国荣曾在英国利兹大学学习。\n\n\"\"\"\n# Only Python3 can pass the doctest here due to unicode problems.\n__version__ = '1.4.1'\n\nimport os\nimport sys\nimport re\nimport json\n\ntry:\n    from pkg_resources import resource_stream\n    get_module_res = lambda *res: resource_stream(__name__, os.path.join(*res))\nexcept ImportError:\n    get_module_res = lambda *res: open(os.path.normpath(\n        os.path.join(os.getcwd(), os.path.dirname(__file__), *res)), 'rb')\n\n# Locale fallback order lookup dictionary\nLocales = {\n    'zh-cn': ('zh-cn', 'zh-hans', 'zh-sg', 'zh'),\n    'zh-hk': ('zh-hk', 'zh-hant', 'zh-tw', 'zh'),\n    'zh-tw': ('zh-tw', 'zh-hant', 'zh-hk', 'zh'),\n    'zh-sg': ('zh-sg', 'zh-hans', 'zh-cn', 'zh'),\n    'zh-my': ('zh-my', 'zh-sg', 'zh-hans', 'zh-cn', 'zh'),\n    'zh-mo': ('zh-mo', 'zh-hk', 'zh-hant', 'zh-tw', 'zh'),\n    'zh-hant': ('zh-hant', 'zh-tw', 'zh-hk', 'zh'),\n    'zh-hans': ('zh-hans', 'zh-cn', 'zh-sg', 'zh'),\n    'zh': ('zh',) # special value for no conversion\n}\n\n_DEFAULT_DICT = \"zhcdict.json\"\nDICTIONARY = _DEFAULT_DICT\n\nzhcdicts = None\ndict_zhcn = None\ndict_zhsg = None\ndict_zhtw = None\ndict_zhhk = None\npfsdict = {}\n\nRE_langconv = re.compile(r'(-\\{|\\}-)')\nRE_splitflag = re.compile(r'\\s*\\|\\s*')\nRE_splitmap = re.compile(r'\\s*;\\s*')\nRE_splituni = re.compile(r'\\s*=>\\s*')\nRE_splitpair = re.compile(r'\\s*:\\s*')\n\ndef loaddict(filename=DICTIONARY):\n    \"\"\"\n    Load the dictionary from a specific JSON file.\n    \"\"\"\n    global zhcdicts\n    if zhcdicts:\n        return\n    if filename == _DEFAULT_DICT:\n        zhcdicts = json.loads(get_module_res(filename).read().decode('utf-8'))\n    else:\n        with open(filename, 'rb') as f:\n            zhcdicts = json.loads(f.read().decode('utf-8'))\n    zhcdicts['SIMPONLY'] = frozenset(zhcdicts['SIMPONLY'])\n    zhcdicts['TRADONLY'] = frozenset(zhcdicts['TRADONLY'])\n\ndef getdict(locale):\n    \"\"\"\n    Generate or get convertion dict cache for certain locale.\n    Dictionaries are loaded on demand.\n    \"\"\"\n    global zhcdicts, dict_zhcn, dict_zhsg, dict_zhtw, dict_zhhk, pfsdict\n    if zhcdicts is None:\n        loaddict(DICTIONARY)\n    if locale == 'zh-cn':\n        if dict_zhcn:\n            got = dict_zhcn\n        else:\n            dict_zhcn = zhcdicts['zh2Hans'].copy()\n            dict_zhcn.update(zhcdicts['zh2CN'])\n            got = dict_zhcn\n    elif locale == 'zh-tw':\n        if dict_zhtw:\n            got = dict_zhtw\n        else:\n            dict_zhtw = zhcdicts['zh2Hant'].copy()\n            dict_zhtw.update(zhcdicts['zh2TW'])\n            got = dict_zhtw\n    elif locale == 'zh-hk' or locale == 'zh-mo':\n        if dict_zhhk:\n            got = dict_zhhk\n        else:\n            dict_zhhk = zhcdicts['zh2Hant'].copy()\n            dict_zhhk.update(zhcdicts['zh2HK'])\n            got = dict_zhhk\n    elif locale == 'zh-sg' or locale == 'zh-my':\n        if dict_zhsg:\n            got = dict_zhsg\n        else:\n            dict_zhsg = zhcdicts['zh2Hans'].copy()\n            dict_zhsg.update(zhcdicts['zh2SG'])\n            got = dict_zhsg\n    elif locale == 'zh-hans':\n        got = zhcdicts['zh2Hans']\n    elif locale == 'zh-hant':\n        got = zhcdicts['zh2Hant']\n    else:\n        got = {}\n    if locale not in pfsdict:\n        pfsdict[locale] = getpfset(got)\n    return got\n\ndef getpfset(convdict):\n    pfset = []\n    for word in convdict:\n        for ch in range(len(word)):\n            pfset.append(word[:ch+1])\n    return frozenset(pfset)\n\ndef issimp(s, full=False):\n    \"\"\"\n    Detect text is whether Simplified Chinese or Traditional Chinese.\n    Returns True for Simplified; False for Traditional; None for unknown.\n    If full=False, it returns once first simplified- or traditional-only\n    character is encountered, so it's for quick and rough identification;\n    else, it compares the count and returns the most likely one.\n    Use `is` (True/False/None) to check the result.\n\n    `s` must be unicode (Python 2) or str (Python 3), or you'll get None.\n    \"\"\"\n    if zhcdicts is None:\n        loaddict(DICTIONARY)\n    simp, trad = 0, 0\n    if full:\n        for ch in s:\n            if ch in zhcdicts['SIMPONLY']:\n                simp += 1\n            elif ch in zhcdicts['TRADONLY']:\n                trad += 1\n        if simp > trad:\n            return True\n        elif simp < trad:\n            return False\n        else:\n            return None\n    else:\n        for ch in s:\n            if ch in zhcdicts['SIMPONLY']:\n                return True\n            elif ch in zhcdicts['TRADONLY']:\n                return False\n        return None\n\ndef fallback(locale, mapping):\n    for l in Locales[locale]:\n        if l in mapping:\n            return mapping[l]\n    return convert(tuple(mapping.values())[0], locale)\n\ndef convtable2dict(convtable, locale, update=None):\n    \"\"\"\n    Convert a list of conversion dict to a dict for a certain locale.\n\n    >>> sorted(convtable2dict([{'zh-hk': '列斯', 'zh-hans': '利兹', 'zh': '利兹', 'zh-tw': '里茲'}, {':uni': '巨集', 'zh-cn': '宏'}], 'zh-cn').items())\n    [('列斯', '利兹'), ('利兹', '利兹'), ('巨集', '宏'), ('里茲', '利兹')]\n    \"\"\"\n    rdict = update.copy() if update else {}\n    for r in convtable:\n        if ':uni' in r:\n            if locale in r:\n                rdict[r[':uni']] = r[locale]\n        elif locale[:-1] == 'zh-han':\n            if locale in r:\n                for word in r.values():\n                    rdict[word] = r[locale]\n        else:\n            v = fallback(locale, r)\n            for word in r.values():\n                rdict[word] = v\n    return rdict\n\ndef tokenize(s, locale, update=None):\n    \"\"\"\n    Tokenize `s` according to corresponding locale dictionary.\n    Don't use this for serious text processing.\n    \"\"\"\n    zhdict = getdict(locale)\n    pfset = pfsdict[locale]\n    if update:\n        zhdict = zhdict.copy()\n        zhdict.update(update)\n        newset = set()\n        for word in update:\n            for ch in range(len(word)):\n                newset.add(word[:ch+1])\n        pfset = pfset | newset\n    ch = []\n    N = len(s)\n    pos = 0\n    while pos < N:\n        i = pos\n        frag = s[pos]\n        maxword = None\n        maxpos = 0\n        while i < N and frag in pfset:\n            if frag in zhdict:\n                maxword = frag\n                maxpos = i\n            i += 1\n            frag = s[pos:i+1]\n        if maxword is None:\n            maxword = s[pos]\n            pos += 1\n        else:\n            pos = maxpos + 1\n        ch.append(maxword)\n    return ch\n\ndef convert(s, locale, update=None):\n    \"\"\"\n    Main convert function.\n\n    :param s: must be `unicode` (Python 2) or `str` (Python 3).\n    :param locale: should be one of ``('zh-hans', 'zh-hant', 'zh-cn', 'zh-sg'\n                               'zh-tw', 'zh-hk', 'zh-my', 'zh-mo')``.\n    :param update: a dict which updates the conversion table, eg.\n        ``{'from1': 'to1', 'from2': 'to2'}``\n\n    >>> print(convert('我幹什麼不干你事。', 'zh-cn'))\n    我干什么不干你事。\n    >>> print(convert('我幹什麼不干你事。', 'zh-cn', {'不干': '不幹'}))\n    我干什么不幹你事。\n    >>> print(convert('人体内存在很多微生物', 'zh-tw'))\n    人體內存在很多微生物\n    \"\"\"\n    if locale == 'zh' or locale not in Locales:\n        # \"no conversion\"\n        return s\n    zhdict = getdict(locale)\n    pfset = pfsdict[locale]\n    newset = set()\n    if update:\n        # TODO: some sort of caching\n        #zhdict = zhdict.copy()\n        #zhdict.update(update)\n        newset = set()\n        for word in update:\n            for ch in range(len(word)):\n                newset.add(word[:ch+1])\n        #pfset = pfset | newset\n    ch = []\n    N = len(s)\n    pos = 0\n    while pos < N:\n        i = pos\n        frag = s[pos]\n        maxword = None\n        maxpos = 0\n        while i < N and (frag in pfset or frag in newset):\n            if update and frag in update:\n                maxword = update[frag]\n                maxpos = i\n            elif frag in zhdict:\n                maxword = zhdict[frag]\n                maxpos = i\n            i += 1\n            frag = s[pos:i+1]\n        if maxword is None:\n            maxword = s[pos]\n            pos += 1\n        else:\n            pos = maxpos + 1\n        ch.append(maxword)\n    return ''.join(ch)\n\ndef convert_for_mw(s, locale, update=None):\n    \"\"\"\n    Recognizes MediaWiki's human conversion format.\n    Use locale='zh' for no conversion.\n\n    Reference: (all tests passed)\n    https://zh.wikipedia.org/wiki/Help:高级字词转换语法\n    https://www.mediawiki.org/wiki/Writing_systems/Syntax\n\n    >>> print(convert_for_mw('在现代，机械计算-{}-机的应用已经完全被电子计算-{}-机所取代', 'zh-hk'))\n    在現代，機械計算機的應用已經完全被電子計算機所取代\n    >>> print(convert_for_mw('-{zh-hant:資訊工程;zh-hans:计算机工程学;}-是电子工程的一个分支，主要研究计算机软硬件和二者间的彼此联系。', 'zh-tw'))\n    資訊工程是電子工程的一個分支，主要研究計算機軟硬體和二者間的彼此聯繫。\n    >>> print(convert_for_mw('張國榮曾在英國-{zh:利兹;zh-hans:利兹;zh-hk:列斯;zh-tw:里茲}-大学學習。', 'zh-hant'))\n    張國榮曾在英國里茲大學學習。\n    >>> print(convert_for_mw('張國榮曾在英國-{zh:利兹;zh-hans:利兹;zh-hk:列斯;zh-tw:里茲}-大学學習。', 'zh-sg'))\n    张国荣曾在英国利兹大学学习。\n    >>> convert_for_mw('-{zh-hant:;\\\\nzh-cn:}-', 'zh-tw') == ''\n    True\n    >>> print(convert_for_mw('毫米(毫公分)，符號mm，是長度單位和降雨量單位，-{zh-hans:台湾作-{公釐}-或-{公厘}-;zh-hant:港澳和大陸稱為-{毫米}-（台灣亦有使用，但較常使用名稱為毫公分）;zh-mo:台灣作-{公釐}-或-{公厘}-;zh-hk:台灣作-{公釐}-或-{公厘}-;}-。', 'zh-tw'))\n    毫米(毫公分)，符號mm，是長度單位和降雨量單位，港澳和大陸稱為毫米（台灣亦有使用，但較常使用名稱為毫公分）。\n    >>> print(convert_for_mw('毫米(毫公分)，符號mm，是長度單位和降雨量單位，-{zh-hans:台湾作-{公釐}-或-{公厘}-;zh-hant:港澳和大陸稱為-{毫米}-（台灣亦有使用，但較常使用名稱為毫公分）;zh-mo:台灣作-{公釐}-或-{公厘}-;zh-hk:台灣作-{公釐}-或-{公厘}-;}-。', 'zh-cn'))\n    毫米(毫公分)，符号mm，是长度单位和降雨量单位，台湾作公釐或公厘。\n    >>> print(convert_for_mw('毫米(毫公分)，符號mm，是長度單位和降雨量單位，-{zh-hans:台湾作-{公釐}-或-{公厘}-;zh-hant:港澳和大陸稱為-{毫米}-（台灣亦有使用，但較常使用名稱為毫公分）;zh-mo:台灣作-{公釐}-或-{公厘}-;zh-hk:台灣作-{公釐}-或-{公厘', 'zh-hk'))  # unbalanced test\n    毫米(毫公分)，符號mm，是長度單位和降雨量單位，台灣作公釐或公厘\n    >>> print(convert_for_mw('报头的“-{參攷消息}-”四字摘自鲁迅笔迹-{zh-hans:，“-{參}-”是“-{参}-”的繁体字，读音cān，与简体的“-{参}-”字相同；;zh-hant:，;}-“-{攷}-”是“考”的异体字，读音kǎo，与“考”字相同。', 'zh-tw'))\n    報頭的「參攷消息」四字摘自魯迅筆跡，「攷」是「考」的異體字，讀音kǎo，與「考」字相同。\n    >>> print(convert_for_mw('报头的“-{參攷消息}-”四字摘自鲁迅笔迹-{zh-hans:，“-{參}-”是“-{参}-”的繁体字，读音cān，与简体的“-{参}-”字相同；;zh-hant:，;}-“-{攷}-”是“考”的异体字，读音kǎo，与“考”字相同。', 'zh-cn'))\n    报头的“參攷消息”四字摘自鲁迅笔迹，“參”是“参”的繁体字，读音cān，与简体的“参”字相同；“攷”是“考”的异体字，读音kǎo，与“考”字相同。\n    >>> print(convert_for_mw('{{Col-break}}--&gt;', 'zh-hant'))\n    {{Col-break}}--&gt;\n    \"\"\"\n    ch = []\n    rules = []\n    ruledict = update.copy() if update else {}\n    nested = 0\n    block = ''\n    for frag in RE_langconv.split(s):\n        if frag == '-{':\n            nested += 1\n            block += frag\n        elif frag == '}-':\n            if not nested:\n                # bogus }-\n                ch.append(frag)\n                continue\n            block += frag\n            nested -= 1\n            if nested:\n                continue\n            newrules = []\n            delim = RE_splitflag.split(block[2:-2].strip(' \\t\\n\\r\\f\\v;'))\n            if len(delim) == 1:\n                flag = None\n                mapping = RE_splitmap.split(delim[0])\n            else:\n                flag = RE_splitmap.split(delim[0].strip(' \\t\\n\\r\\f\\v;'))\n                mapping = RE_splitmap.split(delim[1])\n            rule = {}\n            for m in mapping:\n                uni = RE_splituni.split(m)\n                if len(uni) == 1:\n                    pair = RE_splitpair.split(uni[0])\n                else:\n                    if rule:\n                        newrules.append(rule)\n                        rule = {':uni': uni[0]}\n                    else:\n                        rule[':uni'] = uni[0]\n                    pair = RE_splitpair.split(uni[1])\n                if len(pair) == 1:\n                    rule['zh'] = convert_for_mw(pair[0], 'zh', ruledict)\n                else:\n                    rule[pair[0]] = convert_for_mw(pair[1], pair[0], ruledict)\n            newrules.append(rule)\n            if not flag:\n                ch.append(fallback(locale, newrules[0]))\n            elif any(ch in flag for ch in 'ATRD-HN'):\n                for f in flag:\n                    # A: add rule for convert code (all text convert)\n                    # H: Insert a conversion rule without output\n                    if f in ('A', 'H'):\n                        for r in newrules:\n                            if not r in rules:\n                                rules.append(r)\n                        if f == 'A':\n                            if ':uni' in r:\n                                if locale in r:\n                                    ch.append(r[locale])\n                                else:\n                                    ch.append(convert(r[':uni'], locale))\n                            else:\n                                ch.append(fallback(locale, newrules[0]))\n                    # -: remove convert\n                    elif f == '-':\n                        for r in newrules:\n                            try:\n                                rules.remove(r)\n                            except ValueError:\n                                pass\n                    # D: convert description (useless)\n                    #elif f == 'D':\n                        #ch.append('; '.join(': '.join(x) for x in newrules[0].items()))\n                    # T: title convert (useless)\n                    # R: raw content (implied above)\n                    # N: current variant name (useless)\n                    #elif f == 'N':\n                        #ch.append(locale)\n                ruledict = convtable2dict(rules, locale, update)\n            else:\n                fblimit = frozenset(flag) & frozenset(Locales[locale])\n                limitedruledict = update.copy() if update else {}\n                for r in rules:\n                    if ':uni' in r:\n                        if locale in r:\n                            limitedruledict[r[':uni']] = r[locale]\n                    else:\n                        v = None\n                        for l in Locales[locale]:\n                            if l in r and l in fblimit:\n                                v = r[l]\n                                break\n                        for word in r.values():\n                            limitedruledict[word] = v if v else convert(word, locale)\n                ch.append(convert(delim[1], locale, limitedruledict))\n            block = ''\n        elif nested:\n            block += frag\n        else:\n            ch.append(convert(frag, locale, ruledict))\n    if nested:\n        # unbalanced\n        ch.append(convert_for_mw(block + '}-'*nested, locale, ruledict))\n    return ''.join(ch)\n\ndef test_convert_mw(locale, update=None):\n    s = ('英國-{zh:利兹;zh-hans:利兹;zh-hk:列斯;zh-tw:里茲}-大学\\n'\n        '-{zh-hans:计算机; zh-hant:電腦;}-\\n'\n        '-{H|巨集=>zh-cn:宏;}-\\n'\n        '测试：巨集、宏\\n'\n        '-{简体字繁體字}-\\n'\n        '北-{}-韓、北朝-{}-鲜\\n'\n        '-{H|zh-cn:博客; zh-hk:網誌; zh-tw:部落格;}-\\n'\n        '测试：博客、網誌、部落格\\n'\n        '-{A|zh-cn:博客; zh-hk:網誌; zh-tw:部落格;}-\\n'\n        '测试：博客、網誌、部落格\\n'\n        '-{H|zh-cn:博客; zh-hk:網誌; zh-tw:部落格;}-\\n'\n        '测试1：博客、網誌、部落格\\n'\n        '-{-|zh-cn:博客; zh-hk:網誌; zh-tw:部落格;}-\\n'\n        '测试2：博客、網誌、部落格\\n'\n        '-{T|zh-cn:汤姆·汉克斯; zh-hk:湯·漢斯; zh-tw:湯姆·漢克斯;}-\\n'\n        '-{D|zh-cn:汤姆·汉克斯; zh-hk:湯·漢斯; zh-tw:湯姆·漢克斯;}-\\n'\n        '-{H|zh-cn:博客; zh-hk:網誌; zh-tw:部落格;}-\\n'\n        '测试1：-{zh;zh-hans;zh-hant|博客、網誌、部落格}-\\n'\n        '测试2：-{zh;zh-cn;zh-hk|博客、網誌、部落格}-')\n    return convert_for_mw(s, locale, update)\n\ndef main():\n    \"\"\"\n    Simple stdin/stdout interface.\n    \"\"\"\n    if len(sys.argv) == 2 and sys.argv[1] in Locales:\n        locale = sys.argv[1]\n        convertfunc = convert\n    elif len(sys.argv) == 3 and sys.argv[1] == '-w' and sys.argv[2] in Locales:\n        locale = sys.argv[2]\n        convertfunc = convert_for_mw\n    else:\n        thisfile = __file__ if __name__ == '__main__' else 'python -mzhconv'\n        print(\"usage: %s [-w] {zh-cn|zh-tw|zh-hk|zh-sg|zh-hans|zh-hant|zh} < input > output\" % thisfile)\n        sys.exit(1)\n\n    loaddict()\n    ln = sys.stdin.readline()\n    while ln:\n        l = ln.rstrip('\\r\\n')\n        if sys.version_info[0] < 3:\n            l = unicode(l, 'utf-8')\n        res = convertfunc(l, locale)\n        if sys.version_info[0] < 3:\n            print(res.encode('utf-8'))\n        else:\n            print(res)\n        ln = sys.stdin.readline()\n\nif __name__ == '__main__':\n    main()\n"
  },
  {
    "path": "plugin.video.bilibili/addon.py",
    "content": "#!/usr/bin/env python\n# -*- coding:utf-8 -*-\nimport base64\nimport hashlib\nimport HTMLParser\nimport json\nimport random\nimport re\nimport string\nimport sys\nimport time\nimport urllib2\n\nimport requests\n# import xbmcgui\nfrom bs4 import BeautifulSoup\nfrom xbmcswift2 import Plugin, xbmcgui, xbmc, xbmcaddon, xbmcplugin\nimport danmuku\nimport os\n\n\n# class BPlayer(xbmc.Player):\n#     def __init__(self):\n#         xbmc.Player.__init__(self)\n\n#     def onAVStarted(self):\n#     \tglobal cid, dpath\n#     \tif xbmcplugin.getSetting(int(sys.argv[1]),'damakustatus') == 'true':\n#     \t\tdpath = xbmcplugin.getSetting(int(sys.argv[1]),'damakufolder')\n#     \t\tself.setSubtitles(os.path.join(dpath, \"%s.ass\" % (str(cid))))\n\n\ndef random_sentence(size):\n    char_lists = string.ascii_lowercase + string.digits\n    return ''.join(random.choice(char_lists) for _ in range(size))\n\n\ndef unescape(string):\n    string = urllib2.unquote(string).decode('utf8')\n    quoted = HTMLParser.HTMLParser().unescape(string).encode('utf-8')\n    # 转成中文\n    return re.sub(r'%u([a-fA-F0-9]{4}|[a-fA-F0-9]{2})', lambda m: unichr(int(m.group(1), 16)), quoted)\n\n\nplugin = Plugin()\n\n\n# uuid = xbmcplugin.getSetting(int(sys.argv[1]),'baipiao')\n# if uuid == 'true':\n#     dialog = xbmcgui.Dialog()\n#     dialog.textviewer('错误提示', str(uuid))\n\n\n# 超过10000换算\ndef zh(num):\n    if int(num) >= 100000000:\n        p = round(float(num) / float(100000000), 1)\n        p = str(p) + '亿'\n    else:\n        if int(num) >= 10000:\n            p = round(float(num) / float(10000), 1)\n            p = str(p) + '万'\n        else:\n            p = str(num)\n    return p\n\n\n# 白嫖计算\ndef bp(li):\n    li = sorted(li)\n    minnum = li[0]\n    v = 0\n    for index in range(len(li)):\n        v += li[index] - minnum\n    v += minnum\n    return v\n\n\nhis = plugin.get_storage('his')\ncache = plugin.get_storage('cache')\n\nheaders = {\n    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.122 Safari/537.36',\n    'Connection': 'close'}\nmheaders = {\n    'user-agent': 'Mozilla/5.0 (Linux; Android 10; Z832 Build/MMB29M) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.116 Mobile Safari/537.36'}\n\n\n# 仿b站随机输出主播正在xx\ndef rd_live_gz():\n    gz = ['思考人生', '抠脚丫', '俯卧撑热身', '卖萌', '打滚', '换女装', '觅食', '海扁小电视', '成为魔法少女', '修电锯', '跳广播体操', '吸猫', '渡劫中', '学习', '梳妆打扮',\n          '撩妹', '逛漫展', '拔腿毛', '逛b站']\n    return '主播正在' + gz[random.randint(0, (len(gz) - 1))] + '...'\n\n\n# b站二级目录tid反查一级目录名字，没有api，只能自己造轮子\ndef two_one(tid):\n    # 动画区\n    douga = [1, 24, 25, 47, 86, 27]\n    # 番剧区\n    anime = [51, 152]\n    # 音乐区\n    music = [3, 28, 31, 30, 194, 59, 193, 29, 130]\n    # 国创区\n    guochuang = [153, 168, 169, 195, 170]\n    # 舞蹈区\n    dance = [129, 20, 198, 199, 200, 154, 156]\n    # 游戏区\n    game = [4, 17, 171, 172, 65, 173, 121, 136, 19]\n    # 科技区\n    technology = [36, 124, 122, 39, 96, 98, 176]\n    # 数码区\n    digital = [188, 95, 189, 190, 191]\n    # 生活区\n    life = [160, 138, 21, 76, 75, 161, 162, 163, 174]\n    # 鬼畜区\n    kichiku = [119, 22, 26, 126, 127]\n    # 时尚区\n    fashion = [155, 157, 158, 164, 159, 192]\n    # 广告区\n    ad = [165, 166]\n    # 娱乐区\n    ent = [5, 71, 137, 131]\n    # 影视区\n    cinephile = [181, 182, 183, 85, 184]\n    re = ''\n    if int(tid) in douga:\n        re = '动画'\n    if int(tid) in anime:\n        re = '番剧'\n    if int(tid) in music:\n        re = '音乐'\n    if int(tid) in guochuang:\n        re = '国创'\n    if int(tid) in dance:\n        re = '舞蹈'\n    if int(tid) in game:\n        re = '游戏'\n    if int(tid) in technology:\n        re = '科技'\n    if int(tid) in digital:\n        re = '数码'\n    if int(tid) in life:\n        re = '生活'\n    if int(tid) in kichiku:\n        re = '鬼畜'\n    if int(tid) in fashion:\n        re = '时尚'\n    if int(tid) in ad:\n        re = '广告'\n    if int(tid) in ent:\n        re = '娱乐'\n    if int(tid) in cinephile:\n        re = '影视'\n    if re == '':\n        re = '未知'\n    return re\n\n\n# 显示等级颜色\ndef level_color(level):\n    if int(level) == 0:\n        lev = '  [COLOR grey]Lv.' + str(level) + '[/COLOR]'\n    if int(level) == 1:\n        lev = '  [COLOR grey]Lv.' + str(level) + '[/COLOR]'\n    if int(level) == 2:\n        lev = '  [COLOR green]Lv.' + str(level) + '[/COLOR]'\n    if int(level) == 3:\n        lev = '  [COLOR blue]Lv.' + str(level) + '[/COLOR]'\n    if int(level) == 4:\n        lev = '  [COLOR yellow]Lv.' + str(level) + '[/COLOR]'\n    if int(level) == 5:\n        lev = '  [COLOR orange]Lv.' + str(level) + '[/COLOR]'\n    if int(level) == 6:\n        lev = '  [COLOR red]Lv.' + str(level) + '[/COLOR]'\n    return lev\n\n\ndef sessdata(mode=''):\n    vipstatus = xbmcplugin.getSetting(int(sys.argv[1]), 'vipstatus')\n    sessdata = ''\n    if mode == 'vip' and vipstatus == 'true':\n        if xbmcplugin.getSetting(int(sys.argv[1]), 'vipsessdata') != '':\n            sessdata = 'SESSDATA=' + xbmcplugin.getSetting(int(sys.argv[1]), 'vipsessdata')\n    else:\n        if xbmcplugin.getSetting(int(sys.argv[1]), 'sessdata') != '':\n            sessdata = 'SESSDATA=' + xbmcplugin.getSetting(int(sys.argv[1]), 'sessdata')\n\n    return sessdata\n\n\ndef uid():\n    uid = xbmcplugin.getSetting(int(sys.argv[1]), 'uid')\n    return uid\n\n\ndef get_html(url, t=1, debug='no', head=''):\n    cachestatus = xbmcplugin.getSetting(int(sys.argv[1]), 'cachestatus')\n    if debug == 'no' and cachestatus == 'false':\n        if head == '':\n            if t == 1:\n                r = get_html_1min(url)\n            if t == 10:\n                r = get_html_10min(url)\n            if t == 60:\n                r = get_html_1hour(url)\n        else:\n            if t == 1:\n                r = get_html_1min(url, head=head)\n            if t == 10:\n                r = get_html_10min(url, head=head)\n            if t == 60:\n                r = get_html_1hour(url, head=head)\n    else:\n        if head == '':\n            r = requests.get(url, headers=headers)\n            r.encoding = 'utf-8'\n            r = r.text\n        else:\n            r = requests.get(url, headers=eval(head))\n            r.encoding = 'utf-8'\n            r = r.text\n    return r\n\n\n@plugin.cached(TTL=60)\ndef get_html_1hour(url, head=''):\n    if head == '':\n        r = requests.get(url, headers=headers)\n    else:\n        r = requests.get(url, headers=eval(head))\n    r.encoding = 'utf-8'\n    r = r.text\n    return r\n\n\n@plugin.cached(TTL=10)\ndef get_html_10min(url, head=''):\n    if head == '':\n        r = requests.get(url, headers=headers)\n    else:\n        r = requests.get(url, headers=eval(head))\n    r.encoding = 'utf-8'\n    r = r.text\n    return r\n\n\n@plugin.cached(TTL=1)\ndef get_html_1min(url, head=''):\n    if head == '':\n        r = requests.get(url, headers=headers)\n    else:\n        r = requests.get(url, headers=eval(head))\n    r.encoding = 'utf-8'\n    r = r.text\n    return r\n\n\ndef get_up_roomold(uid):\n    head = headers\n    head['Referer'] = 'https://www.bilibili.com'\n    r = get_html('https://api.live.bilibili.com/room/v1/Room/getRoomInfoOld?mid=' + str(uid), head=str(head))\n    # dialog = xbmcgui.Dialog()\n    # dialog.textviewer('错误提示', r.encode('utf-8'))\n    return r\n\n\ndef get_up_baseinfo(uid):\n    r = get_html('https://api.bilibili.com/x/space/acc/info?mid=' + str(uid) + '&jsonp=jsonp', t=60)\n    return r\n\n\ndef get_upinfo(uid):\n    j = json.loads(get_up_baseinfo(uid))\n    u = j['data']\n    # up数据\n    di = up_allnum(uid)\n    # 最新数据\n    new = up_sort_vid(uid, '')\n    # 热门数据\n    click = up_sort_vid(uid, 'click')\n    # 热门数据\n    stow = up_sort_vid(uid, 'stow')\n    text = ''\n    # 大会员判断\n    vip = u''\n    if u['vip']['status'] == 1:\n        if u['vip']['type'] == 2:\n            vip += u'[COLOR pink][年度大会员][/COLOR]'\n        else:\n            vip += u'[COLOR pink][大会员][/COLOR]'\n    # 性别判断\n    if u['sex'] == u'男':\n        sex = u'[COLOR blue][♂][/COLOR]'\n    else:\n        if u['sex'] == u'女':\n            sex = u'[COLOR pink][♀][/COLOR]'\n        else:\n            sex = u'?'\n    text += u'UP主:' + u['name'] + u'  性别:' + sex + u'  ' + level_color(u['level']) + vip + '\\n'\n\n    if u['official']['role'] != 0:\n        text += u['official']['title'] + '\\n'\n    if u['sign'] == '':\n        sign = u'这个人很懒，什么都没有写'\n    else:\n        sign = u['sign']\n    text += u'个性签名:' + sign + '\\n'\n    text += u'生日:' + u['birthday'] + '\\n'\n\n    text += u'----------' * 5 + u'up主大数据' + u'----------' * 5 + '\\n\\n'\n    if u['official']['role'] != 0:\n        text += u'「' + u['name'] + u'」是经过认证的「' + u['official']['title'] + u'」。' + '\\n'\n    else:\n        text += u'「' + u['name'] + u'」是一个不太出名的up主。' + '\\n'\n    tlist = new['list']['tlist']\n    try:\n        tt = list(tlist.keys())\n        ttt = []\n        for index in range(len(tt)):\n            ttt.append(tlist[tt[index]])\n        hotp = sorted(ttt, key=lambda x: x['count'], reverse=True)\n        text += u'TA是主要活跃在「' + hotp[0]['name'] + u'区」的UP主，在该分区共投稿「' + str(hotp[0]['count']) + u' 个稿件」' + '\\n'\n\n        if two_one(click['list']['vlist'][0]['typeid']) != hotp[0]['name'].encode('utf-8'):\n            text += u'然而TA在「' + two_one(click['list']['vlist'][0]['typeid']).decode('utf-8') + u'」拥有着表现最好的作品' + '\\n'\n        text += u'代表作是《 ' + click['list']['vlist'][0]['title'] + u'》。' + '\\n'\n\n        jinqi = []\n        for index in range(len(new['list']['vlist'])):\n            jinqi.append(two_one(new['list']['vlist'][index]['typeid']))\n        jinqi2 = []\n        for index in range(len(jinqi)):\n            if jinqi[index] != max(jinqi, key=jinqi.count):\n                jinqi2.append(jinqi[index])\n        if jinqi2 != []:\n            if jinqi2.count(max(jinqi2, key=jinqi2.count)) < jinqi.count(max(jinqi, key=jinqi.count)):\n                text += u'近期，TA的投稿仍然大多在「' + max(jinqi, key=jinqi.count).decode('utf-8') + u'区」。' + '\\n\\n'\n            else:\n                text += u'虽然TA的投稿仍然大多在「' + max(jinqi, key=jinqi.count).decode('utf-8') + u'」,不过TA有向「' + max(jinqi2,\n                                                                                                            key=jinqi2.count).decode(\n                    'utf-8') + u'」转型的可能性。' + '\\n\\n'\n        else:\n            text += u'近期，TA的投稿1000%在「' + max(jinqi, key=jinqi.count).decode('utf-8') + u'区」。' + '\\n\\n'\n    except AttributeError:\n        text += u'没有更多关于TA的情报信息了\\n\\n'\n    text += u'----------' * 5 + u'up主最新数据' + u'----------' * 5 + '\\n\\n'\n    if di['follower'] != -1:\n        text += u'粉丝总数:' + zh(di['follower']).decode('utf-8') + u'     播放总数:' + zh(di['archive']).decode(\n            'utf-8') + u'     获赞总数:' + zh(di['likes']).decode('utf-8') + u'     专栏阅读:' + zh(di['article']).decode(\n            'utf-8') + '\\n\\n'\n    else:\n        text += u'请设置sessdata后显示\\n\\n'\n    try:\n        text += u'----------' * 5 + u'up主投稿分区' + u'----------' * 5 + '\\n\\n'\n        for index in range(len(hotp)):\n            co = u'|' * int((float(hotp[index]['count']) / float(new['page']['count'])) * 100)\n            if len(hotp[index]['name']) == 2:\n                name = hotp[index]['name'] + u'区'\n            else:\n                name = hotp[index]['name']\n            text += name + u':' + str(co) + u' ' + str(\n                round((float(hotp[index]['count']) / float(new['page']['count'])) * 100, 2)) + u'% - ' + str(\n                hotp[index]['count']) + u'个投稿\\n'\n    except UnboundLocalError:\n        text += u'没有更多关于TA的情报信息了'\n    return text\n\n\n# 最新投稿 ‘’ 播放最多 click 收藏最多stow\ndef up_sort_vid(uid, sort):\n    if sort == '':\n        so = ''\n    else:\n        so = '&order=' + sort\n    r = get_html('https://api.bilibili.com/x/space/arc/search?mid=' + uid + '&pn=1&ps=25' + so + '&jsonp=jsonp', t=10)\n    j = json.loads(r)\n    return j['data']\n\n\n# up播放数据\ndef up_allnum(uid):\n    di = {}\n    r = get_html('https://api.bilibili.com/x/relation/stat?vmid=' + uid + '&jsonp=jsonp', t=10)\n    j = json.loads(r)\n    # 关注\n    di['following'] = j['data']['following']\n    # 粉丝\n    di['follower'] = j['data']['follower']\n\n    if sessdata != '':\n        head = headers\n        head['cookie'] = sessdata()\n        r = get_html('https://api.bilibili.com/x/space/upstat?mid=' + uid + '&jsonp=jsonp', head=str(head), t=10)\n        j = json.loads(r)\n        # 播放量\n        di['archive'] = j['data']['archive']['view']\n        # 专栏\n        di['article'] = j['data']['article']['view']\n        # 获赞数\n        di['likes'] = j['data']['likes']\n    else:\n        # 播放量\n        di['archive'] = -1\n        # 专栏\n        di['article'] = -1\n        # 获赞数\n        di['likes'] = -1\n\n    return di\n\n\ndef get_search(keyword, page):\n    serachUrl = 'https://api.bilibili.com/x/web-interface/search/all/v2?keyword=' + keyword + '&page=' + str(page)\n\n    r = get_html(serachUrl, t=10)\n    j = json.loads(r)\n    # 视频\n    k = j['data']['result'][8]['data']\n    # 番剧\n    bgm = j['data']['result'][3]['data']\n    # 影视\n    mov = j['data']['result'][4]['data']\n    videos = []\n    for index in range(len(bgm)):\n        surl = 'https://www.bilibili.com/bangumi/play/ss' + str(bgm[index]['season_id'])\n        title = '[COLOR pink][' + bgm[index]['season_type_name'] + '] ' + bgm[index]['title'] + '[/COLOR]'\n        pic = bgm[index]['cover']\n        # 清除b站api数据污染\n        title = title.replace('<em class=\"keyword\">', '')\n        title = title.replace('</em>', '')\n\n        videoitem = {}\n        videoitem['name'] = title\n        videoitem['href'] = surl\n        videoitem['thumb'] = 'http:' + pic\n        videoitem['info'] = {'plot': bgm[index]['desc']}\n        videos.append(videoitem)\n    for index in range(len(mov)):\n        surl = 'https://www.bilibili.com/bangumi/play/ss' + str(mov[index]['season_id'])\n        title = '[COLOR pink][' + mov[index]['season_type_name'] + '] ' + mov[index]['title'] + '[/COLOR]'\n        pic = mov[index]['cover']\n        # 清除b站api数据污染\n        title = title.replace('<em class=\"keyword\">', '')\n        title = title.replace('</em>', '')\n\n        videoitem = {}\n        videoitem['name'] = title\n        videoitem['href'] = surl\n        videoitem['thumb'] = 'http:' + pic\n        videoitem['info'] = {'plot': mov[index]['desc']}\n        videos.append(videoitem)\n    # k = k.encode('utf-8')\n    # dialog = xbmcgui.Dialog()\n    # ok = dialog.ok('错误提示', arcurl)\n\n    for index in range(len(k)):\n        arcurl = 'http://www.bilibili.com/video/' + k[index]['bvid']\n        title = '[' + k[index]['typename'] + ']' + k[index]['title']\n        pic = k[index]['pic']\n        # duration = k[index]['duration']\n        # 清除b站api数据污染\n        title = title.replace('<em class=\"keyword\">', '')\n        title = title.replace('</em>', '')\n\n        uptime = k[index]['pubdate']\n        # 转换成localtime\n        time_local = time.localtime(uptime)\n        # 转换成新的时间格式(2016-05-05 20:28:54)\n        data = time.strftime(\"%Y-%m-%d\", time_local)\n\n        genre = k[index]['tag'].split(u',')\n\n        videoitem = {}\n        videoitem['name'] = title\n        videoitem['href'] = arcurl\n        videoitem['thumb'] = 'http://' + pic\n        videoitem['info'] = {'mediatype': 'video', 'genre': genre,\n                             'plot': zh(k[index]['play']) + u'播放 · ' + data + '\\n'}\n        videoitem['info']['plot'] += u'[COLOR pink]UP:[/COLOR]' + k[index]['author'] + '\\n\\n' + k[index]['description']\n        videos.append(videoitem)\n    if int(j['data']['numResults']) == 1000:\n        numResults = str(j['data']['numResults']) + '+'\n    else:\n        numResults = str(j['data']['numResults'])\n    dialog = xbmcgui.Dialog()\n    dialog.notification('当前' + str(page) + '/' + str(j['data']['numPages']) + '页', '总共' + numResults + '个视频',\n                        xbmcgui.NOTIFICATION_INFO, 5000, False)\n    return videos\n\n\ndef get_vidsearch(keyword, page):\n    serachUrl = 'https://api.bilibili.com/x/web-interface/search/type?context=&search_type=video&order=&keyword=' + keyword + '&page=' + str(\n        page) + '&duration=&category_id=&tids_1=&tids_2=&__refresh__=true&_extra=&highlight=1&single_column=0&jsonp=jsonp'\n    apiheaders = {\n        'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36',\n        'Referer': 'https://search.bilibili.com/all?keyword=' + keyword\n    }\n    r = get_html(serachUrl, head=str(apiheaders), t=10)\n    j = json.loads(r)\n    #\n    videos = []\n    try:\n        bgm = j['data']['result']\n\n        # k = k.encode('utf-8')\n        # dialog = xbmcgui.Dialog()\n        # ok = dialog.ok('错误提示', arcurl)\n        for index in range(len(bgm)):\n            vurl = 'https://www.bilibili.com/video/' + str(bgm[index]['bvid'])\n            title = bgm[index]['title']\n            pic = bgm[index]['pic']\n            # 清除b站api数据污染\n            title = title.replace('<em class=\"keyword\">', '')\n            title = title.replace('</em>', '')\n\n            uptime = bgm[index]['pubdate']\n            # 转换成localtime\n            time_local = time.localtime(uptime)\n            # 转换成新的时间格式(2016-05-05 20:28:54)\n            data = time.strftime(\"%Y-%m-%d\", time_local)\n\n            genre = bgm[index]['tag'].split(u',')\n\n            videoitem = {}\n            videoitem['name'] = title\n            videoitem['href'] = vurl\n            videoitem['thumb'] = 'http:' + pic\n            videoitem['info'] = {'mediatype': 'video', 'genre': genre,\n                                 'plot': zh(bgm[index]['play']) + u'播放 · ' + data + '\\n'}\n            videoitem['info']['plot'] += u'[COLOR pink]UP:[/COLOR]' + bgm[index]['author'] + '\\n\\n' + bgm[index][\n                'description']\n            videos.append(videoitem)\n        if int(j['data']['numResults']) == 1000:\n            numResults = str(j['data']['numResults']) + '+'\n        else:\n            numResults = str(j['data']['numResults'])\n        dialog = xbmcgui.Dialog()\n        dialog.notification('当前' + str(page) + '/' + str(j['data']['numPages']) + '页', '总共' + numResults + '个视频',\n                            xbmcgui.NOTIFICATION_INFO, 5000, False)\n    except KeyError:\n        dialog = xbmcgui.Dialog()\n        dialog.notification('错误', '搜索结果为空', xbmcgui.NOTIFICATION_ERROR, 5000, False)\n    return videos\n\n\ndef get_bgsearch(keyword, page):\n    serachUrl = 'https://api.bilibili.com/x/web-interface/search/type?context=&search_type=media_bangumi&order=&keyword=' + keyword + '&page=' + str(\n        page) + '&category_id=&__refresh__=true&_extra=&highlight=1&single_column=1&jsonp=jsonp'\n    apiheaders = {\n        'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36',\n        'Referer': 'https://search.bilibili.com/all?keyword=' + keyword\n    }\n    r = get_html(serachUrl, head=str(apiheaders), t=10)\n    j = json.loads(r)\n    #\n    videos = []\n    try:\n        bgm = j['data']['result']\n\n        # k = k.encode('utf-8')\n        # dialog = xbmcgui.Dialog()\n        # ok = dialog.ok('错误提示', arcurl)\n        for index in range(len(bgm)):\n            if bgm[index]['ep_size'] != 0:\n                title = bgm[index]['title'] + ' [更新到第'.decode('utf-8') + str(bgm[index]['ep_size']) + '集]'.decode(\n                    'utf-8')\n            else:\n                title = bgm[index]['title'] + ' [未开播]'.decode('utf-8')\n\n            surl = 'https://www.bilibili.com/bangumi/play/ss' + str(bgm[index]['season_id'])\n\n            pic = bgm[index]['cover']\n            # 清除b站api数据污染\n            title = title.replace('<em class=\"keyword\">', '')\n            title = title.replace('</em>', '')\n\n            videoitem = {}\n            videoitem['name'] = title\n            videoitem['href'] = surl\n            videoitem['thumb'] = 'http:' + pic\n            videoitem['info'] = {'plot': bgm[index]['desc']}\n            videos.append(videoitem)\n        if int(j['data']['numResults']) == 1000:\n            numResults = str(j['data']['numResults']) + '+'\n        else:\n            numResults = str(j['data']['numResults'])\n        dialog = xbmcgui.Dialog()\n        dialog.notification('当前' + str(page) + '/' + str(j['data']['numPages']) + '页', '总共' + numResults + '个视频',\n                            xbmcgui.NOTIFICATION_INFO, 5000, False)\n    except KeyError:\n        dialog = xbmcgui.Dialog()\n        dialog.notification('错误', '搜索结果为空', xbmcgui.NOTIFICATION_ERROR, 5000, False)\n    return videos\n\n\ndef get_movsearch(keyword, page):\n    serachUrl = 'https://api.bilibili.com/x/web-interface/search/type?context=&search_type=media_ft&order=&keyword=' + keyword + '&page=' + str(\n        page) + '&category_id=&__refresh__=true&_extra=&highlight=1&single_column=0&jsonp=jsonp'\n    apiheaders = {\n        'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36',\n        'Referer': 'https://search.bilibili.com/all?keyword=' + keyword\n    }\n    r = get_html(serachUrl, head=str(apiheaders), t=10)\n    j = json.loads(r)\n    #\n    videos = []\n    try:\n        bgm = j['data']['result']\n\n        # k = k.encode('utf-8')\n        # dialog = xbmcgui.Dialog()\n        # ok = dialog.ok('错误提示', arcurl)\n        for index in range(len(bgm)):\n            if bgm[index]['ep_size'] != 0:\n                title = bgm[index]['title'] + ' [更新到第'.decode('utf-8') + str(bgm[index]['ep_size']) + '集]'.decode(\n                    'utf-8')\n            else:\n                title = bgm[index]['title'] + ' [未开播]'.decode('utf-8')\n\n            surl = 'https://www.bilibili.com/bangumi/play/ss' + str(bgm[index]['season_id'])\n\n            pic = bgm[index]['cover']\n            # 清除b站api数据污染\n            title = title.replace('<em class=\"keyword\">', '')\n            title = title.replace('</em>', '')\n\n            videoitem = {}\n            videoitem['name'] = title\n            videoitem['href'] = surl\n            videoitem['thumb'] = 'http:' + pic\n            videoitem['info'] = {'plot': bgm[index]['desc']}\n            videos.append(videoitem)\n        if int(j['data']['numResults']) == 1000:\n            numResults = str(j['data']['numResults']) + '+'\n        else:\n            numResults = str(j['data']['numResults'])\n        dialog = xbmcgui.Dialog()\n        dialog.notification('当前' + str(page) + '/' + str(j['data']['numPages']) + '页', '总共' + numResults + '个视频',\n                            xbmcgui.NOTIFICATION_INFO, 5000, False)\n    except KeyError:\n        dialog = xbmcgui.Dialog()\n        dialog.notification('错误', '搜索结果为空', xbmcgui.NOTIFICATION_ERROR, 5000, False)\n    return videos\n\n\ndef get_livesearch(keyword, page):\n    serachUrl = 'https://api.bilibili.com/x/web-interface/search/type?context=&keyword=' + keyword + '&page=' + str(\n        page) + '&order=&category_id=&duration=&user_type=&order_sort=&tids_1=&tids_2=&search_type=live&changing=id&cover_type=user_cover&__refresh__=true&__reload__=false&_extra=&highlight=1&single_column=0&jsonp=jsonp'\n    apiheaders = {\n        'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36',\n        'Referer': 'https://search.bilibili.com/all?keyword=' + keyword\n    }\n    r = get_html(serachUrl, head=str(apiheaders), t=10)\n    j = json.loads(r)\n    #\n    videos = []\n    try:\n        bgm = j['data']['result']['live_room']\n\n        # k = k.encode('utf-8')\n        # dialog = xbmcgui.Dialog()\n        # ok = dialog.ok('错误提示', arcurl)\n        for index in range(len(bgm)):\n            title = bgm[index]['title']\n            if int(bgm[index]['live_status']) == 1:\n                title += u' [COLOR pink][LIVE][/COLOR]'\n            title += u' [在线' + zh(bgm[index]['online']).decode('utf-8') + u']'\n            pic = bgm[index]['cover']\n            # 清除b站api数据污染\n            title = title.replace('<em class=\"keyword\">', '')\n            title = title.replace('</em>', '')\n\n            videoitem = {}\n            videoitem['name'] = title\n            videoitem['href'] = bgm[index]['roomid']\n            videoitem['thumb'] = 'http:' + pic\n            videos.append(videoitem)\n        if int(j['data']['numResults']) == 1000:\n            numResults = str(j['data']['numResults']) + '+'\n        else:\n            numResults = str(j['data']['numResults'])\n        dialog = xbmcgui.Dialog()\n        dialog.notification('当前' + str(page) + '/' + str(j['data']['numPages']) + '页', '总共' + numResults + '个视频',\n                            xbmcgui.NOTIFICATION_INFO, 5000, False)\n    except KeyError:\n        dialog = xbmcgui.Dialog()\n        dialog.notification('错误', '搜索结果为空', xbmcgui.NOTIFICATION_ERROR, 5000, False)\n    return videos\n\n\ndef get_upsearch(keyword, page):\n    serachUrl = 'https://api.bilibili.com/x/web-interface/search/type?context=&search_type=bili_user&order=&keyword=' + keyword + '&page=' + str(\n        page) + '&category_id=&user_type=&order_sort=&changing=mid&__refresh__=true&_extra=&highlight=1&single_column=0&jsonp=jsonp'\n    apiheaders = {\n        'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36',\n        'Referer': 'https://search.bilibili.com/all?keyword=' + keyword\n    }\n    r = get_html(serachUrl, head=str(apiheaders), t=10)\n    j = json.loads(r)\n    #\n    videos = []\n    try:\n        bgm = j['data']['result']\n\n        # k = k.encode('utf-8')\n        # dialog = xbmcgui.Dialog()\n        # ok = dialog.ok('错误提示', arcurl)\n        for index in range(len(bgm)):\n            title = bgm[index]['uname'].encode('utf-8')\n            pic = bgm[index]['upic']\n            # 清除b站api数据污染\n            title = title.replace('<em class=\"keyword\">', '')\n            title = title.replace('</em>', '')\n            if int(bgm[index]['gender']) == 1:\n                title += ' [COLOR blue][♂][/COLOR]'\n            if int(bgm[index]['gender']) == 2:\n                title += ' [COLOR pink][♀][/COLOR]'\n            title += ' ' + level_color(bgm[index]['level'])\n            if int(bgm[index]['is_live']) == 1:\n                title += ' [COLOR pink][LIVE][/COLOR]'\n            videoitem = {}\n            videoitem['name'] = title + '  - ' + zh(bgm[index]['videos']) + '投稿 · ' + zh(bgm[index]['fans']) + '粉丝'\n            videoitem['href'] = bgm[index]['mid']\n            videoitem['thumb'] = 'http:' + pic\n            videos.append(videoitem)\n        if int(j['data']['numResults']) == 1000:\n            numResults = str(j['data']['numResults']) + '+'\n        else:\n            numResults = str(j['data']['numResults'])\n        dialog = xbmcgui.Dialog()\n        dialog.notification('当前' + str(page) + '/' + str(j['data']['numPages']) + '页', '总共' + numResults + '个视频',\n                            xbmcgui.NOTIFICATION_INFO, 5000, False)\n    except KeyError:\n        dialog = xbmcgui.Dialog()\n        dialog.notification('错误', '搜索结果为空', xbmcgui.NOTIFICATION_ERROR, 5000, False)\n    return videos\n\n\ndef get_up(uid, page):\n    r = get_html(\n        'https://api.bilibili.com/x/space/arc/search?mid=' + uid + '&ps=30&tid=0&pn=' + page + '&keyword=&order=pubdate&jsonp=jsonp',\n        t=10)\n    j = json.loads(r)\n    #\n    videos = []\n    vlist = j['data']['list']['vlist']\n    for index in range(len(vlist)):\n        videoitem = {}\n        videoitem['name'] = vlist[index]['title']\n        videoitem['href'] = 'https://www.bilibili.com/video/' + vlist[index]['bvid']\n        videoitem['thumb'] = 'http:' + vlist[index]['pic']\n        videos.append(videoitem)\n    dialog = xbmcgui.Dialog()\n    dialog.notification('当前' + str(page) + '/' + str(int(int(j['data']['page']['count']) / 30) + 1) + '页',\n                        '总共' + str(j['data']['page']['count']) + '个视频', xbmcgui.NOTIFICATION_INFO, 5000, False)\n    return videos\n\n\ndef get_bangumiinfo(url):\n    r = get_html(url, t=60)\n    str1 = r.find('window.__INITIAL_STATE__=')\n    str2 = r.find(';(function(){var s')\n    vjson = r[str1 + 25:str2]\n    j = json.loads(vjson)\n    r1 = get_html('https://www.bilibili.com/bangumi/media/md' + str(j['mediaInfo']['id']), t=60)\n    str1 = r1.find('window.__INITIAL_STATE__=')\n    str2 = r1.find(';(function(){var s')\n    mjson = r1[str1 + 25:str2]\n    j2 = json.loads(mjson)\n\n    stat = j['mediaInfo']['stat']\n    mp4info = {}\n    jianjie = zh(stat['views']) + '播放 · ' + zh(stat['danmakus']) + '弹幕 · ' + zh(stat['reply']) + '评论\\n'\n    jianjie += str(j['mediaInfo']['rating']['score']) + '分(' + str(j['mediaInfo']['rating']['count']) + '人评) · ' + zh(\n        stat['coins']) + '投币 · ' + zh(stat['favorites']) + '追番\\n'\n\n    # bpnum = j2['mediaInfo']['stat']['danmakus'] + j2['mediaInfo']['stat']['series_follow'] + stat['reply'] +j['mediaInfo']['rating']['count'] + stat['coins']\n    # jianjie += '白嫖率：' + str(100-round((float(bpnum)/float(j2['mediaInfo']['stat']['views']))*100,2)) +'% \\n'\n\n    jianjie += '--------------------------\\n'\n    jianjie += j2['mediaInfo']['publish']['release_date_show'].encode('utf-8') + '\\n'\n    jianjie += j2['mediaInfo']['publish']['time_length_show'].encode('utf-8') + '\\n'\n    jianjie += '--------------------------\\n'\n    try:\n        mp4info['plot'] = jianjie + j['mediaInfo']['evaluate'].encode('utf-8')\n    except AttributeError:\n        mp4info['plot'] = jianjie\n    mp4info['title'] = j['mediaInfo']['title']\n    mp4info['img'] = 'http:' + j['mediaInfo']['cover']\n    mp4info['rating'] = j['mediaInfo']['rating']['score']\n    mp4info['userrating'] = j['mediaInfo']['rating']['score']\n    mp4info['aired'] = j2['mediaInfo']['publish']['pub_date']\n\n    areas = []\n    for index in range(len(j2['mediaInfo']['areas'])):\n        areas.append(j2['mediaInfo']['areas'][index]['name'])\n    mp4info['country'] = areas\n\n    staff = j2['mediaInfo']['staff']\n    staff1 = staff.split('\\n')\n    # dialog = xbmcgui.Dialog()\n    # dialog.textviewer('错误提示', str(staff.encode('utf-8')))\n    st12 = []\n    st13 = []\n    for index in range(len(staff1)):\n\n        if staff1[index].find(u'编剧') and staff1[index].find(u'设计') != -1:\n            staff1[index] = staff1[index].replace(u'：', u':')\n            st10 = staff1[index].split(u':')\n            if st10[1].find(u',') != -1:\n                st11 = st10[1].split(u',')\n            else:\n                st11 = [st10[1]]\n            # print(st11)\n            for index in range(len(st11)):\n                st12.append(st11[index])\n            # dialog = xbmcgui.Dialog()\n            # ok = dialog.ok('错误提示', str(st12))\n            mp4info['writer'] = st12\n        if staff1[index].find(u'导演') and staff1[index].find(u'监督') != -1:\n            # dialog = xbmcgui.Dialog()\n            # dialog.textviewer('错误提示', str(staff1[index].encode('utf-8')))\n            staff1[index] = staff1[index].replace(u'：', u':')\n            st10 = staff1[index].split(u':')\n\n            if st10[1].find(u',') != -1:\n                st11 = st10[1].split(u',')\n            else:\n                st11 = [st10[1]]\n\n            for index in range(len(st11)):\n                st13.append(st11[index])\n            mp4info['director'] = st13\n\n    cast = []\n    cast1 = j2['mediaInfo']['actors']\n    cast1 = cast1.split('\\n')\n    for index in range(len(cast1)):\n        if cast1[index].find('：'.decode('utf-8')) != -1:\n            cast2 = cast1[index].split('：'.decode('utf-8'))\n            cast.append((cast2[0], cast2[1]))\n        else:\n            cast.append(cast1[index])\n    mp4info['cast'] = cast\n\n    tag = []\n    for index in range(len(j2['mediaInfo']['styles'])):\n        tag.append(j2['mediaInfo']['styles'][index]['name'])\n    mp4info['genre'] = tag\n\n    mp4info['mediatype'] = 'video'\n    mp4info['reply'] = zh(stat['reply'])\n    return mp4info\n\n\ndef get_mp4info(url):\n    r = get_html(url, t=60)\n    str1 = r.find('window.__INITIAL_STATE__=')\n    str2 = r.find(';(function(){var s')\n    vjson = r[str1 + 25:str2]\n    j = json.loads(vjson)\n    uptime = j['videoData']['ctime']\n    # 转换成localtime\n    time_local = time.localtime(uptime)\n    # 转换成新的时间格式(2016-05-05 20:28:54)\n    uptime = time.strftime(\"%Y-%m-%d %H:%M:%S\", time_local)\n    data = time.strftime(\"%Y-%m-%d\", time_local)\n\n    sr = get_html('https://api.bilibili.com/x/web-interface/archive/stat?aid=' + str(j['aid']), t=60)\n    sj = json.loads(sr)\n    stat = sj['data']\n    mp4info = {}\n    jianjie = zh(stat['view']) + '播放 · ' + zh(stat['danmaku']) + '弹幕 · ' + zh(stat['reply']) + '评论\\n'\n    jianjie += zh(stat['like']) + '赞 · ' + zh(stat['coin']) + '投币 · ' + zh(stat['favorite']) + '收藏\\n'\n    mp4info['reply'] = zh(stat['reply'])\n    if stat['now_rank'] != 0:\n        jianjie += '今日全站日排行第' + str(stat['now_rank']) + '名\\n'\n    if stat['his_rank'] != 0:\n        jianjie += '最高全站日排行第' + str(stat['his_rank']) + '名\\n'\n    if stat['copyright'] == 1:\n        jianjie += '[COLOR red]未经作者许可，禁止转载[/COLOR]\\n'\n    # if 'bq' in cache:\n    #     if cache['bq'] == 1:\n    baipiaosetting = xbmcplugin.getSetting(int(sys.argv[1]), 'baipiao')\n    if baipiaosetting == 'true':\n        bpnum = bp([stat['like'], stat['coin'], stat['favorite']])\n        jianjie += '白嫖率：' + str(100 - round(((float(bpnum) + float(stat['danmaku']) + float(stat['reply']) + float(\n            stat['share'])) / float(stat['view'])) * 100, 2)) + '% \\n'\n    jianjie += '--------------------------\\n'\n    jianjie += 'av' + str(j['aid']) + ' · ' + j['bvid'].encode('utf-8') + '\\n'\n    jianjie += '发布时间：' + uptime + '\\n'\n    jianjie += '--------------------------\\n'\n    try:\n        mp4info['plot'] = jianjie + j['videoData']['desc'].encode('utf-8')\n    except AttributeError:\n        mp4info['plot'] = jianjie\n\n    mp4info['title'] = j['videoData']['title']\n    mp4info['img'] = j['videoData']['pic']\n\n    tag = []\n    for index in range(len(j['tags'])):\n        tag.append(j['tags'][index]['tag_name'])\n    mp4info['genre'] = tag\n    mp4info['tag'] = tag\n\n    cast = []\n    if j['staffData'] != []:\n        for index in range(len(j['staffData'])):\n            up = j['staffData'][index]['name'] + '[' + j['staffData'][index]['title'] + ']'\n            fan = zh(j['staffData'][index]['follower']) + '粉丝'\n            cast.append((up, fan))\n    else:\n        up = j['upData']['name']\n        fan = zh(j['upData']['fans']) + '粉丝'\n        cast.append((up, fan))\n    mp4info['cast'] = cast\n\n    mp4info['dateadded'] = uptime\n    mp4info['aired'] = data\n    mp4info['duration'] = j['videoData']['duration']\n\n    mp4info['mediatype'] = 'video'\n\n    # 传递uid\n    mp4info['upname'] = j['videoData']['owner']['name']\n    mp4info['uid'] = j['videoData']['owner']['mid']\n    mp4info['face'] = j['videoData']['owner']['face']\n    return mp4info\n\n\n# 评论区\ndef get_comm(url, sort):\n    if re.match('https://', url) == None:\n        if re.match('http://', url) != None:\n            url = 'https://' + url[7:]\n        else:\n            dialog = xbmcgui.Dialog()\n            ok = dialog.ok('错误提示', '非法url')\n\n    ifbangumiurl = re.match('https://www.bilibili.com/bangumi/play/ep', url)\n    ifvideourl = re.match('https://www.bilibili.com/video/', url)\n    if ifbangumiurl or ifvideourl != None:\n        if ifbangumiurl != None:\n            epid = re.search(r'ep[0-9]+', url)\n            epid = epid.group()\n            epid = epid[2:]\n            r = get_html(url, t=10)\n\n            str1 = r.find('window.__INITIAL_STATE__=')\n            str2 = r.find(';(function(){var s')\n            vjson = r[str1 + 25:str2]\n            j = json.loads(vjson)\n            elist = j['epList']\n            aid = ''\n            for index in range(len(elist)):\n                if int(elist[index]['id']) == int(epid):\n                    aid = elist[index]['aid']\n            if aid == '':\n                slist = j['sections']\n                if slist != []:\n                    for index in range(len(slist)):\n                        ##\n                        sslist = slist[index]['epList']\n                        for i in range(len(sslist)):\n                            if int(sslist[i]['id']) == int(epid):\n                                aid = sslist[index]['aid']\n            if aid == '':\n                dialog = xbmcgui.Dialog()\n                # dialog.textviewer('tt',epid)\n        if ifvideourl != None:\n            bvid = re.search(r'BV[a-zA-Z0-9]+', url)\n            bvurl = 'https://api.bilibili.com/x/web-interface/view?bvid=' + bvid.group()\n            r = get_html(bvurl, t=10)\n            j = json.loads(r)\n            aid = j['data']['aid']\n            mid = j['data']['owner']['mid']\n\n    # apiurl = 'http://api.bilibili.com/x/reply?type=1&oid='+str(aid)+'&sort=' + sort\n    apiurl = 'https://api.bilibili.com/x/v2/reply?jsonp=jsonp&pn=1&type=1&oid=' + str(aid) + '&sort=' + sort\n    apiheaders = {\n        'user-agent': 'Mozilla/5.0 (Linux; Android 10; Z832 Build/MMB29M) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.116 Mobile Safari/537.36',\n        'referer': 'https://www.bilibili.com/video/BV1Ze411W7EL'}\n\n    r = get_html(apiurl, head=str(apiheaders), t=10)\n    j = json.loads(r)\n    rep = j['data']['replies']\n    text = ''\n    for index in range(len(rep)):\n        text += '-----' * 12 + '\\n'\n        # 时间处理\n        ctime = int(rep[index]['ctime'])\n        # 转换成localtime\n        time_local = time.localtime(ctime)\n        # 转换成新的时间格式(2016-05-05 20:28:54)\n        ctime = time.strftime(\"%Y-%m-%d %H:%M:%S\", time_local)\n        # 判断大会员\n        if rep[index]['member']['vip']['vipType'] == 2:\n            # 是大会员，加上粉色名字\n            text += '[COLOR pink]' + rep[index]['member']['uname'].encode('utf-8') + '[/COLOR]'\n        else:\n            text += rep[index]['member']['uname'].encode('utf-8')\n        # 加上等级后缀\n        text += level_color(rep[index]['member']['level_info']['current_level'])\n        # 判断是否up主\n        if ifvideourl != None:\n            if int(mid) == int(rep[index]['member']['mid']):\n                text += ' [COLOR pink][UP主][/COLOR]'\n        text += '\\n'\n\n        text += rep[index]['content']['message'].encode('utf-8') + '\\n'\n        text += str(ctime) + ' · ' + str(rep[index]['like']) + '赞 · 共' + str(rep[index]['count']) + '条回复\\n'\n        rrep = rep[index]['replies']\n        text += '-----' * 12 + '\\n\\n'\n        if rrep:\n            for i in range(len(rrep)):\n                # 时间处理\n                ctime = int(rrep[i]['ctime'])\n                # 转换成localtime\n                time_local = time.localtime(ctime)\n                # 转换成新的时间格式(2016-05-05 20:28:54)\n                ctime = time.strftime(\"%Y-%m-%d %H:%M:%S\", time_local)\n\n                if rrep[i]['member']['vip']['vipType'] == 2:\n                    # 大会员\n                    text += ' ' * 5 + '[COLOR pink]' + rrep[i]['member']['uname'].encode('utf-8') + '[/COLOR]'\n                else:\n                    text += ' ' * 5 + rrep[i]['member']['uname'].encode('utf-8')\n                # 加上等级后缀\n                text += level_color(rrep[i]['member']['level_info']['current_level'])\n                # 判断是否up主\n                if ifvideourl != None:\n                    if int(mid) == int(rrep[i]['member']['mid']):\n                        text += ' [COLOR pink][UP主][/COLOR]'\n                text += '\\n'\n                text += ' ' * 5 + rrep[i]['content']['message'].encode('utf-8') + '\\n'\n                text += ' ' * 5 + str(ctime) + ' · ' + str(rrep[i]['like']) + '赞 · 共' + str(rrep[i]['count']) + '条回复\\n'\n                if len(rrep) - 1 != i:\n                    text += ' ' * 5 + '-----' * 10 + '\\n'\n\n    return text\n\n\n# 解析6分钟番剧api（已废弃\ndef get_bangumijson(url):\n    cutep = url.find('y/ep')\n    epnum = url[cutep + 4:]\n    epnum = re.sub(r'\\D', '', epnum)\n    apiurl = 'https://api.bilibili.com/pgc/player/web/playurl/html5?ep_id='\n    r = get_html(apiurl + epnum, head=str(mheaders), t=10)\n\n    j = json.loads(r)\n    return j\n\n\n# 获取清晰度\ndef get_vidquality(url):\n    if re.search(r'[Bb]{1}[Vv]{1}[a-zA-Z0-9]+', url):\n        bvid = re.search(r'[Bb]{1}[Vv]{1}[a-zA-Z0-9]+', url)\n        vurl = 'https://api.bilibili.com/x/web-interface/view?bvid=' + bvid.group()\n    if re.search('[aA]{1}[vV]{1}[0-9]+', url):\n        aid = re.search(r'[aA]{1}[vV]{1}[0-9]+', url)\n        aid = aid.group()\n        aid = aid[2:]\n        vurl = 'https://api.bilibili.com/x/web-interface/view?aid=' + aid\n    if '?p=' in url:\n        # 单独下载分P视频中的一集\n        p = int(re.search(r'\\?p=(\\d+)', url).group(1)) - 1\n    else:\n        p = 0\n    r = get_html(vurl)\n    j = json.loads(r)\n    cid = j['data']['pages'][int(p)]['cid']\n    bvid = j['data']['bvid']\n\n    r = get_html('https://api.bilibili.com/x/player/playurl?cid=' + str(cid) + '&bvid=' + bvid + '&qn=0&fourk=1')\n    j = json.loads(r)\n    # vdict = {}\n    vlist = []\n    for index in range(len(j['data']['accept_quality'])):\n        # vdict[j['data']['accept_description'][index]] = j['data']['accept_quality'][index]\n        vlist.append(j['data']['accept_quality'][index])\n    return vlist\n\n\ndef get_bgmquality(url):\n    epid = re.search(r'ep[0-9]+', url)\n    epid = epid.group()\n    epid = epid[2:]\n    r = get_html(url)\n\n    str1 = r.find('window.__INITIAL_STATE__=')\n    str2 = r.find(';(function(){var s')\n    vjson = r[str1 + 25:str2]\n    j = json.loads(vjson)\n    elist = j['epList']\n    bvid = ''\n    cid = ''\n    for index in range(len(elist)):\n        if int(elist[index]['id']) == int(epid):\n            bvid = elist[index]['bvid']\n            cid = elist[index]['cid']\n    if bvid == '' or cid == '':\n        slist = j['sections']\n        if slist != []:\n            for index in range(len(slist)):\n                ##\n                sslist = slist[index]['epList']\n                for i in range(len(sslist)):\n                    if int(sslist[i]['id']) == int(epid):\n                        bvid = sslist[index]['bvid']\n                        cid = sslist[index]['cid']\n\n    apiheaders = {\n        'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36',\n        'Cookie': sessdata(mode='vip'),  # 登录B站后复制一下cookie中的SESSDATA字段,有效期1个月\n        'Host': 'api.bilibili.com'\n    }\n    r = get_html('https://api.bilibili.com/x/player/playurl?cid=' + str(cid) + '&bvid=' + bvid + '&qn=0',\n                 head=str(apiheaders))\n    j = json.loads(r)\n\n    # vdict = {}\n    vlist = []\n    try:\n        for index in range(len(j['data']['accept_quality'])):\n            # vdict[j['data']['accept_description'][index]] = j['data']['accept_quality'][index]\n            vlist.append(j['data']['accept_quality'][index])\n    except TypeError:\n        # json file may not contain proper structure, return empty vlist in this case\n        # 海外用户在尝试打开番剧时，j['data']['accept_quality']会返回错误\n        pass\n\n    return vlist\n\n\ndef get_biliplus_bgmquality(url):\n    epid = re.search(r'ep[0-9]+', url)\n    epid = epid.group()\n    epid = epid[2:]\n    r = get_html(url)\n\n    str1 = r.find('window.__INITIAL_STATE__=')\n    str2 = r.find(';(function(){var s')\n    vjson = r[str1 + 25:str2]\n    j = json.loads(vjson)\n    elist = j['epList']\n    bvid = ''\n    cid = ''\n    for index in range(len(elist)):\n        if int(elist[index]['id']) == int(epid):\n            bvid = elist[index]['bvid']\n            cid = elist[index]['cid']\n    if bvid == '' or cid == '':\n        slist = j['sections']\n        if slist != []:\n            for index in range(len(slist)):\n                ##\n                sslist = slist[index]['epList']\n                for i in range(len(sslist)):\n                    if int(sslist[i]['id']) == int(epid):\n                        bvid = sslist[index]['bvid']\n                        cid = sslist[index]['cid']\n\n    # 尝试从biliplus获取番剧清晰度信息\n    url_api = 'https://www.biliplus.com/BPplayurl.php?cid={}&qn=0&module=bangumi&otype=json&bvid={}'.format(cid, bvid)\n\n    r = get_html(url_api)\n    j = json.loads(r)\n\n    # vdict = {}\n    vlist = []\n\n    for index in range(len(j['accept_quality'])):\n        vlist.append(j['accept_quality'][index])\n    return vlist\n\n\n# 官方api1\ndef get_api1(url, quality):\n    if re.search(r'[Bb]{1}[Vv]{1}[a-zA-Z0-9]+', url):\n        bvid = re.search(r'[Bb]{1}[Vv]{1}[a-zA-Z0-9]+', url)\n        vurl = 'https://api.bilibili.com/x/web-interface/view?bvid=' + bvid.group()\n    if re.search('[aA]{1}[vV]{1}[0-9]+', url):\n        aid = re.search(r'[aA]{1}[vV]{1}[0-9]+', url)\n        aid = aid.group()\n        aid = aid[2:]\n        vurl = 'https://api.bilibili.com/x/web-interface/view?aid=' + aid\n\n    if '?p=' in url:\n        # 单独下载分P视频中的一集\n        p = int(re.search(r'\\?p=(\\d+)', url).group(1)) - 1\n    else:\n        p = 0\n    r = get_html(vurl, t=10)\n    j = json.loads(r)\n    cid = j['data']['pages'][int(p)]['cid']\n\n    if xbmcplugin.getSetting(int(sys.argv[1]), 'damakustatus') == 'true':\n        dpath = xbmcplugin.getSetting(int(sys.argv[1]), 'damakufolder')\n        danmuku.Danmuku(cid, dpath)\n    # print(cid)\n\n    entropy = 'rbMCKn@KuamXWlPMoJGsKcbiJKUfkPF_8dABscJntvqhRSETg'\n    appkey, sec = ''.join([chr(ord(i) + 2) for i in entropy[::-1]]).split(':')\n    params = 'appkey=%s&cid=%s&otype=json&qn=%s&quality=%s&type=' % (appkey, cid, quality, quality)\n    tmp = params + sec\n    tmp = tmp.encode('utf-8')\n    chksum = hashlib.md5(bytes(tmp)).hexdigest()\n    url_api = 'https://interface.bilibili.com/v2/playurl?%s&sign=%s' % (params, chksum)\n    apiheaders = {\n        'Referer': url,\n        'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.149 Safari/537.36'\n    }\n    # print(url_api)\n    html = json.loads(get_html(url_api, head=str(apiheaders)))\n    # print(json.dumps(html))\n    video_list = []\n    for i in html['durl']:\n        video_list.append(i['url'])\n    # print(video_list)\n    return cid, video_list\n\n\n# xbeibeix.com 解析\ndef get_api2(url):\n    mp4 = ''\n    if re.match('https://', url) == None:\n        if re.match('http://', url) != None:\n            url = 'https://' + url[7:]\n        else:\n            dialog = xbmcgui.Dialog()\n            ok = dialog.ok('错误提示', '非法url')\n    ifvideourl = re.match('https://www.bilibili.com/video/', url)\n    if ifvideourl != None:\n        bvid = ''\n        aid = ''\n        if re.search(r'[Bb]{1}[Vv]{1}[a-zA-Z0-9]+', url):\n            bvid = re.search(r'[Bb]{1}[Vv]{1}[a-zA-Z0-9]+', url)\n            bvid = bvid.group()\n            vurl = 'https://api.bilibili.com/x/web-interface/view?bvid=' + bvid\n        if re.search('[aA]{1}[vV]{1}[0-9]+', url):\n            aid = re.search(r'[aA]{1}[vV]{1}[0-9]+', url)\n            aid = aid.group()\n            aid = aid[2:]\n            vurl = 'https://api.bilibili.com/x/web-interface/view?aid=' + aid\n        r = get_html(vurl, t=10)\n        j = json.loads(r)\n        aid = j['data']['aid']\n        if '?p=' in url:\n            # 单独下载分P视频中的一集\n            p = int(re.search(r'\\?p=(\\d+)', url).group(1)) - 1\n        else:\n            p = 0\n        cid = j['data']['pages'][p]['cid']\n        if xbmcplugin.getSetting(int(sys.argv[1]), 'damakustatus') == 'true':\n            dpath = xbmcplugin.getSetting(int(sys.argv[1]), 'damakufolder')\n            danmuku.Danmuku(cid, dpath)\n\n        apiurl = 'https://www.xbeibeix.com/api/bilibiliapi.php?url=https://www.bilibili.com/&aid=' + str(\n            aid) + '&cid=' + str(cid)\n        r = get_html(apiurl, t=10)\n        j = json.loads(r)\n        if str(j['url']) != 'null':\n            mp4 = j['url']\n            dialog = xbmcgui.Dialog()\n            dialog.textviewer('错误提示', str(mp4))\n        else:\n            dialog = xbmcgui.Dialog()\n            ok = dialog.ok('错误提示', '视频不存在')\n    else:\n        dialog = xbmcgui.Dialog()\n        ok = dialog.ok('错误提示', '不支持的url格式')\n    return cid, mp4\n\n\n# 官方api2\ndef get_api3(url, quality):\n    if re.match('https://', url) == None:\n        if re.match('http://', url) != None:\n            url = 'https://' + url[7:]\n        else:\n            dialog = xbmcgui.Dialog()\n            ok = dialog.ok('错误提示', '非法url')\n\n    ifbangumiurl = re.match('https://www.bilibili.com/bangumi/play/ep', url)\n    ifvideourl = re.match('https://www.bilibili.com/video/', url)\n    if ifbangumiurl or ifvideourl != None:\n        if ifbangumiurl != None:\n            epid = re.search(r'ep[0-9]+', url)\n            epid = epid.group()\n            epid = epid[2:]\n            r = get_html(url, t=10)\n\n            str1 = r.find('window.__INITIAL_STATE__=')\n            str2 = r.find(';(function(){var s')\n            vjson = r[str1 + 25:str2]\n            j = json.loads(vjson)\n            elist = j['epList']\n            bvid = ''\n            cid = ''\n            for index in range(len(elist)):\n                if int(elist[index]['id']) == int(epid):\n                    bvid = elist[index]['bvid']\n                    cid = elist[index]['cid']\n            if bvid == '' or cid == '':\n                slist = j['sections']\n                if slist != []:\n                    for index in range(len(slist)):\n                        ##\n                        sslist = slist[index]['epList']\n                        for i in range(len(sslist)):\n                            if int(sslist[i]['id']) == int(epid):\n                                bvid = sslist[index]['bvid']\n                                cid = sslist[index]['cid']\n            if bvid == '' or cid == '':\n                dialog = xbmcgui.Dialog()\n                # dialog.textviewer('tt',epid)\n            else:\n                if xbmcplugin.getSetting(int(sys.argv[1]), 'damakustatus') == 'true':\n                    dpath = xbmcplugin.getSetting(int(sys.argv[1]), 'damakufolder')\n                    danmuku.Danmuku(cid, dpath)\n\n        if ifvideourl != None:\n            bvid = ''\n            aid = ''\n            if re.search(r'[Bb]{1}[Vv]{1}[a-zA-Z0-9]+', url):\n                bvid = re.search(r'[Bb]{1}[Vv]{1}[a-zA-Z0-9]+', url)\n                bvid = bvid.group()\n                vurl = 'https://api.bilibili.com/x/web-interface/view?bvid=' + bvid\n            if re.search('[aA]{1}[vV]{1}[0-9]+', url):\n                aid = re.search(r'[aA]{1}[vV]{1}[0-9]+', url)\n                aid = aid.group()\n                aid = aid[2:]\n                vurl = 'https://api.bilibili.com/x/web-interface/view?aid=' + aid\n            r = get_html(vurl, t=10)\n            j = json.loads(r)\n            # bvid = j['data']['pages'][0]['bvid']\n            if '?p=' in url:\n                # 单独下载分P视频中的一集\n                p = int(re.search(r'\\?p=(\\d+)', url).group(1)) - 1\n            else:\n                p = 0\n            cid = j['data']['pages'][p]['cid']\n            if xbmcplugin.getSetting(int(sys.argv[1]), 'damakustatus') == 'true':\n                dpath = xbmcplugin.getSetting(int(sys.argv[1]), 'damakufolder')\n                danmuku.Danmuku(cid, dpath)\n\n    if bvid != '':\n        url_api = 'https://api.bilibili.com/x/player/playurl?cid={}&bvid={}&qn={}&fourk=1'.format(cid, bvid, quality)\n    else:\n        url_api = 'https://api.bilibili.com/x/player/playurl?cid={}&aid={}&qn={}&fourk=1'.format(cid, aid, quality)\n    apiheaders = {\n        'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36',\n        'Cookie': sessdata(mode='vip'),  # 登录B站后复制一下cookie中的SESSDATA字段,有效期1个月\n        'Host': 'api.bilibili.com'\n    }\n    html = json.loads(get_html(url_api, head=str(apiheaders)))\n    video_list = []\n    # dialog = xbmcgui.Dialog()\n    # dialog.textviewer('评论区',str(html['data']['durl']))\n    try:\n        if 'data' in html:\n            for i in html['data']['durl']:\n                video_list.append(i['url'])\n        else:\n            dialog = xbmcgui.Dialog()\n            dialog.ok('提示', '无法解析视频')\n    except TypeError:\n        dialog = xbmcgui.Dialog()\n        dialog.ok('提示', '解析视频失败,此视频可能为大会员专享视频，而你的sessdata没有大会员或者已过期')\n\n    return cid, video_list\n\n\n# biliplus.com 用于解析港澳台番剧\ndef get_api4(url, quality):\n    epid = re.search(r'ep[0-9]+', url)\n    epid = epid.group()\n    epid = epid[2:]\n    r = get_html(url, t=10)\n\n    str1 = r.find('window.__INITIAL_STATE__=')\n    str2 = r.find(';(function(){var s')\n    vjson = r[str1 + 25:str2]\n    j = json.loads(vjson)\n    elist = j['epList']\n    bvid = ''\n    cid = ''\n    for index in range(len(elist)):\n        if int(elist[index]['id']) == int(epid):\n            bvid = elist[index]['bvid']\n            cid = elist[index]['cid']\n    if bvid == '' or cid == '':\n        slist = j['sections']\n        if slist != []:\n            for index in range(len(slist)):\n                ##\n                sslist = slist[index]['epList']\n                for i in range(len(sslist)):\n                    if int(sslist[i]['id']) == int(epid):\n                        bvid = sslist[index]['bvid']\n                        cid = sslist[index]['cid']\n    if bvid == '' or cid == '':\n        dialog = xbmcgui.Dialog()\n        # dialog.textviewer('tt',epid)\n    else:\n        if xbmcplugin.getSetting(int(sys.argv[1]), 'damakustatus') == 'true':\n            dpath = xbmcplugin.getSetting(int(sys.argv[1]), 'damakufolder')\n            danmuku.Danmuku(cid, dpath)\n    # hk9ho2af5hdw20wewf4ahqovwp79kq2z\n\n    accesskeyswitch = xbmcplugin.getSetting(int(sys.argv[1]), 'accesskeyswitch')\n\n    if accesskeyswitch == 'true':\n        # 获取access_key的方法：登陆biliplus.com，从浏览器cookie中获取\n        accesskey = xbmcplugin.getSetting(int(sys.argv[1]), 'accesskey')\n        # somehow, had to add a \"platform\" parameter to make it work\n        url_api = 'https://www.biliplus.com/BPplayurl.php?cid={}&qn={}&module=bangumi&otype=json&bvid={}&platform=&access_key={}'.format(\n            cid, quality, bvid, accesskey)\n    else:\n        # https://www.biliplus.com/BPplayurl.php?cid=181007115&bvid=BV1fK4y1r7sT&qn=80&module=bangumi&otype=json\n        url_api = 'https://www.biliplus.com/BPplayurl.php?cid={}&qn={}&module=bangumi&otype=json&bvid={}'.format(cid,\n                                                                                                                 quality,\n                                                                                                                 bvid)\n\n    r = get_html(url_api)\n    html = json.loads(r)\n\n    video_list = []\n    cdnswitch = xbmcplugin.getSetting(int(sys.argv[1]), 'cdnswitch')\n    cdnreplace = xbmcplugin.getSetting(int(sys.argv[1]), 'cdnreplace')\n    if 'durl' in html:\n        for i in range(len(html['durl'])):\n            durl = html['durl'][i]['url']\n            if cdnswitch == 'true':\n                durl = durl.replace('upos-hz-mirrorakam.akamaized.net', cdnreplace)\n                # dialog = xbmcgui.Dialog()\n                # dialog.textviewer('评论区',durl)\n            video_list.append(durl)\n        # video_list = video_list[0]\n    else:\n        dialog = xbmcgui.Dialog()\n        dialog.ok('提示', '无法解析视频')\n    # dialog = xbmcgui.Dialog()\n    # dialog.textviewer('评论区',str(video_list))\n    return cid, video_list\n\n\ndef get_api5(url, quality, api):\n    epid = re.search(r'ep[0-9]+', url)\n    epid = epid.group()\n    epid = epid[2:]\n    r = get_html(url, t=10)\n\n    str1 = r.find('window.__INITIAL_STATE__=')\n    str2 = r.find(';(function(){var s')\n    vjson = r[str1 + 25:str2]\n    j = json.loads(vjson)\n    elist = j['epList']\n    bvid = ''\n    cid = ''\n    for index in range(len(elist)):\n        if int(elist[index]['id']) == int(epid):\n            bvid = elist[index]['bvid']\n            cid = elist[index]['cid']\n    if bvid == '' or cid == '':\n        slist = j['sections']\n        if slist != []:\n            for index in range(len(slist)):\n                ##\n                sslist = slist[index]['epList']\n                for i in range(len(sslist)):\n                    if int(sslist[i]['id']) == int(epid):\n                        bvid = sslist[index]['bvid']\n                        cid = sslist[index]['cid']\n    if bvid == '' or cid == '':\n        dialog = xbmcgui.Dialog()\n        # dialog.textviewer('tt',epid)\n    else:\n        if xbmcplugin.getSetting(int(sys.argv[1]), 'damakustatus') == 'true':\n            dpath = xbmcplugin.getSetting(int(sys.argv[1]), 'damakufolder')\n            danmuku.Danmuku(cid, dpath)\n    if int(api) == 1:\n        apihead = 'https://bilibili-tw-api.kghost.info/'\n    if int(api) == 2:\n        apihead = 'https://bilibili-hk-api.kghost.info/'\n    url_api = apihead + 'x/player/playurl?cid={}&bvid={}&qn={}'.format(cid, bvid, quality)\n    apiheaders = {\n        'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36',\n        # 'Cookie': sessdata, # 登录B站后复制一下cookie中的SESSDATA字段,有效期1个月\n        # 'Host': 'api.bilibili.com'\n    }\n    html = json.loads(get_html(url_api, head=str(apiheaders)))\n    video_list = []\n    # dialog = xbmcgui.Dialog()\n    # dialog.textviewer('评论区',str(html))\n    cdnswitch = xbmcplugin.getSetting(int(sys.argv[1]), 'cdnswitch')\n    cdnreplace = xbmcplugin.getSetting(int(sys.argv[1]), 'cdnreplace')\n    if html['data']:\n        for i in html['data']['durl']:\n            durl = i['url']\n            if cdnswitch == 'true':\n                durl = durl.replace('upos-hz-mirrorakam.akamaized.net', cdnreplace)\n            video_list.append(durl)\n        video_list = video_list[0]\n    else:\n        dialog = xbmcgui.Dialog()\n        dialog.ok('提示', '无法解析视频')\n    return cid, video_list\n\n\n# 获取分类下\"全部\"分类下直播房间列表\ndef get_live(page):\n    videos = []\n    r = get_html('https://api.live.bilibili.com/room/v1/room/get_user_recommend?page=' + str(page), t=10)\n\n    j = json.loads(r)\n    llist = j['data']\n    for index in range(len(llist)):\n        videoitem = {}\n        videoitem['name'] = llist[index]['title']\n        videoitem['href'] = llist[index]['roomid']\n        videoitem['thumb'] = llist[index]['user_cover']\n        videos.append(videoitem)\n    return videos\n\n\n# 获取分类下其他分类下直播房间列表\ndef get_livemore(url, page):\n    videos = []\n    r = get_html(url + '&page=' + str(page), t=10)\n\n    j = json.loads(r)\n    llist = j['data']['list']\n    for index in range(len(llist)):\n        videoitem = {}\n        videoitem['name'] = '[' + llist[index]['area_name'] + ']' + llist[index]['title']\n        videoitem['href'] = llist[index]['roomid']\n        videoitem['thumb'] = llist[index]['cover']\n        videos.append(videoitem)\n    return videos\n\n\n# 获取房间信息\ndef get_roominfo(id):\n    flvdict = {}\n    r = get_html('https://api.live.bilibili.com/room/v1/Room/get_info?id=' + str(id))\n    j = json.loads(r)\n\n    ro = j['data']\n\n    soup = BeautifulSoup(ro['description'], \"html5lib\")\n\n    flvdict['title'] = ro['title']\n    flvdict['img'] = ro['user_cover']\n\n    jianjie = '房间号:' + str(ro['room_id']) + '\\n'\n    if ro['short_id'] != 0:\n        jianjie += '短房间号:' + str(ro['short_id']) + '\\n'\n    jianjie += '在线:' + zh(ro['online']) + '\\n'\n\n    if ro['live_status'] == 1:\n        flvdict['status'] = '开播'\n        jianjie += '开播时间:' + ro['live_time'].encode('utf-8') + '\\n'\n    else:\n        flvdict['status'] = '未开播'\n    jianjie += '--------------------------\\n'\n    jianjie += (soup.text).encode('utf-8')\n    flvdict['plot'] = jianjie\n    # time =\n    time = re.search('[\\d]{4}-[\\d]{2}-[\\d]{2}', ro['live_time']).group()\n    flvdict['aired'] = time\n    genre = [ro['parent_area_name'], ro['area_name']]\n    tag = ro['tags'].split(',')\n\n    flvdict['genre'] = genre + tag\n    flvdict['tag'] = genre + tag\n\n    j = json.loads(get_up_baseinfo(ro['uid']))\n    # up主 cast\n    fan = zh(ro['attention']) + '粉丝'\n    # fan = fan.decode('utf-8')\n    flvdict['cast'] = [(j['data']['name'], fan)]\n\n    flvdict['mediatype'] = 'video'\n    return flvdict\n\n\n# 获取真实直播地址\ndef get_roommp4(id):\n    r = get_html('https://api.live.bilibili.com/xlive/web-room/v1/index/getRoomPlayInfo?room_id=' + str(\n        id) + '&play_url=1&mask=0&qn=0&platform=web')\n    j = json.loads(r)\n    vlist = []\n    try:\n        flv = j['data']['play_url']['durl']\n        for index in range(len(flv)):\n            vlist.append(flv[index]['url'])\n    except TypeError:\n        dialog = xbmcgui.Dialog()\n        dialog.notification('获取直播源地址失败', '可能房间号不存在未开播', xbmcgui.NOTIFICATION_ERROR, 5000, False)\n    return vlist\n\n\ndef get_categories():\n    return [{'name': '首页', 'link': 'https://api.bilibili.com/x/web-interface/ranking/v2?rid=0&type=all'},\n            {'name': '[COLOR pink]新番[/COLOR]',\n             'link': 'https://api.bilibili.com/pgc/season/rank/web/list?day=3&season_type=1'},\n            {'name': '[COLOR pink]国产动画[/COLOR]',\n             'link': 'https://api.bilibili.com/pgc/season/rank/web/list?day=3&season_type=4'},\n            {'name': '动画', 'link': 'https://api.bilibili.com/x/web-interface/ranking/v2?rid=1&type=all'},\n            {'name': '国创相关', 'link': 'https://api.bilibili.com/x/web-interface/ranking/v2?rid=168&type=all'},\n            {'name': '音乐', 'link': 'https://api.bilibili.com/x/web-interface/ranking/v2?rid=3&type=all'},\n            {'name': '舞蹈', 'link': 'https://api.bilibili.com/x/web-interface/ranking/v2?rid=129&type=all'},\n            {'name': '游戏', 'link': 'https://api.bilibili.com/x/web-interface/ranking/v2?rid=4&type=all'},\n            {'name': '知识', 'link': 'https://api.bilibili.com/x/web-interface/ranking/v2?rid=36&type=all'},\n            {'name': '数码', 'link': 'https://api.bilibili.com/x/web-interface/ranking/v2?rid=188&type=all'},\n            {'name': '生活', 'link': 'https://api.bilibili.com/x/web-interface/ranking/v2?rid=160&type=all'},\n            {'name': '美食', 'link': 'https://api.bilibili.com/x/web-interface/ranking/v2?rid=211&type=all'},\n            {'name': '鬼畜', 'link': 'https://api.bilibili.com/x/web-interface/ranking/v2?rid=119&type=all'},\n            {'name': '时尚', 'link': 'https://api.bilibili.com/x/web-interface/ranking/v2?rid=155&type=all'},\n            {'name': '娱乐', 'link': 'https://api.bilibili.com/x/web-interface/ranking/v2?rid=5&type=all'},\n            {'name': '影视', 'link': 'https://api.bilibili.com/x/web-interface/ranking/v2?rid=181&type=all'},\n            {'name': '[COLOR pink]纪录片[/COLOR]',\n             'link': 'https://api.bilibili.com/pgc/season/rank/web/list?day=3&season_type=3'},\n            {'name': '[COLOR pink]电影[/COLOR]',\n             'link': 'https://api.bilibili.com/pgc/season/rank/web/list?day=3&season_type=2'},\n            {'name': '[COLOR pink]电视剧[/COLOR]',\n             'link': 'https://api.bilibili.com/pgc/season/rank/web/list?day=3&season_type=5'},\n            {'name': '原创', 'link': 'https://api.bilibili.com/x/web-interface/ranking/v2?rid=0&type=origin'},\n            {'name': '新人', 'link': 'https://api.bilibili.com/x/web-interface/ranking/v2?rid=0&type=rookie'},\n            {'name': '每周必看', 'link': 'https://api.bilibili.com/x/web-interface/popular/series/one?number=82'},\n            {'name': '入站必刷', 'link': 'https://api.bilibili.com/x/web-interface/popular/precious?page_size=100&page=1'}]\n\n\n# 爬分类下视频列表的\ndef get_videos(url):\n    videos = []\n    rankjson = get_html(url, t=10)\n    j = json.loads(rankjson)\n\n    if re.search('v2|precious|one', url):\n        # 非番剧api\n\n        for index in range(len(j['data']['list'])):\n            videoitem = {}\n            videoitem['name'] = j['data']['list'][index]['title'].encode('utf-8')\n            videoitem['href'] = 'https://www.bilibili.com/video/' + j['data']['list'][index]['bvid'].encode('utf-8')\n            videoitem['thumb'] = j['data']['list'][index]['pic'].encode('utf-8')\n            videoitem['info'] = {'plot': ''}\n            if 'achievement' in j['data']['list'][index]:\n                videoitem['info']['plot'] += '[COLOR yellow]“' + j['data']['list'][index]['achievement'].encode(\n                    'utf-8') + '”[/COLOR]\\n\\n'\n            if 'rcmd_reason' in j['data']['list'][index]:\n                videoitem['info']['plot'] += '[COLOR yellow]“' + j['data']['list'][index]['rcmd_reason'].encode(\n                    'utf-8') + '”[/COLOR]\\n\\n'\n            videoitem['info']['plot'] += 'UP主: ' + j['data']['list'][index]['owner']['name'].encode('utf-8') + '\\n'\n            videoitem['info']['plot'] += zh(j['data']['list'][index]['stat']['view']) + '播放 · ' + zh(\n                j['data']['list'][index]['stat']['danmaku']) + '弹幕 · ' + zh(\n                j['data']['list'][index]['stat']['coin']) + '硬币'\n            videoitem['info']['plot'] += '\\nAV' + str(j['data']['list'][index]['aid']) + ' · BV' + \\\n                                         j['data']['list'][index]['bvid'].encode('utf-8')\n            if 'desc' in j['data']['list'][index]:\n                videoitem['info']['plot'] += '\\n\\n' + j['data']['list'][index]['desc']\n            videoitem['mediatype'] = 'video'\n            videos.append(videoitem)\n        if re.search('(?<=rid=)[0-9]+(?=&)', url):\n            rid = re.search('(?<=rid=)[0-9]+(?=&)', url).group()\n            rid = int(rid)\n            r = get_html('https://api.bilibili.com/x/web-interface/online', debug='on')\n            j = json.loads(r)\n            if rid != 0:\n                if str(rid) in j['data']['region_count']:\n                    dialog = xbmcgui.Dialog()\n                    dialog.notification(two_one(rid) + '区', '目前有' + str(j['data']['region_count'][str(rid)]) + '人在看',\n                                        xbmcgui.NOTIFICATION_INFO, 3000)\n    else:\n        # 番剧类排行api\n        if 'result' in j:\n            sign = j['result']['list']\n        else:\n            sign = j['data']['list']\n        for index in range(len(sign)):\n            videoitem = {}\n            videoitem['name'] = sign[index]['title'].encode('utf-8')\n            videoitem['href'] = 'https://www.bilibili.com/bangumi/play/ss' + str(sign[index]['season_id'])\n            videoitem['thumb'] = sign[index]['cover'].encode('utf-8')\n            videoitem['info'] = {'plot': ''}\n            if sign[index]['badge'].encode('utf-8') != '':\n                videoitem['info']['plot'] += '[COLOR pink]' + sign[index]['badge'].encode('utf-8') + '[/COLOR] · '\n            if 'copyright' in sign[index]:\n                if sign[index]['copyright'].encode('utf-8') == 'dujia':\n                    videoitem['info']['plot'] += '[COLOR pink]Bilibili独占[/COLOR] · '\n            videoitem['info']['plot'] += sign[index]['new_ep']['index_show'].encode('utf-8') + '\\n'\n            videoitem['info']['plot'] += zh(sign[index]['stat']['view']) + '播放 · ' + zh(\n                sign[index]['stat']['danmaku']) + '弹幕 · ' + zh(sign[index]['stat']['follow']) + '追番'\n            videoitem['mediatype'] = 'video'\n            videos.append(videoitem)\n\n    # str1 = cutjson.find('window.__INITIAL_STATE__=')\n    # str2 = cutjson.find(';(function(){var s;')\n    # rankinfojson = cutjson[str1+25:str2]\n    # j = json.loads(rankinfojson)\n\n    # for index in range(len(j['rankList'])):\n    #     if 'badge' in j['rankList'][index]:\n    #         videoitem = {}\n    #         videoitem['name'] = j['rankList'][index]['title'].encode('utf-8')\n    #         videoitem['href'] = 'https://www.bilibili.com/bangumi/play/ss' + str(j['rankList'][index]['season_id'])\n    #         videoitem['thumb'] = j['rankList'][index]['pic'].encode('utf-8')\n    #         videoitem['info'] = {'plot':''}\n    #         if j['rankList'][index]['badge'].encode('utf-8') != '':\n    #             videoitem['info']['plot'] += '[COLOR pink]' + j['rankList'][index]['badge'].encode('utf-8') + '[/COLOR] · '\n    #         if 'copyright' in j:\n    #             if j['rankList'][index]['copyright'].encode('utf-8') == 'dujia':\n    #                 videoitem['info']['plot'] += '[COLOR pink]Bilibili独占[/COLOR] · '\n    #         videoitem['info']['plot'] += j['rankList'][index]['new_ep']['index_show'].encode('utf-8') + '\\n'\n    #         videoitem['info']['plot'] += zh(j['rankList'][index]['stat']['view']) + '播放 · ' + zh(j['rankList'][index]['stat']['danmaku']) + '弹幕 · ' + zh(j['rankList'][index]['stat']['follow']) + '追番'\n    #         videoitem['mediatype'] = 'video'\n    #         videos.append(videoitem)\n    #     else:\n    #         videoitem = {}\n    #         videoitem['name'] = j['rankList'][index]['title'].encode('utf-8')\n    #         videoitem['href'] = 'https://www.bilibili.com/video/' + j['rankList'][index]['bvid'].encode('utf-8')\n    #         videoitem['thumb'] = j['rankList'][index]['pic'].encode('utf-8')\n    #         videoitem['info'] = {'plot':'UP主: ' + j['rankList'][index]['author'].encode('utf-8') + '\\n'}\n    #         videoitem['info']['plot'] += zh(j['rankList'][index]['play']) + '播放 · ' + zh(j['rankList'][index]['video_review']) + '弹幕 · ' + zh(j['rankList'][index]['coins']) + '硬币'\n    #         videoitem['info']['plot'] += '\\nAV' + j['rankList'][index]['aid'].encode('utf-8') + ' · BV' + j['rankList'][index]['bvid'].encode('utf-8')\n    #         videoitem['mediatype'] = 'video'\n    #         videos.append(videoitem)\n\n    return videos\n\n\n# 解析视频/番剧分集信息\ndef get_sources(url):\n    sources = []\n    if re.match('https://', url) == None:\n        if re.match('http://', url) != None:\n            url = 'https://' + url[7:]\n        else:\n            dialog = xbmcgui.Dialog()\n            ok = dialog.ok('错误提示', '非法url')\n\n    ifbangumiurl = re.match('https://www.bilibili.com/bangumi/play/ss', url)\n    ifvideourl = re.match('https://www.bilibili.com/video/', url)\n    if ifbangumiurl or ifvideourl != None:\n        if ifbangumiurl != None:\n\n            r = get_html(url, t=10)\n\n            str1 = r.find('window.__INITIAL_STATE__=')\n            str2 = r.find(';(function(){var s')\n            vjson = r[str1 + 25:str2]\n            j = json.loads(vjson)\n            # 缓存标题，方便后续判断\n            cache['bgtitle'] = j['h1Title']\n\n            slist = j['sections']\n            if slist != []:\n                for index in range(len(slist)):\n                    title = slist[index]['title'].encode('utf-8')\n                    sslist = slist[index]['epList']\n                    for index in range(len(sslist)):\n                        videosource = {}\n                        if sslist[index]['epStatus'] == 13:\n                            if sslist[index]['longTitle'].encode('utf-8') != '':\n                                ssname = title + ' : ' + str(sslist[index]['title'].encode('utf-8')) + ' - ' + \\\n                                         sslist[index]['longTitle'].encode('utf-8') + ' [COLOR pink][会员][/COLOR]'\n                            else:\n                                ssname = title + ' : ' + str(\n                                    sslist[index]['title'].encode('utf-8')) + ' [COLOR pink][会员][/COLOR]'\n                        else:\n                            if sslist[index]['longTitle'].encode('utf-8') != '':\n                                ssname = title + ' : ' + str(sslist[index]['title'].encode('utf-8')) + ' - ' + \\\n                                         sslist[index]['longTitle'].encode('utf-8')\n                            else:\n                                ssname = title + ' : ' + str(sslist[index]['title'].encode('utf-8'))\n                        # href = 'https://www.bilibili.com/bangumi/play/ep' + str(sslist[index]['id']) + '?https://www.bilibili.com/video/' + elist[index]['bvid']\n                        href = 'https://www.bilibili.com/bangumi/play/ep' + str(sslist[index]['id'])\n                        videosource['name'] = ssname\n                        videosource['href'] = plugin.url_for('play', name=ssname, url=href)\n                        sources.append(videosource)\n\n            elist = j['epList']\n            for index in range(len(elist)):\n                videosource = {}\n                if elist[index]['badge'] != '':\n                    if elist[index]['longTitle'] == '':\n                        ename = '正片 : ' + str(elist[index]['title'].encode('utf-8')) + ' - ' + elist[index][\n                            'longTitle'].encode('utf-8') + ' [COLOR pink][' + elist[index]['badge'].encode(\n                            'utf-8') + '][/COLOR]'\n                    else:\n                        ename = '正片 : ' + str(elist[index]['title'].encode('utf-8')) + ' [COLOR pink][' + elist[index][\n                            'badge'].encode('utf-8') + '][/COLOR]'\n                else:\n                    if elist[index]['longTitle'] != '':\n                        ename = '正片 : ' + str(elist[index]['title'].encode('utf-8')) + ' - ' + elist[index][\n                            'longTitle'].encode('utf-8')\n                    else:\n                        ename = '正片 : ' + str(elist[index]['title'].encode('utf-8'))\n                href = 'https://www.bilibili.com/bangumi/play/ep' + str(\n                    elist[index]['id']) + '?https://www.bilibili.com/video/' + elist[index]['bvid']\n                videosource['name'] = ename\n                videosource['href'] = plugin.url_for('play', name=ename, url=href)\n                sources.append(videosource)\n\n            return sources\n\n        else:\n            # print('视频')\n            r = get_html(url, t=10)\n\n            str1 = r.find('window.__INITIAL_STATE__=')\n            str2 = r.find(';(function(){var s')\n            vjson = r[str1 + 25:str2]\n            # print(vjson)\n            j = json.loads(vjson)\n            vlist = j['videoData']['pages']\n            for index in range(len(vlist)):\n                if len(vlist) == 1:\n                    href = url\n                else:\n                    href = url + '?p=' + str(vlist[index]['page'])\n                videosource = {}\n                videosource['name'] = str(vlist[index]['page']) + ' - ' + vlist[index]['part']\n                # videosource['thumb'] = j['videoData']['pic']\n                videosource['href'] = plugin.url_for('play', name=(\n                        str(vlist[index]['page']) + ' - ' + vlist[index]['part']).encode('utf-8'), url=href)\n                #\n                sources.append(videosource)\n            return sources\n\n\n# 收藏分类列表\n\ndef get_collectlist(uid):\n    clists = []\n    apiheaders = {\n        'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36',\n        'Cookie': sessdata(),  # 登录B站后复制一下cookie中的SESSDATA字段,有效期1个月\n        'Host': 'api.bilibili.com'\n    }\n\n    r = get_html('https://api.bilibili.com/x/v3/fav/folder/created/list-all?up_mid=' + str(uid) + '&jsonp=jsonp',\n                 head=str(apiheaders), t=10)\n    j = json.loads(r)\n    try:\n        c = j['data']['list']\n        for index in range(len(c)):\n            source = {}\n            source['name'] = c[index]['title']\n            source['href'] = c[index]['id']\n            clists.append(source)\n    except TypeError:\n        dialog = xbmcgui.Dialog()\n        dialog.notification('获取不到收藏信息', '可能是sessdata已经过期', xbmcgui.NOTIFICATION_ERROR, 5000)\n    return clists\n\n\n# 收藏分类下视频列表\ndef get_collect(id, page):\n    clists = []\n    apiheaders = {\n        'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36',\n        'Cookie': sessdata(),  # 登录B站后复制一下cookie中的SESSDATA字段,有效期1个月\n        'Host': 'api.bilibili.com'\n    }\n    r = get_html('https://api.bilibili.com/x/v3/fav/resource/list?media_id=' + str(id) + '&pn=' + str(\n        page) + '&ps=20&keyword=&order=mtime&type=0&tid=0&jsonp=jsonp', head=str(apiheaders), t=10)\n    j = json.loads(r)\n    c = j['data']['medias']\n    for index in range(len(c)):\n        source = {}\n        source['name'] = c[index]['title']\n        source['thumb'] = c[index]['cover']\n        source['href'] = 'https://www.bilibili.com/video/' + c[index]['bvid']\n        clists.append(source)\n    dialog = xbmcgui.Dialog()\n    allnum = j['data']['info']['media_count']\n    allpage = int(int(allnum) / 20) + 1\n    dialog.notification('第' + str(page) + '/' + str(allpage) + '页', '共' + str(allnum) + '个视频',\n                        xbmcgui.NOTIFICATION_INFO, 5000, False)\n    return clists\n\n\n# 追番/追剧 mode=1 是追番列表 2是追剧列表\ndef get_zhui(uid, page, mode):\n    clists = []\n    apiheaders = {\n        'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36',\n        'Cookie': sessdata(),  # 登录B站后复制一下cookie中的SESSDATA字段,有效期1个月\n        'Host': 'api.bilibili.com'\n    }\n    r = get_html(\n        'https://api.bilibili.com/x/space/bangumi/follow/list?type=' + str(mode) + '&follow_status=0&pn=' + str(\n            page) + '&ps=30&vmid=' + str(uid), head=str(apiheaders), t=10)\n    j = json.loads(r)\n    try:\n        c = j['data']['list']\n        for index in range(len(c)):\n            source = {}\n            if c[index]['badge'] != '':\n                source['name'] = c[index]['title'] + ' [COLOR pink][' + c[index]['badge'] + '][/COLOR]'\n            else:\n                source['name'] = c[index]['title']\n            source['thumb'] = c[index]['cover']\n            source['href'] = 'https://www.bilibili.com/bangumi/play/ss' + str(c[index]['season_id'])\n            clists.append(source)\n        dialog = xbmcgui.Dialog()\n        allnum = j['data']['total']\n        allpage = int(int(allnum) / 30) + 1\n        dialog.notification('第' + str(page) + '/' + str(allpage) + '页', '共' + str(allnum) + '个节目',\n                            xbmcgui.NOTIFICATION_INFO, 5000, False)\n    except KeyError:\n        dialog = xbmcgui.Dialog()\n        dialog.notification('获取不到追番/追剧信息', '可能是sessdata已经过期', xbmcgui.NOTIFICATION_ERROR, 5000)\n    return clists\n\n\n@plugin.route('/play/<name>/<url>/')\ndef play(name, url):\n    ifbangumiurl = re.match('https://www.bilibili.com/bangumi/play/ep', url)\n    ifvideourl = re.match('https://www.bilibili.com/video/', url)\n    if ifbangumiurl or ifvideourl != None:\n        if ifbangumiurl != None:\n            # 番剧\n            items = []\n            if 'bgtitle' in cache:\n                ti = cache['bgtitle']\n                ti = ti.encode('utf-8')\n                gaoaotaiswitch = xbmcplugin.getSetting(int(sys.argv[1]), 'gaoaotaiswitch')\n                if re.search('僅限.*地區', ti) and gaoaotaiswitch == 'false':\n                    # gangaotai\n                    bgmqn = get_biliplus_bgmquality(url)\n                    plus = xbmcplugin.getSetting(int(sys.argv[1]), '1080pplusswitch')\n                    if sessdata(mode='vip') != '':\n                        if plus == 'true':\n                            if 112 in bgmqn:\n                                item = {'label': '[COLOR pink][大会员][/COLOR][1080p+]b站国外代理解析 [多谢 biliplus.com API]',\n                                        'path': plugin.url_for('api4', name=name, url=url, quality='112')}\n                                items.append(item)\n                    if 80 in bgmqn:\n                        item = {'label': '[1080p]b站国外代理解析 [多谢 biliplus.com API]',\n                                'path': plugin.url_for('api4', name=name, url=url, quality='80')}\n                        items.append(item)\n                    if 64 in bgmqn:\n                        item = {'label': '[720p]b站国外代理解析 [多谢 biliplus.com API]',\n                                'path': plugin.url_for('api4', name=name, url=url, quality='64')}\n                        items.append(item)\n                    if 32 in bgmqn:\n                        item = {'label': '[480p]b站国外代理解析 [多谢 biliplus.com API]',\n                                'path': plugin.url_for('api4', name=name, url=url, quality='32')}\n                        items.append(item)\n                        if re.search('僅限.*台.*地區', ti):\n                            item = {'label': '[480p]b站台湾代理解析 [多谢 kghost.info API]',\n                                    'path': plugin.url_for('api5', name=name, url=url, quality='32', api=1)}\n                            items.append(item)\n                        if re.search('僅限.*港.*地區', ti):\n                            item = {'label': '[480p]b站香港代理解析 [多谢 kghost.info API]',\n                                    'path': plugin.url_for('api5', name=name, url=url, quality='32', api=2)}\n                            items.append(item)\n                    if 16 in bgmqn:\n                        item = {'label': '[320p]b站国外代理解析 [多谢 biliplus.com API]',\n                                'path': plugin.url_for('api4', name=name, url=url, quality='16')}\n                        items.append(item)\n\n                        if re.search('僅限.*台.*地區', ti):\n                            item = {'label': '[320p]b站台湾代理解析 [多谢 kghost.info API]',\n                                    'path': plugin.url_for('api5', name=name, url=url, quality='16', api=1)}\n                            items.append(item)\n                        if re.search('僅限.*港.*地區', ti):\n                            item = {'label': '[320p]b站香港代理解析 [多谢 kghost.info API]',\n                                    'path': plugin.url_for('api5', name=name, url=url, quality='16', api=2)}\n                            items.append(item)\n                else:\n                    # dalu\n                    bgmqn = get_bgmquality(url)\n                    plus = xbmcplugin.getSetting(int(sys.argv[1]), '1080pplusswitch')\n                    if len(bgmqn) == 0:\n                        bgmqn = get_biliplus_bgmquality(url)\n                        # oversea users\n                        # 海外用户使用biliplus解析番剧\n                        if sessdata(mode='vip') != '':\n                            if plus == 'true':\n                                if 112 in bgmqn:\n                                    item = {'label': '[COLOR pink][大会员][/COLOR][1080p+]b站国外代理解析 [多谢 biliplus.com API]',\n                                            'path': plugin.url_for('api4', name=name, url=url, quality='112')}\n                                    items.append(item)\n                        if 80 in bgmqn:\n                            item = {'label': '[1080p]b站国外代理解析 [多谢 biliplus.com API]',\n                                    'path': plugin.url_for('api4', name=name, url=url, quality='80')}\n                            items.append(item)\n                        if 64 in bgmqn:\n                            item = {'label': '[720p]b站国外代理解析 [多谢 biliplus.com API]',\n                                    'path': plugin.url_for('api4', name=name, url=url, quality='64')}\n                            items.append(item)\n                        if 32 in bgmqn:\n                            item = {'label': '[480p]b站国外代理解析 [多谢 biliplus.com API]',\n                                    'path': plugin.url_for('api4', name=name, url=url, quality='32')}\n                            items.append(item)\n                        if 16 in bgmqn:\n                            item = {'label': '[320p]b站国外代理解析 [多谢 biliplus.com API]',\n                                    'path': plugin.url_for('api4', name=name, url=url, quality='16')}\n                            items.append(item)\n                    else:\n                        if sessdata(mode='vip') != '':\n                            if plus == 'true':\n                                if 112 in bgmqn:\n                                    item = {\n                                        'label': '[COLOR pink][大会员][/COLOR][1080p+]使用 b站官方api2 解析 [万分感谢 Henryhaohao]',\n                                        'path': plugin.url_for('api3', name=name, url=url, quality=112)}\n                                    items.append(item)\n                            if 80 in bgmqn:\n                                item = {'label': '[1080p]使用 b站官方api2 解析 [万分感谢 Henryhaohao]',\n                                        'path': plugin.url_for('api3', name=name, url=url, quality=80)}\n                                items.append(item)\n                            if 64 in bgmqn:\n                                item = {'label': '[720p]使用 b站官方api2 解析 [万分感谢 Henryhaohao]',\n                                        'path': plugin.url_for('api3', name=name, url=url, quality=64)}\n                                items.append(item)\n                        else:\n                            dialog = xbmcgui.Dialog()\n                            dialog.notification('未设置sessdata', '使用api2 720p以上解析，请在 高级功能 内填写sessdata',\n                                                xbmcgui.NOTIFICATION_WARNING, 5000)\n                        if 32 in bgmqn:\n                            item = {'label': '[480p]使用 b站官方api2 解析 [万分感谢 Henryhaohao]',\n                                    'path': plugin.url_for('api3', name=name, url=url, quality=32)}\n                            items.append(item)\n                        if 16 in bgmqn:\n                            item = {'label': '[320p]使用 b站官方api2 解析 [万分感谢 Henryhaohao]',\n                                    'path': plugin.url_for('api3', name=name, url=url, quality=16)}\n                            items.append(item)\n                    # item = {'label': '[480p][6分钟试看]使用 b站官方api3 解析','path': plugin.url_for('bangumiapi', name=name,url=url)}\n                    # items.append(item)\n            return items\n        else:\n            vidqn = get_vidquality(url)\n            # 视频\n            items = []\n            plus = xbmcplugin.getSetting(int(sys.argv[1]), '1080pplusswitch')\n            if sessdata(mode='vip') != '' and plus == 'true':\n                if 120 in vidqn:\n                    item = {'label': '[COLOR pink][大会员][/COLOR][4k]使用 b站官方api2 解析 [万分感谢 Henryhaohao]',\n                            'path': plugin.url_for('api3', name=name, url=url, quality=120)}\n                    items.append(item)\n                if 116 in vidqn:\n                    item = {'label': '[COLOR pink][大会员][/COLOR][1080p60]使用 b站官方api2 解析 [万分感谢 Henryhaohao]',\n                            'path': plugin.url_for('api3', name=name, url=url, quality=116)}\n                    items.append(item)\n                if 74 in vidqn:\n                    item = {'label': '[COLOR pink][大会员][/COLOR][720p60]使用 b站官方api2 解析 [万分感谢 Henryhaohao]',\n                            'path': plugin.url_for('api3', name=name, url=url, quality=74)}\n                    items.append(item)\n            if 80 in vidqn:\n                item = {'label': '[1080p]使用 b站官方api1 解析 [万分感谢 Henryhaohao]',\n                        'path': plugin.url_for('api1', name=name, url=url, quality=80)}\n                items.append(item)\n                if sessdata(mode='vip') != '':\n                    item = {'label': '[1080p]使用 b站官方api2 解析 [万分感谢 Henryhaohao]',\n                            'path': plugin.url_for('api3', name=name, url=url, quality=80)}\n                    items.append(item)\n            # item = {'label': '[原画]使用 xbeibeix.com api 解析','path': plugin.url_for('api2', name=name,url=url)}\n            # items.append(item)\n            if 64 in vidqn:\n                item = {'label': '[720p]使用 b站官方api1 解析 [万分感谢 Henryhaohao]',\n                        'path': plugin.url_for('api1', name=name, url=url, quality=64)}\n                items.append(item)\n                if sessdata(mode='vip') != '':\n                    item = {'label': '[720p]使用 b站官方api2 解析 [万分感谢 Henryhaohao]',\n                            'path': plugin.url_for('api3', name=name, url=url, quality=64)}\n                    items.append(item)\n            if 32 in vidqn:\n                item = {'label': '[480p]使用 b站官方api1 解析 [万分感谢 Henryhaohao]',\n                        'path': plugin.url_for('api1', name=name, url=url, quality=32)}\n                items.append(item)\n                item = {'label': '[480p]使用 b站官方api2 解析 [万分感谢 Henryhaohao]',\n                        'path': plugin.url_for('api3', name=name, url=url, quality=32)}\n                items.append(item)\n            if 16 in vidqn:\n                item = {'label': '[320p]使用 b站官方api1 解析 [万分感谢 Henryhaohao]',\n                        'path': plugin.url_for('api1', name=name, url=url, quality=16)}\n                items.append(item)\n                item = {'label': '[320p]使用 b站官方api2 解析 [万分感谢 Henryhaohao]',\n                        'path': plugin.url_for('api3', name=name, url=url, quality=16)}\n                items.append(item)\n\n            return items\n\n\n@plugin.route('/bangumiapi/<name>/<url>/')\n# 解析番剧地址\ndef bangumiapi(name, url):\n    j = get_bangumijson(url)\n    items = []\n    if j['code'] == 0:\n        k = j['result']['durl']\n        item = {'label': '[540P]' + name, 'path': k[0]['url'], 'is_playable': True}\n        items.append(item)\n    else:\n        if j['code'] == -10403:\n            # 大会员错误码\n            dialog = xbmcgui.Dialog()\n            ok = dialog.ok('错误提示', '此为大会员专享视频，无法解析')\n        else:\n            #\n            dialog = xbmcgui.Dialog()\n            ok = dialog.ok('错误提示', '未知的api错误代码,可能是b站官方更改了接口')\n    return items\n\n\n@plugin.route('/playvideo/<cid>/<url>/')\ndef playvideo(cid, url):\n    if xbmcplugin.getSetting(int(sys.argv[1]), 'damakustatus') == 'true':\n        dpath = xbmcplugin.getSetting(int(sys.argv[1]), 'damakufolder')\n\n        # 重启播放，避免弹幕不生效\n        player = xbmc.Player()\n        if player.isPlaying():\n            player.stop()\n\n        plugin.set_resolved_url(url, dpath + '/' + \"%s.ass\" % (str(cid)))\n    else:\n        plugin.set_resolved_url(url)\n\n\n# @plugin.route('/api1/<name>/<url>/<quality>/')\n# #使用api1\n# def api1(name,url,quality):\n#     mp4url = get_api1(url,quality)\n#     mp4info = get_mp4info(url)\n#     img = mp4info['img']\n#     items = []\n#     head = '|User-Agent=Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.122 Safari/537.36&Referer=https://www.bilibili.com&Range=bytes=0-&Connection=keep-alive&Origin=https://www.bilibili.com&Accept-Encoding=gzip, deflate, br'\n#     vlist = []\n#     for index in range(len(mp4url)):\n#         vlist.append(mp4url[index]+head)\n#     item = {'label': name+' - '+mp4info['title'].encode('utf-8'),'path': plugin.url_for('playvideo',vlist=str(vlist)),'info':mp4info,'info_type':'video','thumbnail': img,'icon': img}\n#     items.append(item)\n\n#     face = mp4info['face']\n#     item = {'label': '查看 [COLOR yellow]'+mp4info['upname'].encode('utf-8') +'[/COLOR] 的主页','path': plugin.url_for('up',uid=mp4info['uid'],page=1),'thumbnail': face,'icon': face}\n#     items.append(item)\n#     item = {'label': '评论区 [COLOR yellow]' + mp4info['reply'] + '[/COLOR]','path': plugin.url_for('conn',url=url)}\n#     items.append(item)\n\n#     return items\n\n@plugin.route('/api1/<name>/<url>/<quality>/')\n# 使用api1\ndef api1(name, url, quality):\n    cid, mp4url = get_api1(url, quality)\n    mp4info = get_mp4info(url)\n    img = mp4info['img']\n    items = []\n    head = '|User-Agent=Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.122 Safari/537.36&Referer=https://www.bilibili.com&Range=bytes=0-&Connection=keep-alive&Origin=https://www.bilibili.com&Accept-Encoding=gzip, deflate, br'\n    for index in range(len(mp4url)):\n        item = {'label': name + ' - ' + mp4info['title'].encode('utf-8'),\n                'path': plugin.url_for('playvideo', url=mp4url[index] + head, cid=cid),\n                # 'path': mp4url[index] + head,\n                'is_playable': True, 'info': mp4info,\n                'info_type': 'video',\n                'thumbnail': img,\n                'icon': img}\n        items.append(item)\n\n    face = mp4info['face']\n    item = {'label': '查看 [COLOR yellow]' + mp4info['upname'].encode('utf-8') + '[/COLOR] 的主页',\n            'path': plugin.url_for('up', uid=mp4info['uid'], page=1), 'thumbnail': face, 'icon': face}\n    items.append(item)\n    item = {'label': '评论区 [COLOR yellow]' + mp4info['reply'] + '[/COLOR]', 'path': plugin.url_for('conn', url=url)}\n    items.append(item)\n\n    return items\n\n\n@plugin.route('/api2/<name>/<url>/')\n# 使用api2\ndef api2(name, url):\n    cid, mp4url = get_api2(url)\n    dialog = xbmcgui.Dialog()\n    dialog.textviewer('错误提示', str(mp4url))\n    mp4info = get_mp4info(url)\n    img = mp4info['img']\n    items = []\n    head = '|User-Agent=Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.122 Safari/537.36&Referer=https://www.bilibili.com'\n    item = {'label': name + ' - ' + mp4info['title'].encode('utf-8'),\n            'path': plugin.url_for('playvideo', cid=cid, url=str(mp4url) + head), 'is_playable': True, 'info': mp4info,\n            'info_type': 'video', 'thumbnail': img, 'icon': img}\n    items.append(item)\n    face = mp4info['face']\n    item = {'label': '查看 [COLOR yellow]' + mp4info['upname'].encode('utf-8') + '[/COLOR] 的主页',\n            'path': plugin.url_for('up', uid=mp4info['uid'], page=1), 'thumbnail': face, 'icon': face}\n    items.append(item)\n    item = {'label': '评论区 [COLOR yellow]' + mp4info['reply'] + '[/COLOR]', 'path': plugin.url_for('conn', url=url)}\n    items.append(item)\n\n    return items\n\n\n@plugin.route('/api3/<name>/<url>/<quality>/')\n#\ndef api3(name, url, quality):\n    ifbangumiurl = re.match('https://www.bilibili.com/bangumi/play/ep', url)\n    ifvideourl = re.match('https://www.bilibili.com/video/', url)\n    if ifbangumiurl or ifvideourl != None:\n        if ifbangumiurl != None:\n            cid, mp4url = get_api3(url, quality)\n            mp4info = get_bangumiinfo(url)\n        if ifvideourl != None:\n            cid, mp4url = get_api3(url, quality)\n            mp4info = get_mp4info(url)\n\n    img = mp4info['img']\n    items = []\n    head = '|User-Agent=Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.122 Safari/537.36&Referer=https://www.bilibili.com'\n    for index in range(len(mp4url)):\n        item = {'label': name + ' - ' + mp4info['title'].encode('utf-8'),\n                'path': plugin.url_for('playvideo', cid=cid, url=mp4url[index] + head), 'is_playable': True,\n                'info': mp4info, 'info_type': 'video', 'thumbnail': img, 'icon': img}\n        items.append(item)\n    if ifvideourl != None:\n        face = mp4info['face']\n        item = {'label': '查看 [COLOR yellow]' + mp4info['upname'].encode('utf-8') + '[/COLOR] 的主页',\n                'path': plugin.url_for('up', uid=mp4info['uid'], page=1), 'thumbnail': face, 'icon': face}\n        items.append(item)\n    item = {'label': '评论区 [COLOR yellow]' + mp4info['reply'] + '[/COLOR]', 'path': plugin.url_for('conn', url=url)}\n    items.append(item)\n\n    return items\n\n\n# 代理解析1\n@plugin.route('/api4/<name>/<url>/<quality>/')\ndef api4(name, url, quality):\n    cid, mp4url = get_api4(url, quality)\n    mp4info = get_bangumiinfo(url)\n    mp4url = mp4url[0]\n    # if mp4url.find('upos-hz-mirrorakam.akamaized.net') != -1:\n    # mp4url = mp4url.replace('upos-hz-mirrorakam.akamaized.net','calm-meadow-79f1.zhengfan2014.workers.dev')\n    img = mp4info['img']\n    items = []\n    head = '|User-Agent=Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.122 Safari/537.36&Referer=https://www.bilibili.com'\n    item = {'label': name + ' - ' + mp4info['title'].encode('utf-8'),\n            'path': plugin.url_for('playvideo', cid=cid, url=mp4url + head), 'is_playable': True, 'info': mp4info,\n            'info_type': 'video', 'thumbnail': img, 'icon': img}\n    items.append(item)\n    item = {'label': '评论区 [COLOR yellow]' + mp4info['reply'] + '[/COLOR]', 'path': plugin.url_for('conn', url=url)}\n    items.append(item)\n    return items\n\n\n# 代理解析2\n@plugin.route('/api5/<name>/<url>/<quality>/<api>/')\ndef api5(name, url, quality, api):\n    cid, mp4url = get_api5(url, quality, api)\n    # dialog = xbmcgui.Dialog()\n    # dialog.textviewer('评论区',str(mp4url))\n    mp4info = get_bangumiinfo(url)\n    img = mp4info['img']\n    items = []\n    item = {'label': name + ' - ' + mp4info['title'].encode('utf-8'),\n            'path': plugin.url_for('playvideo', cid=cid, url=mp4url), 'is_playable': True, 'info': mp4info,\n            'info_type': 'video', 'thumbnail': img, 'icon': img}\n    items.append(item)\n    item = {'label': '评论区 [COLOR yellow]' + mp4info['reply'] + '[/COLOR]', 'path': plugin.url_for('conn', url=url)}\n    items.append(item)\n    return items\n\n\n@plugin.route('/sources/<url>/')\ndef sources(url):\n    sources = get_sources(url)\n    items = [{\n        'label': source['name'],\n        'path': source['href']\n        # 'is_playable': True\n    } for source in sources]\n    # sorted_items = sorted(items, key=lambda item: item['label'])\n    # sorted_items = sorted(sorted_items,key=lambda x:int(re.search('\\d+',x).group()),reverse = True)\n    # sorted_items = sorted(items, key=lambda item: item['label'])\n    return items[::-1]\n\n\n@plugin.route('/category/<url>/')\ndef category(url):\n    # dialog = xbmcgui.Dialog()\n    # ok = dialog.ok('错误提示', url)\n\n    videos = get_videos(url)\n    items = [{\n        'label': video['name'],\n        'path': plugin.url_for('sources', url=video['href']),\n        'thumbnail': video['thumb'],\n        'icon': video['thumb'],\n        'info': video['info'],\n    } for video in videos]\n    if re.search('one', url):\n        items.append({'label': '[COLOR yellow]查看之前的每周必看[/COLOR]', 'path': plugin.url_for('everyweek')})\n    sorted_items = items\n    # sorted_items = sorted(items, key=lambda item: item['label'])\n    return sorted_items\n\n\n@plugin.route('/everyweek/')\ndef everyweek():\n    # dialog = xbmcgui.Dialog()\n    # ok = dialog.ok('错误提示', url)\n    r = get_html('https://api.bilibili.com/x/web-interface/popular/series/list')\n    j = json.loads(r)\n    items = []\n    for i in range(len(j['data']['list'])):\n        items.append({'label': j['data']['list'][i]['name'] + u' : ' + j['data']['list'][i]['subject'],\n                      'path': plugin.url_for('category',\n                                             url='https://api.bilibili.com/x/web-interface/popular/series/one?number=' + str(\n                                                 j['data']['list'][i]['number'])),\n                      })\n\n    sorted_items = items\n    # sorted_items = sorted(items, key=lambda item: item['label'])\n    return sorted_items\n\n\n@plugin.route('/collectlist')\ndef collectlist():\n    # dialog = xbmcgui.Dialog()\n    # ok = dialog.ok('错误提示', url)\n    if uid() != '':\n        clists = get_collectlist(uid())\n        items = [{\n            'label': clist['name'],\n            'path': plugin.url_for('collect', id=clist['href'], page=1),\n        } for clist in clists]\n    else:\n        items = []\n\n    sorted_items = items\n    # sorted_items = sorted(items, key=lambda item: item['label'])\n    return sorted_items\n\n\n@plugin.route('/collect/<id>/<page>/')\ndef collect(id, page):\n    # dialog = xbmcgui.Dialog()\n    # ok = dialog.ok('错误提示', url)\n\n    clists = get_collect(id, page)\n    items = [{\n        'label': clist['name'],\n        'path': plugin.url_for('sources', url=clist['href']),\n        'thumbnail': clist['thumb'],\n        'icon': clist['thumb'],\n    } for clist in clists]\n    if len(clists) == 20:\n        items.append({\n            'label': u'[COLOR yellow]下一页[/COLOR]',\n            'path': plugin.url_for('collect', page=int(page) + 1, id=id),\n        })\n\n    sorted_items = items\n    # sorted_items = sorted(items, key=lambda item: item['label'])\n    return sorted_items\n\n\n@plugin.route('/zhui/<page>/<mode>/')\ndef zhui(page, mode):\n    # dialog = xbmcgui.Dialog()\n    # ok = dialog.ok('错误提示', url)\n    if uid() != '':\n        clists = get_zhui(uid(), page, mode)\n        items = [{\n            'label': clist['name'],\n            'path': plugin.url_for('sources', url=clist['href']),\n            'thumbnail': clist['thumb'],\n            'icon': clist['thumb'],\n        } for clist in clists]\n        if len(clists) == 30:\n            items.append({\n                'label': u'[COLOR yellow]下一页[/COLOR]',\n                'path': plugin.url_for('zhui', page=int(page) + 1, mode=mode),\n            })\n    else:\n        items = []\n    return items\n\n\n@plugin.route('/')\ndef index():\n    categories = get_categories()\n    items = []\n    for category in categories:\n        items.append({\n            'label': category['name'],\n            'path': plugin.url_for('category', url=category['link']),\n        })\n    items.append({\n        'label': u'[COLOR yellow]直播[/COLOR]',\n        'path': plugin.url_for('live'),\n    })\n    items.append({\n        'label': u'[COLOR yellow]收藏/追番[/COLOR]',\n        'path': plugin.url_for('my'),\n    })\n    items.append({\n        'label': u'[COLOR yellow]搜索/av/bv号[/COLOR]',\n        'path': plugin.url_for('sea'),\n    })\n    # items.append({\n    #     'label': u'[COLOR yellow]设置[/COLOR]',\n    #     'path': plugin.url_for('vip'),\n    # })\n    return items\n\n\n@plugin.route('/my/')\ndef my():\n    items = []\n    if uid() != '' and sessdata() != '':\n        items.append({\n            'label': u'收藏列表',\n            'path': plugin.url_for('collectlist'),\n        })\n        items.append({\n            'label': u'追番列表',\n            'path': plugin.url_for('zhui', page=1, mode=1),\n        })\n        items.append({\n            'label': u'追剧列表',\n            'path': plugin.url_for('zhui', page=1, mode=2),\n        })\n        items.append({\n            'label': u'投稿的视频',\n            'path': plugin.url_for('up', page=1, uid=uid()),\n        })\n    else:\n        items.append({\n            'label': u'请先设置uid和sessdata的值后，方可使用',\n            'path': 'error',\n        })\n    return items\n\n\n@plugin.route('/sea/')\ndef sea():\n    items = []\n    items.append({\n        'label': u'综合搜索',\n        'path': plugin.url_for('history', name='输入关键词搜索', url='search'),\n    })\n    items.append({\n        'label': u'搜索视频',\n        'path': plugin.url_for('history', name='输入关键词搜索视频', url='vidsearch'),\n    })\n    items.append({\n        'label': u'输入av或者bv号或者链接',\n        'path': plugin.url_for('history', name='输入av或者bv号或者链接打开视频', url='vid'),\n    })\n    items.append({\n        'label': u'搜索番剧',\n        'path': plugin.url_for('history', name='输入关键词搜索番剧', url='bgsearch'),\n    })\n    items.append({\n        'label': u'搜索影视',\n        'path': plugin.url_for('history', name='输入关键词搜索电影电视剧纪录片', url='movsearch'),\n    })\n    items.append({\n        'label': u'搜索up主',\n        'path': plugin.url_for('history', name='输入关键词搜索up主', url='upsearch'),\n    })\n    items.append({\n        'label': u'搜索正在直播的直播间',\n        'path': plugin.url_for('history', name='输入关键词搜索直播间（搜索主播名字进直播间请用搜索up主）', url='livesearch'),\n    })\n\n    items.append({\n        'label': u'输入房间号进入直播间',\n        'path': plugin.url_for('history', name='输入房间号进入直播间', url='roomid'),\n    })\n    return items\n\n\n@plugin.route('/search/<value>/<page>/')\ndef search(value, page):\n    items = []\n    if value != 'null' and int(page) != 1:\n        keyword = value\n    else:\n        keyboard = xbmc.Keyboard('', '请输入搜索内容')\n        xbmc.sleep(1500)\n        hi = his['search']\n        if value != 'null':\n            keyboard.setDefault(value)\n        keyboard.doModal()\n        if (keyboard.isConfirmed()):\n            keyword = keyboard.getText()\n            if keyword != '':\n                hi[keyword] = str(time.strftime(\"%Y-%m-%d %H:%M:%S\", time.localtime()))\n    try:\n        videos = get_search(keyword, page)\n        items = [{\n            'label': video['name'],\n            'path': plugin.url_for('sources', url=video['href']),\n            'thumbnail': video['thumb'],\n            'icon': video['thumb'],\n            'info': video['info']\n        } for video in videos]\n        if len(videos) >= 20:\n            items.append({\n                'label': u'[COLOR yellow]下一页[/COLOR]',\n                'path': plugin.url_for('vidsearch', page=int(page) + 1, value=value),\n            })\n        return items\n    except UnboundLocalError:\n        dialog = xbmcgui.Dialog()\n        dialog.notification('提示', '您取消了搜索', xbmcgui.NOTIFICATION_INFO, 5000, False)\n\n\n@plugin.route('/bgsearch/<value>/<page>/')\ndef bgsearch(value, page):\n    items = []\n    if value != 'null' and int(page) != 1:\n        keyword = value\n    else:\n        keyboard = xbmc.Keyboard('', '请输入搜索内容')\n        xbmc.sleep(1500)\n        hi = his['bgsearch']\n        if value != 'null':\n            keyboard.setDefault(value)\n        keyboard.doModal()\n        if (keyboard.isConfirmed()):\n            keyword = keyboard.getText()\n            if keyword != '':\n                hi[keyword] = str(time.strftime(\"%Y-%m-%d %H:%M:%S\", time.localtime()))\n    try:\n        videos = get_bgsearch(keyword, page)\n        items = [{\n            'label': video['name'],\n            'path': plugin.url_for('sources', url=video['href']),\n            'thumbnail': video['thumb'],\n            'icon': video['thumb'],\n            'info': video['info']\n        } for video in videos]\n        if len(videos) >= 20:\n            items.append({\n                'label': u'[COLOR yellow]下一页[/COLOR]',\n                'path': plugin.url_for('bgsearch', page=int(page) + 1, value=value),\n            })\n        return items\n    except UnboundLocalError:\n        dialog = xbmcgui.Dialog()\n        dialog.notification('提示', '您取消了搜索', xbmcgui.NOTIFICATION_INFO, 5000, False)\n\n\n@plugin.route('/movsearch/<value>/<page>/')\ndef movsearch(value, page):\n    items = []\n    if value != 'null' and int(page) != 1:\n        keyword = value\n    else:\n        keyboard = xbmc.Keyboard('', '请输入搜索内容')\n        xbmc.sleep(1500)\n        hi = his['movsearch']\n        if value != 'null':\n            keyboard.setDefault(value)\n        keyboard.doModal()\n        if (keyboard.isConfirmed()):\n            keyword = keyboard.getText()\n            if keyword != '':\n                hi[keyword] = str(time.strftime(\"%Y-%m-%d %H:%M:%S\", time.localtime()))\n    try:\n        videos = get_movsearch(keyword, page)\n        items = [{\n            'label': video['name'],\n            'path': plugin.url_for('sources', url=video['href']),\n            'thumbnail': video['thumb'],\n            'icon': video['thumb'],\n            'info': video['info']\n        } for video in videos]\n        if len(videos) >= 20:\n            items.append({\n                'label': u'[COLOR yellow]下一页[/COLOR]',\n                'path': plugin.url_for('movsearch', page=int(page) + 1, value=value),\n            })\n        return items\n    except UnboundLocalError:\n        dialog = xbmcgui.Dialog()\n        dialog.notification('提示', '您取消了搜索', xbmcgui.NOTIFICATION_INFO, 5000, False)\n\n\n@plugin.route('/vidsearch/<value>/<page>/')\ndef vidsearch(value, page):\n    items = []\n    if value != 'null' and int(page) != 1:\n        keyword = value\n    else:\n        keyboard = xbmc.Keyboard('', '请输入搜索内容')\n        xbmc.sleep(1500)\n        hi = his['vidsearch']\n        if value != 'null':\n            keyboard.setDefault(value)\n        keyboard.doModal()\n        if (keyboard.isConfirmed()):\n            keyword = keyboard.getText()\n            if keyword != '':\n                hi[keyword] = str(time.strftime(\"%Y-%m-%d %H:%M:%S\", time.localtime()))\n    try:\n        videos = get_vidsearch(keyword, page)\n        items = [{\n            'label': video['name'],\n            'path': plugin.url_for('sources', url=video['href']),\n            'thumbnail': video['thumb'],\n            'icon': video['thumb'],\n            'info': video['info']\n        } for video in videos]\n        if len(videos) >= 20:\n            items.append({\n                'label': u'[COLOR yellow]下一页[/COLOR]',\n                'path': plugin.url_for('vidsearch', page=int(page) + 1, value=value),\n            })\n        return items\n    except UnboundLocalError:\n        dialog = xbmcgui.Dialog()\n        dialog.notification('提示', '您取消了搜索', xbmcgui.NOTIFICATION_INFO, 5000, False)\n\n\n@plugin.route('/livesearch/<value>/<page>/')\ndef livesearch(value, page):\n    items = []\n    if value != 'null' and int(page) != 1:\n        keyword = value\n    else:\n        keyboard = xbmc.Keyboard('', '请输入搜索内容')\n        xbmc.sleep(1500)\n        hi = his['livesearch']\n        if value != 'null':\n            keyboard.setDefault(value)\n        keyboard.doModal()\n        if (keyboard.isConfirmed()):\n            keyword = keyboard.getText()\n            if keyword != '':\n                hi[keyword] = str(time.strftime(\"%Y-%m-%d %H:%M:%S\", time.localtime()))\n    try:\n        videos = get_livesearch(keyword, page)\n        items = [{\n            'label': video['name'],\n            'path': plugin.url_for('room', id=video['href']),\n            'thumbnail': video['thumb'],\n            'icon': video['thumb']\n        } for video in videos]\n        if len(videos) >= 40:\n            items.append({\n                'label': u'[COLOR yellow]下一页[/COLOR]',\n                'path': plugin.url_for('livesearch', page=int(page) + 1, value=value),\n            })\n        return items\n    except UnboundLocalError:\n        dialog = xbmcgui.Dialog()\n        dialog.notification('提示', '您取消了搜索', xbmcgui.NOTIFICATION_INFO, 5000, False)\n\n\n@plugin.route('/upsearch/<value>/<page>/')\ndef upsearch(value, page):\n    items = []\n    if value != 'null' and int(page) != 1:\n        keyword = value\n    else:\n        keyboard = xbmc.Keyboard('', '请输入搜索内容')\n        xbmc.sleep(1500)\n        hi = his['upsearch']\n        if value != 'null':\n            keyboard.setDefault(value)\n        keyboard.doModal()\n        if (keyboard.isConfirmed()):\n            keyword = keyboard.getText()\n            if keyword != '':\n                hi[keyword] = str(time.strftime(\"%Y-%m-%d %H:%M:%S\", time.localtime()))\n    try:\n        videos = get_upsearch(keyword, page)\n        items = [{\n            'label': video['name'],\n            'path': plugin.url_for('up', uid=video['href'], page=1),\n            'thumbnail': video['thumb'],\n            'icon': video['thumb']\n        } for video in videos]\n        if len(videos) >= 20:\n            items.append({\n                'label': u'[COLOR yellow]下一页[/COLOR]',\n                'path': plugin.url_for('upsearch', page=int(page) + 1, value=value),\n            })\n        return items\n    except UnboundLocalError:\n        dialog = xbmcgui.Dialog()\n        dialog.notification('提示', '您取消了搜索', xbmcgui.NOTIFICATION_INFO, 5000, False)\n\n\n@plugin.route('/vid/<value>/')\ndef vid(value):\n    keyboard = xbmc.Keyboard('', '请输入av号或者bv号或者url：')\n    xbmc.sleep(1500)\n    if value != 'null':\n        keyboard.setDefault(value)\n    keyboard.doModal()\n    hi = his['vid']\n    if (keyboard.isConfirmed()):\n        if re.search('[Bb]{1}[Vv]{1}[a-zA-Z0-9]+', keyboard.getText()) or re.search('[aA]{1}[vV]{1}[0-9]+',\n                                                                                    keyboard.getText()):\n            if re.search('[Bb]{1}[Vv]{1}[a-zA-Z0-9]+', keyboard.getText()):\n                keyword = re.search('[Bb]{1}[Vv]{1}[a-zA-Z0-9]+', keyboard.getText()).group()\n                dialog = xbmcgui.Dialog()\n                dialog.notification('BV号提取成功', keyword, xbmcgui.NOTIFICATION_INFO, 5000, False)\n                hi[keyword] = time.strftime(\"%Y-%m-%d %H:%M:%S\", time.localtime())\n            if re.search('[aA]{1}[vV]{1}[0-9]+', keyboard.getText()):\n                keyword = re.search('[aA]{1}[vV]{1}[0-9]+', keyboard.getText()).group()\n                dialog = xbmcgui.Dialog()\n                dialog.notification('AV号提取成功', keyword, xbmcgui.NOTIFICATION_INFO, 5000, False)\n                hi[keyword] = time.strftime(\"%Y-%m-%d %H:%M:%S\", time.localtime())\n            sources = get_sources('https://www.bilibili.com/video/' + str(keyword))\n            items = [{\n                'label': source['name'],\n                'path': source['href'],\n                # 'thumbnail': source['thumb'],\n                # 'icon': source['thumb'],\n            } for source in sources]\n            # sorted_items = sorted(items, key=lambda item: item['label'])\n            return items\n    else:\n        dialog = xbmcgui.Dialog()\n        dialog.notification('提示', '您取消了输入', xbmcgui.NOTIFICATION_INFO, 5000, False)\n\n\n@plugin.route('/roomid/<value>/')\ndef roomid(value):\n    if value == 'null':\n        keyboard = xbmc.Keyboard('', '请输入房间号(纯数字)：')\n        xbmc.sleep(1500)\n        keyboard.doModal()\n\n        hi = his['roomid']\n        if (keyboard.isConfirmed()):\n            keyword = keyboard.getText()\n            hi[keyword] = time.strftime(\"%Y-%m-%d %H:%M:%S\", time.localtime())\n    else:\n        keyword = value\n    items = []\n    id = int(keyword)\n    mp4list = get_roommp4(id)\n    mp4info = get_roominfo(id)\n    img = mp4info['img']\n\n    for index in range(len(mp4list)):\n        title = ''\n        if index == 0:\n            title += '[主线]'\n        else:\n            title += '[备线' + str(index) + ']'\n        title += '[原画]' + mp4info['title'].encode('utf-8')\n        item = {'label': title, 'path': mp4list[index], 'is_playable': True, 'info': mp4info, 'info_type': 'video',\n                'thumbnail': img, 'icon': img}\n        items.append(item)\n    if mp4info['status'] == '未开播':\n        item = {'label': '[未开播]' + rd_live_gz(), 'path': '0', 'is_playable': True, 'info': mp4info,\n                'info_type': 'video', 'thumbnail': img, 'icon': img}\n        items.append(item)\n    return items\n\n\n@plugin.route('/live/')\ndef live():\n    items = []\n    items.append({'label': '全部', 'path': plugin.url_for('livelist', page=1)})\n    videos = [{'name': '网游', 'url': plugin.url_for('livelistmore',\n                                                   url='https://api.live.bilibili.com/room/v3/area/getRoomList?platform=web&parent_area_id=2&cate_id=0&area_id=0&sort_type=sort_type_124&page_size=30&tag_version=1',\n                                                   page=1)},\n              {'name': '手游', 'url': plugin.url_for('livelistmore',\n                                                   url='https://api.live.bilibili.com/room/v3/area/getRoomList?platform=web&parent_area_id=3&cate_id=0&area_id=0&sort_type=sort_type_121&page_size=30&tag_version=1',\n                                                   page=1)},\n              {'name': '单机', 'url': plugin.url_for('livelistmore',\n                                                   url='https://api.live.bilibili.com/room/v3/area/getRoomList?platform=web&parent_area_id=6&cate_id=0&area_id=0&sort_type=sort_type_150&page_size=30&tag_version=1',\n                                                   page=1)},\n              {'name': '娱乐', 'url': plugin.url_for('livelistmore',\n                                                   url='https://api.live.bilibili.com/room/v3/area/getRoomList?platform=web&parent_area_id=1&cate_id=0&area_id=0&sort_type=sort_type_152&page_size=30&tag_version=1',\n                                                   page=1)},\n              {'name': '电台', 'url': plugin.url_for('livelistmore',\n                                                   url='https://api.live.bilibili.com/room/v3/area/getRoomList?platform=web&parent_area_id=5&cate_id=0&area_id=0&sort_type=income&page_size=30&tag_version=1',\n                                                   page=1)},\n              {'name': '绘画', 'url': plugin.url_for('livelistmore',\n                                                   url='https://api.live.bilibili.com/room/v3/area/getRoomList?platform=web&parent_area_id=4&cate_id=0&area_id=0&sort_type=sort_type_56&page_size=30&tag_version=1',\n                                                   page=1)}]\n    for video in videos:\n        items.append({'label': video['name'], 'path': video['url']})\n\n    return items\n\n\n@plugin.route('/livelist/<page>/')\ndef livelist(page):\n    items = []\n    videos = get_live(page)\n    items = [{\n        'label': video['name'],\n        'path': plugin.url_for('room', id=video['href']),\n        'thumbnail': video['thumb'],\n        'icon': video['thumb'],\n    } for video in videos]\n    if len(videos) == 30:\n        items.append({\n            'label': u'[COLOR yellow]下一页[/COLOR]',\n            'path': plugin.url_for('livelist', page=int(page) + 1),\n        })\n    return items\n\n\n@plugin.route('/livelistmore/<url>/<page>/')\ndef livelistmore(url, page):\n    items = []\n    videos = get_livemore(url, page)\n    items = [{\n        'label': video['name'],\n        'path': plugin.url_for('room', id=video['href']),\n        'thumbnail': video['thumb'],\n        'icon': video['thumb'],\n    } for video in videos]\n    if len(videos) == 30:\n        items.append({\n            'label': u'[COLOR yellow]下一页[/COLOR]',\n            'path': plugin.url_for('livelistmore', url=url, page=int(page) + 1),\n        })\n    return items\n\n\n@plugin.route('/room/<id>/')\ndef room(id):\n    items = []\n    mp4list = get_roommp4(id)\n    mp4info = get_roominfo(id)\n    img = mp4info['img']\n    for index in range(len(mp4list)):\n        title = ''\n        if index == 0:\n            title += '[主线]'\n        else:\n            title += '[备线' + str(index) + ']'\n        title += '[原画]' + mp4info['title'].encode('utf-8')\n        item = {'label': title, 'path': mp4list[index], 'is_playable': True, 'info': mp4info, 'info_type': 'video',\n                'thumbnail': img, 'icon': img}\n        items.append(item)\n    return items\n\n\n@plugin.route('/up/<uid>/<page>/')\ndef up(uid, page):\n    videos = get_up(uid, page)\n    items = []\n    if int(page) == 1:\n        u = json.loads(get_up_baseinfo(uid))\n        r = json.loads(get_up_roomold(uid))\n        items.append({\n            'label': u'关于[COLOR yellow]' + u['data']['name'] + u'[/COLOR]目前已知的情报',\n            'path': plugin.url_for(upinfo, uid=uid),\n            'thumbnail': u['data']['face'],\n            'icon': u['data']['face'],\n        })\n        if int(r['data']['liveStatus']) == 1:\n            livename = u'通往[COLOR yellow]' + u['data']['name'] + u'[/COLOR]的直播间:' + u'[COLOR red][·LIVE][/COLOR]' + \\\n                       r['data']['title']\n        else:\n            livename = u'[COLOR yellow]' + u['data']['name'] + u'[/COLOR]的直播间:' + u'[在线' + zh(\n                r['data']['online']).decode('utf-8') + u']' + u'[COLOR green][Close][/COLOR]' + r['data']['title']\n        items.append({\n            'label': livename,\n            'path': plugin.url_for(room, id=r['data']['roomid']),\n            'thumbnail': r['data']['cover'],\n            'icon': r['data']['cover'],\n        })\n    for video in videos:\n        items.append(\n            {'label': video['name'], 'path': plugin.url_for('sources', url=video['href']), 'thumbnail': video['thumb'],\n             'icon': video['thumb']})\n    if len(videos) == 30:\n        items.append({\n            'label': '[COLOR yellow]下一页[/COLOR]  ',\n            'path': plugin.url_for(up, uid=uid, page=int(page) + 1),\n        })\n\n    return items\n\n\n# @plugin.route('/liveplay/<url>/<q>/')\n# def liveplay(url,q):\n#     items = []\n#     q = eval(q)\n#     for index in range(len(q)):\n#         #qn = re.search('&qn=\\d+',url).group()\n#         #url = url.replace(qn,'&qn='+q[index]['qn'])\n#         item = {'label': q[index]['name'],'path': url+'&qn='+str(q[index]['qn']),'is_playable': True}\n#         items.append(item)\n\n#     return items\n\n@plugin.route('/input/<key>/<value>/')\ndef input(key, value):\n    keyboard = xbmc.Keyboard('', value)\n    xbmc.sleep(1500)\n    keyboard.doModal()\n    if (keyboard.isConfirmed()):\n        dialog = xbmcgui.Dialog()\n        ret = dialog.yesno('确认该值正确吗？', keyboard.getText())\n        if ret:\n            cache[key] = keyboard.getText()\n            dialog = xbmcgui.Dialog()\n            dialog.notification('提示', '保存成功', xbmcgui.NOTIFICATION_INFO, 5000, False)\n\n\n@plugin.route('/switch/<key>/')\ndef switch(key):\n    if cache[key] == 1:\n        cache[key] = 0\n    else:\n        cache[key] = 1\n\n\n@plugin.route('/conn/<url>/')\ndef conn(url):\n    text = '********************热门评论********************\\n'\n    text += get_comm(url, '2')\n    text += '\\n********************最新评论********************\\n'\n    text += get_comm(url, '1')\n    dialog = xbmcgui.Dialog()\n    dialog.textviewer('评论区', text)\n\n\n@plugin.route('/upinfo/<uid>/')\ndef upinfo(uid):\n    text = get_upinfo(uid)\n    dialog = xbmcgui.Dialog()\n    dialog.textviewer('评论区', text)\n\n\n@plugin.route('/labels/<label>/')\ndef show_label(label):\n    # 写抓取视频类表的方法\n    #\n    items = [\n        {'label': label},\n    ]\n    return items\n\n\ndef get_key(dict, value):\n    return [k for k, v in dict.items() if v == value]\n\n\n@plugin.route('/history/<name>/<url>/')\ndef history(name, url):\n    items = []\n    if url == 'search' or url == 'bgsearch' or url == 'movsearch' or url == 'vidsearch' or url == 'livesearch' or url == 'upsearch':\n        items.append({\n            'label': '[COLOR yellow]' + name + '[/COLOR]',\n            'path': plugin.url_for(url, value='null', page=1),\n        })\n    else:\n        items.append({\n            'label': '[COLOR yellow]' + name + '[/COLOR]',\n            'path': plugin.url_for(url, value='null'),\n        })\n    # his[url] ={'aaa':'2019-01-23 10:00:00','bbb':'2019-01-23 09:01:00','ccc':'2019-01-23 09:00:59'}\n    if url in his:\n        hi = his[url]\n\n    else:\n        his[url] = {}\n        hi = his[url]\n\n    # hi = []\n    if hi:\n        val = list(hi.values())\n        val = sorted(val, reverse=True)\n        for index in range(len(val)):\n            if url == 'search' or url == 'bgsearch' or url == 'vidsearch' or url == 'movsearch' or url == 'livesearch' or url == 'upsearch':\n                items.append({\n                    'label': name + ':' + get_key(hi, val[index])[0] + ' - [查询时间：' + val[index] + ']',\n                    'path': plugin.url_for(url, value=get_key(hi, val[index])[0], page=1),\n                })\n            else:\n                items.append({\n                    'label': name + ':' + get_key(hi, val[index])[0] + ' - [查询时间：' + val[index] + ']',\n                    'path': plugin.url_for(url, value=get_key(hi, val[index])[0]),\n                })\n        # for index in range(len(hi)):\n        # items.append({\n        # 'label': name+ ':' +hi[index],\n        # 'path': plugin.url_for(url,value=hi[index]),\n        # })\n        items.append({\n            'label': '[COLOR yellow]清除历史记录[/COLOR]',\n            'path': plugin.url_for('cleanhis', url=url),\n        })\n    else:\n        items.append({\n            'label': '[COLOR yellow]历史记录为空[/COLOR]',\n            'path': plugin.url_for(ok, value='历史记录为空'),\n        })\n\n    return items\n\n\n@plugin.route('/ok/<value>/')\ndef ok(value):\n    dialog = xbmcgui.Dialog()\n    ok = dialog.ok('提示', value)\n\n\n@plugin.route('/cleanhis/<url>/')\ndef cleanhis(url):\n    his[url] = {}\n    dialog = xbmcgui.Dialog()\n    ok = dialog.ok('提示', '清理历史记录成功')\n\n\nif __name__ == '__main__':\n    plugin.run()\n"
  },
  {
    "path": "plugin.video.bilibili/addon.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>\n<addon id=\"plugin.video.bilibili\" name=\"Bilibili\" version=\"0.5.8\" provider-name=\"zhengfan,shaolin-kongfu,YingjieSong,ArchieMeng\">\n  <requires>\n    <import addon=\"xbmc.python\" version=\"2.1.0\"/>\n    <import addon=\"script.module.xbmcswift2\" version=\"2.4.0\"/>\n  <import addon=\"script.module.beautifulsoup4\" version=\"4.5.3\"/>\n  <import addon=\"script.module.requests\" version=\"2.19.1\"/>\n  <import addon=\"script.module.html5lib\" version=\"0.999.0\"/>\n  </requires>\n  <extension point=\"xbmc.python.pluginsource\" library=\"addon.py\">\n    <provides>video</provides>\n  </extension>\n  <extension point=\"xbmc.python.module\" library=\"danmuku.py\"/>\n  <extension point=\"xbmc.python.module\" library=\"xml2ass.py\"/>\n  <extension point=\"xbmc.addon.metadata\">\n    <platform>all</platform>\n    <language></language>\n    <description>bilibili是国内知名的视频弹幕网站，这里有最及时的动漫新番，最棒的ACG氛围，最有创意的Up主。大家可以在这里找到许多欢乐</description>\n  </extension>\n</addon>\n"
  },
  {
    "path": "plugin.video.bilibili/danmuku.py",
    "content": "#!/usr/bin/env python\n# -*- coding:utf-8 -*-\n\nimport requests\nimport xml2ass\nimport os\nimport io\nimport shutil\n\n#获取文件后缀名\ndef suffix(fileName, *suffixName):\n    array = map(fileName.endswith, suffixName)\n    if True in array :\n        return True\n    else :\n        return False\n    \n#删除目录下扩展名为.ass的文件\ndef deleteFile(path):\n    target_dir = path\n    for root, dir_names, file_names in os.walk(target_dir):\n        for file in file_names:\n            target_file = os.path.join(root, file)\n            if suffix(file, '.ass','.xml'):\n                os.remove(target_file)\n            # 文件夹名字\n            if file == 'a':\n                shutil.rmtree(os.path.join(root, dir_names))\n\ndef Danmuku(cid,path):\n    path = path.replace('\\\\','/')\n#############在这里改路径####################\n\n#####PC端路径示例############################\n  # path = 'D:/ass'\n#####coreelec端路径示例############################\n    # path = '/storage/videos/ass'\n#############################################\n\n    if os.path.exists(path):\n        # shutil.rmtree(path)\n        # os.makedirs(path)\n        deleteFile(path)\n    else:\n        os.makedirs(path)\n    headers = {'user-agent' : 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.122 Safari/537.36'}\n    danmuku = requests.get('https://comment.bilibili.com/' + str(cid) + '.xml',headers = headers)\n    danmuku.encoding = 'utf-8'\n        # print(type(danmuku.text))\n    with io.open(path + '/' + str(cid)+'.xml', 'w',encoding = 'utf-8') as file:\n        file.write(danmuku.text)\n    file.close()\n    xml2ass.Danmaku2ASS(path+'/'+str(cid)+'.xml',path+'/'+str(cid)+'.ass',1920,540)\n    os.remove(path+'/'+str(cid)+'.xml')\n\n"
  },
  {
    "path": "plugin.video.bilibili/readme.md",
    "content": "# bilibili for kodi 0.5.6\n## 简介\n- bilibili是国内知名的视频弹幕网站，这里有最及时的动漫新番，最棒的ACG氛围，最有创意的Up主。大家可以在这里找到许多欢乐\n## 主要功能\n> - [x] 视频分类\n> - [x] 在线播放1080p视频\n> - [x] 在线播放1080p番剧\n> - [x] 支持仅限港澳台番剧\n> - [x] 支持观看直播\n> - [x] 使用官方api和第三方api解析视频\n> - [x] 强大的搜索功能，支持av，bv号\n> - [x] 缓存功能（减少向服务器请求次数）\n> - [x] 实现显示弹幕功能\n## 更新历史\n> -[v0.5.6]----------------------  \n > 新增 - 4K，1080p60，720p60等解析选项（需要大会员）  \n > 修改 - 调低视频解析api缓存时间 10分钟 - > 1 分钟（国内大会员视频无法解析，请尝试关闭翻墙或者，把bilibili.com加入不翻名单）   \n > 新增 - 搜索列表显示视频播放量，up主，番剧简介等信息  \n > 修复 - 番剧剧集的排序方式，从最新一集到第一集  \n > 新增 - 设置 - 海外模式，海外cdn替换，4k/1080p60显示开关  \n> -[v0.5.5]----------------------  \n > 修改 - 设置移动至 选项 - 插件设置  \n > 修复 - re 从零开始的异世界生活第二季番剧无法打开问题  \n > 新增 - 大会员解析设置  \n > 新增 - 弹幕ass文件保存位置设置  \n > 修改 - danmuku.py仅删除弹幕文件夹下所有xml和ass文件  \n > 新增 - 视频列表显示视频播放量，up主等信息  \n > 新增 - 知识区，国漫，纪录片等分类  \n> -[v0.5.4]----------------------  \n > 新增 - 弹幕显示功能 （自定义路径请前往danmuku.py设置path，默认为PC端D:\\ass）----------from:shaolin-kongfu  \n> -[v0.5.3]----------------------  \n > 修复 - 长视频只播放开头一段的问题（需要在 设置 - 播放器 - 开启 自动播放下一个视频 功能）  \n > 加回 - xbeibeix api  \n> -[v0.5.2]----------------------  \n > 修复 - 多P视频只放P1视频的问题  \n> -[v0.5.1]----------------------  \n > 修复 - 安卓端kodi无法使用的问题  \n > -[v0.5.0]----------------------  \n > 移除 - xbeibeix api  \n > 新增 - 显示视频简介，播放量，弹幕数，评论数等基本信息。  \n > 新增 - 娱乐功能:显示视频的白嫖率   \n > 新增 - 显示av号和bv号  \n > 新增 - 评论区功能  \n > 新增 - up个人主页，可查看它发过的所有视频，可以直接进入它的直播间，还可以查看它的个人信息  \n > 新增 - 一个官方api2用于解析视频和番剧，没有填写SESSDATA(未登陆)，只能播放720p以下视频，填写了可以看1080p。官方api1无需SESSDATA可解析1080p，仅限视频，番剧不可以。  \n > 新增 - 增加两个第三方api用于解析港澳台番剧，不过我建议各位不要抱太大期待，港澳台连接的国外服务器，速度可能慢到卡成ppt。有个b站大佬做过个一键筛选b站海外最快cdn的ip地址的工具，你们可以试下  \n > 新增 - 读取自己的收藏夹所有视频，追番列表，追剧列表，查看自己所有的投稿视频。(需要设置你b站号的SESSDATA和UID)，不然无法读取  \n > 新增 - 改进的搜索功能，能记录历史搜索，支持直接通过av号，bv号等等访问视频或者直播间  \n > 新增 - 支持观看b站直播，显示直播基本信息    \n > -[v0.4.0]----------------------  \n > 新增 - b站官方解析 （感谢github bilibili down 开源项目）  \n > 修复 - xbeibeix.com api （我求求你不要再改网页布局了，两天一改，这谁顶得住）  \n > -[v0.3.2]----------------------  \n > 修复 - xbeibeix api 变更post参数导致失败的问题  \n > 新增 - 缓存功能，短时间内的重复请求直接调用本地缓存的结果，减少向服务器的请求次数  \n > -[v0.3.1]----------------------  \n > 修复 - b站官方av改bv导致所有非番剧无法播放的问题  \n > 修复 - xbeibeix.com api 解析的显示  \n > 移除 - weibomiaopai.com的api  \n > -[v0.3.0]----------------------  \n > 修复 - 修改版本号到0.3.0，修复因为安装xbmc中文插件库而导致自动更新成0.2.9版本的taxigps的bilibili  \n > 修复 - bug（我忘了修了啥）  \n > 新增 - 搜索功能  \n## 使用到的开源项目\n- https://github.com/Henryhaohao/Bilibili_video_download\n## 使用到的第三方api\n- xbeibeix.com（0.5.0版本已移除）\n- weibomiaopai.com (0.3.1版本已移除)\n"
  },
  {
    "path": "plugin.video.bilibili/resources/__init__.py",
    "content": ""
  },
  {
    "path": "plugin.video.bilibili/resources/language/Chinese (Simple)/strings.po",
    "content": "msgid \"\"\nmsgstr \"\"\n\n#Chinese Simplified\n\nmsgctxt \"#32001\"\nmsgid \"Login Setting\"\nmsgstr \"登录设置\"\n\nmsgctxt \"#32002\"\nmsgid \"mainUid\"\nmsgstr \"主账号设置\"\n\nmsgctxt \"#32003\"\nmsgid \"Uid\"\nmsgstr \"登录Uid\"\n\nmsgctxt \"#32004\"\nmsgid \"SESSDATA\"\nmsgstr \"SESSDATA\"\n\nmsgctxt \"#32005\"\nmsgid \"vipUid\"\nmsgstr \"大会员账号\"\n\nmsgctxt \"#32006\"\nmsgid \"vipstatus\"\nmsgstr \"使用以下SESSDATA来解析大会员视频(该账号得有大会员)\"\n\nmsgctxt \"#32007\"\nmsgid \"VIPSESSDATA\"\nmsgstr \"SESSDATA\"\n\n\n\nmsgctxt \"#32101\"\nmsgid \"Function Setting\"\nmsgstr \"功能设置\"\n\nmsgctxt \"#32102\"\nmsgid \"zaxiang\"\nmsgstr \"杂项\"\n\nmsgctxt \"#32103\"\nmsgid \"baipiaolv\"\nmsgstr \"简介中显示视频白嫖率(仅供娱乐)\"\n\nmsgctxt \"#32110\"\nmsgid \"cachestatus\"\nmsgstr \"禁用缓存(当插件出现问题可尝试)\"\n\nmsgctxt \"#32104\"\nmsgid \"gat\"\nmsgstr \"港澳台相关\"\n\nmsgctxt \"#32105\"\nmsgid \"gangaotaiswitch\"\nmsgstr \"海外模式(使用官方api2来解析仅限港澳台番剧)\"\n\nmsgctxt \"#32106\"\nmsgid \"gangaotaiswitch\"\nmsgstr \"替换b站海外CDN(用于国内用户加速观看仅限港澳台番剧)\"\n\nmsgctxt \"#32107\"\nmsgid \"api\"\nmsgstr \"替换为...\"\n\nmsgctxt \"#32108\"\nmsgid \"api\"\nmsgstr \"解析相关\"\n\nmsgctxt \"#32109\"\nmsgid \"1080pplusswitch\"\nmsgstr \"显示大会员专享的清晰度(视频1080p60，720p60，番剧1080p+)\"\n\n\n\nmsgctxt \"#32201\"\nmsgid \"Damaku Setting\"\nmsgstr \"弹幕设置\"\n\nmsgctxt \"#32202\"\nmsgid \"damakustatus\"\nmsgstr \"启用内置弹幕功能\"\n\nmsgctxt \"#32203\"\nmsgid \"damakufolder\"\nmsgstr \"设置弹幕缓存文件夹\"\n\n\nmsgctxt \"#32301\"\nmsgid \"API Setting\"\nmsgstr \"API设置\"\n\nmsgctxt \"#32302\"\nmsgid \"BiliPlus\"\nmsgstr \"BiliPlus\"\n\nmsgctxt \"#32303\"\nmsgid \"accesskeyswitch\"\nmsgstr \"使用此access_key访问需要用户权限的操作\"\n\nmsgctxt \"#32304\"\nmsgid \"accesskey\"\nmsgstr \"access_key\" "
  },
  {
    "path": "plugin.video.bilibili/resources/language/English/strings.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?>\n<strings>\n  <!-- Plugin name -->\n  <string id=\"30000\">bilibili</string>\n</strings>\n"
  },
  {
    "path": "plugin.video.bilibili/resources/language/resource.language.en_us/strings.po",
    "content": "# flsusr <flsusr@a-ca.pro>, 2020.\nmsgid \"\"\nmsgstr \"\"\n\"Last-Translator: flsusr <flsusr@a-ca.pro>\\n\"\n\"PO-Revision-Date: 2020-12-11 10:57+0800\\n\"\n\"Project-Id-Version: \\n\"\n\"Language-Team: English <kde-i18n-doc@kde.org>\\n\"\n\"Language: en_AU\\n\"\n\"Content-Type: text/plain; charset=UTF-8\\n\"\n\"Content-Transfer-Encoding: 8bit\\n\"\n\"MIME-Version: 1.0\\n\"\n\"Plural-Forms: nplurals=2; plural=(n != 1);\\n\"\n\"X-Generator: Lokalize 20.08.3\\n\"\n\n#Chinese Simplified\nmsgctxt \"#32001\"\nmsgid \"Login Setting\"\nmsgstr \"Login Setting\"\n\nmsgctxt \"#32002\"\nmsgid \"mainUid\"\nmsgstr \"mainUid\"\n\nmsgctxt \"#32003\"\nmsgid \"Uid\"\nmsgstr \"Uid\"\n\nmsgctxt \"#32004\"\nmsgid \"SESSDATA\"\nmsgstr \"SESSDATA\"\n\nmsgctxt \"#32005\"\nmsgid \"vipUid\"\nmsgstr \"vipUid\"\n\nmsgctxt \"#32006\"\nmsgid \"vipstatus\"\nmsgstr \"vipstatus\"\n\nmsgctxt \"#32007\"\nmsgid \"VIPSESSDATA\"\nmsgstr \"VIPSESSDATA\"\n\nmsgctxt \"#32101\"\nmsgid \"Function Setting\"\nmsgstr \"Function Setting\"\n\nmsgctxt \"#32102\"\nmsgid \"zaxiang\"\nmsgstr \"Misc\"\n\nmsgctxt \"#32103\"\nmsgid \"baipiaolv\"\nmsgstr \"display free bang rate in intros(just for fun)\"\n\nmsgctxt \"#32110\"\nmsgid \"cachestatus\"\nmsgstr \"disable cache(try this if you have issues)\"\n\nmsgctxt \"#32104\"\nmsgid \"gat\"\nmsgstr \"HK, MO, TW\"\n\nmsgctxt \"#32105\"\nmsgid \"gangaotaiswitch\"\nmsgstr \"oversea mode(use official api2 to parse HK,MO,TW only series)\"\n\nmsgctxt \"#32106\"\nmsgid \"gangaotaiswitch\"\nmsgstr \"\"\n\"replace bilibili oversea CDN(For domestic users who want to improve HK,MO,TW\"\n\" series watching experience)\"\n\nmsgctxt \"#32107\"\nmsgid \"api\"\nmsgstr \"replace by...\"\n\nmsgctxt \"#32108\"\nmsgid \"api\"\nmsgstr \"Parser related\"\n\nmsgctxt \"#32109\"\nmsgid \"1080pplusswitch\"\nmsgstr \"Display big member only resolutions(1080p60，720p60，1080p+)\"\n\nmsgctxt \"#32201\"\nmsgid \"Damaku Setting\"\nmsgstr \"Damaku Setting\"\n\nmsgctxt \"#32202\"\nmsgid \"damakustatus\"\nmsgstr \"Damaku Status\"\n\nmsgctxt \"#32203\"\nmsgid \"damakufolder\"\nmsgstr \"Damaku Folder\"\n\nmsgctxt \"#32301\"\nmsgid \"API Setting\"\nmsgstr \"API Setting\"\n\nmsgctxt \"#32302\"\nmsgid \"BiliPlus\"\nmsgstr \"BiliPlus\"\n\nmsgctxt \"#32303\"\nmsgid \"accesskeyswitch\"\nmsgstr \"use this access_key for user privilege required operations\"\n\nmsgctxt \"#32304\"\nmsgid \"accesskey\"\nmsgstr \"access_key\"\n"
  },
  {
    "path": "plugin.video.bilibili/resources/language/resource.language.zh_cn/strings.po",
    "content": "msgid \"\"\nmsgstr \"\"\n\n#Chinese Simplified\n\nmsgctxt \"#32001\"\nmsgid \"Login Setting\"\nmsgstr \"登录设置\"\n\nmsgctxt \"#32002\"\nmsgid \"mainUid\"\nmsgstr \"主账号设置\"\n\nmsgctxt \"#32003\"\nmsgid \"Uid\"\nmsgstr \"登录Uid\"\n\nmsgctxt \"#32004\"\nmsgid \"SESSDATA\"\nmsgstr \"SESSDATA\"\n\nmsgctxt \"#32005\"\nmsgid \"vipUid\"\nmsgstr \"大会员账号\"\n\nmsgctxt \"#32006\"\nmsgid \"vipstatus\"\nmsgstr \"使用以下SESSDATA来解析大会员视频(该账号得有大会员)\"\n\nmsgctxt \"#32007\"\nmsgid \"VIPSESSDATA\"\nmsgstr \"SESSDATA\"\n\n\n\nmsgctxt \"#32101\"\nmsgid \"Function Setting\"\nmsgstr \"功能设置\"\n\nmsgctxt \"#32102\"\nmsgid \"zaxiang\"\nmsgstr \"杂项\"\n\nmsgctxt \"#32103\"\nmsgid \"baipiaolv\"\nmsgstr \"简介中显示视频白嫖率(仅供娱乐)\"\n\nmsgctxt \"#32110\"\nmsgid \"cachestatus\"\nmsgstr \"禁用缓存(当插件出现问题可尝试)\"\n\nmsgctxt \"#32104\"\nmsgid \"gat\"\nmsgstr \"港澳台相关\"\n\nmsgctxt \"#32105\"\nmsgid \"gangaotaiswitch\"\nmsgstr \"海外模式(使用官方api2来解析仅限港澳台番剧)\"\n\nmsgctxt \"#32106\"\nmsgid \"gangaotaiswitch\"\nmsgstr \"替换b站海外CDN(用于国内用户加速观看仅限港澳台番剧)\"\n\nmsgctxt \"#32107\"\nmsgid \"api\"\nmsgstr \"替换为...\"\n\nmsgctxt \"#32108\"\nmsgid \"api\"\nmsgstr \"解析相关\"\n\nmsgctxt \"#32109\"\nmsgid \"1080pplusswitch\"\nmsgstr \"显示大会员专享的清晰度(视频1080p60，720p60，番剧1080p+)\"\n\n\n\nmsgctxt \"#32201\"\nmsgid \"Damaku Setting\"\nmsgstr \"弹幕设置\"\n\nmsgctxt \"#32202\"\nmsgid \"damakustatus\"\nmsgstr \"启用内置弹幕功能\"\n\nmsgctxt \"#32203\"\nmsgid \"damakufolder\"\nmsgstr \"设置弹幕缓存文件夹\"\n\n\nmsgctxt \"#32301\"\nmsgid \"API Setting\"\nmsgstr \"API设置\"\n\nmsgctxt \"#32302\"\nmsgid \"BiliPlus\"\nmsgstr \"BiliPlus\"\n\nmsgctxt \"#32303\"\nmsgid \"accesskeyswitch\"\nmsgstr \"使用此access_key访问需要用户权限的操作\"\n\nmsgctxt \"#32304\"\nmsgid \"accesskey\"\nmsgstr \"access_key\" "
  },
  {
    "path": "plugin.video.bilibili/resources/lib/__init__.py",
    "content": ""
  },
  {
    "path": "plugin.video.bilibili/resources/settings.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?>\n<settings>\n    <category label=\"32001\">\n      <setting label=\"32002\" type=\"lsep\"/>\n\n      <setting id=\"uid\" type=\"text\" label=\"32003\" default=\"\"/>\n      <setting id=\"sessdata\" type=\"text\" label=\"32004\" default=\"\"/>\n\n      <setting label=\"32005\" type=\"lsep\"/>\n\n      <setting label=\"32006\" type=\"bool\" id=\"vipstatus\" default=\"false\"/>\n      <setting id=\"vipsessdata\" type=\"text\" label=\"32007\" default=\"\"/>\n    </category>   \n    <category label=\"32101\">\n\n    <setting label=\"32102\" type=\"lsep\"/>\n    <setting label=\"32103\" type=\"bool\" id=\"baipiao\" default=\"false\"/>\n    <setting label=\"32110\" type=\"bool\" id=\"cachestatus\" default=\"false\"/>\n\n    <setting label=\"32104\" type=\"lsep\"/>\n    <setting label=\"32105\" type=\"bool\" id=\"gaoaotaiswitch\" default=\"false\"/>\n    <setting type=\"sep\"/>\n    <setting label=\"32106\" type=\"bool\" id=\"cdnswitch\" default=\"false\"/>\n    <setting id=\"cdnreplace\" type=\"text\" label=\"32107\" default=\"upos-hz-mirrorakam.acgvideo.com\"/>\n\n    <setting label=\"32108\" type=\"lsep\"/>\n    <setting label=\"32109\" type=\"bool\" id=\"1080pplusswitch\" default=\"true\"/>\n    </category>  \n    <category label=\"32201\">\n    <setting label=\"32202\" type=\"bool\" id=\"damakustatus\" default=\"false\"/>\n    <setting label=\"32203\" type=\"folder\" id=\"damakufolder\" source=\"auto\" option=\"writeable\"/>\n    </category>  \n\n    <category label=\"32301\">\n    <setting label=\"32302\" type=\"lsep\"/>\n    <setting label=\"32303\" type=\"bool\" id=\"accesskeyswitch\" default=\"false\"/>\n    <setting id=\"accesskey\" type=\"text\" label=\"32304\" default=\"\"/>\n    </category>\n</settings>\n"
  },
  {
    "path": "plugin.video.bilibili/xml2ass.py",
    "content": "#!/usr/bin/env python\n# -*- coding:utf-8 -*-\n\n\n# The original author of this program, Danmaku2ASS, is StarBrilliant.\n# This file is released under General Public License version 3.\n# You should have received a copy of General Public License text alongside with\n# this program. If not, you can obtain it at http://gnu.org/copyleft/gpl.html .\n# This program comes with no warranty, the author will not be resopnsible for\n# any damage or problems caused by this program.\n\nimport argparse\nimport calendar\nimport gettext\nimport io\nimport json\nimport logging\nimport math\nimport os\nimport random\nimport re\nimport sys\nimport time\nimport xml.dom.minidom\n\nreload(sys)\nsys.setdefaultencoding('utf-8')\n\n# if sys.version_info < (3,):\n#     raise RuntimeError('at least Python 3.0 is required')\n\n#gettext.install('danmaku2ass', os.path.join(os.path.dirname(os.path.abspath(os.path.realpath(sys.argv[0] or 'locale'))), 'locale'))\n\ndef SeekZero(function):\n    def decorated_function(file_):\n        file_.seek(0)\n        try:\n            return function(file_)\n        finally:\n            file_.seek(0)\n    return decorated_function\n\n\ndef EOFAsNone(function):\n    def decorated_function(*args, **kwargs):\n        try:\n            return function(*args, **kwargs)\n        except EOFError:\n            return None\n    return decorated_function\n\n\n@SeekZero\n@EOFAsNone\ndef ProbeCommentFormat(f):\n    tmp = f.read(1)\n    if tmp == '[':\n        return 'Acfun'\n        # It is unwise to wrap a JSON object in an array!\n        # See this: http://haacked.com/archive/2008/11/20/anatomy-of-a-subtle-json-vulnerability.aspx/\n        # Do never follow what Acfun developers did!\n    elif tmp == '{':\n        tmp = f.read(14)\n        if tmp == '\"status_code\":':\n            return 'Tudou'\n        elif tmp == '\"root\":{\"total':\n            return 'sH5V'\n    elif tmp == '<':\n        tmp = f.read(1)\n        if tmp == '?':\n            tmp = f.read(38)\n            if tmp == 'xml version=\"1.0\" encoding=\"UTF-8\"?><p':\n                return 'Niconico'\n            elif tmp == 'xml version=\"1.0\" encoding=\"UTF-8\"?><i':\n                return 'Bilibili'\n            elif tmp == 'xml version=\"1.0\" encoding=\"utf-8\"?><i':\n                return 'Bilibili'  # tucao.cc, with the same file format as Bilibili\n            elif tmp == 'xml version=\"1.0\" encoding=\"Utf-8\"?>\\n<':\n                return 'Bilibili'  # Komica, with the same file format as Bilibili\n            elif tmp == 'xml version=\"1.0\" encoding=\"UTF-8\"?>\\n<':\n                return 'MioMio'\n        elif tmp == 'p':\n            return 'Niconico'  # Himawari Douga, with the same file format as Niconico Douga\n\n\n#\n# ReadComments**** protocol\n#\n# Input:\n#     f:         Input file\n#     fontsize:  Default font size\n#\n# Output:\n#     yield a tuple:\n#         (timeline, timestamp, no, comment, pos, color, size, height, width)\n#     timeline:  The position when the comment is replayed\n#     timestamp: The UNIX timestamp when the comment is submitted\n#     no:        A sequence of 1, 2, 3, ..., used for sorting\n#     comment:   The content of the comment\n#     pos:       0 for regular moving comment,\n#                1 for bottom centered comment,\n#                2 for top centered comment,\n#                3 for reversed moving comment\n#     color:     Font color represented in 0xRRGGBB,\n#                e.g. 0xffffff for white\n#     size:      Font size\n#     height:    The estimated height in pixels\n#                i.e. (comment.count('\\n')+1)*size\n#     width:     The estimated width in pixels\n#                i.e. CalculateLength(comment)*size\n#\n# After implementing ReadComments****, make sure to update ProbeCommentFormat\n# and CommentFormatMap.\n#\n\n\ndef ReadCommentsNiconico(f, fontsize):\n    NiconicoColorMap = {'red': 0xff0000, 'pink': 0xff8080, 'orange': 0xffcc00, 'yellow': 0xffff00, 'green': 0x00ff00, 'cyan': 0x00ffff, 'blue': 0x0000ff, 'purple': 0xc000ff, 'black': 0x000000, 'niconicowhite': 0xcccc99, 'white2': 0xcccc99, 'truered': 0xcc0033, 'red2': 0xcc0033, 'passionorange': 0xff6600, 'orange2': 0xff6600, 'madyellow': 0x999900, 'yellow2': 0x999900, 'elementalgreen': 0x00cc66, 'green2': 0x00cc66, 'marineblue': 0x33ffcc, 'blue2': 0x33ffcc, 'nobleviolet': 0x6633cc, 'purple2': 0x6633cc}\n    dom = xml.dom.minidom.parse(f)\n    comment_element = dom.getElementsByTagName('chat')\n    for comment in comment_element:\n        try:\n            c = str(comment.childNodes[0].wholeText)\n            if c.startswith('/'):\n                continue  # ignore advanced comments\n            pos = 0\n            color = 0xffffff\n            size = fontsize\n            for mailstyle in str(comment.getAttribute('mail')).split():\n                if mailstyle == 'ue':\n                    pos = 1\n                elif mailstyle == 'shita':\n                    pos = 2\n                elif mailstyle == 'big':\n                    size = fontsize*1.44\n                elif mailstyle == 'small':\n                    size = fontsize*0.64\n                elif mailstyle in NiconicoColorMap:\n                    color = NiconicoColorMap[mailstyle]\n            yield (max(int(comment.getAttribute('vpos')), 0)*0.01, int(comment.getAttribute('date')), int(comment.getAttribute('no')), c, pos, color, size, (c.count('\\n')+1)*size, CalculateLength(c)*size)\n        except (AssertionError, AttributeError, IndexError, TypeError, ValueError):\n            logging.warning(_('Invalid comment: %s') % comment.toxml())\n            continue\n\n\ndef ReadCommentsAcfun(f, fontsize):\n    comment_element = json.load(f)\n    for i, comment in enumerate(comment_element):\n        try:\n            p = str(comment['c']).split(',')\n            assert len(p) >= 6\n            assert p[2] in ('1', '2', '4', '5', '7')\n            size = int(p[3])*fontsize/25.0\n            if p[2] != '7':\n                c = str(comment['m']).replace('\\\\r', '\\n').replace('\\r', '\\n')\n                yield (float(p[0]), int(p[5]), i, c, {'1': 0, '2': 0, '4': 2, '5': 1}[p[2]], int(p[1]), size, (c.count('\\n')+1)*size, CalculateLength(c)*size)\n            else:\n                c = dict(json.loads(comment['m']))\n                yield (float(p[0]), int(p[5]), i, c, 'acfunpos', int(p[1]), size, 0, 0)\n        except (AssertionError, AttributeError, IndexError, TypeError, ValueError):\n            logging.warning(_('Invalid comment: %r') % comment)\n            continue\n\n\ndef ReadCommentsBilibili(f, fontsize):\n    dom = xml.dom.minidom.parse(f)\n    comment_element = dom.getElementsByTagName('d')\n    for i, comment in enumerate(comment_element):\n        try:\n            p = str(comment.getAttribute('p')).split(',')\n            assert len(p) >= 5\n            assert p[1] in ('1', '4', '5', '6', '7')\n            if p[1] != '7':\n                c = str(comment.childNodes[0].wholeText).replace('/n', '\\n')\n                size = int(p[2])*fontsize/25.0\n                yield (float(p[0]), int(p[4]), i, c, {'1': 0, '4': 2, '5': 1, '6': 3}[p[1]], int(p[3]), size, (c.count('\\n')+1)*size, CalculateLength(c)*size)\n            else:  # positioned comment\n                c = str(comment.childNodes[0].wholeText)\n                yield (float(p[0]), int(p[4]), i, c, 'bilipos', int(p[3]), int(p[2]), 0, 0)\n        except (AssertionError, AttributeError, IndexError, TypeError, ValueError):\n            logging.warning(_('Invalid comment: %s') % comment.toxml())\n            continue\n\n\ndef ReadCommentsTudou(f, fontsize):\n    comment_element = json.load(f)\n    for i, comment in enumerate(comment_element['comment_list']):\n        try:\n            assert comment['pos'] in (3, 4, 6)\n            c = str(comment['data'])\n            assert comment['size'] in (0, 1, 2)\n            size = {0: 0.64, 1: 1, 2: 1.44}[comment['size']]*fontsize\n            yield (int(comment['replay_time']*0.001), int(comment['commit_time']), i, c, {3: 0, 4: 2, 6: 1}[comment['pos']], int(comment['color']), size, (c.count('\\n')+1)*size, CalculateLength(c)*size)\n        except (AssertionError, AttributeError, IndexError, TypeError, ValueError):\n            logging.warning(_('Invalid comment: %r') % comment)\n            continue\n\n\ndef ReadCommentsMioMio(f, fontsize):\n    NiconicoColorMap = {'red': 0xff0000, 'pink': 0xff8080, 'orange': 0xffc000, 'yellow': 0xffff00, 'green': 0x00ff00, 'cyan': 0x00ffff, 'blue': 0x0000ff, 'purple': 0xc000ff, 'black': 0x000000}\n    dom = xml.dom.minidom.parse(f)\n    comment_element = dom.getElementsByTagName('data')\n    for i, comment in enumerate(comment_element):\n        try:\n            message = comment.getElementsByTagName('message')[0]\n            c = str(message.childNodes[0].wholeText)\n            pos = 0\n            size = int(message.getAttribute('fontsize'))*fontsize/25.0\n            yield (float(comment.getElementsByTagName('playTime')[0].childNodes[0].wholeText), int(calendar.timegm(time.strptime(comment.getElementsByTagName('times')[0].childNodes[0].wholeText, '%Y-%m-%d %H:%M:%S')))-28800, i, c, {'1': 0, '4': 2, '5': 1}[message.getAttribute('mode')], int(message.getAttribute('color')), size, (c.count('\\n')+1)*size, CalculateLength(c)*size)\n        except (AssertionError, AttributeError, IndexError, TypeError, ValueError):\n            logging.warning(_('Invalid comment: %s') % comment.toxml())\n            continue\n\n\ndef ReadCommentsSH5V(f, fontsize):\n    comment_element = json.load(f)\n    for i, comment in enumerate(comment_element[\"root\"][\"bgs\"]):\n        try:\n            c_at = str(comment['at'])\n            c_type = str(comment['type'])\n            c_date = str(comment['timestamp'])\n            c_color = str(comment['color'])\n            c = str(comment['text'])\n            size = fontsize\n            if c_type != '7':\n                yield (float(c_at), int(c_date), i, c, {'0': 0, '1': 0, '4': 2, '5': 1}[c_type], int(c_color[1:], 16), size, (c.count('\\n')+1)*size, CalculateLength(c)*size)\n            else:\n                c_x = float(comment['x'])\n                c_y = float(comment['y'])\n                size = int(comment['size'])\n                dur = int(comment['dur'])\n                data1 = float(comment['data1'])\n                data2 = float(comment['data2'])\n                data3 = int(comment['data3'])\n                data4 = int(comment['data4'])\n                yield (float(c_at), int(c_date), i, c, 'sH5Vpos', int(c_color[1:], 16), size, 0, 0, c_x, c_y, dur, data1, data2, data3, data4)\n        except (AssertionError, AttributeError, IndexError, TypeError, ValueError):\n            logging.warning(_('Invalid comment: %r') % comment)\n            continue\n\n\nCommentFormatMap = {None: None, 'Niconico': ReadCommentsNiconico, 'Acfun': ReadCommentsAcfun, 'Bilibili': ReadCommentsBilibili, 'Tudou': ReadCommentsTudou, 'MioMio': ReadCommentsMioMio, 'sH5V': ReadCommentsSH5V}\n\n\ndef WriteCommentBilibiliPositioned(f, c, width, height, styleid):\n    #BiliPlayerSize = (512, 384)  # Bilibili player version 2010\n    #BiliPlayerSize = (540, 384)  # Bilibili player version 2012\n    BiliPlayerSize = (672, 438)  # Bilibili player version 2014\n    ZoomFactor = GetZoomFactor(BiliPlayerSize, (width, height))\n\n    def GetPosition(InputPos, isHeight):\n        isHeight = int(isHeight)  # True -> 1\n        if isinstance(InputPos, int):\n            return ZoomFactor[0]*InputPos+ZoomFactor[isHeight+1]\n        elif isinstance(InputPos, float):\n            if InputPos > 1:\n                return ZoomFactor[0]*InputPos+ZoomFactor[isHeight+1]\n            else:\n                return BiliPlayerSize[isHeight]*ZoomFactor[0]*InputPos+ZoomFactor[isHeight+1]\n        else:\n            try:\n                InputPos = int(InputPos)\n            except ValueError:\n                InputPos = float(InputPos)\n            return GetPosition(InputPos, isHeight)\n\n    try:\n        comment_args = safe_list(json.loads(c[3]))\n        text = ASSEscape(str(comment_args[4]).replace('/n', '\\n'))\n        from_x = comment_args.get(0, 0)\n        from_y = comment_args.get(1, 0)\n        to_x = comment_args.get(7, from_x)\n        to_y = comment_args.get(8, from_y)\n        from_x = round(GetPosition(from_x, False))\n        from_y = round(GetPosition(from_y, True))\n        to_x = round(GetPosition(to_x, False))\n        to_y = round(GetPosition(to_y, True))\n        alpha = safe_list(str(comment_args.get(2, '1')).split('-'))\n        from_alpha = float(alpha.get(0, 1))\n        to_alpha = float(alpha.get(1, from_alpha))\n        from_alpha = 255-round(from_alpha*255)\n        to_alpha = 255-round(to_alpha*255)\n        rotate_z = int(comment_args.get(5, 0))\n        rotate_y = int(comment_args.get(6, 0))\n        lifetime = float(comment_args.get(3, 4500))\n        duration = int(comment_args.get(9, lifetime*1000))\n        delay = int(comment_args.get(10, 0))\n        fontface = comment_args.get(12)\n        isborder = comment_args.get(11, 'true')\n        styles = []\n        if (from_x, from_y) == (to_x, to_y):\n            styles.append('\\\\pos(%s, %s)' % (from_x, from_y))\n        else:\n            styles.append('\\\\move(%s, %s, %s, %s, %s, %s)' % (from_x, from_y, to_x, to_y, delay, delay+duration))\n        styles.append('\\\\frx%s\\\\fry%s\\\\frz%s\\\\fax%s\\\\fay%s' % ConvertFlashRotation(rotate_y, rotate_z, (from_x-ZoomFactor[1])/(width-ZoomFactor[1]*2), (from_y-ZoomFactor[2])/(height-ZoomFactor[2]*2)))\n        if (from_x, from_y) != (to_x, to_y):\n            styles.append('\\\\t(%s, %s, ' % (delay, delay+duration))\n            styles.append('\\\\frx%s\\\\fry%s\\\\frz%s\\\\fax%s\\\\fay%s' % ConvertFlashRotation(rotate_y, rotate_z, (to_x-ZoomFactor[1])/(width-ZoomFactor[1]*2), (to_y-ZoomFactor[2])/(height-ZoomFactor[2]*2)))\n            styles.append(')')\n        if fontface:\n            styles.append('\\\\fn%s' % ASSEscape(fontface))\n        styles.append('\\\\fs%s' % round(c[6]*ZoomFactor[0]))\n        if c[5] != 0xffffff:\n            styles.append('\\\\c&H%02X%02X%02X&' % (c[5] & 0xff, (c[5] >> 8) & 0xff, (c[5] >> 16) & 0xff))\n            if c[5] == 0x000000:\n                styles.append('\\\\3c&HFFFFFF&')\n        if from_alpha == to_alpha:\n            styles.append('\\\\alpha&H%02X' % from_alpha)\n        elif (from_alpha, to_alpha) == (255, 0):\n            styles.append('\\\\fad(%s,0)' % (lifetime*1000))\n        elif (from_alpha, to_alpha) == (0, 255):\n            styles.append('\\\\fad(0, %s)' % (lifetime*1000))\n        else:\n            styles.append('\\\\fade(%(from_alpha)s, %(to_alpha)s, %(to_alpha)s, 0, %(end_time)s, %(end_time)s, %(end_time)s)' % {'from_alpha': from_alpha, 'to_alpha': to_alpha, 'end_time': lifetime*1000})\n        if isborder == 'false':\n            styles.append('\\\\bord0')\n        f.write('Dialogue: -1,%(start)s,%(end)s,%(styleid)s,,0,0,0,,{%(styles)s}%(text)s\\n' % {'start': ConvertTimestamp(c[0]), 'end': ConvertTimestamp(c[0]+lifetime), 'styles': ''.join(styles), 'text': text, 'styleid': styleid})\n    except (IndexError, ValueError) as e:\n        try:\n            logging.warning(_('Invalid comment: %r') % c[3])\n        except IndexError:\n            logging.warning(_('Invalid comment: %r') % c)\n\n\ndef WriteCommentAcfunPositioned(f, c, width, height, styleid):\n    AcfunPlayerSize = (560, 400)\n    ZoomFactor = GetZoomFactor(AcfunPlayerSize, (width, height))\n\n    def GetPosition(InputPos, isHeight):\n        isHeight = int(isHeight)  # True -> 1\n        return AcfunPlayerSize[isHeight]*ZoomFactor[0]*InputPos*0.001+ZoomFactor[isHeight+1]\n\n    def GetTransformStyles(x=None, y=None, scale_x=None, scale_y=None, rotate_z=None, rotate_y=None, color=None, alpha=None):\n        styles = []\n        if x is not None and y is not None:\n            styles.append('\\\\pos(%s, %s)' % (x, y))\n        if scale_x is not None:\n            styles.append('\\\\fscx%s' % scale_x)\n        if scale_y is not None:\n            styles.append('\\\\fscy%s' % scale_y)\n        if rotate_z is not None and rotate_y is not None:\n            assert x is not None\n            assert y is not None\n            styles.append('\\\\frx%s\\\\fry%s\\\\frz%s\\\\fax%s\\\\fay%s' % ConvertFlashRotation(rotate_y, rotate_z, (x-ZoomFactor[1])/(width-ZoomFactor[1]*2), (y-ZoomFactor[2])/(height-ZoomFactor[2]*2)))\n        if color is not None:\n            styles.append('\\\\c&H%02X%02X%02X&' % (color & 0xff, (color >> 8) & 0xff, (color >> 16) & 0xff))\n            if color == 0x000000:\n                styles.append('\\\\3c&HFFFFFF&')\n        if alpha is not None:\n            alpha = 255-round(alpha*255)\n            styles.append('\\\\alpha&H%02X' % alpha)\n        return styles\n\n    def FlushCommentLine(f, text, styles, start_time, end_time, styleid):\n        if end_time > start_time:\n            f.write('Dialogue: -1,%(start)s,%(end)s,%(styleid)s,,0,0,0,,{%(styles)s}%(text)s\\n' % {'start': ConvertTimestamp(start_time), 'end': ConvertTimestamp(end_time), 'styles': ''.join(styles), 'text': text, 'styleid': styleid})\n\n    try:\n        comment_args = c[3]\n        text = ASSEscape(str(comment_args['n']).replace('\\r', '\\n').replace('\\r', '\\n'))\n        common_styles = []\n        anchor = {0: 7, 1: 8, 2: 9, 3: 4, 4: 5, 5: 6, 6: 1, 7: 2, 8: 3}.get(comment_args.get('c', 0), 7)\n        if anchor != 7:\n            common_styles.append('\\\\an%s' % anchor)\n        font = comment_args.get('w')\n        if font:\n            font = dict(font)\n            fontface = font.get('f')\n            if fontface:\n                common_styles.append('\\\\fn%s' % ASSEscape(str(fontface)))\n            fontbold = bool(font.get('b'))\n            if fontbold:\n                common_styles.append('\\\\b1')\n        common_styles.append('\\\\fs%s' % round(c[6]*ZoomFactor[0]))\n        isborder = bool(comment_args.get('b', True))\n        if not isborder:\n            common_styles.append('\\\\bord0')\n        to_pos = dict(comment_args.get('p', {'x': 0, 'y': 0}))\n        to_x = round(GetPosition(int(to_pos.get('x', 0)), False))\n        to_y = round(GetPosition(int(to_pos.get('y', 0)), True))\n        to_scale_x = round(float(comment_args.get('e', 1.0))*100)\n        to_scale_y = round(float(comment_args.get('f', 1.0))*100)\n        to_rotate_z = float(comment_args.get('r', 0.0))\n        to_rotate_y = float(comment_args.get('k', 0.0))\n        to_color = c[5]\n        to_alpha = float(comment_args.get('a', 1.0))\n        from_time = float(comment_args.get('t', 0.0))\n        action_time = float(comment_args.get('l', 3.0))\n        actions = list(comment_args.get('z', []))\n        transform_styles = GetTransformStyles(to_x, to_y, to_scale_x, to_scale_y, to_rotate_z, to_rotate_y, to_color, to_alpha)\n        FlushCommentLine(f, text, common_styles+transform_styles, c[0]+from_time, c[0]+from_time+action_time, styleid)\n        for action in actions:\n            action = dict(action)\n            from_x, from_y = to_x, to_y\n            from_scale_x, from_scale_y = to_scale_x, to_scale_y\n            from_rotate_z, from_rotate_y = to_rotate_z, to_rotate_y\n            from_color, from_alpha = to_color, to_alpha\n            from_time += action_time\n            action_time = float(action.get('l', 0.0))\n            action_styles = []\n            if 'x' in action:\n                to_x = round(GetPosition(int(action['x']), False))\n            if 'y' in action:\n                to_y = round(GetPosition(int(action['y']), True))\n            if 'f' in action:\n                to_scale_x = round(float(action['f'])*100)\n                action_styles.append('\\\\fscx%s' % to_scale_x)\n            if 'g' in action:\n                to_scale_y = round(float(action['g'])*100)\n                action_styles.append('\\\\fscy%s' % to_scale_y)\n            if 'c' in action:\n                to_color = int(action['c'])\n                action_styles.append('\\\\c&H%02X%02X%02X&' % (to_color & 0xff, (to_color >> 8) & 0xff, (to_color >> 16) & 0xff))\n            if 't' in action:\n                to_alpha = float(action['t'])\n                action_styles.append('\\\\alpha&H%02X' % (255-round(to_alpha*255)))\n            if 'd' in action:\n                to_rotate_z = float(action['d'])\n            if 'e' in action:\n                to_rotate_y = float(action['e'])\n            if ('x' in action) or ('y' in action):\n                transform_styles = GetTransformStyles(None, None, from_scale_x, from_scale_y, None, None, from_color, from_alpha)\n                transform_styles.append('\\\\move(%s, %s, %s, %s)' % (from_x, from_y, to_x, to_y))\n                action_styles.append('\\\\frx%s\\\\fry%s\\\\frz%s\\\\fax%s\\\\fay%s' % ConvertFlashRotation(to_rotate_y, to_rotate_z, (to_x-ZoomFactor[1])/(width-ZoomFactor[1]*2), (to_y-ZoomFactor[2])/(width-ZoomFactor[2]*2)))\n            elif ('d' in action) or ('e' in action):\n                action_styles.append('\\\\frx%s\\\\fry%s\\\\frz%s\\\\fax%s\\\\fay%s' % ConvertFlashRotation(to_rotate_y, to_rotate_z, (to_x-ZoomFactor[1])/(width-ZoomFactor[1]*2), (to_y-ZoomFactor[2])/(width-ZoomFactor[2]*2)))\n            else:\n                transform_styles = GetTransformStyles(from_x, from_y, from_scale_x, from_scale_y, from_rotate_z, from_rotate_y, from_color, from_alpha)\n            if action_styles:\n                transform_styles.append('\\\\t(%s)' % (''.join(action_styles)))\n            FlushCommentLine(f, text, common_styles+transform_styles, c[0]+from_time, c[0]+from_time+action_time, styleid)\n    except (IndexError, ValueError) as e:\n        logging.warning(_('Invalid comment: %r') % c[3])\n\n\ndef WriteCommentSH5VPositioned(f, c, width, height, styleid):\n\n    def GetTransformStyles(x=None, y=None, fsize=None, rotate_z=None, rotate_y=None, color=None, alpha=None):\n        styles = []\n        if x is not None and y is not None:\n            styles.append('\\\\pos(%s, %s)' % (x, y))\n        if fsize is not None:\n            styles.append('\\\\fs%s' % fsize)\n        if rotate_y is not None and rotate_z is not None:\n            styles.append('\\\\frz%s' % round(rotate_z))\n            styles.append('\\\\fry%s' % round(rotate_y))\n        if color is not None:\n            styles.append('\\\\c&H%02X%02X%02X&' % (color & 0xff, (color >> 8) & 0xff, (color >> 16) & 0xff))\n            if color == 0x000000:\n                styles.append('\\\\3c&HFFFFFF&')\n        if alpha is not None:\n            alpha = 255-round(alpha*255)\n            styles.append('\\\\alpha&H%02X' % alpha)\n        return styles\n\n    def FlushCommentLine(f, text, styles, start_time, end_time, styleid):\n        if end_time > start_time:\n            f.write('Dialogue: -1,%(start)s,%(end)s,%(styleid)s,,0,0,0,,{%(styles)s}%(text)s\\n' % {'start': ConvertTimestamp(start_time), 'end': ConvertTimestamp(end_time), 'styles': ''.join(styles), 'text': text, 'styleid': styleid})\n\n    try:\n        text = ASSEscape(str(c[3]))\n        to_x = round(float(c[9])*width)\n        to_y = round(float(c[10])*height)\n        to_rotate_z = -int(c[14])\n        to_rotate_y = -int(c[15])\n        to_color = c[5]\n        to_alpha = float(c[12])\n        #Note: Alpha transition hasn't been worked out yet.\n        to_size = round(int(c[6])*math.sqrt(width*height/307200))\n        #Note: Because sH5V's data is the absolute size of font,temporarily solve by it at present.[*math.sqrt(width/640*height/480)]\n        #But it seems to be working fine...\n        from_time = float(c[0])\n        action_time = float(c[11])/1000\n        transform_styles = GetTransformStyles(to_x, to_y, to_size, to_rotate_z, to_rotate_y, to_color, to_alpha)\n        FlushCommentLine(f, text, transform_styles, from_time, from_time+action_time, styleid)\n    except (IndexError, ValueError) as e:\n        logging.warning(_('Invalid comment: %r') % c[3])\n\n\n# Result: (f, dx, dy)\n# To convert: NewX = f*x+dx, NewY = f*y+dy\ndef GetZoomFactor(SourceSize, TargetSize):\n    try:\n        if (SourceSize, TargetSize) == GetZoomFactor.Cached_Size:\n            return GetZoomFactor.Cached_Result\n    except AttributeError:\n        pass\n    GetZoomFactor.Cached_Size = (SourceSize, TargetSize)\n    try:\n        SourceAspect = SourceSize[0]/SourceSize[1]\n        TargetAspect = TargetSize[0]/TargetSize[1]\n        if TargetAspect < SourceAspect:  # narrower\n            ScaleFactor = TargetSize[0]/SourceSize[0]\n            GetZoomFactor.Cached_Result = (ScaleFactor, 0, (TargetSize[1]-TargetSize[0]/SourceAspect)/2)\n        elif TargetAspect > SourceAspect:  # wider\n            ScaleFactor = TargetSize[1]/SourceSize[1]\n            GetZoomFactor.Cached_Result = (ScaleFactor, (TargetSize[0]-TargetSize[1]*SourceAspect)/2, 0)\n        else:\n            GetZoomFactor.Cached_Result = (TargetSize[0]/SourceSize[0], 0, 0)\n        return GetZoomFactor.Cached_Result\n    except ZeroDivisionError:\n        GetZoomFactor.Cached_Result = (1, 0, 0)\n        return GetZoomFactor.Cached_Result\n\n\n# Calculation is based on https://github.com/jabbany/CommentCoreLibrary/issues/5#issuecomment-40087282\n#                     and https://github.com/m13253/danmaku2ass/issues/7#issuecomment-41489422\n# Input: X relative horizonal coordinate: 0 for left edge, 1 for right edge.\n#        Y relative vertical coordinate: 0 for top edge, 1 for bottom edge.\n# FOV = 1.0/math.tan(100*math.pi/360.0)\n# Result: (rotX, rotY, rotZ, shearX, shearY)\ndef ConvertFlashRotation(rotY, rotZ, X, Y, FOV=math.tan(2*math.pi/9.0)):\n    def WrapAngle(deg):\n        return 180-((180-deg)%360)\n    def CalcPerspectiveCorrection(alpha, X, FOV=FOV):\n        alpha = WrapAngle(alpha)\n        if FOV is None:\n            return alpha\n        if 0 <= alpha <= 180:\n            costheta = (FOV*math.cos(alpha*math.pi/180.0)-X*math.sin(alpha*math.pi/180.0))/(FOV+max(2, abs(X)+1)*math.sin(alpha*math.pi/180.0))\n            try:\n                if costheta > 1:\n                    costheta = 1\n                    raise ValueError\n                elif costheta < -1:\n                    costheta = -1\n                    raise ValueError\n            except ValueError:\n                logging.error('Clipped rotation angle: (alpha=%s, X=%s), it is a bug!' % (alpha, X))\n            theta = math.acos(costheta)*180/math.pi\n        else:\n            costheta = (FOV*math.cos(alpha*math.pi/180.0)-X*math.sin(alpha*math.pi/180.0))/(FOV-max(2, abs(X)+1)*math.sin(alpha*math.pi/180.0))\n            try:\n                if costheta > 1:\n                    costheta = 1\n                    raise ValueError\n                elif costheta < -1:\n                    costheta = -1\n                    raise ValueError\n            except ValueError:\n                logging.error('Clipped rotation angle: (alpha=%s, X=%s), it is a bug!' % (alpha, X))\n            theta = -math.acos(costheta)*180/math.pi\n        return WrapAngle(theta)\n    X = 2*X-1\n    Y = 2*Y-1\n    rotY = WrapAngle(rotY)\n    rotZ = WrapAngle(rotZ)\n    if rotY == 0 or rotZ == 0:\n        outX = 0\n        outY = -rotY  # Positive value means clockwise in Flash\n        outZ = -rotZ\n    else:\n        rotY = rotY*math.pi/180.0\n        rotZ = rotZ*math.pi/180.0\n        outY = math.atan2(-math.sin(rotY)*math.cos(rotZ), math.cos(rotY))*180/math.pi\n        outZ = math.atan2(-math.cos(rotY)*math.sin(rotZ), math.cos(rotZ))*180/math.pi\n        outX = math.asin(math.sin(rotY)*math.sin(rotZ))*180/math.pi\n    if FOV is not None:\n        #outX = CalcPerspectiveCorrection(outX, -Y, FOV*0.75)\n        outY = CalcPerspectiveCorrection(outY, X, FOV)\n    return (WrapAngle(round(outX)), WrapAngle(round(outY)), WrapAngle(round(outZ)), 0, round(-0.75*Y*math.sin(outY*math.pi/180.0), 3))\n\n\ndef ProcessComments(comments, f, width, height, bottomReserved, fontface, fontsize, alpha, lifetime, reduced, progress_callback):\n    styleid = 'Danmaku2ASS_%04x' % random.randint(0, 0xffff)\n    WriteASSHead(f, width, height, fontface, fontsize, alpha, styleid)\n    rows = [[None]*(height-bottomReserved+1) for i in range(4)]\n    for idx, i in enumerate(comments):\n        if progress_callback and idx % 1000 == 0:\n            progress_callback(idx, len(comments))\n        if isinstance(i[4], int):\n            row = 0\n            rowmax = height-bottomReserved-i[7]\n            while row <= rowmax:\n                freerows = TestFreeRows(rows, i, row, width, height, bottomReserved, lifetime)\n                if freerows >= i[7]:\n                    MarkCommentRow(rows, i, row)\n                    WriteComment(f, i, row, width, height, bottomReserved, fontsize, lifetime, styleid)\n                    break\n                else:\n                    row += freerows or 1\n            else:\n                if not reduced:\n                    row = FindAlternativeRow(rows, i, height, bottomReserved)\n                    MarkCommentRow(rows, i, row)\n                    WriteComment(f, i, row, width, height, bottomReserved, fontsize, lifetime, styleid)\n        elif i[4] == 'bilipos':\n            WriteCommentBilibiliPositioned(f, i, width, height, styleid)\n        elif i[4] == 'acfunpos':\n            WriteCommentAcfunPositioned(f, i, width, height, styleid)\n        elif i[4] == 'sH5Vpos':\n            WriteCommentSH5VPositioned(f, i, width, height, styleid)\n        else:\n            logging.warning(_('Invalid comment: %r') % i[3])\n    if progress_callback:\n        progress_callback(len(comments), len(comments))\n\n\ndef TestFreeRows(rows, c, row, width, height, bottomReserved, lifetime):\n    res = 0\n    rowmax = height-bottomReserved\n    targetRow = None\n    if c[4] in (1, 2):\n        while row < rowmax and res < c[7]:\n            if targetRow != rows[c[4]][row]:\n                targetRow = rows[c[4]][row]\n                if targetRow and targetRow[0]+lifetime > c[0]:\n                    break\n            row += 1\n            res += 1\n    else:\n        try:\n            thresholdTime = c[0]-lifetime*(1-width/(c[8]+width))\n        except ZeroDivisionError:\n            thresholdTime = c[0]-lifetime\n        while row < rowmax and res < c[7]:\n            if targetRow != rows[c[4]][row]:\n                targetRow = rows[c[4]][row]\n                try:\n                    if targetRow and (targetRow[0] > thresholdTime or targetRow[0]+targetRow[8]*lifetime/(targetRow[8]+width) > c[0]):\n                        break\n                except ZeroDivisionError:\n                    pass\n            row += 1\n            res += 1\n    return res\n\n\ndef FindAlternativeRow(rows, c, height, bottomReserved):\n    res = 0\n    for row in range(int(height-bottomReserved-math.ceil(c[7]))):\n        if not rows[c[4]][row]:\n            return row\n        elif rows[c[4]][row][0] < rows[c[4]][res][0]:\n            res = row\n    return res\n\n\ndef MarkCommentRow(rows, c, row):\n    try:\n        for i in range(int(row), int(row+math.ceil(c[7]))):\n            rows[c[4]][i] = c\n    except IndexError:\n        pass\n\n\ndef WriteASSHead(f, width, height, fontface, fontsize, alpha, styleid):\n\n    f.write((\n'''\n[Script Info]\n; Script generated by Danmaku2ASS\n; https://github.com/m13253/danmaku2ass\nScript Updated By: Danmaku2ASS (https://github.com/m13253/danmaku2ass)\nScriptType: v4.00+\nWrapStyle: 2\nCollisions: Normal\nPlayResX: %(width)s\nPlayResY: %(height)s\nScaledBorderAndShadow: yes\n[V4+ Styles]\nFormat: Name, Fontname, Fontsize, PrimaryColour, SecondaryColour, OutlineColour, BackColour, Bold, Italic, Underline, StrikeOut, ScaleX, ScaleY, Spacing, Angle, BorderStyle, Outline, Shadow, Alignment, MarginL, MarginR, MarginV, Encoding\nStyle: %(styleid)s, %(fontface)s, %(fontsize)s, &H%(alpha)02XFFFFFF, &H%(alpha)02XFFFFFF, &H%(alpha)02X000000, &H%(alpha)02X000000, 0, 0, 0, 0, 100, 100, 0.00, 0.00, 1, %(outline)s, 0, 7, 0, 0, 0, 0\n[Events]\nFormat: Layer, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text\n''' % {'width': width, 'height': height, 'fontface': fontface, 'fontsize': round(fontsize), 'alpha': 255-round(alpha*255), 'outline': round(fontsize/25), 'styleid': styleid}).decode('utf-8'))\n\n\ndef WriteComment(f, c, row, width, height, bottomReserved, fontsize, lifetime, styleid):\n    text = ASSEscape(c[3])\n    styles = []\n    if c[4] == 1:\n        styles.append('\\\\an8\\\\pos(%(halfwidth)s, %(row)s)' % {'halfwidth': round(width/2), 'row': row})\n    elif c[4] == 2:\n        styles.append('\\\\an2\\\\pos(%(halfwidth)s, %(row)s)' % {'halfwidth': round(width/2), 'row': ConvertType2(row, height, bottomReserved)})\n    elif c[4] == 3:\n        styles.append('\\\\move(%(neglen)s, %(row)s, %(width)s, %(row)s)' % {'width': width, 'row': row, 'neglen': -math.ceil(c[8])})\n    else:\n        styles.append('\\\\move(%(width)s, %(row)s, %(neglen)s, %(row)s)' % {'width': width, 'row': row, 'neglen': -math.ceil(c[8])})\n    if not (-1 < c[6]-fontsize < 1):\n        styles.append('\\\\fs%s' % round(c[6]))\n    if c[5] != 0xffffff:\n        styles.append('\\\\c&H%02X%02X%02X&' % (c[5] & 0xff, (c[5] >> 8) & 0xff, (c[5] >> 16) & 0xff))\n        if c[5] == 0x000000:\n            styles.append('\\\\3c&HFFFFFF&')\n    f.write(('Dialogue: 2,%(start)s,%(end)s,%(styleid)s,,0000,0000,0000,,{%(styles)s}%(text)s\\n' % {'start': ConvertTimestamp(c[0]), 'end': ConvertTimestamp(c[0]+lifetime), 'styles': ''.join(styles), 'text': text, 'styleid': styleid}).decode('utf-8'))\n\n\ndef ASSEscape(s):\n    return '\\\\N'.join((i or ' ' for i in str(s).replace('\\\\', '\\\\\\\\').replace('{', '\\\\{').replace('}', '\\\\}').split('\\n')))\n\n\ndef CalculateLength(s):\n    return max(map(len, s.split('\\n')))  # May not be accurate\n\n\ndef ConvertTimestamp(timestamp):\n    timestamp = round(timestamp*100.0)\n    hour, minute = divmod(timestamp, 360000)\n    minute, second = divmod(minute, 6000)\n    second, centsecond = divmod(second, 100)\n    return '%d:%02d:%02d.%02d' % (int(hour), int(minute), int(second), int(centsecond))\n\n\ndef ConvertType2(row, height, bottomReserved):\n    return height-bottomReserved-row\n\n\ndef ConvertToFile(filename_or_file, *args, **kwargs):\n    if isinstance(filename_or_file, bytes):\n        filename_or_file = str(bytes(filename_or_file).decode('utf-8', 'replace'))\n    if isinstance(filename_or_file, str):\n        return io.open(filename_or_file, *args, **kwargs)\n    else:\n        return filename_or_file\n\n\ndef FilterBadChars(f):\n    s = f.read()\n    s = re.sub('[\\\\x00-\\\\x08\\\\x0b\\\\x0c\\\\x0e-\\\\x1f]', '\\ufffd', s)\n    return io.StringIO(s)\n\n\nclass safe_list(list):\n    def get(self, index, default=None):\n        try:\n            return self[index]\n        except IndexError:\n            return default\n\n\ndef export(func):\n    global __all__\n    try:\n        __all__.append(func.__name__)\n    except NameError:\n        __all__ = [func.__name__]\n    return func\n\n\n@export\n#修改弹幕字体与速度\ndef Danmaku2ASS(input_files, output_file, stage_width, stage_height, reserve_blank=0, font_face=('(FONT) Microsoft YaHei')[7:], font_size=30.0, text_opacity=1.0, comment_duration=8.0, is_reduce_comments=False, progress_callback=None):\n    fo = None\n    comments = ReadComments(input_files, font_size)\n    try:\n        if output_file:\n            fo = ConvertToFile(output_file, 'w', encoding='utf-8-sig', errors='replace', newline='\\r\\n')\n        else:\n            fo = sys.stdout\n        ProcessComments(comments, fo, stage_width, stage_height, reserve_blank, font_face, font_size, text_opacity, comment_duration, is_reduce_comments, progress_callback)\n    finally:\n        if output_file and fo != output_file:\n            fo.close()\n\n\n@export\ndef ReadComments(input_files, font_size=25.0, progress_callback=None):\n    if isinstance(input_files, bytes):\n        input_files = str(bytes(input_files).decode('utf-8', 'replace'))\n    if isinstance(input_files, str):\n        input_files = [input_files]\n    else:\n        input_files = list(input_files)\n    comments = []\n    for idx, i in enumerate(input_files):\n        if progress_callback:\n            progress_callback(idx, len(input_files))\n        with ConvertToFile(i, 'r', encoding='utf-8', errors='replace') as f:\n            CommentProcessor = GetCommentProcessor(f)\n            if not CommentProcessor:\n                raise ValueError(_('Unknown comment file format: %s') % i)\n            comments.extend(CommentProcessor(FilterBadChars(f), font_size))\n    if progress_callback:\n        progress_callback(len(input_files), len(input_files))\n    comments.sort()\n    return comments\n\n\n@export\ndef GetCommentProcessor(input_file):\n    return CommentFormatMap[ProbeCommentFormat(input_file)]\n\n\ndef main():\n    if len(sys.argv) == 1:\n        sys.argv.append('--help')\n    parser = argparse.ArgumentParser()\n    parser.add_argument('-o', '--output', metavar=_('OUTPUT'), help=_('Output file'))\n    parser.add_argument('-s', '--size', metavar=_('WIDTHxHEIGHT'), required=True, help=_('Stage size in pixels'))\n    parser.add_argument('-fn', '--font', metavar=_('FONT'), help=_('Specify font face [default: %s]') % _('(FONT) sans-serif')[7:], default=_('(FONT) sans-serif')[7:])\n    parser.add_argument('-fs', '--fontsize', metavar=_('SIZE'), help=(_('Default font size [default: %s]') % 25), type=float, default=25.0)\n    parser.add_argument('-a', '--alpha', metavar=_('ALPHA'), help=_('Text opacity'), type=float, default=1.0)\n    parser.add_argument('-l', '--lifetime', metavar=_('SECONDS'), help=_('Duration of comment display [default: %s]') % 5, type=float, default=5.0)\n    parser.add_argument('-p', '--protect', metavar=_('HEIGHT'), help=_('Reserve blank on the bottom of the stage'), type=int, default=0)\n    parser.add_argument('-r', '--reduce', action='store_true', help=_('Reduce the amount of comments if stage is full'))\n    parser.add_argument('file', metavar=_('FILE'), nargs='+', help=_('Comment file to be processed'))\n    args = parser.parse_args()\n    try:\n        width, height = str(args.size).split('x', 1)\n        width = int(width)\n        height = int(height)\n    except ValueError:\n        raise ValueError(_('Invalid stage size: %r') % args.size)\n    Danmaku2ASS(args.file, args.output, width, height, args.protect, args.font, args.fontsize, args.alpha, args.lifetime, args.reduce)\n\n\nif __name__ == '__main__':\n    main()"
  },
  {
    "path": "plugin.video.bimibimi[停止更新]/addon.py",
    "content": "#!/usr/bin/env python\n# -*- coding:utf-8 -*-\nimport re\nfrom xbmcswift2 import Plugin\nimport requests\nfrom bs4 import BeautifulSoup\nimport xbmcgui\nimport base64\nimport json\nimport urllib2\nimport sys\nimport HTMLParser\nimport re\n\n\n\ndef unescape(string):\n    string = urllib2.unquote(string).decode('utf8')\n    quoted = HTMLParser.HTMLParser().unescape(string).encode('utf-8')\n    #转成中文\n    return re.sub(r'%u([a-fA-F0-9]{4}|[a-fA-F0-9]{2})', lambda m: unichr(int(m.group(1), 16)), quoted)\n\n\nplugin = Plugin()\n\nuseragent = 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.122 Safari/537.36'\nheaders = {'user-agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.122 Safari/537.36'}\n\n\ndef get_categories():\n    return [{'name':'新番放送','link':'http://www.bimibimi.me/type/riman/'},\n            {'name':'国产动漫','link':'http://www.bimibimi.me/type/guoman/'},\n            {'name':'番组计划','link':'http://www.bimibimi.me/type/fanzu/'},\n            {'name':'剧场动画','link':'http://www.bimibimi.me/type/juchang/'},\n            {'name':'影视','link':'http://www.bimibimi.me/type/move/'}]\n\n@plugin.cached(TTL=60)\ndef get_videos(url):\n    #爬视频列表的\n    videos = []\n    r = requests.get(url,headers=headers)\n    r.encoding = 'utf-8'\n    #print(r.text)\n    soup = BeautifulSoup(r.text, 'html.parser')\n    linelist = soup.find('ul',class_='drama-module clearfix tab-cont')\n    #print(len(linelist))\n    alist = linelist.find_all('a',class_='img')\n    plist = linelist.find_all('span',class_='fl')\n    for i in range(len(alist)):\n        videoitem = {}\n        videoitem['name'] =  alist[i]['title'] + '[' + plist[i].text + ']' \n        videoitem['href'] =  'http://www.bimibimi.me' + alist[i]['href']\n        videoitem['thumb'] = alist[i].img['data-original']\n        videos.append(videoitem)\n    return videos\n\n@plugin.cached(TTL=60)\ndef get_source(url):\n    #爬视频列表的\n    videos = []\n    r = requests.get(url,headers=headers)\n    #print(r.text)\n    soup = BeautifulSoup(r.text, 'html.parser')\n    linelist = soup.find_all('div',class_='play_box')\n    #print(len(linelist))\n\n    sourcelist = []\n    for index in range(len(linelist)):\n        alist = linelist[index].find_all('a')\n        duopdict = {}\n        for i in range(len(alist)):\n            duopdict[alist[i].text] = alist[i]['href']\n        #print('------------'*30)\n        sourcelist.append(duopdict)\n\n    for index in range(len(sourcelist)):\n        videoitem = {}\n        videoitem['name'] = '播放线路' + str(index+1)\n        videoitem['href'] = str(sourcelist[index])\n        videos.append(videoitem)\n    return videos\n\n@plugin.cached(TTL=60)\ndef get_mp4(url):\n    r = requests.get(url,headers=headers)\n    rtext = r.text\n    soup = BeautifulSoup(rtext, 'html.parser')\n    title = soup.find('title')\n    str1 = rtext.find('var player_data=')\n    str2 = rtext.find('</script><script type=\"text/javascript\"')\n    cutjson = rtext[str1+16:str2]\n    #print(cutjson)\n    j = json.loads(cutjson)\n    #向接口发送请求\n    if j['from']:\n        if j['from'] == 'niux':\n            apiurl = 'http://182.254.167.161/danmu/niux.php?id=' + j['url']\n        else:\n            apiurl = 'http://182.254.167.161/danmu/play.php?url=' + j['url']\n        r = requests.get(apiurl,headers=headers)\n        rtext = r.text\n        #print(rtext)\n        soup = BeautifulSoup(r.text, 'html.parser')\n        source = soup.find('source',type='video/mp4')\n        mp4 = source['src']\n        rt = []\n        rt.append(title.text)\n        rt.append(mp4)\n    return rt\n\n@plugin.route('/play/<url>/')\ndef play(url):\n        \n        items = []\n        #print(rec.text)\n        mp4 = get_mp4(url)\n        #dialog = xbmcgui.Dialog()\n        #ok = dialog.ok('错误提示',str(mp4))\n        #print(mp4['src'])\n        item = {'label': mp4[0],'path':mp4[1],'is_playable': True,'info':('video')}\n        items.append(item)\n        return items\n\n@plugin.route('/duop/<list>/')\ndef duop(list):\n    #dialog = xbmcgui.Dialog()\n    #ok = dialog.ok('错误提示', list)\n    list = eval(list)\n    \n    #j = json.loads(list)\n    #dialog = xbmcgui.Dialog()\n    #ok = dialog.ok('错误提示', str(len(list)))\n    items = []\n    for k,i in list.items():\n        item = {'label':k.encode('utf-8'),'path':plugin.url_for('play',url='http://www.bimibimi.me' + i)}\n        items.append(item)\n    return items\n\n@plugin.route('/source/<url>/')\ndef source(url):\n    #dialog = xbmcgui.Dialog()\n    #ok = dialog.ok('错误提示', url)\n\n    sources = get_source(url)\n    items = [{\n        'label': s['name'],\n        'path': plugin.url_for('duop', list=s['href']),\n    } for s in sources]\n\n    sorted_items = items\n    #sorted_items = sorted(items, key=lambda item: item['label'])\n    return sorted_items\n\n@plugin.route('/category/<name>/<url>/')\ndef category(name,url):\n    #dialog = xbmcgui.Dialog()\n    #ok = dialog.ok('错误提示', url)\n\n    videos = get_videos(url)\n    items = [{\n        'label': video['name'],\n        'path': plugin.url_for('source', url=video['href']),\n\t'thumbnail': video['thumb'],\n        'icon': video['thumb'],\n    } for video in videos]\n\n    sorted_items = items\n    #sorted_items = sorted(items, key=lambda item: item['label'])\n    return sorted_items\n\n\n@plugin.route('/')\ndef index():\n    categories = get_categories()\n    items = [{\n        'label': category['name'],\n        'path': plugin.url_for('category', name=category['name'] , url=category['link']),\n    } for category in categories]\n\n    \n    return items\n\n\n@plugin.route('/labels/<label>/')\ndef show_label(label):\n    # 写抓取视频类表的方法\n    #\n    items = [\n        {'label': label},\n    ]\n    return items\n\nif __name__ == '__main__':\n    plugin.run()\n"
  },
  {
    "path": "plugin.video.bimibimi[停止更新]/addon.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>\n<addon id=\"plugin.video.bimibimi\" name=\"Bimibimi\" version=\"0.1.0\" provider-name=\"zhengfan\">\n  <requires>\n    <import addon=\"xbmc.python\" version=\"2.1.0\"/>\n    <import addon=\"script.module.xbmcswift2\" version=\"2.4.0\"/>\n  <import addon=\"script.module.beautifulsoup4\" version=\"4.5.3\"/>\n  <import addon=\"script.module.requests\" version=\"2.19.1\"/>\n  <import addon=\"script.module.html5lib\" version=\"0.999.0\"/>\n  </requires>\n  <extension point=\"xbmc.python.pluginsource\" library=\"addon.py\">\n    <provides>video</provides>\n  </extension>\n  <extension point=\"xbmc.addon.metadata\">\n    <platform>all</platform>\n    <language></language>\n    <description>不忘初心，守住心中一片净土。哔咪哔咪，故被网友称为m站以及bimibimi，无论您喜欢那种类型，哔咪哔咪都会筛选经典作品并将新作经典轮番推荐，相信哔咪哔咪都能为您一网打尽，为您带来一场美妙的动漫盛宴，这里是兴趣使然的无名小站。</description>\n    <assets>\n      <icon>icon.png</icon>\n      <fanart>fanart.png</fanart> \n    </assets>\n    <news>首个版本</news>\n  </extension>\n</addon>\n"
  },
  {
    "path": "plugin.video.bimibimi[停止更新]/resources/__init__.py",
    "content": ""
  },
  {
    "path": "plugin.video.bimibimi[停止更新]/resources/language/English/strings.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?>\n<strings>\n  <!-- Plugin name -->\n  <string id=\"30000\">bilibili</string>\n</strings>\n"
  },
  {
    "path": "plugin.video.bimibimi[停止更新]/resources/lib/__init__.py",
    "content": ""
  },
  {
    "path": "plugin.video.changku/addon.py",
    "content": "#!/usr/bin/env python\n# -*- coding:utf-8 -*-\nimport re\nfrom xbmcswift2 import Plugin\nimport requests\nfrom bs4 import BeautifulSoup\nimport xbmcgui\nimport base64\nimport json\nimport urllib2\nimport sys\nimport HTMLParser\nimport re\n\nplugin = Plugin()\n\n\nheaders = {'user-agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.122 Safari/537.36'}\n\n@plugin.cached(TTL=60)\ndef get_mp4(url):\n    r = requests.get(url,headers=headers)\n    url = r.url\n    #url = 'https://www.xinpianchang.com/a10696100'\n    rec = requests.get(url,headers=headers)\n    rec.encoding = 'utf-8'\n    #print(rec.text)\n    rectext = rec.text\n    str1 = rectext.find('vid: \"')\n    str2 = rectext[str1:str1+30].find('\",')\n    vid = rectext[str1+6:str1+str2]\n    api = 'https://openapi-vtom.vmovier.com/v3/video/' + vid + '?expand=resource&usage=xpc_web'\n    rec = requests.get(api,headers=headers)\n    rec.encoding = 'utf-8'\n    j = json.loads(rec.text)\n    mp4list = {}\n    for index in range(len(j['data']['resource']['progressive'])):\n        mp4list[j['data']['resource']['progressive'][index]['profile']] = 'http' + j['data']['resource']['progressive'][index]['url'][5:]\n        \n    return mp4list\n\ndef unescape(string):\n    string = urllib2.unquote(string).decode('utf8')\n    quoted = HTMLParser.HTMLParser().unescape(string).encode('utf-8')\n    #转成中文\n    return re.sub(r'%u([a-fA-F0-9]{4}|[a-fA-F0-9]{2})', lambda m: unichr(int(m.group(1), 16)), quoted)\n\n\n\ndef get_categories():\n    return [{'name':'首页推荐','link':'shouye'},\n            {'name':'最新推荐','link':'listnew'},\n            {'name':'热门排行','link':'listhot#rotate-nav'},\n            {'name':'星级精选','link':'liststars#rotate-nav'},\n            {'name':'#创意#','link':'https://www.vmovier.com/channel/idea'},\n            {'name':'#励志#','link':'https://www.vmovier.com/channel/inspiration'},\n            {'name':'#搞笑#','link':'https://www.vmovier.com/channel/fun'},\n            {'name':'#广告#','link':'https://www.vmovier.com/channel/ad'},\n            {'name':'#汽车#','link':'https://www.vmovier.com/channel/qiche'},\n            {'name':'#旅行#','link':'https://www.vmovier.com/channel/travel'},\n            {'name':'#爱情#','link':'https://www.vmovier.com/channel/love'},\n            {'name':'#剧情#','link':'https://www.vmovier.com/channel/story'},\n            {'name':'#运动#','link':'https://www.vmovier.com/channel/sports'},\n            {'name':'#动画#','link':'https://www.vmovier.com/channel/animation'},\n            {'name':'#音乐#','link':'https://www.vmovier.com/channel/mv'},\n            {'name':'#科幻#','link':'https://www.vmovier.com/channel/fiction'},\n            {'name':'#预告#','link':'https://www.vmovier.com/channel/trailer'},\n            {'name':'#纪录#','link':'https://www.vmovier.com/channel/record'},\n            {'name':'#混剪#','link':'https://www.vmovier.com/channel/cut'},\n            {'name':'#游戏#','link':'https://www.vmovier.com/channel/game'},\n            {'name':'#时尚#','link':'https://www.vmovier.com/channel/shishang'},\n            {'name':'#实验#','link':'https://www.vmovier.com/channel/experimental'},\n            {'name':'#生活#','link':'https://www.vmovier.com/channel/lifeness'}]\n\n@plugin.cached(TTL=60)\ndef get_shouye():\n    videos = []\n    url = 'https://www.vmovier.com/'\n    rec = requests.get(url,headers=headers)\n    #print(rec.text)\n    soup = BeautifulSoup(rec.text, 'html.parser')\n    filmitem = soup.find('ul',class_='rotate')\n    filmitem = filmitem.find_all('li')\n    for index in range(len(filmitem)):\n        try:\n            if filmitem[index].img['alt'] != '':\n                videoitem = {}\n                videoitem['name'] = filmitem[index].img['alt']\n                videoitem['href'] = filmitem[index].a['href']\n                videoitem['thumb'] = filmitem[index].img['src']\n                videos.append(videoitem)  \n        except TypeError:\n            print('no')\n    return videos\n\n@plugin.cached(TTL=60)\ndef get_list(link):\n    tag = link[4:]\n\n    videos = []\n    url = 'https://www.vmovier.com/' + tag\n    rec = requests.get(url,headers=headers)\n    #print(rec.text)\n    soup = BeautifulSoup(rec.text, 'html.parser')\n    filmitem = soup.find('ul',class_='index-list clearfix')\n    filmitem = filmitem.find_all('li')\n    for index in range(len(filmitem)):\n         videoitem = {}\n         videoitem['name'] = filmitem[index].img['alt']\n         videoitem['href'] = 'https://www.vmovier.com' + filmitem[index].a['href']\n         videoitem['thumb'] = filmitem[index].img['src']\n         videos.append(videoitem)  \n    return videos\n\n@plugin.cached(TTL=60)\ndef get_videos(url):\n    #爬视频列表的\n    videos = []\n\n    rec = requests.get(url,headers=headers)\n    #print(rec.text)\n    soup = BeautifulSoup(rec.text, 'html.parser')\n    filmitem = soup.find('ul',class_='search-works-list clearfix')\n    filmitem = filmitem.find_all('li')\n    #dialog = xbmcgui.Dialog()\n    #ok = dialog.ok('错误提示', j['itemList'][0]['data']['itemList'][0]['data']['content']['data']['playUrl'])\n\n    for index in range(len(filmitem)):\n        videoitem = {}\n        videoitem['name'] = filmitem[index].img['alt']\n        videoitem['href'] = 'https://www.vmovier.com' + filmitem[index].a['href']\n        videoitem['thumb'] = filmitem[index].img['src']\n        videos.append(videoitem)  \n    return videos\n\n\n\n@plugin.route('/play/<name>/<url>/')\ndef play(name,url):\n        mp4list = get_mp4(url)\n        items = []\n        for k,i in mp4list.items():\n\n            item = {'label':'[' + k.encode('utf-8') + ']' + name,'path':i.encode('utf-8'),'is_playable': True}\n            items.append(item)\n        return items\n\n@plugin.route('/category/<name>/<url>/')\ndef category(name,url):\n    if url == 'shouye' or url[:4] == 'list':\n        if url == 'shouye':\n            #首页\n            videos = get_shouye()\n        else:\n            #list\n            videos = get_list(url)\n\n    else:\n        videos = get_videos(url)\n\n    items = [{\n        'label': video['name'],\n        'path': plugin.url_for('play', name=video['name'].encode('utf-8') , url=video['href']),\n        'thumbnail': video['thumb'],\n        'icon': video['thumb'],\n    } for video in videos]\n\n    #sorted_items = items\n    #sorted_items = sorted(items, key=lambda item: item['label'])\n    return items\n\n\n\n\n@plugin.route('/')\ndef index():\n    categories = get_categories()\n    items = [{\n        'label': category['name'],\n        'path': plugin.url_for('category', name=category['name'] , url=category['link']),\n    } for category in categories]\n\n    \n    return items\n\n\n@plugin.route('/labels/<label>/')\ndef show_label(label):\n    # 写抓取视频类表的方法\n    #\n    items = [\n        {'label': label},\n    ]\n    return items\n\nif __name__ == '__main__':\n    plugin.run()\n"
  },
  {
    "path": "plugin.video.changku/addon.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>\n<addon id=\"plugin.video.changku\" name=\"场库\" version=\"0.1.0\" provider-name=\"zhengfan\">\n  <requires>\n    <import addon=\"xbmc.python\" version=\"2.1.0\"/>\n    <import addon=\"script.module.xbmcswift2\" version=\"2.4.0\"/>\n  <import addon=\"script.module.beautifulsoup4\" version=\"4.5.3\"/>\n  <import addon=\"script.module.requests\" version=\"2.19.1\"/>\n  <import addon=\"script.module.html5lib\" version=\"0.999.0\"/>\n  </requires>\n  <extension point=\"xbmc.python.pluginsource\" library=\"addon.py\">\n    <provides>video</provides>\n  </extension>\n  <extension point=\"xbmc.addon.metadata\">\n    <platform>all</platform>\n    <language></language>\n    <description>高品质短片分享平台,汇集优秀视频短片及微电影创作人,实时不断分享全球优秀视频短片,微电影</description>\n    <assets>\n      <icon>icon.png</icon>\n      <fanart>fanart.png</fanart> \n    </assets>\n    <news>首个版本</news>\n  </extension>\n</addon>\n"
  },
  {
    "path": "plugin.video.changku/readme.md",
    "content": "# 场库 for kodi 0.1.0\n## 简介\n- 高品质短片分享平台,汇集优秀视频短片及微电影创作人,实时不断分享全球优秀视频短片,微电影\n## 主要功能\n> - [x] 视频分类\n> - [x] 首页推荐，最新推荐，热门排行，星级精选\n> - [x] 在线播放视频，支持任意选择分辨率，最高可播放4k\n> - [x] 使用官方api解析视频\n> - [ ] 搜索功能\n> - [x] 缓存功能（减少向服务器请求次数）\n## 更新历史\n > -[v0.1.0]----------------------  \n > 发布 - 首个版本  \n"
  },
  {
    "path": "plugin.video.changku/resources/__init__.py",
    "content": ""
  },
  {
    "path": "plugin.video.changku/resources/language/English/strings.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?>\n<strings>\n  <!-- Plugin name -->\n  <string id=\"30000\">bilibili</string>\n</strings>\n"
  },
  {
    "path": "plugin.video.changku/resources/lib/__init__.py",
    "content": ""
  },
  {
    "path": "plugin.video.cine/addon.py",
    "content": "#!/usr/bin/env python\n# -*- coding:utf-8 -*-\nimport re\nfrom xbmcswift2 import Plugin\nimport requests\nfrom bs4 import BeautifulSoup\nimport xbmcgui\nimport time\nimport base64\nimport json\nimport urllib2\nimport sys\nimport HTMLParser\nimport re\nimport cfscrape\nimport random\nimport urllib\nimport xml.etree.ElementTree as ET\nimport difflib\n\nfrom requests.adapters import HTTPAdapter\nfrom requests.auth import HTTPBasicAuth\n \nfrom urllib import unquote\n\ndef diff_float(s1, s2):\n    return difflib.SequenceMatcher(None, s1, s2).quick_ratio()\n\ndef urldecode(fname):\n    fname = unquote(fname.encode('utf-8'))\n    fname = unicode(fname.decode('utf-8'))\n    return fname\n# def unescape(string):\n#     string = urllib2.unquote(string).decode('utf8')\n#     quoted = HTMLParser.HTMLParser().unescape(string).encode('utf-8')\n#     #转成中文\n#     return re.sub(r'%u([a-fA-F0-9]{4}|[a-fA-F0-9]{2})', lambda m: unichr(int(m.group(1), 16)), quoted)\n\n\nplugin = Plugin()\n\n\nmacheaders = {'user-agent':'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_4 Supplemental Update) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/12.1.1 Safari/605.1.15'}\nipadheaders = {'user-agent': 'Mozilla/5.0 (iPad; CPU OS 10_15_4 Supplemental Update like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/12.1.1 Mobile/15E148 Safari/605.1.15'}\niphoneheaders = {'user-agent': 'Mozilla/5.0 (iPhone; CPU OS 10_15_4 Supplemental Update like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/12.1.1 Mobile/14E304 Safari/605.1.15'}\nmheaders = {'user-agent':'Mozilla/5.0 (Linux; Android 10; Z832 Build/MMB29M) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.113 Mobile Safari/537.36'}\nheaders = {'user-agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.122 Safari/537.36'}\ntmp = plugin.get_storage('tmp')\n\n#用户设置存储\nstorage = plugin.get_storage('storage')\n#搜索历史纪录\nhis = plugin.get_storage('his')\n\n\ndef chushihua(key,default):\n    if key in storage:\n        switch = storage[key]\n    else:\n        storage[key] = default\n        switch = storage[key]\n    if switch == 1:\n        value = '开'\n    else:\n        value = '关'\n    return value\n\n@plugin.cached(TTL=2)\ndef get_html(url,ua='pc',cf='',mode='html',encode='utf-8'):\n    #UA相关\n    if ua == 'pc':\n        head = headers\n    if ua == 'mobile':\n        head = mheaders\n    if ua == 'iphone':\n        head = iphoneheaders\n    if ua == 'ipad':\n        head = ipadheaders\n    if ua == 'mac':\n        head = macheaders\n    \n    #超时重试3次\n    s0 = requests.Session()\n    s0.mount('http://', HTTPAdapter(max_retries=3))\n    s0.mount('https://', HTTPAdapter(max_retries=3))\n\n    #获取网页源代码\n    if mode == 'html':\n        #cloudflare相关\n        if cf == '':\n            r = s0.get(url,headers=head)\n        else:\n            scraper = cfscrape.create_scraper()\n            s = scraper.get_tokens(url,headers=head)\n            r = s0.get(url,headers=head,cookies=s[0])\n        #编码相关\n        if encode == 'utf-8':\n            r.encoding = 'utf-8'\n        if encode == 'gbk':\n            r.encoding = 'gbk'\n        html = r.text\n    \n    #用于获取302跳转网页的真实url\n    if mode == 'url':\n        #cloudflare相关\n        if cf == '':\n            r = s0.get(url,headers=head,timeout=5,stream=True)\n        else:\n            scraper = cfscrape.create_scraper()\n            s = scraper.get_tokens(url,headers=head)\n            r = s0.get(url,headers=head,cookies=s[0],timeout=5,stream=True)\n        \n        html = r.url\n        \n    return html\n\n@plugin.cached(TTL=2)\ndef post_html(url,data='',ua='pc',cf='',mode='html',encode='utf-8',jsons=''):\n    if data != '':\n        data =eval(data)\n    if jsons != '':\n        jsons =eval(jsons)\n\n    #UA相关\n    if ua == 'pc':\n        head = headers\n    if ua == 'mobile':\n        head = mheaders\n    if ua == 'iphone':\n        head = iphoneheaders\n    if ua == 'ipad':\n        head = ipadheaders\n    if ua == 'mac':\n        head = macheaders\n\n    #超时重试3次\n    s0 = requests.Session()\n    s0.mount('http://', HTTPAdapter(max_retries=3))\n    s0.mount('https://', HTTPAdapter(max_retries=3))\n\n    #cloudflare相关\n    if data != '' or jsons != '':\n        if cf == '':\n            if data != '':\n                r = s0.post(url,headers=head,data=data)\n            if jsons != '':\n                r = s0.post(url,headers=head,json=jsons)\n\n            if encode == 'utf-8':\n                r.encoding = 'utf-8'\n            if encode == 'gbk':\n                r.encoding = 'gbk'\n            html = r.text\n\n            if mode == 'url':\n                html = r.url\n            else:\n                html = r.text\n        else:\n            scraper = cfscrape.create_scraper()\n            s = scraper.get_tokens(url,headers=head)\n            if data != '':\n                r = s0.post(url,data=data,headers=head,cookies=s[0])\n            if jsons != '':\n                r = s0.post(url,json=jsons,headers=head,cookies=s[0])\n\n            if encode == 'utf-8':\n                r.encoding = 'utf-8'\n            if encode == 'gbk':\n                r.encoding = 'gbk'\n\n            if mode == 'url':\n                html = r.url\n            else:\n                html = r.text\n        return html\n\ndef unix_to_data(uptime,format='data'):\n    if len(str(uptime)) > 10:\n        uptime = str(uptime)[:-(len(str(uptime))-10)]\n    uptime = float(uptime)\n    time_local = time.localtime(uptime)\n    if format == 'data' or format == 'zhdata' or format == 'datatime' or format == 'zhdatatime' or format == 'time' or format == 'zhtime':\n        if format == 'data':\n            uptime = time.strftime('%Y-%m-%d',time_local)\n        if format == 'zhdata':\n            uptime = time.strftime('%Y年%m月%d日',time_local)\n        if format == 'datatime':\n            uptime = time.strftime('%Y-%m-%d %H:%M:%S',time_local)\n        if format == 'zhdatatime':\n            uptime = time.strftime('%Y年%m月%d日 %H时%M分%S秒',time_local)\n        if format == 'time':\n            uptime = time.strftime('%H:%M:%S',time_local)\n        if format == 'zhtime':\n            uptime = time.strftime('%H时%M分%S秒',time_local)\n    else:\n        uptime = time.strftime(format,time_local)\n    return uptime\n\ndef tiqu_num(string):\n    try:\n        a = re.search('\\d+',string).group()\n        return a\n    except AttributeError:\n        return ''\n\ndef get_categories_mode(mode):\n    item = eval('get_' + mode + '_categories')()\n    return item\ndef get_videos_mode(url,mode,page):\n    item = eval('get_' + mode + '_videos')(url,int(page))\n    return item\ndef get_source_mode(url,mode):\n    item = eval('get_' + mode + '_source')(url)\n    return item\ndef get_mp4info_mode(url,mode):\n    item = eval('get_' + mode + '_mp4info')(url)\n    return item\ndef get_mp4_mode(url,mode):\n    item = eval('get_' + mode + '_mp4')(url)\n    return item\ndef get_search_mode(keyword,page,mode):\n    item = eval('get_' + mode + '_search')(keyword,int(page))\n    return item\n\n##########################################################\n###主入口\n##########################################################\n\ndef get_categories():\n    return [{'id':1,'name':'爱尚影视(ku2000.com)','link':'ku2000','author':'zhengfan2014','upload':'2020-5-7','videos':48,'search':8},\n            {'id':2,'name':'片库(pianku.li)','link':'pianku','author':'zhengfan2014','upload':'2020-5-7','videos':42,'search':10},\n            {'id':3,'name':'老豆瓣(laodouban.com)','link':'laodouban','author':'zhengfan2014','upload':'2020-5-7','videos':12,'search':10},\n            {'id':4,'name':'美剧天堂(meijutt.tv)','link':'meijutt','author':'zhengfan2014','upload':'2020-5-23','videos':20,'search':20},\n            {'id':5,'name':'麻花资源(mahuazy.net)','link':'mahuazy','author':'zhengfan2014','upload':'2020-6-12','videos':20},\n            {'id':6,'name':'最大资源(zuidazy3.net)','link':'zdziyuan','author':'zhengfan2014','upload':'2020-6-12','videos':40},\n            {'id':7,'name':'kuku(pan.kuku.me)','link':'kukume','author':'zhengfan2014','upload':'2020-9-26'},\n            {'id':8,'name':'Share With You(ty.let-me-try.com)','link':'letmetry','author':'zhengfan2014','upload':'2020-9-26'},\n            {'id':9,'name':'goindex测试','link':'ddosi','author':'zhengfan2014','upload':'2020-9-26'},\n            {'id':10,'name':'goindex多盘版测试','link':'yanzai','author':'zhengfan2014','upload':'2020-9-26'},\n            {'id':11,'name':'goindex多盘版acrou','link':'acrou','author':'zhengfan2014','upload':'2020-9-26'}]\n\n##########################################################\n###以下是模块，网站模块请粘贴在这里面\n##########################################################\n\n#ku2000\ndef get_ku2000_categories():\n    return [{\"name\": \"综艺片\", \"link\": \"https://www.ku2000.com/vodtype/3\"},\n          {\"name\": \"动漫片\", \"link\": \"https://www.ku2000.com/vodtype/4\"}, \n          {\"name\": \"解说中\", \"link\": \"https://www.ku2000.com/vodtype/20\"},\n          {\"name\": \"体育台\", \"link\": \"https://www.ku2000.com/vodtype/26\"},\n          {\"name\": \"动作片\", \"link\": \"https://www.ku2000.com/vodtype/6\"},\n          {\"name\": \"喜剧片\", \"link\": \"https://www.ku2000.com/vodtype/7\"},\n          {\"name\": \"爱情片\", \"link\": \"https://www.ku2000.com/vodtype/8\"},\n          {\"name\": \"科幻片\", \"link\": \"https://www.ku2000.com/vodtype/9\"},\n          {\"name\": \"恐怖片\", \"link\": \"https://www.ku2000.com/vodtype/10\"},\n          {\"name\": \"剧情片\", \"link\": \"https://www.ku2000.com/vodtype/11\"},\n          {\"name\": \"战争片\", \"link\": \"https://www.ku2000.com/vodtype/12\"},\n          {\"name\": \"纪录片\", \"link\": \"https://www.ku2000.com/vodtype/21\"},\n          {\"name\": \"国产剧\", \"link\": \"https://www.ku2000.com/vodtype/13\"},\n          {\"name\": \"港台剧\", \"link\": \"https://www.ku2000.com/vodtype/14\"},\n          {\"name\": \"日韩剧\", \"link\": \"https://www.ku2000.com/vodtype/15\"},\n          {\"name\": \"海外剧\", \"link\": \"https://www.ku2000.com/vodtype/16\"},\n          {\"name\": \"福利片\", \"link\": \"https://www.ku2000.com/vodtype/23\"},\n          {\"name\": \"微电影\", \"link\": \"https://www.ku2000.com/vodtype/24\"}]\n\ndef get_ku2000_videos(url,page):\n    videos = []\n    if page == 1:\n        r = get_html(url + '.html')\n    else:\n        r = get_html(url + '-' +str(page) +'.html')\n    soup = BeautifulSoup(r, \"html5lib\")\n    ul = soup.find('ul',class_='myui-vodlist clearfix')\n    alist = ul.find_all('a',class_='myui-vodlist__thumb lazyload')\n    for i in range(len(alist)):\n        videoitem = {}\n        videoitem['name'] =  alist[i]['title'] \n        videoitem['href'] =  'https://www.ku2000.com' + alist[i]['href']\n        videoitem['thumb'] = alist[i]['data-original']\n        videos.append(videoitem)\n    return videos\n\ndef get_ku2000_source(url):\n    videos = []\n    r = get_html(url)\n    #dialog = xbmcgui.Dialog()\n    #dialog.textviewer('错误提示', url)\n\n    soup = BeautifulSoup(r, 'html.parser')\n    ul = soup.find_all('ul',class_='nav nav-tabs active')\n    li = ul[0].find_all('li')\n    vlist =soup.find_all('ul',class_='myui-content__list sort-list scrollbar clearfix')\n    for index in range(len(li)):\n        duopname = li[index].text\n        alist = vlist[index].find_all('a')\n        duopdict = {}\n        for i in range(len(alist)):\n            duopdict[alist[i].text] = 'https://www.ku2000.com' + alist[i]['href']\n        \n        videoitem = {}\n        videoitem['name'] = duopname\n        videoitem['href'] = str(duopdict)\n        videos.append(videoitem)\n    tmp['bghtml'] = r\n    return videos\n\ndef get_ku2000_mp4(url):\n    r = get_html(url)\n    str1 = r.find('var player_aaaa=')\n    cut = r[str1:]\n    mp4 = re.search('url\\\":\\\"(.*?)\\\"',cut).group(1)\n    mp4 = mp4.replace('\\\\','')\n    if not mp4.endswith('m3u8'):\n        r = get_html(mp4)\n        m3u8 = re.search('url:\\'(.*?)\\'',r).group(1)\n        mp4 = re.search('(.*?)/share',mp4).group(1) + m3u8\n    return mp4\n\ndef get_ku2000_search(keyword,page):\n    videos = []\n    \n    if page == 1:\n        r = get_html('https://www.ku2000.com/vodsearch.html?wd='+keyword+'&submit=')\n    else:\n        r = get_html('https://www.ku2000.com/vodsearch/page/'+str(page)+'/wd/'+keyword+'.html')\n    soup = BeautifulSoup(r, \"html5lib\")\n    ul = soup.find('ul',id='searchList')\n    alist = ul.find_all('a',class_='myui-vodlist__thumb img-lg-150 img-md-150 img-sm-150 img-xs-100 lazyload')\n    for i in range(len(alist)):\n        videoitem = {}\n        videoitem['name'] =  alist[i]['title'] \n        videoitem['href'] =  'https://www.138vcd.com/' + alist[i]['href']\n        videoitem['thumb'] = alist[i]['data-original']\n        videos.append(videoitem)\n    return videos\n\n#pianku\ndef get_pianku_categories():\n    return [{\"name\": \"电影\", \"link\": \"https://www.pianku.li/mv/------\"},\n          {\"name\": \"剧集\", \"link\": \"https://www.pianku.li/tv/------\"}, \n          {\"name\": \"动漫\", \"link\": \"https://www.pianku.li/ac/------\"}]\n\ndef get_pianku_videos(url,page):\n    videos = []\n    if page == 1:\n        r = get_html(url + '1.html')\n    else:\n        r = get_html(url + str(page) +'.html')\n    soup = BeautifulSoup(r, \"html5lib\")\n    ul = soup.find('ul',class_='content-list')\n    ilist = ul.find_all('div',class_='li-img')\n    for i in range(len(ilist)):\n        videoitem = {}\n        videoitem['name'] =  ilist[i].a['title'] \n        videoitem['href'] =  'https://www.pianku.li' + ilist[i].a['href']\n        videoitem['thumb'] = ilist[i].a.img['data-funlazy']\n        videos.append(videoitem)\n    return videos\n        \ndef get_pianku_source(url):\n    videos = []\n    vtype = re.search('(?<=pianku.li\\/)[a-zA-Z]+(?=\\/)',url).group()\n    vid = re.search('([a-zA-Z]|\\d)+(?=.html)',url).group()\n    apiurl = 'https://www.pianku.li/ajax/downurl/'+vid+'_'+vtype+'/'\n    videoheaders = {\n        'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.90 Safari/537.36'\n    }\n    r1 = requests.get(url,headers=videoheaders)\n    r = requests.get(apiurl,headers=videoheaders,cookies=r1.cookies)\n    soup = BeautifulSoup(r.text, \"html.parser\")\n    ul = soup.find('ul',class_='py-tabs')\n    # dialog = xbmcgui.Dialog()\n    # dialog.textviewer('错误提示', str(r.encode('utf-8')))\n    li = ul.find_all('li')\n    vlist =soup.find_all('ul',class_='player ckp')\n    \n    for index in range(len(li)):\n        duopname = li[index].text\n        alist = vlist[index].find_all('a')\n        duopdict = {}\n        for i in range(len(alist)):\n            duopdict[alist[i].text] = 'https://www.pianku.li' + alist[i]['href']\n        \n        videoitem = {}\n        videoitem['name'] = duopname\n        videoitem['href'] = str(duopdict)\n        videos.append(videoitem)\n    tmp['bghtml'] = r1\n    return videos\n\ndef get_pianku_mp4(url):\n    r = get_html(url)\n    str1 = r.find('new DPlayer({')\n    cut = r[str1:]\n    mp4 = re.search('https?:..+\\.m3u8',cut).group()\n    mp4 = mp4.replace('\\\\','')\n    # dialog = xbmcgui.Dialog()\n    # ok = dialog.ok('错误提示', mp4)\n    return mp4\n\ndef get_pianku_search(keyword,page):\n    videos = []\n    \n    if page == 1:\n        url = get_html('https://www.pianku.li/s/go.php?q='+keyword,mode='url')\n        tmp['piankusearch'] = url\n    else:\n        url = tmp['piankusearch'][:-5] + '-' + str(page) + '.html'\n    r = get_html(url)\n\n    # dialog = xbmcgui.Dialog()\n    # dialog.textviewer('错误提示', r.encode('utf-8'))\n    soup = BeautifulSoup(r, \"html5lib\")\n    ul = soup.find('div',class_='sr_lists')\n    vlist = ul.find_all('dl')\n    for i in range(len(vlist)):\n        img = vlist[i].find('img')\n        a = vlist[i].dd.find('a')\n        videoitem = {}\n        videoitem['name'] =  a.text\n        videoitem['href'] =  'https://www.pianku.li' + a['href']\n        videoitem['thumb'] = img['data-funlazy']\n        videos.append(videoitem)\n    return videos\n\n#老豆瓣\ndef get_laodouban_categories():\n    return [{\"name\": \"电影\", \"link\": \"https://www.laodouban.com/dianying/\"},\n          {\"name\": \"电视剧\", \"link\": \"https://www.laodouban.com/dianshiju/\"}, \n          {\"name\": \"动漫\", \"link\": \"https://www.laodouban.com/dongman/\"},\n          {\"name\": \"综艺\", \"link\": \"https://www.laodouban.com/zongyi/\"}]\n\ndef get_laodouban_videos(url,page):\n    videos = []\n    if page != 1:\n        url += str(page)\n    r = get_html(url)\n    soup = BeautifulSoup(r, \"html5lib\")\n    ul = soup.find('div',class_='tubiao row no-gutters')\n    ilist = ul.find_all('div',class_='zu d-flex flex-column col-4 col-sm-3 col-md-3 col-lg-3 col-xl-3 mb-4')\n    for i in range(len(ilist)):\n        img = ilist[i].find('img')\n        a = ilist[i].find('a',class_='text-secondary')\n        videoitem = {}\n        videoitem['name'] =  a.text\n        videoitem['href'] =  'https://www.laodouban.com' + a['href']\n        videoitem['thumb'] = img['src']\n        videos.append(videoitem)\n    return videos\n\ndef get_laodouban_source(url):\n    videos = []\n    if re.match('https?',url):\n        r = get_html(url)\n        soup = BeautifulSoup(r, 'html.parser')\n        ul = soup.find('ul',class_='nav nav-tabs mt-3')\n    \n        li = ul.find_all('li')\n        vlist =soup.find_all('div',class_='tab-pane')\n    \n\n        #dialog = xbmcgui.Dialog()\n        #dialog.textviewer('错误提示', str(vlist[0].encode('utf-8')))\n        for index in range(len(li)):\n            duopname = li[index].a.text.strip()\n            if li[index].find('span'):\n                duopname = duopname[:-1]\n                duopname += u' · [COLOR red]' + li[index].span.text + u'[/COLOR]'\n            blist = vlist[index].find_all('button')\n            duopdict = {}\n            for i in range(len(blist)):\n                duopdict[blist[i].text.strip()] = 'https://www.laodouban.com/b?h=' + blist[i]['ldb-bianhao'] + '&y=' + blist[i]['ldb-suoyin']\n        \n            videoitem = {}\n            videoitem['name'] = duopname.strip()\n            videoitem['href'] = str(duopdict)\n            videos.append(videoitem)\n        tmp['bghtml'] = r\n    else:\n        ddict = eval(url)\n        for k,i in ddict.items():\n            duopname = k\n            vlist = eval(i)\n            duopdict = {}\n            for index in range(len(vlist)):\n                duopdict[vlist[index]['biaoji']] = vlist[index]['dizhi']\n            videoitem = {}\n            videoitem['name'] = duopname\n            videoitem['href'] = str(duopdict)\n            videos.append(videoitem)\n    \n    return videos\n\ndef get_laodouban_mp4(url):\n    if re.search('https?:..+\\.m3u8',url):\n        mp4 = url\n    else:\n        r = get_html(url)\n        str1 = r.find('var videoObject = {')\n        cut = r[str1:]\n        mp4 = re.search('https?:..+\\.m3u8',cut).group()\n        mp4 = mp4.replace('\\\\','')\n    # dialog = xbmcgui.Dialog()\n    # ok = dialog.ok('错误提示', mp4)\n    return mp4\n\ndef get_laodouban_search(keyword,page):\n    videos = []\n    \n    # if page == 1:\n    #     url = 'https://www.laodouban.com/s?c=' + keyword\n    #     r = get_html(url)\n    url = 'https://www.laodouban.com/api/sousuo/'\n    data = {'guanjianzi':keyword,'yeshu':page}\n    r = post_html(url,str(data))\n    j = json.loads(r)\n    for index in range(len(j)):\n        videoitem = {}\n        videoitem['name'] = j[index]['mingcheng']\n        videoitem['thumb'] = j[index]['jietu']\n        videoitem['href'] = str({j[index]['bofangdizhi']['mingcheng']:str(j[index]['bofangdizhi']['dizhizu'])})\n        videos.append(videoitem)\n    # # dialog = xbmcgui.Dialog()\n    # # dialog.textviewer('错误提示', r.encode('utf-8'))\n    # soup = BeautifulSoup(r, \"html5lib\")\n    # ul = soup.find('div',class_='zuoce col-12 col-sm-12 col-md-12 col-lg-8 col-xl-8')\n    # li1 = ul.find('div',class_='tuwenbiao row no-gutters mb-4')\n\n\n    # vlist1 = li1.find_all('div',class_='col-12 d-flex pt-3 pb-4')\n    # for i in range(len(vlist1)):\n    #     img = vlist1[i].find('img')\n    #     a = vlist1[i].find('a',class_='text-info')\n    #     videoitem = {}\n    #     videoitem['name'] =  a.text\n    #     videoitem['href'] =  'https://www.laodouban.com' + a['href']\n    #     videoitem['thumb'] = img['src']\n    #     videos.append(videoitem)\n    return videos\n\n#美剧天堂\ndef get_meijutt_categories():\n    return [{\"name\": \"魔幻/科幻\", \"link\": \"https://www.meijutt.tv/file/list1\"},\n          {\"name\": \"灵异/惊悚\", \"link\": \"https://www.meijutt.tv/file/list2\"}, \n          {\"name\": \"都市/情感\", \"link\": \"https://www.meijutt.tv/file/list3\"},\n          {\"name\": \"犯罪/历史\", \"link\": \"https://www.meijutt.tv/file/list4\"},\n          {\"name\": \"选秀/综艺\", \"link\": \"https://www.meijutt.tv/file/list5\"},\n          {\"name\": \"动漫/卡通\", \"link\": \"https://www.meijutt.tv/file/list6\"}]\n\ndef get_meijutt_videos(url,page):\n    videos = []\n    if page != 1:\n        url += '_' + str(page) + '.html'\n    else:\n        url += '.html'\n    r = get_html(url,encode='gbk')\n    soup = BeautifulSoup(r, \"html5lib\")\n    ilist = soup.find_all('div',class_='cn_box2')\n    for i in range(len(ilist)):\n        img = ilist[i].find('img')\n        a = ilist[i].find('a')\n        videoitem = {}\n        videoitem['name'] =  a['title']\n        videoitem['href'] =  'https://www.meijutt.tv' + a['href']\n        videoitem['thumb'] = img['src']\n        videos.append(videoitem)\n    return videos\n\ndef get_meijutt_source(url):\n    videos = []\n    vid = re.search('[0-9]+(?=.html)',url).group()\n    r = get_html(url,encode='gbk')\n    r1 = get_html('https://www.meijutt.tv/video/'+str(vid)+'-0-0.html',encode='gbk')\n    jsurl = re.search('/playdata/[0-9]+/[0-9]+.js',r1).group()\n    r2 = get_html('https://www.meijutt.tv' + jsurl )\n    str1 = r2.find('var VideoListJson=')\n    str2 = r2.find(',urlinfo=')\n    cutjson = r2[str1+18:str2]\n    j = json.loads(cutjson)\n    \n\n    for index in range(len(j)):\n        if j[index][0] != u'百度云':\n            duopname = j[index][0]\n            duopdict = {}\n            for i in range(len(j[index][1])):\n                duopdict[j[index][1][i][0]] = j[index][1][i][1]\n            videoitem = {}\n            videoitem['name'] = duopname\n            videoitem['href'] = str(duopdict)\n            videos.append(videoitem)\n    tmp['bghtml'] = r\n    return videos\n\ndef get_meijutt_mp4(url):\n    if re.search('m3u8',url):\n        if re.search('6m3u8',url):\n            url = url.replace('6m3u8','m3u8')\n    else:\n        url = url[:-5] + url[-4:]\n        \n        domain = re.search('(https?:\\/\\/)?([\\da-z\\.-]+)\\.([a-z\\.]{2,6})',url).group()\n        r = get_html(url)\n        url = domain + re.search('(?<=\\\")[\\S]+.m3u8\\?sign\\=[a-z0-9]+',r).group()\n        # dialog = xbmcgui.Dialog()\n        # dialog.textviewer('错误提示', domain)\n    return url\n\ndef get_meijutt_search(keyword,page):\n    videos = []\n    if page == 1:\n        url = 'https://www.meijutt.tv/search/index.asp'\n        data = {'searchword':keyword.encode('gbk')}\n        r = post_html(url,data=str(data),encode='gbk')\n    else:\n        url = 'https://www.meijutt.tv/search/index.asp?page='+str(page)+'&searchword='+(urllib.parse.quote(keyword.encode('gbk')).encode('utf-8'))+'&searchtype=-1'\n        r = get_html(url,encode='gbk')\n    soup = BeautifulSoup(r, \"html5lib\")\n    ilist = soup.find_all('div',class_='cn_box2')\n    for i in range(len(ilist)):\n        img = ilist[i].find('img')\n        a = ilist[i].find('a')\n        videoitem = {}\n        videoitem['name'] =  a['title']\n        videoitem['href'] =  'https://www.meijutt.tv' + a['href']\n        videoitem['thumb'] = img['src']\n        videos.append(videoitem)\n    return videos\n\n\n#麻花资源\ndef get_mahuazy_categories():\n    return get_maccms_xml('https://www.mhapi123.com/inc/api.php',banid='1,2,4,49,42,44,46,38,54')\n\ndef get_mahuazy_videos(url,page):\n    return get_maccms_xml('https://www.mhapi123.com/inc/api.php',url=url,page=page)\n\ndef get_mahuazy_source(url):\n    return get_maccms_xml('https://www.mhapi123.com/inc/api.php',url=url)\n\ndef get_mahuazy_mp4info(url):\n    return get_maccms_xml('https://www.mhapi123.com/inc/api.php',url=url,keyword='douban777')\n\ndef get_mahuazy_mp4(url):\n    return url\n\n\n#最大资源\ndef get_zdziyuan_categories():\n    return get_maccms_xml('http://www.zdziyuan.com/inc/api_zuidam3u8.php',banid='1,2')\n\ndef get_zdziyuan_videos(url,page):\n    return get_maccms_xml('http://www.zdziyuan.com/inc/api_zuidam3u8.php',url=url,page=page)\n\ndef get_zdziyuan_source(url):\n    return get_maccms_xml('http://www.zdziyuan.com/inc/api_zuidam3u8.php',url=url)\n\ndef get_zdziyuan_mp4info(url):\n    return get_maccms_xml('http://www.zdziyuan.com/inc/api_zuidam3u8.php',url=url,keyword='douban777')\n\ndef get_zdziyuan_mp4(url):\n    return url\n\n\ndef get_kukume_categories():\n    return get_sharelist('https://pan.kuku.me/')\n\ndef get_letmetry_categories():\n    return get_sharelist('https://ty.let-me-try.com/')\n\ndef get_ddosi_categories():\n    return get_goindex('https://w.ddosi.workers.dev/')\n\ndef get_yanzai_categories():\n    return get_yanzaigoindex('https://yanzai-goindex.java.workers.dev/')\ndef get_acrou_categories():\n    return get_yanzaigoindex('https://oss.achirou.workers.dev/')\n########################################################################################################################################\n########################################################################################################################################\n###以下是核心代码区，看不懂的请勿修改\n########################################################################################################################################\n########################################################################################################################################\n\n@plugin.route('/play/<name>/<url>/<mode>/')\ndef play(name,url,mode):\n    items = []\n    mp4 = get_mp4_mode(url,mode)\n    if re.search('https?',url):\n        mp4 += u'|referer=' + url\n    try:\n        mp4info = get_mp4info_mode(url,mode)\n        mp4info['mediatype'] = 'video'\n        mp4info['title'] = name\n        \n        item = {'label': name,'path':mp4,'is_playable': True,'info':mp4info,'info_type':'video','thumbnail': tmp['bgimg'],'icon': tmp['bgimg']}\n    except NameError:\n        item = {'label': name,'path':mp4,'is_playable': True,'info_type':'video','thumbnail': tmp['bgimg'],'icon': tmp['bgimg']}\n    dialog = xbmcgui.Dialog()\n    dialog.notification('亲，请勿轻信视频内非法广告！','天上不会掉馅饼，世上没有免费的午餐',xbmcgui.NOTIFICATION_INFO, 5000)\n    items.append(item)\n    return items\n\n#判断是否含数字\ndef hannum(x):\n    if re.search('\\d+',x):\n        return True\n    else:\n        return False\n\n#求差集，在B中但不在A中\ndef diff(listA,listB):\n    retD = list(set(listB).difference(set(listA)))\n    return retD\n\n@plugin.route('/duop/<name>/<list>/<mode>/')\ndef duop(name,list,mode):\n    list = eval(list)\n    sslist = sorted(list)\n    slist = filter(hannum,sslist)\n    slist = sorted(slist,key=lambda x:int(re.search('\\d+',x).group()),reverse = True)\n    slist = slist + diff(slist,sslist)\n    \n    kongge = ' - '\n    kongge = kongge.encode('utf-8')\n    items = []\n    for index in range(len(slist)):\n        item = {'label':slist[index].encode('utf-8'),'path':plugin.url_for('play',name=slist[index].encode('utf-8')+ kongge +name,url= list[slist[index]],mode=mode)}\n        items.append(item)\n    return items\n\n@plugin.route('/source/<name>/<url>/<img>/<mode>/')\ndef source(name,url,img,mode):\n    #dialog = xbmcgui.Dialog()\n    #ok = dialog.ok('错误提示', url)\n    sources = get_source_mode(url,mode)\n    tmp['bgimg'] = img\n    items = [{\n        'label': s['name'],\n        'path': plugin.url_for('duop', name=name,list=s['href'],mode=mode),\n    } for s in sources]\n\n    sorted_items = items\n    #sorted_items = sorted(items, key=lambda item: item['label'])\n    return sorted_items\n\n@plugin.route('/category/<name>/<url>/<mode>/<page>/')\ndef category(name,url,mode,page):\n    videos = get_videos_mode(url,mode,page)\n    items = []\n    if videos != []:\n        if 'info' in videos[0]:\n            for video in videos:\n                info = video['info']\n                info['mediatype'] = 'video'\n                items.append({'label': video['name'],\n                'path': plugin.url_for('source', name=video['name'].encode('utf-8'),url=video['href'],img=video['thumb'], mode=mode),\n    \t    'thumbnail': video['thumb'],\n                'icon': video['thumb'],\n                'info': info,\n            })\n        else:\n            for video in videos:\n                items.append({'label': video['name'],\n                'path': plugin.url_for('source', name=video['name'].encode('utf-8'),url=video['href'],img=video['thumb'], mode=mode),\n    \t    'thumbnail': video['thumb'],\n                'icon': video['thumb'],\n            })\n\n    categories = get_categories()\n    for index in range(len(categories)):\n        if mode == categories[index]['link']:\n            if 'videos' in categories[index]:\n                if int(categories[index]['videos']) == len(videos):\n                    items.append({\n                        'label': '[COLOR yellow]下一页[/COLOR]',\n                        'path': plugin.url_for('category',name=name,url=url,mode=mode,page=int(int(page)+1)),\n                    })\n    return items\n\n\n@plugin.route('/home/<mode>/')\ndef home(mode):\n    categories = get_categories_mode(mode)\n    if categories[0]['name'] == 'mode':\n        items = []\n        netdiskmod = categories[0]['link']\n        del categories[0]\n        pnum = 0\n        allnum = len(categories)\n        pDialog = xbmcgui.DialogProgress()\n        pDialog.create('解析网盘文件下载地址', '准备开始发送请求...')\n            \n        for category in categories:\n            \n            if re.match('[^/]+\\.[a-zA-Z0-9]{1,4}',urldecode(category['name'])):\n                #解析文件\n                pDialog.update(int(float(pnum)/float(allnum)*100), '解析网盘文件地址：解析文件地址中...  [' + str(pnum+1) + '/' + str(allnum) + ']')\n                r = requests.get(category['link'], stream=True,headers=headers)\n                items.append({'label': category['name'],'path': r.url,'is_playable':True})\n            else:\n                #判断是否文件夹，是继续循环调用\n                pDialog.update(int(float(pnum)/float(allnum)*100), '解析网盘文件地址：判断为文件夹,跳过...  [' + str(pnum+1) + '/' + str(allnum) + ']')\n                items.append({'label': category['name'],\n                'path': plugin.url_for('onetogo', name=category['name'].encode('utf-8'), url=category['link'].encode('utf-8'),mode=netdiskmod,page=1),\n                })\n            pnum += 1\n    else:\n        items = [{\n            'label': category['name'],\n            'path': plugin.url_for('category', name=category['name'] , url=category['link'],mode=mode,page=1),\n        } for category in categories]\n        try:\n            eval('get_' + mode + '_search')\n            items.append({\n                'label': '[COLOR yellow]搜索[/COLOR]',\n                'path': plugin.url_for('history',name='搜索',url='search',mode=mode),\n           })\n        except NameError:\n            pass\n    return items\n\n@plugin.route('/onetogo/<name>/<url>/<mode>/<page>/')\ndef onetogo(name,url,mode,page):\n    try:\n        categories = eval('get_' + mode)(url)\n    \n        if categories[0]['name'] == 'mode':\n            items = []\n            del categories[0]\n            pnum = 0\n            allnum = len(categories)\n            pDialog = xbmcgui.DialogProgress()\n            pDialog.create('解析网盘文件下载地址', '准备开始发送请求...')\n            \n            for category in categories:\n            \n                if re.match('[^/]+\\.[a-zA-Z0-9]{1,4}',urldecode(category['name'])):\n                    #解析文件\n                    pDialog.update(int(float(pnum)/float(allnum)*100), '解析网盘文件地址：解析文件地址中...  [' + str(pnum+1) + '/' + str(allnum) + ']')\n\n                    # s = requests.Session()\n                    # s.mount('http://', HTTPAdapter(max_retries=3))\n                    # s.mount('https://', HTTPAdapter(max_retries=3))\n\n                    # try:\n                    #     r = s.get(category['link'],timeout=5,stream=True,headers=headers)\n                    # except requests.exceptions.RequestException as e:\n                    #     dialog = xbmcgui.Dialog()\n                    #     dialog.textviewer('错误提示',str(e))\n                    # r = requests.get(category['link'], stream=True,headers=headers)\n                    r = get_html(category['link'],mode='url')\n                    items.append({'label': category['name'],'path':r,'is_playable':True})\n                else:\n                    #判断是否文件夹，是继续循环调用\n                    pDialog.update(int(float(pnum)/float(allnum)*100), '解析网盘文件地址：判断为文件夹,跳过...  [' + str(pnum+1) + '/' + str(allnum) + ']')\n                    items.append({'label': category['name'],\n                    'path': plugin.url_for('onetogo', name=category['name'].encode('utf-8'), url=category['link'].encode('utf-8'),mode=mode,page=1),\n                    })\n                pnum += 1\n    \n    except NameError:\n        pass\n\n    return items\n\n\n\n@plugin.route('/search/<value>/<page>/<mode>/')\ndef search(value,page,mode):\n    if value == 'null':\n        keyboard = xbmc.Keyboard('', '请输入搜索内容')\n        xbmc.sleep(1500)\n        keyboard.doModal()\n        hi = his['search']\n        if (keyboard.isConfirmed()):\n            keyword = keyboard.getText()\n            if keyword != '':\n                hi[keyword] = str(time.strftime(\"%Y-%m-%d %H:%M:%S\", time.localtime()))\n    else:\n        keyword = value\n    videos = get_search_mode(keyword,page,mode)\n    items = []\n    if videos != []:\n        if 'info' in videos[0]:\n            for video in videos:\n                info = video['info']\n                info['mediatype'] = 'video'\n                items.append({'label': video['name'],\n                'path': plugin.url_for('source', name=video['name'].encode('utf-8'),url=video['href'],img=video['thumb'], mode=mode),\n    \t    'thumbnail': video['thumb'],\n                'icon': video['thumb'],\n                'info': info,\n            })\n        else:\n            for video in videos:\n                items.append({'label': video['name'],\n                'path': plugin.url_for('source', name=video['name'].encode('utf-8'),url=video['href'],img=video['thumb'], mode=mode),\n    \t    'thumbnail': video['thumb'],\n                'icon': video['thumb'],\n            })\n    \n    categories = get_categories()\n    for index in range(len(categories)):\n        if mode == categories[index]['link']:\n            if 'search' in categories[index]:\n                if int(categories[index]['search']) == len(videos):\n                    nextpage = {'label': '[COLOR yellow]下一页[/COLOR]', 'path': plugin.url_for('search', value=keyword,mode=mode,page=str(int(page)+1))}\n                    items.append(nextpage)\n    return items\n\ndef get_key (dict, value):\n  return [k for k, v in dict.items() if v == value]\n\n@plugin.route('/history/<name>/<url>/<mode>/')\ndef history(name,url,mode):\n    items = []\n    items.append({\n        'label': '[COLOR yellow]'+ name +'[/COLOR]',\n        'path': plugin.url_for(url,value='null',page=1,mode=mode),\n    })\n    #his[url] ={'aaa':'2019-01-23 10:00:00','bbb':'2019-01-23 09:01:00','ccc':'2019-01-23 09:00:59'}\n    if url in his:\n        hi = his[url]\n        \n    else:\n        his[url] = {}\n        hi = his[url]\n        \n    #hi = []\n    if hi:\n        val = list(hi.values())\n        val = sorted(val,reverse=True)\n        for index in range(len(val)):\n            items.append({\n                'label': name+ ':' +get_key(hi,val[index])[0] + ' - [查询时间：' + val[index] +']',\n                'path': plugin.url_for(url,value=get_key(hi,val[index])[0],page=1,mode=mode),\n            })\n        items.append({\n            'label': '[COLOR yellow]清除历史记录[/COLOR]',\n            'path': plugin.url_for('cleanhis',url=url),\n        })\n    else:\n        items.append({\n            'label': '[COLOR yellow]历史记录为空[/COLOR]',\n            'path': plugin.url_for(ok,value='历史记录为空'),\n        })\n\n    return items\n\n@plugin.route('/ok/<value>/')\ndef ok(value):\n    dialog = xbmcgui.Dialog()\n    ok = dialog.ok('提示', value)\n\n@plugin.route('/cleanhis/<url>/')\ndef cleanhis(url):\n    his[url] = {}\n    dialog = xbmcgui.Dialog()\n    ok = dialog.ok('提示', '清理历史记录成功')\n\n@plugin.route('/')\ndef index():\n    if 'homesort' in storage:\n        #用户设置的列表\n        nlist = []\n        for index in range(len(storage['homesort'])):\n            nlist.append(storage['homesort'][index]['link'])\n        nlist = set(nlist)\n        #默认列表\n        glist = []\n        for index in range(len(get_categories())):\n            glist.append(get_categories()[index]['link'])\n        glist = set(glist)\n        if nlist != glist:\n            if len(glist)-len(nlist) > 0:\n                h = '新增 '+str(len(glist)-len(nlist))\n            else:\n                h = '删减 '+str(abs(len(glist)-len(nlist)))\n            newhomesort = []\n            for index in range(len(get_categories())):\n                vlist = {}\n                vlist['id'] = get_categories()[index]['id']\n                vlist['name'] = get_categories()[index]['name']\n                vlist['link'] = get_categories()[index]['link']\n                vlist['author'] = get_categories()[index]['author']\n                vlist['upload'] = get_categories()[index]['upload']\n                if 'plot' in get_categories()[index]:\n                    vlist['plot'] = get_categories()[index]['plot']\n                for i in range(len(storage['homesort'])):\n                    if storage['homesort'][i]['link'] == get_categories()[index]['link']:\n                        vlist['id'] = storage['homesort'][i]['id']\n                        #vlist['name'] = storage['homesort'][i]['name']\n                        #vlist['link'] = storage['homesort'][i]['link']\n                newhomesort.append(vlist)\n            storage['homesort'] = newhomesort\n            categories = sorted(newhomesort,key=lambda k:k.get('id'))\n            dialog = xbmcgui.Dialog()\n            dialog.notification('首页已更新', h +'个网站', xbmcgui.NOTIFICATION_INFO, 5000)\n        else:\n            newhomesort = []\n            for index in range(len(get_categories())):\n                vlist = {}\n                vlist['id'] = get_categories()[index]['id']\n                vlist['name'] = get_categories()[index]['name']\n                vlist['link'] = get_categories()[index]['link']\n                vlist['author'] = get_categories()[index]['author']\n                vlist['upload'] = get_categories()[index]['upload']\n                if 'plot' in get_categories()[index]:\n                    vlist['plot'] = get_categories()[index]['plot']\n                for i in range(len(storage['homesort'])):\n                    if storage['homesort'][i]['link'] == get_categories()[index]['link']:\n                        vlist['id'] = storage['homesort'][i]['id']\n                        #vlist['name'] = storage['homesort'][i]['name']\n                        #vlist['link'] = storage['homesort'][i]['link']\n                newhomesort.append(vlist)\n            storage['homesort'] = newhomesort\n            categories = sorted(storage['homesort'],key=lambda k:k.get('id'))\n    else:\n        storage['homesort'] = get_categories()\n        categories = sorted(get_categories(),key=lambda k:k.get('id'))\n\n    items = []\n    for category in categories:\n        if category['id'] != 0:\n            if 'plot' in category:\n                items.append({\n                'label': category['name'],\n                'path': plugin.url_for('home',mode=category['link']),\n                'info': {'plot':'@[COLOR blue]' + category['author'] + '[/COLOR]'  + ':\\n\\n    ' + category['plot'],'status':category['upload']+ ' 更新','cast':[(category['author'],'插件作者')],'mediatype':'video'},\n                })\n            else:\n                items.append({\n                    'label': category['name'],\n                    'path': plugin.url_for('home',mode=category['link']),\n                    'info': {'status':category['upload']+ '更新','cast':[(category['author'],'插件作者')],'mediatype':'video'},\n                })\n    items.append({\n        'label': u'[COLOR yellow]设置[/COLOR]',\n        'path': plugin.url_for('setting'),\n    })\n    \n    return items\n\n@plugin.route('/setting')\ndef setting():\n    items = []\n    items.append({\n        'label': u'首页排序与屏蔽',\n        'path': plugin.url_for('homesort'),\n    })\n    items.append({\n        'label': u'关键词过滤 - 符合关键词的文字被替换成*，但是视频仍然显示在视频列表',\n        'path': plugin.url_for('keyword',key='keyword',name='关键词过滤'),\n    })\n    items.append({\n        'label': u'黑名单屏蔽 - 符合关键词的内容将不显示在视频列表中',\n        'path': plugin.url_for('keyword',key='blacklist',name='黑名单屏蔽'),\n    })\n    return items\n\n@plugin.route('/homesort')\ndef homesort():\n    items = []\n    if 'homesort' in storage:\n        hlist = sorted(storage['homesort'],key=lambda k:k.get('id'))\n        for index in range(len(hlist)):\n            items.append({\n                'label':'id:' + str(hlist[index]['id']) + ' - ' + hlist[index]['name'],\n                'path':plugin.url_for('homeedit',value=hlist[index]['link']),\n            })\n    else:\n        hhlist = get_categories()\n        hlist = sorted(hhlist,key=lambda k:k.get('id'))\n        for index in range(len(hlist)):\n            items.append({\n                'label':'id:' + str(hlist[index]['id']) + ' - ' + hlist[index]['name'],\n                'path':plugin.url_for('homeedit',value=hlist[index]['link']),\n            })\n        storage['homesort'] = hlist\n    return items\n\n@plugin.route('/homeedit/<value>/')\ndef homeedit(value):\n    hlist = storage['homesort']\n    for index in range(len(hlist)):\n        if hlist[index]['link'] == value:\n            dialog = xbmcgui.Dialog()\n            d = dialog.input('--------修改id--------\\nid从小到大排列，改为0不显示', defaultt=str(hlist[index]['id']),type=xbmcgui.INPUT_NUMERIC)\n            if d != '' and int(d) != int(hlist[index]['id']):\n                hlist[index]['id'] = int(d)\n                dialog.notification('提示', '修改成功', xbmcgui.NOTIFICATION_INFO, 5000)\n\n\n\n@plugin.route('/keyword/<key>/<name>')\ndef keyword(key,name):\n    items = []\n    items.append({\n        'label': '[COLOR yellow]新增'+name+'[/COLOR]',\n        'path': plugin.url_for('keywordxad',key=key,value='/null/',mode=3),\n    })\n    items.append({\n        'label': '[COLOR yellow]' + name + ' (状态:'+chushihua(key+'switch',0) +')[/COLOR]',\n        'path': plugin.url_for('switch',key=key+'switch'),\n    })\n    #storage['keyword'] = ['fuck','getout']\n    if key in storage:\n        ky = storage[key]\n    else:\n        ky = ['示例1','helloworld']\n        storage[key] = ky\n    \n    for index in range(len(ky)):\n        items.append({\n            'label': ky[index],\n            'path': plugin.url_for('keywordxad',key=key,value=ky[index],mode=0),\n        })\n    return items\n\n@plugin.route('/keywordxad/<key>/<value>/<mode>/')\ndef keywordxad(key,value,mode):\n    if int(mode) == 0:\n        items = []\n        items.append({\n            'label': '修改 - ' +str(value),\n            'path': plugin.url_for('keywordxad',key=key,value=value,mode=1),\n        })\n        items.append({\n            'label': '删除 - ' +str(value),\n            'path': plugin.url_for('keywordxad',key=key,value=value,mode=2),\n        })\n        return items\n    #修改\n    if int(mode) == 1:\n        dialog = xbmcgui.Dialog()\n        d = dialog.input('修改 '+ value, defaultt=value,type=xbmcgui.INPUT_ALPHANUM)\n        ky = storage[key]\n        if d != '':\n            if d != value:\n                ky.remove(value)\n                ky.append(d)\n\n                storage[key] = list(set(ky))\n                dialog.notification('提示', '修改成功', xbmcgui.NOTIFICATION_INFO, 5000)\n            \n            \n    #删除\n    if int(mode) == 2:\n        dialog = xbmcgui.Dialog()\n        ret = dialog.yesno('确认删除吗？', '删除：' + value)\n        if ret:\n            ky = storage[key]\n            ky.remove(value)\n            storage[key] = list(set(ky))\n            dialog = xbmcgui.Dialog()\n            dialog.notification('提示', '删除成功', xbmcgui.NOTIFICATION_INFO, 5000)\n    #新增\n    if int(mode) == 3:\n        dialog = xbmcgui.Dialog()\n        d = dialog.input('新增关键词，多个请用英文逗号隔开',type=xbmcgui.INPUT_ALPHANUM)\n        ky = storage[key]\n        if d != '':\n            if d.find(',') != -1:\n                k = d.split(',')\n                ky = k + ky\n            else:\n                ky.append(d)\n            storage[key] = list(set(ky))\n            dialog.notification('提示', '添加成功', xbmcgui.NOTIFICATION_INFO, 5000)\n\n\n@plugin.route('/switch/<key>/')\ndef switch(key):\n    if storage[key] == 1:\n        storage[key] = 0\n        dialog = xbmcgui.Dialog()\n        dialog.notification('提示', '已关闭', xbmcgui.NOTIFICATION_INFO, 5000)\n    else:\n        storage[key] = 1\n        dialog = xbmcgui.Dialog()\n        dialog.notification('提示', '已开启', xbmcgui.NOTIFICATION_INFO, 5000)\n\n\n@plugin.route('/labels/<label>/')\ndef show_label(label):\n    # 写抓取视频类表的方法\n    #\n    items = [\n        {'label': label},\n    ]\n    return items\n\n########################################################################################################################################\n########################################################################################################################################\n#####以下是本插件独占代码，bangumi插件没有 - 用于让用户快速对接支持maccms等采集站\n########################################################################################################################################\n########################################################################################################################################\n\ndef get_xml(url,t=1,debug='no'):\n    if debug == 'no':\n        if t == 1:\n            value = get_xml_1hour(url)\n        if t == 24:\n            value = get_xml_1day(url)\n    else:\n        r = requests.get(url,headers=headers)\n        r.encoding = 'utf-8'\n        r = r.text\n        value = ET.fromstring(r.encode('utf-8'))\n    return value\n \n@plugin.cached(TTL=60)\ndef get_xml_1hour(url):\n    r = requests.get(url,headers=headers)\n    r.encoding = 'utf-8'\n    r = r.text\n    value = ET.fromstring(r.encode('utf-8'))\n    return value\n\n@plugin.cached(TTL=60*24)\ndef get_xml_1day(url):\n    r = requests.get(url,headers=headers)\n    r.encoding = 'utf-8'\n    r = r.text\n    value = ET.fromstring(r.encode('utf-8'))\n    return value\n\ndef get_maccms_xml(api,url=0,keyword=0,page=0,banid='',debug='no'):\n    if url != 0 and page != 0 and keyword == 0:\n        #分类视频列表\n        root = get_xml(api + '?ac=videolist&t=' + str(url) + '&pg=' + str(page),debug=debug)\n        typelist = []\n        lis = root.find('list')\n        if int(lis.get('recordcount')) != 0:\n            dialog = xbmcgui.Dialog()\n            dialog.notification('第' + str(page) + '/' + lis.get('pagecount') + '页', '共' + lis.get('recordcount') + '个结果', xbmcgui.NOTIFICATION_INFO, 5000,False)\n            for vide in lis.findall('video'):\n                videoitem = {}\n                videoitem['name'] = vide.find('name').text\n                videoitem['href'] =  vide.find('id').text\n                videoitem['thumb'] = vide.find('pic').text\n                \n                videoitem['info'] = {}\n                videoitem['info']['title'] = vide.find('name').text\n                plot = unicode(vide.find('des').text)\n                plot = re.sub('<.*?>','',plot)\n                plot = re.sub('&#?[a-z0-9]+;','',plot)\n                plot = plot.replace(u'None','')\n                videoitem['info']['plot'] = plot\n                videoitem['info']['dateadded'] = vide.find('last').text\n                videoitem['info']['genre'] = [vide.find('type').text]        \n                videoitem['info']['country'] = [vide.find('area').text]\n                videoitem['info']['year'] = vide.find('year').text\n\n                #演员\n                acto = unicode(vide.find('actor').text)\n                if acto.find(u',') != -1:\n                    actor = acto.split(u',')\n                else:\n                    actor = [acto]\n                videoitem['info']['cast'] = actor\n\n                #导演\n                directo = unicode(vide.find('director').text)\n                if directo.find(u',') != -1:\n                    director = directo.split(u',')\n                else:\n                    director = directo\n                videoitem['info']['director'] = director\n                videoitem['info']['mediatype'] = 'video'\n                typelist.append(videoitem)\n            \n    else:\n        if url == 0 and keyword != 0 and page != 0:\n            #搜索列表\n            root = get_xml(api + '?ac=videolist&wd=' + str(keyword) + '&pg=' + str(page),debug=debug)\n            typelist = []\n            lis = root.find('list')\n            if int(lis.get('recordcount')) != 0:\n                dialog = xbmcgui.Dialog()\n                dialog.notification('第' + str(page) + '/' + lis.get('pagecount') + '页', '共' + lis.get('recordcount') + '个结果', xbmcgui.NOTIFICATION_INFO, 5000,False)\n                for vide in lis.findall('video'):\n                    videoitem = {}\n                    videoitem['name'] = vide.find('name').text\n                    videoitem['href'] =  vide.find('id').text\n                    videoitem['thumb'] = vide.find('pic').text\n                \n                    videoitem['info'] = {}\n                    videoitem['info']['title'] = vide.find('name').text\n                    plot = unicode(vide.find('des').text)\n                    plot = re.sub('<.*?>','',plot)\n                    plot = re.sub('&#?[a-z0-9]+;','',plot)\n                    plot = plot.replace(u'None','')\n                    videoitem['info']['plot'] = plot\n                    videoitem['info']['dateadded'] = vide.find('last').text\n                    videoitem['info']['genre'] = [vide.find('type').text]        \n                    videoitem['info']['country'] = [vide.find('area').text]\n                    videoitem['info']['year'] = vide.find('year').text\n\n                    #演员\n                    acto = unicode(vide.find('actor').text)\n                    if acto.find(u',') != -1:\n                        actor = acto.split(u',')\n                    else:\n                        actor = [acto]\n                    videoitem['info']['cast'] = actor\n\n                    #导演\n                    directo = unicode(vide.find('director').text)\n                    if directo.find(u',') != -1:\n                        director = directo.split(u',')\n                    else:\n                        director = directo\n                    videoitem['info']['director'] = director\n                    videoitem['info']['mediatype'] = 'video'\n                    typelist.append(videoitem)\n        else:\n            if url != 0 and keyword == 0 and page == 0:\n                #资源列表\n                root = get_xml(api + '?ac=videolist&ids=' + str(url),debug=debug,t=24)\n                typelist = []\n                dl = root.find('list').find('video').find('dl')\n                \n                for dd in dl.findall('dd'):\n                    duopname = dd.get('flag')\n                    strduop = unicode(dd.text)\n                    duopdict = {}\n                    if strduop.find(u'#') != -1:\n                        duoplist = strduop.split(u'#')\n                        for index in range(len(duoplist)):\n                            cut = duoplist[index].split(u'$')\n                            duopdict[cut[0]] = cut[1]\n                    else:\n                        cut = strduop.split(u'$')\n                        duopdict[cut[0]] = cut[1]\n                    typelist.append({'name':duopname,'href':str(duopdict)})\n                tmp['maccmsids'] = url\n                \n            else:\n                if url == 0 and keyword == 0 and page == 0:\n                    #分类列表\n                    root = get_xml(api + '?ac=list',debug=debug,t=24)\n                    clas = root.find('class')\n                    typelist = []\n                    #debug\n                    if debug != 'no':\n                        pDialog = xbmcgui.DialogProgress()\n                        pDialog.create('Debug模式', '收集信息中...')\n                        banlist = ''\n                        dnum = 1\n                        pagesize = '0'\n                        num = 1\n                    for ty in clas.findall('ty'):\n                        #debug\n                        if debug != 'no':\n                            tid = ty.get('id')\n                            root1 = get_xml(api + '?ac=videolist&pg=1&t=' + tid,debug=debug)\n                            lis1 = root1.find('list')\n                            pagesize = str(lis1.get('pagesize'))\n                            num = (float(dnum)/float(len(clas.findall('ty'))))*100\n                            dnum += 1\n                            pDialog.update(int(num), '收集信息中...' + str(round(num,2)) + '%')\n                            if int(lis1.get('recordcount')) <= int(lis1.get('pagesize')):\n                                banlist += ty.text.encode('utf-8') + '  ' + tid + '\\n'\n                        if banid != '':\n                            if re.search(',',banid):\n                                banidlist = banid.split(',')\n                            else:\n                                banidlist = [banid]\n                            if str(ty.get('id')) not in banidlist:\n                                typelist.append({'name':ty.text.encode('utf-8'),'link':ty.get('id')})\n                        else:\n                            typelist.append({'name':ty.text.encode('utf-8'),'link':ty.get('id')})\n                    #debug\n                    if debug != 'no':\n                        txt = '建议banid：\\n'\n                        txt += str(banlist)\n                        if pagesize != '0':\n                            txt += '\\n'\n                            txt += '-'*50\n                            txt += '\\n建议设置的video值：' + pagesize + '\\n'\n                        #搜索可用判断\n                        pDialog.update(50, '测试搜索中(1/2)...')\n                        r2 = get_html(api + '?ac=videolist&wd=万万')\n                        pDialog.update(100, '测试搜索中(2/2)...')\n                        r3 = get_html(api + '?ac=videolist&wd=季')\n                        txt += '-'*50\n                        txt += '\\n搜索api可用情况：'\n                        if diff_float(r2,r3) > 0.95:\n                            txt += '不同关键词搜索结果相似度' + str(round(diff_float(r2,r3)*100,2)) + '%，高于95%，判断此搜索api不可用，建议屏蔽搜索功能'\n                        else:\n                            txt += '不同关键词搜索结果相似度' + str(round(diff_float(r2,r3)*100,2)) + '%，低于95%，判断此搜索api可用'\n                        dialog = xbmcgui.Dialog()\n                        dialog.textviewer('debug',txt)\n                else:\n                    #mp4info\n                    info = {}\n                    root = get_xml(api + '?ac=videolist&ids=' + tmp['maccmsids'],debug=debug,t=24)\n                    vide = root.find('list').find('video')\n                    info['title'] = vide.find('name').text\n                    plot = unicode(vide.find('des').text)\n                    plot = re.sub('<.*?>','',plot)\n                    plot = re.sub('&#?[a-z0-9]+;','',plot)\n                    plot = plot.replace(u'None','')\n                    info['plot'] = plot\n                    info['dateadded'] = vide.find('last').text\n                    info['genre'] = [vide.find('type').text]\n                    info['country'] = [vide.find('area').text]\n                    info['year'] = vide.find('year').text\n\n                    #演员\n                    acto = unicode(vide.find('actor').text)\n                    if acto.find(u',') != -1:\n                        actor = acto.split(u',')\n                    else:\n                        actor = [acto]\n                    info['cast'] = actor\n\n                    #导演\n                    directo = unicode(vide.find('director').text)\n                    if directo.find(u',') != -1:\n                        director = directo.split(u',')\n                    else:\n                        director = directo\n                    info['director'] = director\n                    info['mediatype'] = 'video'\n                    typelist = info\n    # dialog = xbmcgui.Dialog()\n    # dialog.textviewer('错误提示', str(xx.encode('utf-8')))\n\n    return typelist\n########################################################################################################################################\n########################################################################################################################################\n#####json\n########################################################################################################################################\n########################################################################################################################################\ndef get_json(url,t=1,debug='no'):\n    if debug == 'no':\n        if t == 1:\n            value = get_json_1hour(url)\n        if t == 24:\n            value = get_json_1day(url)\n    else:\n        r = requests.get(url,headers=headers)\n        r.encoding = 'utf-8'\n        r = r.text\n        value = json.loads(r)\n    return value\n \n@plugin.cached(TTL=60)\ndef get_json_1hour(url):\n    r = requests.get(url,headers=headers)\n    r.encoding = 'utf-8'\n    r = r.text\n    value = json.loads(r)\n    return value\n\n@plugin.cached(TTL=60*24)\ndef get_json_1day(url):\n    r = requests.get(url,headers=headers)\n    r.encoding = 'utf-8'\n    r = r.text\n    value = json.loads(r)\n    return value\n\ndef get_maccms_json(api,url=0,keyword=0,page=0,banid='',debug='no'):\n    if url != 0 and page != 0 and keyword == 0:\n        #分类视频列表\n        j = get_json(api + '?ac=videolist&t=' + str(url) + '&pg=' + str(page),debug=debug)\n        typelist = []\n        lis = j['list']\n        if int(j['total']) != 0:\n            dialog = xbmcgui.Dialog()\n            dialog.notification('第' + str(page) + '/' + str(j['pagecount']) + '页', '共' + str(j['total']) + '个结果', xbmcgui.NOTIFICATION_INFO, 5000,False)\n            for i in range(len(lis)):\n                videoitem = {}\n                videoitem['name'] = lis[i]['vod_name']\n                videoitem['href'] =  lis[i]['vod_id']\n                videoitem['thumb'] = lis[i]['vod_pic']\n                \n                videoitem['info'] = {}\n                videoitem['info']['title'] = lis[i]['vod_name']\n                videoitem['info']['dateadded'] = lis[i]['vod_time']\n                videoitem['info']['country'] = [lis[i]['vod_area']]\n                videoitem['info']['year'] = lis[i]['vod_year']\n                plot = lis[i]['vod_content']\n                plot = re.sub('<.*?>','',plot)\n                plot = re.sub('&#?[a-z0-9]+;','',plot)\n                plot = plot.replace('None','')\n                videoitem['info']['plot'] = plot\n                #分类\n                genr = lis[i]['vod_class']\n                if genr.find(u',') != -1:\n                    genre = genr.split(u',')\n                else:\n                    genre = [genr]\n                videoitem['info']['genre'] = genre\n\n                #演员\n                acto = lis[i]['vod_actor']\n                if acto.find(u',') != -1:\n                    actor = acto.split(u',')\n                else:\n                    actor = [acto]\n                videoitem['info']['cast'] = actor\n\n                #导演\n                directo = lis[i]['vod_director']\n                if directo.find(u',') != -1:\n                    director = directo.split(u',')\n                else:\n                    director = directo\n                videoitem['info']['director'] = director\n                videoitem['info']['mediatype'] = 'video'\n                typelist.append(videoitem)\n            \n    else:\n        if url == 0 and keyword != 0 and page != 0:\n            #搜索列表\n            j = get_json(api + '?ac=videolist&wd=' + str(keyword) + '&pg=' + str(page),debug=debug)\n            typelist = []\n            lis = j['list']\n            if int(j['total']) != 0:\n                dialog = xbmcgui.Dialog()\n                dialog.notification('第' + str(page) + '/' + str(j['pagecount']) + '页', '共' + str(j['total']) + '个结果', xbmcgui.NOTIFICATION_INFO, 5000,False)\n                for i in range(len(lis)):\n                    videoitem = {}\n                    videoitem['name'] = lis[i]['vod_name']\n                    videoitem['href'] =  lis[i]['vod_id']\n                    videoitem['thumb'] = lis[i]['vod_pic']\n                \n                    videoitem['info'] = {}\n                    videoitem['info']['title'] = lis[i]['vod_name']\n                    videoitem['info']['dateadded'] = lis[i]['vod_time']\n                    videoitem['info']['country'] = [lis[i]['vod_area']]\n                    videoitem['info']['year'] = lis[i]['vod_year']\n\n                    plot = lis[i]['vod_content']\n                    plot = re.sub('<.*?>','',plot)\n                    plot = re.sub('&#?[a-z0-9]+;','',plot)\n                    plot = plot.replace(u'None','')\n                    videoitem['info']['plot'] = plot\n                    #分类\n                    genr = lis[i]['vod_class']\n                    if genr.find(u',') != -1:\n                        genre = genr.split(u',')\n                    else:\n                        genre = [genr]\n                    videoitem['info']['genre'] = genre\n\n                    #演员\n                    acto = lis[i]['vod_actor']\n                    if acto.find(u',') != -1:\n                        actor = acto.split(u',')\n                    else:\n                        actor = [acto]\n                    videoitem['info']['cast'] = actor\n\n                    #导演\n                    directo = lis[i]['vod_director']\n                    if directo.find(u',') != -1:\n                        director = directo.split(u',')\n                    else:\n                        director = directo\n                    videoitem['info']['director'] = director\n                    videoitem['info']['mediatype'] = 'video'\n                    typelist.append(videoitem)\n        else:\n            if url != 0 and keyword == 0 and page == 0:\n                #资源列表\n                j = get_json(api + '?ac=videolist&ids=' + str(url),debug=debug,t=24)\n                typelist = []\n                dl = j['list'][0]\n                \n                duopname = dl['vod_play_from']\n                strduop = dl['vod_play_url']\n                duopdict = {}\n                if strduop.find(u'#') != -1:\n                    duoplist = strduop.split(u'#')\n                    for index in range(len(duoplist)):\n                        cut = duoplist[index].split(u'$')\n                        duopdict[cut[0]] = cut[1]\n                else:\n                    cut = strduop.split(u'$')\n                    duopdict[cut[0]] = cut[1]\n                typelist.append({'name':duopname,'href':str(duopdict)})\n                tmp['maccmsids'] = url\n                \n            else:\n                if url == 0 and keyword == 0 and page == 0:\n                    #分类列表\n                    j = get_json(api + '?ac=list',debug=debug,t=24)\n                    typelist = []\n                    #debug\n                    if debug != 'no':\n                        pDialog = xbmcgui.DialogProgress()\n                        pDialog.create('Debug模式', '收集信息中...')\n                        banlist = ''\n                        dnum = 1\n                        pagesize = '0'\n                        num = 1\n                    for i in range(len(j['class'])):\n                        #debug\n                        if debug != 'no':\n                            tid = j['class'][i]['type_id']\n                            j1 = get_json(api + '?ac=videolist&pg=1&t=' + str(tid),debug=debug)\n                            pagesize = str(j['limit'])\n                            num = (float(dnum)/float(len(j['class'])))*100\n                            dnum += 1\n                            pDialog.update(int(num), '收集信息中...' + str(round(num,2)) + '%')\n                            if int(j1['total']) <= int(j1['limit']):\n                                banlist += j['class'][i]['type_name'].encode('utf-8') + '  ' + str(tid) + '\\n'\n                        if banid != '':\n                            if re.search(',',banid):\n                                banidlist = banid.split(',')\n                            else:\n                                banidlist = [banid]\n                            if str(j['class'][i]['type_id']) not in banidlist:\n                                typelist.append({'name':j['class'][i]['type_name'].encode('utf-8'),'link':j['class'][i]['type_id']})\n                        else:\n                            typelist.append({'name':j['class'][i]['type_name'].encode('utf-8'),'link':j['class'][i]['type_id']})\n                    #debug\n                    if debug != 'no':\n\n                        txt = '建议banid：\\n'\n                        txt += str(banlist)\n                        if pagesize != '0':\n                            txt += '\\n'\n                            txt += '-'*50\n                            txt += '\\n建议设置的video值：' + pagesize + '\\n'\n                        #搜索可用判断\n                        pDialog.update(50, '测试搜索中(1/2)...')\n                        r2 = get_html(api + '?ac=videolist&wd=万万')\n                        pDialog.update(100, '测试搜索中(2/2)...')\n                        r3 = get_html(api + '?ac=videolist&wd=季')\n                        txt += '-'*50\n                        txt += '\\n搜索api可用情况：'\n                        if diff_float(r2,r3) > 0.95:\n                            txt += '不同关键词搜索结果相似度' + str(round(diff_float(r2,r3)*100,2)) + '%，高于95%，判断此搜索api不可用，建议屏蔽搜索功能'\n                        else:\n                            txt += '不同关键词搜索结果相似度' + str(round(diff_float(r2,r3)*100,2)) + '%，低于95%，判断此搜索api可用'\n                        dialog = xbmcgui.Dialog()\n                        dialog.textviewer('debug',txt)\n                else:\n                    #mp4info\n                    info = {}\n                    j = get_json(api + '?ac=videolist&ids=' + tmp['maccmsids'],debug=debug,t=24)\n                    typelist = []\n                    vide = j['list'][0]\n                    info['title'] = vide['vod_name']\n                    plot = vide['vod_content']\n                    plot = re.sub('<.*?>','',plot)\n                    plot = re.sub('&#?[a-z0-9]+;','',plot)\n                    plot = plot.replace(u'None','')\n                    info['plot'] = plot\n                    info['dateadded'] = vide['vod_time']\n                    info['country'] = [vide['vod_area']]\n                    info['year'] = vide['vod_year']\n\n                    #分类\n                    genr = vide['vod_class']\n                    if genr.find(u',') != -1:\n                        genre = genr.split(u',')\n                    else:\n                        genre = [genr]\n                    info['genre'] = genre\n\n                     #演员\n                    acto = vide['vod_actor']\n                    if acto.find(u',') != -1:\n                        actor = acto.split(u',')\n                    else:\n                        actor = [acto]\n                    info['cast'] = actor\n\n                    #导演\n                    directo = vide['vod_director']\n                    if directo.find(u',') != -1:\n                        director = directo.split(u',')\n                    else:\n                        director = directo\n                    info['director'] = director\n                    info['mediatype'] = 'video'\n                    typelist = info\n    # dialog = xbmcgui.Dialog()\n    # dialog.textviewer('错误提示', str(xx.encode('utf-8')))\n\n    return typelist\n\n\n\n\n#对接sharelist搭建的网盘站\ndef get_sharelist(home):\n    typelist = []\n    typelist.append({'name':'mode','link':'sharelist'})\n    r = get_html(home)\n    rurl = get_html(home,mode='url')\n    soup = BeautifulSoup(r, \"html5lib\")\n    files = soup.find_all('a')\n\n    baseurl = re.search('(http(s)?:\\/\\/).*?\\/',rurl).group()\n    \n    if baseurl[-1:] == '/':\n        baseurl = baseurl[:-1]\n\n    for index in range(len(files)):\n        try:\n            x = 0\n            if files[index]['href'] != '/':\n                files[index]['href'] = files[index]['href'].replace('?preview','')\n                if files[index]['href'][:4] != 'http':\n                    flink = baseurl + files[index]['href']\n                else:\n                    flink = files[index]['href']\n\n                if files[index]['href'][-1:] == '/':\n                    fname = files[index]['href'][:-1]\n                else:\n                    fname = files[index]['href']\n                \n                if fname != '':\n                    fname = re.search('[^/]+(?!.*/)',fname).group()\n                fname = urldecode(fname)\n\n                if typelist != []:\n                    #对比和已有列表是否有重复项\n                    for i in range(len(typelist)):\n                        if typelist[i]['link'] != flink:\n                            x = x+1\n                    \n                    if x ==  len(typelist) and fname != '':\n                        typelist.append({'name':fname + ' - [COLOR gray]' + urldecode(flink) + '[/COLOR]','link':flink})\n                            \n                else:\n                    typelist.append({'name':fname + ' - [COLOR gray]' + urldecode(flink) + '[/COLOR]','link':flink})\n                    # nowlist.append(fname)\n                \n                \n        except KeyError:\n            pass\n    # lastlist = nowlist\n    # dialog = xbmcgui.Dialog()\n    # dialog.textviewer('错误提示', str(lastlist))\n    return typelist\n\n\n#对接原版goindex\ndef get_goindex(home):\n    typelist = []\n    typelist.append({'name':'mode','link':'goindex'})\n    if re.search('workers.dev',home):\n        r = post_html(home,str({\"password\":\"null\"}),cf=1)\n    else:\n        r = post_html(home,str({\"password\":\"null\"}))\n\n    j = json.loads(r)\n    fl = j['files']\n    for i in range(len(fl)):\n        if re.match('[^/]+\\.[a-zA-Z0-9]{1,4}',fl[i]['name']):\n            #文件\n            typelist.append({'name':fl[i]['name'] + u' - [COLOR gray]' + home.decode('utf-8') + urldecode(fl[i]['name']) + u'[/COLOR]','link':home.decode('utf-8') + fl[i]['name']})\n        else:\n            #文件夹\n            typelist.append({'name':fl[i]['name'] + u' - [COLOR gray]' + home.decode('utf-8') + urldecode(fl[i]['name']) + u'/[/COLOR]','link':home.decode('utf-8') + fl[i]['name'] + u'/'})\n    return typelist\n\n#对接yanzai修改版goindex - 官网demo 2020-4-28版本测试通过\ndef get_yanzaigoindex(home):\n    if re.search('\\|',home):\n        \n        ho = home.split('|')\n        home = ho[0]\n        if len(ho) == 3:\n            pindex = int(ho[1])\n            ptoken = ho[2]\n    else:\n        pindex = 0\n        ptoken = ''\n\n    typelist = []\n    typelist.append({'name':'mode','link':'yanzaigoindex'})\n\n    if re.search('\\/[0-9]+\\:\\/',home):\n        #不是首页，不检索有几个网盘\n        if re.search('workers.dev',home):\n            r0 = requests.get(home)\n            if r0.status_code != requests.codes.ok:\n                #检测到状态码401 需要登录\n\n                # dialog = xbmcgui.Dialog()\n                # dialog.textviewer('错误提示', str(r0.status_code))\n                if tmp['yanzaiuser'] and tmp['yanzaipass']:\n                    #尝试用缓存的账号密码登录\n                    scraper = cfscrape.create_scraper()\n                    s = scraper.get_tokens(home,headers=headers,auth=HTTPBasicAuth(tmp['yanzaiuser'], tmp['yanzaipass']))\n\n                    r = requests.post(home,data={\"password\":\"\",\"page_token\":ptoken,\"page_index\":pindex},headers=headers,cookies=s[0],auth=HTTPBasicAuth(tmp['yanzaiuser'], tmp['yanzaipass']))\n                    if r.status_code == 200:\n                        #登录成功\n                        j = json.loads(r.text)\n                    else:\n                        #失败，要求输入账号密码\n                        dialog = xbmcgui.Dialog()\n                        username = dialog.input('查看加密文件夹(1/2)\\n-- 请输入用户名 --', type=xbmcgui.INPUT_ALPHANUM)\n                        password = dialog.input('查看加密文件夹(2/2)\\n-- 请输入密码 --', type=xbmcgui.INPUT_ALPHANUM)\n                        scraper = cfscrape.create_scraper()\n                        s = scraper.get_tokens(home,headers=headers,auth=HTTPBasicAuth(username, password))\n                        r = requests.post(home,data={\"password\":\"\",\"page_token\":ptoken,\"page_index\":pindex},headers=headers,cookies=s[0],auth=HTTPBasicAuth(username, password))\n                        j = json.loads(r.text)\n                        tmp['yanzaiuser'] = username\n                        tmp['yanzaipass'] = password\n                else:\n                    dialog = xbmcgui.Dialog()\n                    username = dialog.input('查看加密文件夹(1/2)\\n-- 请输入用户名 --', type=xbmcgui.INPUT_ALPHANUM)\n                    password = dialog.input('查看加密文件夹(2/2)\\n-- 请输入密码 --', type=xbmcgui.INPUT_ALPHANUM)\n                    scraper = cfscrape.create_scraper()\n                    s = scraper.get_tokens(home,headers=headers,auth=HTTPBasicAuth(username, password))\n                \n                    r = requests.post(home,data={\"password\":\"\",\"page_token\":ptoken,\"page_index\":pindex},headers=headers,cookies=s[0],auth=HTTPBasicAuth(username, password))\n                    # dialog = xbmcgui.Dialog()\n                    # dialog.textviewer('错误提示', str(r.status_code))\n                    j = json.loads(r.text)\n                    tmp['yanzaiuser'] = username\n                    tmp['yanzaipass'] = password\n            else:\n                #网盘没有加密\n                r = post_html(home,str({\"password\":\"\",\"page_token\":ptoken,\"page_index\":pindex}),cf=1)\n                try:\n                    j = json.loads(r)\n                except ValueError:\n                    r = post_html(home,jsons=str({\"password\":\"\",\"page_token\":ptoken,\"page_index\":pindex,\"q\": \"\"}),cf=1)\n                    j = json.loads(r)\n        else:\n            r0 = requests.get(home)\n            if r0.status_code != requests.codes.ok:\n                #检测到状态码401 需要登录\n                if tmp['yanzaiuser'] and tmp['yanzaipass']:\n                    #尝试用缓存的账号密码登录\n                    r = requests.post(home,data={\"password\":\"\",\"page_token\":ptoken,\"page_index\":pindex},headers=headers,auth=HTTPBasicAuth(tmp['yanzaiuser'],tmp['yanzaipass']))\n                    if r.status_code == 200:\n                        #登录成功\n                        j = json.loads(r.text)\n                    else:\n                        #失败，要求输入账号密码\n                        dialog = xbmcgui.Dialog()\n                        username = dialog.input('查看加密文件夹(1/2)\\n-- 请输入用户名 --', type=xbmcgui.INPUT_ALPHANUM, option=xbmcgui.ALPHANUM_HIDE_INPUT)\n                        password = dialog.input('查看加密文件夹(2/2)\\n-- 请输入密码 --', type=xbmcgui.INPUT_ALPHANUM, option=xbmcgui.ALPHANUM_HIDE_INPUT)\n                        r = requests.post(home,data={\"password\":\"\",\"page_token\":ptoken,\"page_index\":pindex},headers=headers,auth=HTTPBasicAuth(username, password))\n                        j = json.loads(r.text)\n                        tmp['yanzaiuser'] = username\n                        tmp['yanzaipass'] = password\n                else:\n                    dialog = xbmcgui.Dialog()\n                    username = dialog.input('查看加密文件夹(1/2)\\n-- 请输入用户名 --', type=xbmcgui.INPUT_ALPHANUM, option=xbmcgui.ALPHANUM_HIDE_INPUT)\n                    password = dialog.input('查看加密文件夹(2/2)\\n-- 请输入密码 --', type=xbmcgui.INPUT_ALPHANUM, option=xbmcgui.ALPHANUM_HIDE_INPUT)\n                    r = requests.post(home,data={\"password\":\"\",\"page_token\":ptoken,\"page_index\":pindex},headers=headers,auth=HTTPBasicAuth(username, password))\n                    j = json.loads(r.text)\n                    tmp['yanzaiuser'] = username\n                    tmp['yanzaipass'] = password\n            else:\n                #网盘没有加密\n                r = post_html(home,str({\"password\":\"\",\"page_token\":ptoken,\"page_index\":pindex}))\n                try:\n                    j = json.loads(r)\n                except ValueError:\n                    r = post_html(home,jsons=str({\"password\":\"\",\"page_token\":ptoken,\"page_index\":pindex,\"q\": \"\"}))\n                    j = json.loads(r)\n        \n        \n        fl = j['data']['files']\n        for i in range(len(fl)):\n            if re.match('[^/]+\\.[a-zA-Z0-9]{1,4}',fl[i]['name']):\n                #文件\n                typelist.append({'name':fl[i]['name'] + u' - [COLOR gray]' + home.decode('utf-8') + urldecode(fl[i]['name']) + u'[/COLOR]','link':home.decode('utf-8') + fl[i]['name']})\n            else:\n                #文件夹\n                typelist.append({'name':fl[i]['name'] + u' - [COLOR gray]' + home.decode('utf-8') + urldecode(fl[i]['name']) + u'/[/COLOR]','link':home.decode('utf-8') + fl[i]['name'] + u'/'})\n        if j['nextPageToken']:\n            # dialog = xbmcgui.Dialog()\n            # dialog.textviewer('错误提示', str(j['nextPageToken'].encode('utf-8')))\n            typelist.append({'name':u'[COLOR yellow]下一页[/COLOR]','link':home + '|' + str(pindex+1) + '|' + j['nextPageToken'].encode('utf-8')})\n        \n    else:\n        #检索有几个网盘\n        if re.search('workers.dev',home):\n            r = get_html(home,cf=1)\n        else:\n            r = get_html(home)\n        try:\n            ser = re.search('\\[(\\\"|\\').*?(\\\"|\\')\\]',r).group()\n            dlist = eval(ser)\n            for i in range(len(dlist)):\n                typelist.append({'name':dlist[i].decode('utf-8') + u' - [COLOR gray]' + home.decode('utf-8') + str(i) +  u':/[/COLOR]','link':home.decode('utf-8') + str(i) +  u':/'})\n        except NameError:\n            pass\n    return typelist\n\n    \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nif __name__ == '__main__':\n    plugin.run()\n"
  },
  {
    "path": "plugin.video.cine/addon.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>\n<addon id=\"plugin.video.cine\" name=\"Cine beta\" version=\"0.1.0\" provider-name=\"zhengfan\">\n  <requires>\n    <import addon=\"xbmc.python\" version=\"2.1.0\"/>\n    <import addon=\"script.module.xbmcswift2\" version=\"2.4.0\"/>\n  <import addon=\"script.module.beautifulsoup4\" version=\"4.5.3\"/>\n  <import addon=\"script.module.requests\" version=\"2.19.1\"/>\n  <import addon=\"script.module.html5lib\" version=\"0.999.0\"/>\n  <import addon=\"script.module.cfscrape\" version=\"1.6.9\"/>\n  </requires>\n  <extension point=\"xbmc.python.pluginsource\" library=\"addon.py\">\n    <provides>video</provides>\n  </extension>\n  <extension point=\"xbmc.addon.metadata\">\n    <platform>all</platform>\n    <language></language>\n    <description>Cine插件是一个电影电视剧网站聚合插件，它是vid插件的改进版，为适配电影网站而生</description>\n    <assets>\n      <icon>icon.png</icon>\n      <fanart>fanart.png</fanart> \n    </assets>\n    <news>首个版本</news>\n  </extension>\n</addon>\n"
  },
  {
    "path": "plugin.video.cine/readme.md",
    "content": "# cine for kodi 0.2.0\n## :black_nib: 简介\n- cine插件是一个电影网站聚合插件，它是vid插件的改进版，为适配电影网站而生\n\n---\n## 主要功能\n适配网站 | 网址\n---- | ---- \n喜欢看影视 | https://138vcd.com/\n片库 | https://pianku.tv/\n老豆瓣 | https://laodouban.com/\n美剧天堂 | https://www.meijutt.tv/\n豆瓣电影资源 | http://douban777.com/\n快影资源 | https://kyzy.tv/\n卧龙资源 | https://wolongzy.net/\nOK资源 | https://www.okzyw.com/\n麻花资源 | http://www.mahuazy.net/\n最大资源 | http://www.zuidazy5.com/\n采集资源 | https://www.caijizy.vip/\n哈酷资源 | http://www.666zy.com/\n\n----\n## 更新历史\n > -[v0.2.0]----------------------  \n > core - 内置函数增加新功能  \n > core - 新增maccms函数，快速适配采集站  \n > 修复 - 视频列表为空时报错  \n > 新增 - 切勿轻信视频内广告的提示  \n > 新增 - 片库，老豆瓣，美剧天堂等11个网站适配  \n > -[v0.1.0]----------------------  \n > 发布 - 首个版本  \n## :beginner: 开始使用\n\n### 下载依赖\n\n先安装script.module.pyjsparser.zip等待安装成功\n\n接着安装 script.module.js2py.zip，等待安装成功\n\n最后安装script.module.cfscrape.zip，等待安装成功\n\n---\n\n因为适配maccms采集站，需要解析到xml，因此cine beta 0.2.0+需要额外安装依赖\nscript.module.elementtree.zip\n\n---\n\n下载地址：https://pan.lanzou.com/u/zheng2014\n\n## 开发文档\n\n已经移动至[wiki](https://github.com/zhengfan2014/xbmc-kodi-private-china-addons/wiki)\n"
  },
  {
    "path": "plugin.video.cine/resources/__init__.py",
    "content": ""
  },
  {
    "path": "plugin.video.cine/resources/language/English/strings.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?>\n<strings>\n  <!-- Plugin name -->\n  <string id=\"30000\">bilibili</string>\n</strings>\n"
  },
  {
    "path": "plugin.video.cine/resources/lib/__init__.py",
    "content": ""
  },
  {
    "path": "plugin.video.clicli[停止更新]/addon.py",
    "content": "#!/usr/bin/env python\n# -*- coding:utf-8 -*-\nimport re\nfrom xbmcswift2 import Plugin\nimport requests\nfrom bs4 import BeautifulSoup\nimport xbmcgui\nimport base64\nimport json\nimport urllib2\nimport sys\nimport HTMLParser\nimport re\nimport cfscrape\n\n\n\ndef unescape(string):\n    string = urllib2.unquote(string).decode('utf8')\n    quoted = HTMLParser.HTMLParser().unescape(string).encode('utf-8')\n    #转成中文\n    return re.sub(r'%u([a-fA-F0-9]{4}|[a-fA-F0-9]{2})', lambda m: unichr(int(m.group(1), 16)), quoted)\n\n\nplugin = Plugin()\n\nuseragent = 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.122 Safari/537.36'\nheaders = {'user-agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.122 Safari/537.36'}\n\ndef jserror(html):\n    dialog = xbmcgui.Dialog()\n    ok = dialog.ok('错误提示',str(html))\n    dialog = xbmcgui.Dialog()\n    ok = dialog.ok('错误提示', '出现了奇怪的错误呢，可能是你的ip进该网站黑名单了呢，24小时后再试吧（或者换个ip？）\\n如果换ip也不能访问可能网站页面改了解析失败了呢，耐心等作者修复')\n    return 1\n\n\ndef get_categories():\n    return [{'name':'编辑推荐','link':'https://api.clicli.us/posts?status=public&sort=&tag=%E6%8E%A8%E8%8D%90&uid=&page=1&pageSize=10'},\n            {'name':'新番表','link':'https://api.clicli.us/posts?status=nowait&sort=%E6%96%B0%E7%95%AA&tag=&uid=&page=1&pageSize=100'},\n            {'name':'排行','link':'https://api.clicli.us/rank'},\n            {'name':'最近更新','link':'https://api.clicli.us/posts?status=public&sort=bgm&tag=&uid=&page=1&pageSize=30'}]\n\n@plugin.cached(TTL=60)\ndef get_videos(url):\n    #爬视频列表的\n    videos = []\n    scraper = cfscrape.create_scraper()\n    html = scraper.get(url).content\n    #dialog = xbmcgui.Dialog()\n    #ok = dialog.ok('错误提示', str(html))\n    try:\n        j = json.loads(html)\n        for index in range(len(j['posts'])):\n            con = j['posts'][index]['content']\n            img = re.search('!\\\\[[^\\\\]]+\\\\]\\\\([^\\\\)]+\\\\)', con)\n            videoitem = {}\n            videoitem['name'] = '[' + j['posts'][index]['sort'].encode('utf-8') + ']' + j['posts'][index]['title'].encode('utf-8') + ' (' + j['posts'][index]['time'].encode('utf-8') + '更新)'\n            videoitem['href'] = j['posts'][index]['id']\n            videoitem['thumb'] = img.group()[7:-1]\n            videos.append(videoitem)  \n    except ValueError:\n        jserror(html)\n    return videos\n\n@plugin.cached(TTL=60)\ndef get_duop(id):\n    #爬视频列表的\n    videos = []\n    scraper = cfscrape.create_scraper()\n    html = scraper.get('https://api.clicli.us/videos?pid=' + str(id) +'&page=1&pageSize=150').content\n    #dialog = xbmcgui.Dialog()\n    #ok = dialog.ok('错误提示', str(html))\n    try:\n        j = json.loads(html)\n        pnum = 1\n        for index in range(len(j['videos'])):\n            pp = str(pnum)\n            pp = pp.encode('utf-8')\n            videoitem = {}\n            videoitem['name'] = '[' + pp + ']' + j['videos'][index]['title'].encode('utf-8')\n            videoitem['href'] = j['videos'][index]['content']\n            videos.append(videoitem)\n            pnum += 1  \n    except ValueError:\n        jserror(html)\n    except TypeError:\n        dialog = xbmcgui.Dialog()\n        ok = dialog.ok('错误提示', '这个不是视频哦')\n    return videos\n\n@plugin.cached(TTL=60)\ndef get_mp4(url):\n    url = 'https://jx.clicli.us/jx?url=' + url\n    scraper = cfscrape.create_scraper()\n    html = scraper.get(url).content\n    try:\n        j = json.loads(html)\n        mp4 = j['url'] \n    except ValueError:\n        jserror(html)\n    return mp4\n\n@plugin.route('/play/<name>/<url>/')\ndef play(name,url):\n        \n        items = []\n        #print(rec.text)\n        mp4 = get_mp4(url)\n        #print(mp4['src'])\n        item = {'label': name,'path':mp4,'is_playable': True}\n        items.append(item)\n        return items\n\n@plugin.route('/duop/<id>/')\ndef duop(id):\n    #dialog = xbmcgui.Dialog()\n    #ok = dialog.ok('错误提示', url)\n\n    videos = get_duop(id)\n    items = [{\n        'label': video['name'],\n        'path': plugin.url_for('play', name=video['name'] , url=video['href']),\n    } for video in videos]\n\n    sorted_items = items\n    #sorted_items = sorted(items, key=lambda item: item['label'])\n    return sorted_items\n\n@plugin.route('/category/<name>/<url>/')\ndef category(name,url):\n    #dialog = xbmcgui.Dialog()\n    #ok = dialog.ok('错误提示', url)\n\n    videos = get_videos(url)\n    items = [{\n        'label': video['name'],\n        'path': plugin.url_for('duop', id=video['href']),\n\t'thumbnail': video['thumb'],\n        'icon': video['thumb'],\n    } for video in videos]\n\n    sorted_items = items\n    #sorted_items = sorted(items, key=lambda item: item['label'])\n    return sorted_items\n\n\n@plugin.route('/')\ndef index():\n    categories = get_categories()\n    items = [{\n        'label': category['name'],\n        'path': plugin.url_for('category', name=category['name'] , url=category['link']),\n    } for category in categories]\n\n    \n    return items\n\n\n@plugin.route('/labels/<label>/')\ndef show_label(label):\n    # 写抓取视频类表的方法\n    #\n    items = [\n        {'label': label},\n    ]\n    return items\n\nif __name__ == '__main__':\n    plugin.run()\n"
  },
  {
    "path": "plugin.video.clicli[停止更新]/addon.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>\n<addon id=\"plugin.video.clili\" name=\"clicli\" version=\"0.1.0\" provider-name=\"zhengfan\">\n  <requires>\n    <import addon=\"xbmc.python\" version=\"2.1.0\"/>\n    <import addon=\"script.module.xbmcswift2\" version=\"2.4.0\"/>\n  <import addon=\"script.module.beautifulsoup4\" version=\"4.5.3\"/>\n  <import addon=\"script.module.requests\" version=\"2.19.1\"/>\n  <import addon=\"script.module.html5lib\" version=\"0.999.0\"/>\n  <import addon=\"script.module.cfscrape\" version=\"1.6.9\"/>\n  </requires>\n  <extension point=\"xbmc.python.pluginsource\" library=\"addon.py\">\n    <provides>video</provides>\n  </extension>\n  <extension point=\"xbmc.addon.metadata\">\n    <platform>all</platform>\n    <language></language>\n    <description>clicli弹幕网，简称c站或clicli，类似于早期的b站，提供无修新番、1080p动漫在线观看，1080p、不限码率的原创视频上传</description>\n    <assets>\n      <icon>icon.png</icon>\n      <fanart>fanart.png</fanart> \n    </assets>\n    <news>首个版本</news>\n  </extension>\n</addon>\n"
  },
  {
    "path": "plugin.video.clicli[停止更新]/resources/__init__.py",
    "content": ""
  },
  {
    "path": "plugin.video.clicli[停止更新]/resources/language/English/strings.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?>\n<strings>\n  <!-- Plugin name -->\n  <string id=\"30000\">bilibili</string>\n</strings>\n"
  },
  {
    "path": "plugin.video.clicli[停止更新]/resources/lib/__init__.py",
    "content": ""
  },
  {
    "path": "plugin.video.huanxi/addon.py",
    "content": "#!/usr/bin/env python\n# -*- coding:utf-8 -*-\nimport re\nfrom xbmcswift2 import Plugin\nimport requests\nfrom bs4 import BeautifulSoup\nimport xbmcgui\nimport base64\nimport json\nimport urllib2\nimport sys\nimport HTMLParser\nimport re\n\ndef get_real_url(url):\n    rs = requests.get(url,headers=headers,timeout=2)\n    return rs.url\n\ndef unescape(string):\n    string = urllib2.unquote(string).decode('utf8')\n    quoted = HTMLParser.HTMLParser().unescape(string).encode('utf-8')\n    #转成中文\n    return re.sub(r'%u([a-fA-F0-9]{4}|[a-fA-F0-9]{2})', lambda m: unichr(int(m.group(1), 16)), quoted)\n\n\nplugin = Plugin()\n\n\nheaders = {'user-agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.122 Safari/537.36'}\n\n\ndef get_categories():\n    return [{'name':'首映厅','link':'shouying'},\n            {'name':'纪录片','link':'jilu'}]\n\n@plugin.cached(TTL=60)\ndef get_shouying():\n    videos = []\n    url = 'https://www.huanxi.com/player.shtml'\n    rec = requests.get(url,headers=headers)\n    rec.encoding = 'utf-8'\n    cag=1\n    #print(rec.text)\n    soup = BeautifulSoup(rec.text, 'html.parser')\n    rectext = rec.text\n\n\n\n    filmitem = soup.find_all('div',class_='content')\n    for index in range(len(filmitem)):\n        img = filmitem[index].find('img')\n        title = filmitem[index].find('p')\n        a = filmitem[index].find('a')\n        name = filmitem[index].find('p',class_='label')\n        dj = filmitem[index].find('p',class_='dj')\n        dbh = filmitem[index].find('p',class_='dbh')\n        if dj == None:\n            tag = '['+ dbh.text +']'\n        else:\n            tag = '[独播]['+ dbh.text.encode('utf-8') +']'\n        videoitem = {}\n        videoitem['name'] =   title.text + ' - ' +name.text\n        videoitem['href'] = 'https://www.huanxi.com/'+a['href']\n        videoitem['thumb'] = img['src']\n        videos.append(videoitem)  \n    return videos\n\n@plugin.cached(TTL=60)\ndef get_jilu():\n    videos = []\n    url = 'https://www.huanxi.com/documentary.shtml'\n    rec = requests.get(url,headers=headers)\n    rec.encoding = 'utf-8'\n\n    #print(rec.text)\n    soup = BeautifulSoup(rec.text, 'html.parser')\n    rectext = rec.text\n    biaoti = soup.find_all('div',class_='titles')\n    btlist = []\n    for i in range(len(biaoti)):\n        text = biaoti[i].find('span')\n        btlist.append(text.text)\n        btlist.append(text.text)\n\n    jl = soup.find_all('div',class_='bottom')\n    for i in range(len(jl)):\n        #取出偶数的项目\n        if (i % 2) != 0:\n\n            a = jl[i].find_all('a')\n            tag = btlist[i]\n            for i in range(len(a)):\n                title = a[i].find('div',class_='down')\n                title = title.text\n                title = title.strip()\n                title = title.replace('[<div class=\"down\">\\n<div>','')\n                title = title.replace('</div>\\n</div>]','')\n                #title = title.encode('utf-8')\n                title = title.split('</div>\\n<div>')\n                #dialog = xbmcgui.Dialog()\n                #ok = dialog.ok('错误提示', str(title))\n                videoitem = {}\n                videoitem['name'] = '['+tag+']'+title[0]\n                videoitem['href'] = 'https://www.huanxi.com/'+a[i]['href']\n                videoitem['thumb'] = a[i].img['src']\n                videos.append(videoitem)  \n    return videos\n\n@plugin.cached(TTL=60)\ndef get_mp4(url):\n    mp4list = {}\n    rec = requests.get(url,headers=headers)\n    #print(rec.text)\n    rectext = rec.text\n    j = json.loads(rectext)\n    qxd = ['4k','1080p','720p','480p']\n    if j['result']['tips'] != '':\n        for index in range(len(j['result']['bitrate'])):\n            p = j['result']['bitrate'][len(j['result']['bitrate'])-index-1]\n            mp4list[qxd[index]] = j['result']['cdn_url'] + '?bitrate=' + str(p) + '&https=1'\n    else:\n\n        for index in range(len(j['result']['bitrate'])):\n            p = j['result']['bitrate'][len(j['result']['bitrate'])-index-1]\n            mp4list[qxd[index]] = j['result']['cdn_url'] + '?bitrate=' + str(p) + '&https=1'\n    return mp4list\n\n@plugin.cached(TTL=60)\ndef get_videolist(url):\n    #视频片花和幕后列表\n    videos = []\n    devid = '0828875861381020000'\n    apiurl = 'https://www.huanxi.com/apis/hxtv/play/authen?vid='\n    rec = requests.get(url,headers=headers)\n    rec.encoding = 'utf-8'\n    rectext = rec.text\n\n    str1 = rectext.find('tagid:')\n    str2 = rectext.find('SourceID:')\n    str3 = rectext.find('videoType:')\n    str4 = rectext.find('GroupID:')\n    str5 = rectext.find('GroupName:')\n    str6 = rectext.find('title:')\n    str7 = rectext.find('vtype_sub:')\n    str8 = rectext.find('singImg:')\n    str10 = rectext.find('<link rel=\"stylesheet\" href=\"css/base.css?v=5.1.2\">')\n    cutjson = rectext[str1:str10]\n    #print(cutjson)\n\n    vid = rectext[str2+10:str3].strip()\n    gid = rectext[str4+10:str5].strip()\n    gname = rectext[str5+10:str6].strip()\n    vtype = rectext[str3+10:str3+12].strip()\n    img = rectext[str8:str10].strip()\n    img = img.replace('}','')\n    img = img.replace('</script>','').strip()\n    title = rectext[str6:str7].strip()\n\n    title = title[7:-2]\n    img = img[9:-1]\n    vid = vid[:-1]\n    gid = gid[:-2]\n    gname = gname[1:-2]\n\n\n    multip = rectext.find('dramas_no_num:')\n    if multip != -1:\n        #多p\n        str11 = rectext.find('dramas_vip_num:')\n        duop = rectext[multip:str11].strip()\n        duop = duop[15:-2]\n        k = json.loads(duop)\n        for index in range(len(k['ep_list'])):\n            tag = '[VIP]'\n            qqq=k['ep_list'][index]['ep_part_ispay']\n            if qqq == '0':\n                tag = '[baipiao]'\n            videoitem = {}\n            videoitem['name'] = tag+k['ep_list'][index]['ep_part_title']\n            videoitem['href'] = apiurl+vid+'&vtype='+vtype+'&version=5.0&deviceId='+devid+'&platform=1&xt=1&epid='+str(k['ep_list'][index]['ep_part_id'])\n            videoitem['thumb'] = k['ep_list'][index]['ep_part_pic']\n            videos.append(videoitem)  \n    else:\n        #单p\n        videoitem = {}\n        videoitem['name'] = '[shikan]'+title\n        videoitem['href'] = 'https://www.huanxi.com/apis/hxtv/play/authen?vid=' + vid + '&vtype=' + vtype + '&version=5.0&deviceId=' + devid + '&platform=1&xt=1'\n        videoitem['thumb'] = img\n        videos.append(videoitem)\n\n    #print(vtype)\n    rec = requests.get('https://www.huanxi.com/apis/hxtv/clips/getListOfGroup?tul=154&vtype=1&vid='+vid+'&group_id='+gid+'&group_name='+gname+'&platform=1&xt=0&version=5.1&deviceId=0828875861381020000',headers=headers)\n    j = json.loads(rec.text)\n    for index in range(len(j['result'][0]['list'])):\n        videoitem = {}\n        videoitem['name'] = j['result'][0]['group_name']+': '+j['result'][0]['list'][index]['title']\n        videoitem['href'] = apiurl+str(j['result'][0]['list'][index]['vid'])+'&vtype=2&version=5.0&deviceId='+devid+'&platform=1&xt=1'\n        videoitem['thumb'] = j['result'][0]['list'][index]['pic']\n        videos.append(videoitem)  \n    if len(j['result']) == 2:\n        for index in range(len(j['result'][1]['list'])):\n            videoitem = {}\n            videoitem['name'] = j['result'][1]['group_name']+': '+j['result'][1]['list'][index]['title']\n            videoitem['href'] = apiurl+str(j['result'][1]['list'][index]['vid'])+'&vtype=2&version=5.0&deviceId='+devid+'&platform=1&xt=1'\n            videoitem['thumb'] = j['result'][1]['list'][index]['pic']\n            videos.append(videoitem) \n    return videos\n\n\n@plugin.route('/duop/<url>/')\ndef duop(url):\n    videos = get_videolist(url)\n    items = [{\n        'label': video['name'],\n        'path': plugin.url_for('play', name=video['name'].encode('utf-8'), url=video['href']),\n\t'thumbnail': video['thumb'],\n        'icon': video['thumb'],\n    } for video in videos]\n    return items\n\n@plugin.route('/play/<name>/<url>/')\ndef play(name,url):\n    mp4list = get_mp4(url)\n    items = []\n    for k,i in mp4list.items():\n\n        item = {'label':'[' + k.encode('utf-8') + ']' + name,'path':i.encode('utf-8'),'is_playable': True}\n        items.append(item)\n    return items\n\n@plugin.route('/category/<name>/<url>/')\ndef category(name,url):\n    #dialog = xbmcgui.Dialog()\n    #ok = dialog.ok('错误提示', url)\n    if url == 'shouying':\n        #shou\n        videos = get_shouying()\n    else:\n        #jilu\n        videos = get_jilu()\n    items = [{\n        'label': video['name'],\n        'path': plugin.url_for('duop', url=video['href']),\n\t'thumbnail': video['thumb'],\n        'icon': video['thumb'],\n    } for video in videos]\n\n    #sorted_items = items\n    #sorted_items = sorted(items, key=lambda item: item['label'])\n    return items\n\n\n\n\n@plugin.route('/')\ndef index():\n    categories = get_categories()\n    items = [{\n        'label': category['name'],\n        'path': plugin.url_for('category', name=category['name'] , url=category['link']),\n    } for category in categories]\n\n    \n    return items\n\n\n@plugin.route('/labels/<label>/')\ndef show_label(label):\n    # 写抓取视频类表的方法\n    #\n    items = [\n        {'label': label},\n    ]\n    return items\n\nif __name__ == '__main__':\n    plugin.run()\n"
  },
  {
    "path": "plugin.video.huanxi/addon.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>\n<addon id=\"plugin.video.huanxi\" name=\"欢喜首映\" version=\"0.1.0\" provider-name=\"zhengfan\">\n  <requires>\n    <import addon=\"xbmc.python\" version=\"2.1.0\"/>\n    <import addon=\"script.module.xbmcswift2\" version=\"2.4.0\"/>\n  <import addon=\"script.module.beautifulsoup4\" version=\"4.5.3\"/>\n  <import addon=\"script.module.requests\" version=\"2.19.1\"/>\n  <import addon=\"script.module.html5lib\" version=\"0.999.0\"/>\n  </requires>\n  <extension point=\"xbmc.python.pluginsource\" library=\"addon.py\">\n    <provides>video</provides>\n  </extension>\n  <extension point=\"xbmc.addon.metadata\">\n    <platform>all</platform>\n    <language></language>\n    <description>欢喜首映拥有王家卫、徐峥、陈可辛、宁浩、顾长卫、张一白、贾樟柯、张艺谋等巨匠影人为平台定制的大制作网剧、网络大电影,将视频播放与内容制作合二为一,首映厅首发好电影</description>\n    <assets>\n      <icon>icon.png</icon>\n      <fanart>fanart.png</fanart> \n    </assets>\n    <news>首个版本</news>\n  </extension>\n</addon>\n"
  },
  {
    "path": "plugin.video.huanxi/readme.md",
    "content": "# 欢喜首映 for kodi 0.1.0\n## 简介\n- 欢喜首映拥有王家卫、徐峥、陈可辛、宁浩、顾长卫、张一白、贾樟柯、张艺谋等巨匠影人为平台定制的大制作网剧、网络大电影,将视频播放与内容制作合二为一,首映厅首发好电影\n## 主要功能\n> - [x] 首映厅，纪录片两大分类\n> - [x] 显示片花，幕后视频\n> - [x] 在线播放视频，支持任意选择分辨率，最高可播放4k（网站声称4k，实际没有4k）\n> - [x] 对vip，免费，可以试看的vip视频加以区分（视频标题前会显示[vip]或[baipiao]或[shikan]）\n> - [x] 使用官方api解析视频\n> - [ ] 搜索功能\n> - [x] 缓存功能（减少向服务器请求次数）\n## 更新历史\n > -[v0.1.0]----------------------  \n > 发布 - 首个版本  "
  },
  {
    "path": "plugin.video.huanxi/resources/__init__.py",
    "content": ""
  },
  {
    "path": "plugin.video.huanxi/resources/language/English/strings.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?>\n<strings>\n  <!-- Plugin name -->\n  <string id=\"30000\">bilibili</string>\n</strings>\n"
  },
  {
    "path": "plugin.video.huanxi/resources/lib/__init__.py",
    "content": ""
  },
  {
    "path": "plugin.video.kaiyan/addon.py",
    "content": "#!/usr/bin/env python\n# -*- coding:utf-8 -*-\nimport re\nfrom xbmcswift2 import Plugin\nimport requests\nfrom bs4 import BeautifulSoup\nimport xbmcgui\nimport base64\nimport json\nimport urllib2\nimport sys\nimport HTMLParser\nimport re\n\ndef get_real_url(url):\n    rs = requests.get(url,headers=headers,timeout=2)\n    return rs.url\n\ndef unescape(string):\n    string = urllib2.unquote(string).decode('utf8')\n    quoted = HTMLParser.HTMLParser().unescape(string).encode('utf-8')\n    #转成中文\n    return re.sub(r'%u([a-fA-F0-9]{4}|[a-fA-F0-9]{2})', lambda m: unichr(int(m.group(1), 16)), quoted)\n\n\nplugin = Plugin()\n\n\nheaders = {'user-agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.122 Safari/537.36'}\n\n\ndef get_categories():\n    return [{'name':'推荐','link':'http://baobab.kaiyanapp.com/api/v5/index/tab/allRec?page=0'},\n            {'name':'周排行','link':'http://baobab.kaiyanapp.com/api/v4/rankList/videos?strategy=weekly&num=8&start='},\n            {'name':'月排行','link':'http://baobab.kaiyanapp.com/api/v4/rankList/videos?strategy=monthly&num=8&start='},\n            {'name':'专题','link':'http://baobab.kaiyanapp.com/api/v3/specialTopics?start=0&num=10'}]\n\ndef get_tuijian_videos(url):\n    #爬视频列表的\n    videos = []\n\n    rec = requests.get(url,headers=headers)\n    #print(rec.text)\n\n    j = json.loads(rec.text)\n    #标题\n    #print(j['itemList'][0]['data']['header']['title'] + ' - ' + j['itemList'][0]['data']['header']['subTitle'])\n    #视频数：\n    #print(j['itemList'][0]['data'])\n    #dialog = xbmcgui.Dialog()\n    #ok = dialog.ok('错误提示', j['itemList'][0]['data']['itemList'][0]['data']['content']['data']['playUrl'])\n\n    for index in range(len(j['itemList'][0]['data']['itemList'])):\n        videoitem = {}\n        videoitem['name'] = j['itemList'][0]['data']['itemList'][index]['data']['content']['data']['title']\n        videoitem['href'] = j['itemList'][0]['data']['itemList'][index]['data']['content']['data']['playUrl']\n        videoitem['thumb'] = j['itemList'][0]['data']['itemList'][index]['data']['content']['data']['cover']['feed']\n        videos.append(videoitem)\n\n        #标题\n        #print(j['itemList'][0]['data']['itemList'][index]['data']['content']['data']['title'])\n        #图片\n        #print(j['itemList'][0]['data']['itemList'][index]['data']['content']['data']['cover']['feed'])\n        #mp4\n        #print(j['itemList'][0]['data']['itemList'][index]['data']['content']['data']['playUrl'])\n\n\n    for index in range(len(j['itemList'])):\n        if j['itemList'][index]['type'] == 'videoSmallCard' or j['itemList'][index]['type'] == 'FollowCard':\n\t    videoitem = {}\n            videoitem['name'] = '['+j['itemList'][index]['data']['category']+'] - ' + j['itemList'][index]['data']['title']\n            videoitem['href'] = j['itemList'][index]['data']['playUrl']\n            videoitem['thumb'] = j['itemList'][index]['data']['cover']['feed']\n            videos.append(videoitem)\n            #print(j['itemList'][index]['data']['category']+'] - ' + j['itemList'][index]['data']['title'])\n            \n            \n            #print(j['itemList'][index]['data']['cover']['feed'])\n            #print(j['itemList'][index]['data']['playUrl'])\n    return videos\n\n\n\ndef get_paihang_videos(url):\n#爬视频列表的\n    listnum = 8\n    num = 0\n    rank=1\n    videos = []\n    while listnum == 8:\n  \n        rec = requests.get(url + str(num*8),headers=headers)\n        #print(rec.text)\n\n        j = json.loads(rec.text)\n        listnum = len(j['itemList'])\n        num += 1\n        for index in range(len(j['itemList'])):\n            videoitem = {}\n            videoitem['name'] = '['+str(rank)+ ']' + j['itemList'][index]['data']['category'] + ' - ' + j['itemList'][index]['data']['title']\n            videoitem['href'] = j['itemList'][index]['data']['playUrl']\n            videoitem['thumb'] = j['itemList'][index]['data']['cover']['feed']\n            videoitem['genre'] = '豆瓣电影'\n            videos.append(videoitem)\n            rank += 1\n            #标题\n            #print(j['itemList'][index]['data']['category'] + ' - ' + j['itemList'][index]['data']['title'])\n            #图片\n            #print(j['itemList'][index]['data']['cover']['feed'])\n            #mp4\n            #print(j['itemList'][index]['data']['playUrl'])\n    return videos\n\n\n\n\n\n\n    for videoelement in videoelements:\n            \n        videoitem = {}\n        videoitem['name'] = videoelement.find('img')['alt']\n        videoitem['href'] = videoelement.find('a')['href']\n        #videoitem['thumb'] = 'aaaa'\n        videoitem['genre'] = '豆瓣电影'\n        videos.append(videoitem)\n    return videos\n\n\n\n\ndef get_zhuanti_videos(category):\n#爬视频列表的\n    # if int(page) == 1:\n    #     pageurl = category\n    # else:\n    #     pageurl = category + 'index_'+page+'.html'\n    pageurl = category\n\n    r = requests.get(pageurl, headers=headers)\n    r.encoding = 'UTF-8'\n    soup = BeautifulSoup(r.text, \"html.parser\")\n    videos = []\n    #videoelements = soup.find('ul', id='list1').find_all('li')\n    #videoelements = contenter.find_all(\"a\", attrs={\"data-original\": True})\n    videoelements = soup.find_all('li',class_='rank-item')\n\n    if videoelements is None:\n        dialog = xbmcgui.Dialog()\n        ok = dialog.ok('错误提示', '没有播放源')\n    else:\n        #dialog = xbmcgui.Dialog()\n        #sss = str(len(videoelements))\n        #ok = dialog.ok('video数量', sss)\n\n        for videoelement in videoelements:\n            \n            videoitem = {}\n            videoitem['name'] = videoelement.find('img')['alt']\n            videoitem['href'] = videoelement.find('a')['href']\n            #videoitem['thumb'] = 'aaaa'\n            videoitem['genre'] = '豆瓣电影'\n            videos.append(videoitem)\n        return videos\n\n\n\n\n@plugin.route('/play/<name>/<url>/')\ndef play(name,url):\n\n        items = []\n        \n        item = {'label': name,'path': get_real_url(url),'is_playable': True}\n        items.append(item)\n        return items\n\n@plugin.route('/category/<name>/<url>/')\ndef category(name,url):\n    #dialog = xbmcgui.Dialog()\n    #ok = dialog.ok('错误提示', url)\n    if name == '推荐':\n        #tuijian\n        videos = get_tuijian_videos(url)\n    else:\n        if name == '周排行':\n            #2\n            videos = get_paihang_videos(url)\n        else:\n            if name == '月排行':\n                #3\n                videos = get_paihang_videos(url)\n            else:\n                #4\n                videos = get_videos(url)\n    items = [{\n        'label': video['name'],\n        'path': plugin.url_for('play', name='最高清晰度 - 本地解析' , url=video['href']),\n\t'thumbnail': video['thumb'],\n        'icon': video['thumb'],\n    } for video in videos]\n\n    sorted_items = items\n    #sorted_items = sorted(items, key=lambda item: item['label'])\n    return sorted_items\n\n\n\n\n@plugin.route('/')\ndef index():\n    categories = get_categories()\n    items = [{\n        'label': category['name'],\n        'path': plugin.url_for('category', name=category['name'] , url=category['link']),\n    } for category in categories]\n\n    \n    return items\n\n\n@plugin.route('/labels/<label>/')\ndef show_label(label):\n    # 写抓取视频类表的方法\n    #\n    items = [\n        {'label': label},\n    ]\n    return items\n\nif __name__ == '__main__':\n    plugin.run()\n"
  },
  {
    "path": "plugin.video.kaiyan/addon.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>\n<addon id=\"plugin.video.kaiyan\" name=\"开眼\" version=\"0.1.0\" provider-name=\"zhengfan\">\n  <requires>\n    <import addon=\"xbmc.python\" version=\"2.1.0\"/>\n    <import addon=\"script.module.xbmcswift2\" version=\"2.4.0\"/>\n  <import addon=\"script.module.beautifulsoup4\" version=\"4.5.3\"/>\n  <import addon=\"script.module.requests\" version=\"2.19.1\"/>\n  <import addon=\"script.module.html5lib\" version=\"0.999.0\"/>\n  </requires>\n  <extension point=\"xbmc.python.pluginsource\" library=\"addon.py\">\n    <provides>video</provides>\n  </extension>\n  <extension point=\"xbmc.addon.metadata\">\n    <platform>all</platform>\n    <language></language>\n    <description>精选视频推荐，每日大开眼界</description>\n  </extension>\n</addon>\n"
  },
  {
    "path": "plugin.video.kaiyan/readme.md",
    "content": "# 开眼 for kodi 0.1.0\n## 简介\n- 精选视频推荐，每日大开眼界\n## 主要功能\n> - [x] 每日推荐\n> - [x] 日排行，周排行\n> - [ ] 专题\n> - [x] 在线播放视频（只有720p）\n> - [x] 使用官方api解析视频\n> - [ ] 搜索功能\n> - [ ] 缓存功能（减少向服务器请求次数）\n## 更新历史\n > -[v0.1.0]----------------------  \n > 发布 - 首个版本  "
  },
  {
    "path": "plugin.video.kaiyan/resources/__init__.py",
    "content": ""
  },
  {
    "path": "plugin.video.kaiyan/resources/language/English/strings.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?>\n<strings>\n  <!-- Plugin name -->\n  <string id=\"30000\">bilibili</string>\n</strings>\n"
  },
  {
    "path": "plugin.video.kaiyan/resources/lib/__init__.py",
    "content": ""
  },
  {
    "path": "plugin.video.medicalvideo/addon.py",
    "content": "#!/usr/bin/env python\n# -*- coding:utf-8 -*-\nimport re\nfrom xbmcswift2 import Plugin\nimport requests\nfrom bs4 import BeautifulSoup\nimport xbmcgui\nimport base64\nimport json\nimport urllib2\nimport sys\nimport HTMLParser\nimport re\n\ndef get_real_url(url):\n    rs = requests.get(url,headers=headers,timeout=2)\n    return rs.url\n\ndef unescape(string):\n    string = urllib2.unquote(string).decode('utf8')\n    quoted = HTMLParser.HTMLParser().unescape(string).encode('utf-8')\n    #转成中文\n    return re.sub(r'%u([a-fA-F0-9]{4}|[a-fA-F0-9]{2})', lambda m: unichr(int(m.group(1), 16)), quoted)\n\n\nplugin = Plugin()\n\ncache = plugin.get_storage('cache',TTL=60)\nheaders = {'user-agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.122 Safari/537.36'}\n\n\ndef get_categories():\n    return [{'name':'妇产科疾病','link':'1'},\n            {'name':'儿科疾病','link':'2'},\n            {'name':'神经系统疾病','link':'3'},\n            {'name':'呼吸系统疾病','link':'4'},\n            {'name':'消化系统疾病','link':'5'},\n            {'name':'心脑血管系统疾病','link':'6'},\n            {'name':'内分泌系统疾病','link':'7'},\n            {'name':'泌尿系统疾病','link':'8'},\n            {'name':'血液系统疾病','link':'9'},\n            {'name':'骨科疾病','link':'10'},\n            {'name':'肿瘤疾病','link':'11'},\n            {'name':'口腔疾病','link':'12'},\n            {'name':'皮肤疾病','link':'13'},\n            {'name':'眼科疾病','link':'14'},\n            {'name':'耳鼻喉疾病','link':'15'},\n            {'name':'生殖系统疾病','link':'16'},\n            {'name':'精神心理疾病','link':'17'},\n            {'name':'急诊科疾病','link':'18'},\n            {'name':'感染科疾病','link':'19'},\n            {'name':'肛肠科疾病','link':'20'},\n            {'name':'血管外科','link':'21'},\n            {'name':'性病','link':'22'},\n            {'name':'风湿免疫科疾病','link':'23'},\n            {'name':'康复科','link':'24'},\n            {'name':'护理常识','link':'25'},\n            {'name':'药事药理','link':'26'},\n            {'name':'医美整形','link':'27'},\n            {'name':'中医中药','link':'28'},\n            {'name':'辅助检查及治疗','link':'29'},\n            {'name':'罕见病','link':'30'},\n            {'name':'其他','link':'31'}]\n\ndef get_videos(cag):\n    #爬视频列表的\n    videos = []\n    if 'home' in cache:\n        rectext = cache['home']\n    else:\n        url = 'https://www.mvyxws.com/'\n        rec = requests.get(url,headers=headers)\n        #print(rec.text)\n        rec.encoding = ('utf-8')\n        rectext = rec.text\n        cache['home'] = rectext\n    soup = BeautifulSoup(rectext, 'html.parser')\n\n    cag = int(cag)\n    filmitem = soup.find_all('div',class_='category')\n    #print(filmitem[cag])\n    filmitem = filmitem[cag].find_all('a')\n    #print(len(filmitem))\n    for index in range(len(filmitem)):\n        #print()\n        videoitem = {}\n        videoitem['name'] = filmitem[index].parent.parent.h2.text[1:] + u':' + filmitem[index]['title']\n        videoitem['href'] = 'https://www.mvyxws.com'+filmitem[index]['href']\n        videos.append(videoitem)  \n\n    return videos\n\n@plugin.cached(TTL=60)\ndef get_duop(url):\n    videos = []\n    rec = requests.get(url,headers=headers)\n    cag = 1\n    soup = BeautifulSoup(rec.text, 'html.parser')\n    filmitem = soup.find('ul',class_='jb-list')\n    #print(filmitem[cag])\n    thumb = soup.find('div',class_='tx')\n    thumb = thumb.img['src']\n    filmitem = filmitem.find_all('li')\n    #print(len(filmitem))\n    for index in range(len(filmitem)):\n        videoitem = {}\n        videoitem['name'] = filmitem[index].a['title']\n        videoitem['href'] = 'https://www.mvyxws.com'+filmitem[index].a['href']\n        videoitem['thumb'] = 'https://www.mvyxws.com' + thumb\n        videos.append(videoitem)  \n    return videos\n\n@plugin.cached(TTL=60)\ndef get_mp4_request(url):\n    rec = requests.get(url,headers=headers)\n    rec.encoding = 'utf-8'\n    rect = rec.text\n    return rect\n\n@plugin.cached(TTL=60)\ndef get_mp4(rect):\n    #rec = requests.get(url,headers=headers)\n\n    #rect = rec.text\n    str1 = rect.find('fileID:')\n    str2 = rect.find('appID:')\n    str3 = rect.find('player.currentTime(0);')\n    fileid = re.search(r'\\d+',rect[str1:str2]).group()\n    appid = re.search(r'\\d+',rect[str2:str3]).group()\n    rec = requests.get('https://playvideo.qcloud.com/getplayinfo/v2/' + appid + '/' + fileid,headers=headers)\n    j = json.loads(rec.text)\n    mp4list = []\n    for index in range(len(j['videoInfo']['transcodeList']) - 1):\n        mp4 = {}\n        num = len(j['videoInfo']['transcodeList'])\n        mp4['name'] = u'[' +str(j['videoInfo']['transcodeList'][num - index - 1]['height']) + u'p] - ' + j['videoInfo']['basicInfo']['name']\n        mp4['thumb'] = j['coverInfo']['coverUrl']\n        mp4['url'] = j['videoInfo']['transcodeList'][num - index - 1]['url']\n        mp4['duration'] = j['videoInfo']['transcodeList'][num - index - 1]['duration']\n        mp4list.append(mp4)\n    return mp4list\n\ndef get_mp4info(rect):\n    soup = BeautifulSoup(rect, 'html.parser')\n    mp4info = {}\n    title = soup.find('div',class_='video-play fl')\n    title = title.h2.text\n    mp4info['title'] = title\n\n    year = soup.find('div',class_='sj')\n    year = year.text[2:]\n    mp4info['year'] = year\n\n\n    updata = soup.find('div',class_='zj-con')\n    up = updata.div.h3.a.text\n    upinfo = updata.div.h3.span.text\n    mp4info['cast'] = [(up,upinfo)]\n\n\n    jianjie = soup.find('div',id='zhuanjiajianjie')\n    jianjie = jianjie.text\n    jianjie = jianjie.replace(u'。',u'。\\n\\n')\n    plot = up + u' - ' + upinfo + u'\\n\\n'\n    plot += jianjie\n    mp4info['plot'] = plot\n\n\n\n    mp4info['mediatype'] = 'video'\n    return mp4info\n\n@plugin.route('/play/<name>/<url>/')\ndef play(name,url):\n    rect = get_mp4_request(url)\n    mp4info = get_mp4info(rect)\n    videos = get_mp4(rect)\n    mp4info['duration'] = videos[0]['duration']\n    items = [{\n        'label': video['name'].encode('utf-8'),\n        'path': video['url'],\n        'is_playable': True,\n\t'thumbnail': video['thumb'],\n        'icon': video['thumb'],\n        'info':mp4info,\n        'info_type':'video',\n    } for video in videos]\n\n    sorted_items = items\n    #sorted_items = sorted(items, key=lambda item: item['label'])\n    return sorted_items\n\n@plugin.route('/category/<name>/<url>/')\ndef category(name,url):\n    #dialog = xbmcgui.Dialog()\n    #ok = dialog.ok('错误提示', url)\n\n    videos = get_videos(url)\n    items = [{\n        'label': video['name'],\n        'path': plugin.url_for('duop' , url=video['href']),\n\t#'thumbnail': video['thumb'],\n        #'icon': video['thumb'],\n    } for video in videos]\n\n    sorted_items = items\n    #sorted_items = sorted(items, key=lambda item: item['label'])\n    return sorted_items\n\n@plugin.route('/duop/<url>/')\ndef duop(url):\n    #dialog = xbmcgui.Dialog()\n    #ok = dialog.ok('错误提示', url)\n\n    videos = get_duop(url)\n    items = [{\n        'label': video['name'],\n        'path': plugin.url_for('play', name='最高清晰度 - 本地解析' , url=video['href']),\n\t'thumbnail': video['thumb'],\n        'icon': video['thumb'],\n    } for video in videos]\n\n    sorted_items = items\n    #sorted_items = sorted(items, key=lambda item: item['label'])\n    return sorted_items\n\n\n@plugin.route('/')\ndef index():\n    categories = get_categories()\n    items = [{\n        'label': category['name'],\n        'path': plugin.url_for('category', name=category['name'] , url=category['link']),\n    } for category in categories]\n\n    \n    return items\n\n\n@plugin.route('/labels/<label>/')\ndef show_label(label):\n    # 写抓取视频类表的方法\n    #\n    items = [\n        {'label': label},\n    ]\n    return items\n\nif __name__ == '__main__':\n    plugin.run()\n"
  },
  {
    "path": "plugin.video.medicalvideo/addon.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>\n<addon id=\"plugin.video.medicalvideo\" name=\"医学微视\" version=\"0.1.0\" provider-name=\"zhengfan\">\n  <requires>\n    <import addon=\"xbmc.python\" version=\"2.1.0\"/>\n    <import addon=\"script.module.xbmcswift2\" version=\"2.4.0\"/>\n  <import addon=\"script.module.beautifulsoup4\" version=\"4.5.3\"/>\n  <import addon=\"script.module.requests\" version=\"2.19.1\"/>\n  <import addon=\"script.module.html5lib\" version=\"0.999.0\"/>\n  </requires>\n  <extension point=\"xbmc.python.pluginsource\" library=\"addon.py\">\n    <provides>video</provides>\n  </extension>\n  <extension point=\"xbmc.addon.metadata\">\n    <platform>all</platform>\n    <language></language>\n    <description>医学微视是配合卫健委宣传司《全民健康素养促进活动》精神，在中华医学会科学普及分会指导下，由中国医学科学院健康科普中心监制而实施，以“让人们多了解一点医学知识，健康就多一份保障”的宗旨，团队只想把医学微视做得更好，让更多的患者能共享到医学专家们多年积累的宝贵经验和知识，能对需要的人有一点点帮助</description>\n    <assets>\n      <icon>icon.png</icon>\n      <fanart>fanart.png</fanart> \n    </assets>\n    <news>首个版本</news>\n  </extension>\n</addon>\n"
  },
  {
    "path": "plugin.video.medicalvideo/readme.md",
    "content": "dev版本，没做好哈"
  },
  {
    "path": "plugin.video.medicalvideo/resources/__init__.py",
    "content": ""
  },
  {
    "path": "plugin.video.medicalvideo/resources/language/English/strings.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?>\n<strings>\n  <!-- Plugin name -->\n  <string id=\"30000\">bilibili</string>\n</strings>\n"
  },
  {
    "path": "plugin.video.medicalvideo/resources/lib/__init__.py",
    "content": ""
  },
  {
    "path": "plugin.video.pengpai[停止更新]/addon.py",
    "content": "#!/usr/bin/env python\n# -*- coding:utf-8 -*-\nimport re\nfrom xbmcswift2 import Plugin\nimport requests\nfrom bs4 import BeautifulSoup\nimport xbmcgui\nimport base64\nimport json\nimport urllib2\nimport sys\nimport HTMLParser\nimport re\n\ndef get_real_url(url):\n    rs = requests.get(url,headers=headers,timeout=2)\n    return rs.url\n\ndef unescape(string):\n    string = urllib2.unquote(string).decode('utf8')\n    quoted = HTMLParser.HTMLParser().unescape(string).encode('utf-8')\n    #转成中文\n    return re.sub(r'%u([a-fA-F0-9]{4}|[a-fA-F0-9]{2})', lambda m: unichr(int(m.group(1), 16)), quoted)\n\n\nplugin = Plugin()\n\n\nheaders = {'user-agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.122 Safari/537.36'}\n\n\ndef get_categories():\n    return [{'name':'七环视频','link':'https://www.thepaper.cn/load_video_chosen.jsp?channelID=26916&nodeid=26913&pageidx='},\n            {'name':'温度计','link':'https://www.thepaper.cn/load_video_chosen.jsp?channelID=26916&nodeid=26965&pageidx='},\n            {'name':'一级现场','link':'https://www.thepaper.cn/load_video_chosen.jsp?channelID=26916&nodeid=26908&pageidx='},\n            {'name':'world湃','link':'https://www.thepaper.cn/load_video_chosen.jsp?channelID=26916&nodeid=27260&pageidx='},\n            {'name':'湃客科技','link':'https://www.thepaper.cn/load_video_chosen.jsp?channelID=26916&nodeid=26907&pageidx='},\n            {'name':'纪录湃','link':'https://www.thepaper.cn/load_video_chosen.jsp?channelID=26916&nodeid=33168&pageidx='},\n            {'name':'围观','link':'https://www.thepaper.cn/load_video_chosen.jsp?channelID=26916&nodeid=26911&pageidx='},\n            {'name':'@所有人','link':'https://www.thepaper.cn/load_video_chosen.jsp?channelID=26916&nodeid=26918&pageidx='},\n            {'name':'大都会','link':'https://www.thepaper.cn/load_video_chosen.jsp?channelID=26916&nodeid=26906&pageidx='},\n            {'name':'追光灯','link':'https://www.thepaper.cn/load_video_chosen.jsp?channelID=26916&nodeid=26909&pageidx='},\n            {'name':'运动装','link':'https://www.thepaper.cn/load_video_chosen.jsp?channelID=26916&nodeid=26910&pageidx='},\n            {'name':'健寻记','link':'https://www.thepaper.cn/load_video_chosen.jsp?channelID=26916&nodeid=26914&pageidx='},\n            {'name':'AI播报','link':'https://www.thepaper.cn/load_video_chosen.jsp?channelID=26916&nodeid=82188&pageidx='},\n            {'name':'眼界','link':'https://www.thepaper.cn/load_video_chosen.jsp?channelID=26916&nodeid=89035&pageidx='}]\n\ndef get_videos(url):\n    #爬视频列表的\n    videos = []\n\n    rec = requests.get(url,headers=headers)\n    #print(rec.text)\n    rec.encoding = ('utf-8')\n\n    soup = BeautifulSoup(rec.text, 'html.parser')\n\n    imgsrc = soup.find_all('img')\n    ahref = soup.find_all('a',class_='play has_pic')\n    title = soup.find_all('div',class_='video_title')\n    #标题\n    #print(j['itemList'][0]['data']['header']['title'] + ' - ' + j['itemList'][0]['data']['header']['subTitle'])\n    #视频数：\n    #print(j['itemList'][0]['data'])\n    #dialog = xbmcgui.Dialog()\n    #ok = dialog.ok('错误提示', j['itemList'][0]['data']['itemList'][0]['data']['content']['data']['playUrl'])\n\n    for index in range(len(imgsrc)):\n        titletext = title[index].text\n        titletext = titletext.replace('\t', '')\n        imgsrcurl = imgsrc[index]['src']\n        videoitem = {}\n        videoitem['name'] = titletext\n        videoitem['href'] = 'https://thepaper.cn/' + ahref[index]['href']\n        videoitem['thumb'] = 'http' + imgsrcurl[5:]\n        videos.append(videoitem)  \n    return videos\n\n\n\n@plugin.route('/play/<name>/<url>/')\ndef play(name,url):\n        rec = requests.get(url,headers=headers)\n        items = []\n        soup = BeautifulSoup(rec.text, 'html.parser')\n        #print(rec.text)\n        mp4 = soup.find('source',type='video/mp4')\n        #print(mp4['src'])\n        item = {'label': name,'path':mp4['src'],'is_playable': True}\n        items.append(item)\n        return items\n\n@plugin.route('/category/<name>/<url>/')\ndef category(name,url):\n    #dialog = xbmcgui.Dialog()\n    #ok = dialog.ok('错误提示', url)\n\n    videos = get_videos(url)\n    items = [{\n        'label': video['name'],\n        'path': plugin.url_for('play', name='最高清晰度 - 本地解析' , url=video['href']),\n\t'thumbnail': video['thumb'],\n        'icon': video['thumb'],\n    } for video in videos]\n\n    sorted_items = items\n    #sorted_items = sorted(items, key=lambda item: item['label'])\n    return sorted_items\n\n\n\n\n@plugin.route('/')\ndef index():\n    categories = get_categories()\n    items = [{\n        'label': category['name'],\n        'path': plugin.url_for('category', name=category['name'] , url=category['link']),\n    } for category in categories]\n\n    \n    return items\n\n\n@plugin.route('/labels/<label>/')\ndef show_label(label):\n    # 写抓取视频类表的方法\n    #\n    items = [\n        {'label': label},\n    ]\n    return items\n\nif __name__ == '__main__':\n    plugin.run()\n"
  },
  {
    "path": "plugin.video.pengpai[停止更新]/addon.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>\n<addon id=\"plugin.video.pengpai\" name=\"澎湃\" version=\"0.1.0\" provider-name=\"zhengfan\">\n  <requires>\n    <import addon=\"xbmc.python\" version=\"2.1.0\"/>\n    <import addon=\"script.module.xbmcswift2\" version=\"2.4.0\"/>\n  <import addon=\"script.module.beautifulsoup4\" version=\"4.5.3\"/>\n  <import addon=\"script.module.requests\" version=\"2.19.1\"/>\n  <import addon=\"script.module.html5lib\" version=\"0.999.0\"/>\n  </requires>\n  <extension point=\"xbmc.python.pluginsource\" library=\"addon.py\">\n    <provides>video</provides>\n  </extension>\n  <extension point=\"xbmc.addon.metadata\">\n    <platform>all</platform>\n    <language></language>\n    <description>不满足于琐碎的片段，做有态度的新闻视频</description>\n    <assets>\n      <icon>icon.png</icon>\n      <fanart>fanart.png</fanart> \n    </assets>\n    <news>首个版本</news>\n  </extension>\n</addon>\n"
  },
  {
    "path": "plugin.video.pengpai[停止更新]/readme.md",
    "content": "# 澎湃视频 for kodi 0.1.0[停止更新]\n# 澎湃新闻kodi插件代码已合并到vid插件内，本插件不再维护\n## 简介\n- 不满足于琐碎的片段，做有态度的新闻视频\n## 主要功能\n> - [x] 视频分类\n> - [x] 在线播放视频（只有720p）\n> - [x] 使用官方api解析视频\n> - [ ] 搜索功能\n> - [ ] 缓存功能（减少向服务器请求次数）\n## 更新历史\n > -[v0.1.0]----------------------  \n > 发布 - 首个版本  "
  },
  {
    "path": "plugin.video.pengpai[停止更新]/resources/__init__.py",
    "content": ""
  },
  {
    "path": "plugin.video.pengpai[停止更新]/resources/language/English/strings.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?>\n<strings>\n  <!-- Plugin name -->\n  <string id=\"30000\">bilibili</string>\n</strings>\n"
  },
  {
    "path": "plugin.video.pengpai[停止更新]/resources/lib/__init__.py",
    "content": ""
  },
  {
    "path": "plugin.video.reallive/addon.py",
    "content": "#!/usr/bin/env python\n# -*- coding:utf-8 -*-\nimport re\nfrom xbmcswift2 import Plugin\nimport requests\nfrom bs4 import BeautifulSoup\nimport xbmcgui\nimport time\nimport base64\nimport json\nimport urllib2\nimport sys\nimport HTMLParser\nimport re\nimport random\nimport hashlib\nimport js2py\n\n\n\ndef unescape(string):\n    string = urllib2.unquote(string).decode('utf8')\n    quoted = HTMLParser.HTMLParser().unescape(string).encode('utf-8')\n    #转成中文\n    return re.sub(r'%u([a-fA-F0-9]{4}|[a-fA-F0-9]{2})', lambda m: unichr(int(m.group(1), 16)), quoted)\n\n\nplugin = Plugin()\n\n\nmacheaders = {'user-agent':'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_4 Supplemental Update) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/12.1.1 Safari/605.1.15'}\nipadheaders = {'user-agent': 'Mozilla/5.0 (iPad; CPU OS 10_15_4 Supplemental Update like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/12.1.1 Mobile/15E148 Safari/605.1.15'}\niphoneheaders = {'user-agent': 'Mozilla/5.0 (iPhone; CPU OS 10_15_4 Supplemental Update like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/12.1.1 Mobile/14E304 Safari/605.1.15'}\nmheaders = {'user-agent':'Mozilla/5.0 (Linux; Android 10; Z832 Build/MMB29M) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.113 Mobile Safari/537.36'}\nheaders = {'user-agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.122 Safari/537.36'}\ntmp = plugin.get_storage('tmp')\n\n#用户设置存储\nstorage = plugin.get_storage('storage')\n#搜索历史纪录\nhis = plugin.get_storage('his')\n\n\ndef chushihua(key,default):\n    if key in storage:\n        switch = storage[key]\n    else:\n        storage[key] = default\n        switch = storage[key]\n    if switch == 1:\n        value = '开'\n    else:\n        value = '关'\n    return value\n\n@plugin.cached(TTL=2)\ndef get_html(url,ua='pc',mode='html',encode='utf-8'):\n    if ua == 'pc':\n        r = requests.get(url,headers=headers)\n    if ua == 'mobile':\n        r = requests.get(url,headers=mheaders)\n    if ua == 'iphone':\n        r = requests.get(url,headers=iphoneheaders)\n    if ua == 'ipad':\n        r = requests.get(url,headers=ipadheaders)\n    if ua == 'mac':\n        r = requests.get(url,headers=macheaders)\n    if ua != 'pc' and ua != 'mobile' and ua != 'iphone' and ua != 'ipad' and ua != 'mac':\n        r = requests.get(url,headers=eval(ua))\n    if encode == 'utf-8':\n        r.encoding = 'utf-8'\n    if encode == 'gbk':\n        r.encoding = 'gbk'\n    if mode == 'url':\n        html = r.url\n    else:\n        html = r.text\n    return html\n\n@plugin.cached(TTL=2)\ndef post_html(url,data,json='off',ua='pc',mode='html',encode='utf-8'):\n    data = eval(data)\n    if json == 'off':\n        if ua == 'pc':\n            r = requests.post(url,data=data,headers=headers)\n        if ua == 'mobile':\n            r = requests.post(url,data=data,headers=mheaders)\n        if ua == 'iphone':\n            r = requests.post(url,data=data,headers=iphoneheaders)\n        if ua == 'ipad':\n            r = requests.post(url,data=data,headers=ipadheaders)\n        if ua == 'mac':\n            r = requests.post(url,data=data,headers=macheaders)\n    else:\n        if ua == 'pc':\n            r = requests.post(url,json=data,headers=headers)\n        if ua == 'mobile':\n            r = requests.post(url,json=data,headers=mheaders)\n        if ua == 'iphone':\n            r = requests.post(url,json=data,headers=iphoneheaders)\n        if ua == 'ipad':\n            r = requests.post(url,json=data,headers=ipadheaders)\n        if ua == 'mac':\n            r = requests.post(url,json=data,headers=macheaders)\n    if encode == 'utf-8':\n        r.encoding = 'utf-8'\n    if encode == 'gbk':\n        r.encoding = 'gbk'\n    if mode == 'url':\n        html = r.url\n    else:\n        html = r.text\n    return html\n\ndef unix_to_data(uptime,format='data'):\n    if len(str(uptime)) > 10:\n        uptime = str(uptime)[:-(len(str(uptime))-10)]\n    uptime = float(uptime)\n    time_local = time.localtime(uptime)\n    if format == 'data' or format == 'zhdata' or format == 'datatime' or format == 'zhdatatime' or format == 'time' or format == 'zhtime':\n        if format == 'data':\n            uptime = time.strftime('%Y-%m-%d',time_local)\n        if format == 'zhdata':\n            uptime = time.strftime('%Y年%m月%d日',time_local)\n        if format == 'datatime':\n            uptime = time.strftime('%Y-%m-%d %H:%M:%S',time_local)\n        if format == 'zhdatatime':\n            uptime = time.strftime('%Y年%m月%d日 %H时%M分%S秒',time_local)\n        if format == 'time':\n            uptime = time.strftime('%H:%M:%S',time_local)\n        if format == 'zhtime':\n            uptime = time.strftime('%H时%M分%S秒',time_local)\n    else:\n        uptime = time.strftime(format,time_local)\n    return uptime\n\n#超过10000换算\ndef zh(num):\n    if int(num) >= 100000000:\n        p = round(float(num)/float(100000000), 1)\n        p = str(p) + '亿'\n    else:\n        if int(num) >= 10000:\n            p = round(float(num)/float(10000), 1)\n            p = str(p) + '万'\n        else:\n            p = str(num)\n    return p.decode('utf-8')\n\ndef tiqu_num(string):\n    try:\n        a = re.search('\\d+',string).group()\n        return a\n    except AttributeError:\n        return ''\n\ndef get_categories_mode(mode):\n    item = eval('get_' + mode + '_categories')()\n    return item\ndef get_rooms_mode(url,mode,page):\n    item = eval('get_' + mode + '_rooms')(url,int(page))\n    return item\ndef get_roomidinfo_mode(url,mode):\n    item = eval('get_' + mode + '_roomidinfo')(url)\n    return item\ndef get_search_mode(keyword,page,mode):\n    item = eval('get_' + mode + '_search')(keyword,int(page))\n    return item\ndef get_roomid_mode(url,mode):\n    item = eval('get_' + mode + '_roomid')(url)\n    return item\n##########################################################\n###主入口\n##########################################################\n\ndef get_categories():\n    return [{'id':1,'name':'虎牙直播','link':'huya','author':'zhengfan2014','upload':'2020-5-13','rooms':120},\n            {'id':2,'name':'斗鱼直播','link':'douyu','author':'zhengfan2014','upload':'2020-5-13','rooms':120},\n            {'id':3,'name':'触手直播','link':'chushou','author':'zhengfan2014','upload':'2020-5-13','rooms':20},\n            {'id':4,'name':'企鹅电竞','link':'egame','author':'zhengfan2014','upload':'2020-5-17'},\n            {'id':5,'name':'龙珠直播','link':'longzhu','author':'zhengfan2014','upload':'2020-5-17'},\n            {'id':6,'name':'Bilibili直播','link':'bilibili','author':'zhengfan2014','upload':'2020-5-18','rooms':30},\n            {'id':7,'name':'YY直播','link':'yy','author':'zhengfan2014','upload':'2020-5-18','rooms':30},\n            {'id':8,'name':'快手直播','link':'kuaishou','author':'zhengfan2014','upload':'2020-5-18','rooms':60},\n            {'id':9,'name':'Acfun直播','link':'acfun','author':'zhengfan2014','upload':'2020-5-18'},\n            {'id':10,'name':'it之家直播','link':'ithome','author':'zhengfan2014','upload':'2020-6-8','rooms':20},\n            {'id':11,'name':'电视直播','link':'yangshipin','author':'zhengfan2014','upload':'2020-6-8','roomid':'false'},\n            {'id':12,'name':'直播中国','link':'livechina','author':'zhengfan2014','upload':'2020-6-8','roomid':'false'},\n            {'id':13,'name':'熊猫频道','link':'ipanda','author':'zhengfan2014','upload':'2020-6-8','roomid':'false'}]\n\n##########################################################\n###以下是模块，网站模块请粘贴在这里面\n##########################################################\n\n#虎牙直播\ndef get_huya_categories():\n    return [{'name':'网游竞技','link':'https://www.huya.com/cache.php?m=LiveList&do=getLiveListByPage&gameId=100023&tagAll=0&page='},\n            {'name':'单机热游','link':'https://www.huya.com/cache.php?m=LiveList&do=getLiveListByPage&gameId=100002&tagAll=0&page='},\n            {'name':'娱乐天地','link':'https://www.huya.com/cache.php?m=LiveList&do=getLiveListByPage&gameId=100022&tagAll=0&page='},\n            {'name':'手游休闲','link':'https://www.huya.com/cache.php?m=LiveList&do=getLiveListByPage&gameId=100004&tagAll=0&page='}]\n\ndef get_huya_rooms(url,page):\n    rooms = []\n    \n    r = get_html(url +str(page))\n    j = json.loads(r)\n    rlist = j['data']['datas']\n    for i in range(len(rlist)):\n        roomitem = {}\n        roomitem['name'] =  u'[' + rlist[i]['gameFullName'] + u'] ' + rlist[i]['introduction']\n        roomitem['href'] =  rlist[i]['profileRoom']\n        roomitem['thumb'] = rlist[i]['screenshot']\n        roomitem['info'] = {'plot' : zh(rlist[i]['totalCount']) + u' 人气\\n' + rlist[i]['roomName'],'cast':[(rlist[i]['nick'],u'主播')],'genre':[rlist[i]['gameFullName']]}\n        rooms.append(roomitem)\n    return rooms\n\ndef get_huya_roomidinfo(url):\n    info = {}\n    if 'huya.com' in url:\n        room_id = re.search('(?<=huya.com/)[a-zA-Z0-9]+',url).group()\n    else:\n        room_id = url\n    room_url = 'https://www.huya.com/' + str(room_id)\n    r = get_html(room_url)\n    str1 = r.find(';var TT_ROOM_DATA = ')\n    str2 = r.find(';var TT_PROFILE_INFO =')\n    str3 = r.find(';var TT_PLAYER_CFG =')\n    roomdata = r[str1+20:str2]\n    upinfo = r[str2+23:str3]\n    roomdata = json.loads(roomdata)\n    upinfo = json.loads(upinfo)\n    # dialog = xbmcgui.Dialog()\n    # dialog.textviewer('1',str(roomdata)+ '\\n\\n' + str(upinfo) + '\\n' +str(str3))\n    info['title'] = roomdata['introduction']\n    info['img'] = roomdata['screenshot']\n    info['genre'] = [roomdata['gameFullName']]\n    \n    plot = u'房间号: ' + str(roomdata['profileRoom'])\n    if roomdata['state'] == 'ON':\n        info['status'] = u'开播'\n        plot += u' · '+str(roomdata['totalCount']) + u' 人气值' \n    else:\n        info['status'] = u'未开播'\n    info['cast'] = [(upinfo['nick'],zh(upinfo['fans'])+u'粉丝')]\n    info['plot'] = plot\n    return info\n\ndef get_huya_roomid(url):\n    if 'huya.com' in url:\n        room_id = re.search('(?<=huya.com/)[a-zA-Z0-9]+',url).group()\n        dialog = xbmcgui.Dialog()\n        dialog.notification('提取成功','房间号：' + str(room_id), xbmcgui.NOTIFICATION_INFO, 5000)\n    else:\n        room_id = url\n    room_url = 'https://m.huya.com/' + str(room_id)\n    r = get_html(room_url,'mobile')\n    if re.search(r'//[\\S]*.m3u8[\\S]*?(?=\\\")',r):\n        url = 'https:' + re.search(r'//[\\S]*.m3u8[\\S]*?(?=\\\")',r).group()\n        url = re.sub(r'_[\\S]*.m3u8','.m3u8',url)\n    else:\n        url = ''\n        dialog = xbmcgui.Dialog()\n        dialog.notification('请求直播源失败','未开播或直播间不存在', xbmcgui.NOTIFICATION_INFO, 5000)\n    # dialog = xbmcgui.Dialog()\n    # dialog.textviewer('1',str(url))\n    # print(url)\n    return url\n\n#斗鱼直播\ndef get_douyu_categories():\n    return [{'name':'CF手游','link':'https://www.douyu.com/gapi/rkc/directory/mixList/2_178/'},\n            {'name':'文化','link':'https://www.douyu.com/gapi/rkc/directory/mixList/2_195/'},\n            {'name':'中国象棋','link':'https://www.douyu.com/gapi/rkc/directory/mixList/2_543/'},\n            {'name':'使命召唤','link':'https://www.douyu.com/gapi/rkc/directory/mixList/2_472/'},\n            {'name':'逆战','link':'https://www.douyu.com/gapi/rkc/directory/mixList/2_46/'},\n            {'name':'热门网游','link':'https://www.douyu.com/gapi/rkc/directory/mixList/2_203/'},\n            {'name':'颜值','link':'https://www.douyu.com/gapi/rknc/directory/yzRec/'},\n            {'name':'陪玩','link':'https://www.douyu.com/gapi/rkc/directory/mixList/2_1015/'},\n            {'name':'英雄联盟','link':'https://www.douyu.com/gapi/rkc/directory/mixList/2_1/'}]\n\ndef get_douyu_rooms(url,page):\n    rooms = []\n    \n    r = get_html(url +str(page))\n    j = json.loads(r)\n    rlist = j['data']['rl']\n    for i in range(len(rlist)):\n        roomitem = {}\n        roomitem['name'] = rlist[i]['rn']\n        roomitem['href'] =  rlist[i]['rid']\n        roomitem['thumb'] = rlist[i]['rs16']\n        roomitem['info'] = {'plot' : zh(rlist[i]['ol']) + u' 人气 · 房间号 ' + str(rlist[i]['rid']) + u'\\n\\n','cast':[(rlist[i]['nn'],u'主播')]}\n        if rlist[i]['od'] != '':\n            roomitem['info']['plot'] += u'[COLOR orange]官方认证：' + rlist[i]['od'] + '[/COLOR]'\n        rooms.append(roomitem)\n    return rooms\n\ndef get_douyu_roomidinfo(url):\n    info = {}\n    if 'douyu.com' in url:\n        if '?rid=' in url:\n            room_id = re.search('(?<=\\?rid=)[0-9]+',url).group()\n        else:\n            room_id = re.search('(?<=douyu.com/)[0-9]+',url).group()\n    else:\n        room_id = url\n    room_url = 'https://www.douyu.com/betard/' + str(room_id)\n    r = get_html(room_url)\n    j = json.loads(r)\n    info['title'] = j['room']['room_name']\n    info['img'] = j['room']['room_pic']\n    info['genre'] = [j['room']['second_lvl_name']]\n    \n    plot = u'房间号: ' + str(j['room']['room_id'])\n    \n    plot += u'\\n' + j['room']['show_details']\n    # if roomdata['state'] == 'ON':\n    #     info['status'] = u'开播'\n    #     plot += u' · '+str(roomdata['totalCount']) + u' 人气值' \n    # else:\n    #     info['status'] = u'未开播'\n    info['cast'] = [(j['room']['nickname'],u'主播')]\n    info['plot'] = plot\n    return info\n\ndef get_douyu_roomid(url):\n    if 'douyu.com' in url:\n        if '?rid=' in url:\n            room_id = re.search('(?<=\\?rid=)[0-9]+',url).group()\n        else:\n            room_id = re.search('(?<=douyu.com/)[0-9]+',url).group()\n        dialog = xbmcgui.Dialog()\n        dialog.notification('提取成功','房间号：' + str(room_id), xbmcgui.NOTIFICATION_INFO, 5000)\n    else:\n        room_id = url\n\n    rid = str(room_id)\n    tt = get_tt()\n    url = get_pre_url(rid, tt[1])\n    if url:\n        return \"http://tx2play1.douyucdn.cn/live/\" + url + \".flv?uuid=\"\n    else:\n        result = get_homejs(rid)\n        real_rid = result[1]\n        homejs = result[0]\n        real_url = get_sign_url(tt[2], real_rid, tt[0], homejs)\n        if real_url != 0:\n            real_url = \"http://tx2play1.douyucdn.cn/live/\" + real_url + \".flv?uuid=\"\n        else:\n            real_url = '未开播'\n        return real_url\n    # r = get_html('https://web.sinsyth.com/lxapi/douyujx.x?roomid=' + str(room_id))\n    # j = json.loads(r)\n    # live = j['Rendata']['link']\n    # live = re.search('douyucdn.cn/live/[a-zA-Z0-9]+',live).group()\n    # live = 'http://tx2play1.' + live + '.m3u8'\n    #dialog = xbmcgui.Dialog()\n    #dialog.textviewer('1',str(live))\n    # return live\n\ndef get_homejs(rid):\n    room_url = 'https://m.douyu.com/' + rid\n    response = requests.get(url=room_url)\n    pattern_real_rid = r'\"rid\":(\\d{1,7})'\n    real_rid = re.findall(pattern_real_rid, response.text, re.I)[0]\n    if real_rid != rid:\n        room_url = 'https://m.douyu.com/' + real_rid\n        response = requests.get(url=room_url)\n    homejs = ''\n    pattern = r'(function ub9.*)[\\s\\S](var.*)'\n    result = re.findall(pattern, response.text, re.I)\n    str1 = re.sub(r'eval.*;}', 'strc;}', result[0][0])\n    homejs = str1 + result[0][1]\n    return homejs, real_rid\n\ndef get_sign(rid, post_v, tt, ub9): \n    context = js2py.EvalJs()\n    context.execute(ub9)\n    res = context.ub98484234()\n    v = re.search(r'v=(\\d+)', res).group(1)\n    rb = hashlib.md5((rid + '10000000000000000000000000001501' + tt + v).encode('utf-8')).hexdigest()\n    func_sign = re.sub(r'return rt;}\\);?', 'return rt;}', res)\n    func_sign = func_sign.replace('(function (', 'function sign(')\n    func_sign = func_sign.replace('CryptoJS.MD5(cb).toString()', '\"' + rb + '\"')\n    print(func_sign)\n    js = js2py.eval_js(func_sign)\n    sign = js(rid, '10000000000000000000000000001501', tt)\n    return sign\n\ndef get_tt():\n    tt1 = str(int(time.time()))\n    tt2 = str(int((time.time() * 1000)))\n    today = time.strftime('%Y%m%d', time.localtime())\n    return tt1, tt2, today\n\ndef get_pre_url(rid, tt):\n    request_url = 'https://playweb.douyucdn.cn/lapi/live/hlsH5Preview/' + rid\n    post_data = {\n        'rid': rid,\n        'did': '10000000000000000000000000001501'\n    }\n    auth = hashlib.md5((rid + str(tt)).encode('utf-8')).hexdigest()\n    header = {\n        'content-type': 'application/x-www-form-urlencoded',\n        'rid': rid,\n        'time': tt,\n        'auth': auth\n    }\n    response = requests.post(url=request_url, headers=header, data=post_data)\n    response = response.json()\n    pre_url = ''\n    if response.get('error') == 0:\n        real_url = (response.get('data')).get('rtmp_live')\n        if 'mix=1' in real_url:\n            pre_url = mix_room(rid)\n        else:\n            pattern1 = r'^[0-9a-zA-Z]*'\n            pre_url = re.search(pattern1, real_url, re.I).group()\n    return pre_url\n\ndef get_sign_url(post_v, rid, tt, ub9):\n    sign = get_sign(rid, post_v, tt, ub9)\n    params = sign + '&ver=219032101&rid={}&rate=-1'.format(rid)\n    request_url = 'https://m.douyu.com/api/room/ratestream'\n    header = {\n        'Content-Type': 'application/x-www-form-urlencoded',\n        'User-Agent': 'Mozilla/5.0 (Linux; Android 5.0; SM-G900P Build/LRX21T) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Mobile Safari/537.36'\n    }\n    response = requests.post(url=request_url, headers=header, params=params).json()\n    if response.get('code') == 0:\n        real_url = (response.get('data')).get('url')\n        pattern = r'(\\d{1,7}[0-9a-zA-Z]+)_?\\d{0,4}(.m3u8|/playlist)'\n        result1 = re.search(pattern, real_url).group(1)\n    else:\n        result1 = 0\n    return result1\n\n\n#触手\ndef get_chushou_categories():\n    return [{'name':'王者荣耀','link':'https://chushou.tv/nav-list/down.htm?targetKey=3-1159-4&breakpoint='},\n            {'name':'和平精英','link':'https://chushou.tv/nav-list/down.htm?targetKey=3-1576-4&breakpoint='},\n            {'name':'遇见KK','link':'https://chushou.tv/nav-list/down.htm?targetKey=3-1744-4&breakpoint='},\n            {'name':'创造与魔法','link':'https://chushou.tv/nav-list/down.htm?targetKey=3-1432-4&breakpoint='},\n            {'name':'巅峰战舰','link':'https://chushou.tv/nav-list/down.htm?targetKey=3-1191-4&breakpoint='},\n            {'name':'穿越火线','link':'https://chushou.tv/nav-list/down.htm?targetKey=3-1147-4&breakpoint='},\n            {'name':'球球大作战','link':'https://chushou.tv/nav-list/down.htm?targetKey=3-1013-4&breakpoint='},\n            {'name':'英雄联盟','link':'https://chushou.tv/nav-list/down.htm?targetKey=3-1435-4&breakpoint='},\n            {'name':'全民枪战','link':'https://chushou.tv/nav-list/down.htm?targetKey=3-1009-4&breakpoint='}]\n\ndef get_chushou_rooms(url,page):\n    rooms = []\n    \n    r = get_html(url +str((int(page)-1)*20))\n    j = json.loads(r)\n    rlist = j['data']['items']\n    for i in range(len(rlist)):\n        roomitem = {}\n        roomitem['name'] = u''\n        roomitem['href'] =  rlist[i]['targetKey']\n        roomitem['thumb'] = rlist[i]['cover']\n        roomitem['info'] = {'plot' : zh(rlist[i]['meta']['onlineCount']) + u' 人气 · 房间号 ' + rlist[i]['targetKey'],'cast':[(rlist[i]['meta']['creator'],u'主播')]}\n        if 'liveTagName' in rlist[i]['meta']:\n            roomitem['info']['genre'] = [rlist[i]['meta']['liveTagName']]\n            roomitem['name'] =  u'[' + rlist[i]['meta']['liveTagName'] + u'] ' \n        roomitem['name'] = rlist[i]['name']\n        rooms.append(roomitem)\n    return rooms\n\ndef get_chushou_roomidinfo(url):\n    info = {}\n    if 'chushou.tv' in url:\n        if re.search('(?<=/room/)[0-9]+',url):\n            room_id = re.search('(?<=/room/)[0-9]+',url).group()\n        else:\n            if re.search('(?<=/room/m-)[0-9]+',url):\n                room_id = re.search('(?<=/room/m-)[0-9]+',url).group()\n            else:\n                room_id = url\n        dialog = xbmcgui.Dialog()\n        dialog.notification('提取成功','房间号：' + str(room_id), xbmcgui.NOTIFICATION_INFO, 5000)\n    else:\n        room_id = url\n    room_url = 'https://chushou.tv/' + str(room_id)\n    r = get_html(room_url)\n    soup = BeautifulSoup(r,'html.parser')\n    title = soup.find('p',class_='nav-title-text ellipsis').text\n    genre = soup.find('a',class_='room-zone-text room-zone-text1').text\n    up = soup.find('p',class_='room-anchor-nickname').text.strip()\n    fans = soup.find('p',class_='room-subscribe-count').text\n    img = soup.find('div',class_='live-flash-container')\n    hot = soup.find('p',class_='room-hot').text\n    # dialog = xbmcgui.Dialog()\n    # dialog.textviewer('1',str(roomdata)+ '\\n\\n' + str(upinfo) + '\\n' +str(str3))\n    info['title'] = title\n    info['img'] =  'http:' + img['data-videoimg']\n    info['genre'] = [genre]\n    plot = hot + u' 人气\\n'\n    plot += u'房间号: ' + str(img['data-roomid'])\n    info['plot'] = plot\n    info['cast'] = [(up,fans + u' 粉丝')]\n    return info\n\ndef get_chushou_roomid(url):\n    if 'chushou.tv' in url:\n        if re.search('(?<=/room/)[0-9]+',url):\n            room_id = re.search('(?<=/room/)[0-9]+',url).group()\n        else:\n            if re.search('(?<=/room/m-)[0-9]+',url):\n                room_id = re.search('(?<=/room/m-)[0-9]+',url).group()\n            else:\n                room_id = url\n        dialog = xbmcgui.Dialog()\n        dialog.notification('提取成功','房间号：' + str(room_id), xbmcgui.NOTIFICATION_INFO, 5000)\n    else:\n        room_id = url\n    try:\n        room_url = 'https://chushou.tv/h5player/video/get-play-url.htm?roomId={}&protocols=2&callback='.format(room_id)\n        r = get_html(room_url)\n        j = json.loads(r)\n        if j['code'] == 0:\n            live = j['data'][0]\n            if 'shdPlayUrl' in live:\n                real_url = live['shdPlayUrl']\n            else:\n                if 'hdPlayUrl' in live:\n                    real_url = live['hdPlayUrl']\n                else:\n                    real_url = live['sdPlayUrl']\n        else:\n            dialog = xbmcgui.Dialog()\n            dialog.notification('获取直播地址失败','直播间不存在或未开播', xbmcgui.NOTIFICATION_INFO, 5000)\n        return real_url\n    except:\n        dialog = xbmcgui.Dialog()\n        dialog.notification('获取直播地址失败','直播间不存在或未开播', xbmcgui.NOTIFICATION_INFO, 5000)\n    \n\ndef get_chushou_search(keyword,page):\n    rooms = []\n    url = 'https://chushou.tv/so.htm?keyword=' + keyword\n    r = get_html(url)\n    soup = BeautifulSoup(r,'html.parser')\n    rlist = soup.find_all('a',class_='liveNewOne')\n    uplist = soup.find_all('div',class_='per_anchor')\n    for i in range(len(rlist)):\n        roomitem = {}\n        roomitem['name'] = u'[房间]' + rlist[i].find('span',class_='videoName').text\n        roomitem['href'] =  'https://chushou.tv' + rlist[i]['href']\n        roomitem['thumb'] = 'http:' + rlist[i].find('img',class_='liveImages homelazyImage')['src']\n        roomitem['info'] = {'plot' : rlist[i].find('span',class_='liveCount').text + u' 人气 ','cast':[(rlist[i].find('span',class_='livePlayerName').text,u'主播')]}\n        rooms.append(roomitem)\n    for i in range(len(uplist)):\n        if i < 4:\n            roomitem = {}\n            roomitem['name'] = u'[主播]' + uplist[i].find('span',class_='anchor_nickname').text\n            roomitem['href'] =  'https://chushou.tv' + uplist[i].a['href']\n            roomitem['thumb'] = 'https:' + uplist[i].div.a.img['src']\n            roomitem['info'] = {'plot' : uplist[i].find('span',class_='fans_num').text ,'cast':[(uplist[i].find('span',class_='anchor_nickname').text,u'主播')]}\n            rooms.append(roomitem)\n    return rooms\n\n#企鹅电竞\ndef get_egame_categories():\n    return [{'name':'王者荣耀','link':'https://share.egame.qq.com/cgi-bin/pgg_live_async_fcgi?param={\"key\":{\"module\":\"pgg_live_read_ifc_mt_svr\",\"method\":\"get_pc_live_list\",\"param\":{\"appid\":\"1104466820\",\"page_size\":40,\"page_num\":'},\n            {'name':'和平精英','link':'https://share.egame.qq.com/cgi-bin/pgg_live_async_fcgi?param={\"key\":{\"module\":\"pgg_live_read_ifc_mt_svr\",\"method\":\"get_pc_live_list\",\"param\":{\"appid\":\"1106467070\",\"page_size\":40,\"page_num\":'},\n            {'name':'主机游戏','link':'https://share.egame.qq.com/cgi-bin/pgg_live_async_fcgi?param={\"key\":{\"module\":\"pgg_live_read_ifc_mt_svr\",\"method\":\"get_pc_live_list\",\"param\":{\"appid\":\"2000000140\",\"page_size\":40,\"page_num\":'},\n            {'name':'绝地求生','link':'https://share.egame.qq.com/cgi-bin/pgg_live_async_fcgi?param={\"key\":{\"module\":\"pgg_live_read_ifc_mt_svr\",\"method\":\"get_pc_live_list\",\"param\":{\"appid\":\"2000000133\",\"page_size\":40,\"page_num\":'},\n            {'name':'梦工厂','link':'https://share.egame.qq.com/cgi-bin/pgg_live_async_fcgi?param={\"key\":{\"module\":\"pgg_live_read_ifc_mt_svr\",\"method\":\"get_pc_live_list\",\"param\":{\"appid\":\"2000000157\",\"page_size\":40,\"page_num\":'},\n            {'name':'英雄联盟','link':'https://share.egame.qq.com/cgi-bin/pgg_live_async_fcgi?param={\"key\":{\"module\":\"pgg_live_read_ifc_mt_svr\",\"method\":\"get_pc_live_list\",\"param\":{\"appid\":\"lol\",\"page_size\":40,\"page_num\":'},\n            {'name':'LOL云顶之弈','link':'https://share.egame.qq.com/cgi-bin/pgg_live_async_fcgi?param={\"key\":{\"module\":\"pgg_live_read_ifc_mt_svr\",\"method\":\"get_pc_live_list\",\"param\":{\"appid\":\"400000001573\",\"page_size\":40,\"page_num\":'},\n            {'name':'穿越火线','link':'https://share.egame.qq.com/cgi-bin/pgg_live_async_fcgi?param={\"key\":{\"module\":\"pgg_live_read_ifc_mt_svr\",\"method\":\"get_pc_live_list\",\"param\":{\"appid\":\"Cf\",\"page_size\":40,\"page_num\":'},\n            {'name':'户外猎奇','link':'https://share.egame.qq.com/cgi-bin/pgg_live_async_fcgi?param={\"key\":{\"module\":\"pgg_live_read_ifc_mt_svr\",\"method\":\"get_pc_live_list\",\"param\":{\"appid\":\"40000001470\",\"page_size\":40,\"page_num\":'},\n            {'name':'王牌战士','link':'https://share.egame.qq.com/cgi-bin/pgg_live_async_fcgi?param={\"key\":{\"module\":\"pgg_live_read_ifc_mt_svr\",\"method\":\"get_pc_live_list\",\"param\":{\"appid\":\"1106448348\",\"page_size\":40,\"page_num\":'},\n            {'name':'暴雪专区','link':'https://share.egame.qq.com/cgi-bin/pgg_live_async_fcgi?param={\"key\":{\"module\":\"pgg_live_read_ifc_mt_svr\",\"method\":\"get_pc_live_list\",\"param\":{\"appid\":\"400000001544\",\"page_size\":40,\"page_num\":'},\n            {'name':'自走棋','link':'https://share.egame.qq.com/cgi-bin/pgg_live_async_fcgi?param={\"key\":{\"module\":\"pgg_live_read_ifc_mt_svr\",\"method\":\"get_pc_live_list\",\"param\":{\"appid\":\"40000001435\",\"page_size\":40,\"page_num\":'},\n            {'name':'CF手游','link':'https://share.egame.qq.com/cgi-bin/pgg_live_async_fcgi?param={\"key\":{\"module\":\"pgg_live_read_ifc_mt_svr\",\"method\":\"get_pc_live_list\",\"param\":{\"appid\":\"1104512706\",\"page_size\":40,\"page_num\":'},\n            {'name':'QQ飞车手游','link':'https://share.egame.qq.com/cgi-bin/pgg_live_async_fcgi?param={\"key\":{\"module\":\"pgg_live_read_ifc_mt_svr\",\"method\":\"get_pc_live_list\",\"param\":{\"appid\":\"1104922185\",\"page_size\":40,\"page_num\":'},\n            {'name':'陪你看','link':'https://share.egame.qq.com/cgi-bin/pgg_live_async_fcgi?param={\"key\":{\"module\":\"pgg_live_read_ifc_mt_svr\",\"method\":\"get_pc_live_list\",\"param\":{\"appid\":\"2000000110\",\"page_size\":40,\"page_num\":'},\n            {'name':'新游中心','link':'https://share.egame.qq.com/cgi-bin/pgg_live_async_fcgi?param={\"key\":{\"module\":\"pgg_live_read_ifc_mt_svr\",\"method\":\"get_pc_live_list\",\"param\":{\"appid\":\"40000001309\",\"page_size\":40,\"page_num\":'},\n            {'name':'娱乐','link':'https://share.egame.qq.com/cgi-bin/pgg_live_async_fcgi?param={\"key\":{\"module\":\"pgg_live_read_ifc_mt_svr\",\"method\":\"get_pc_live_list\",\"param\":{\"appid\":\"40000001472\",\"page_size\":40,\"page_num\":'},\n            {'name':'电竞赛事','link':'https://share.egame.qq.com/cgi-bin/pgg_live_async_fcgi?param={\"key\":{\"module\":\"pgg_live_read_ifc_mt_svr\",\"method\":\"get_pc_live_list\",\"param\":{\"appid\":\"2000000188\",\"page_size\":40,\"page_num\":'}]\n\ndef get_egame_rooms(url,page):\n    rooms = []\n    \n    r = get_html(url +str(page) + '}}}')\n    j = json.loads(r)\n    rlist = j['data']['key']['retBody']['data']['live_data']['live_list']\n    for i in range(len(rlist)):\n        roomitem = {}\n        roomitem['name'] = rlist[i]['title']\n        roomitem['href'] =  rlist[i]['anchor_id']\n        roomitem['thumb'] = rlist[i]['video_info']['url_high_reslution']\n        roomitem['info'] = {'plot' : zh(rlist[i]['online']) + u' 人气 · 房间号 ' + str(rlist[i]['anchor_id']),'cast':[(rlist[i]['anchor_name'],zh(rlist[i]['fans_count']))],'genre':[rlist[i]['appname']]}\n        \n        rooms.append(roomitem)\n    return rooms\n\ndef get_egame_roomidinfo(url):\n    info = {}\n    if 'egame.qq.com' in url:\n        if re.search('(?<=egame.qq.com/)[0-9]+',url):\n            room_id = re.search('(?<=egame.qq.com/)[0-9]+',url).group()\n        dialog = xbmcgui.Dialog()\n        dialog.notification('提取成功','房间号：' + str(room_id), xbmcgui.NOTIFICATION_INFO, 5000)\n    else:\n        room_id = url\n    r0 = get_html('https://m.egame.qq.com/'+room_id,'mobile')\n    soup = BeautifulSoup(r0,'html.parser')\n    title = soup.find('p',id='game-slogan')\n    img = soup.find('div',class_='player-bg')\n\n    room_url = 'https://share.egame.qq.com/cgi-bin/pgg_anchor_async_fcgi?param=%7B%22key%22:%7B%22module%22:%22pgg_anchor_card_svr%22,%22method%22:%22get_anchor_card_info%22,%22param%22:%7B%22anchor_uid%22:' + str(room_id) + ',%22user_uid%22:0%7D%7D%7D&g_tk=&pgg_tk=&tt=1'\n    r = get_html(room_url)\n    j = json.loads(r)\n    i = j['data']['key']['retBody']['data']\n    info['title'] = title.text\n    info['img'] =  img['style'][22:-1]\n    info['genre'] = [i['appname']]\n    plot = u'房间号: ' + str(i['uid'])\n    plot += u'\\n\\n' + i['profile']\n    info['plot'] = plot\n    info['cast'] = [(i['nick_name'],zh(i['fans_count']) + u' 粉丝')]\n    return info\ndef get_egame_roomid(url):\n    if 'egame.qq.com' in url:\n        if re.search('(?<=egame.qq.com/)[0-9]+',url):\n            room_id = re.search('(?<=egame.qq.com/)[0-9]+',url).group()\n        dialog = xbmcgui.Dialog()\n        dialog.notification('提取成功','房间号：' + str(room_id), xbmcgui.NOTIFICATION_INFO, 5000)\n    else:\n        room_id = url\n    room_url = 'https://share.egame.qq.com/cgi-bin/pgg_async_fcgi'\n    post_data = {\n        'param': '''{\"0\":{\"module\":\"pgg_live_read_svr\",\"method\":\"get_live_and_profile_info\",\"param\":{\"anchor_id\":''' + str(room_id) + ''',\"layout_id\":\"hot\",\"index\":1,\"other_uid\":0}}}'''\n    }\n    try:\n        r = post_html(room_url,str(post_data))\n        j = json.loads(r)\n        data = j['data']\n        if data:\n            video_info = data['0']['retBody']['data']['video_info']\n            pid = video_info['pid']\n            if pid:\n                is_live = data['0']['retBody']['data']['profile_info']['is_live']\n                if is_live:\n                    play_url = video_info['stream_infos'][0]['play_url']\n                    real_url = re.findall(r'([\\w\\W]+?)&uid=', play_url)[0]\n                    return real_url\n                else:\n                    real_url = '直播间未开播'\n            else:\n                real_url = '直播间未启用'\n        else:\n            real_url = '直播间不存在'\n    except:\n        real_url = '数据请求错误'\n\n#龙珠直播\ndef get_longzhu_categories():\n    return [{'name':'全部直播','link':'https://longzhu.com/channels/all'},\n            {'name':'游戏','link':'http://longzhu.com/channels/game'},\n            {'name':'阳光龙珠','link':'http://longzhu.com/channels/lzgy'},\n            {'name':'美女','link':'http://longzhu.com/channels/hwzb'},\n            {'name':'综合足球','link':'http://longzhu.com/channels/zhzq'}]\n\ndef get_longzhu_rooms(url,page):\n    rooms = []\n    \n    r = get_html(url)\n    soup = BeautifulSoup(r,'html.parser')\n    base = soup.find('div',id='list-con')\n    rlist = base.find_all('a',class_='livecard')\n    for i in range(len(rlist)):\n        roomitem = {}\n        roomitem['name'] = rlist[i].find('h3').text\n        roomitem['href'] =  rlist[i]['href']\n        roomitem['thumb'] = rlist[i].find('img')['src']\n        roomitem['info'] = {'plot' : rlist[i].find('li',class_='livecard-meta-item livecard-meta-views').find('span',class_='livecard-meta-item-text').text + u' 人气 · 房间号 ','cast':[(rlist[i].find('strong',class_='livecard-modal-username').text,u'主播')],'genre':[rlist[i].find('li',class_='livecard-meta-item livecard-meta-game').find('span',class_='livecard-meta-item-text').text]}\n        \n        rooms.append(roomitem)\n    return rooms\n\ndef get_longzhu_roomidinfo(url):\n    info = {}\n    if 'longzhu.com' in url:\n        if re.search('(?<=longzhu.com/)[0-9]+',url):\n            room_id = re.search('(?<=longzhu.com/)[0-9]+',url).group()\n        if re.search('(?<=longzhu.com/)[a-z0-9]+',url):\n            room_id = re.search('(?<=longzhu.com/)[a-z0-9]+',url).group()\n        dialog = xbmcgui.Dialog()\n        dialog.notification('提取成功','房间号：' + str(room_id), xbmcgui.NOTIFICATION_INFO, 5000)\n    else:\n        room_id = url\n    \n    r = get_html('http://m.longzhu.com/' + str(room_id))\n    room_id = re.findall(r'roomId = (\\d*);', r)[0]\n    room_url = 'http://liveapi.plu.cn/liveapp/roomstatus?version=3.9.3&device=6&packageId=&roomId=' + str(room_id)\n    r = get_html(room_url,'mobile')\n    j = json.loads(r)\n    info['title'] = j['title']\n    info['img'] =  j['cover']\n    info['genre'] = [j['broadcast']['parentGameName'],j['broadcast']['gameName']]\n    plot = u'房间号: ' + str(j['roomId'])\n    plot += u'\\n\\n' + j['desc']\n    info['plot'] = plot\n    info['cast'] = [(j['userName'],zh(j['subscribeCount']) + u' 粉丝')]\n    return info\n\ndef get_longzhu_roomid(url):\n    if 'longzhu.com' in url:\n        if re.search('(?<=longzhu.com/)[0-9]+',url):\n            room_id = re.search('(?<=longzhu.com/)[0-9]+',url).group()\n        if re.search('(?<=longzhu.com/)[a-z0-9]+',url):\n            room_id = re.search('(?<=longzhu.com/)[a-z0-9]+',url).group()\n        dialog = xbmcgui.Dialog()\n        dialog.notification('提取成功','房间号：' + str(room_id), xbmcgui.NOTIFICATION_INFO, 5000)\n    else:\n        room_id = url\n    try:\n        r = get_html('http://m.longzhu.com/' + str(room_id))\n        roomId = re.findall(r'roomId = (\\d*);', r)[0]\n        r = get_html('http://livestream.longzhu.com/live/getlivePlayurl?roomId={}&hostPullType=2&isAdvanced=true&playUrlsType=1'.format(roomId))\n        j = json.loads(r)\n        real_url = j['playLines'][0]['urls'][-1]['securityUrl']\n        return real_url\n    except:\n        real_url = '直播间不存在或未开播'\n#bilibili直播\ndef get_bilibili_categories():\n    return [{'name':'网游','link':'https://api.live.bilibili.com/room/v3/area/getRoomList?platform=web&parent_area_id=2&cate_id=0&area_id=0&sort_type=sort_type_124&page_size=30&tag_version=1'},\n            {'name':'手游','link':'https://api.live.bilibili.com/room/v3/area/getRoomList?platform=web&parent_area_id=3&cate_id=0&area_id=0&sort_type=sort_type_121&page_size=30&tag_version=1'},\n            {'name':'单机','link':'https://api.live.bilibili.com/room/v3/area/getRoomList?platform=web&parent_area_id=6&cate_id=0&area_id=0&sort_type=sort_type_150&page_size=30&tag_version=1'},\n            {'name':'娱乐','link':'https://api.live.bilibili.com/room/v3/area/getRoomList?platform=web&parent_area_id=1&cate_id=0&area_id=0&sort_type=sort_type_152&page_size=30&tag_version=1'},\n            {'name':'电台','link':'https://api.live.bilibili.com/room/v3/area/getRoomList?platform=web&parent_area_id=5&cate_id=0&area_id=0&sort_type=income&page_size=30&tag_version=1'},\n            {'name':'绘画','link':'https://api.live.bilibili.com/room/v3/area/getRoomList?platform=web&parent_area_id=4&cate_id=0&area_id=0&sort_type=sort_type_56&page_size=30&tag_version=1'}]\n\ndef get_bilibili_rooms(url,page):\n    rooms = []\n    r = get_html(url + '&page=' +str(page))\n    j = json.loads(r)\n    rlist = j['data']['list']\n    for i in range(len(rlist)):\n        roomitem = {}\n        roomitem['name'] = rlist[i]['title']\n        roomitem['href'] =  rlist[i]['roomid']\n        roomitem['thumb'] = rlist[i]['cover']\n        roomitem['info'] = {'plot' : zh(rlist[i]['online']) + u' 人气 · 房间号 ' + str(rlist[i]['roomid']),'cast':[(rlist[i]['uname'],u'主播')],'genre':[rlist[i]['parent_name'],rlist[i]['area_name']]}\n        rooms.append(roomitem)\n    return rooms\n\ndef get_bilibili_roomidinfo(url):\n    info = {}\n    if 'live.bilibili.com' in url:\n        if re.search('(?<=live.bilibili.com/)[0-9]+',url):\n            room_id = re.search('(?<=live.bilibili.com/)[0-9]+',url).group()\n        dialog = xbmcgui.Dialog()\n        dialog.notification('提取成功','房间号：' + str(room_id), xbmcgui.NOTIFICATION_INFO, 5000)\n    else:\n        room_id = url\n\n    r = get_html('https://api.live.bilibili.com/room/v1/Room/get_info?id=' + str(room_id))\n    j = json.loads(r)\n    i = j['data']\n    soup = BeautifulSoup(i['description'], \"html5lib\")\n    info['title'] = i['title']\n    info['img'] =  i['user_cover']\n    info['genre'] = [i['parent_area_name'],i['area_name']] + i['tags'].split(u',')\n    plot = u'房间号 ' + str(i['room_id'])\n    plot += u'\\n\\n' + soup.text\n    info['plot'] = plot\n\n    r = get_html('https://api.bilibili.com/x/space/acc/info?mid='+str(i['uid'])+'&jsonp=jsonp')\n    j = json.loads(r)\n    info['cast'] = [(j['data']['name'],zh(i['attention']) +u' 粉丝')]\n    return info\n\ndef get_bilibili_roomid(url):\n    if 'live.bilibili.com' in url:\n        if re.search('(?<=live.bilibili.com/)[0-9]+',url):\n            room_id = re.search('(?<=live.bilibili.com/)[0-9]+',url).group()\n        dialog = xbmcgui.Dialog()\n        dialog.notification('提取成功','房间号：' + str(room_id), xbmcgui.NOTIFICATION_INFO, 5000)\n    else:\n        room_id = url\n    r = get_html('https://api.live.bilibili.com/xlive/web-room/v1/index/getRoomPlayInfo?room_id='+str(room_id)+'&play_url=1&mask=0&qn=0&platform=web')\n    j = json.loads(r)\n    try:\n        flv = j['data']['play_url']['durl'][-1]['url']\n    except TypeError:\n        dialog = xbmcgui.Dialog()\n        dialog.notification('获取直播源地址失败', '可能房间号不存在未开播', xbmcgui.NOTIFICATION_INFO, 5000,False)\n    return flv\n#yy直播\ndef get_yy_categories():\n    return [{'name':'音乐','link':'https://www.yy.com/more/page.action?biz=sing&subBiz=idx&moduleId=308&pageSize=30&page='},\n            {'name':'舞蹈','link':'https://www.yy.com/more/page.action?biz=dance&subBiz=idx&moduleId=313&pageSize=30&page='},\n            {'name':'脱口秀','link':'https://www.yy.com/more/page.action?biz=talk&subBiz=idx&moduleId=328&pageSize=30&page='},\n            {'name':'二次元','link':'https://www.yy.com/more/page.action?biz=car&subBiz=idx&moduleId=1877&pageSize=30&page='},\n            {'name':'喊麦','link':'https://www.yy.com/more/page.action?biz=mc&subBiz=idx&moduleId=322&pageSize=30&page='},\n            {'name':'美食','link':'https://www.yy.com/more/page.action?biz=red&subBiz=meishi&moduleId=1656&pageSize=30&page='},\n            {'name':'体育','link':'https://www.yy.com/more/page.action?biz=sport&subBiz=idx&moduleId=434779&pageSize=30&page='},\n            {'name':'猎奇','link':'https://www.yy.com/more/page.action?biz=red&subBiz=lieqi&moduleId=561&pageSize=30&page='},\n            {'name':'名嘴','link':'https://www.yy.com/more/page.action?biz=talk&subBiz=nj&moduleId=975&pageSize=30&page='},\n            {'name':'旅游','link':'https://www.yy.com/more/page.action?biz=red&subBiz=lvyou&moduleId=560&pageSize=30&page='},\n            {'name':'活力少女','link':'https://www.yy.com/more/page.action?biz=talk&subBiz=girl&moduleId=976&pageSize=30&page='},\n            {'name':'吃鸡端游','link':'https://www.yy.com/more/page.action?biz=chicken&subBiz=jdqs&moduleId=1473&pageSize=30&page='},\n            {'name':'和平精英','link':'https://www.yy.com/more/page.action?biz=chicken&subBiz=cjzc&moduleId=1776&pageSize=30&page='},\n            {'name':'王者荣耀','link':'https://www.yy.com/more/page.action?biz=game&subBiz=idx&moduleId=1180&pageSize=30&page='},\n            {'name':'主机热游','link':'https://www.yy.com/more/page.action?biz=chicken&subBiz=djry&moduleId=3687&pageSize=30&page='},\n            {'name':'陪你看','link':'https://www.yy.com/more/page.action?biz=other&subBiz=yqk&moduleId=3134&pageSize=30&page='},\n            {'name':'颜值','link':'https://www.yy.com/more/page.action?biz=other&subBiz=xing&moduleId=1576&pageSize=30&page='}]\n\ndef get_yy_rooms(url,page):\n    rooms = []\n    r = get_html(url +str(page))\n    j = json.loads(r)\n    rlist = j['data']['data']\n    for i in range(len(rlist)):\n        roomitem = {}\n        roomitem['name'] = rlist[i]['desc']\n        roomitem['href'] =  'https://www.yy.com' + rlist[i]['liveUrl']\n        roomitem['thumb'] = rlist[i]['thumb']\n        roomitem['info'] = {'plot' : zh(rlist[i]['users']) + u' 人气 · 房间号 ' + str(rlist[i]['sid']),'cast':[(rlist[i]['name'],u'主播')]}\n        rooms.append(roomitem)\n    return rooms\n\ndef get_yy_roomidinfo(url):\n    info = {}\n    if 'yy.com' in url:\n        if re.search('(?<=yy.com/)[0-9]+',url):\n            room_id = re.search('(?<=yy.com/)[0-9]+',url).group()\n        dialog = xbmcgui.Dialog()\n        dialog.notification('提取成功','房间号：' + str(room_id), xbmcgui.NOTIFICATION_INFO, 5000)\n    else:\n        room_id = url\n\n    r = get_html('https://www.yy.com/api/liveInfoDetail/'+ str(room_id) + '/'+ str(room_id) + '/0')\n    j = json.loads(r)\n    i = j['data']\n    info['title'] = i['desc']\n    info['img'] =  i['gameThumb']\n\n    r = get_html('https://www.yy.com/api/biz-path/' + str(i['uid']))\n    j = json.loads(r)\n    info['genre'] = [j['data']['name']]\n    if i['tag']:\n        info['genre'] += [i['tag']]\n    if j['data']['parent'] != None:\n        info['genre'] +=  [j['data']['parent']['name']]\n    plot = zh(i['users']) +  u'人气 · 房间号 ' + str(i['sid'])\n    \n    r = get_html('https://www.yy.com/yyweb/live/bulletin/' + str(i['uid']) + u'/' + str(i['sid']) + u'/' + str(i['sid']) + u'/')\n    j = json.loads(r)\n    plot += u'\\n\\n' + j['data']\n    info['plot'] = plot\n    info['cast'] = [(i['name'],u'主播')]\n    return info\n\ndef get_yy_roomid(url):\n    if 'yy.com' in url:\n        if re.search('(?<=yy.com/)[0-9]+',url):\n            room_id = re.search('(?<=yy.com/)[0-9]+',url).group()\n        dialog = xbmcgui.Dialog()\n        dialog.notification('提取成功','房间号：' + str(room_id), xbmcgui.NOTIFICATION_INFO, 5000)\n    else:\n        room_id = url\n    room_url = 'http://interface.yy.com/hls/new/get/{rid}/{rid}/1200?source=wapyy&callback=jsonp3'.format(rid=room_id)\n    headers = {\n        'referer': 'http://wap.yy.com/mobileweb/{rid}'.format(rid=room_id),\n        'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.97 Safari/537.36'\n        }\n    try:\n        r = get_html(room_url, ua=str(headers))\n        json_data = json.loads(re.findall(r'\\(([\\W\\w]*)\\)', r)[0])\n        real_url = json_data.get('hls', 0)\n        if not real_url:\n            dialog = xbmcgui.Dialog()\n            dialog.notification('获取直播源地址失败', '可能房间号不存在未开播', xbmcgui.NOTIFICATION_INFO, 5000,False)\n        else:\n            return real_url\n    except:\n        dialog = xbmcgui.Dialog()\n        dialog.notification('获取直播源地址失败', '可能房间号不存在未开播', xbmcgui.NOTIFICATION_INFO, 5000,False)\n\n#快手\ndef get_kuaishou_categories():\n    return [{'name':'和平精英','link':'SYXX,22008'},\n            {'name':'王者荣耀','link':'SYXX,1001'},\n            {'name':'火影忍者','link':'SYXX,1011'},\n            {'name':'QQ飞车','link':'SYXX,1054'},\n            {'name':'第五人格','link':'SYXX,22018'},\n            {'name':'棋牌游戏','link':'WYJJ,100004'},\n            {'name':'穿越火线','link':'WYJJ,2'},\n            {'name':'英雄联盟','link':'WYJJ,1'},\n            {'name':'lol云顶之弈','link':'WYJJ,22103'},\n            {'name':'梦幻西游','link':'WYJJ,22'},\n            {'name':'使命召唤战区','link':'DJRY,22130'},\n            {'name':'绝地求生','link':'DJRY,21'},\n            {'name':'怀旧经典','link':'DJRY,100017'},\n            {'name':'最后的绿洲','link':'DJRY,22137'},\n            {'name':'主机新游','link':'DJRY,22088'}]\ndef get_kuaishou_rooms(url,page):\n    rooms = []\n    url = url.split(',')\n    data = {'operationName':'LiveCardQuery','variables':{'type':url[0],'gameId':url[1],'currentPage':2,'pageSize':60},'query':'query LiveCardQuery($gameId: String, $type: String, $heroType: String, $heroName: String, $currentPage: Int, $pageSize: Int) {\\n  liveCardList(gameId: $gameId, type: $type, heroType: $heroType, heroName: $heroName, currentPage: $currentPage, pageSize: $pageSize) {\\n    list {\\n      user {\\n        id\\n        avatar\\n        name\\n        __typename\\n      }\\n      watchingCount\\n      poster\\n      coverUrl\\n      caption\\n      id\\n      playUrls {\\n        quality\\n        url\\n        __typename\\n      }\\n      quality\\n      gameInfo {\\n        category\\n        name\\n        pubgSurvival\\n        type\\n        kingHero\\n        __typename\\n      }\\n      hasRedPack\\n      liveGuess\\n      expTag\\n      __typename\\n    }\\n    totalPage\\n    __typename\\n  }\\n}\\n'}\n    r = post_html('https://live.kuaishou.com/m_graphql',data=str(data),json='on')\n    j = json.loads(r)\n    rlist = j['data']['liveCardList']['list']\n    for i in range(len(rlist)):\n        roomitem = {}\n        if rlist[i]['caption'] != None:\n            roomitem['name'] = rlist[i]['caption']\n        else:\n            roomitem['name'] = rlist[i]['user']['name'] + u'的直播间'\n        roomitem['href'] =  rlist[i]['user']['id']\n        roomitem['thumb'] = rlist[i]['poster']\n        roomitem['info'] = {'plot' : zh(rlist[i]['watchingCount']) + u' 人气 · 房间号 ' + rlist[i]['user']['id'],'cast':[(rlist[i]['user']['name'],u'主播')],'genre':[rlist[i]['gameInfo']['name']]}\n        rooms.append(roomitem)\n    return rooms\n\n@plugin.cached(TTL=1)\ndef get_kuaishou_roomidinfo(rid):\n    di = {}\n    ah = mheaders\n    ah['cookie'] = 'did=web_c613143f98204d43a31bd72afef990fc'\n    r = requests.get('https://m.gifshow.com/fw/live/'+ str(rid),headers=ah)\n    r.encoding = 'utf-8'\n    r = r.text\n    soup = BeautifulSoup(r,'html.parser')\n    vid = soup.find('video')\n    di['title'] = vid['alt']\n    di['img'] = vid['poster']\n    di['plot'] = u'房间号 ' + rid\n    return di\n@plugin.cached(TTL=1)\ndef get_kuaishou_roomid(rid):\n    ah = mheaders\n    ah['cookie'] = 'did=web_c613143f98204d43a31bd72afef990fc'\n    r = requests.get('https://m.gifshow.com/fw/live/'+ str(rid),headers=ah)\n    r.encoding = 'utf-8'\n    #r = r.text\n    #str1 = r.find('window.__APOLLO_STATE__={')\n    #str2 = r.find(';(function()')\n    \n    #cut = r[str1+24:str2]\n    i = re.search('https?://\\S+m3u8',r.text).group()\n    i = re.sub('_sd1000tp','',i)\n    dialog = xbmcgui.Dialog()\n    dialog.textviewer('获取', str(i.encode('utf-8')))\n    return i\n    #j = json.loads(cut)\n    #i = j['clients']['graphqlServerClient']['$ROOT_QUERY.webLiveDetail({\"principalId\":\"'+rid+'\"})']['liveStream']['json']['playUrls'][0]['url']\n    #dialog = xbmcgui.Dialog()\n    #dialog.textviewer('获取', str(i.encode('utf-8')))\n\n\n        # room_url = 'https://m.gifshow.com/fw/live/' + str(rid)\n        # r = requests.get(room_url,headers=mheaders,cookies={'did':'web_c613143f98204d43a31bd72afef990fc'})\n        # dialog = xbmcgui.Dialog()\n        # dialog.textviewer('获取', str(r.cookies))\n        # soup = BeautifulSoup(r.text,'html.parser')\n        # real_url = soup.find('video')['src']\n    \n    #return i.encode('utf-8')\n\n#acfun\ndef get_acfun_categories():\n    return []\ndef get_acfun_roomid(url):\n    if 'm.acfun.com' in url:\n        if 'live/detail' in url:\n            room_id = re.search('(?<=detail/)[0-9]+',url).group()\n        dialog = xbmcgui.Dialog()\n        dialog.notification('提取成功','房间号：' + str(room_id), xbmcgui.NOTIFICATION_INFO, 5000)\n    else:\n        room_id = url\n    data = {'authorId':room_id,'pullStreamType':'SINGLE_HLS'}\n    r = post_html('https://api.kuaishouzt.com/rest/zt/live/web/startPlay?subBiz=mainApp&kpn=ACFUN_APP&kpf=OUTSIDE_ANDROID_H5&userId=1000000039258966&did=H5_838414230312ED6F&acfun.api.visitor_st=ChRhY2Z1bi5hcGkudmlzaXRvci5zdBJwe85FKluHmFKAbPx7tfh-zqLMs8HoVSVOW_nTwPGM-t00Ka_kd7ZQp_rofsYJvMM3I9wrdTIcPbXkb7yunw4gYC2ZbB11Go6OVAaETEuDzPYnLdd1Go2JrpvmsQ9O5ZuhKbapThOUkwirpO2UEMe2ZxoSVVXIQ734h7MpAYWDHy8uAC9cIiDMon1x1tPW2KP3glAjYExkYDzqEYKPoQaLbOpwcONucSgFMAE',str(data),ua='mobile')\n    \n    j = json.loads(r)\n    if j['result'] == 1:\n        live = j['data']['videoPlayRes']\n        live = re.search('http[\\S]+m3u8',live).group()\n        if '_sd1000' in live:\n            live = live.replace('_sd1000','')\n    else:\n        dialog = xbmcgui.Dialog()\n        dialog.notification('提取直播间地址失败','可能未开播', xbmcgui.NOTIFICATION_INFO, 5000)\n    return live\n\n#央视频\ndef get_yangshipin_categories():\n    return [{'name':'直播列表','link':'x'}]\n    \ndef get_yangshipin_rooms(url,page):\n    headers = {\n        'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like HeiNiaoPlayer) Chrome/72.0.3626.119 Safari/537.36',\n        'Accept': '*/*',\n        'Referer': 'https://www.guihet.com/',\n        'Accept-Language': 'zh-cn,en-us;q=0.5',\n        'Boke': 'https://www.guihet.com/',\n        'Host': 'guihet.com'\n    }\n    html = requests.get('https://guihet.com/download/teleplayer/bin/netlist.php',headers = headers)\n    #html = requests.get('https://gitee.com/FadedJay/reallive/raw/master/tv.m3u8')\n    m3u = html.text\n    rooms = []\n    rlist = m3u.split('\\n')\n    for i in range(len(rlist)):\n        roomitem = {}\n        if \",\" in rlist[i]:\n            rr = rlist[i].split(',')\n            roomitem['name'] = rr[0]\n            roomitem['href'] = re.search(r'((http|ftp|https):\\/\\/[\\w\\-_]+(\\.[\\w\\-_]+)+([\\w\\-\\.,@?^=%&:/~\\+#]*[\\w\\-\\@?^=%&/~\\+#])?)',rlist[i]).group()\n            roomitem['thumb'] = ''\n            roomitem['info'] = {}\n            rooms.append(roomitem)\n    return rooms\n\ndef get_yangshipin_roomid(url):\n    return url\n\n#直播中国\ndef get_livechina_categories():\n    return [{'name':'直播列表','link':'x'}]\n    \ndef get_livechina_rooms(url,page):\n    m3u = '''西藏珠峰观景台,https://gcalic.v.myalicdn.com/gc/bgwn10_1/index.m3u8\n远眺珠峰,https://gctxyc.liveplay.myqcloud.com/gc/tyhjrys_1/index.m3u8\n贵州省遵义市枫香镇花茂村,https://gcksc.v.kcdnvip.com/gc/dxssyt_1/index.m3u8\n甘肃省定西市渭源县元古堆村,https://gcalic.v.myalicdn.com/gc/lhssjzd_1/index.m3u8\n甘肃省武威市古浪县黄花滩生态移民区富民新村,https://gcalic.v.myalicdn.com/gc/hsxkssqdzrqj_1/index.m3u8\n宁夏固原市原州区彭堡镇姚磨村,https://gctxyc.liveplay.myqcloud.com/gc/ztb_1/index.m3u8\n宁夏固原市泾源县大湾乡杨岭村,https://gcksc.v.kcdnvip.com/gc/ztn_1/index.m3u8\n甘肃省临夏回族自治州东乡族自治县布楞沟村,https://gcksc.v.kcdnvip.com/gc/hsxkscj_1/index.m3u8\n河北省张家口市张北县小二台镇德胜村,https://gctxyc.liveplay.myqcloud.com/gc/pygc01_1/index.m3u8\n山西省忻州市岢岚县宋家沟乡宋家沟村,https://gctxyc.liveplay.myqcloud.com/gc/wysdhpcy_1/index.m3u8\n安徽省六安市金寨县花石乡大湾村,https://gcalic.v.myalicdn.com/gc/szgk01_1/index.m3u8\n重庆市石柱县中益乡华溪村,https://gcalic.v.myalicdn.com/gc/jsh02_1/index.m3u8\n湖北荆门樱花部落,https://gcksc.v.kcdnvip.com/gc/jyg04_1/index.m3u8\n鼋头渚赏樱阁,https://gctxyc.liveplay.myqcloud.com/gc/pshdxg01_1/index.m3u8\n鼋头渚长春桥,https://gcksc.v.kcdnvip.com/gc/dlst02_1/index.m3u8\n北京南宫温泉休闲度假区-五洲植物乐园,https://gcksc.v.kcdnvip.com/gc/tyhjntyz_1/index.m3u8\n四川省阿坝州金川县世外梨园景区,https://gctxyc.liveplay.myqcloud.com/gc/hnttlhzjd_1/index.m3u8\n云栖小镇,https://gccncc.v.wscdns.com/gc/hnttpgsz_1/index.m3u8\n江西省井冈山市茅坪乡神山村,https://gcalic.v.myalicdn.com/gc/wysyxdhp_1/index.m3u8\n天山（海西平台）,https://gcalic.v.myalicdn.com/gc/xjtchxpt_1/index.m3u8\n天山（定海神针）,https://gctxyc.liveplay.myqcloud.com/gc/xjtcdhsz_1/index.m3u8\n天山（马牙山）,https://gcalic.v.myalicdn.com/gc/xjtcmys_1/index.m3u8\n天山（灯杆山）,https://gccncc.v.wscdns.com/gc/xjtcdgs_1/index.m3u8\n重庆轨道交通2号线李子坝站,https://gccncc.v.wscdns.com/gc/gccntv240-lzb01_1/index.m3u8\n国家游泳中心（水立方）,https://gcalic.v.myalicdn.com/gc/gccntv241-slf01_1/index.m3u8'''\n\n    # rinfo = [{'thumb':'https://p1.img.cctvpic.com/photoworkspace/2020/04/24/2020042414461116536.jpg','info':{'plot':'西藏珠峰观景台','genre':'西藏珠峰观景台'}},\n    #          {'thumb':'https://p3.img.cctvpic.com/photoworkspace/2020/04/22/2020042219054892015.jpg','info':{'plot':'远眺珠峰','genre':'西藏珠峰观景台'}},\n    #          {'thumb':'https://p2.img.cctvpic.com/photoworkspace/2020/04/12/2020041200492825759.jpg','info':{'plot':'贵州省遵义市枫香镇花茂村','genre':'扶贫足迹'}},\n    #          {'thumb':'https://p3.img.cctvpic.com/photoworkspace/2020/04/12/2020041200495613473.jpg','info':{'plot':'甘肃省定西市渭源县元古堆村','genre':'扶贫足迹'}},\n    #          {'thumb':'https://p3.img.cctvpic.com/photoworkspace/2020/04/12/2020041200502074107.jpg','info':{'plot':'甘肃省武威市古浪县黄花滩生态移民区富民新村','genre':'扶贫足迹'}},\n    #          {'thumb':'https://p1.img.cctvpic.com/photoworkspace/2020/04/14/2020041409250316875.jpg','info':{'plot':'宁夏固原市原州区彭堡镇姚磨村','genre':'扶贫足迹'}},\n    #          {'thumb':'https://p4.img.cctvpic.com/photoworkspace/2020/04/14/2020041409272290684.jpg','info':{'plot':'宁夏固原市泾源县大湾乡杨岭村','genre':'扶贫足迹'}},\n    #          {'thumb':'https://p4.img.cctvpic.com/photoworkspace/2020/04/12/2020041200505363218.jpg','info':{'plot':'甘肃省临夏回族自治州东乡族自治县布楞沟村','genre':'扶贫足迹'}},\n    #          {'thumb':'https://p2.img.cctvpic.com/photoworkspace/2019/12/09/2019120912101082657.jpg','info':{'plot':'河北省张家口市张北县小二台镇德胜村','genre':'扶贫足迹'}},\n    #          {'thumb':'https://p4.img.cctvpic.com/photoworkspace/2019/12/09/2019120912233447088.jpg','info':{'plot':'山西省忻州市岢岚县宋家沟乡宋家沟村','genre':'扶贫足迹'}},\n    #          {'thumb':'https://p1.img.cctvpic.com/photoworkspace/2020/04/12/2020041200483967841.jpg','info':{'plot':'安徽省六安市金寨县花石乡大湾村','genre':'扶贫足迹'}},\n    #          {'thumb':'https://p5.img.cctvpic.com/photoworkspace/2020/04/12/2020041200490210564.jpg','info':{'plot':'重庆市石柱县中益乡华溪村','genre':'扶贫足迹'}},\n    #          {'thumb':'https://p3.img.cctvpic.com/photoworkspace/2020/03/20/2020032015394958429.jpg','info':{'plot':'荆门樱花部落','genre':'湖北荆门樱花部落'}},\n    #          {'thumb':'https://p1.img.cctvpic.com/photoworkspace/2020/03/20/2020032015301459754.jpg','info':{'plot':'鼋头渚赏樱阁','genre':'无锡鼋头渚'}},\n    #          {'thumb':'https://p2.img.cctvpic.com/photoworkspace/2020/03/20/2020032015310841622.jpg','info':{'plot':'鼋头渚长春桥','genre':'无锡鼋头渚'}},\n    #          {'thumb':'https://p1.img.cctvpic.com/photoworkspace/2020/03/10/2020031010193055329.jpg','info':{'plot':'北京南宫温泉休闲度假区-五洲植物乐园','genre':'北京南宫温泉休闲度假区'}},\n    #          {'thumb':'https://p2.img.cctvpic.com/photoworkspace/2020/03/03/2020030313154858134.jpg','info':{'plot':'四川省阿坝州金川县世外梨园景区','genre':'四川金川县梨花花海'}},\n    #          {'thumb':'https://p1.img.cctvpic.com/photoworkspace/2019/12/16/2019121617173198872.jpg','info':{'plot':'云栖小镇','genre':'浙江杭州云栖小镇'}},\n    #          {'thumb':'https://p1.img.cctvpic.com/photoworkspace/2020/03/10/2020031010193055329.jpg','info':{'plot':'北京南宫温泉休闲度假区-五洲植物乐园','genre':'北京南宫温泉休闲度假区'}},\n    #          {'thumb':'https://p2.img.cctvpic.com/photoworkspace/2019/10/12/2019101218001699134.jpg','info':{'plot':'天山（海西平台）','genre':'北京南宫温泉休闲度假区'}},\n    #          {'thumb':'https://p1.img.cctvpic.com/photoworkspace/2020/03/10/2020031010193055329.jpg','info':{'plot':'北京南宫温泉休闲度假区-五洲植物乐园','genre':'北京南宫温泉休闲度假区'}},\n    #          {'thumb':'https://p2.img.cctvpic.com/photoworkspace/2019/10/12/2019101218001699134.jpg','info':{'plot':'天山（海西平台）','genre':'北京南宫温泉休闲度假区'}},\n    #          {'thumb':'https://p1.img.cctvpic.com/photoworkspace/2020/03/10/2020031010193055329.jpg','info':{'plot':'北京南宫温泉休闲度假区-五洲植物乐园','genre':'北京南宫温泉休闲度假区'}},\n    #          {'thumb':'https://p2.img.cctvpic.com/photoworkspace/2019/10/12/2019101218001699134.jpg','info':{'plot':'天山（海西平台）','genre':'北京南宫温泉休闲度假区'}},\n    #          {'thumb':'https://p1.img.cctvpic.com/photoworkspace/2020/03/10/2020031010193055329.jpg','info':{'plot':'北京南宫温泉休闲度假区-五洲植物乐园','genre':'北京南宫温泉休闲度假区'}},\n    #          {'thumb':'https://p2.img.cctvpic.com/photoworkspace/2019/10/12/2019101218001699134.jpg','info':{'plot':'天山（海西平台）','genre':'北京南宫温泉休闲度假区'}},\n    #          {'thumb':'https://p1.img.cctvpic.com/photoworkspace/2020/03/10/2020031010193055329.jpg','info':{'plot':'北京南宫温泉休闲度假区-五洲植物乐园','genre':'北京南宫温泉休闲度假区'}},\n    #          {'thumb':'https://p2.img.cctvpic.com/photoworkspace/2019/10/12/2019101218001699134.jpg','info':{'plot':'天山（海西平台）','genre':'北京南宫温泉休闲度假区'}},\n    #          {'thumb':'https://p1.img.cctvpic.com/photoworkspace/2020/03/10/2020031010193055329.jpg','info':{'plot':'北京南宫温泉休闲度假区-五洲植物乐园','genre':'北京南宫温泉休闲度假区'}},\n    #          {'thumb':'https://p2.img.cctvpic.com/photoworkspace/2019/10/12/2019101218001699134.jpg','info':{'plot':'天山（海西平台）','genre':'北京南宫温泉休闲度假区'}},\n    #          {'thumb':'https://p1.img.cctvpic.com/photoworkspace/2020/03/10/2020031010193055329.jpg','info':{'plot':'北京南宫温泉休闲度假区-五洲植物乐园','genre':'北京南宫温泉休闲度假区'}},\n    #          {'thumb':'https://p2.img.cctvpic.com/photoworkspace/2019/10/12/2019101218001699134.jpg','info':{'plot':'天山（海西平台）','genre':'北京南宫温泉休闲度假区'}},\n    #          {'thumb':'https://p1.img.cctvpic.com/photoworkspace/2020/03/10/2020031010193055329.jpg','info':{'plot':'北京南宫温泉休闲度假区-五洲植物乐园','genre':'北京南宫温泉休闲度假区'}},\n    #          {'thumb':'https://p2.img.cctvpic.com/photoworkspace/2019/10/12/2019101218001699134.jpg','info':{'plot':'天山（海西平台）','genre':'北京南宫温泉休闲度假区'}},\n    #          {'thumb':'https://p1.img.cctvpic.com/photoworkspace/2020/03/10/2020031010193055329.jpg','info':{'plot':'北京南宫温泉休闲度假区-五洲植物乐园','genre':'北京南宫温泉休闲度假区'}},\n    #          {'thumb':'https://p2.img.cctvpic.com/photoworkspace/2019/10/12/2019101218001699134.jpg','info':{'plot':'天山（海西平台）','genre':'北京南宫温泉休闲度假区'}},\n    #          {'thumb':'https://p1.img.cctvpic.com/photoworkspace/2020/03/10/2020031010193055329.jpg','info':{'plot':'北京南宫温泉休闲度假区-五洲植物乐园','genre':'北京南宫温泉休闲度假区'}},\n    #          {'thumb':'https://p2.img.cctvpic.com/photoworkspace/2019/10/12/2019101218001699134.jpg','info':{'plot':'天山（海西平台）','genre':'北京南宫温泉休闲度假区'}},\n    #          {'thumb':'https://p1.img.cctvpic.com/photoworkspace/2020/03/10/2020031010193055329.jpg','info':{'plot':'北京南宫温泉休闲度假区-五洲植物乐园','genre':'北京南宫温泉休闲度假区'}},\n    #          {'thumb':'https://p2.img.cctvpic.com/photoworkspace/2019/10/12/2019101218001699134.jpg','info':{'plot':'天山（海西平台）','genre':'北京南宫温泉休闲度假区'}},\n    #          {'thumb':'https://p1.img.cctvpic.com/photoworkspace/2020/03/10/2020031010193055329.jpg','info':{'plot':'北京南宫温泉休闲度假区-五洲植物乐园','genre':'北京南宫温泉休闲度假区'}}]\n    # tmp['livechinaroomsinfo'] = rinfo\n    rooms = []\n    rlist = m3u.split('\\n')\n    for i in range(len(rlist)):\n        roomitem = {}\n        rr = rlist[i].split(',')\n        roomitem['name'] = rr[0]\n        roomitem['href'] =  rr[1]\n        roomitem['thumb'] = '' #rinfo[i]['thumb']\n        roomitem['info'] = {} #rinfo[i]['info']\n        rooms.append(roomitem)\n    return rooms\n\ndef get_livechina_roomid(url):\n    return url\n\n#熊猫频道\ndef get_ipanda_categories():\n    return [{'name':'直播列表','link':'x'}]\n    \ndef get_ipanda_rooms(url,page):\n    m3u = '''【成都】24H高清,http://gcalic.v.myalicdn.com/gc/ipanda_1/index.m3u8\n【都江堰】24H高清,http://gcalic.v.myalicdn.com/gc/ipanda1000_1/index.m3u8\n【都江堰】泰山,http://gcalic.v.myalicdn.com/gc/xiongmao13_1/index.m3u8\n【都江堰】青青,http://gcksc.v.kcdnvip.com/gc/xiongmao20_1/index.m3u8\n【神树坪】神树坪幼儿园A,http://gctxyc.liveplay.myqcloud.com/gc/xiongmao25_1/index.m3u8\n【都江堰】京宝+离堆,http://gcalic.v.myalicdn.com/gc/xiongmao15_1/index.m3u8\n【都江堰】晔晔,http://gcalic.v.myalicdn.com/gc/xiongmao11_1/index.m3u8\n【都江堰】英英,http://gcdnc.v.dwion.com/gc/xiongmao16_1/index.m3u8\n【神树坪】神树坪幼儿园B,http://gctxyc.liveplay.myqcloud.com/gc/xiongmao26_1/index.m3u8\n【都江堰】兴安+玉垒,http://gctxyc.liveplay.myqcloud.com/gc/xiongmao12_1/index.m3u8\n【都江堰】酋酋+华鸿,http://gcalic.v.myalicdn.com/gc/xiongmao14_1/index.m3u8\n【神树坪】神树坪幼儿园C,http://gcalic.v.myalicdn.com/gc/xiongmao22_1/index.m3u8\n【成都】幼年园A,http://gctxyc.liveplay.myqcloud.com/gc/xiongmao03_1/index.m3u8\n【成都】幼年园B,http://gctxyc.liveplay.myqcloud.com/gc/xiongmao04_1/index.m3u8\n【成都】幼儿园A,http://gcksc.v.kcdnvip.com/gc/xiongmao05_1/index.m3u8\n【成都】幼儿园B,http://gcalic.v.myalicdn.com/gc/xiongmao06_1/index.m3u8\n【成都】成年园A,http://gccncc.v.wscdns.com/gc/xiongmao01_1/index.m3u8\n【成都】成年园B,http://gctxyc.liveplay.myqcloud.com/gc/xiongmao02_1/index.m3u8\n【成都】一号别墅A,http://gcalic.v.myalicdn.com/gc/xiongmao09_1/index.m3u8\n【成都】一号别墅B,http://gcksc.v.kcdnvip.com/gc/xiongmao10_1/index.m3u8\n【成都】母子园A,http://gccncc.v.wscdns.com/gc/xiongmao07_1/index.m3u8\n【成都】母子园B,http://gcksc.v.kcdnvip.com/gc/xiongmao08_1/index.m3u8\n【卧龙】臭水,http://gcksc.v.kcdnvip.com/gc/xiongmao17_1/index.m3u8'''\n    rooms = []\n    rlist = m3u.split('\\n')\n    for i in range(len(rlist)):\n        roomitem = {}\n        rr = rlist[i].split(',')\n        roomitem['name'] = rr[0]\n        roomitem['href'] =  rr[1]\n        roomitem['thumb'] = ''\n        roomitem['info'] = {}\n        rooms.append(roomitem)\n    return rooms\n\ndef get_ipanda_roomid(url):\n    return url\n#it之家    \ndef get_ithome_categories():\n    return [{'name':'直播列表','link':'https://www.ithome.com/live/'}]\n\ndef get_ithome_rooms(url,page):\n    rooms = []\n    if page == 1:\n        r = get_html(url,encode='gbk')\n    else:\n        data = str({'domain':'live','type':'collectionpage','ot':str(tmp['ithomeot'])})\n        r = post_html('https://www.ithome.com/ithome/getajaxdata.aspx',data)\n    \n    soup = BeautifulSoup(r,'html.parser')\n    if page == 1:\n        ul = soup.find('ul',class_='ulcl')\n        rlist = ul.find_all('li')\n        for i in range(len(rlist)):\n            roomitem = {}\n            roomitem['name'] = rlist[i].find('h2').a.text + rlist[i].find('h2').span.text\n            roomitem['href'] =  rlist[i].a['href']\n            roomitem['thumb'] = 'http:' + rlist[i].find('img')['data-original']\n            roomitem['info'] = {'plot' : rlist[i].find('div',class_='memo').p.text,'genre':[rlist[i].find('span',class_='tags').a.text]}\n            ts = time.strptime(rlist[i].find('div',class_='block')['data-ot'], \"%Y/%m/%d %H:%M:%S\")\n            # 格式化时间转时间戳\n            tmp['ithomeot'] = int(time.mktime(ts)*1000)\n            rooms.append(roomitem)\n    else:\n        rlist = soup.find_all('li')\n        for i in range(len(rlist)):\n            roomitem = {}\n            roomitem['name'] = rlist[i].find('h2').a.text + rlist[i].find('h2').span.text\n            roomitem['href'] =  rlist[i].a['href']\n            roomitem['thumb'] = rlist[i].find('img')['src']\n            roomitem['info'] = {'plot' : rlist[i].find('div',class_='memo').p.text,'genre':[rlist[i].find('span',class_='tags').a.text]}\n            ts = time.strptime(rlist[i].find('div',class_='block')['data-ot'], \"%Y/%m/%d %H:%M:%S\")\n            # 格式化时间转时间戳\n            tmp['ithomeot'] = int(time.mktime(ts)*1000)\n            if i == 19:\n                dialog = xbmcgui.Dialog()\n                ok = dialog.ok('提取成功',str(tmp['ithomeot']))\n            rooms.append(roomitem)\n\n    return rooms\ndef get_ithome_roomid(url):\n    if 'ithome.com' in url:\n        if re.search('(?<=live.ithome.com/item/)[0-9]+',url):\n            room_id = re.search('(?<=live.ithome.com/item/)[0-9]+',url).group()\n        dialog = xbmcgui.Dialog()\n        dialog.notification('提取成功','房间号：' + str(room_id), xbmcgui.NOTIFICATION_INFO, 5000)\n    else:\n        room_id = url\n    r = get_html('https://live.ithome.com/item/' + room_id + '.htm')\n    str1 = r.find('var flvUrl = ')\n    str2 = r.find('var player = videojs(')\n    rt = r[str1+13:str2].strip()[+1:-2]\n    #dialog = xbmcgui.Dialog()\n    #dialog.textviewer('获取', str(rt))\n    return rt\n##########################################################\n###以下是核心代码区，看不懂的请勿修改\n##########################################################\n\ndef get_rooms(url,mode,page):\n    videos = get_rooms_mode(url,mode,page)\n    items = []\n    if 'info' in videos[0]:\n        for video in videos:\n            info = video['info']\n            info['mediatype'] = 'video'\n            items.append({'label': video['name'],\n            'path': plugin.url_for('roomid', value=video['href'], mode=mode),\n    \t'thumbnail': video['thumb'],\n            'icon': video['thumb'],\n            'info': info,\n        })\n    else:\n        for video in videos:\n            items.append({'label': video['name'],\n            'path': plugin.url_for('roomid', value=video['href'], mode=mode),\n    \t'thumbnail': video['thumb'],\n            'icon': video['thumb'],\n        })\n\n    categories = get_categories()\n    for index in range(len(categories)):\n        if mode == categories[index]['link']:\n            if 'rooms' in categories[index]:\n                if int(categories[index]['rooms']) == len(videos):\n                    items.append({\n                        'label': '[COLOR yellow]下一页[/COLOR]',\n                        'path': plugin.url_for('rooms',url=url,mode=mode,page=int(int(page)+1)),\n                    })\n    return items\n\n@plugin.route('/rooms/<url>/<mode>/<page>/')\ndef rooms(url,mode,page):\n    items = get_rooms(url,mode,page)\n    return items\n\n@plugin.route('/home/<mode>/')\ndef home(mode):\n    categories = get_categories_mode(mode)\n    items = []\n    for category in categories:\n        items.append({\n        'label': category['name'],\n        'path': plugin.url_for('rooms', url=category['link'],mode=mode,page=1),\n    })\n    if len(items) == 1:\n        items = get_rooms(categories[0]['link'],mode,1)\n        return items\n        \n    try:\n        eval('get_' + mode + '_search')\n        items.append({\n            'label': '[COLOR yellow]搜索[/COLOR]',\n            'path': plugin.url_for('history',name='搜索',url='search',mode=mode),\n        })\n    except NameError:\n        pass\n    try:\n        ri = 'n'\n        eval('get_' + mode + '_roomid')\n        cate = get_categories()\n        for i in range(len(cate)):\n            if cate[i]['link'] == mode:\n                if 'roomid' in cate[i]:\n                    if cate[i]['roomid'] != 'false':\n                        ri = 'y'\n                else:\n                    ri = 'y'\n\n        if ri == 'y':\n            items.append({\n                'label': '[COLOR yellow]复制粘贴链接或者输入房间号进入直播[/COLOR]',\n                'path': plugin.url_for('history',name='复制粘贴链接或者输入房间号进入直播',url=mode + 'roomid',mode=mode),\n            })\n    except NameError:\n        pass\n    \n    return items\n\n@plugin.route('/search/<value>/<page>/<mode>/')\ndef search(value,page,mode):\n    if value == 'null':\n        keyboard = xbmc.Keyboard('', '请输入搜索内容')\n        xbmc.sleep(1500)\n        keyboard.doModal()\n        hi = his['search']\n        if (keyboard.isConfirmed()):\n            keyword = keyboard.getText()\n            if keyword != '':\n                hi[keyword] = str(time.strftime(\"%Y-%m-%d %H:%M:%S\", time.localtime()))\n    else:\n        keyword = value\n    videos = get_search_mode(keyword,page,mode)\n    items = []\n    if videos != []:\n        if 'info' in videos[0]:\n            for video in videos:\n                info = video['info']\n                info['mediatype'] = 'video'\n                items.append({'label': video['name'],\n                'path': plugin.url_for('roomid',value=video['href'], mode=mode),\n    \t    'thumbnail': video['thumb'],\n                'icon': video['thumb'],\n                'info': info,\n            })\n        else:\n            for video in videos:\n                items.append({'label': video['name'],\n                'path': plugin.url_for('roomid', value=video['href'], mode=mode),\n    \t    'thumbnail': video['thumb'],\n                'icon': video['thumb'],\n            })\n    \n    categories = get_categories()\n    for index in range(len(categories)):\n        if mode == categories[index]['link']:\n            if 'search' in categories[index]:\n                if int(categories[index]['search']) == len(videos):\n                    nextpage = {'label': '[COLOR yellow]下一页[/COLOR]', 'path': plugin.url_for('search', value=keyword,mode=mode,page=str(int(page)+1))}\n                    items.append(nextpage)\n    return items\n\n@plugin.route('/roomid/<value>/<mode>/')\ndef roomid(value,mode):\n    roomurl = ''\n    if value == 'null':\n        keyboard = xbmc.Keyboard('', '复制粘贴链接或者输入房间号进入直播\\n')\n        xbmc.sleep(1500)\n        keyboard.doModal()\n        hi = his[mode+'roomid']\n        if (keyboard.isConfirmed()):\n            roomurl = keyboard.getText()\n            if roomurl != '':\n                hi[roomurl] = str(time.strftime(\"%Y-%m-%d %H:%M:%S\", time.localtime()))\n    else:\n        roomurl = value\n    if roomurl != '':\n        liveurl = get_roomid_mode(roomurl,mode)\n        try:\n            rinfo = get_roomidinfo_mode(roomurl,mode)\n            items = []\n            rinfo['mediatype'] = 'video'\n            if 'img' in rinfo:\n                items.append({'label': rinfo['title'],\n                    'thumbnail': rinfo['img'],\n                    'icon': rinfo['img'],\n                    'info' : rinfo,\n                    'info_type' : 'video',\n                    'properties':{'setCast':str([{\"name\": \"Actor 1\", \"role\": \"role 1\"}, {\"name\": \"Actor 2\", \"role\": \"role 2\"}])},\n                    'path': liveurl + '|User-Agent=Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.122 Safari/537.36',\n                    'is_playable': True,\n                })\n            else:\n                items.append({'label': rinfo['title'],\n                    'info' : rinfo,\n                    'info_type' : 'video',\n                    'path': liveurl + '|User-Agent=Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.122 Safari/537.36',\n                    'is_playable': True,\n                })\n        except NameError:\n            items = []\n            rinfo = {}\n            rinfo['mediatype'] = 'video'\n            items.append({'label': '直播间',\n                    'info' : rinfo,\n                    'path': liveurl + '|User-Agent=Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.122 Safari/537.36',\n                    'is_playable': True,\n            })\n        return items\n\ndef get_key (dict, value):\n  return [k for k, v in dict.items() if v == value]\n\n@plugin.route('/history/<name>/<url>/<mode>/')\ndef history(name,url,mode):\n    items = []\n    if url == 'search':\n        items.append({\n            'label': '[COLOR yellow]'+ name +'[/COLOR]',\n            'path': plugin.url_for(url,value='null',page=1,mode=mode),\n        })\n    else:\n        items.append({\n            'label': '[COLOR yellow]'+ name +'[/COLOR]',\n            'path': plugin.url_for('roomid',value='null',mode=mode),\n        })\n    if url in his:\n        hi = his[url]\n    else:\n        his[url] = {}\n        hi = his[url]  \n    #hi = []\n    if hi:\n        val = list(hi.values())\n        val = sorted(val,reverse=True)\n        for index in range(len(val)):\n            if url == 'search':\n                items.append({\n                    'label': name+ ':' +get_key(hi,val[index])[0] + ' - [查询时间：' + val[index] +']',\n                    'path': plugin.url_for(url,value=get_key(hi,val[index])[0],page=1,mode=mode),\n                })\n            else:\n                items.append({\n                    'label': name+ ':' +get_key(hi,val[index])[0] + ' - [查询时间：' + val[index] +']',\n                    'path': plugin.url_for('roomid',value=get_key(hi,val[index])[0],mode=mode),\n                })\n        items.append({\n            'label': '[COLOR yellow]清除历史记录[/COLOR]',\n            'path': plugin.url_for('cleanhis',url=url),\n        })\n    else:\n        items.append({\n            'label': '[COLOR yellow]历史记录为空[/COLOR]',\n            'path': plugin.url_for(ok,value='历史记录为空'),\n        })\n\n    return items\n\n@plugin.route('/ok/<value>/')\ndef ok(value):\n    dialog = xbmcgui.Dialog()\n    ok = dialog.ok('提示', value)\n\n@plugin.route('/cleanhis/<url>/')\ndef cleanhis(url):\n    his[url] = {}\n    dialog = xbmcgui.Dialog()\n    ok = dialog.ok('提示', '清理历史记录成功')\n\n@plugin.route('/')\ndef index():\n    if 'homesort' in storage:\n        #用户设置的列表\n        nlist = []\n        for index in range(len(storage['homesort'])):\n            nlist.append(storage['homesort'][index]['link'])\n        nlist = set(nlist)\n        #默认列表\n        glist = []\n        for index in range(len(get_categories())):\n            glist.append(get_categories()[index]['link'])\n        glist = set(glist)\n        if nlist != glist:\n            if len(glist)-len(nlist) > 0:\n                h = '新增 '+str(len(glist)-len(nlist))\n            else:\n                h = '删减 '+str(abs(len(glist)-len(nlist)))\n            newhomesort = []\n            for index in range(len(get_categories())):\n                vlist = {}\n                vlist['id'] = get_categories()[index]['id']\n                vlist['name'] = get_categories()[index]['name']\n                vlist['link'] = get_categories()[index]['link']\n                vlist['author'] = get_categories()[index]['author']\n                vlist['upload'] = get_categories()[index]['upload']\n                if 'plot' in get_categories()[index]:\n                    vlist['plot'] = get_categories()[index]['plot']\n                for i in range(len(storage['homesort'])):\n                    if storage['homesort'][i]['link'] == get_categories()[index]['link']:\n                        vlist['id'] = storage['homesort'][i]['id']\n                        #vlist['name'] = storage['homesort'][i]['name']\n                        #vlist['link'] = storage['homesort'][i]['link']\n                newhomesort.append(vlist)\n            storage['homesort'] = newhomesort\n            categories = sorted(newhomesort,key=lambda k:k.get('id'))\n            dialog = xbmcgui.Dialog()\n            dialog.notification('首页已更新', h +'个网站', xbmcgui.NOTIFICATION_INFO, 5000)\n        else:\n            newhomesort = []\n            for index in range(len(get_categories())):\n                vlist = {}\n                vlist['id'] = get_categories()[index]['id']\n                vlist['name'] = get_categories()[index]['name']\n                vlist['link'] = get_categories()[index]['link']\n                vlist['author'] = get_categories()[index]['author']\n                vlist['upload'] = get_categories()[index]['upload']\n                if 'plot' in get_categories()[index]:\n                    vlist['plot'] = get_categories()[index]['plot']\n                for i in range(len(storage['homesort'])):\n                    if storage['homesort'][i]['link'] == get_categories()[index]['link']:\n                        vlist['id'] = storage['homesort'][i]['id']\n                        #vlist['name'] = storage['homesort'][i]['name']\n                        #vlist['link'] = storage['homesort'][i]['link']\n                newhomesort.append(vlist)\n            storage['homesort'] = newhomesort\n            categories = sorted(storage['homesort'],key=lambda k:k.get('id'))\n    else:\n        storage['homesort'] = get_categories()\n        categories = sorted(get_categories(),key=lambda k:k.get('id'))\n\n    items = []\n    for category in categories:\n        if category['id'] != 0:\n            if 'plot' in category:\n                items.append({\n                'label': category['name'],\n                'path': plugin.url_for('home',mode=category['link']),\n                'info': {'plot':'@[COLOR blue]' + category['author'] + '[/COLOR]'  + ':\\n\\n    ' + category['plot'],'status':category['upload']+ ' 更新','cast':[(category['author'],'插件作者')],'mediatype':'video'},\n                })\n            else:\n                items.append({\n                    'label': category['name'],\n                    'path': plugin.url_for('home',mode=category['link']),\n                    'info': {'status':category['upload']+ '更新','cast':[(category['author'],'插件作者')],'mediatype':'video'},\n                })\n    items.append({\n        'label': u'[COLOR yellow]设置[/COLOR]',\n        'path': plugin.url_for('setting'),\n    })\n    \n    return items\n\n@plugin.route('/setting')\ndef setting():\n    items = []\n    items.append({\n        'label': u'首页排序与屏蔽',\n        'path': plugin.url_for('homesort'),\n    })\n    items.append({\n        'label': u'关键词过滤 - 符合关键词的文字被替换成*，但是视频仍然显示在视频列表',\n        'path': plugin.url_for('keyword',key='keyword',name='关键词过滤'),\n    })\n    items.append({\n        'label': u'黑名单屏蔽 - 符合关键词的内容将不显示在视频列表中',\n        'path': plugin.url_for('keyword',key='blacklist',name='黑名单屏蔽'),\n    })\n    return items\n\n@plugin.route('/homesort')\ndef homesort():\n    items = []\n    if 'homesort' in storage:\n        hlist = sorted(storage['homesort'],key=lambda k:k.get('id'))\n        for index in range(len(hlist)):\n            items.append({\n                'label':'id:' + str(hlist[index]['id']) + ' - ' + hlist[index]['name'],\n                'path':plugin.url_for('homeedit',value=hlist[index]['link']),\n            })\n    else:\n        hhlist = get_categories()\n        hlist = sorted(hhlist,key=lambda k:k.get('id'))\n        for index in range(len(hlist)):\n            items.append({\n                'label':'id:' + str(hlist[index]['id']) + ' - ' + hlist[index]['name'],\n                'path':plugin.url_for('homeedit',value=hlist[index]['link']),\n            })\n        storage['homesort'] = hlist\n    return items\n\n@plugin.route('/homeedit/<value>/')\ndef homeedit(value):\n    hlist = storage['homesort']\n    for index in range(len(hlist)):\n        if hlist[index]['link'] == value:\n            dialog = xbmcgui.Dialog()\n            d = dialog.input('--------修改id--------\\nid从小到大排列，改为0不显示', defaultt=str(hlist[index]['id']),type=xbmcgui.INPUT_NUMERIC)\n            if d != '' and int(d) != int(hlist[index]['id']):\n                hlist[index]['id'] = int(d)\n                dialog.notification('提示', '修改成功', xbmcgui.NOTIFICATION_INFO, 5000)\n\n\n\n@plugin.route('/keyword/<key>/<name>')\ndef keyword(key,name):\n    items = []\n    items.append({\n        'label': '[COLOR yellow]新增'+name+'[/COLOR]',\n        'path': plugin.url_for('keywordxad',key=key,value='/null/',mode=3),\n    })\n    items.append({\n        'label': '[COLOR yellow]' + name + ' (状态:'+chushihua(key+'switch',0) +')[/COLOR]',\n        'path': plugin.url_for('switch',key=key+'switch'),\n    })\n    #storage['keyword'] = ['fuck','getout']\n    if key in storage:\n        ky = storage[key]\n    else:\n        ky = ['示例1','helloworld']\n        storage[key] = ky\n    \n    for index in range(len(ky)):\n        items.append({\n            'label': ky[index],\n            'path': plugin.url_for('keywordxad',key=key,value=ky[index],mode=0),\n        })\n    return items\n\n@plugin.route('/keywordxad/<key>/<value>/<mode>/')\ndef keywordxad(key,value,mode):\n    if int(mode) == 0:\n        items = []\n        items.append({\n            'label': '修改 - ' +str(value),\n            'path': plugin.url_for('keywordxad',key=key,value=value,mode=1),\n        })\n        items.append({\n            'label': '删除 - ' +str(value),\n            'path': plugin.url_for('keywordxad',key=key,value=value,mode=2),\n        })\n        return items\n    #修改\n    if int(mode) == 1:\n        dialog = xbmcgui.Dialog()\n        d = dialog.input('修改 '+ value, defaultt=value,type=xbmcgui.INPUT_ALPHANUM)\n        ky = storage[key]\n        if d != '':\n            if d != value:\n                ky.remove(value)\n                ky.append(d)\n\n                storage[key] = list(set(ky))\n                dialog.notification('提示', '修改成功', xbmcgui.NOTIFICATION_INFO, 5000)\n            \n            \n    #删除\n    if int(mode) == 2:\n        dialog = xbmcgui.Dialog()\n        ret = dialog.yesno('确认删除吗？', '删除：' + value)\n        if ret:\n            ky = storage[key]\n            ky.remove(value)\n            storage[key] = list(set(ky))\n            dialog = xbmcgui.Dialog()\n            dialog.notification('提示', '删除成功', xbmcgui.NOTIFICATION_INFO, 5000)\n    #新增\n    if int(mode) == 3:\n        dialog = xbmcgui.Dialog()\n        d = dialog.input('新增关键词，多个请用英文逗号隔开',type=xbmcgui.INPUT_ALPHANUM)\n        ky = storage[key]\n        if d != '':\n            if d.find(',') != -1:\n                k = d.split(',')\n                ky = k + ky\n            else:\n                ky.append(d)\n            storage[key] = list(set(ky))\n            dialog.notification('提示', '添加成功', xbmcgui.NOTIFICATION_INFO, 5000)\n\n\n@plugin.route('/switch/<key>/')\ndef switch(key):\n    if storage[key] == 1:\n        storage[key] = 0\n        dialog = xbmcgui.Dialog()\n        dialog.notification('提示', '已关闭', xbmcgui.NOTIFICATION_INFO, 5000)\n    else:\n        storage[key] = 1\n        dialog = xbmcgui.Dialog()\n        dialog.notification('提示', '已开启', xbmcgui.NOTIFICATION_INFO, 5000)\n\n\n@plugin.route('/labels/<label>/')\ndef show_label(label):\n    # 写抓取视频类表的方法\n    #\n    items = [\n        {'label': label},\n    ]\n    return items\n\nif __name__ == '__main__':\n    plugin.run()\n"
  },
  {
    "path": "plugin.video.reallive/addon.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>\n<addon id=\"plugin.video.reallive\" name=\"Reallive\" version=\"0.1.3\" provider-name=\"zhengfan\">\n  <requires>\n    <import addon=\"xbmc.python\" version=\"2.1.0\"/>\n    <import addon=\"script.module.xbmcswift2\" version=\"2.4.0\"/>\n  <import addon=\"script.module.beautifulsoup4\" version=\"4.5.3\"/>\n  <import addon=\"script.module.requests\" version=\"2.19.1\"/>\n  <import addon=\"script.module.html5lib\" version=\"0.999.0\"/>\n  <import addon=\"script.module.js2py\" version=\"0.7.0\"/>\n  </requires>\n  <extension point=\"xbmc.python.pluginsource\" library=\"addon.py\">\n    <provides>video</provides>\n  </extension>\n  <extension point=\"xbmc.addon.metadata\">\n    <platform>all</platform>\n    <language></language>\n    <description>直播聚合</description>\n    <assets>\n      <icon>icon.png</icon>\n      <fanart>fanart.png</fanart> \n    </assets>\n    <news>首个版本</news>\n  </extension>\n</addon>\n"
  },
  {
    "path": "plugin.video.reallive/readme.md",
    "content": "# Reallive for kodi 0.1.1\n## 简介\n- Reallive是一个直播聚合插件，Real取自对本插件帮助巨大的开源项目wbt5大佬的Real-url，以表示对该开源项目的感谢！更多直播网站和功能后续支持\n## 主要功能\n适配网站 | 输入房间号/链接进入直播 | 按分类浏览直播列表  |  分类浏览支持翻页  |  搜索直播间和主播  |  搜索列表支持翻页 | 作者 | 更新时间\n---- | :----: | :----: | :----: | :----:| :----: | :----: | ----\n虎牙 | ✅ | ✅ | ✅ | ❌ | ❌ | zhengfan2014 | 2020-5-13\n斗鱼 | ✅ | ✅ | ❌ | ❌ | ❌ | zhengfan2014 | 2020-5-13\n触手 | ✅ | ✅ | ✅ | ✅ | ❌ | zhengfan2014 | 2020-5-13\n企鹅 | ✅ | ✅ | ❌ | ❌ | ❌ | zhengfan2014 | 2020-5-17\n龙珠 | ✅ | ✅ | ❌ | ❌ | ❌ | zhengfan2014 | 2020-5-17\nB站 | ✅ | ✅ | ✅ | ❌ | ❌ | zhengfan2014 | 2020-5-18\nYY | ✅ | ✅ | ✅ | ❌ | ❌ | zhengfan2014 | 2020-5-18\n快手 | ✅ | ✅ | ✅ | ❌ | ❌ | zhengfan2014 | 2020-5-18\nacfun | ✅ | ❌ | ❌ | ❌ | ❌ | zhengfan2014 | 2020-6-8\nit之家 | ❌ | ✅ | ✅ | ❌ | ❌ | zhengfan2014 | 2020-6-8\n央视频 | ❌ | ✅ | ❌ | ❌ | ❌ | zhengfan2014 | 2020-6-8\n直播中国 | ❌ | ✅ | ❌ | ❌ | ❌ | zhengfan2014 | 2020-6-8\n熊猫频道 | ❌ | ✅ | ❌ | ❌ | ❌ | zhengfan2014 | 2020-6-8\n## 更新历史\n > -[v0.1.1]----------------------  \n > 修复 - 虎牙直播解析直播地址失败  \n > 修复 - 快手直播解析直播地址失败  \n > 新增 - 斗鱼直播按分类浏览直播列表  \n > 新增 - Acfun直播解析  \n > 新增 - it之家直播  \n > 新增 - 央视频各大卫视1080p直播  \n > 新增 - 熊猫频道直播  \n > 新增 - 直播中国直播  \n > -[v0.1.0]----------------------  \n > 发布 - 首个版本  \n ## 使用到的开源项目，万分感谢\n  - https://github.com/wbt5/real-url"
  },
  {
    "path": "plugin.video.reallive/resources/__init__.py",
    "content": ""
  },
  {
    "path": "plugin.video.reallive/resources/language/English/strings.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?>\n<strings>\n  <!-- Plugin name -->\n  <string id=\"30000\">bilibili</string>\n</strings>\n"
  },
  {
    "path": "plugin.video.reallive/resources/lib/__init__.py",
    "content": ""
  },
  {
    "path": "plugin.video.skypixel/addon.py",
    "content": "#!/usr/bin/env python\n# -*- coding:utf-8 -*-\nimport re\nfrom xbmcswift2 import Plugin\nimport requests\nfrom bs4 import BeautifulSoup\nimport xbmcgui\nimport base64\nimport json\nimport urllib2\nimport sys\nimport HTMLParser\nimport re\n\nplugin = Plugin()\n\n\ndef unescape(string):\n    string = urllib2.unquote(string).decode('utf8')\n    quoted = HTMLParser.HTMLParser().unescape(string).encode('utf-8')\n    #转成中文\n    return re.sub(r'%u([a-fA-F0-9]{4}|[a-fA-F0-9]{2})', lambda m: unichr(int(m.group(1), 16)), quoted)\n\n\nheaders = {'user-agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.122 Safari/537.36'}\n\n\ndef get_categories():\n    return [{'name':'探索', 'link':'https://www.skypixel.com/api/v2/works?lang=zh-Hans&platform=web&device=desktop&sort=hot&filter=featured:true&limit=100&offset=0'},\n            {'name':'自然', 'link':'https://www.skypixel.com/api/v2/topics/nature/works?lang=zh-Hans&platform=web&device=desktop&sort=hot&filter=featured:true&limit=100&offset=40'},\n            {'name':'城市','link':'https://www.skypixel.com/api/v2/topics/city/works?lang=zh-Hans&platform=web&device=desktop&sort=hot&filter=featured:true&limit=100&offset=20'},\n            {'name':'运动','link':'https://www.skypixel.com/api/v2/topics/sport/works?lang=zh-Hans&platform=web&device=desktop&sort=hot&filter=featured:true&limit=100&offset=20'},\n            {'name':'人物','link':'https://www.skypixel.com/api/v2/topics/people/works?lang=zh-Hans&platform=web&device=desktop&sort=hot&filter=featured:true&limit=100&offset=60'},\n            {'name':'签约摄影师','link':'https://www.skypixel.com/api/v2/photographers/contract-works?lang=zh-Hans&platform=web&device=desktop&sort=hot&slug=creator_works&filter=featured:true&limit=100&offset=40'}]\n\n@plugin.cached(TTL=60)\ndef get_videos(url):\n    #爬视频列表的\n    videos = []\n\n    rec = requests.get(url,headers=headers)\n    #print(rec.text)\n    j = json.loads(rec.text)\n    for index in range(len(j['data']['items'])):\n        if j['data']['items'][index]['type'] == 'video':\n            videoitem = {}\n            videoitem['name'] = j['data']['items'][index]['title']\n            videoitem['href'] = j['data']['items'][index]['cdn_url']['large']\n            videoitem['thumb'] = j['data']['items'][index]['image']['large']\n            videos.append(videoitem)  \n\n    return videos\n\n\n\n@plugin.route('/play/<name>/<url>/')\ndef play(name,url):\n        url = url[:-8]\n        items = []\n        \n        item = {'label':'[' + '1080P'+ ']' + name,'path':url + '1080.mp4','is_playable': True}\n        items.append(item)\n        item = {'label':'[' + '720P'+ ']' + name,'path':url + '720.mp4','is_playable': True}\n        items.append(item)\n        item = {'label':'[' + '480P'+ ']' + name,'path':url + 'sd.mp4','is_playable': True}\n        items.append(item)\n        return items\n\n@plugin.route('/category/<name>/<url>/')\ndef category(name,url):\n    videos = get_videos(url)\n   \n    items = [{\n        'label': video['name'],\n        'path': plugin.url_for('play', name= video['name'].encode('utf-8'), url=video['href']),\n\t'thumbnail': video['thumb'],\n        'icon': video['thumb'],\n    } for video in videos]\n\n    sorted_items = items\n    #sorted_items = sorted(items, key=lambda item: item['label'])\n    return sorted_items\n\n\n\n\n@plugin.route('/')\ndef index():\n    categories = get_categories()\n    items = [{\n        'label': category['name'],\n        'path': plugin.url_for('category', name=category['name'] , url=category['link']),\n    } for category in categories]\n\n    \n    return items\n\n\n@plugin.route('/labels/<label>/')\ndef show_label(label):\n    # 写抓取视频类表的方法\n    #\n    items = [\n        {'label': label},\n    ]\n    return items\n\nif __name__ == '__main__':\n    plugin.run()\n"
  },
  {
    "path": "plugin.video.skypixel/addon.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>\n<addon id=\"plugin.video.skypixel\" name=\"天空之城\" version=\"0.1.0\" provider-name=\"zhengfan\">\n  <requires>\n    <import addon=\"xbmc.python\" version=\"2.1.0\"/>\n    <import addon=\"script.module.xbmcswift2\" version=\"2.4.0\"/>\n  <import addon=\"script.module.beautifulsoup4\" version=\"4.5.3\"/>\n  <import addon=\"script.module.requests\" version=\"2.19.1\"/>\n  <import addon=\"script.module.html5lib\" version=\"0.999.0\"/>\n  </requires>\n  <extension point=\"xbmc.python.pluginsource\" library=\"addon.py\">\n    <provides>video</provides>\n  </extension>\n  <extension point=\"xbmc.addon.metadata\">\n    <platform>all</platform>\n    <language></language>\n    <description>世界各地的航拍摄影师、拍手叫绝的航拍作品与独具价值的航拍攻略。全世界的探索者们互相启发,乐在其中</description>\n    <assets>\n      <icon>icon.png</icon>\n      <fanart>fanart.png</fanart> \n    </assets>\n    <news>首个版本</news>\n  </extension>\n</addon>\n"
  },
  {
    "path": "plugin.video.skypixel/readme.md",
    "content": "# 天空之城 for kodi 0.1.0\n## 简介\n- 世界各地的航拍摄影师、拍手叫绝的航拍作品与独具价值的航拍攻略。全世界的探索者们互相启发,乐在其中\n## 主要功能\n> - [x] 视频分类\n> - [x] 在线播放视频，支持任意选择分辨率，最高可播放1080p\n> - [x] 使用官方api解析视频\n> - [ ] 搜索功能\n> - [x] 缓存功能（减少向服务器请求次数）\n## 更新历史\n > -[v0.1.0]----------------------  \n > 发布 - 首个版本  "
  },
  {
    "path": "plugin.video.skypixel/resources/__init__.py",
    "content": ""
  },
  {
    "path": "plugin.video.skypixel/resources/language/English/strings.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?>\n<strings>\n  <!-- Plugin name -->\n  <string id=\"30000\">bilibili</string>\n</strings>\n"
  },
  {
    "path": "plugin.video.skypixel/resources/lib/__init__.py",
    "content": ""
  },
  {
    "path": "plugin.video.taptap/addon.py",
    "content": "#!/usr/bin/env python\n# -*- coding:utf-8 -*-\nimport re\nfrom xbmcswift2 import Plugin\nimport requests\nfrom bs4 import BeautifulSoup\nimport xbmcgui\nimport base64\nimport json\nimport urllib2\nimport sys\nimport HTMLParser\nimport re\nimport time\n\nfrom requests.adapters import HTTPAdapter\n\ndef get_real_url(url):\n    rs = requests.get(url,headers=headers,timeout=2)\n    return rs.url\n\ndef unescape(string):\n    string = urllib2.unquote(string).decode('utf8')\n    quoted = HTMLParser.HTMLParser().unescape(string).encode('utf-8')\n    #转成中文\n    return re.sub(r'%u([a-fA-F0-9]{4}|[a-fA-F0-9]{2})', lambda m: unichr(int(m.group(1), 16)), quoted)\n\n\nplugin = Plugin()\n\n#taptap\ntail = '&X-UA=V%3D1%26PN%3DWebApp%26LANG%3Dzh_CN%26VN%3D0.1.0%26LOC%3DCN%26PLT%3DPC'\n##############################################################################################################\nmacheaders = {'user-agent':'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_4 Supplemental Update) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/12.1.1 Safari/605.1.15'}\nipadheaders = {'user-agent': 'Mozilla/5.0 (iPad; CPU OS 10_15_4 Supplemental Update like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/12.1.1 Mobile/15E148 Safari/605.1.15'}\niphoneheaders = {'user-agent': 'Mozilla/5.0 (iPhone; CPU OS 10_15_4 Supplemental Update like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/12.1.1 Mobile/14E304 Safari/605.1.15'}\nmheaders = {'user-agent':'Mozilla/5.0 (Linux; Android 10; Z832 Build/MMB29M) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.113 Mobile Safari/537.36'}\nheaders = {'user-agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.122 Safari/537.36'}\n@plugin.cached(TTL=30)\ndef get_html_longtimecache(url,ua='pc',cookie='',mode='html',encode='utf-8'):\n    output = get_html(url,ua,cookie,mode,encode)\n    return output\n\n@plugin.cached(TTL=2)\ndef get_html(url,ua='pc',cookie='',mode='html',encode='utf-8'):\n    if cookie != '':\n        cookie = eval(cookie)\n    else:\n        cookie = {}\n    #UA相关\n    if ua == 'pc':\n        head = headers\n    if ua == 'mobile':\n        head = mheaders\n    if ua == 'iphone':\n        head = iphoneheaders\n    if ua == 'ipad':\n        head = ipadheaders\n    if ua == 'mac':\n        head = macheaders\n\n    \n    \n    #超时重试3次\n    # s0 = requests.Session()\n    with requests.Session() as s0:\n        s0.mount('http://', HTTPAdapter(max_retries=3))\n        s0.mount('https://', HTTPAdapter(max_retries=3))\n\n        #获取网页源代码\n        if mode == 'html':\n            r = s0.get(url,headers=head,cookies=cookie)\n            \n            #编码相关\n            if encode == 'utf-8':\n                r.encoding = 'utf-8'\n            if encode == 'gbk':\n                r.encoding = 'gbk'\n            html = r.text\n    \n        #用于获取302跳转网页的真实url\n        if mode == 'url':\n            head['Connection'] = 'close'\n            r = s0.get(url,headers=head,timeout=5,stream=True,cookies=cookie)\n            html = r.url\n    \n        return html\n\n@plugin.cached(TTL=2)\ndef post_html(url,data='',ua='pc',cookie='',mode='html',encode='utf-8',jsons=''):\n    if data != '':\n        data =eval(data)\n    if jsons != '':\n        jsons =eval(jsons)\n\n    #UA相关\n    if ua == 'pc':\n        head = headers\n    if ua == 'mobile':\n        head = mheaders\n    if ua == 'iphone':\n        head = iphoneheaders\n    if ua == 'ipad':\n        head = ipadheaders\n    if ua == 'mac':\n        head = macheaders\n\n    #超时重试3次\n    with requests.Session() as s0:\n        s0.mount('http://', HTTPAdapter(max_retries=3))\n        s0.mount('https://', HTTPAdapter(max_retries=3))\n\n    \n        if data != '' or jsons != '':\n            #获取网页源代码\n            if mode == 'html':\n                if data != '':\n                    r = s0.post(url,headers=head,data=data)\n                if jsons != '':\n                    r = s0.post(url,headers=head,json=jsons)\n                \n                if encode == 'utf-8':\n                    r.encoding = 'utf-8'\n                if encode == 'gbk':\n                    r.encoding = 'gbk'\n                html = r.text\n\n        \n            if mode == 'url' or mode == 'cookie':\n                head['Connection'] = 'close'\n                if data != '':\n                    r = s0.post(url,headers=head,data=data,timeout=5,stream=True)\n                if jsons != '':\n                    r = s0.post(url,headers=head,json=jsons,timeout=5,stream=True)\n                \n            \n                #用于获取302跳转网页的真实url\n                if mode == 'url':\n                    html = r.url\n                #用于获取cookie\n                if mode == 'cookie':\n                    cookiedict = {}\n                    for k,y in r.cookies.items():\n                        cookiedict[k] = y\n                    html = cookiedict\n        \n        \n            return html\n\ndef unix_to_data(uptime,format='data'):\n    if len(str(uptime)) > 10:\n        uptime = str(uptime)[:-(len(str(uptime))-10)]\n    uptime = float(uptime)\n    time_local = time.localtime(uptime)\n    if format == 'data' or format == 'zhdata' or format == 'datatime' or format == 'zhdatatime' or format == 'time' or format == 'zhtime' or format == 'ymdh':\n        if format == 'data':\n            uptime = time.strftime('%Y-%m-%d',time_local)\n        if format == 'zhdata':\n            uptime = time.strftime('%Y年%m月%d日',time_local)\n        if format == 'datatime':\n            uptime = time.strftime('%Y-%m-%d %H:%M:%S',time_local)\n        if format == 'zhdatatime':\n            uptime = time.strftime('%Y年%m月%d日 %H时%M分%S秒',time_local)\n        if format == 'time':\n            uptime = time.strftime('%H:%M:%S',time_local)\n        if format == 'zhtime':\n            uptime = time.strftime('%H时%M分%S秒',time_local)\n        if format == 'ymdh':\n            time_now = int(time.time())\n            chazhi = int(int(time.time()) - int(uptime))\n            if chazhi < 60:\n                uptime = str(int(chazhi)) + '秒前'\n            if chazhi >= 60 and chazhi < 3600:\n                uptime = str(int(chazhi/60)) + '分钟前'\n            if chazhi >= 3600 and chazhi < 86400:\n                uptime = str(int(chazhi/3600)) + '小时前'\n            if chazhi >= 86400 and chazhi < 2592000:\n                uptime = str(int(chazhi/86400)) + '天前'\n            if chazhi >= 2592000 and chazhi < 31104000:\n                uptime = str(int(chazhi/2592000)) + '月前'\n            if chazhi >= 31104000:\n                uptime = str(int(chazhi/31104000)) + '年前'\n    else:\n        uptime = time.strftime(format,time_local)\n    return uptime\n\ndef data_to_unix(dt,format='datatime'):\n    if format == 'data' or format == 'zhdata' or format == 'datatime' or format == 'zhdatatime' or format == 'time' or format == 'zhtime' or format == 'ymdh':\n        if format == 'data':\n            timeArray = time.strptime(dt,'%Y-%m-%d')\n        if format == 'zhdata':\n            timeArray = time.strptime(dt,'%Y年%m月%d日')\n        if format == 'datatime':\n            timeArray = time.strptime(dt,'%Y-%m-%d %H:%M:%S')\n        if format == 'zhdatatime':\n            timeArray = time.strptime(dt,'%Y年%m月%d日 %H时%M分%S秒')\n        if format == 'time':\n            timeArray = time.strptime(dt,'%H:%M:%S')\n        if format == 'zhtime':\n            timeArray = time.strptime(dt,'%H时%M分%S秒')\n    else:\n        timeArray = time.strptime(dt,format)\n    #转换成时间戳\n    timestamp = time.mktime(timeArray)\n    return timestamp\n\n#超过10000换算\ndef zh(num):\n    if num != '':\n        if int(num) >= 100000000:\n            p = round(float(num)/float(100000000), 1)\n            p = str(p) + '亿'\n        else:\n            if int(num) >= 10000:\n                p = round(float(num)/float(10000), 1)\n                p = str(p) + '万'\n            else:\n                p = str(num)\n    else:\n        p = '0'\n    return p\n\ndef get_categories():\n    return [{'name':'编辑推荐','link':'bianji'},\n            {'name':'为你推荐','link':'foryou'},\n            {'name':'热门榜','link':'https://www.taptap.com/top/download'},\n            {'name':'新品榜','link':'https://www.taptap.com/top/new'},\n            {'name':'预约榜','link':'https://www.taptap.com/top/reserve'},\n            {'name':'热卖榜','link':'https://www.taptap.com/top/sell'},\n            {'name':'热玩榜','link':'https://www.taptap.com/top/played'},\n            {'name':'往期推荐','link':'https://www.taptap.com/category/recommend'},\n            {'name':'TapTap独家','link':'https://www.taptap.com/tag/TapTap%E7%8B%AC%E5%AE%B6'},\n            {'name':'单机','link':'https://www.taptap.com/tag/%E5%8D%95%E6%9C%BA'},\n            {'name':'角色扮演','link':'https://www.taptap.com/tag/%E8%A7%92%E8%89%B2%E6%89%AE%E6%BC%94'},\n            {'name':'动作','link':'https://www.taptap.com/tag/%E5%8A%A8%E4%BD%9C'},\n            {'name':'MOBA','link':'https://www.taptap.com/tag/moba'},\n            {'name':'策略','link':'https://www.taptap.com/tag/%E7%AD%96%E7%95%A5'},\n            {'name':'卡牌','link':'https://www.taptap.com/tag/%E5%8D%A1%E7%89%8C'},\n            {'name':'生存','link':'https://www.taptap.com/tag/%E7%94%9F%E5%AD%98'},\n            {'name':'模拟','link':'https://www.taptap.com/tag/%E6%A8%A1%E6%8B%9F'},\n            {'name':'竞速','link':'https://www.taptap.com/tag/%E7%AB%9E%E9%80%9F'},\n            {'name':'益智','link':'https://www.taptap.com/tag/%E7%9B%8A%E6%99%BA'},\n            {'name':'二次元','link':'https://www.taptap.com/tag/%E4%BA%8C%E6%AC%A1%E5%85%83'},\n            {'name':'游戏合辑','link':'https://www.taptap.com/simple-events/android'}]\n\ndef get_videos(url,page):\n    videos = []\n    if url == 'bianji':\n        #编辑推荐\n        url = 'https://www.taptap.com/webapiv2/video/v1/refresh?type=editors_choice&from=1&limit=10' + tail\n        r = get_html(url)\n        j = json.loads(r)\n        for index in range(len(j['data']['list'])):\n            imgurl = j['data']['list'][index]['image']['url']\n            id = j['data']['list'][index]['id']\n            videoitem = {}\n            videoitem['name'] = j['data']['list'][index]['title']\n            videoitem['href'] = 'https://taptap.com/video/' + str(id)\n            videoitem['thumb'] = 'http' + imgurl[5:]\n            videoitem['info'] = {'plot':''}\n            videoitem['info']['plot'] += zh(j['data']['list'][index]['stat']['play_total']) + ' 播放 · ' + str(unix_to_data(j['data']['list'][index]['created_time'],format='ymdh')) + '\\n'\n            videoitem['info']['plot'] += zh(j['data']['list'][index]['ups']) + ' 赞 · ' + zh(j['data']['list'][index]['comments']) + ' 回复' + '\\n\\n'\n            if 'app' in j['data']['list'][index]:\n                videoitem['info']['plot'] += '[COLOR blue]关联游戏：[/COLOR]' + '\\n' + j['data']['list'][index]['app']['title'].encode('utf-8') + '\\n'\n                videoitem['info']['plot'] += j['data']['list'][index]['app']['category'].encode('utf-8') + ' - [COLOR yellow]' + j['data']['list'][index]['app']['stat']['rating']['score'].encode('utf-8') + '[/COLOR]分'\n            videos.append(videoitem)  \n        return videos\n    elif url == 'foryou':\n        #为你推荐\n        url = 'https://www.taptap.com/webapiv2/video/v1/refresh?type=recommend&from=0&limit=30' + tail\n        r = get_html(url)\n        j = json.loads(r)\n        for index in range(len(j['data']['list'])):\n            imgurl = j['data']['list'][index]['data']['image']['url']\n            id = j['data']['list'][index]['data']['id']\n            videoitem = {}\n            videoitem['name'] = j['data']['list'][index]['data']['title']\n            videoitem['href'] = 'https://taptap.com/video/' + str(id)\n            videoitem['thumb'] = 'http' + imgurl[5:]\n            videoitem['info'] = {'plot':''}\n            videoitem['info']['plot'] += 'UP主：' + j['data']['list'][index]['data']['author']['name'].encode('utf-8') + '\\n'\n            videoitem['info']['plot'] += zh(j['data']['list'][index]['data']['stat']['play_total']) + ' 播放 · ' + zh(j['data']['list'][index]['data']['ups']) + ' 赞 · ' + zh(j['data']['list'][index]['data']['comments']) + ' 评论'\n            videos.append(videoitem)  \n        return videos\n    elif re.search('taptap.com/top/',url):\n        if int(page) == 1:\n            r = get_html(url)\n        else:\n            #https://www.taptap.com/top/download\n            #https://www.taptap.com/ajax/top/download?page=2&total=30\n            key = re.search('(?<=top/)[a-z]+',url).group()\n            apiurl = 'https://www.taptap.com/ajax/top/' + key + '?page=' + str(int(page)) + '&total=' + str((int(page)-1)*30)\n            r = json.loads(get_html(apiurl))['data']['html']\n            # dialog = xbmcgui.Dialog()\n            # dialog.textviewer('guanfan',apiurl)\n        soup = BeautifulSoup(r, 'html.parser')\n        rankitem = soup.find_all('div',class_='taptap-top-card')\n        for index in range(len(rankitem)):\n            data = rankitem[index].find('a',class_='card-left-image')\n            img = data.find('img')\n\n            #游戏名\n            gamename = ''\n            if int(page) == 1:\n                if index < 3:\n                    gamename += '[COLOR yellow]' +  str(index+1) + '[/COLOR]'\n                else:\n                    gamename += '[COLOR blue]' +  str(index+1) + '[/COLOR]'\n            else:\n                gamename += '[COLOR blue]' +  str((int(page)-1)*30+index+1) + '[/COLOR]'\n            gamename += ' - ' + img['alt']\n\n            author = rankitem[index].find('p',class_='card-middle-author')\n            star = rankitem[index].find('div',class_='card-middle-score')\n            star1 = rankitem[index].find('div',class_='middle-footer-rating')\n            desc = rankitem[index].find('p',class_='card-middle-description')\n            videoitem = {}\n            videoitem['name'] = gamename\n            videoitem['href'] = data['href']\n            videoitem['thumb'] = 'http'+img['src'][5:]\n            videoitem['info'] = {'plot':author.text + ''}\n            try:\n                videoitem['info']['plot'] += u'评分:[COLOR blue]' + star.p.span.text + '[/COLOR]'\n                stars = float(star.p.span.text)\n            except AttributeError:\n                if star1:\n                    videoitem['info']['plot'] += u'评分:[COLOR blue]' + star1.text + '[/COLOR]'\n                    stars = float(star1.text)\n                else:\n                    videoitem['info']['plot'] += u'评分过少'\n            videoitem['info']['plot'] += '\\n' + desc.text.strip()\n\n            tag = rankitem[index].find('div',class_='card-tags')\n            tags = tag.find_all('a')\n            genre = []\n            for i in range(len(tags)):\n                genre.append(tags[i].text)\n                \n            videoitem['info']['title'] = img['alt']\n            videoitem['info']['genre'] = genre\n            videoitem['info']['castandrole'] = [(author.text.split(u':')[1],u'厂商')]\n            if stars:\n                videoitem['info']['rating'] = stars\n            videos.append(videoitem)  \n        return videos\n    elif re.search('taptap.com/app/',url):\n        #app抓视频列表\n        videos = []\n        if int(page) == 1:\n            r = get_html(url)\n        elif re.search('topic\\?type\\=official',url):\n            #官方\n            apiurl = url + '&sort=created&page=' + str(page)\n            r = get_html(apiurl)\n        elif re.search('topic\\?type\\=video',url):\n            #video\n            apiurl = url + '&sort=default&page=' + str(page)\n            r = get_html(apiurl)\n                    \n        soup = BeautifulSoup(r, 'html.parser')\n        if re.search('topic\\?type\\=official',url):\n            #官方\n            videos = []\n            videoitem = soup.find_all('div',class_='common-v2-list')\n            # dialog = xbmcgui.Dialog()\n            # dialog.textviewer('guanfan',str(len(videoitem)))\n            for index in range(len(videoitem)):\n                videoitems = {}\n                vide = videoitem[index].find('div',class_='video-content')\n                dynamic = videoitem[index].find('div',class_='item-content')\n                if vide:\n                    videoitems['name'] = u'[视频]'\n                    if dynamic.find('div',class_='content-text'):\n                        #显示标题\n                        videoitems['name'] += dynamic.find('div',class_='content-text').text.strip()\n                    elif dynamic.find('p',class_='content-text'):\n                        #没有标题，显示文字内容前30\n                        videoitems['name'] += dynamic.find('p',class_='content-text').text[:30].strip()\n                    # try:\n                    #     videoitems['name'] = u'[视频]' + videoitem[index].find('div',class_='content-text').text.strip()\n                    # except AttributeError:\n                    #     videoitems['name'] = u'[视频]' + videoitem[index].find('div',class_='item-content').text.strip()\n                    videoitems['href'] = 'https://www.taptap.com/video/' + vide.div.video['data-video-id']\n                    videoitems['thumb'] = vide.div.video['poster'].split('?')[0]\n\n                    onekeythree = videoitem[index].find('ul',class_='item-text-footer')\n                    onekeythrees = onekeythree.find_all('li')\n\n                    videoitems['info'] = {'plot':''}\n                    videoitems['info']['plot'] += unix_to_data(data_to_unix(videoitem[index].find('span',class_='item-publish-time').text),format='ymdh').decode('utf-8')\n                    videoitems['info']['plot'] += u' · ' + onekeythrees[1].a.span.text.strip() + u' 评论 · ' + onekeythrees[2].button.span.text.strip() + u' 赞'\n                    if dynamic.find('p',class_='content-text'):\n                        videoitems['info']['plot'] += '\\n\\n' + dynamic.find('p',class_='content-text').text.replace('\\n','').replace('              ','')\n                    \n                    # try:\n                    #     videoitems['info'] = {'plot':videoitem[index].find('p',class_='content-text').text}\n                    # except AttributeError:\n                    #     videoitems['info'] = {'plot':'123'}\n                    # videoitems['info']['plot'] += 'https://www.taptap.com/video/' + vide.div.video['data-video-id']\n                else:\n                    videoitems['name'] = u'[动态]'\n                    if dynamic.find('div',class_='content-text'):\n                        #显示标题\n                        videoitems['name'] += dynamic.find('div',class_='content-text').text.strip()\n                    elif dynamic.find('p',class_='content-text'):\n                        #没有标题，显示文字内容前30\n                        videoitems['name'] += dynamic.find('p',class_='content-text').text[:30].strip()\n                            \n                    videoitems['href'] = videoitem[index]['href']\n                    if dynamic.find('div',class_='moment-img-list__wrap-1'):\n                        videoitems['thumb'] = dynamic.find('div',class_='moment-img-list__wrap-1').a['href']\n                    else:\n                        videoitems['thumb'] = ''\n                    onekeythree = videoitem[index].find('ul',class_='item-text-footer')\n                    onekeythrees = onekeythree.find_all('li')\n\n                    videoitems['info'] = {'plot':''}\n                    videoitems['info']['plot'] += unix_to_data(data_to_unix(videoitem[index].find('span',class_='item-publish-time').text),format='ymdh').decode('utf-8')\n                    videoitems['info']['plot'] += u' · ' + onekeythrees[1].a.span.text.strip() + u' 评论 · ' + onekeythrees[2].button.span.text.strip() + u' 赞'\n                    if dynamic.find('p',class_='content-text'):\n                        videoitems['info']['plot'] += '\\n\\n' + dynamic.find('p',class_='content-text').text.replace('\\n','').replace('              ','')\n                        \n                videos.append(videoitems)\n            return videos\n                \n        if re.search('topic\\?type\\=video',url):\n            #视频列表\n            videoitem = soup.find_all('div',class_='common-v2-list')\n            for index in range(len(videoitem)):\n                videoitems = {}\n                vide = videoitem[index].find('div',class_='video-content')\n                dynamic = videoitem[index].find('div',class_='item-content')\n                author = videoitem[index].find('div',class_='author-wrap')\n\n                videoitems['name'] = u'[视频]'\n                if dynamic.find('div',class_='item-title'):\n                    #显示标题\n                    videoitems['name'] += dynamic.find('div',class_='item-title').a.text.strip()\n                else:\n                    videoitems['name'] += u'无 标 题'   \n                videoitems['href'] = 'https://www.taptap.com/video/' + vide.div.video['data-video-id']\n                videoitems['thumb'] = vide.div.video['poster'].split('?')[0]\n\n                onekeythree = videoitem[index].find('ul',class_='item-text-footer')\n                onekeythrees = onekeythree.find_all('li')\n\n                videoitems['info'] = {'plot':''}\n                        \n                videoitems['info']['plot'] += unix_to_data(data_to_unix(videoitem[index].find('span',class_='item-publish-time').text),format='ymdh').decode('utf-8')\n                videoitems['info']['plot'] += u' · ' + zh(onekeythrees[1].a.span.text.strip()) + u' 评论 · ' + zh(onekeythrees[2].button.span.text.strip()) + u' 赞'\n\n                videos.append(videoitems)\n            return videos\n    elif re.search('taptap.com/tag/',url):\n        #tag页\n        #dialog = xbmcgui.Dialog()\n        #ok = dialog.ok('类',url)\n        if int(page) == 1:\n            r = get_html(url)\n            \n        else:\n            keyword = re.search('(?<=tag/).*',url).group()\n            r = get_html('https://www.taptap.com/ajax/search/tags?&kw=' + keyword + '&sort=hits&page=' + str(page))\n            j = json.loads(r)\n            r = j['data']['html']\n\n        soup = BeautifulSoup(r, 'html.parser')\n        appitem = soup.find_all('div',class_='taptap-app-card')\n        for index in range(len(appitem)):\n            data = appitem[index].find('div',class_='app-card-right app-tag-right')\n            ahref = appitem[index].find('a',class_='app-card-left')\n            img = ahref.find('img')\n\n            videoitems = {}\n            name = data.find('a').h4.contents\n            videoitems['name'] = name[0]\n            if len(name) == 2:\n                videoitems['name'] += u' [COLOR blue][' + name[1].contents[0] + '][/COLOR] '\n            \n            videoitems['thumb'] ='http'+img['src'][5:]\n            videoitems['href'] = ahref['href']\n            videoitems['info'] = {'plot':''}\n            videoitems['info']['plot'] += u'厂商：' + data.find('p',class_='card-right-author').a.text.strip() + u'\\n'\n            videoitems['info']['plot'] += u'评分：[COLOR blue]' + data.find('div',class_='card-right-rating').span.text.strip() + '[/COLOR] ' + u'\\n'\n            #installnum = re.search('\\d+',data.find('span',class_='card-right-times').text).group()\n            \n            #videoitems['info']['plot'] += zh(installnum).decode('utf-8') + u' 人安装'\n            etag = data.find('p',class_='card-tags').find_all('a')\n            etags = []\n            # dialog = xbmcgui.Dialog()\n            # ok = dialog.ok('类',str(len(etag)))\n            for i in range(len(etag)):\n                etags.append(etag[i].text)\n            videoitems['info']['genre'] = etags\n            videos.append(videoitems)  \n        return videos\n    elif re.search('taptap.com/category/',url):\n        #分类\n        # dialog = xbmcgui.Dialog()\n        # ok = dialog.ok('分类',url)\n        if int(page) == 1:\n            r = get_html(url)\n        else:\n            apiurl = url + '?page=' + str(page)\n            r = get_html(apiurl)\n        soup = BeautifulSoup(r, 'html.parser')\n        appitem = soup.find_all('div',class_='taptap-app-item swiper-slide')\n        for index in range(len(appitem)):\n            data = appitem[index].find('div',class_='app-item-caption')\n            img = appitem[index].find('img')\n            videoitems = {}\n            videoitems['name'] = data.a.h4.text\n            if data.find('small',class_='taptap-app-area'):\n                videoitems['name'] += u' [COLOR blue][' + data.find('small',class_='taptap-app-area').text + u'][/COLOR] '\n            videoitems['thumb'] ='http'+img['data-src'][5:]\n            videoitems['href'] = data.a['href']\n            pspan = data.find('span','item-caption-label')\n            videoitems['info'] = {'plot':u'评分：[COLOR blue]'  + pspan.span.text.strip()+ '[/COLOR]'}\n            videoitems['info']['genre'] = [pspan.a.text.strip()]\n                        \n            videos.append(videoitems) \n        return videos \n    elif re.search('taptap.com/simple-events/android',url):\n        #游戏合集页面\n        if int(page) == 1:\n            r = get_html(url)\n        else:\n            apiurl = url + '?page=' + str(page)\n            r = get_html(apiurl)\n        #print(rec.text)\n        soup = BeautifulSoup(r, 'html.parser')\n        section = soup.find('section',class_='event-simple-list')\n        hlist = section.find('ul',class_='list-unstyled').find_all('li')\n        for index in range(len(hlist)):\n            videoitems = {}\n            videoitems['name'] = hlist[index].button.text.strip()\n            videoitems['thumb'] = ''\n            videoitems['href'] = hlist[index].a['href']\n            videos.append(videoitems) \n        return videos\n\n    \n \n    \n\n\n\n@plugin.route('/play/<name>/<url>/')\ndef play(name,url):\n\n    if re.search('taptap.com/video/',url):\n        #视频url解析\n        #url = 'https://www.taptap.com/video/1319335'\n        if re.search('(?<=video/)[0-9]+',url):\n            vid = re.search('(?<=video/)[0-9]+',url).group()\n            api = 'https://www.taptap.com/webapiv2/video/v2/detail?id=' + str(vid)\n            api += tail\n            #api += '&X-UA=V%3D1%26PN%3DWebApp%26LANG%3Dzh_CN%26VN_CODE%3D2%26VN%3D0.1.0%26LOC%3DCN%26PLT%3DPC%26UID%3D5aef8bdb-c213-4803-8a5e-33b333de04bb'\n            r = get_html(api)\n            j = json.loads(r)\n            items = []\n\n            #再解析一次url，缓存安排上\n            r = get_html_longtimecache(j['data']['video']['url'])\n            prule = re.compile(r'(?<=NAME=\")\\d+[p|k]\\d?\\d?') \n            pname = prule.findall(r)\n            #print(pname)\n            urlrule = re.compile(r'http[s]?://(?:[a-zA-Z]|[0-9]|[$-_@.&+]|[!*\\(\\),]|(?:%[0-9a-fA-F][0-9a-fA-F]))+')   # 查找数字\n            m3u8url = urlrule.findall(r)\n            # dialog = xbmcgui.Dialog()\n            # ok = dialog.ok('错误',str(pname))\n            for index in range(len(pname)):\n                item = {'is_playable': True}\n                #item['label'] = j['data']['video']['video_resource']['info']['best_format_name']  + ' - '\n                item['label'] = pname[index]  + ' - '\n                item['label'] += j['data']['video']['title']\n                item['path'] = m3u8url[index]\n                item['thumbnail'] = j['data']['video']['image']['medium_url'].split('?')[0]\n                item['icon'] = j['data']['video']['image']['medium_url'].split('?')[0]\n                item['info'] = {}\n                item['info']['plot'] = zh(j['data']['video']['stat']['play_total']) + ' 播放 · ' + unix_to_data(int(j['data']['video']['created_time']),'ymdh') + ' · '\n                item['info']['plot'] += zh(j['data']['video']['ups']) + ' 赞 · ' + zh(j['data']['video']['comments']) + ' 回复'\n                if 'intro' in j['data']['video']:\n                    item['info']['plot'] += '\\n\\n' + re.sub('<.*?>','',j['data']['video']['intro']['text'].encode('utf-8'))\n                items.append(item)\n        else:\n            dialog = xbmcgui.Dialog()\n            ok = dialog.ok('错误','url格式错误')\n        return items\n    elif re.search('(?<=topic/)[0-9]+',url):\n        #动态url解析\n        if re.search('\\?textviewer',url):\n            url = url.replace('?textviewer','')\n            r = get_html(url)\n            soup = BeautifulSoup(r, 'html.parser')\n            text = soup.find('div',class_='js-translate-content')\n            dialog = xbmcgui.Dialog()\n            dialog.textviewer('动态详情',text.text)\n        else:\n            #显示图片和文字\n            items = []\n            item = {'label': '动态详情','path':plugin.url_for('play', name='123',url=url+'?textviewer')}\n            items.append(item)\n            r = get_html(url)\n            soup = BeautifulSoup(r, 'html.parser')\n            text = soup.find('div',class_='js-translate-content')\n            imgs = text.find_all('img',class_='bbcode-img')\n            for i in range(len(imgs)):\n                item = {'is_playable': True}\n                item['label'] = '动态图片' + str(i+1)\n                item['path'] = imgs[i]['src'].split('?')[0]\n                item['thumbnail'] = imgs[i]['src'].split('?')[0]\n                item['icon'] = imgs[i]['src'].split('?')[0]\n                items.append(item)\n            return items\n            \n    elif re.search('(?<=app/)[0-9]+',url):\n        items = []\n        #item = {'label': '官方视频','path':plugin.url_for('category', url=url+'/video?type=official')}\n        item = {'label': '官方动态','path':plugin.url_for('category', url=url+'/topic?type=official',page=1)}\n        \n        items.append(item)\n        #item = {'label': '玩家视频','path':plugin.url_for('category', url=url+'/video?type=not_official')}\n        item = {'label': '视频专区','path':plugin.url_for('category', url=url+'/topic?type=video',page=1)}\n        items.append(item)\n        return items\n    elif re.search('(?<=category/)[0-9a-zA-Z]+',url):\n        items = category(url,1)\n        return items\n\n\n@plugin.route('/category/<url>/<page>/')\ndef category(url,page):\n    #dialog = xbmcgui.Dialog()\n    #ok = dialog.ok('错误提示', url)\n\n    videos = get_videos(url,page)\n    items = []\n    if videos != []:\n        for video in videos:\n            \n            item = {}\n            item['label'] = video['name']\n            item['path'] = plugin.url_for('play', name='123' , url=video['href'])\n            item['thumbnail'] = video['thumb']\n            item['icon'] = video['thumb']\n            if 'info' in video:\n                info = video['info']\n                info['mediatype'] = 'video'\n                item['info'] = info\n            items.append(item)\n        \n\n        if url != 'bianji' and url != 'foryou':\n            nextpage = {'label': '[COLOR yellow]下一页[/COLOR]', 'path': plugin.url_for('category', url=url,page=str(int(page)+1))}\n            items.append(nextpage)\n    return items\n\n\n\n\n@plugin.route('/')\ndef index():\n    categories = get_categories()\n    items = [{\n        'label': category['name'],\n        'path': plugin.url_for('category', url=category['link'],page=1),\n    } for category in categories]\n\n    \n    return items\n\n\n@plugin.route('/labels/<label>/')\ndef show_label(label):\n    # 写抓取视频类表的方法\n    #\n    items = [\n        {'label': label},\n    ]\n    return items\n\nif __name__ == '__main__':\n    plugin.run()\n"
  },
  {
    "path": "plugin.video.taptap/addon.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>\n<addon id=\"plugin.video.taptap\" name=\"Taptap\" version=\"0.2.2\" provider-name=\"zhengfan\">\n  <requires>\n    <import addon=\"xbmc.python\" version=\"2.1.0\"/>\n    <import addon=\"script.module.xbmcswift2\" version=\"2.4.0\"/>\n  <import addon=\"script.module.beautifulsoup4\" version=\"4.5.3\"/>\n  <import addon=\"script.module.requests\" version=\"2.19.1\"/>\n  <import addon=\"script.module.html5lib\" version=\"0.999.0\"/>\n  </requires>\n  <extension point=\"xbmc.python.pluginsource\" library=\"addon.py\">\n    <provides>video</provides>\n  </extension>\n  <extension point=\"xbmc.addon.metadata\">\n    <platform>all</platform>\n    <language></language>\n    <description>TapTap是一个推荐高品质手游的手游分享社区，实时同步全球各大应用市场游戏排行榜，与全球玩家共同交流并发掘高品质手游。每一款推荐游戏，都是由专业的测评团队从全球海量的游戏中精选而出，只为你提供好玩的手机游戏。</description>\n    <assets>\n      <icon>icon.png</icon>\n      <fanart>fanart.png</fanart> \n    </assets>\n    <news>首个版本</news>\n  </extension>\n</addon>\n"
  },
  {
    "path": "plugin.video.taptap/readme.md",
    "content": "# taptap for kodi 0.1.0\n## 简介\n- TapTap是一个推荐高品质手游的手游分享社区，实时同步全球各大应用市场游戏排行榜，与全球玩家共同交流并发掘高品质手游。每一款推荐游戏，都是由专业的测评团队从全球海量的游戏中精选而出，只为你提供好玩的手机游戏\n## 主要功能\n> - [x] 编辑推荐视频，为你推荐视频\n> - [x] 游戏排行榜\n> - [x] 显示官方发布的视频和玩家上传的视频\n> - [x] 在线播放视频，支持任意选择分辨率，最高可播放4k60fps\n> - [x] 使用官方api解析视频\n> - [ ] 搜索功能\n> - [ ] 缓存功能（减少向服务器请求次数）\n## 更新历史\n > -[v0.1.0]----------------------  \n > 发布 - 首个版本  "
  },
  {
    "path": "plugin.video.taptap/resources/__init__.py",
    "content": ""
  },
  {
    "path": "plugin.video.taptap/resources/language/English/strings.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?>\n<strings>\n  <!-- Plugin name -->\n  <string id=\"30000\">bilibili</string>\n</strings>\n"
  },
  {
    "path": "plugin.video.taptap/resources/lib/__init__.py",
    "content": ""
  },
  {
    "path": "plugin.video.vid/addon.py",
    "content": "#!/usr/bin/env python\n# -*- coding:utf-8 -*-\nimport re\nfrom xbmcswift2 import Plugin\nimport requests\nfrom bs4 import BeautifulSoup\nimport xbmcgui\nimport time\nimport base64\nimport json\nimport urllib2\nimport sys\nimport HTMLParser\nimport re\nimport cfscrape\nimport random\n\n\n\ndef unescape(string):\n    string = urllib2.unquote(string).decode('utf8')\n    quoted = HTMLParser.HTMLParser().unescape(string).encode('utf-8')\n    #转成中文\n    return re.sub(r'%u([a-fA-F0-9]{4}|[a-fA-F0-9]{2})', lambda m: unichr(int(m.group(1), 16)), quoted)\n\n\nplugin = Plugin()\n\n\nheaders = {'user-agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.122 Safari/537.36'}\ntmp = plugin.get_storage('tmp')\n\n#用户设置存储\nstorage = plugin.get_storage('storage')\n\n\ndef chushihua(key,default):\n    if key in storage:\n        switch = storage[key]\n    else:\n        storage[key] = default\n        switch = storage[key]\n    if switch == 1:\n        value = '开'\n    else:\n        value = '关'\n    return value\n\n#违禁词替换\ndef check_filter(text):\n    if 'keyword' in storage and chushihua('keywordswitch',0) == '开':\n        keywords = storage['keyword']\n        return re.sub(\"|\".join(keywords),'***', text)\n    else:\n        return text\n\n#判断是否含有违禁词\ndef if_filter(text):\n    keywords = storage['blacklist']\n    if re.search(\"|\".join(keywords),text):\n        return True\n    else:\n        return False\n\ndef get_videos_mode(page,mode):\n    item = eval('get_' + mode + '_videos')(page)\n    return item\n\ndef get_mp4info_mode(url,mode):\n    item = eval('get_' + mode + '_mp4info')(url)                                 \n    return item\ndef get_mp4_mode(url,mode):\n    item = eval('get_' + mode + '_mp4')(url)\n    return item\n\n@plugin.cached(TTL=2)\ndef get_html(url):\n    r = requests.get(url,headers=headers)\n    r.encoding = 'utf-8'\n    return r.text\n\n@plugin.cached(TTL=2)\ndef post_html(url,data):\n    data =eval(data)\n    r = requests.post(url,headers=headers,data=data)\n    r.encoding = 'utf-8'\n    return r.text\n\n#\"%Y-%m-%d %H:%M:%S\"\ndef unix_to_data(uptime,format):\n    uptime = float(uptime)\n    time_local = time.localtime(uptime)\n    #转换成新的时间格式(2016-05-05 20:28:54)\n    uptime = time.strftime(format,time_local)\n    return uptime\n\ndef get_categories():\n    return [{'id':1,'name':'虎嗅 huxiu.com','link':'huxiu'},\n            {'id':2,'name':'机核 gcores.com','link':'gcore'},\n            {'id':3,'name':'穷游 qyer.com','link':'qyer'},\n            {'id':4,'name':'ZEALER zealer.com','link':'zeal'},\n            {'id':5,'name':'澎湃 thepaper.cn','link':'pengpai'},\n            {'id':6,'name':'新京报 bjnews.com.cn','link':'bjnews'},\n            {'id':7,'name':'界面 jiemian.com','link':'jiemian'},\n            {'id':8,'name':'36kr 36kr.com','link':'36kr'},\n            {'id':9,'name':'环球 huanqiu.com','link':'huanqiu'}]\n\ndef get_huxiu_videos(page):\n    videos = []\n    if int(page) == 1:\n        lasttime = time.time()\n    else:\n        lasttime = tmp['huxiulasttime'+str(page)]\n    p = {'platform': 'www', 'last_time': lasttime,'channel_id' : 10}\n    url='https://article-api.huxiu.com/web/channel/articleList'\n    r = post_html(url,str(p))\n    j = json.loads(r)\n    tmp['huxiulasttime'+str(int(page)+1)] = j['data']['last_time']\n    vlist = j['data']['datalist']\n    for index in range(len(vlist)):\n        videoitem = {}\n        videoitem['name'] =  vlist[index]['title']\n        videoitem['href'] =  'https://www.huxiu.com/article/' + str(vlist[index]['aid']) + '.html'\n        videoitem['thumb'] = vlist[index]['origin_pic_path']\n        videoitem['info'] = {'plot':vlist[index]['title'] + '\\n\\n' + vlist[index]['summary']}\n        videos.append(videoitem)\n\n    return videos\n\ndef get_huxiu_mp4info(url):\n    rtext = get_html(url)\n    rt = rtext\n    str1 = rt.find('window.__INITIAL_STATE__=')\n    str2 = rt.find(';(function(){var s;')\n    cutjson = rt[str1+25:str2]\n    j = json.loads(cutjson)\n    mp4info = {}\n    info = j['articleDetail']['articleDetail']\n    mp4info['title'] = info['title']\n    #作者\n    mp4info['cast'] = [ info['author'] ]\n    #简介\n    mp4info['plot'] = info['summary']\n    #unix时间\n    mp4info['aired'] = unix_to_data(info['dateline'],'%Y-%m-%d')\n    #图片\n    mp4info['img'] = info['pic_path']\n    #tag\n    tags = []\n    for tag in info['tags_info']:\n        tags.append(tag['name'])\n    mp4info['genre'] = tags\n    return mp4info\n\ndef get_huxiu_mp4(url):\n    videos = []\n    rt = get_html(url)\n    str1 = rt.find('window.__INITIAL_STATE__=')\n    str2 = rt.find(';(function(){var s;')\n    cutjson = rt[str1+25:str2]\n    j = json.loads(cutjson)\n    #mp4\n    mp4list = j['articleDetail']['articleDetail']['video_info']\n    if 'fhd_link' in mp4list:\n        mp4 = mp4list['fhd_link']\n    else:\n        if 'hd_link' in mp4list:\n            mp4 = mp4list['hd_link']\n        else:\n            if 'sd_link' in mp4list:\n                mp4 = mp4list['sd_link']\n            else:\n                mp4 = ''\n    return mp4\n\n#机核\ndef get_gcore_videos(page):\n    #爬视频列表的\n    videos = []\n    page = 12*(int(page)-1)\n    url='https://www.gcores.com/gapi/v1/videos?page[limit]=12&page[offset]='+str(page)+'&sort=-published-at&include=category,user,djs&filter[list-all]=0&fields[videos]=title,desc,is-published,thumb,app-cover,cover,comments-count,likes-count,bookmarks-count,is-verified,published-at,option-is-official,option-is-focus-showcase,duration,category,user,djs'\n\n    r = get_html(url)\n    j = json.loads(r)\n    vlist = j['data']\n    for index in range(len(vlist)):\n        videoitem = {}\n        videoitem['name'] =  vlist[index]['attributes']['title']\n        videoitem['href'] =  str(vlist[index]['id'])\n        videoitem['thumb'] = 'https://image.gcores.com/' + vlist[index]['attributes']['thumb']\n        videoitem['info'] = {'plot':vlist[index]['attributes']['title'] + '\\n\\n' + vlist[index]['attributes']['desc']}\n        videos.append(videoitem)\n\n    return videos\n\ndef get_gcore_mp4info(url):\n    url = 'https://www.gcores.com/videos/'+str(url)\n    rtext = get_html(url)\n    soup = BeautifulSoup(rtext, \"html5lib\")\n    mp4info = {}\n    up = soup.find_all('a',class_='avatar avatar-lg avatar-v avatar-noBold mx-3 mb-3')\n    cast = []\n    for index in range(len(up)):\n        cast.append(up[index].text)\n    mp4info['cast'] = cast\n\n    plot = soup.find('div',class_='story story-show')\n    mp4info['plot'] = plot.text\n\n    tags = soup.find_all('a',class_='label is_tags')\n    tag = []\n    for index in range(len(tags)):\n        tag.append(tags[index].text)\n    mp4info['genre'] = tag\n\n    mp4info['img'] = tmp['gcoreimg']\n    return mp4info\n\ndef get_gcore_mp4(url):\n    videos = []\n    url = 'https://www.gcores.com/gapi/v1/videos/'+str(url)+'?include=category,user,media,djs,user.role,tags,entities,entries,similarities.user,similarities.djs,similarities.category,collections&preview=1'\n    rtext = get_html(url)\n    j = json.loads(rtext)\n    vid = j['data']['relationships']['media']['data']['id']\n    for i in range(len(j['included'])):\n        if int(j['included'][i]['id']) == int(vid):\n            src = j['included'][i]['attributes']['original-src']\n    if src != '':\n        rt = get_html(src)\n        soup = BeautifulSoup(rt, \"html5lib\")\n        mp = soup.find('video',class_='video-js vjs-big-play-centered vjs-default-skin fill')\n        mp4 = mp['data-url']\n        tmp['gcoreimg'] = mp['poster']\n    else:\n        mp4 = ''\n    return mp4\n\n#穷游网\ndef get_qyer_videos(page):\n    videos = []\n    url='https://www.qyer.com/video/'\n\n    rt = get_html(url)\n    str1 = rt.find('window.__INITIAL_STATE__=')\n    str2 = rt.find(';(function(){var s;')\n    j =json.loads(rt[str1+25:str2])\n    vlist = j['renderData']['data']['data']['partnervideos']\n    for index in range(len(vlist)):\n        tagname = vlist[index]['tagname']\n        vvlist = vlist[index]['videos'][0]['videolist']\n        for i in range(len(vvlist)):\n            videoitem = {}\n            videoitem['name'] =  u'[' + tagname + u']' + vvlist[i]['title']\n            videoitem['href'] =  'https:' + vvlist[i]['pc_url']\n            videoitem['thumb'] = 'https:' + vvlist[i]['cover_path']\n            videoitem['info'] = {'plot':vvlist[i]['title']}\n            videos.append(videoitem)\n\n    return videos\n\ndef get_qyer_mp4info(url):\n    rt = get_html(url)\n    str1 = rt.find('window.__INITIAL_STATE__=')\n    str2 = rt.find(';(function(){var s;')\n    j =json.loads(rt[str1+25:str2])\n    info = j['renderData']['data']['data']['video']\n    mp4info ={}\n    mp4info['title'] = info['title']\n    mp4info['plot'] = info['description']\n    mp4info['aired'] = info['date']\n    mp4info['duration'] = info['duration']\n    mp4info['img'] = 'http:' + info['cover_path']\n    mp4info['cast'] = [(j['renderData']['data']['data']['partner']['name'],j['renderData']['data']['data']['partner']['description'])]\n    return mp4info\n\ndef get_qyer_mp4(url):\n    videos = []\n    \n    rt = get_html(url)\n    str1 = rt.find('window.__INITIAL_STATE__=')\n    str2 = rt.find(';(function(){var s;')\n    j =json.loads(rt[str1+25:str2])\n    mp4 = u'https:' + j['renderData']['data']['data']['video']['source_path']\n    return mp4\n\n#zealer\ndef get_zeal_videos(page):\n    videos = []\n    url='https://api.hub.zealer.com/postCategory/list?categoryPlatform=MEDIA&categoryType=CONTENT_TYPE&categoryId=0&pageNum='+str(page)+'&pageSize=6&sortType=latest'\n    rt = get_html(url)\n    j =json.loads(rt)\n    vlist = j['data']['result']\n\n    url2='https://api.hub.zealer.com/postCategory/list?categoryId=0&categoryPlatform=X&categoryType=CONTENT_TYPE&pageNum='+str(page)+'&pageSize=6&sortType=latest'\n    rt2 = get_html(url2)\n    j2 =json.loads(rt2)\n    vlist2 = j2['data']['result']\n    for index in range(len(vlist)):\n        videoitem = {}\n        videoitem['name'] =  vlist[index]['title']\n        videoitem['href'] =  vlist[index]['id']\n        videoitem['thumb'] = vlist[index]['cover']\n        videoitem['info'] = {'plot':vlist[index]['title']}\n        videos.append(videoitem)\n        videoitem = {}\n        videoitem['name'] =  vlist2[index]['title']\n        videoitem['href'] =  vlist2[index]['id']\n        videoitem['thumb'] = vlist2[index]['cover']\n        videoitem['info'] = {'plot':vlist2[index]['title']}\n        videos.append(videoitem)\n    return videos\n\ndef get_zeal_mp4info(url):\n    mp4info = {}\n    r = get_html('https://api.hub.zealer.com/post?id=' + str(url))\n    j =json.loads(r)\n    d = j['data']['postInfo']\n    mp4info ['title'] = d['title']\n    mp4info ['plot'] = d['coverIntro']\n    mp4info['img'] = d['coverUrl']\n    mp4info['aired'] = unix_to_data(int(str(d['createdAt'])[:-3]),'%Y-%m-%d')\n    \n    tag = []\n    for index in range(len(j['data']['contentTags'])):\n        tag.append(j['data']['contentTags'][index]['name'])\n    mp4info['genre'] = tag\n    mp4info['tag'] = tag\n    return mp4info\n\ndef get_zeal_mp4(url):\n    r = get_html('https://api.hub.zealer.com/post?id=' + str(url))\n    j =json.loads(r)\n    appid = j['data']['postParameter']['appID']\n    fileid = j['data']['postParameter']['fileID']\n    sign = j['data']['postParameter']['sign']\n    t = j['data']['postParameter']['t']\n    us = j['data']['postParameter']['us']\n    r = get_html('https://playvideo.qcloud.com/getplayinfo/v2/'+ str(appid) +'/'+ str(fileid) +'?exper=0&playerid=399601&sign='+ str(sign) +'&t='+ str(t) +'&us='+ str(us))\n    j =json.loads(r)\n    vlist = j['videoInfo']['transcodeList']\n    width = 0\n    for index in range(len(vlist)):\n        if int(vlist[index]['width']) > width:\n            width = int(vlist[index]['width'])\n            mp4 = vlist[index]['url']\n    return mp4\n\n#澎湃新闻\ndef get_pengpai_videos(page):\n    #爬视频列表的\n    videos = []\n    url = 'https://www.thepaper.cn/load_video_chosen.jsp?channelID=26916&pageidx=' +str(page)\n    r = get_html(url)\n    soup = BeautifulSoup(r, 'html.parser')\n\n    imgsrc = soup.find_all('img')\n    ahref = soup.find_all('a',class_='play has_pic')\n    title = soup.find_all('div',class_='video_title')\n    li = soup.find_all('li',class_='video_news')\n    \n    for index in range(len(li)):\n        titletext = title[index].text\n        titletext = titletext.strip()\n        imgsrcurl = imgsrc[index]['src']\n        videoitem = {}\n        videoitem['name'] = titletext\n        videoitem['href'] = 'https://thepaper.cn/' + ahref[index]['href']\n        videoitem['thumb'] = 'http' + imgsrcurl[5:]\n        videoitem['info'] = {'plot':li[index].p.text}\n        videos.append(videoitem)\n    return videos\n\ndef get_pengpai_mp4info(url):\n    mp4info = {}\n    r = get_html(url)\n    soup = BeautifulSoup(r, 'html.parser')\n\n    img = soup.find('video',class_='video_detail video-js vjs-default-skin vjs-big-play-centered')\n    j = json.loads(img['data-setup'])\n    mp4info['img'] = j['poster']\n\n    plot = soup.find('div',class_='video_txt_l')\n    mp4info['plot'] = plot.p.text.strip()\n    \n    tag = soup.find('a',class_='genzong')\n    genre = soup.find('div',class_='video_txt_r_icon')\n    mp4info['genre'] = [tag.text[4:],genre.p.text.strip()]\n    mp4info['tag'] = [tag.text[4:],genre.p.text.strip()]\n\n    data = soup.find('div',class_='video_info_left')\n    mp4info['aired'] = re.search('[0-9]{4}-[0-9]{2}-[0-9]{2}',data.text).group()\n    return mp4info\n\ndef get_pengpai_mp4(url):\n    r = get_html(url)\n    soup = BeautifulSoup(r, 'html.parser')\n    mp4 = soup.find('source',type='video/mp4')\n    return mp4['src']\n\n#新京报\ndef get_bjnews_videos(page):\n    videos = []\n    url = 'http://www.bjnews.com.cn/video/?page=' +str(page)\n    r = get_html(url)\n    soup = BeautifulSoup(r, 'html.parser')\n    li = soup.find_all('li',class_='li_img')\n\n    url2 = 'http://www.bjnews.com.cn/wevideo/?page=' +str(page)\n    r2 = get_html(url2)\n    soup2 = BeautifulSoup(r2, 'html.parser')\n    li2 = soup2.find_all('li',class_='li_img')\n    for index in range(len(li)):\n        img = li[index].find('div',class_='fl')\n        a = li[index].find('div',class_='li_rt')\n        videoitem = {}\n        videoitem['name'] = a.a.text\n        videoitem['href'] = a.a['href']\n        videoitem['thumb'] = img.a.img['src']\n        videoitem['info'] = {'plot':a.a.text}\n        videos.append(videoitem)\n        img2 = li2[index].find('div',class_='fl')\n        a2 = li2[index].find('div',class_='li_rt')\n        videoitem = {}\n        videoitem['name'] = a2.a.text\n        videoitem['href'] = a2.a['href']\n        videoitem['thumb'] = img2.a.img['src']\n        videoitem['info'] = {'plot':a2.a.text}\n        videos.append(videoitem)\n    \n    #for index in range(len(li)):\n        \n    return videos\n\ndef get_bjnews_mp4info(url):\n    mp4info = {}\n    r = get_html(url)\n    soup = BeautifulSoup(r, 'html.parser')\n\n    img = soup.find('video',id='example_video_1')\n    mp4info['img'] = img['poster']\n\n    plot = soup.find('p',class_='ctdesc')\n    mp4info['plot'] = plot.text.strip()\n\n    data = soup.find('span',class_='date')\n    mp4info['aired'] = re.search('[0-9]{4}-[0-9]{2}-[0-9]{2}',data.text).group()\n    return mp4info\n\ndef get_bjnews_mp4(url):\n    r = get_html(url)\n    soup = BeautifulSoup(r, 'html.parser')\n    mp4 = soup.find('video',id='example_video_1')\n    return mp4.source['src']\n\n#界面新闻\ndef get_jiemian_videos(page):\n    videos = []\n    if int(page) == 1:\n        url = 'https://www.jiemian.com/video/lists/index_1.html'\n        r = get_html(url)\n    else:\n        url = 'https://www.jiemian.com/video/lists/0_'+str(page)+'.html'\n        rr = get_html(url)\n        j = json.loads(rr)\n        r = j['rst']\n    soup = BeautifulSoup(r, 'html.parser')\n    li = soup.find_all('div',class_='news-view left card')\n    for index in range(len(li)):\n        img = li[index].find('img')\n        a = li[index].find('h3')\n        videoitem = {}\n        videoitem['name'] = a.a.text\n        videoitem['href'] = a.a['href']\n        videoitem['thumb'] = 'http:' + img['src']\n        videoitem['info'] = {'plot':a.a.text}\n        videos.append(videoitem)\n    return videos\n\ndef get_jiemian_mp4info(url):\n    mp4info = {}\n    r = get_html(url)\n    soup = BeautifulSoup(r, 'html.parser')\n\n    img = soup.find('video',controls='controls')\n    mp4info['img'] = 'http:' + img['poster']\n\n    plot = soup.find('div',class_='article-content')\n    mp4info['plot'] = plot.text.strip()\n    return mp4info\n\ndef get_jiemian_mp4(url):\n    r = get_html(url)\n    soup = BeautifulSoup(r, 'html.parser')\n    mp4 = soup.find('video',controls='controls')\n    return mp4['src']\n\n#36kr新闻\ndef get_36kr_videos(page):\n    videos = []\n    if int(page) == 1:\n        url = 'https://36kr.com/video'\n        html = get_html(url)\n        str1 = html.find('window.initialState=')\n        str2 = html.find('}</script>')\n        cut = html[str1+20:str2+1]\n        j = json.loads(cut)\n        tmp['36krpageCallback'] = j['videoCatalogData']['data']['videoList']['data']['pageCallback']\n        vlist = j['videoCatalogData']['data']['videoList']['data']['itemList']\n        for index in range(len(vlist)):\n            videoitem = {}\n            videoitem['name'] = vlist[index]['templateMaterial']['widgetTitle']\n            videoitem['href'] = 'https://36kr.com/video/' + str(vlist[index]['templateMaterial']['itemId'])\n            videoitem['thumb'] = vlist[index]['templateMaterial']['widgetImage']\n            videoitem['info'] = {'plot':vlist[index]['templateMaterial']['widgetTitle'] + '\\n' + vlist[index]['templateMaterial']['summary']}\n            videos.append(videoitem)\n    else:\n        pageCallback = tmp['36krpageCallback']\n        url = 'https://gateway.36kr.com/api/mis/nav/video/flow'\n        d = {'timestamp':int(time.time()*100),'partner_id':'web','param':{'pageSize': 20, 'pageEvent': 1,'platformId':2,'siteId':1,'pageCallback':pageCallback.encode('utf-8')}}\n        #d = str(d)\n        krhead = {'user-agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.122 Safari/537.36',\n                 'content-length':'260',\n                 'content-type': 'application/json',\n                 'origin':'https://36kr.com',\n                 'referer':'https://36kr.com/video'}\n        html = requests.post(url,headers=krhead,data=json.dumps(d))\n        j = json.loads(html.text)\n        vlist = j['data']['itemList']\n        for index in range(len(vlist)):\n            videoitem = {}\n            videoitem['name'] = vlist[index]['templateMaterial']['widgetTitle']\n            videoitem['href'] = vlist[index]['templateMaterial']['itemId']\n            videoitem['thumb'] = vlist[index]['templateMaterial']['widgetImage']\n            videoitem['info'] = {'plot':vlist[index]['templateMaterial']['widgetTitle'] + '\\n' + vlist[index]['templateMaterial']['summary']}\n            videos.append(videoitem)\n    \n    \n    return videos\n\ndef get_36kr_mp4info(url):\n    mp4info = {}\n    html = get_html(url)\n    str1 = html.find('window.initialState=')\n    str2 = html.find('}</script>')\n    cut = html[str1+20:str2+1]\n    j = json.loads(cut)\n    m = j['videoDetail']['data']\n    mp4info['img'] = m['widgetImage']\n    mp4info['aired'] = unix_to_data(str(m['publishTime'])[:-3],'%Y-%m-%d')\n    mp4info['cast'] = [(m['authorName'],m['authorSummary'])]\n    mp4info['plot'] = m['widgetContent']\n    return mp4info\n\ndef get_36kr_mp4(url):\n    r = get_html(url)\n    soup = BeautifulSoup(r, 'html.parser')\n    mp4 = soup.find('video')\n    return mp4['src']\n\n#环球网\ndef get_huanqiu_videos(page):\n    #爬视频列表的\n    videos = []\n    page = 10*(int(page)-1)\n    url='https://v.huanqiu.com/api/list?node=%22/e3pmh2fmu/e3pmh2g69%22,%22/e3pmh2fmu/e3pn61vrg%22,%22/e3pmh2fmu/e3prkldqd%22,%22/e3pmh2fmu/e3prvucof%22,%22/e3pmh2fmu/e3ptgqp01%22,%22/e3pmh2fmu/e3ptgqp01/e3ptrminr%22&offset='+str(page)+'&limit=20'\n\n    r = get_html(url)\n    j = json.loads(r)\n    \n    vlist = j['list']\n    for index in range(len(vlist)-1):\n        videoitem = {}\n        videoitem['name'] =  vlist[index]['title']\n        videoitem['href'] =  'https://v.huanqiu.com/article/' + str(vlist[index]['aid'])\n        videoitem['thumb'] = vlist[index]['cover']\n        videoitem['info'] = {'plot':vlist[index]['title'] + u'\\n\\n来自' + vlist[index]['source']['name'] + '\\n' +unix_to_data(str(vlist[index]['ctime'])[:-3],'%Y-%m-%d %H:%M:%S')}\n        videos.append(videoitem)\n\n    return videos\n\ndef get_huanqiu_mp4info(url):\n    \n    r = get_html(url)\n    soup = BeautifulSoup(r, \"html5lib\")\n    mp4info = {}\n    mp4 = soup.find('video')\n    mp4info['img'] = mp4['data-cover']\n    plot = soup.find('div',class_='metadata-info')\n    mp4info['plot'] = plot.text\n    return mp4info\n\ndef get_huanqiu_mp4(url):\n    r = get_html(url)\n    soup = BeautifulSoup(r, \"html5lib\")\n    mp4 = soup.find('video')\n    return mp4['src']\n\n@plugin.route('/play/<name>/<url>/<mode>/')\ndef play(name,url,mode):\n    items = []\n    mp4 = get_mp4_mode(url,mode)\n    mp4info = get_mp4info_mode(url,mode)\n    mp4info['mediatype'] = 'video'\n    mp4info['title'] = name\n    item = {'label': name,'path':mp4,'is_playable': True,'info':mp4info,'info_type':'video','thumbnail': mp4info['img'],'icon': mp4info['img']}\n    items.append(item)\n    return items\n\n\n@plugin.route('/category/<page>/<mode>/')\ndef category(page,mode):\n    #dialog = xbmcgui.Dialog()\n    #ok = dialog.ok('错误提示', url)\n    \n    videos = get_videos_mode(page,mode)\n    \n    items = []\n    for video in videos:\n        if 'blacklist' not in storage or chushihua('blacklistswitch',0) != '开':\n            items.append({'label': check_filter(video['name'].encode('utf-8')),\n                'path': plugin.url_for('play', name=check_filter(video['name'].encode('utf-8')),url=video['href'], mode=mode),\n\t            'thumbnail': video['thumb'],\n                'icon': video['thumb'],\n                'info':video['info']})\n        else:\n            if if_filter(video['name'].encode('utf-8')) == False:\n                items.append({'label': check_filter(video['name'].encode('utf-8')),\n                    'path': plugin.url_for('play', check_filter(video['name'].encode('utf-8')),url=video['href'], mode=mode),\n\t                'thumbnail': video['thumb'],\n                    'icon': video['thumb'],\n                    'info':video['info']})\n\n    if mode != 'qyer':\n        items.append({\n            'label': u'下一页',\n            'path': plugin.url_for('category', page=str(int(page)+1),mode=mode),\n        })\n    return items\n\n\n@plugin.route('/')\ndef index():\n    if 'homesort' in storage:\n        #用户设置的列表\n        nlist = []\n        for index in range(len(storage['homesort'])):\n            nlist.append(storage['homesort'][index]['link'])\n        nlist = set(nlist)\n        #默认列表\n        glist = []\n        for index in range(len(get_categories())):\n            glist.append(get_categories()[index]['link'])\n        glist = set(glist)\n        if nlist != glist:\n            if len(glist)-len(nlist) > 0:\n                h = '新增 '+str(len(glist)-len(nlist))\n            else:\n                h = '删减 '+str(abs(len(glist)-len(nlist)))\n            newhomesort = []\n            for index in range(len(get_categories())):\n                vlist = {}\n                vlist['id'] = get_categories()[index]['id']\n                vlist['name'] = get_categories()[index]['name']\n                vlist['link'] = get_categories()[index]['link']\n                for i in range(len(storage['homesort'])):\n                    if storage['homesort'][i]['link'] == get_categories()[index]['link']:\n                        vlist['id'] = storage['homesort'][i]['id']\n                        vlist['name'] = storage['homesort'][i]['name']\n                        vlist['link'] = storage['homesort'][i]['link']\n                newhomesort.append(vlist)\n            storage['homesort'] = newhomesort\n            categories = sorted(newhomesort,key=lambda k:k.get('id'))\n            dialog = xbmcgui.Dialog()\n            dialog.notification('首页已更新', h +'个网站', xbmcgui.NOTIFICATION_INFO, 5000)\n        else:\n            categories = sorted(storage['homesort'],key=lambda k:k.get('id'))\n    else:\n        storage['homesort'] = get_categories()\n        categories = sorted(get_categories(),key=lambda k:k.get('id'))\n\n    items = []\n    for category in categories:\n        if category['id'] != 0:\n            items.append({\n            'label': category['name'],\n            'path': plugin.url_for('category', page=1,mode=category['link']),\n            })\n    items.append({\n        'label': u'[COLOR yellow]设置[/COLOR]',\n        'path': plugin.url_for('setting'),\n    })\n    \n    return items\n\n@plugin.route('/setting')\ndef setting():\n    items = []\n    items.append({\n        'label': u'首页排序与屏蔽',\n        'path': plugin.url_for('homesort'),\n    })\n    items.append({\n        'label': u'关键词过滤 - 符合关键词的文字被替换成*，但是视频仍然显示在视频列表',\n        'path': plugin.url_for('keyword',key='keyword',name='关键词过滤'),\n    })\n    items.append({\n        'label': u'黑名单屏蔽 - 符合关键词的内容将不显示在视频列表中',\n        'path': plugin.url_for('keyword',key='blacklist',name='黑名单屏蔽'),\n    })\n    return items\n\n@plugin.route('/homesort')\ndef homesort():\n    items = []\n    if 'homesort' in storage:\n        hlist = sorted(storage['homesort'],key=lambda k:k.get('id'))\n        for index in range(len(hlist)):\n            items.append({\n                'label':'id:' + str(hlist[index]['id']) + ' - ' + hlist[index]['name'],\n                'path':plugin.url_for('homeedit',value=hlist[index]['link']),\n            })\n    else:\n        hhlist = get_categories()\n        hlist = sorted(hhlist,key=lambda k:k.get('id'))\n        for index in range(len(hlist)):\n            items.append({\n                'label':'id:' + str(hlist[index]['id']) + ' - ' + hlist[index]['name'],\n                'path':plugin.url_for('homeedit',value=hlist[index]['link']),\n            })\n        storage['homesort'] = hlist\n    return items\n\n@plugin.route('/homeedit/<value>/')\ndef homeedit(value):\n    hlist = storage['homesort']\n    for index in range(len(hlist)):\n        if hlist[index]['link'] == value:\n            dialog = xbmcgui.Dialog()\n            d = dialog.input('--------修改id--------\\nid从小到大排列，改为0不显示', defaultt=str(hlist[index]['id']),type=xbmcgui.INPUT_NUMERIC)\n            if d != '' and int(d) != int(hlist[index]['id']):\n                hlist[index]['id'] = int(d)\n                dialog.notification('提示', '修改成功', xbmcgui.NOTIFICATION_INFO, 5000)\n\n\n\n@plugin.route('/keyword/<key>/<name>')\ndef keyword(key,name):\n    items = []\n    items.append({\n        'label': '[COLOR yellow]新增'+name+'[/COLOR]',\n        'path': plugin.url_for('keywordxad',key=key,value='/null/',mode=3),\n    })\n    items.append({\n        'label': '[COLOR yellow]' + name + ' (状态:'+chushihua(key+'switch',0) +')[/COLOR]',\n        'path': plugin.url_for('switch',key=key+'switch'),\n    })\n    #storage['keyword'] = ['fuck','getout']\n    if key in storage:\n        ky = storage[key]\n    else:\n        ky = ['示例1','helloworld']\n        storage[key] = ky\n    \n    for index in range(len(ky)):\n        items.append({\n            'label': ky[index],\n            'path': plugin.url_for('keywordxad',key=key,value=ky[index],mode=0),\n        })\n    return items\n\n@plugin.route('/keywordxad/<key>/<value>/<mode>/')\ndef keywordxad(key,value,mode):\n    if int(mode) == 0:\n        items = []\n        items.append({\n            'label': '修改 - ' +str(value),\n            'path': plugin.url_for('keywordxad',key=key,value=value,mode=1),\n        })\n        items.append({\n            'label': '删除 - ' +str(value),\n            'path': plugin.url_for('keywordxad',key=key,value=value,mode=2),\n        })\n        return items\n    #修改\n    if int(mode) == 1:\n        dialog = xbmcgui.Dialog()\n        d = dialog.input('修改 '+ value, defaultt=value,type=xbmcgui.INPUT_ALPHANUM)\n        ky = storage[key]\n        if d != '':\n            if d != value:\n                ky.remove(value)\n                ky.append(d)\n\n                storage[key] = list(set(ky))\n                dialog.notification('提示', '修改成功', xbmcgui.NOTIFICATION_INFO, 5000)\n            \n            \n    #删除\n    if int(mode) == 2:\n        dialog = xbmcgui.Dialog()\n        ret = dialog.yesno('确认删除吗？', '删除：' + value)\n        if ret:\n            ky = storage[key]\n            ky.remove(value)\n            storage[key] = list(set(ky))\n            dialog = xbmcgui.Dialog()\n            dialog.notification('提示', '删除成功', xbmcgui.NOTIFICATION_INFO, 5000)\n    #新增\n    if int(mode) == 3:\n        dialog = xbmcgui.Dialog()\n        d = dialog.input('新增关键词，多个请用英文逗号隔开',type=xbmcgui.INPUT_ALPHANUM)\n        ky = storage[key]\n        if d != '':\n            if d.find(',') != -1:\n                k = d.split(',')\n                ky = k + ky\n            else:\n                ky.append(d)\n            storage[key] = list(set(ky))\n            dialog.notification('提示', '添加成功', xbmcgui.NOTIFICATION_INFO, 5000)\n\n\n@plugin.route('/switch/<key>/')\ndef switch(key):\n    if storage[key] == 1:\n        storage[key] = 0\n        dialog = xbmcgui.Dialog()\n        dialog.notification('提示', '已关闭', xbmcgui.NOTIFICATION_INFO, 5000)\n    else:\n        storage[key] = 1\n        dialog = xbmcgui.Dialog()\n        dialog.notification('提示', '已开启', xbmcgui.NOTIFICATION_INFO, 5000)\n\n@plugin.route('/labels/<label>/')\ndef show_label(label):\n    # 写抓取视频类表的方法\n    #\n    items = [\n        {'label': label},\n    ]\n    return items\n\nif __name__ == '__main__':\n    plugin.run()\n"
  },
  {
    "path": "plugin.video.vid/addon.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>\n<addon id=\"plugin.video.vid\" name=\"vid beta\" version=\"0.1.0\" provider-name=\"zhengfan\">\n  <requires>\n    <import addon=\"xbmc.python\" version=\"2.1.0\"/>\n    <import addon=\"script.module.xbmcswift2\" version=\"2.4.0\"/>\n  <import addon=\"script.module.beautifulsoup4\" version=\"4.5.3\"/>\n  <import addon=\"script.module.requests\" version=\"2.19.1\"/>\n  <import addon=\"script.module.html5lib\" version=\"0.999.0\"/>\n  <import addon=\"script.module.cfscrape\" version=\"1.6.9\"/>\n  </requires>\n  <extension point=\"xbmc.python.pluginsource\" library=\"addon.py\">\n    <provides>video</provides>\n  </extension>\n  <extension point=\"xbmc.addon.metadata\">\n    <platform>all</platform>\n    <language></language>\n    <description>收录那些不以视频为主要业务的网站</description>\n    <assets>\n      <icon>icon.png</icon>\n      <fanart>fanart.png</fanart> \n    </assets>\n    <news>首个版本</news>\n  </extension>\n</addon>\n"
  },
  {
    "path": "plugin.video.vid/readme.md",
    "content": "# VID for kodi 0.1.0(说明还没有写好)\n## 🎯简介\n- vid插件是一个模块化，方便不是很懂kodi的python新手快速开发的插件，python新手无需知道kodi相关知识，只需知道一点python知识和遵循一定规则，即可为本插件增加和维护网站\n\n---\n\n## 📕文档\n\n假设你想为本插件编写一个 浏览helloworld网站的视频功能  \n\n你需要在👇\n\n---\n\n### 1. get_categories()函数中“注册”\n```python\ndef get_categories():\n    return [{'id':1,'name':'虎嗅 huxiu.com','link':'huxiu'},\n            {'id':2,'name':'机核 gcores.com','link':'gcore'},\n            {'id':3,'name':'穷游 qyer.com','link':'qyer'},\n            {'id':4,'name':'ZEALER zealer.com','link':'zeal'},\n            {'id':5,'name':'澎湃 thepaper.cn','link':'pengpai'},\n            {'id':6,'name':'新京报 bjnews.com.cn','link':'bjnews'},\n            {'id':7,'name':'界面 jiemian.com','link':'jiemian'},\n            {'id':8,'name':'36kr 36kr.com','link':'36kr'}]\n```\n在最后一行加上\n你的 浏览helloworld网站 \n```\n{'id':9,'name':'我的helloworld','link':'helloworld'}\n```\n\n|  参数   | 格式 |\n|  :----:  | :----  |\n| id     | 数字(int),值必须且为非0的正值，大小不限，甚至可以重复，第一次列表排序根据此值从小到大来排序 |\n| name  | 字符串(str),值必须但不限制，用来在首页显示你编写的网站的名字 |\n| link  | 字符串(str),值必须且唯一，不得与get_categories函数中其他link的值重复，是你网站在vid插件中的唯一标识符 |\n\n---\n\n### 2. 创建三个函数\n因为之前的link设定为helloworld，所以，插件会寻找\n - get_helloworld_videos(page)\n - get_helloworld_mp4(url)\n - get_helloworld_mp4info(url)\n\n如果缺少以下三个函数，插件运行时可能会报错甚至无法运行\n\n---\n\n### 3. get_helloworld_videos(page) 是用于生成视频列表的函数\n\n#### 传入:\n\n|  变量名   | 解释 |\n|  :----:  | :----  |\n| page     | 整数(int),由vid插件传入，当用户在vid插件浏览视频列表第1页时，点击下一页，vid插件会调用函数get_helloworld_videos(2)，载入第2页的视频列表 |\n\n#### 传出:\n它输出列表套娃字典的内容，比如\n```python\n[{'title':'视频标题1','thumb':'http://www.123.com/1.jpg','href':'http://www.123.com/1.html','info':{}},\n{'title':'视频标题2','thumb':'http://www.123.com/1.jpg','href':'http://www.123.com/1.html','info':{}},\n{'title':'视频标题3','thumb':'http://www.123.com/1.jpg','href':'http://www.123.com/1.html','info':{}}]\n```\n|  字典值   | 格式 |\n|  :----:  | :----  |\n| title     | 字符串(str),用于视频列表内显示视频的标题 |\n| thumb  | 字符串(str),是一个图片的url地址，用于显示对应视频的图片 |\n| href  | 字符串(str),传递给get_helloworld_mp4info(url)和get_helloworld_mp4info(url)函数的url的值 |\n| info  | 字典(dict),一般用于设置视频的简介信息和分类，没有可设为空字典，更多用法可参考kodi setinfo |\n\n---\n\n### 4. get_helloworld_mp4(url) 是用于解析真实视频地址的函数\n\n#### 传入:\n\n|  变量名   | 解释 |\n|  :----:  | :----  |\n| url     | 字符串(str),为上一个函数get_helloworld_videos(page)所选择的列表项对应的字典['href']的值 |\n\n#### 传出:\n\n它输出字符串内容，是kodi可播放的视频地址，例如\n```python\n'http://demo.com/1.mp4'\n```\n\n---\n\n### 5. get_helloworld_mp4info(url) 是用于生成视频相关信息的函数\n\n\n#### 传入:\n\n|  变量名   | 解释 |\n|  :----:  | :----  |\n| url     | 字符串(str),为上一个函数get_helloworld_videos(page)所选择的列表项对应的字典['href']的值 |\n\n\n#### 传出:\n\n它输出一个字典，比如\n```python\n{'plot':'视频简介',\n'img':'视频图片url'}\n```\n注意，字典内必须含有img，否则程序报错\n\n\n更多用法 参考kodi setinfo\n\n## 入门\n > 备注：如果下面的图片显示不出来可以去 [CSDN](https://blog.csdn.net/zhengfan2014/article/details/105908999) 那里的镜像文章\n\n为vid新增网站非常简单，只需要在get_categories函数中添加相关信息，并创建三个函数，并按规则return出对应结果即可  \n\n我们以环球网为例子，演示为vid插件编写观看环球网网站视频的功能 \n\n![](https://pic.downk.cc/item/5eae4e67c2a9a83be56fd4ef.png)\n\n### 1.修改get_categories()\n\n首先，我们找到get_categories函数\n\n```python\ndef get_categories():\n    return [{'id':1,'name':'虎嗅 huxiu.com','link':'huxiu'},\n            {'id':2,'name':'机核 gcores.com','link':'gcore'},\n            {'id':3,'name':'穷游 qyer.com','link':'qyer'},\n            {'id':4,'name':'ZEALER zealer.com','link':'zeal'},\n            {'id':5,'name':'澎湃 thepaper.cn','link':'pengpai'},\n            {'id':6,'name':'新京报 bjnews.com.cn','link':'bjnews'},\n            {'id':7,'name':'界面 jiemian.com','link':'jiemian'},\n            {'id':8,'name':'36kr 36kr.com','link':'36kr'}]\n```\n我们观察得知，get_categories()返回一个python列表 [...] ,列表内套娃一个python字典 {...}   \n\n我们仿照上面，构造一个python字典，放在get_categories()里\n\n```python\n{'id':9,'name':'环球 huanqiu.com','link':'huanqiu'}\n```\n\n|  参数   | 格式 |\n|  :----:  | :----  |\n| id     | 数字(int),值必须且为非0的正值，大小不限，甚至可以重复，第一次列表排序根据此值从小到大来排序 |\n| name  | 字符串(str),值必须但不限制，用来在首页显示你编写的网站的名字 |\n| link  | 字符串(str),值必须且唯一，不得与get_categories函数中其他link的值重复，是你网站在vid插件中的唯一标识符 |\n\n完成效果：\n\n```python\ndef get_categories():\n    return [{'id':1,'name':'虎嗅 huxiu.com','link':'huxiu'},\n            {'id':2,'name':'机核 gcores.com','link':'gcore'},\n            {'id':3,'name':'穷游 qyer.com','link':'qyer'},\n            {'id':4,'name':'ZEALER zealer.com','link':'zeal'},\n            {'id':5,'name':'澎湃 thepaper.cn','link':'pengpai'},\n            {'id':6,'name':'新京报 bjnews.com.cn','link':'bjnews'},\n            {'id':7,'name':'界面 jiemian.com','link':'jiemian'},\n            {'id':8,'name':'36kr 36kr.com','link':'36kr'},\n            {'id':9,'name':'环球 huanqiu.com','link':'huanqiu'}]\n```\n\n### 2.新增三个函数\n\n完成第一步之后，我们还需要创建对应三个函数，格式为 get_xx_videos ,xx为上一步设定的link\n\n```python\ndef get_huanqiu_videos(page):\n    videos = []\n    return videos\n```\n⬆ get_huanqiu_videos(page)  函数是用于爬取并输出视频列表的函数，它输出一个python列表，里面套娃python字典\n\n\n```python\ndef get_huanqiu_mp4info(url):\n    mp4info ={}\n    mp4info['img'] = ''\n    return mp4info\n```\n⬆ get_huanqiu_mp4info(url) 函数是用于输出视频详细信息的函数，它输出一个python字典，字典除了img是必须的，其他都是可选值，具体的参数和值可以参考kodi的setinfo\n\n|  传出参数   | 格式 |\n|  :----:  | :----  |\n| img     | 字符串,用于展示视频的图片，值必须存在，但可设为空 |\n\n\n```python\ndef get_huanqiu_mp4(url):\n    mp4 = ''\n    return mp4\n```\n⬆ get_huanqiu_mp4(url) 函数用于解析并输出视频的真实地址，提供给kodi播放\n\n### 3.抓包环球网，找到接口\n\n首先，在完善get_huanqiu_videos(page)前，我们肯定要知道，环球网网站是怎么输出视频列表的，才能对症下药，写出对应的get_huanqiu_videos(page)代码。\n\n那么第一步，就是用chrome打开环球网视频的网站\n\nv.huanqiu.com\n\n![](https://pic.downk.cc/item/5eae4e67c2a9a83be56fd4ef.png)\n\n然后我们正常浏览网页，观察环球网是如何加载新的视频列表的\n\n我们发现，不断下滑网页，网页会不断增加新的视频列表\n\n这时，我们猜到，网页是动态加载的，我们按下F12,在network中寻找那个请求新的网页的api\n\n![](https://pic.downk.cc/item/5eae5294c2a9a83be572f203.png)\n\n看，我们找到那个视频列表的api了，它返回的是json的数据，我们多下滑几次，让网页多请求新的视频列表，观察请求头的规律\n\n![](https://pic.downk.cc/item/5eae5087c2a9a83be57195f0.jpg)\n![](https://pic.downk.cc/item/5eae50bbc2a9a83be571b816.jpg)\n\n看到没，offset就是环球网视频列表接口的关键参数，以20递增,第一页offset是0，第二页offset是20，以此类推\n\n这时，我们有了足够的情报，可以尝试完善get_huanqiu_videos(page) 了\n\n\n **接下来的调试，我推荐新手在Google的colab上进行调试，调试ok时，再移植到kodi插件上，有基础可以直接跳下一步**\n\n### 4.在Google colab上调试代码\n\n\nGoogle colab地址：https://colab.research.google.com/\n\n打开网页后，新建notebook\n\n![](https://pic.downk.cc/item/5eae63e7c2a9a83be57fb596.png)\n\n然后，在代码区加上\n```python\nimport requests\nfrom bs4 import BeautifulSoup\nimport json\nheaders = {'user-agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.122 Safari/537.36'}\n```\n\n![](https://pic.downk.cc/item/5eae6433c2a9a83be57ff886.png)\n这些是比较常用的python模块和变量，加完就可以直接调试了\n\n然后我们新增两个变量page和url  \npage变量是页数的意思，当用户访问第一页的环球网视频时，它为1，访问第二页的环球网视频时，它为2  \n但是因为环球网构造请求url里表示翻页的参数第一页是0，第二页是20，所以，我们写了这样一条表达式\n\n这样，当page传入1时，url中的offset为0\n\n```python\npage = 1\npage = 10*(int(page)-1)\nurl='https://v.huanqiu.com/api/list?node=%22/e3pmh2fmu/e3pmh2g69%22,%22/e3pmh2fmu/e3pn61vrg%22,%22/e3pmh2fmu/e3prkldqd%22,%22/e3pmh2fmu/e3prvucof%22,%22/e3pmh2fmu/e3ptgqp01%22,%22/e3pmh2fmu/e3ptgqp01/e3ptrminr%22&offset='+str(page)+'&limit=20'\n```\n接下来，我们依次新增这两个函数\n\n```python\nr = requests.get(url,headers=headers)\nj = json.loads(r.text)\n```\n\n requests.get() 是python的用于处理html的模块下的函数， requests.get()主要处理get请求，传入的url是要访问url的地址，headers是访问网页用到的ua\n\njson.loads() 是python的用于处理json的模块下的函数，json.loads()可以把字符串形式的json内容变成python字典，便于调用\n\n在代码的最后加入一行print(j)，点下我用surface pen 圈起来那个按钮\n\n![](https://pic.downk.cc/item/5eae64bcc2a9a83be58063fc.png)\n\n稍等片刻，就可以print出 j 这个变量的值了\n\n看，它成功返回环球网接口的值了\n\n![](https://pic.downk.cc/item/5eae6596c2a9a83be5811a3e.png)\n\n这表示我们的代码是完全正确的，我们可以接着写下去。\n\n\n然后，我们观察之前那个接口返回的结果\n\n![](https://pic.downk.cc/item/5eae5294c2a9a83be572f203.png)\n\n所有的数据都在list里面，所以我们要写一个循环，把每个数据循环出来\n循环这部分，就需要用到一点抽象思维了\n想象一下有一个vlist[]\n里面包裹着三个字典  \n```python\nvlist = [{'name':'name1'},{'name':'name2'},{'name':'name3'}]\n```\n\n我们该怎么循环它们出来呢？  \n是不是得从第1个取出name1，第二个取出name2... ？  \n我们知道python的列表取第一个list是：\n```python\nvlist = [{'name':'name1'},{'name':'name2'},{'name':'name3'}]\nvlist[0]\n```\npython的字典取name值是：\n```python\ndict = {'name':'name1'}\ndict['name']\n```\n\n那么，把它们结合起来，取vlist列表第一个字典里的name值就是：\n```python\nvlist = [{'name':'name1'},{'name':'name2'},{'name':'name3'}]\nvlist[0]['name']\n```\n由以上我们知道，循环输出所有vlist中name值的关键，在于vlist[0]中的[0],只要我们能让它在每循环一次时变化该值，就可以实现我们的目的。\n\n我们使用python的for函数，range函数和len函数来实现  \n\n```python\nfor index in range(len(vlist)):\n    print(vlist[index]['name'])\n```\n\n| 用到的函数 | 函数简介 |\n| ---- | ---- |\n[ for函数](https://www.runoob.com/python/python-for-loop.html) | Python for循环可以遍历任何序列的项目，如一个列表或者一个字符串。\n[ len函数](https://www.runoob.com/python/att-list-len.html)： | len() 方法返回列表元素个数。\n[range函数](https://www.runoob.com/python/python-func-range.html) | python range() 函数可创建一个整数列表，一般用在 for 循环中。\n\n以上可能很复杂，也许你看不懂，但是没关系，只要你会用就行了。python和高中数学差不多，你不需要完全理解其中的过程，只需知道遇到这种情况套这条公式就可以，至于代码，写的多了自然能慢慢领悟\n\n接下来，我们把它做一点小小的改动，让它输出环球网的视频标题，图片url和新闻链接\n\n```python\npage = 1\npage = 10*(int(page)-1)\nurl='https://v.huanqiu.com/api/list?node=%22/e3pmh2fmu/e3pmh2g69%22,%22/e3pmh2fmu/e3pn61vrg%22,%22/e3pmh2fmu/e3prkldqd%22,%22/e3pmh2fmu/e3prvucof%22,%22/e3pmh2fmu/e3ptgqp01%22,%22/e3pmh2fmu/e3ptgqp01/e3ptrminr%22&offset='+str(page)+'&limit=20'\n\nr = requests.get(url,headers=headers)\nj = json.loads(r.text)\n\nvlist = j['list']\nfor index in range(len(vlist)):\n    print(vlist[index]['title'])\n    print(vlist[index]['cover'])\n    print('https://v.huanqiu.com/article/' + str(vlist[index]['aid']))\n```\n\n![](https://pic.downk.cc/item/5eae9257c2a9a83be59f0089.png)\n\n这段代码成功循环输出所有的视频标题，图片url和新闻的url，但是，它却报错这一行代码有keyerror错误   \n```python\nprint(vlist[index]['title'])\n```\n是这一行代码有问题吗，如果有问题，为什么前面的循环可以正常输出呢？\n\n我们重新看环球网的接口\n\n![](https://pic.downk.cc/item/5eae9372c2a9a83be59fa8f0.png)\n\n第20那里，是空的！也就是说当初循环时len(vlist)是21，可是21，也就是vlist[20]，却是空的，这导致了\n```python\nprint(vlist[index]['title'])\n```\n不能在空的vlist[20]里找到['title']的值，导致报错  \n所以，我们让len(vlist)的值减1\n\n```python\npage = 1\npage = 10*(int(page)-1)\nurl='https://v.huanqiu.com/api/list?node=%22/e3pmh2fmu/e3pmh2g69%22,%22/e3pmh2fmu/e3pn61vrg%22,%22/e3pmh2fmu/e3prkldqd%22,%22/e3pmh2fmu/e3prvucof%22,%22/e3pmh2fmu/e3ptgqp01%22,%22/e3pmh2fmu/e3ptgqp01/e3ptrminr%22&offset='+str(page)+'&limit=20'\n\nr = requests.get(url,headers=headers)\nj = json.loads(r.text)\n\nvlist = j['list']\nfor index in range(len(vlist)-1):\n    print(vlist[index]['title'])\n    print(vlist[index]['cover'])\n    print('https://v.huanqiu.com/article/' + str(vlist[index]['aid']))\n```\n\n把修改后的代码在colab上运行，看，不会报错了\n\n![](https://pic.downk.cc/item/5eae94d0c2a9a83be5a057f4.png)\n\n到这一步，恭喜你，代码调试ok，可以尝试往vid插件上移植了\n\n### 5.完善get_huanqiu_videos(page) 函数\n\n前言：在完善之前，先讲讲如何在kodi实时调试代码和查看kodi的log排错\n以windows为例：\n\nkodi的目录在：\n > C:\\Users\\你的登录名\\AppData\\Roaming\\Kodi\n\n![](https://pic.downk.cc/item/5eae9bcfc2a9a83be5a3e7c7.png)\n\n你安装的所有插件在addons目录里  \n我们想要调试vid插件，我们打开那个plugin.video.vid 文件夹\n\n![](https://pic.downk.cc/item/5eae9bcfc2a9a83be5a3e7ca.png)\n\n寻找那个 .py 后缀的文件，打开它，修改，然后在kodi运行对应插件\n\n![](https://pic.downk.cc/item/5eae9bcfc2a9a83be5a3e7cc.png)\n\nkodi的log在：\n\n![](https://pic.downk.cc/item/5eae9bcfc2a9a83be5a3e7c7.png)\n\n如果你调试中插件报错，你可以在这里找到报错的详细信息\n\n**前言end**\n\n--- \n\n首先，我们把上一步的代码往get_huanqiu_videos(page) 里复制\n\n```python\ndef get_huanqiu_videos(page):\n    videos = []\npage = 1\npage = 10*(int(page)-1)\nurl='https://v.huanqiu.com/api/list?node=%22/e3pmh2fmu/e3pmh2g69%22,%22/e3pmh2fmu/e3pn61vrg%22,%22/e3pmh2fmu/e3prkldqd%22,%22/e3pmh2fmu/e3prvucof%22,%22/e3pmh2fmu/e3ptgqp01%22,%22/e3pmh2fmu/e3ptgqp01/e3ptrminr%22&offset='+str(page)+'&limit=20'\n\nr = requests.get(url,headers=headers)\nj = json.loads(r.text)\n\nvlist = j['list']\nfor index in range(len(vlist)-1):\n    print(vlist[index]['title'])\n    print(vlist[index]['cover'])\n    print('https://v.huanqiu.com/article/' + str(vlist[index]['aid']))\n\n    return videos\n```\n记得给所有复制来的代码打上四个空格，因为python对空格要求很严格，多一个少一个会报错\n```python\ndef get_huanqiu_videos(page):\n    videos = []\n    page = 1\n    page = 10*(int(page)-1)\n    url='https://v.huanqiu.com/api/list?node=%22/e3pmh2fmu/e3pmh2g69%22,%22/e3pmh2fmu/e3pn61vrg%22,%22/e3pmh2fmu/e3prkldqd%22,%22/e3pmh2fmu/e3prvucof%22,%22/e3pmh2fmu/e3ptgqp01%22,%22/e3pmh2fmu/e3ptgqp01/e3ptrminr%22&offset='+str(page)+'&limit=20'\n\n    r = requests.get(url,headers=headers)\n    j = json.loads(r.text)\n\n    vlist = j['list']\n    for index in range(len(vlist)-1):\n        print(vlist[index]['title'])\n        print(vlist[index]['cover'])\n        print('https://v.huanqiu.com/article/' + str(vlist[index]['aid']))\n\n    return videos\n```\n把for循环换成这样\n\n```python\n    for index in range(len(vlist)-1):\n        videoitem = {}\n        videoitem['name'] =  vlist[index]['title']\n        videoitem['href'] =  'https://v.huanqiu.com/article/' + str(vlist[index]['aid'])\n        videoitem['thumb'] = vlist[index]['cover']\n        videoitem['info'] = {}\n        videos.append(videoitem)\n```\n值 | 说明\n-- | -- \nname | kodi视频列表的标题\nhref | 值，就是传递给 get_huanqiu_mp4(url) 和 get_huanqiu_mp4info(url)中的url\nthumb | 视频图片地址url，用于展示图片\ninfo | kodi的setinfo,具体参考kodi的setinfo，不想设置传递一个空字典{}\n\n保存下代码，试试运行插件看看，是不是可以正常显示视频列表了？\n\n但是，我们还需要对代码小修改。  \n把 page = 1 删掉，不然没法 下一页\n\n(可选修改)把\n```python\n    r = requests.get(url,headers=headers)\n    j = json.loads(r.text)\n```\n换成\n```python\n    r = get_html(url)\n    j = json.loads(r)\n```\nget_html(url)是我写的函数，功能和requests.get(url,headers=headers)一样，不仅用法比它简单，而且，有缓存功能，短时间（两分钟内）内相同url请求直接调用缓存的数据，减少向服务器的请求次数，降低被网站方察觉的可能\n\n\n给info加点东西\n\n```\n{'plot':vlist[index]['title'] + u'\\n\\n来自' + vlist[index]['source']['name'] + '\\n' +unix_to_data(str(vlist[index]['ctime'])[:-3],'%Y-%m-%d %H:%M:%S')}\n```\n\n'\\n' 是回车键的意思  \n\n'' 前加u是让字符串变成utf-8的编码，如果你遇到ascll错误，试试在中文字符串前加u  \n\nunix_to_data()是一个神奇的把158xxxxx的10或者13位数字转成日期时间的神奇函数，你只需要传入158xxx的数字和'%Y-%m-%d %H:%M:%S'格式即可  \n（目前仅支持10位数字，13位数字请手动删除最后三位数）\n\n想输出2018-1-11 11:12:13 格式的日期传入 ：'%Y-%m-%d %H:%M:%S'\n只要2018-1-11 的传入 ：'%Y-%m-%d'\n\n完成效果：\n\n```python\ndef get_huanqiu_videos(page):\n    videos = []\n    page = 10*(int(page)-1)\n    url='https://v.huanqiu.com/api/list?node=%22/e3pmh2fmu/e3pmh2g69%22,%22/e3pmh2fmu/e3pn61vrg%22,%22/e3pmh2fmu/e3prkldqd%22,%22/e3pmh2fmu/e3prvucof%22,%22/e3pmh2fmu/e3ptgqp01%22,%22/e3pmh2fmu/e3ptgqp01/e3ptrminr%22&offset='+str(page)+'&limit=20'\n\n    r = get_html(url)\n    j = json.loads(r)\n    \n    vlist = j['list']\n    for index in range(len(vlist)-1):\n        videoitem = {}\n        videoitem['name'] =  vlist[index]['title']\n        videoitem['href'] =  'https://v.huanqiu.com/article/' + str(vlist[index]['aid'])\n        videoitem['thumb'] = vlist[index]['cover']\n        videoitem['info'] = {'plot':vlist[index]['title'] + u'\\n\\n来自' + vlist[index]['source']['name'] + '\\n' +unix_to_data(str(vlist[index]['ctime'])[:-3],'%Y-%m-%d %H:%M:%S')}\n        videos.append(videoitem)\n\n    return videos\n```\n### 6.完善get_huanqiu_mp4(url) 函数\n\n接下来，我们就得找出环球网mp4视频的真实地址了，不过由于环球网视频过于简单，就不在colab上测试了，直接在kodi上调试好了\n\n首先，我们随便打开一个环球网视频，对准视频右键检查\n\n![](https://pic.downk.cc/item/5eaea82dc2a9a83be5ab8611.png)\n\n很幸运，我们直接找到mp4的url\n\n![](https://pic.downk.cc/item/5eaea91ac2a9a83be5ac5704.png)\n\n但是，不要高兴的太早，说不定视频url是js动态生成的呢？  \n\n右键 - 查看网页源代码\n\n![](https://pic.downk.cc/item/5eaea94ac2a9a83be5ac7af9.png)\n\nctrl+f调出网页内搜索，搜索之前的mp4\n\n![](https://pic.downk.cc/item/5eaea96bc2a9a83be5ac8f89.png)\n\n找到了，在html文档里，我们可以直接用美丽汤来开搞\n\n关于美丽汤的用法，可以参考:  \n有关美丽汤的教程 | 网址 \n--- | --- \n逼乎Crossin（上海交通大学 计算机应用技术硕士）写的 ：干了这碗“美丽汤”，网页解析倍儿爽 | [逼乎的教程，简单易懂，新手推荐](https://zhuanlan.zhihu.com/p/58445021)\n 美丽汤中文文档| [美丽汤中文文档，推荐有点基础的阅读](https://beautifulsoup.readthedocs.io/zh_CN/v4.4.0/)\n\n先搜一下 <video ，确认video标签是否唯一，如果唯一，就可以直接找video标签来定位，如果非唯一，还需要依据其他条件来定位我们要找的标签\n\n![](https://pic.downk.cc/item/5eaebda7c2a9a83be5c0407c.png)\n\n先get网页\n\n```python\n    r = get_html(url)\n```\n用美丽汤解析网页，用美丽汤前一定要用到这句\n\n```python\n    soup = BeautifulSoup(r, \"html5lib\")\n```\n\n在网页里定位video标签\n\n```python\n    mp4 = soup.find('video')\n```\n最后，取出video标签 src里的视频地址\n```python\n    return mp4['src']\n```\n\n完成效果\n```python\ndef get_huanqiu_mp4(url):\n    r = get_html(url)\n    soup = BeautifulSoup(r, \"html5lib\")\n    mp4 = soup.find('video')\n    return mp4['src']\n```\n完成这步之后，你可以试着用kodi打开之前的视频列表了，不出意外的话，应该可以正常显示一个有电影图表的选项，点开他就可以正常播放视频\n\n\n\n### 附 kodi setinfo 支持参数\n\nInfo label |\tDescription\n---- | ---\ngenre |\tstring (Comedy) or list of strings ([\"Comedy\", \"Animation\", \"Drama\"])\ncountry |\tstring (Germany) or list of strings ([\"Germany\", \"Italy\", \"France\"])\nyear |\tinteger (2009)\nepisode |\tinteger (4)\nseason |\tinteger (1)\nsortepisode |\tinteger (4)\nsortseason |\tinteger (1)\nepisodeguide |\tstring (Episode guide)\nshowlink |\tstring (Battlestar Galactica) or list of strings ([\"Battlestar Galactica\", \"Caprica\"])\ntop250 |\tinteger (192)\nsetid |\tinteger (14)\ntracknumber |\tinteger (3)\nrating |\tfloat (6.4) - range is 0..10\nuserrating |\tinteger (9) - range is 1..10 (0 to reset)\nwatched |\tdepreciated - use playcount instead\nplaycount |\tinteger (2) - number of times this item has been played\noverlay |\tinteger (2) - range is 0..7. See Overlay icon types for values\ncast |\tlist ([\"Michal C. Hall\",\"Jennifer Carpenter\"]) - if provided a list of tuples cast will be interpreted as castandrole\ncastandrole |\tlist of tuples ([(\"Michael C. Hall\",\"Dexter\"),(\"Jennifer Carpenter\",\"Debra\")])\ndirector |\tstring (Dagur Kari) or list of strings ([\"Dagur Kari\", \"Quentin Tarantino\", \"Chrstopher Nolan\"])\nmpaa |\tstring (PG-13)\nplot |\tstring (Long Description)\nplotoutline |\tstring (Short Description)\ntitle |\tstring (Big Fan)\noriginaltitle |\tstring (Big Fan)\nsorttitle |\tstring (Big Fan)\nduration |\tinteger (245) - duration in seconds\nstudio |\tstring (Warner Bros.) or list of strings ([\"Warner Bros.\", \"Disney\", \"Paramount\"])\ntagline |\tstring (An awesome movie) - short description of movie\nwriter |\tstring (Robert D. Siegel) or list of strings ([\"Robert D. Siegel\", \"Jonathan Nolan\", \"J.K. Rowling\"])\ntvshowtitle |\tstring (Heroes)\npremiered |\tstring (2005-03-04)\nstatus |\tstring (Continuing) - status of a TVshow\nset |\tstring (Batman Collection) - name of the collection\nsetoverview |\tstring (All Batman movies) - overview of the collection\ntag |\tstring (cult) or list of strings ([\"cult\", \"documentary\", \"best movies\"]) - movie tag\nimdbnumber |\tstring (tt0110293) - IMDb code\ncode |\tstring (101) - Production code\naired |\tstring (2008-12-07)\ncredits |\tstring (Andy Kaufman) or list of strings ([\"Dagur Kari\", \"Quentin Tarantino\", \"Chrstopher Nolan\"]) - writing credits\nlastplayed |\tstring (Y-m-d h:m:s = 2009-04-05 23:16:04)\nalbum |\tstring (The Joshua Tree)\nartist |\tlist (['U2'])\nvotes |\tstring (12345 votes)\npath |\tstring (/home/user/movie.avi)\ntrailer |\tstring (/home/user/trailer.avi)\ndateadded |\tstring (Y-m-d h:m:s = 2009-04-05 23:16:04)\nmediatype |\tstring - \"video\", \"movie\", \"tvshow\", \"season\", \"episode\" or \"musicvideo\"\ndbid |\tinteger (23) - Only add this for items which are part of the local db. You also need to set the correct 'mediatype'!\n"
  },
  {
    "path": "plugin.video.vid/resources/__init__.py",
    "content": ""
  },
  {
    "path": "plugin.video.vid/resources/language/English/strings.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?>\n<strings>\n  <!-- Plugin name -->\n  <string id=\"30000\">bilibili</string>\n</strings>\n"
  },
  {
    "path": "plugin.video.vid/resources/lib/__init__.py",
    "content": ""
  },
  {
    "path": "plugin.video.weibotv/addon.py",
    "content": "#!/usr/bin/env python\n# -*- coding:utf-8 -*-\nimport re\nfrom xbmcswift2 import Plugin\nimport requests\nfrom bs4 import BeautifulSoup\nimport xbmcgui\nimport base64\nimport json\nimport urllib2\nimport sys\nimport HTMLParser\nimport re\n\n\ndef unescape(string):\n    string = urllib2.unquote(string).decode('utf8')\n    quoted = HTMLParser.HTMLParser().unescape(string).encode('utf-8')\n    #转成中文\n    return re.sub(r'%u([a-fA-F0-9]{4}|[a-fA-F0-9]{2})', lambda m: unichr(int(m.group(1), 16)), quoted)\n\n\nplugin = Plugin()\n\n\nheaders = {'user-agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.122 Safari/537.36'}\ncookies = dict(SUB='_2AkMpN-raf8NxqwJRmfoXxGniZIl_ygvEieKfaxsBJRMxHRl-yj92qhFTtRB6ArfENQBVM_xipNLvZYca4pNo4lw7p9Xi')\n\n\ndef get_categories():\n    return [{'name':'美食','link':'https://weibo.com/tv?type=channel&first_level_channel_id=4379553934581913'},\n            {'name':'游戏','link':'https://weibo.com/tv?type=channel&first_level_channel_id=4379553431261151'},\n            {'name':'音乐','link':'https://weibo.com/tv?type=channel&first_level_channel_id=4379158936012261'},\n            {'name':'影视','link':'https://weibo.com/tv?type=channel&first_level_channel_id=4379156922732905'},\n            {'name':'娱乐综艺','link':'https://weibo.com/tv?type=channel&first_level_channel_id=4379155794457909'},\n            {'name':'时尚美妆','link':'https://weibo.com/tv?type=channel&first_level_channel_id=4379553112491541'},\n            {'name':'VLOG','link':'https://weibo.com/tv?type=channel&first_level_channel_id=4379162597598697'},\n            {'name':'搞笑幽默','link':'https://weibo.com/tv?type=channel&first_level_channel_id=4379552642725861'},\n            {'name':'纪录片','link':'https://weibo.com/tv?type=channel&first_level_channel_id=4445109857792664'},\n            {'name':'评测','link':'https://weibo.com/tv?type=channel&first_level_channel_id=4453781547450385'},\n            {'name':'故事','link':'story'},\n            {'name':'热榜','link':'rank'}]\n\ndef get_videos(url):\n#爬视频列表的\n    if url == 'rank' or url == 'story':\n        if url == 'rank':\n            #日榜\n            rec = requests.get('https://weibo.com/tv?type=dayrank',headers=headers,cookies=cookies)\n            rec.encoding = 'utf-8'\n            rectext = rec.text\n            #print(rectext)\n            soup = BeautifulSoup(rectext, 'html.parser')\n            list = soup.find_all('div',class_='V_list_a')\n            videos = []\n            for index in range(len(list)):\n                videosource = list[index]['video-sources']\n                videosource = unescape(videosource)\n                videosource = unescape(videosource)\n                videosource = videosource[8:]\n                mp4 = videosource.split('http:')\n                img = list[index].find('img')\n                img = img['src']\n                if img[0:4] == 'http':\n                    img = 'http' + img[5:]\n                else:\n                    img = 'http:' + img\n                title = list[index].find('h3')\n                title = title.text\n                title = title.replace(' ', '').replace('\\n','')\n                if len(title) > 40:\n                    title = title[:40] + '...'\n                title = '['+str(index+1)+']' + title\n                videoitem = {}\n                videoitem['name'] = title\n                videoitem['thumb'] = img\n                videoitem['href'] = 'http:' + mp4[len(mp4)-1]\n                videos.append(videoitem)\n        else:\n            #故事\n            q = '11'\n            rec = requests.get('https://weibo.com/tv?type=story',headers=headers,cookies=cookies)\n            rec.encoding = 'utf-8'\n            rectext = rec.text\n            #print(rectext)\n            soup = BeautifulSoup(rectext, 'html.parser')\n            list = soup.find_all('div',class_='V_list_b')\n            videos = []\n            for index in range(len(list)):\n                if list[index]['action-data'][:9] != 'type=live':\n\n\n                    videosource = list[index]['video-sources']\n                    videosource = unescape(videosource)\n                    videosource = unescape(videosource)\n                    videosource = videosource[8:]\n                    mp4 = videosource.split('http:')\n                    img = list[index].find('img')\n                    img = img['src']\n                    if img[0:4] == 'http':\n                        img = 'http' + img[5:]\n                    else:\n                        img = 'http:' + img\n                    username = list[index].find('div',class_='V_box_col V_autocut')\n                    username = username.text\n                    like = list[index].find('div',class_='like')\n                    like = like.text\n                    likenum = re.findall(r'\\d+',like)\n                    videoitem = {}\n                    videoitem['name'] = username.encode('utf-8') + ' 分享的短视频 [赞' + str(likenum[0])+ ']'\n                    videoitem['thumb'] = img\n                    videoitem['href'] = 'http:' + mp4[len(mp4)-1]\n                    videos.append(videoitem)\n\n    \n                else:\n                    index = index +1\n\n\n\n\n\n\n\n\n\n\n    else:\n        #普通列表\n        rec = requests.get(url,headers=headers,cookies=cookies)\n        rec.encoding = 'utf-8'\n        rectext = rec.text\n        #print(rectext)\n        soup = BeautifulSoup(rectext, 'html.parser')\n        list = soup.find_all('div',class_='V_list_a')\n        videos = []\n        for index in range(len(list)):\n            videosource = list[index]['video-sources']\n            videosource = unescape(videosource)\n            videosource = unescape(videosource)\n            videosource = videosource[8:]\n            mp4 = videosource.split('http:')\n            img = list[index].find('img')\n            img = img['src']\n            if img[0:4] == 'http':\n                img = 'http' + img[5:]\n            else:\n                img = 'http:' + img\n            title = list[index].find('h3')\n            videoitem = {}\n            videoitem['name'] = title.text\n            videoitem['thumb'] = img\n            videoitem['href'] = 'http:' + mp4[len(mp4)-1]\n            videos.append(videoitem)\n    return videos\n\n\ndef get_sources(videolink):\n    r = requests.get(videolink, headers=headers)\n    r.encoding = 'UTF-8'\n    soup = BeautifulSoup(r.text)\n    sources = []\n    categoryname = soup.find('span',class_='info_category info_ico').find('a').get_text()\n    sourcetitle = soup.find('div', class_='context').find('h3', text='播放地址（无需安装插件）')\n    thumbimg = soup.find('div', class_='context').find('img')['src']\n    if sourcetitle is not None:\n        sourcecontenter = sourcetitle.parent\n        sourceitems = sourcecontenter.find_all('a')\n        for sourceitem in sourceitems:\n            videosource = {}\n            videosource['name'] = sourceitem['title']\n            videosource['thumb'] = thumbimg\n            videosource['category'] = categoryname\n            videosource['href'] = sourceitem['href']\n            sources.append(videosource)\n        return sources\n    else:\n        dialog = xbmcgui.Dialog()\n        ok = dialog.ok('错误提示', '没有播放源')\n\n\n@plugin.route('/sources/<url>/')\ndef sources(url):\n    sources = get_sources(url)\n    items = [{\n        'label': source['name'],\n        'path': plugin.url_for('play', url=source['href']),\n        'thumbnail': source['thumb'],\n        'icon': source['thumb'],\n    } for source in sources]\n    sorted_items = sorted(items, key=lambda item: item['label'])\n    return sorted_items\n\n\n@plugin.route('/category/<url>/')\ndef category(url):\n    #dialog = xbmcgui.Dialog()\n    #ok = dialog.ok('错误提示', url)\n\n\n    videos = get_videos(url)\n    items = [{\n        'label': video['name'],\n        'path': video['href'],\n\t'thumbnail': video['thumb'],\n\t'icon': video['thumb'],\n        'is_playable': True,\n    } for video in videos]\n\n    sorted_items = items\n    #sorted_items = sorted(items, key=lambda item: item['label'])\n    return sorted_items\n\n\n@plugin.route('/')\ndef index():\n    categories = get_categories()\n    items = [{\n        'label': category['name'],\n        'path': plugin.url_for('category', url=category['link']),\n    } for category in categories]\n\n    \n    return items\n\n\n@plugin.route('/labels/<label>/')\ndef show_label(label):\n    # 写抓取视频类表的方法\n    #\n    items = [\n        {'label': label},\n    ]\n    return items\n\nif __name__ == '__main__':\n    plugin.run()\n"
  },
  {
    "path": "plugin.video.weibotv/addon.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>\n<addon id=\"plugin.video.weibotv\" name=\"微博视频\" version=\"0.1.1\" provider-name=\"zhengfan\">\n  <requires>\n    <import addon=\"xbmc.python\" version=\"2.1.0\"/>\n    <import addon=\"script.module.xbmcswift2\" version=\"2.4.0\"/>\n  <import addon=\"script.module.beautifulsoup4\" version=\"4.5.3\"/>\n  <import addon=\"script.module.requests\" version=\"2.19.1\"/>\n  <import addon=\"script.module.html5lib\" version=\"0.999.0\"/>\n  </requires>\n  <extension point=\"xbmc.python.pluginsource\" library=\"addon.py\">\n    <provides>video</provides>\n  </extension>\n  <extension point=\"xbmc.addon.metadata\">\n    <platform>all</platform>\n    <language></language>\n    <description>随时随地发现新鲜事！微博带你欣赏世界上每一个精彩瞬间，了解每一个幕后故事。</description>\n  </extension>\n</addon>\n"
  },
  {
    "path": "plugin.video.weibotv/readme.md",
    "content": "# 微博视频 for kodi 0.1.1\n## 简介\n- 随时随地发现新鲜事！微博带你欣赏世界上每一个精彩瞬间，了解每一个幕后故事\n## 主要功能\n> - [x] 视频分类\n> - [x] 在线播放视频\n> - [x] 使用官方api解析视频\n> - [ ] 搜索功能\n> - [ ] 缓存功能（减少向服务器请求次数）\n## 更新历史\n > -[v0.1.1]----------------------  \n > 修复 - 日榜，故事打不开 \n > -[v0.1.0]----------------------  \n > 发布 - 首个版本  "
  },
  {
    "path": "plugin.video.weibotv/resources/__init__.py",
    "content": ""
  },
  {
    "path": "plugin.video.weibotv/resources/language/English/strings.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?>\n<strings>\n  <!-- Plugin name -->\n  <string id=\"30000\">bilibili</string>\n</strings>\n"
  },
  {
    "path": "plugin.video.weibotv/resources/lib/__init__.py",
    "content": ""
  },
  {
    "path": "plugin.video.xigua[停止更新]/addon.py",
    "content": "#!/usr/bin/env python\n# -*- coding:utf-8 -*-\nimport re\nfrom xbmcswift2 import Plugin\nimport requests\nfrom bs4 import BeautifulSoup\nimport xbmcgui\nimport base64\nimport json\nimport urllib2\nimport sys\nimport HTMLParser\nimport re\nimport time\nt = time.time()\n\ndebug = xbmc.LOGFATAL\n\ndef get_real_url(url):\n    rs = requests.get(url,headers=headers,timeout=2)\n    return rs.url\n\ndef unescape(string):\n    string = urllib2.unquote(string).decode('utf8')\n    quoted = HTMLParser.HTMLParser().unescape(string).encode('utf-8')\n    #转成中文\n    return re.sub(r'%u([a-fA-F0-9]{4}|[a-fA-F0-9]{2})', lambda m: unichr(int(m.group(1), 16)), quoted)\n\n\nplugin = Plugin()\n\ncookie = plugin.get_storage('cookie',TTL=60)\ncookiebak = plugin.get_storage('cookiebak')\napicache = plugin.get_storage('apicache',TTL=60)\n\n#@plugin.cached(TTL=60*24)\ndef cook():\n    if 'wafid' in cookie:\n        q = 1\n\n        dialog = xbmcgui.Dialog()\n        dialog.notification('提示', '缓存中已有wafid,跳过获取wafid', xbmcgui.NOTIFICATION_INFO, 2000,False)\n    else:\n        #if 'wafid' in cookiebak:\n            #r = requests.get('http://www.ixigua.com',headers=headers,cookies=cookiebak)\n        #else:\n        r = requests.get('http://www.ixigua.com',headers=headers)\n        \n    \n        if r.cookies['wafid']:\n            cookie['wafid']=r.cookies['wafid']\n            cookiebak['wafid']=r.cookies['wafid']\n            dialog = xbmcgui.Dialog()\n            dialog.notification('提示', '成功获取wafid并存入缓存', xbmcgui.NOTIFICATION_INFO, 2000,False)\n        else:\n            cookie['wafid']=cookiebak['wafid']\n            dialog = xbmcgui.Dialog()\n            ok = dialog.ok('提示', '未成功获取wafid,已尝试导入备份wafid\\n\\n如无法正常使用，请在 i号 - 导入西瓜视频wafid 中手动导入')\n    #dialog = xbmcgui.Dialog()\n    #ok = dialog.ok('错误提示', str(cookie['wafid']))\n    cokie = {}\n    cokie['wafid'] = cookie['wafid']\n    return cokie\n\nheaders = {'user-agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.122 Safari/537.36'}\ncookies = cook()\n#cook = plugin.get_storage('cook')\n\ndef writewafid(keyword):\n    dialog = xbmcgui.Dialog()\n    ret = dialog.yesno('即将导入', keyword)\n    if ret:\n        cookie['wafid'] = keyword\n        cookiebak['wafid'] = keyword\n        dialog = xbmcgui.Dialog()\n        dialog.notification('提示', 'wafid已导入', xbmcgui.NOTIFICATION_INFO, 5000)\n\ndef testvideo():\n    dialog = xbmcgui.Dialog()\n    ret = dialog.contextmenu(['测试多P视频：纳米核心', '测试多P视频：干物妹小埋', '测试单P视频：秋名山电影'])\n    if ret == 0:\n        videos = get_duop('https://www.ixigua.com/cinema/album/7TiuG0Hp3iU','nocache')\n    else:\n        if ret == 1:\n            videos = get_duop('https://www.ixigua.com/cinema/album/85ygYnLCcF9','nocache')\n        else:\n            videos = get_duop('https://www.ixigua.com/cinema/album/7MzYdM5GZIN','nocache')\n    items = [{\n        'label': video['name'],\n        'path': plugin.url_for('play', name=video['name'].encode('utf-8') , url=video['href']),\n    } for video in videos]\n    return items\n\n@plugin.cached(TTL=10)\ndef get_mp4(url):\n    mp4list = {}\n    rec = requests.get(url,headers=headers,cookies=cookies)\n    url = rec.url\n    rec = requests.get(url,headers=headers,cookies=cookies)\n    rec.encoding = 'utf-8'\n    rectext = rec.text\n    #print(rectext)\n    str1 = rectext.find('id=\"SSR_HYDRATED_DATA\">window._SSR_HYDRATED_DATA')\n    str2 = rectext.find('<!-- script -->')\n    cutjson = rectext[str1+49:str2-9]\n    #print(cutjson)\n    #cutjson = cutjson.decode('utf-8')\n    j = json.loads(cutjson)\n    k = j['Projection']['video']\n    \n    if 'videoResource' in k:\n            #projection\n            for index in range(len(j['Projection']['video']['videoResource']['normal']['video_list'])):\n                qxd = j['Projection']['video']['videoResource']['normal']['video_list']\n                murl = j['Projection']['video']['videoResource']['normal']['video_list']['video_'+str(len(qxd)-index)]['main_url']\n                #burl = j['Projection']['video']['videoResource']['normal']['video_list']['video_'+str(len(qxd)-index)]['backup_url_1']\n                murl = str(base64.b64decode(murl))\n                #burl = str(base64.b64decode(burl))\n                mp4list[j['Projection']['video']['videoResource']['normal']['video_list']['video_'+str(len(qxd)-index)]['definition']] = murl\n    else:\n            #print('teleplay')\n            #print('官方解析 normal')\n            for index in range(len(j['Teleplay']['videoResource']['normal']['video_list'])):\n                qxd = j['Teleplay']['videoResource']['normal']['video_list']\n                murl = j['Teleplay']['videoResource']['normal']['video_list']['video_'+str(len(qxd)-index)]['main_url']\n                #burl = j['Teleplay']['videoResource']['normal']['video_list']['video_'+str(len(qxd)-index)]['backup_url_1']\n                murl = str(base64.b64decode(murl))\n                #burl = str(base64.b64decode(burl))\n                mp4list['norn api '+j['Teleplay']['videoResource']['normal']['video_list']['video_'+str(len(qxd)-index)]['definition']] = murl\n                #mp4list[burl] = burl\n            \n        #print('官方解析 dash')\n            #for index in range(len(j['Teleplay']['videoResource']['dash']['dynamic_video']['dynamic_video_list'])):\n                #qxd = j['Teleplay']['videoResource']['dash']['dynamic_video']['dynamic_video_list']\n                #print(len(qxd))\n                #murl = j['Teleplay']['videoResource']['dash']['dynamic_video']['dynamic_video_list'][len(qxd)-index-1]['main_url']\n                #burl = j['Teleplay']['videoResource']['dash']['dynamic_video']['dynamic_video_list'][len(qxd)-index-1]['backup_url_1']\n                #print()\n                #mp4list['dash api' + j['Teleplay']['videoResource']['dash']['dynamic_video']['dynamic_video_list'][len(qxd)-index-1]['definition']] = 'http://'+murl\n                #print('http://'+murl)\n                #print('http://'+burl)\n\n    return mp4list\n\n#@plugin.cached(TTL=1)\ndef get_duop(url,mode):\n    if (url in apicache) and mode == 'cache':\n        #dialog = xbmcgui.Dialog()\n        #ok = dialog.ok('错误提示', '跳过')\n        videos = apicache[url]\n        q = '快进到魏文帝'\n    else:\n        videos = []\n        rec = requests.get(url,headers=headers,cookies=cookies)\n        rectext = rec.text\n        #print(rectext)\n        str1 = rectext.find('id=\"SSR_HYDRATED_DATA\">window._SSR_HYDRATED_DATA')\n        str2 = rectext.find('<!-- script -->')\n        cutjson = rectext[str1+49:str2-9]\n        #print(cutjson)\n        try:\n            j = json.loads(cutjson)\n        except ValueError:\n            dialog = xbmcgui.Dialog()\n            ok = dialog.ok('错误提示', 'wafid失效')\n    \n        try:\n            for index in range(len(j['Teleplay']['playlist'])):\n                videoitem = {}\n                videoitem['name'] = '['+ str(index+1) + ']' + j['Teleplay']['playlist'][index]['title']\n                videoitem['href'] = 'http://www.ixigua.com/i'+str(j['Teleplay']['playlist'][index]['episodeId'])\n                videos.append(videoitem)  \n        except TypeError:\n            dialog = xbmcgui.Dialog()\n            ok = dialog.ok('错误提示', 'wafid失效')\n    if videos and mode == 'cache':\n        apicache[url] = videos\n    return videos\n\n#@plugin.cached(TTL=1)\ndef get_videos(cag):\n    if cag in apicache:\n        #dialog = xbmcgui.Dialog()\n        #ok = dialog.ok('错误提示', '跳过')\n        videos = apicache[cag]\n        q = '快进到魏文帝'\n    else:\n\n        errornum = 0\n        url = 'https://www.ixigua.com/cinema/filter/'+cag+'/'\n        api11 = '[api1]'\n        api11 = api11.decode('utf-8')\n        api22 = '[api2]'\n        api22 = api22.decode('utf-8')\n        videos = []\n        rec = requests.get(url,headers=headers,cookies=cookies)\n\n        rectext = rec.text\n        str1 = rectext.find('id=\"SSR_HYDRATED_DATA\">window._SSR_HYDRATED_DATA')\n        str2 = rectext.find('<!-- script -->')\n        cutjson = rectext[str1+49:str2-9]\n        #print(cutjson)\n        #cutjson = cutjson.encode('utf-8')\n        try:\n            j = json.loads(cutjson)\n            videolist = j['AlbumInCategory'][0]['albumList']\n            xbmc.log(str(len(videolist)),debug)\n            for index in range(len(videolist)):\n                jishu = ''\n                ji = '集'\n                quan = '全'\n                gxz = '更新至'\n                ji = ji.decode('utf-8')\n                quan = quan.decode('utf-8')\n                gxz = gxz.decode('utf-8')\n                if videolist[index]['latestSeq'] != 1:\n                    if videolist[index]['latestSeq'] == videolist[index]['totalEpisodes']:\n                        jishu = '[' + str(videolist[index]['latestSeq'])+ji+quan+ ']'\n                    else:\n                        jishu = '['+gxz + str(videolist[index]['latestSeq'])+ji+ ']'\n                videoitem = {}\n                videoitem['name'] = api11+videolist[index]['title'] +  jishu \n                videoitem['href'] = videolist[index]['shareUrl']\n                videoitem['thumb'] = videolist[index]['coverList'][0]['url']\n                videos.append(videoitem)\n        except TypeError:\n            errornum += 1 \n        except ValueError:\n            errornum += 1 \n    #api2\n        url = 'https://www.ixigua.com/channel/'+cag + '/'\n        rec = requests.get(url,headers=headers,cookies=cookies)\n\n        rectext = rec.text\n        str1 = rectext.find('<script id=\"SSR_HYDRATED_DATA\">window._SSR_HYDRATED_DATA=')\n        str2 = rectext.find('<!-- script -->')\n        cutjson = rectext[str1+57:str2-9]\n        #print(cutjson)\n        #xbmc.log('api2'+cutjson,debug)\n        try:\n            j = json.loads(cutjson)\n            for index in range(len(j['Channel'][cag]['operationData']['list'])):\n                videoitem = {}\n                videoitem['name'] = api22+j['Channel'][cag]['operationData']['list'][index]['title']\n                videoitem['href'] = j['Channel'][cag]['operationData']['list'][index]['shareUrl']\n                videoitem['thumb'] = j['Channel'][cag]['operationData']['list'][index]['coverList'][0]['url']\n                videos.append(videoitem)  \n        except TypeError:\n            errornum += 1 \n        except ValueError:\n            errornum += 1 \n        if errornum == 2:\n            dialog = xbmcgui.Dialog()\n            ok = dialog.ok('错误提示', 'wafid失效')\n    if videos:\n        apicache[cag] = videos\n    return videos\n\n\n\ndef get_categories():\n    return [{'name':'电视剧','link':'dianshiju'},\n            {'name':'电影','link':'dianying'},\n            {'name':'综艺','link':'zongyi'},\n            {'name':'少儿','link':'shaoer'},\n            {'name':'动漫','link':'dongman'},\n            {'name':'纪录片','link':'jilupian'}]\n\n\n@plugin.route('/duop/<url>/')\ndef duop(url):\n    videos = get_duop(url,'cache')\n    items = [{\n        'label': video['name'],\n        'path': plugin.url_for('play', name=video['name'].encode('utf-8') , url=video['href']),\n    } for video in videos]\n\n    return items\n\n@plugin.route('/play/<name>/<url>/')\ndef play(name,url):\n    mp4list = get_mp4(url)\n    items = []\n    for k,i in mp4list.items():\n\n        item = {'label':'[' + k.encode('utf-8') + ']' + name,'path':i.encode('utf-8'),'is_playable': True,'info':('video')}\n        #item.setInfo('video',{})\n        items.append(item)\n    return items\n\n@plugin.route('/category/<name>/<url>/')\ndef category(name,url):\n    #dialog = xbmcgui.Dialog()\n    #ok = dialog.ok('错误提示', url)\n\n    videos = get_videos(url)\n    items = [{\n        'label': video['name'],\n        'path': plugin.url_for('duop', url=video['href']),\n\t'thumbnail': video['thumb'],\n        'icon': video['thumb'],\n    } for video in videos]\n\n    return items\n\n\n\n\n@plugin.route('/')\ndef index():\n    categories = get_categories()\n    items = [{\n        'label': category['name'],\n        'path': plugin.url_for('category', name=category['name'] , url=category['link']),\n    } for category in categories]\n    items.append({\n        'label': u'[COLOR yellow]i号[/COLOR]',\n        'path': plugin.url_for('ilist'),\n    })\n    \n    return items\n\n@plugin.route('/ilist')\ndef ilist():\n    items = []\n    items.append({\n        'label': u'输入i号或者album号播放西瓜视频',\n        'path': plugin.url_for('album'),\n    })\n    items.append({\n        'label': u'输入完整链接播放西瓜视频',\n        'path': plugin.url_for('link'),\n    })\n    items.append({\n        'label': u'从网络剪贴板(ykjtb.com)导入西瓜视频链接',\n        'path': plugin.url_for('ykjtb',mode='url'),\n    })\n    items.append({\n        'label': u'从网络剪贴板(netcut.cn)导入西瓜视频链接',\n        'path': plugin.url_for('netcut',mode='url'),\n    })\n    items.append({\n        'label': u'导入西瓜视频wafid',\n        'path': plugin.url_for('wafid'),\n    })\n    items.append({\n        'label': u'从网络剪贴板(ykjtb.com)导入西瓜视频wafid',\n        'path': plugin.url_for('ykjtb',mode='wafid'),\n    })\n    items.append({\n        'label': u'从网络剪贴板(netcut.cn)导入西瓜视频wafid',\n        'path': plugin.url_for('netcut',mode='wafid'),\n    })\n    return items\n\n@plugin.route('/labels/<label>/')\ndef show_label(label):\n    # 写抓取视频类表的方法\n    #\n    items = [\n        {'label': label},\n    ]\n    return items\n\n\n\n\n\n@plugin.route('/link')\ndef link():\n    keyboard = xbmc.Keyboard('', '请输入西瓜视频链接（ixigua.com）：')\n    xbmc.sleep(1500)\n    keyboard.doModal()\n    if (keyboard.isConfirmed()):\n        keyword = keyboard.getText()\n        if re.search(r'ixigua.com/cinema/album/[a-zA-Z0-9]+',keyword) or re.search(r'ixigua.com/i[0-9]+',keyword):\n            items = []\n            if re.search(r'ixigua.com/cinema/album/[a-zA-Z0-9]+',keyword):\n                parse = 'https://www.' + re.search(r'ixigua.com/cinema/album/[a-zA-Z0-9]+',keyword).group()\n                dialog = xbmcgui.Dialog()\n                ok = dialog.ok('提示', '解析成功:album号视频\\n解析地址：'+parse.encode('utf-8'))\n                items.append({\n                    'label': parse,\n                    'path': plugin.url_for('duop',url=parse),\n                })\n            else:\n                parse = 'https://www.' + re.search(r'ixigua.com/i[0-9]+',keyword).group()\n                dialog = xbmcgui.Dialog()\n                ok = dialog.ok('提示', '解析成功:i号视频\\n解析地址：'+parse.encode('utf-8'))\n                items.append({\n                    'label': parse,\n                    'path': plugin.url_for('play',name=parse,url=parse),\n                })\n        else:\n            dialog = xbmcgui.Dialog()\n            ok = dialog.ok('提示', '错误:不受支持的西瓜视频链接\\n\\n支持的链接：\\n https://www.ixigua.com/cinema/album/842PbwV4gJU \\n https://www.ixigua.com/i6792449977898500611')\n    return items\n\n\n@plugin.route('/album')\ndef album():\n    keyboard = xbmc.Keyboard('', '请输入i号（纯数字）或者album号（字母数字混合）：')\n    xbmc.sleep(1500)\n    keyboard.doModal()\n    if (keyboard.isConfirmed()):\n        keyword = keyboard.getText()\n        #url = HOST_URL + '/index.php?m=vod-search&wd=' + keyword\n        # https://www.nfmovies.com/search.php?page=1&searchword='+keyword+'&searchtype=\n        if str(keyword).isdigit():\n            #纯数字\n            videos = get_mp4('https://www.ixigua.com/i'+str(keyword))\n            items = []\n            for k,i in videos.items():\n\n                item = {'label':'[' + k.encode('utf-8') + ']','path':i.encode('utf-8'),'is_playable': True,'info':('video')}\n                items.append(item)\n        else:\n            #字母混合\n            videos = get_duop('https://www.ixigua.com/cinema/album/'+str(keyword),'cache')\n            items = [{\n                'label': video['name'],\n                'path': plugin.url_for('play', name=video['name'].encode('utf-8') , url=video['href']),\n            } for video in videos]\n\n        return items\n\n@plugin.route('/wafid')\ndef wafid():\n    keyboard = xbmc.Keyboard('', '请输入西瓜视频cookie里wafid的值：')\n    xbmc.sleep(1500)\n    keyboard.doModal()\n    if (keyboard.isConfirmed()):\n        keyword = keyboard.getText()\n        #url = HOST_URL + '/index.php?m=vod-search&wd=' + keyword\n        # https://www.nfmovies.com/search.php?page=1&searchword='+keyword+'&searchtype=\n        items = [] \n        writewafid(keyword)\n        dialog = xbmcgui.Dialog()\n        ret = dialog.yesno('提示', '是否测试解析视频？')\n        if ret:\n            items = testvideo()\n        \n        return items\n\n@plugin.route('/ykjtb/<mode>/')\ndef ykjtb(mode):\n    if mode == 'url':\n        imputinfo = '请输入取件码(4位数)提取链接：'\n    else:\n        imputinfo = '请输入取件码(4位数)提取wafid：'\n    keyboard = xbmc.Keyboard('', imputinfo)\n    xbmc.sleep(1500)\n    keyboard.doModal()\n    if (keyboard.isConfirmed()):\n        yanzhenma = keyboard.getText()\n        apiurl = 'https://ykjtb.com/v?g='\n        rec = requests.get(apiurl + yanzhenma,headers=headers)\n        #print(rec.text)\n        soup = BeautifulSoup(rec.text, \"html5lib\")\n        if soup.find('div',id='ycontent',class_='row viewcontent'):\n            cut = soup.find('div',id='ycontent',class_='row viewcontent')\n            cut = cut.text\n            items = []\n            if mode == 'url': \n                if re.search(r'ixigua.com/cinema/album/[a-zA-Z0-9]+',cut) or re.search(r'ixigua.com/i[0-9]+',cut):\n\n                    if re.search(r'ixigua.com/cinema/album/[a-zA-Z0-9]+',cut):\n                        parse = 'https://www.' + re.search(r'ixigua.com/cinema/album/[a-zA-Z0-9]+',cut).group()\n                        dialog = xbmcgui.Dialog()\n                        ok = dialog.ok('提示', '解析成功:album号视频\\n解析地址：'+parse.encode('utf-8'))\n                        items.append({\n                            'label': parse,\n                            'path': plugin.url_for('duop',url=parse),\n                        })\n                    else:\n                        parse = 'https://www.' + re.search(r'ixigua.com/i[0-9]+',cut).group()\n                        dialog = xbmcgui.Dialog()\n                        ok = dialog.ok('提示', '解析成功:i号视频\\n解析地址：'+parse.encode('utf-8'))\n                        items.append({\n                            'label': parse,\n                            'path': plugin.url_for('play',name=parse,url=parse),\n                        })\n                else:\n                    dialog = xbmcgui.Dialog()\n                    ok = dialog.ok('提示', '错误:不受支持的西瓜视频链接\\n\\n支持的链接：\\n https://www.ixigua.com/cinema/album/842PbwV4gJU \\n https://www.ixigua.com/i6792449977898500611')\n            else:\n                try:\n                    parse = re.search(r'[A-Za-z0-9\\-]+',cut).group()\n                    writewafid(parse)\n                    dialog = xbmcgui.Dialog()\n                    ret = dialog.yesno('提示', '是否测试解析视频？')\n                    if ret:\n                        items = testvideo()\n                except TypeError:\n                    dialog = xbmcgui.Dialog()\n                    ok = dialog.ok('提示', '123')\n        else:\n            dialog = xbmcgui.Dialog()\n            ok = dialog.ok('提示', '取件码错误')\n        return items\n\n@plugin.route('/netcut/<mode>/')\ndef netcut(mode):\n    if mode == 'url':\n        imputinfo = '请输入剪切板名称(请勿设置密码)提取链接：'\n    else:\n        imputinfo = '请输入剪切板名称(请勿设置密码)提取wafid：'\n    keyboard = xbmc.Keyboard('', imputinfo)\n    xbmc.sleep(1500)\n    keyboard.doModal()\n    if (keyboard.isConfirmed()):\n        yanzhenma = keyboard.getText()\n        apiurl = 'https://netcut.cn/'\n        rec = requests.get(apiurl + yanzhenma,headers=headers)\n        #print(rec.text)\n        soup = BeautifulSoup(rec.text, \"html5lib\")\n        jiami = soup.find('div',class_='tip-text')\n        body = soup.find('body')\n        dataid = body['data-id']\n        #判断是否加密\n        #dialog = xbmcgui.Dialog()\n        #ok = dialog.ok('提示', jiami.text)\n        try:\n            if jiami.text:\n                dialog = xbmcgui.Dialog()\n                ok = dialog.ok('提示', '错误：都说了不要设置密码，你还偏设置密码，你让我导入个锤子？')\n\n        except AttributeError:\n            print('莫得加密')\n            rec = requests.get('https://netcut.cn/api/note/data/?note_id='+dataid+'&_='+str(t),headers=headers,cookies=rec.cookies)\n            j = json.loads(rec.text)\n            if j['status'] == 0:\n                dialog = xbmcgui.Dialog()\n                ok = dialog.ok('提示', '错误：剪切板内容为空，请检查输入是否正确')\n            else:\n                #jixu\n                text = j['data']['note_content']\n                items = []\n                if mode =='url':\n                    if re.search(r'ixigua.com/cinema/album/[a-zA-Z0-9]+',text) or re.search(r'ixigua.com/i[0-9]+',text):\n\n                        if re.search(r'ixigua.com/cinema/album/[a-zA-Z0-9]+',text):\n                            parse = 'https://www.' + re.search(r'ixigua.com/cinema/album/[a-zA-Z0-9]+',text).group()\n                            dialog = xbmcgui.Dialog()\n                            ok = dialog.ok('提示', '解析成功:album号视频\\n解析地址：'+parse.encode('utf-8'))\n                            items.append({\n                                'label': parse,\n                                'path': plugin.url_for('duop',url=parse),\n                            })\n                        else:\n                            parse = 'https://www.' + re.search(r'ixigua.com/i[0-9]+',text).group()\n                            dialog = xbmcgui.Dialog()\n                            ok = dialog.ok('提示', '解析成功:i号视频\\n解析地址：'+parse.encode('utf-8'))\n                            items.append({\n                                'label': parse,\n                                'path': plugin.url_for('play',name=parse,url=parse),\n                            })\n                    else:\n                        dialog = xbmcgui.Dialog()\n                        ok = dialog.ok('提示', '错误:不受支持的西瓜视频链接\\n\\n支持的链接：\\n https://www.ixigua.com/cinema/album/842PbwV4gJU \\n https://www.ixigua.com/i6792449977898500611')\n                else:\n                    try:\n                        parse = re.search(r'[A-Za-z0-9\\-]+',text).group()\n                        writewafid(parse)\n                        dialog = xbmcgui.Dialog()\n                        ret = dialog.yesno('提示', '是否测试解析视频？')\n                        if ret:\n                            items = testvideo()\n                    except TypeError:\n                        print('766')\n            \n    return items\n\nif __name__ == '__main__':\n    plugin.run()"
  },
  {
    "path": "plugin.video.xigua[停止更新]/addon.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>\n<addon id=\"plugin.video.xigua\" name=\"西瓜视频\" version=\"0.2.0\" provider-name=\"zhengfan\">\n  <requires>\n    <import addon=\"xbmc.python\" version=\"2.1.0\"/>\n    <import addon=\"script.module.xbmcswift2\" version=\"2.4.0\"/>\n  <import addon=\"script.module.beautifulsoup4\" version=\"4.5.3\"/>\n  <import addon=\"script.module.requests\" version=\"2.19.1\"/>\n  <import addon=\"script.module.html5lib\" version=\"0.999.0\"/>\n  </requires>\n  <extension point=\"xbmc.python.pluginsource\" library=\"addon.py\">\n    <provides>video</provides>\n  </extension>\n  <extension point=\"xbmc.addon.metadata\">\n    <platform>all</platform>\n    <language></language>\n    <description>西瓜视频是字节跳动旗下视频平台，通过个性化推荐为您提供新鲜、好看的视频内容，并帮助视频创作人们轻松地向全世界分享自己的视频作品，更有原创综艺节目等你来看</description>\n    <assets>\n      <icon>icon.png</icon>\n      <fanart>fanart.png</fanart> \n    </assets>\n    <news>首个版本</news>\n  </extension>\n</addon>\n"
  },
  {
    "path": "plugin.video.xigua[停止更新]/readme.md",
    "content": "# 西瓜视频 for kodi 0.1.0\n## 简介\n- 西瓜视频是字节跳动旗下视频平台，通过个性化推荐为您提供新鲜、好看的视频内容，并帮助视频创作人们轻松地向全世界分享自己的视频作品，更有原创综艺节目等你来看\n## 主要功能\n> - [x] 视频分类\n> - [x] 在线播放视频，支持选择分辨率，最高720p\n> - [x] 使用官方api解析视频\n> - [ ] 搜索功能\n> - [x] 缓存功能（减少向服务器请求次数）\n> - [x] 从网络粘贴板导入西瓜视频链接进行解析\n> - [x] 输入西瓜视频i号（纯数字）或者album号（字母数字混合）解析视频\n## 更新历史\n > -[v0.1.0]----------------------  \n > 发布 - 首个版本  "
  },
  {
    "path": "plugin.video.xigua[停止更新]/resources/__init__.py",
    "content": ""
  },
  {
    "path": "plugin.video.xigua[停止更新]/resources/language/English/strings.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?>\n<strings>\n  <!-- Plugin name -->\n  <string id=\"30000\">bilibili</string>\n</strings>\n"
  },
  {
    "path": "plugin.video.xigua[停止更新]/resources/lib/__init__.py",
    "content": ""
  },
  {
    "path": "plugin.video.xinpianchang/addon.py",
    "content": "#!/usr/bin/env python\n# -*- coding:utf-8 -*-\nimport re\nfrom xbmcswift2 import Plugin,xbmcgui,xbmcplugin\nimport requests\nfrom bs4 import BeautifulSoup\nimport base64\nimport json\nimport urllib2\nimport sys\nimport HTMLParser\nimport re\n\nplugin = Plugin()\nheaders = {\n    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.72 Safari/537.36'}\n\n\n@plugin.cached(TTL=10)\ndef get_html_10min(url, head=''):\n    if head == '':\n        r = requests.get(url, headers=headers)\n    else:\n        r = requests.get(url, headers=eval(head))\n    r.encoding = 'utf-8'\n    r = r.text\n    return r\n\n\n@plugin.cached(TTL=1)\ndef get_html_1min(url, head=''):\n    if head == '':\n        r = requests.get(url, headers=headers)\n    else:\n        r = requests.get(url, headers=eval(head))\n    r.encoding = 'utf-8'\n    r = r.text\n    return r\n\n\ndef unescape(string):\n    string = urllib2.unquote(string).decode('utf8')\n    quoted = HTMLParser.HTMLParser().unescape(string).encode('utf-8')\n    # 转成中文\n    return re.sub(r'%u([a-fA-F0-9]{4}|[a-fA-F0-9]{2})', lambda m: unichr(int(m.group(1), 16)), quoted)\n\n\ndef get_categories():\n    return [{'name': '热门', 'link': 'https://www.xinpianchang.com/channel/index/type-/sort-like/duration_type-0/resolution_type-/'},\n            {'name': '广告', 'link': 'https://www.xinpianchang.com/channel/index/id-1/sort-pick/type-/duration_type-0/resolution_type-/'},\n            {'name': '剧情短片', 'link': 'https://www.xinpianchang.com/channel/index/id-31/sort-pick/duration_type-0/resolution_type-/type-'},\n            {'name': '宣传片', 'link': 'https://www.xinpianchang.com/channel/index/id-16/sort-pick/duration_type-0/resolution_type-/type-/'},\n            {'name': '创意', 'link': 'https://www.xinpianchang.com/channel/index/id-76/sort-pick/duration_type-0/resolution_type-/type-'},\n            {'name': '特殊摄影', 'link': 'https://www.xinpianchang.com/channel/index/id-61/sort-pick/duration_type-0/resolution_type-/type-'},\n            {'name': '旅拍', 'link': 'https://www.xinpianchang.com/channel/index/id-141/sort-pick/duration_type-0/resolution_type-/type-'},\n            {'name': '影视', 'link': 'https://www.xinpianchang.com/channel/index/id-81/sort-pick/duration_type-0/resolution_type-/type-'},\n            {'name': '混剪', 'link': 'https://www.xinpianchang.com/channel/index/id-142/sort-pick/duration_type-0/resolution_type-/type-'},\n            {'name': '器材', 'link': 'https://www.xinpianchang.com/channel/index/id-143/sort-pick/duration_type-0/resolution_type-/type-'},\n            {'name': '干货教程', 'link': 'https://www.xinpianchang.com/channel/index/id-144/sort-pick/duration_type-0/resolution_type-/type-'},\n            {'name': 'Vlog', 'link': 'https://www.xinpianchang.com/channel/index/id-129/sort-pick/duration_type-0/resolution_type-/type-'},\n            {'name': '古风', 'link': 'https://www.xinpianchang.com/channel/index/id-145/sort-pick/duration_type-0/resolution_type-/type-'},\n            {'name': '短视频', 'link': 'https://www.xinpianchang.com/channel/index/id-29/sort-pick/duration_type-0/resolution_type-/type-'},\n            {'name': '纪录', 'link': 'https://www.xinpianchang.com/channel/index/id-49/sort-pick/duration_type-0/resolution_type-/type-'},\n            {'name': '动画', 'link': 'https://www.xinpianchang.com/channel/index/id-69/sort-pick/duration_type-0/resolution_type-/type-'},\n            {'name': '音乐', 'link': 'https://www.xinpianchang.com/channel/index/id-27/sort-pick/duration_type-0/resolution_type-/type-'},\n            {'name': '极限', 'link': 'https://www.xinpianchang.com/channel/index/id-146/sort-pick/duration_type-0/resolution_type-/type-'}]\n\n\ndef get_mp4(url):\n    #url = 'https://www.xinpianchang.com/a10696100'\n    r = get_html_10min(url)\n    soup = BeautifulSoup(r, 'html.parser')\n    # 创作者\n    user = soup.find('ul',class_=\"creator-list\").find_all('li')\n    users = []\n    for i in range(len(user)):\n        users.append({\"name\":user[i].find('span',class_=\"name\").text.encode(\"utf-8\"),\"role\":user[i].find('span',class_=\"roles\").text.encode(\"utf-8\"),\"thumbnail\":user[i].find('img')[\"_src\"].encode(\"utf-8\")})\n    # mp4\n    vid = re.search(\"(?<=vid = \\\").*?(?=\\\")\", r).group()\n    modeServerAppKey = re.search(\n        \"(?<=modeServerAppKey = \\\").*?(?=\\\")\", r).group()\n    api = 'https://mod-api.xinpianchang.com/mod/api/v2/media/' + vid + \\\n        '?appKey=' + modeServerAppKey + '&extend=userInfo,userStatus'\n    r = get_html_10min(api)\n    j = json.loads(r)\n    mp4list = {}\n    for index in range(len(j['data']['resource']['progressive'])):\n        mp4list[j['data']['resource']['progressive'][index]['profile']\n                ] = 'http' + j['data']['resource']['progressive'][index]['url'][5:]\n    # 简介\n    desc = soup.find('i',class_=\"play-counts\").text.encode('utf-8') + \" 播放 · \" + soup.find('span',class_=\"like-counts\").text.encode('utf-8') + \" 赞 · \" + soup.find('span',class_=\"collect-counts\").text.encode('utf-8') +\" 收藏\\n\"\n    desc += soup.find('span',class_='update-time').text.encode('utf-8') +\"\\n\"\n    desc += \"[COLOR red]\" + soup.find('span',class_='authorize-con').text.encode('utf-8') + \"[/COLOR]\\n\\n\"\n    desc += j['data']['description'].encode('utf-8')\n    return {\"mp4\":mp4list,\"user\":users,\"genre\":j['data']['categories'],\"tag\":j['data']['keywords'],'desc':desc,'img':j['data']['cover']}\n\n\n# 爬视频列表的\ndef get_videos(url, page):\n    videos = []\n    if(int(page) != 1):\n        url += \"/page-\" + str(page)\n    r = get_html_1min(url)\n    soup = BeautifulSoup(r, 'html.parser')\n    filmitem = soup.find_all('li', class_='enter-filmplay')\n\n    for index in range(len(filmitem)):\n        img = filmitem[index].find('img', class_='lazy-img')\n        title = filmitem[index].find(\n            'p', class_='fs_14 fw_600 c_b_3 line-hide-1')\n\n        videoinfo = filmitem[index].find('span', class_='fw_300 icon-play-volume').text.encode(\n            \"utf-8\") + \"播放 · \" + filmitem[index].find('span', class_='fw_300 c_b_9 icon-like').text.encode(\"utf-8\") + \"赞\"\n        userlist = filmitem[index].find('ul', class_=\"authors-list\")\n        videousers = []\n        if userlist:\n            # 多创作者\n            userlists = userlist.find_all('li')\n            for i in range(len(userlists)):\n                videousers.append((userlists[i].a.div.p.text.encode(\"utf-8\"), userlists[i].a.div.div.text.encode(\"utf-8\")))\n        user = filmitem[index].find('a', class_=\"user-link v-center enter-creator-space\")\n        if user:\n            # 单个创作者\n            userdesc = user.find('span', class_=\"role\")\n            if userdesc:\n                videousers.append((user.find('span', class_=\"name\").text.encode(\"utf-8\"),userdesc.text.encode(\"utf-8\")))\n            else:\n                videousers.append((user.find('span', class_=\"name\").text.strip().encode(\"utf-8\"),u'作者'))\n        plot = filmitem[index].find('div', class_='fs_12 fw_300 c_w_f desc line-hide-3').text.encode(\"utf-8\")\n        videoitem = {}\n        videoitem['name'] = title.text\n        videoitem['href'] = 'https://www.xinpianchang.com/a' + \\\n            filmitem[index]['data-articleid']\n        videoitem['thumb'] = img['_src']\n        videoitem['info'] = {\"plot\": videoinfo + \"\\n\\n\" + plot, \"castandrole\": videousers,\"mediatype\":\"video\"}\n        videos.append(videoitem)\n    return videos\n\n\n@plugin.route('/play/<name>/<url>/')\ndef play(name, url):\n    mp4list = get_mp4(url)\n    items = []\n    # 创作者\n    for k, i in mp4list[\"mp4\"].items():\n        item = {'label': '[' + k.encode('utf-8') + '] - ' + name,\n                'path': i.encode('utf-8'),\n                 'is_playable': True,\n                 'thumbnail':mp4list[\"img\"],\n                 'icon':mp4list[\"img\"],\n                 \"info\":{\"plot\":mp4list[\"desc\"],\"tag\":mp4list[\"tag\"],\"genre\":mp4list[\"genre\"],\"mediatype\":\"video\"}}\n        items.append(item)\n    return items\n\n\n@plugin.route('/category/<url>/<page>/')\ndef category(url, page):\n    videos = get_videos(url, page)\n\n    items = [{\n        'label': video['name'],\n        'path': plugin.url_for('play', name=video['name'].encode('utf-8'), url=video['href']),\n        'thumbnail': video['thumb'],\n        'icon': video['thumb'],\n        'info':video['info'],\n    } for video in videos]\n    nextpage = {'label': '[COLOR yellow]下一页[/COLOR]',\n                'path': plugin.url_for('category', url=url, page=str(int(page)+1))}\n    items.append(nextpage)\n    return items\n\n\n@plugin.route('/')\ndef index():\n    categories = get_categories()\n    items = [{\n        'label': category['name'],\n        'path': plugin.url_for('category', url=category['link'], page=1),\n    } for category in categories]\n\n    return items\n\n\n@plugin.route('/labels/<label>/')\ndef show_label(label):\n    # 写抓取视频类表的方法\n    #\n    items = [\n        {'label': label},\n    ]\n    return items\n\n\nif __name__ == '__main__':\n    plugin.run()\n"
  },
  {
    "path": "plugin.video.xinpianchang/addon.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>\n<addon id=\"plugin.video.xinpianchang\" name=\"新片场\" version=\"0.1.1\" provider-name=\"zhengfan\">\n  <requires>\n    <import addon=\"xbmc.python\" version=\"2.1.0\"/>\n    <import addon=\"script.module.xbmcswift2\" version=\"2.4.0\"/>\n  <import addon=\"script.module.beautifulsoup4\" version=\"4.5.3\"/>\n  <import addon=\"script.module.requests\" version=\"2.19.1\"/>\n  <import addon=\"script.module.html5lib\" version=\"0.999.0\"/>\n  </requires>\n  <extension point=\"xbmc.python.pluginsource\" library=\"addon.py\">\n    <provides>video</provides>\n  </extension>\n  <extension point=\"xbmc.addon.metadata\">\n    <platform>all</platform>\n    <language></language>\n    <description>新片场汇聚全球原创优质视频及创作人，提供4K、无广告、无水印视频观看，专业的视频艺术学习教程，正版视觉素材交易等，与数百万创作人一起用作品打动世界</description>\n    <assets>\n      <icon>icon.png</icon>\n      <fanart>fanart.png</fanart> \n    </assets>\n    <news>首个版本</news>\n  </extension>\n</addon>\n"
  },
  {
    "path": "plugin.video.xinpianchang/readme.md",
    "content": "# 新片场 for kodi 0.1.0\n## 简介\n- 新片场汇聚全球原创优质视频及创作人，提供4K、无广告、无水印视频观看，专业的视频艺术学习教程，正版视觉素材交易等，与数百万创作人一起用作品打动世界\n## 主要功能\n> - [x] 视频分类\n> - [x] 在线播放视频，支持选择分辨率，最高4k\n> - [x] 使用官方api解析视频\n> - [ ] 搜索功能\n> - [x] 缓存功能（减少向服务器请求次数）\n## 更新历史\n > -[v0.1.0]----------------------  \n > 发布 - 首个版本  "
  },
  {
    "path": "plugin.video.xinpianchang/resources/__init__.py",
    "content": ""
  },
  {
    "path": "plugin.video.xinpianchang/resources/language/English/strings.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?>\n<strings>\n  <!-- Plugin name -->\n  <string id=\"30000\">bilibili</string>\n</strings>\n"
  },
  {
    "path": "plugin.video.xinpianchang/resources/lib/__init__.py",
    "content": ""
  },
  {
    "path": "service.subtitles.acfun/addon.xml",
    "content": "﻿<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>\n<addon id=\"service.subtitles.acfun\"\n       name=\"Acfun 弹幕\"\n       version=\"0.1.1\"\n       provider-name=\"xodidox,zhengfan,shaolin-kongfu\">\n    <requires>\n        <import addon=\"xbmc.python\" version=\"2.1.0\"/>\n        <import addon=\"script.module.requests\" version=\"1.1.0\"/>\n        <import addon=\"script.module.beautifulsoup4\" version=\"4.3.2\"/>\n        <import addon=\"vfs.rar\" version=\"2.3.0\"/>\n    </requires>\n    <extension point=\"xbmc.subtitle.module\"\n               library=\"service.py\" />\n    <extension point=\"xbmc.addon.metadata\">\n        <summary lang=\"zh\">Acfun 弹幕插件</summary>\n        <description lang=\"zh\">从 Acfun 下载弹幕</description>\n        <assets>\n            <icon>icon.png</icon>\n            <clearlogo>logo.png</clearlogo>\n            <fanart>resources/media/fanart.jpg</fanart>\n            <screenshot>resources/media/screenshot_1.png</screenshot>\n            <screenshot>resources/media/screenshot_2.png</screenshot>\n            <screenshot>resources/media/screenshot_3.png</screenshot>\n        </assets>\n        <news></news>\n    </extension>\n</addon>\n"
  },
  {
    "path": "service.subtitles.acfun/readme.md",
    "content": "# Acfun 弹幕插件 for kodi 0.1.1\n## 简介\n- 获取并挂载acfun任意视频和番剧的弹幕，支持配合acfun插件显示弹幕，也可以用于本地nas上的番剧或者bangumi插件显示弹幕\n## 主要功能\n> - [x] 搜索视频/番剧弹幕  \n> - [x] 自动转换acfun json -> bilibili xml -> ass弹幕\n## 更新历史\n> -[v0.1.1]----------------------  \n > 修复 - 过长搜索关键词导致搜索失败  \n## 使用到的开源项目\n- https://github.com/taxigps/xbmc-addons-chinese\n- https://github.com/m13253/danmaku2ass\n- https://github.com/shaolin-kongfu/danmu\n"
  },
  {
    "path": "service.subtitles.acfun/resources/lib/__init__.py",
    "content": "# Dummy file to make this directory a package.\n"
  },
  {
    "path": "service.subtitles.acfun/resources/lib/xml2ass.py",
    "content": "#!/usr/bin/env python2\n# -*- coding: utf-8 -*-\n\n# The original author of this program, Danmaku2ASS, is StarBrilliant.\n# This file is released under General Public License version 3.\n# You should have received a copy of General Public License text alongside with\n# this program. If not, you can obtain it at http://gnu.org/copyleft/gpl.html .\n# This program comes with no warranty, the author will not be resopnsible for\n# any damage or problems caused by this program.\n\n# You can obtain a latest copy of Danmaku2ASS at:\n#   https://github.com/m13253/danmaku2ass\n# Please update to the latest version before complaining.\n\nfrom __future__ import unicode_literals\nfrom __future__ import with_statement\nfrom __future__ import division\nimport argparse\nimport calendar\nimport gettext\nimport io\nimport json\nimport logging\nimport math\nimport os\nimport random\nimport re\nimport sys\nimport time\nimport xml.dom.minidom\nfrom itertools import imap\nfrom io import open\n\n\nif not ((2, 7) <= sys.version_info < (3,)):\n    raise RuntimeError(u'this version of Danmaku2ASS only works on Python 2.7, please switch to the original version of Danmaku2ASS')\n\nbytes, str = str, unicode\n\ngettext.install(b'danmaku2ass', os.path.join(os.path.dirname(os.path.abspath(os.path.realpath(sys.argv[0] or b'locale'))), b'locale'))\n\n\ndef SeekZero(function):\n    def decorated_function(file_):\n        file_.seek(0)\n        try:\n            return function(file_)\n        finally:\n            file_.seek(0)\n    return decorated_function\n\n\ndef EOFAsNone(function):\n    def decorated_function(*args, **kwargs):\n        try:\n            return function(*args, **kwargs)\n        except EOFError:\n            return None\n    return decorated_function\n\n\n@SeekZero\n@EOFAsNone\ndef ProbeCommentFormat(f):\n    tmp = f.read(1)\n    if tmp == '[':\n        return 'Acfun'\n        # It is unwise to wrap a JSON object in an array!\n        # See this: http://haacked.com/archive/2008/11/20/anatomy-of-a-subtle-json-vulnerability.aspx/\n        # Do never follow what Acfun developers did!\n    elif tmp == '{':\n        tmp = f.read(14)\n        if tmp == '\"status_code\":':\n            return 'Tudou'\n        elif tmp == '\"root\":{\"total':\n            return 'sH5V'\n        elif tmp.strip().startswith('\"result'):\n            return 'Tudou2'\n    elif tmp == '<':\n        tmp = f.read(1)\n        if tmp == '?':\n            tmp = f.read(38)\n            if tmp == 'xml version=\"1.0\" encoding=\"UTF-8\"?><p':\n                return 'Niconico'\n            elif tmp == 'xml version=\"1.0\" encoding=\"UTF-8\"?><i':\n                return 'Bilibili'\n            elif tmp == 'xml version=\"1.0\" encoding=\"utf-8\"?><i':\n                return 'Bilibili'  # tucao.cc, with the same file format as Bilibili\n            elif tmp == 'xml version=\"1.0\" encoding=\"Utf-8\"?>\\n<':\n                return 'Bilibili'  # Komica, with the same file format as Bilibili\n            elif tmp == 'xml version=\"1.0\" encoding=\"UTF-8\"?>\\n<':\n                tmp = f.read(20)\n                if tmp == '!-- BoonSutazioData=':\n                    return 'Niconico'  # Niconico videos downloaded with NicoFox\n                else:\n                    return 'MioMio'\n        elif tmp == 'p':\n            return 'Niconico'  # Himawari Douga, with the same file format as Niconico Douga\n\n\n#\n# ReadComments**** protocol\n#\n# Input:\n#     f:         Input file\n#     fontsize:  Default font size\n#\n# Output:\n#     yield a tuple:\n#         (timeline, timestamp, no, comment, pos, color, size, height, width)\n#     timeline:  The position when the comment is replayed\n#     timestamp: The UNIX timestamp when the comment is submitted\n#     no:        A sequence of 1, 2, 3, ..., used for sorting\n#     comment:   The content of the comment\n#     pos:       0 for regular moving comment,\n#                1 for bottom centered comment,\n#                2 for top centered comment,\n#                3 for reversed moving comment\n#     color:     Font color represented in 0xRRGGBB,\n#                e.g. 0xffffff for white\n#     size:      Font size\n#     height:    The estimated height in pixels\n#                i.e. (comment.count('\\n')+1)*size\n#     width:     The estimated width in pixels\n#                i.e. CalculateLength(comment)*size\n#\n# After implementing ReadComments****, make sure to update ProbeCommentFormat\n# and CommentFormatMap.\n#\n\n\ndef ReadCommentsNiconico(f, fontsize):\n    NiconicoColorMap = {'red': 0xff0000, 'pink': 0xff8080, 'orange': 0xffcc00, 'yellow': 0xffff00, 'green': 0x00ff00, 'cyan': 0x00ffff, 'blue': 0x0000ff, 'purple': 0xc000ff, 'black': 0x000000, 'niconicowhite': 0xcccc99, 'white2': 0xcccc99, 'truered': 0xcc0033, 'red2': 0xcc0033, 'passionorange': 0xff6600, 'orange2': 0xff6600, 'madyellow': 0x999900, 'yellow2': 0x999900, 'elementalgreen': 0x00cc66, 'green2': 0x00cc66, 'marineblue': 0x33ffcc, 'blue2': 0x33ffcc, 'nobleviolet': 0x6633cc, 'purple2': 0x6633cc}\n    dom = xml.dom.minidom.parseString(f.read().encode('utf-8', 'replace'))\n    comment_element = dom.getElementsByTagName('chat')\n    for comment in comment_element:\n        try:\n            c = str(comment.childNodes[0].wholeText)\n            if c.startswith('/'):\n                continue  # ignore advanced comments\n            pos = 0\n            color = 0xffffff\n            size = fontsize\n            for mailstyle in str(comment.getAttribute('mail')).split():\n                if mailstyle == 'ue':\n                    pos = 1\n                elif mailstyle == 'shita':\n                    pos = 2\n                elif mailstyle == 'big':\n                    size = fontsize * 1.44\n                elif mailstyle == 'small':\n                    size = fontsize * 0.64\n                elif mailstyle in NiconicoColorMap:\n                    color = NiconicoColorMap[mailstyle]\n            yield (max(int(comment.getAttribute('vpos')), 0) * 0.01, int(comment.getAttribute('date')), int(comment.getAttribute('no')), c, pos, color, size, (c.count('\\n') + 1) * size, CalculateLength(c) * size)\n        except (AssertionError, AttributeError, IndexError, TypeError, ValueError):\n            logging.warning(_('Invalid comment: %s') % comment.toxml())\n            continue\n\n\ndef ReadCommentsAcfun(f, fontsize):\n    comment_element = json.load(f)\n    # after load acfun comment json file as python list, flatten the list\n    comment_element = [c for sublist in comment_element for c in sublist]\n    for i, comment in enumerate(comment_element):\n        try:\n            p = str(comment['c']).split(',')\n            assert len(p) >= 6\n            assert p[2] in ('1', '2', '4', '5', '7')\n            size = int(p[3]) * fontsize / 25.0\n            if p[2] != '7':\n                c = str(comment['m']).replace('\\\\r', '\\n').replace('\\r', '\\n')\n                yield (float(p[0]), int(p[5]), i, c, {'1': 0, '2': 0, '4': 2, '5': 1}[p[2]], int(p[1]), size, (c.count('\\n') + 1) * size, CalculateLength(c) * size)\n            else:\n                c = dict(json.loads(comment['m']))\n                yield (float(p[0]), int(p[5]), i, c, 'acfunpos', int(p[1]), size, 0, 0)\n        except (AssertionError, AttributeError, IndexError, TypeError, ValueError):\n            logging.warning(_('Invalid comment: %r') % comment)\n            continue\n\n\ndef ReadCommentsBilibili(f, fontsize):\n    dom = xml.dom.minidom.parseString(f.read().encode('utf-8', 'replace'))\n    comment_element = dom.getElementsByTagName('d')\n    for i, comment in enumerate(comment_element):\n        try:\n            p = str(comment.getAttribute('p')).split(',')\n            assert len(p) >= 5\n            assert p[1] in ('1', '4', '5', '6', '7', '8')\n            if p[1] in ('1', '4', '5', '6'):\n                c = str(comment.childNodes[0].wholeText).replace('/n', '\\n')\n                size = int(p[2]) * fontsize / 25.0\n                yield (float(p[0]), int(p[4]), i, c, {'1': 0, '4': 2, '5': 1, '6': 3}[p[1]], int(p[3]), size, (c.count('\\n') + 1) * size, CalculateLength(c) * size)\n            elif p[1] == '7':  # positioned comment\n                c = str(comment.childNodes[0].wholeText)\n                yield (float(p[0]), int(p[4]), i, c, 'bilipos', int(p[3]), int(p[2]), 0, 0)\n            elif p[1] == '8':\n                pass  # ignore scripted comment\n        except (AssertionError, AttributeError, IndexError, TypeError, ValueError):\n            logging.warning(_('Invalid comment: %s') % comment.toxml())\n            continue\n\n\ndef ReadCommentsTudou(f, fontsize):\n    comment_element = json.load(f)\n    for i, comment in enumerate(comment_element['comment_list']):\n        try:\n            assert comment['pos'] in (3, 4, 6)\n            c = str(comment['data'])\n            assert comment['size'] in (0, 1, 2)\n            size = {0: 0.64, 1: 1, 2: 1.44}[comment['size']] * fontsize\n            yield (int(comment['replay_time'] * 0.001), int(comment['commit_time']), i, c, {3: 0, 4: 2, 6: 1}[comment['pos']], int(comment['color']), size, (c.count('\\n') + 1) * size, CalculateLength(c) * size)\n        except (AssertionError, AttributeError, IndexError, TypeError, ValueError):\n            logging.warning(_('Invalid comment: %r') % comment)\n            continue\n\n\ndef ReadCommentsTudou2(f, fontsize):\n    comment_element = json.load(f)\n    for i, comment in enumerate(comment_element['result']):\n        try:\n            c = str(comment['content'])\n            prop = json.loads(str(comment['propertis']) or '{}')\n            size = int(prop.get('size', 1))\n            assert size in (0, 1, 2)\n            size = {0: 0.64, 1: 1, 2: 1.44}[size] * fontsize\n            pos = int(prop.get('pos', 3))\n            assert pos in (0, 3, 4, 6)\n            yield (\n                int(comment['playat'] * 0.001), int(comment['createtime'] * 0.001), i, c,\n                {0: 0, 3: 0, 4: 2, 6: 1}[pos],\n                int(prop.get('color', 0xffffff)), size, (c.count('\\n') + 1) * size, CalculateLength(c) * size)\n        except (AssertionError, AttributeError, IndexError, TypeError, ValueError):\n            logging.warning(_('Invalid comment: %r') % comment)\n            continue\n\n\ndef ReadCommentsMioMio(f, fontsize):\n    NiconicoColorMap = {'red': 0xff0000, 'pink': 0xff8080, 'orange': 0xffc000, 'yellow': 0xffff00, 'green': 0x00ff00, 'cyan': 0x00ffff, 'blue': 0x0000ff, 'purple': 0xc000ff, 'black': 0x000000}\n    dom = xml.dom.minidom.parseString(f.read().encode('utf-8', 'replace'))\n    comment_element = dom.getElementsByTagName('data')\n    for i, comment in enumerate(comment_element):\n        try:\n            message = comment.getElementsByTagName('message')[0]\n            c = str(message.childNodes[0].wholeText)\n            pos = 0\n            size = int(message.getAttribute('fontsize')) * fontsize / 25.0\n            yield (float(comment.getElementsByTagName('playTime')[0].childNodes[0].wholeText), int(calendar.timegm(time.strptime(comment.getElementsByTagName('times')[0].childNodes[0].wholeText, '%Y-%m-%d %H:%M:%S'))) - 28800, i, c, {'1': 0, '4': 2, '5': 1}[message.getAttribute('mode')], int(message.getAttribute('color')), size, (c.count('\\n') + 1) * size, CalculateLength(c) * size)\n        except (AssertionError, AttributeError, IndexError, TypeError, ValueError):\n            logging.warning(_('Invalid comment: %s') % comment.toxml())\n            continue\n\n\ndef ReadCommentsSH5V(f, fontsize):\n    comment_element = json.load(f)\n    for i, comment in enumerate(comment_element[\"root\"][\"bgs\"]):\n        try:\n            c_at = str(comment['at'])\n            c_type = str(comment['type'])\n            c_date = str(comment['timestamp'])\n            c_color = str(comment['color'])\n            c = str(comment['text'])\n            size = fontsize\n            if c_type != '7':\n                yield (float(c_at), int(c_date), i, c, {'0': 0, '1': 0, '4': 2, '5': 1}[c_type], int(c_color[1:], 16), size, (c.count('\\n') + 1) * size, CalculateLength(c) * size)\n            else:\n                c_x = float(comment['x'])\n                c_y = float(comment['y'])\n                size = int(comment['size'])\n                dur = int(comment['dur'])\n                data1 = float(comment['data1'])\n                data2 = float(comment['data2'])\n                data3 = int(comment['data3'])\n                data4 = int(comment['data4'])\n                yield (float(c_at), int(c_date), i, c, 'sH5Vpos', int(c_color[1:], 16), size, 0, 0, c_x, c_y, dur, data1, data2, data3, data4)\n        except (AssertionError, AttributeError, IndexError, TypeError, ValueError):\n            logging.warning(_('Invalid comment: %r') % comment)\n            continue\n\n\nCommentFormatMap = {None: None, 'Niconico': ReadCommentsNiconico, 'Acfun': ReadCommentsAcfun, 'Bilibili': ReadCommentsBilibili, 'Tudou': ReadCommentsTudou, 'Tudou2': ReadCommentsTudou2, 'MioMio': ReadCommentsMioMio, 'sH5V': ReadCommentsSH5V}\n\n\ndef WriteCommentBilibiliPositioned(f, c, width, height, styleid):\n    # BiliPlayerSize = (512, 384)  # Bilibili player version 2010\n    # BiliPlayerSize = (540, 384)  # Bilibili player version 2012\n    BiliPlayerSize = (672, 438)  # Bilibili player version 2014\n    ZoomFactor = GetZoomFactor(BiliPlayerSize, (width, height))\n\n    def GetPosition(InputPos, isHeight):\n        isHeight = int(isHeight)  # True -> 1\n        if isinstance(InputPos, int):\n            return ZoomFactor[0] * InputPos + ZoomFactor[isHeight + 1]\n        elif isinstance(InputPos, float):\n            if InputPos > 1:\n                return ZoomFactor[0] * InputPos + ZoomFactor[isHeight + 1]\n            else:\n                return BiliPlayerSize[isHeight] * ZoomFactor[0] * InputPos + ZoomFactor[isHeight + 1]\n        else:\n            try:\n                InputPos = int(InputPos)\n            except ValueError:\n                InputPos = float(InputPos)\n            return GetPosition(InputPos, isHeight)\n\n    try:\n        comment_args = safe_list(json.loads(c[3]))\n        text = ASSEscape(str(comment_args[4]).replace('/n', '\\n'))\n        from_x = comment_args.get(0, 0)\n        from_y = comment_args.get(1, 0)\n        to_x = comment_args.get(7, from_x)\n        to_y = comment_args.get(8, from_y)\n        from_x = GetPosition(from_x, False)\n        from_y = GetPosition(from_y, True)\n        to_x = GetPosition(to_x, False)\n        to_y = GetPosition(to_y, True)\n        alpha = safe_list(str(comment_args.get(2, '1')).split('-'))\n        from_alpha = float(alpha.get(0, 1))\n        to_alpha = float(alpha.get(1, from_alpha))\n        from_alpha = 255 - round(from_alpha * 255)\n        to_alpha = 255 - round(to_alpha * 255)\n        rotate_z = int(comment_args.get(5, 0))\n        rotate_y = int(comment_args.get(6, 0))\n        lifetime = float(comment_args.get(3, 4500))\n        duration = int(comment_args.get(9, lifetime * 1000))\n        delay = int(comment_args.get(10, 0))\n        fontface = comment_args.get(12)\n        isborder = comment_args.get(11, 'true')\n        from_rotarg = ConvertFlashRotation(rotate_y, rotate_z, from_x, from_y, width, height)\n        to_rotarg = ConvertFlashRotation(rotate_y, rotate_z, to_x, to_y, width, height)\n        styles = ['\\\\org(%d, %d)' % (width / 2, height / 2)]\n        if from_rotarg[0:2] == to_rotarg[0:2]:\n            styles.append('\\\\pos(%.0f, %.0f)' % (from_rotarg[0:2]))\n        else:\n            styles.append('\\\\move(%.0f, %.0f, %.0f, %.0f, %.0f, %.0f)' % (from_rotarg[0:2] + to_rotarg[0:2] + (delay, delay + duration)))\n        styles.append('\\\\frx%.0f\\\\fry%.0f\\\\frz%.0f\\\\fscx%.0f\\\\fscy%.0f' % (from_rotarg[2:7]))\n        if (from_x, from_y) != (to_x, to_y):\n            styles.append('\\\\t(%d, %d, ' % (delay, delay + duration))\n            styles.append('\\\\frx%.0f\\\\fry%.0f\\\\frz%.0f\\\\fscx%.0f\\\\fscy%.0f' % (to_rotarg[2:7]))\n            styles.append(')')\n        if fontface:\n            styles.append('\\\\fn%s' % ASSEscape(fontface))\n        styles.append('\\\\fs%.0f' % (c[6] * ZoomFactor[0]))\n        if c[5] != 0xffffff:\n            styles.append('\\\\c&H%s&' % ConvertColor(c[5]))\n            if c[5] == 0x000000:\n                styles.append('\\\\3c&HFFFFFF&')\n        if from_alpha == to_alpha:\n            styles.append('\\\\alpha&H%02X' % from_alpha)\n        elif (from_alpha, to_alpha) == (255, 0):\n            styles.append('\\\\fad(%.0f,0)' % (lifetime * 1000))\n        elif (from_alpha, to_alpha) == (0, 255):\n            styles.append('\\\\fad(0, %.0f)' % (lifetime * 1000))\n        else:\n            styles.append('\\\\fade(%(from_alpha)d, %(to_alpha)d, %(to_alpha)d, 0, %(end_time).0f, %(end_time).0f, %(end_time).0f)' % {'from_alpha': from_alpha, 'to_alpha': to_alpha, 'end_time': lifetime * 1000})\n        if isborder == 'false':\n            styles.append('\\\\bord0')\n        f.write('Dialogue: -1,%(start)s,%(end)s,%(styleid)s,,0,0,0,,{%(styles)s}%(text)s\\n' % {'start': ConvertTimestamp(c[0]), 'end': ConvertTimestamp(c[0] + lifetime), 'styles': ''.join(styles), 'text': text, 'styleid': styleid})\n    except (IndexError, ValueError) as e:\n        try:\n            logging.warning(_('Invalid comment: %r') % c[3])\n        except IndexError:\n            logging.warning(_('Invalid comment: %r') % c)\n\n\ndef WriteCommentAcfunPositioned(f, c, width, height, styleid):\n    AcfunPlayerSize = (560, 400)\n    ZoomFactor = GetZoomFactor(AcfunPlayerSize, (width, height))\n\n    def GetPosition(InputPos, isHeight):\n        isHeight = int(isHeight)  # True -> 1\n        return AcfunPlayerSize[isHeight] * ZoomFactor[0] * InputPos * 0.001 + ZoomFactor[isHeight + 1]\n\n    def GetTransformStyles(x=None, y=None, scale_x=None, scale_y=None, rotate_z=None, rotate_y=None, color=None, alpha=None):\n        styles = []\n        out_x, out_y = x, y\n        if rotate_z is not None and rotate_y is not None:\n            assert x is not None\n            assert y is not None\n            rotarg = ConvertFlashRotation(rotate_y, rotate_z, x, y, width, height)\n            out_x, out_y = rotarg[0:2]\n            if scale_x is None:\n                scale_x = 1\n            if scale_y is None:\n                scale_y = 1\n            styles.append('\\\\frx%.0f\\\\fry%.0f\\\\frz%.0f\\\\fscx%.0f\\\\fscy%.0f' % (rotarg[2:5] + (rotarg[5] * scale_x, rotarg[6] * scale_y)))\n        else:\n            if scale_x is not None:\n                styles.append('\\\\fscx%.0f' % (scale_x * 100))\n            if scale_y is not None:\n                styles.append('\\\\fscy%.0f' % (scale_y * 100))\n        if color is not None:\n            styles.append('\\\\c&H%s&' % ConvertColor(color))\n            if color == 0x000000:\n                styles.append('\\\\3c&HFFFFFF&')\n        if alpha is not None:\n            alpha = 255 - round(alpha * 255)\n            styles.append('\\\\alpha&H%02X' % alpha)\n        return out_x, out_y, styles\n\n    def FlushCommentLine(f, text, styles, start_time, end_time, styleid):\n        if end_time > start_time:\n            f.write('Dialogue: -1,%(start)s,%(end)s,%(styleid)s,,0,0,0,,{%(styles)s}%(text)s\\n' % {'start': ConvertTimestamp(start_time), 'end': ConvertTimestamp(end_time), 'styles': ''.join(styles), 'text': text, 'styleid': styleid})\n\n    try:\n        comment_args = c[3]\n        text = ASSEscape(str(comment_args['n']).replace('\\r', '\\n'))\n        common_styles = ['\\org(%d, %d)' % (width / 2, height / 2)]\n        anchor = {0: 7, 1: 8, 2: 9, 3: 4, 4: 5, 5: 6, 6: 1, 7: 2, 8: 3}.get(comment_args.get('c', 0), 7)\n        if anchor != 7:\n            common_styles.append('\\\\an%s' % anchor)\n        font = comment_args.get('w')\n        if font:\n            font = dict(font)\n            fontface = font.get('f')\n            if fontface:\n                common_styles.append('\\\\fn%s' % ASSEscape(str(fontface)))\n            fontbold = bool(font.get('b'))\n            if fontbold:\n                common_styles.append('\\\\b1')\n        common_styles.append('\\\\fs%.0f' % (c[6] * ZoomFactor[0]))\n        isborder = bool(comment_args.get('b', True))\n        if not isborder:\n            common_styles.append('\\\\bord0')\n        to_pos = dict(comment_args.get('p', {'x': 0, 'y': 0}))\n        to_x = round(GetPosition(int(to_pos.get('x', 0)), False))\n        to_y = round(GetPosition(int(to_pos.get('y', 0)), True))\n        to_scale_x = float(comment_args.get('e', 1.0))\n        to_scale_y = float(comment_args.get('f', 1.0))\n        to_rotate_z = float(comment_args.get('r', 0.0))\n        to_rotate_y = float(comment_args.get('k', 0.0))\n        to_color = c[5]\n        to_alpha = float(comment_args.get('a', 1.0))\n        from_time = float(comment_args.get('t', 0.0))\n        action_time = float(comment_args.get('l', 3.0))\n        actions = list(comment_args.get('z', []))\n        to_out_x, to_out_y, transform_styles = GetTransformStyles(to_x, to_y, to_scale_x, to_scale_y, to_rotate_z, to_rotate_y, to_color, to_alpha)\n        FlushCommentLine(f, text, common_styles + ['\\\\pos(%.0f, %.0f)' % (to_out_x, to_out_y)] + transform_styles, c[0] + from_time, c[0] + from_time + action_time, styleid)\n        action_styles = transform_styles\n        for action in actions:\n            action = dict(action)\n            from_x, from_y = to_x, to_y\n            from_out_x, from_out_y = to_out_x, to_out_y\n            from_scale_x, from_scale_y = to_scale_x, to_scale_y\n            from_rotate_z, from_rotate_y = to_rotate_z, to_rotate_y\n            from_color, from_alpha = to_color, to_alpha\n            transform_styles, action_styles = action_styles, []\n            from_time += action_time\n            action_time = float(action.get('l', 0.0))\n            if 'x' in action:\n                to_x = round(GetPosition(int(action['x']), False))\n            if 'y' in action:\n                to_y = round(GetPosition(int(action['y']), True))\n            if 'f' in action:\n                to_scale_x = float(action['f'])\n            if 'g' in action:\n                to_scale_y = float(action['g'])\n            if 'c' in action:\n                to_color = int(action['c'])\n            if 't' in action:\n                to_alpha = float(action['t'])\n            if 'd' in action:\n                to_rotate_z = float(action['d'])\n            if 'e' in action:\n                to_rotate_y = float(action['e'])\n            to_out_x, to_out_y, action_styles = GetTransformStyles(to_x, to_y, from_scale_x, from_scale_y, to_rotate_z, to_rotate_y, from_color, from_alpha)\n            if (from_out_x, from_out_y) == (to_out_x, to_out_y):\n                pos_style = '\\\\pos(%.0f, %.0f)' % (to_out_x, to_out_y)\n            else:\n                pos_style = '\\\\move(%.0f, %.0f, %.0f, %.0f)' % (from_out_x, from_out_y, to_out_x, to_out_y)\n            styles = common_styles + transform_styles\n            styles.append(pos_style)\n            if action_styles:\n                styles.append('\\\\t(%s)' % (''.join(action_styles)))\n            FlushCommentLine(f, text, styles, c[0] + from_time, c[0] + from_time + action_time, styleid)\n    except (IndexError, ValueError) as e:\n        logging.warning(_('Invalid comment: %r') % c[3])\n\n\ndef WriteCommentSH5VPositioned(f, c, width, height, styleid):\n\n    def GetTransformStyles(x=None, y=None, fsize=None, rotate_z=None, rotate_y=None, color=None, alpha=None):\n        styles = []\n        if x is not None and y is not None:\n            styles.append('\\\\pos(%.0f, %.0f)' % (x, y))\n        if fsize is not None:\n            styles.append('\\\\fs%.0f' % fsize)\n        if rotate_y is not None and rotate_z is not None:\n            styles.append('\\\\frz%.0f' % rotate_z)\n            styles.append('\\\\fry%.0f' % rotate_y)\n        if color is not None:\n            styles.append('\\\\c&H%s&' % ConvertColor(color))\n            if color == 0x000000:\n                styles.append('\\\\3c&HFFFFFF&')\n        if alpha is not None:\n            alpha = 255 - round(alpha * 255)\n            styles.append('\\\\alpha&H%02X' % alpha)\n        return styles\n\n    def FlushCommentLine(f, text, styles, start_time, end_time, styleid):\n        if end_time > start_time:\n            f.write('Dialogue: -1,%(start)s,%(end)s,%(styleid)s,,0,0,0,,{%(styles)s}%(text)s\\n' % {'start': ConvertTimestamp(start_time), 'end': ConvertTimestamp(end_time), 'styles': ''.join(styles), 'text': text, 'styleid': styleid})\n\n    try:\n        text = ASSEscape(str(c[3]))\n        to_x = float(c[9]) * width\n        to_y = float(c[10]) * height\n        to_rotate_z = -int(c[14])\n        to_rotate_y = -int(c[15])\n        to_color = c[5]\n        to_alpha = float(c[12])\n        # Note: Alpha transition hasn't been worked out yet.\n        to_size = int(c[6]) * math.sqrt(width * height / 307200)\n        # Note: Because sH5V's data is the absolute size of font,temporarily solve by it at present.[*math.sqrt(width/640*height/480)]\n        # But it seems to be working fine...\n        from_time = float(c[0])\n        action_time = float(c[11]) / 1000\n        transform_styles = GetTransformStyles(to_x, to_y, to_size, to_rotate_z, to_rotate_y, to_color, to_alpha)\n        FlushCommentLine(f, text, transform_styles, from_time, from_time + action_time, styleid)\n    except (IndexError, ValueError) as e:\n        logging.warning(_('Invalid comment: %r') % c[3])\n\n\n# Result: (f, dx, dy)\n# To convert: NewX = f*x+dx, NewY = f*y+dy\ndef GetZoomFactor(SourceSize, TargetSize):\n    try:\n        if (SourceSize, TargetSize) == GetZoomFactor.Cached_Size:\n            return GetZoomFactor.Cached_Result\n    except AttributeError:\n        pass\n    GetZoomFactor.Cached_Size = (SourceSize, TargetSize)\n    try:\n        SourceAspect = SourceSize[0] / SourceSize[1]\n        TargetAspect = TargetSize[0] / TargetSize[1]\n        if TargetAspect < SourceAspect:  # narrower\n            ScaleFactor = TargetSize[0] / SourceSize[0]\n            GetZoomFactor.Cached_Result = (ScaleFactor, 0, (TargetSize[1] - TargetSize[0] / SourceAspect) / 2)\n        elif TargetAspect > SourceAspect:  # wider\n            ScaleFactor = TargetSize[1] / SourceSize[1]\n            GetZoomFactor.Cached_Result = (ScaleFactor, (TargetSize[0] - TargetSize[1] * SourceAspect) / 2, 0)\n        else:\n            GetZoomFactor.Cached_Result = (TargetSize[0] / SourceSize[0], 0, 0)\n        return GetZoomFactor.Cached_Result\n    except ZeroDivisionError:\n        GetZoomFactor.Cached_Result = (1, 0, 0)\n        return GetZoomFactor.Cached_Result\n\n\n# Calculation is based on https://github.com/jabbany/CommentCoreLibrary/issues/5#issuecomment-40087282\n#                     and https://github.com/m13253/danmaku2ass/issues/7#issuecomment-41489422\n# ASS FOV = width*4/3.0\n# But Flash FOV = width/math.tan(100*math.pi/360.0)/2 will be used instead\n# Result: (transX, transY, rotX, rotY, rotZ, scaleX, scaleY)\ndef ConvertFlashRotation(rotY, rotZ, X, Y, width, height):\n    def WrapAngle(deg):\n        return 180 - ((180 - deg) % 360)\n    rotY = WrapAngle(rotY)\n    rotZ = WrapAngle(rotZ)\n    if rotY in (90, -90):\n        rotY -= 1\n    if rotY == 0 or rotZ == 0:\n        outX = 0\n        outY = -rotY  # Positive value means clockwise in Flash\n        outZ = -rotZ\n        rotY *= math.pi / 180.0\n        rotZ *= math.pi / 180.0\n    else:\n        rotY *= math.pi / 180.0\n        rotZ *= math.pi / 180.0\n        outY = math.atan2(-math.sin(rotY) * math.cos(rotZ), math.cos(rotY)) * 180 / math.pi\n        outZ = math.atan2(-math.cos(rotY) * math.sin(rotZ), math.cos(rotZ)) * 180 / math.pi\n        outX = math.asin(math.sin(rotY) * math.sin(rotZ)) * 180 / math.pi\n    trX = (X * math.cos(rotZ) + Y * math.sin(rotZ)) / math.cos(rotY) + (1 - math.cos(rotZ) / math.cos(rotY)) * width / 2 - math.sin(rotZ) / math.cos(rotY) * height / 2\n    trY = Y * math.cos(rotZ) - X * math.sin(rotZ) + math.sin(rotZ) * width / 2 + (1 - math.cos(rotZ)) * height / 2\n    trZ = (trX - width / 2) * math.sin(rotY)\n    FOV = width * math.tan(2 * math.pi / 9.0) / 2\n    try:\n        scaleXY = FOV / (FOV + trZ)\n    except ZeroDivisionError:\n        logging.error('Rotation makes object behind the camera: trZ == %.0f' % trZ)\n        scaleXY = 1\n    trX = (trX - width / 2) * scaleXY + width / 2\n    trY = (trY - height / 2) * scaleXY + height / 2\n    if scaleXY < 0:\n        scaleXY = -scaleXY\n        outX += 180\n        outY += 180\n        logging.error('Rotation makes object behind the camera: trZ == %.0f < %.0f' % (trZ, FOV))\n    return (trX, trY, WrapAngle(outX), WrapAngle(outY), WrapAngle(outZ), scaleXY * 100, scaleXY * 100)\n\n\ndef ProcessComments(comments, f, width, height, bottomReserved, fontface, fontsize, alpha, duration_marquee, duration_still, reduced, progress_callback):\n    styleid = 'Danmaku2ASS_%04x' % random.randint(0, 0xffff)\n    WriteASSHead(f, width, height, fontface, fontsize, alpha, styleid)\n    rows = [[None] * (height - bottomReserved + 1) for i in xrange(4)]\n    for idx, i in enumerate(comments):\n        if progress_callback and idx % 1000 == 0:\n            progress_callback(idx, len(comments))\n        if isinstance(i[4], int):\n            row = 0\n            rowmax = height - bottomReserved - i[7]\n            while row <= rowmax:\n                freerows = TestFreeRows(rows, i, row, width, height, bottomReserved, duration_marquee, duration_still)\n                if freerows >= i[7]:\n                    MarkCommentRow(rows, i, row)\n                    WriteComment(f, i, row, width, height, bottomReserved, fontsize, duration_marquee, duration_still, styleid)\n                    break\n                else:\n                    row += freerows or 1\n            else:\n                if not reduced:\n                    row = FindAlternativeRow(rows, i, height, bottomReserved)\n                    MarkCommentRow(rows, i, row)\n                    WriteComment(f, i, row, width, height, bottomReserved, fontsize, duration_marquee, duration_still, styleid)\n        elif i[4] == 'bilipos':\n            WriteCommentBilibiliPositioned(f, i, width, height, styleid)\n        elif i[4] == 'acfunpos':\n            WriteCommentAcfunPositioned(f, i, width, height, styleid)\n        elif i[4] == 'sH5Vpos':\n            WriteCommentSH5VPositioned(f, i, width, height, styleid)\n        else:\n            logging.warning(_('Invalid comment: %r') % i[3])\n    if progress_callback:\n        progress_callback(len(comments), len(comments))\n\n\ndef TestFreeRows(rows, c, row, width, height, bottomReserved, duration_marquee, duration_still):\n    res = 0\n    rowmax = height - bottomReserved\n    targetRow = None\n    if c[4] in (1, 2):\n        while row < rowmax and res < c[7]:\n            if targetRow != rows[c[4]][row]:\n                targetRow = rows[c[4]][row]\n                if targetRow and targetRow[0] + duration_still > c[0]:\n                    break\n            row += 1\n            res += 1\n    else:\n        try:\n            thresholdTime = c[0] - duration_marquee * (1 - width / (c[8] + width))\n        except ZeroDivisionError:\n            thresholdTime = c[0] - duration_marquee\n        while row < rowmax and res < c[7]:\n            if targetRow != rows[c[4]][row]:\n                targetRow = rows[c[4]][row]\n                try:\n                    if targetRow and (targetRow[0] > thresholdTime or targetRow[0] + targetRow[8] * duration_marquee / (targetRow[8] + width) > c[0]):\n                        break\n                except ZeroDivisionError:\n                    pass\n            row += 1\n            res += 1\n    return res\n\n\ndef FindAlternativeRow(rows, c, height, bottomReserved):\n    res = 0\n    for row in xrange(height - bottomReserved - int(math.ceil(c[7]))):\n        if not rows[c[4]][row]:\n            return row\n        elif rows[c[4]][row][0] < rows[c[4]][res][0]:\n            res = row\n    return res\n\n\ndef MarkCommentRow(rows, c, row):\n    try:\n        for i in xrange(row, row + int(math.ceil(c[7]))):\n            rows[c[4]][i] = c\n    except IndexError:\n        pass\n\n\ndef WriteASSHead(f, width, height, fontface, fontsize, alpha, styleid):\n    f.write(\n        '''[Script Info]\n; Script generated by Danmaku2ASS\n; https://github.com/m13253/danmaku2ass\nScript Updated By: Danmaku2ASS (https://github.com/m13253/danmaku2ass)\nScriptType: v4.00+\nPlayResX: %(width)d\nPlayResY: %(height)d\nAspect Ratio: %(width)d:%(height)d\nCollisions: Normal\nWrapStyle: 2\nScaledBorderAndShadow: yes\nYCbCr Matrix: TV.601\n\n[V4+ Styles]\nFormat: Name, Fontname, Fontsize, PrimaryColour, SecondaryColour, OutlineColour, BackColour, Bold, Italic, Underline, StrikeOut, ScaleX, ScaleY, Spacing, Angle, BorderStyle, Outline, Shadow, Alignment, MarginL, MarginR, MarginV, Encoding\nStyle: %(styleid)s, %(fontface)s, %(fontsize).0f, &H%(alpha)02XFFFFFF, &H%(alpha)02XFFFFFF, &H%(alpha)02X000000, &H%(alpha)02X000000, 0, 0, 0, 0, 100, 100, 0.00, 0.00, 1, %(outline).0f, 0, 7, 0, 0, 0, 0\n\n[Events]\nFormat: Layer, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text\n''' % {'width': width, 'height': height, 'fontface': fontface, 'fontsize': fontsize, 'alpha': 255 - round(alpha * 255), 'outline': max(fontsize / 25.0, 1), 'styleid': styleid}\n    )\n\n\ndef WriteComment(f, c, row, width, height, bottomReserved, fontsize, duration_marquee, duration_still, styleid):\n    text = ASSEscape(c[3])\n    styles = []\n    if c[4] == 1:\n        styles.append('\\\\an8\\\\pos(%(halfwidth)d, %(row)d)' % {'halfwidth': width / 2, 'row': row})\n        duration = duration_still\n    elif c[4] == 2:\n        styles.append('\\\\an2\\\\pos(%(halfwidth)d, %(row)d)' % {'halfwidth': width / 2, 'row': ConvertType2(row, height, bottomReserved)})\n        duration = duration_still\n    elif c[4] == 3:\n        styles.append('\\\\move(%(neglen)d, %(row)d, %(width)d, %(row)d)' % {'width': width, 'row': row, 'neglen': -math.ceil(c[8])})\n        duration = duration_marquee\n    else:\n        styles.append('\\\\move(%(width)d, %(row)d, %(neglen)d, %(row)d)' % {'width': width, 'row': row, 'neglen': -math.ceil(c[8])})\n        duration = duration_marquee\n    if not (-1 < c[6] - fontsize < 1):\n        styles.append('\\\\fs%.0f' % c[6])\n    if c[5] != 0xffffff:\n        styles.append('\\\\c&H%s&' % ConvertColor(c[5]))\n        if c[5] == 0x000000:\n            styles.append('\\\\3c&HFFFFFF&')\n    f.write('Dialogue: 2,%(start)s,%(end)s,%(styleid)s,,0000,0000,0000,,{%(styles)s}%(text)s\\n' % {'start': ConvertTimestamp(c[0]), 'end': ConvertTimestamp(c[0] + duration), 'styles': ''.join(styles), 'text': text, 'styleid': styleid})\n\n\ndef ASSEscape(s):\n    def ReplaceLeadingSpace(s):\n        sstrip = s.strip(' ')\n        slen = len(s)\n        if slen == len(sstrip):\n            return s\n        else:\n            llen = slen - len(s.lstrip(' '))\n            rlen = slen - len(s.rstrip(' '))\n            return ''.join(('\\u2007' * llen, sstrip, '\\u2007' * rlen))\n    return '\\\\N'.join((ReplaceLeadingSpace(i) or ' ' for i in str(s).replace('\\\\', '\\\\\\\\').replace('{', '\\\\{').replace('}', '\\\\}').split('\\n')))\n\n\ndef CalculateLength(s):\n    return max(imap(len, s.split('\\n')))  # May not be accurate\n\n\ndef ConvertTimestamp(timestamp):\n    timestamp = round(timestamp * 100.0)\n    hour, minute = divmod(timestamp, 360000)\n    minute, second = divmod(minute, 6000)\n    second, centsecond = divmod(second, 100)\n    return '%d:%02d:%02d.%02d' % (int(hour), int(minute), int(second), int(centsecond))\n\n\ndef ConvertColor(RGB, width=1280, height=576):\n    if RGB == 0x000000:\n        return '000000'\n    elif RGB == 0xffffff:\n        return 'FFFFFF'\n    R = (RGB >> 16) & 0xff\n    G = (RGB >> 8) & 0xff\n    B = RGB & 0xff\n    if width < 1280 and height < 576:\n        return '%02X%02X%02X' % (B, G, R)\n    else:  # VobSub always uses BT.601 colorspace, convert to BT.709\n        ClipByte = lambda x: 255 if x > 255 else 0 if x < 0 else round(x)\n        return '%02X%02X%02X' % (\n            ClipByte(R * 0.00956384088080656 + G * 0.03217254540203729 + B * 0.95826361371715607),\n            ClipByte(R * -0.10493933142075390 + G * 1.17231478191855154 + B * -0.06737545049779757),\n            ClipByte(R * 0.91348912373987645 + G * 0.07858536372532510 + B * 0.00792551253479842)\n        )\n\n\ndef ConvertType2(row, height, bottomReserved):\n    return height - bottomReserved - row\n\n\ndef ConvertToFile(filename_or_file, *args, **kwargs):\n    if isinstance(filename_or_file, bytes):\n        filename_or_file = str(bytes(filename_or_file).decode('utf-8', 'replace'))\n    if isinstance(filename_or_file, str):\n        return open(filename_or_file, *args, **kwargs)\n    else:\n        return filename_or_file\n\n\ndef FilterBadChars(f):\n    s = f.read()\n    s = re.sub('[\\\\x00-\\\\x08\\\\x0b\\\\x0c\\\\x0e-\\\\x1f]', '\\ufffd', s)\n    return io.StringIO(s)\n\n\nclass safe_list(list):\n\n    def get(self, index, default=None):\n        try:\n            return self[index]\n        except IndexError:\n            return default\n\n\ndef export(func):\n    global __all__\n    try:\n        __all__.append(func.__name__)\n    except NameError:\n        __all__ = [func.__name__]\n    return func\n\n\n@export\ndef Danmaku2ASS(input_files, output_file, stage_width, stage_height, reserve_blank=0, font_face=_('(FONT) sans-serif')[7:], font_size=25.0, text_opacity=1.0, duration_marquee=5.0, duration_still=5.0, is_reduce_comments=False, progress_callback=None):\n    fo = None\n    comments = ReadComments(input_files, font_size)\n    try:\n        if output_file:\n            fo = ConvertToFile(output_file, 'w', encoding='utf-8-sig', errors='replace', newline='\\r\\n')\n        else:\n            fo = sys.stdout\n        ProcessComments(comments, fo, stage_width, stage_height, reserve_blank, font_face, font_size, text_opacity, duration_marquee, duration_still, is_reduce_comments, progress_callback)\n    finally:\n        if output_file and fo != output_file:\n            fo.close()\n\n\n@export\ndef ReadComments(input_files, font_size=25.0, progress_callback=None):\n    if isinstance(input_files, bytes):\n        input_files = str(bytes(input_files).decode('utf-8', 'replace'))\n    if isinstance(input_files, str):\n        input_files = [input_files]\n    else:\n        input_files = list(input_files)\n    comments = []\n    for idx, i in enumerate(input_files):\n        if progress_callback:\n            progress_callback(idx, len(input_files))\n        with ConvertToFile(i, 'r', encoding='utf-8', errors='replace') as f:\n            CommentProcessor = GetCommentProcessor(f)\n            if not CommentProcessor:\n                raise ValueError(_('Unknown comment file format: %s') % i)\n            comments.extend(CommentProcessor(FilterBadChars(f), font_size))\n    if progress_callback:\n        progress_callback(len(input_files), len(input_files))\n    comments.sort()\n    return comments\n\n\n@export\ndef GetCommentProcessor(input_file):\n    return CommentFormatMap[ProbeCommentFormat(input_file)]\n\n\ndef main():\n    logging.basicConfig(format='%(levelname)s: %(message)s')\n    if len(sys.argv) == 1:\n        sys.argv.append('--help')\n    parser = argparse.ArgumentParser()\n    parser.add_argument(b'-o', b'--output', metavar=_(b'OUTPUT'), help=_(b'Output file'))\n    parser.add_argument(b'-s', b'--size', metavar=_(b'WIDTHxHEIGHT'), required=True, help=_(b'Stage size in pixels'))\n    parser.add_argument(b'-fn', b'--font', metavar=_(b'FONT'), help=_(b'Specify font face [default: %s]') % _(b'(FONT) sans-serif')[7:], default=_('(FONT) sans-serif')[7:])\n    parser.add_argument(b'-fs', b'--fontsize', metavar=_(b'SIZE'), help=(_(b'Default font size [default: %s]') % 25), type=float, default=25.0)\n    parser.add_argument(b'-a', b'--alpha', metavar=_(b'ALPHA'), help=_(b'Text opacity'), type=float, default=1.0)\n    parser.add_argument(b'-dm', b'--duration-marquee', metavar=_(b'SECONDS'), help=_(b'Duration of scrolling comment display [default: %s]') % 5, type=float, default=5.0)\n    parser.add_argument(b'-ds', b'--duration-still', metavar=_(b'SECONDS'), help=_(b'Duration of still comment display [default: %s]') % 5, type=float, default=5.0)\n    parser.add_argument(b'-p', b'--protect', metavar=_(b'HEIGHT'), help=_(b'Reserve blank on the bottom of the stage'), type=int, default=0)\n    parser.add_argument(b'-r', b'--reduce', action=b'store_true', help=_(b'Reduce the amount of comments if stage is full'))\n    parser.add_argument(b'file', metavar=_(b'FILE'), nargs=b'+', help=_(b'Comment file to be processed'))\n    args = parser.parse_args()\n    try:\n        width, height = bytes(args.size).decode('utf-8', 'replace').split('x', 1)\n        width = int(width)\n        height = int(height)\n    except ValueError:\n        raise ValueError(_('Invalid stage size: %r') % args.size)\n    Danmaku2ASS(args.file, args.output, width, height, args.protect, args.font, args.fontsize, args.alpha, args.duration_marquee, args.duration_still, args.reduce)\n\n\nif __name__ == '__main__':\n    main()"
  },
  {
    "path": "service.subtitles.acfun/service.py",
    "content": "# -*- coding: utf-8 -*-\n\nimport os\nimport sys\nimport xbmc\nimport urllib\nimport urllib2\nimport json\nimport xbmcvfs\nimport requests\nimport xbmcaddon\nimport xbmcgui,xbmcplugin\nimport re\nfrom bs4 import BeautifulSoup\nimport time\nimport random\nimport string\n\n\n\n__addon__      = xbmcaddon.Addon()\n__author__     = __addon__.getAddonInfo('author')\n__scriptid__   = __addon__.getAddonInfo('id')\n__scriptname__ = __addon__.getAddonInfo('name')\n__version__    = __addon__.getAddonInfo('version')\n__language__   = __addon__.getLocalizedString\n\n__cwd__        = xbmc.translatePath( __addon__.getAddonInfo('path') ).decode(\"utf-8\")\n__profile__    = xbmc.translatePath( __addon__.getAddonInfo('profile') ).decode(\"utf-8\")\n__resource__   = xbmc.translatePath( os.path.join( __cwd__, 'resources', 'lib' ) ).decode(\"utf-8\")\n__temp__       = xbmc.translatePath( os.path.join( __profile__, 'temp') ).decode(\"utf-8\")\n\nsys.path.append (__resource__)\nimport xml2ass\n\nZIMUZU_BASE = 'https://www.acfun.cn/rest/pc-direct'\n\n\nUserAgent  = 'Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; Trident/6.0)'\n\ndef log(module, msg):\n    pass\n    # xbmc.log((u\"%s::%s - %s\" % (__scriptname__,module,msg,)).encode('utf-8'),level=xbmc.LOGDEBUG )\n\ndef GetHttpData(url, data=''):\n    log(sys._getframe().f_code.co_name, \"url [%s]\" % (url))\n    if data:\n        req = urllib2.Request(url, data)\n    else:\n        req = urllib2.Request(url)\n    req.add_header('User-Agent', UserAgent)\n    try:\n        response = urllib2.urlopen(req)\n        httpdata = response.read()\n        response.close()\n    except:\n        log(sys._getframe().f_code.co_name, \"Error (%d) [%s]\" % (\n               sys.exc_info()[2].tb_lineno,\n               sys.exc_info()[1]\n               ))\n        return ''\n    return httpdata\n\ndef Search( item ):\n    subtitles_list = []\n\n    log(sys._getframe().f_code.co_name, \"Search for [%s] by name\" % (os.path.basename( item['file_original_path'] )))\n    if item['mansearch']:\n        search_string = item['mansearchstr']\n    elif len(item['tvshow']) > 0:\n        search_string = \"%s S%.2dE%.2d\" % (item['tvshow'],\n                                           int(item['season']),\n                                           int(item['episode']),)\n    else:\n        search_string = item['title']\n    \n    search_string = search_string[:40] #修复api提示搜索关键词过长的问题\n    #番剧\n    if search_string.find('%') != -1:\n        url = ZIMUZU_BASE + '/search/bgm?keyword=%s' % search_string\n    else:\n        url = ZIMUZU_BASE + '/search/bgm?keyword=%s' % (urllib.quote(search_string))\n    data = GetHttpData(url)\n\n    try:\n        j = json.loads(data)\n        \n        if 'bgmList' in j:\n            bgm = j['bgmList']\n            for index in range(len(bgm)):\n                subtitles_list.append({\"language_name\":\"Chinese\", \"filename\":'[COLOR pink][' + bgm[index]['episodeInfo'] + '] ' + bgm[index]['bgmTitle'] + '[/COLOR]', \"link\":'https://www.acfun.cn/bangumi/aa' + str(bgm[index]['id']), \"language_flag\":'zh', \"rating\":\"0\"})\n    except:\n        pass\n    #视频\n    if search_string.find('%') != -1:\n        url = ZIMUZU_BASE + '/search/video?keyword=%s' % search_string\n    else:\n        url = ZIMUZU_BASE + '/search/video?keyword=%s' % (urllib.quote(search_string))\n    \n    data = GetHttpData(url)\n    \n    try:\n        j = json.loads(data)\n        if 'videoList' in j:\n            k = j['videoList']\n            for index in range(len(k)):\n                subtitles_list.append({\"language_name\":\"Chinese\", \"filename\":k[index]['title'], \"link\":'https://www.acfun.cn/v/ac' + str(k[index]['id']), \"language_flag\":'zh', \"rating\":\"0\"})\n    except:\n        pass\n    \n   \n    # results = j['data']['result']\n    # for it in results:\n    #     link = ZIMUZU_BASE + it.find(\"div\", class_=\"fl-info\").a.get('href').encode('utf-8')\n    #     title = it.find(\"strong\", class_=\"list_title\").text.encode('utf-8')\n    #     subtitles_list.append({\"language_name\":\"Chinese\", \"filename\":title, \"link\":link, \"language_flag\":'zh', \"rating\":\"0\"})\n\n    if subtitles_list:\n        for it in subtitles_list:\n            listitem = xbmcgui.ListItem(label=it[\"language_name\"],\n                                  label2=it[\"filename\"],\n                                  iconImage=it[\"rating\"],\n                                  thumbnailImage=it[\"language_flag\"])\n            listitem.setProperty( \"sync\", \"false\" )\n            listitem.setProperty( \"hearing_imp\", \"false\" )\n\n            url = \"plugin://%s/?action=download&link=%s\" % (__scriptid__,\n                                                            it[\"link\"]\n                                                            )\n            xbmcplugin.addDirectoryItem(handle=int(sys.argv[1]),url=url,listitem=listitem,isFolder=False)\n\ndef Download(url):\n    \n    if not xbmcvfs.exists(__temp__.replace('\\\\','/')):\n        xbmcvfs.mkdirs(__temp__)\n    dirs, files = xbmcvfs.listdir(__temp__)\n    \n    for file in files:\n        xbmcvfs.delete(os.path.join(__temp__, file.decode(\"utf-8\")))\n    \n    subtitle_list = []\n    b = 1\n    if b == 1:\n        #data = GetHttpData(url)\n        if re.match('https://',url) == None:\n            if re.match('http://',url) != None:\n                url = 'https://'+url[7:]\n            else:\n                dialog = xbmcgui.Dialog()\n                ok = dialog.ok('错误提示', '非法url')\n\n        ifbangumiurl = re.match('https://www.acfun.cn/bangumi/aa',url)\n        ifvideourl = re.match('https://www.acfun.cn/v/ac',url)\n        if ifbangumiurl or ifvideourl != None:\n            if ifbangumiurl != None:\n                r = GetHttpData(url)\n                str1 = r.find('window.bangumiList = ')\n                str2 = r.find('window.abtestConfig =')\n                cutjson = r[str1+21:str2]\n                cutjson = cutjson.split(';')[0]\n                # dialog = xbmcgui.Dialog()\n                # dialog.textviewer('错误提示', str(cutjson))\n                j = json.loads(cutjson)\n        \n                titles = []\n                cids = []\n                for p in range(len(j['items'])):\n                    titles.append(u'正片 - ' + j['items'][p]['episodeName'])\n                    cids.append(j['items'][p]['videoId'])\n\n            if ifvideourl != None:\n                r = GetHttpData(url)\n                str1 = r.find('window.pageInfo = window.videoInfo = ')\n                str2 = r.find('window.videoResource =')\n                cutjson = r[str1+37:str2]\n                cutjson = cutjson.split(';')[0]\n                # dialog = xbmcgui.Dialog()\n                # dialog.textviewer('错误提示', str(cutjson))\n                j = json.loads(cutjson)\n                #bvid = j['data']['pages'][0]['bvid']\n                titles = []\n                cids = []\n                for p in range(len(j['videoList'])):\n                    titles.append(j['videoList'][p]['title'])\n                    cids.append(j['videoList'][p]['id'])\n            if len(titles) > 1:\n                sel = xbmcgui.Dialog().select('请选择分集的弹幕', titles)\n                if sel == -1:\n                    sel = 0\n            else:\n                sel = 0\n        apiheaders = {'user-agent' : 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.122 Safari/537.36',\n      'cookie':'_did=web_471136585E37DE05; uuid=00ac251daba2fd89f2cef9937df1662b; analytics=GA1.2.979500629.1590051501; ac__avi=101092823893b8e326abdc90e6850ae2886d0cde88b81067851cf6c2c6febafe3a364146315ef65213; Hm_lvt_2af69bc2b378fb58ae04ed2a04257ed1=1589465669,1590051312,1590243605,1590284267; sign_remind=1; csrfToken=oUoc3WbPlM29zqGXhVNsi7Vb; session_id=4045767301B5686B; webp_supported=%7B%22lossy%22%3Atrue%2C%22lossless%22%3Atrue%2C%22alpha%22%3Atrue%2C%22animation%22%3Atrue%7D; lsv_js_player_v1_main=f2c6e6; lsv_js_player_v2_main=9fa1b0; clientlanguage=zh_CN; safety_id=AAJHfMhNHgUr-jBjMz48azvJ; cur_req_id=5488657659848AC3_self_93a47343167a440b05e5119c339296db; cur_group_id=5488657659848AC3_self_93a47343167a440b05e5119c339296db_0'}\n        apidata = {'videoId':cids[sel],'lastFetchTime':0}\n        r = requests.post('https://www.acfun.cn/rest/pc-direct/new-danmaku/poll',apidata,headers=apiheaders)\n        r.encoding = 'utf-8'\n        r = r.text\n        j = json.loads(r)\n        pDialog = xbmcgui.DialogProgress()\n        pDialog.create('获取弹幕', '初始化...')\n        pDialog.update(25, '获取弹幕成功...')\n        data = '<?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"?><i><chatserver>chat.bilibili.com</chatserver><chatid>72540443</chatid><mission>0</mission><maxlimit>%d</maxlimit><state>0</state><real_name>0</real_name><source>e-r</source>' % (len(j['added']))\n        # str1 = r.find('\\\"added\\\":[')\n        # str2 = r.find('],\\\"host-name\\\"')\n        # data = '{' + r[str1+8:str2] + ']}'\n        for i in range(len(j['added'])):\n            data += '<d p=\\\"' + str(float(j['added'][i]['position'])/float(1000)) #弹幕开始显示时间\n            if re.search('.\\d+,',data):\n                if len(re.search('.\\d+,',data).group()[1:-1]) < 5:\n                    data += '0'*(5 - len(re.search('.\\d+,',data).group()[1:-1]))\n                \n            data += ','\n            data += str(j['added'][i]['mode']) + ',' #模式\n            data += str(j['added'][i]['size']) + ',' #字体\n            data += str(j['added'][i]['color']) + ',' #颜色\n            data += str(int(float(j['added'][i]['createTime'])/1000)) + ',' #时间戳 acfun 13位-> b站 10位\n            data += '0' + ',' #弹幕池 b站特有\n            data += hex(j['added'][i]['userId'])[2:] + ',' #发送者id b站特有\n            data += str(j['added'][i]['danmakuId']) #弹幕在数据库的rowid,b站特有\n            data += '\\\">' + j['added'][i]['body'] + '</d>'\n        data += '</i>'\n        pDialog.update(50, 'json转xml成功...')\n        # dialog = xbmcgui.Dialog()\n        # dialog.textviewer('错误提示', str(data.encode('utf-8')))\n        #data = r\n        # if data['info'] != 'OK':\n        #     return []\n        # url = data['data']['info']['file']\n        # data = GetHttpData(url)\n    #except:\n        #return []\n    if len(data) < 1024:\n        return []\n    # t = time.time()\n    \n    # ts = time.strftime(\"%Y%m%d%H%M%S\",time.localtime(t)) + str(int((t - int(t)) * 1000))\n    tmpfile = os.path.join(__temp__, \"cid%s%s.ass\" % (str(cids[sel]), os.path.splitext(url)[1])).replace('\\\\','/')\n    \n    # dialog = xbmcgui.Dialog()\n    # dialog.textviewer('错误提示', str(tmpfile))\n    with open(tmpfile, \"wb\") as subFile:\n        subFile.write(data.encode('utf-8'))\n    pDialog.update(75, '写入xml成功...')\n    xbmc.sleep(500)\n    xml2ass.Danmaku2ASS(tmpfile,tmpfile,960,540,duration_marquee=10.0)\n    pDialog.update(100, '转换ass成功...')\n    pDialog.close()\n    subtitle_list.append(tmpfile)\n    return subtitle_list\n\ndef get_params():\n    param=[]\n    paramstring=sys.argv[2]\n    if len(paramstring)>=2:\n        params=paramstring\n        cleanedparams=params.replace('?','')\n        if (params[len(params)-1]=='/'):\n            params=params[0:len(params)-2]\n        pairsofparams=cleanedparams.split('&')\n        param={}\n        for i in range(len(pairsofparams)):\n            splitparams={}\n            splitparams=pairsofparams[i].split('=')\n            if (len(splitparams))==2:\n                param[splitparams[0]]=splitparams[1]\n\n    return param\n\nparams = get_params()\nif params['action'] == 'search' or params['action'] == 'manualsearch':\n    item = {}\n    item['temp']               = False\n    item['rar']                = False\n    item['mansearch']          = False\n    item['year']               = xbmc.getInfoLabel(\"VideoPlayer.Year\")                           # Year\n    item['season']             = str(xbmc.getInfoLabel(\"VideoPlayer.Season\"))                    # Season\n    item['episode']            = str(xbmc.getInfoLabel(\"VideoPlayer.Episode\"))                   # Episode\n    item['tvshow']             = xbmc.getInfoLabel(\"VideoPlayer.TVshowtitle\")                    # Show\n    item['title']              = xbmc.getInfoLabel(\"VideoPlayer.OriginalTitle\")                  # try to get original title\n    item['file_original_path'] = urllib.unquote(xbmc.Player().getPlayingFile().decode('utf-8'))  # Full path of a playing file\n    item['3let_language']      = []\n\n    if 'searchstring' in params:\n        item['mansearch'] = True\n        item['mansearchstr'] = params['searchstring']\n\n    for lang in urllib.unquote(params['languages']).decode('utf-8').split(\",\"):\n        item['3let_language'].append(xbmc.convertLanguage(lang,xbmc.ISO_639_2))\n\n    if item['title'] == \"\":\n        item['title']  = xbmc.getInfoLabel(\"VideoPlayer.Title\")                       # no original title, get just Title\n        if item['title'] == os.path.basename(xbmc.Player().getPlayingFile()):         # get movie title and year if is filename\n            title, year = xbmc.getCleanMovieTitle(item['title'])\n            item['title'] = title.replace('[','').replace(']','')\n            item['year'] = year\n\n    if item['episode'].lower().find(\"s\") > -1:                                        # Check if season is \"Special\"\n        item['season'] = \"0\"                                                          #\n        item['episode'] = item['episode'][-1:]\n\n    if ( item['file_original_path'].find(\"http\") > -1 ):\n        item['temp'] = True\n\n    elif ( item['file_original_path'].find(\"rar://\") > -1 ):\n        item['rar']  = True\n        item['file_original_path'] = os.path.dirname(item['file_original_path'][6:])\n\n    elif ( item['file_original_path'].find(\"stack://\") > -1 ):\n        stackPath = item['file_original_path'].split(\" , \")\n        item['file_original_path'] = stackPath[0][8:]\n\n    Search(item)\n\nelif params['action'] == 'download':\n    subs = Download(params[\"link\"])\n    for sub in subs:\n        listitem = xbmcgui.ListItem(label=sub)\n        xbmcplugin.addDirectoryItem(handle=int(sys.argv[1]),url=sub,listitem=listitem,isFolder=False)\n\nxbmcplugin.endOfDirectory(int(sys.argv[1]))\n"
  },
  {
    "path": "service.subtitles.bilibili/addon.xml",
    "content": "﻿<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>\n<addon id=\"service.subtitles.bilibili\"\n       name=\"Bilibili 弹幕\"\n       version=\"0.1.1\"\n       provider-name=\"xodidox,zhengfan,shaolin-kongfu\">\n    <requires>\n        <import addon=\"xbmc.python\" version=\"2.1.0\"/>\n        <import addon=\"script.module.requests\" version=\"1.1.0\"/>\n        <import addon=\"script.module.beautifulsoup4\" version=\"4.3.2\"/>\n        <import addon=\"vfs.rar\" version=\"2.3.0\"/>\n    </requires>\n    <extension point=\"xbmc.subtitle.module\"\n               library=\"service.py\" />\n    <extension point=\"xbmc.addon.metadata\">\n        <summary lang=\"zh\">哔哩哔哩 弹幕插件</summary>\n        <description lang=\"zh\">从 哔哩哔哩 下载弹幕</description>\n        <assets>\n            <icon>icon.png</icon>\n            <clearlogo>logo.png</clearlogo>\n            <fanart>resources/media/fanart.jpg</fanart>\n            <screenshot>resources/media/screenshot_1.png</screenshot>\n            <screenshot>resources/media/screenshot_2.png</screenshot>\n            <screenshot>resources/media/screenshot_3.png</screenshot>\n        </assets>\n        <news></news>\n    </extension>\n</addon>\n"
  },
  {
    "path": "service.subtitles.bilibili/readme.md",
    "content": "# Bilibili 弹幕插件 for kodi 0.1.1\n## 简介\n- 获取并挂载bilibili任意视频和番剧的弹幕，支持配合bilibili插件显示弹幕，也可以用于本地nas上的番剧或者bangumi插件显示弹幕\n## 主要功能\n> - [x] 搜索视频/番剧弹幕  \n> - [x] 自动转换bilibili xml -> ass弹幕\n## 更新历史\n> -[v0.1.1]----------------------  \n > 修复 - 搜索结果与关键词不符  \n## 使用到的开源项目\n- https://github.com/taxigps/xbmc-addons-chinese\n- https://github.com/m13253/danmaku2ass\n- https://github.com/shaolin-kongfu/danmu\n"
  },
  {
    "path": "service.subtitles.bilibili/resources/lib/__init__.py",
    "content": "# Dummy file to make this directory a package.\n"
  },
  {
    "path": "service.subtitles.bilibili/resources/lib/xml2ass.py",
    "content": "#!/usr/bin/env python2\n# -*- coding: utf-8 -*-\n\n# The original author of this program, Danmaku2ASS, is StarBrilliant.\n# This file is released under General Public License version 3.\n# You should have received a copy of General Public License text alongside with\n# this program. If not, you can obtain it at http://gnu.org/copyleft/gpl.html .\n# This program comes with no warranty, the author will not be resopnsible for\n# any damage or problems caused by this program.\n\n# You can obtain a latest copy of Danmaku2ASS at:\n#   https://github.com/m13253/danmaku2ass\n# Please update to the latest version before complaining.\n\nfrom __future__ import unicode_literals\nfrom __future__ import with_statement\nfrom __future__ import division\nimport argparse\nimport calendar\nimport gettext\nimport io\nimport json\nimport logging\nimport math\nimport os\nimport random\nimport re\nimport sys\nimport time\nimport xml.dom.minidom\nfrom itertools import imap\nfrom io import open\n\n\nif not ((2, 7) <= sys.version_info < (3,)):\n    raise RuntimeError(u'this version of Danmaku2ASS only works on Python 2.7, please switch to the original version of Danmaku2ASS')\n\nbytes, str = str, unicode\n\ngettext.install(b'danmaku2ass', os.path.join(os.path.dirname(os.path.abspath(os.path.realpath(sys.argv[0] or b'locale'))), b'locale'))\n\n\ndef SeekZero(function):\n    def decorated_function(file_):\n        file_.seek(0)\n        try:\n            return function(file_)\n        finally:\n            file_.seek(0)\n    return decorated_function\n\n\ndef EOFAsNone(function):\n    def decorated_function(*args, **kwargs):\n        try:\n            return function(*args, **kwargs)\n        except EOFError:\n            return None\n    return decorated_function\n\n\n@SeekZero\n@EOFAsNone\ndef ProbeCommentFormat(f):\n    tmp = f.read(1)\n    if tmp == '[':\n        return 'Acfun'\n        # It is unwise to wrap a JSON object in an array!\n        # See this: http://haacked.com/archive/2008/11/20/anatomy-of-a-subtle-json-vulnerability.aspx/\n        # Do never follow what Acfun developers did!\n    elif tmp == '{':\n        tmp = f.read(14)\n        if tmp == '\"status_code\":':\n            return 'Tudou'\n        elif tmp == '\"root\":{\"total':\n            return 'sH5V'\n        elif tmp.strip().startswith('\"result'):\n            return 'Tudou2'\n    elif tmp == '<':\n        tmp = f.read(1)\n        if tmp == '?':\n            tmp = f.read(38)\n            if tmp == 'xml version=\"1.0\" encoding=\"UTF-8\"?><p':\n                return 'Niconico'\n            elif tmp == 'xml version=\"1.0\" encoding=\"UTF-8\"?><i':\n                return 'Bilibili'\n            elif tmp == 'xml version=\"1.0\" encoding=\"utf-8\"?><i':\n                return 'Bilibili'  # tucao.cc, with the same file format as Bilibili\n            elif tmp == 'xml version=\"1.0\" encoding=\"Utf-8\"?>\\n<':\n                return 'Bilibili'  # Komica, with the same file format as Bilibili\n            elif tmp == 'xml version=\"1.0\" encoding=\"UTF-8\"?>\\n<':\n                tmp = f.read(20)\n                if tmp == '!-- BoonSutazioData=':\n                    return 'Niconico'  # Niconico videos downloaded with NicoFox\n                else:\n                    return 'MioMio'\n        elif tmp == 'p':\n            return 'Niconico'  # Himawari Douga, with the same file format as Niconico Douga\n\n\n#\n# ReadComments**** protocol\n#\n# Input:\n#     f:         Input file\n#     fontsize:  Default font size\n#\n# Output:\n#     yield a tuple:\n#         (timeline, timestamp, no, comment, pos, color, size, height, width)\n#     timeline:  The position when the comment is replayed\n#     timestamp: The UNIX timestamp when the comment is submitted\n#     no:        A sequence of 1, 2, 3, ..., used for sorting\n#     comment:   The content of the comment\n#     pos:       0 for regular moving comment,\n#                1 for bottom centered comment,\n#                2 for top centered comment,\n#                3 for reversed moving comment\n#     color:     Font color represented in 0xRRGGBB,\n#                e.g. 0xffffff for white\n#     size:      Font size\n#     height:    The estimated height in pixels\n#                i.e. (comment.count('\\n')+1)*size\n#     width:     The estimated width in pixels\n#                i.e. CalculateLength(comment)*size\n#\n# After implementing ReadComments****, make sure to update ProbeCommentFormat\n# and CommentFormatMap.\n#\n\n\ndef ReadCommentsNiconico(f, fontsize):\n    NiconicoColorMap = {'red': 0xff0000, 'pink': 0xff8080, 'orange': 0xffcc00, 'yellow': 0xffff00, 'green': 0x00ff00, 'cyan': 0x00ffff, 'blue': 0x0000ff, 'purple': 0xc000ff, 'black': 0x000000, 'niconicowhite': 0xcccc99, 'white2': 0xcccc99, 'truered': 0xcc0033, 'red2': 0xcc0033, 'passionorange': 0xff6600, 'orange2': 0xff6600, 'madyellow': 0x999900, 'yellow2': 0x999900, 'elementalgreen': 0x00cc66, 'green2': 0x00cc66, 'marineblue': 0x33ffcc, 'blue2': 0x33ffcc, 'nobleviolet': 0x6633cc, 'purple2': 0x6633cc}\n    dom = xml.dom.minidom.parseString(f.read().encode('utf-8', 'replace'))\n    comment_element = dom.getElementsByTagName('chat')\n    for comment in comment_element:\n        try:\n            c = str(comment.childNodes[0].wholeText)\n            if c.startswith('/'):\n                continue  # ignore advanced comments\n            pos = 0\n            color = 0xffffff\n            size = fontsize\n            for mailstyle in str(comment.getAttribute('mail')).split():\n                if mailstyle == 'ue':\n                    pos = 1\n                elif mailstyle == 'shita':\n                    pos = 2\n                elif mailstyle == 'big':\n                    size = fontsize * 1.44\n                elif mailstyle == 'small':\n                    size = fontsize * 0.64\n                elif mailstyle in NiconicoColorMap:\n                    color = NiconicoColorMap[mailstyle]\n            yield (max(int(comment.getAttribute('vpos')), 0) * 0.01, int(comment.getAttribute('date')), int(comment.getAttribute('no')), c, pos, color, size, (c.count('\\n') + 1) * size, CalculateLength(c) * size)\n        except (AssertionError, AttributeError, IndexError, TypeError, ValueError):\n            logging.warning(_('Invalid comment: %s') % comment.toxml())\n            continue\n\n\ndef ReadCommentsAcfun(f, fontsize):\n    comment_element = json.load(f)\n    # after load acfun comment json file as python list, flatten the list\n    comment_element = [c for sublist in comment_element for c in sublist]\n    for i, comment in enumerate(comment_element):\n        try:\n            p = str(comment['c']).split(',')\n            assert len(p) >= 6\n            assert p[2] in ('1', '2', '4', '5', '7')\n            size = int(p[3]) * fontsize / 25.0\n            if p[2] != '7':\n                c = str(comment['m']).replace('\\\\r', '\\n').replace('\\r', '\\n')\n                yield (float(p[0]), int(p[5]), i, c, {'1': 0, '2': 0, '4': 2, '5': 1}[p[2]], int(p[1]), size, (c.count('\\n') + 1) * size, CalculateLength(c) * size)\n            else:\n                c = dict(json.loads(comment['m']))\n                yield (float(p[0]), int(p[5]), i, c, 'acfunpos', int(p[1]), size, 0, 0)\n        except (AssertionError, AttributeError, IndexError, TypeError, ValueError):\n            logging.warning(_('Invalid comment: %r') % comment)\n            continue\n\n\ndef ReadCommentsBilibili(f, fontsize):\n    dom = xml.dom.minidom.parseString(f.read().encode('utf-8', 'replace'))\n    comment_element = dom.getElementsByTagName('d')\n    for i, comment in enumerate(comment_element):\n        try:\n            p = str(comment.getAttribute('p')).split(',')\n            assert len(p) >= 5\n            assert p[1] in ('1', '4', '5', '6', '7', '8')\n            if p[1] in ('1', '4', '5', '6'):\n                c = str(comment.childNodes[0].wholeText).replace('/n', '\\n')\n                size = int(p[2]) * fontsize / 25.0\n                yield (float(p[0]), int(p[4]), i, c, {'1': 0, '4': 2, '5': 1, '6': 3}[p[1]], int(p[3]), size, (c.count('\\n') + 1) * size, CalculateLength(c) * size)\n            elif p[1] == '7':  # positioned comment\n                c = str(comment.childNodes[0].wholeText)\n                yield (float(p[0]), int(p[4]), i, c, 'bilipos', int(p[3]), int(p[2]), 0, 0)\n            elif p[1] == '8':\n                pass  # ignore scripted comment\n        except (AssertionError, AttributeError, IndexError, TypeError, ValueError):\n            logging.warning(_('Invalid comment: %s') % comment.toxml())\n            continue\n\n\ndef ReadCommentsTudou(f, fontsize):\n    comment_element = json.load(f)\n    for i, comment in enumerate(comment_element['comment_list']):\n        try:\n            assert comment['pos'] in (3, 4, 6)\n            c = str(comment['data'])\n            assert comment['size'] in (0, 1, 2)\n            size = {0: 0.64, 1: 1, 2: 1.44}[comment['size']] * fontsize\n            yield (int(comment['replay_time'] * 0.001), int(comment['commit_time']), i, c, {3: 0, 4: 2, 6: 1}[comment['pos']], int(comment['color']), size, (c.count('\\n') + 1) * size, CalculateLength(c) * size)\n        except (AssertionError, AttributeError, IndexError, TypeError, ValueError):\n            logging.warning(_('Invalid comment: %r') % comment)\n            continue\n\n\ndef ReadCommentsTudou2(f, fontsize):\n    comment_element = json.load(f)\n    for i, comment in enumerate(comment_element['result']):\n        try:\n            c = str(comment['content'])\n            prop = json.loads(str(comment['propertis']) or '{}')\n            size = int(prop.get('size', 1))\n            assert size in (0, 1, 2)\n            size = {0: 0.64, 1: 1, 2: 1.44}[size] * fontsize\n            pos = int(prop.get('pos', 3))\n            assert pos in (0, 3, 4, 6)\n            yield (\n                int(comment['playat'] * 0.001), int(comment['createtime'] * 0.001), i, c,\n                {0: 0, 3: 0, 4: 2, 6: 1}[pos],\n                int(prop.get('color', 0xffffff)), size, (c.count('\\n') + 1) * size, CalculateLength(c) * size)\n        except (AssertionError, AttributeError, IndexError, TypeError, ValueError):\n            logging.warning(_('Invalid comment: %r') % comment)\n            continue\n\n\ndef ReadCommentsMioMio(f, fontsize):\n    NiconicoColorMap = {'red': 0xff0000, 'pink': 0xff8080, 'orange': 0xffc000, 'yellow': 0xffff00, 'green': 0x00ff00, 'cyan': 0x00ffff, 'blue': 0x0000ff, 'purple': 0xc000ff, 'black': 0x000000}\n    dom = xml.dom.minidom.parseString(f.read().encode('utf-8', 'replace'))\n    comment_element = dom.getElementsByTagName('data')\n    for i, comment in enumerate(comment_element):\n        try:\n            message = comment.getElementsByTagName('message')[0]\n            c = str(message.childNodes[0].wholeText)\n            pos = 0\n            size = int(message.getAttribute('fontsize')) * fontsize / 25.0\n            yield (float(comment.getElementsByTagName('playTime')[0].childNodes[0].wholeText), int(calendar.timegm(time.strptime(comment.getElementsByTagName('times')[0].childNodes[0].wholeText, '%Y-%m-%d %H:%M:%S'))) - 28800, i, c, {'1': 0, '4': 2, '5': 1}[message.getAttribute('mode')], int(message.getAttribute('color')), size, (c.count('\\n') + 1) * size, CalculateLength(c) * size)\n        except (AssertionError, AttributeError, IndexError, TypeError, ValueError):\n            logging.warning(_('Invalid comment: %s') % comment.toxml())\n            continue\n\n\ndef ReadCommentsSH5V(f, fontsize):\n    comment_element = json.load(f)\n    for i, comment in enumerate(comment_element[\"root\"][\"bgs\"]):\n        try:\n            c_at = str(comment['at'])\n            c_type = str(comment['type'])\n            c_date = str(comment['timestamp'])\n            c_color = str(comment['color'])\n            c = str(comment['text'])\n            size = fontsize\n            if c_type != '7':\n                yield (float(c_at), int(c_date), i, c, {'0': 0, '1': 0, '4': 2, '5': 1}[c_type], int(c_color[1:], 16), size, (c.count('\\n') + 1) * size, CalculateLength(c) * size)\n            else:\n                c_x = float(comment['x'])\n                c_y = float(comment['y'])\n                size = int(comment['size'])\n                dur = int(comment['dur'])\n                data1 = float(comment['data1'])\n                data2 = float(comment['data2'])\n                data3 = int(comment['data3'])\n                data4 = int(comment['data4'])\n                yield (float(c_at), int(c_date), i, c, 'sH5Vpos', int(c_color[1:], 16), size, 0, 0, c_x, c_y, dur, data1, data2, data3, data4)\n        except (AssertionError, AttributeError, IndexError, TypeError, ValueError):\n            logging.warning(_('Invalid comment: %r') % comment)\n            continue\n\n\nCommentFormatMap = {None: None, 'Niconico': ReadCommentsNiconico, 'Acfun': ReadCommentsAcfun, 'Bilibili': ReadCommentsBilibili, 'Tudou': ReadCommentsTudou, 'Tudou2': ReadCommentsTudou2, 'MioMio': ReadCommentsMioMio, 'sH5V': ReadCommentsSH5V}\n\n\ndef WriteCommentBilibiliPositioned(f, c, width, height, styleid):\n    # BiliPlayerSize = (512, 384)  # Bilibili player version 2010\n    # BiliPlayerSize = (540, 384)  # Bilibili player version 2012\n    BiliPlayerSize = (672, 438)  # Bilibili player version 2014\n    ZoomFactor = GetZoomFactor(BiliPlayerSize, (width, height))\n\n    def GetPosition(InputPos, isHeight):\n        isHeight = int(isHeight)  # True -> 1\n        if isinstance(InputPos, int):\n            return ZoomFactor[0] * InputPos + ZoomFactor[isHeight + 1]\n        elif isinstance(InputPos, float):\n            if InputPos > 1:\n                return ZoomFactor[0] * InputPos + ZoomFactor[isHeight + 1]\n            else:\n                return BiliPlayerSize[isHeight] * ZoomFactor[0] * InputPos + ZoomFactor[isHeight + 1]\n        else:\n            try:\n                InputPos = int(InputPos)\n            except ValueError:\n                InputPos = float(InputPos)\n            return GetPosition(InputPos, isHeight)\n\n    try:\n        comment_args = safe_list(json.loads(c[3]))\n        text = ASSEscape(str(comment_args[4]).replace('/n', '\\n'))\n        from_x = comment_args.get(0, 0)\n        from_y = comment_args.get(1, 0)\n        to_x = comment_args.get(7, from_x)\n        to_y = comment_args.get(8, from_y)\n        from_x = GetPosition(from_x, False)\n        from_y = GetPosition(from_y, True)\n        to_x = GetPosition(to_x, False)\n        to_y = GetPosition(to_y, True)\n        alpha = safe_list(str(comment_args.get(2, '1')).split('-'))\n        from_alpha = float(alpha.get(0, 1))\n        to_alpha = float(alpha.get(1, from_alpha))\n        from_alpha = 255 - round(from_alpha * 255)\n        to_alpha = 255 - round(to_alpha * 255)\n        rotate_z = int(comment_args.get(5, 0))\n        rotate_y = int(comment_args.get(6, 0))\n        lifetime = float(comment_args.get(3, 4500))\n        duration = int(comment_args.get(9, lifetime * 1000))\n        delay = int(comment_args.get(10, 0))\n        fontface = comment_args.get(12)\n        isborder = comment_args.get(11, 'true')\n        from_rotarg = ConvertFlashRotation(rotate_y, rotate_z, from_x, from_y, width, height)\n        to_rotarg = ConvertFlashRotation(rotate_y, rotate_z, to_x, to_y, width, height)\n        styles = ['\\\\org(%d, %d)' % (width / 2, height / 2)]\n        if from_rotarg[0:2] == to_rotarg[0:2]:\n            styles.append('\\\\pos(%.0f, %.0f)' % (from_rotarg[0:2]))\n        else:\n            styles.append('\\\\move(%.0f, %.0f, %.0f, %.0f, %.0f, %.0f)' % (from_rotarg[0:2] + to_rotarg[0:2] + (delay, delay + duration)))\n        styles.append('\\\\frx%.0f\\\\fry%.0f\\\\frz%.0f\\\\fscx%.0f\\\\fscy%.0f' % (from_rotarg[2:7]))\n        if (from_x, from_y) != (to_x, to_y):\n            styles.append('\\\\t(%d, %d, ' % (delay, delay + duration))\n            styles.append('\\\\frx%.0f\\\\fry%.0f\\\\frz%.0f\\\\fscx%.0f\\\\fscy%.0f' % (to_rotarg[2:7]))\n            styles.append(')')\n        if fontface:\n            styles.append('\\\\fn%s' % ASSEscape(fontface))\n        styles.append('\\\\fs%.0f' % (c[6] * ZoomFactor[0]))\n        if c[5] != 0xffffff:\n            styles.append('\\\\c&H%s&' % ConvertColor(c[5]))\n            if c[5] == 0x000000:\n                styles.append('\\\\3c&HFFFFFF&')\n        if from_alpha == to_alpha:\n            styles.append('\\\\alpha&H%02X' % from_alpha)\n        elif (from_alpha, to_alpha) == (255, 0):\n            styles.append('\\\\fad(%.0f,0)' % (lifetime * 1000))\n        elif (from_alpha, to_alpha) == (0, 255):\n            styles.append('\\\\fad(0, %.0f)' % (lifetime * 1000))\n        else:\n            styles.append('\\\\fade(%(from_alpha)d, %(to_alpha)d, %(to_alpha)d, 0, %(end_time).0f, %(end_time).0f, %(end_time).0f)' % {'from_alpha': from_alpha, 'to_alpha': to_alpha, 'end_time': lifetime * 1000})\n        if isborder == 'false':\n            styles.append('\\\\bord0')\n        f.write('Dialogue: -1,%(start)s,%(end)s,%(styleid)s,,0,0,0,,{%(styles)s}%(text)s\\n' % {'start': ConvertTimestamp(c[0]), 'end': ConvertTimestamp(c[0] + lifetime), 'styles': ''.join(styles), 'text': text, 'styleid': styleid})\n    except (IndexError, ValueError) as e:\n        try:\n            logging.warning(_('Invalid comment: %r') % c[3])\n        except IndexError:\n            logging.warning(_('Invalid comment: %r') % c)\n\n\ndef WriteCommentAcfunPositioned(f, c, width, height, styleid):\n    AcfunPlayerSize = (560, 400)\n    ZoomFactor = GetZoomFactor(AcfunPlayerSize, (width, height))\n\n    def GetPosition(InputPos, isHeight):\n        isHeight = int(isHeight)  # True -> 1\n        return AcfunPlayerSize[isHeight] * ZoomFactor[0] * InputPos * 0.001 + ZoomFactor[isHeight + 1]\n\n    def GetTransformStyles(x=None, y=None, scale_x=None, scale_y=None, rotate_z=None, rotate_y=None, color=None, alpha=None):\n        styles = []\n        out_x, out_y = x, y\n        if rotate_z is not None and rotate_y is not None:\n            assert x is not None\n            assert y is not None\n            rotarg = ConvertFlashRotation(rotate_y, rotate_z, x, y, width, height)\n            out_x, out_y = rotarg[0:2]\n            if scale_x is None:\n                scale_x = 1\n            if scale_y is None:\n                scale_y = 1\n            styles.append('\\\\frx%.0f\\\\fry%.0f\\\\frz%.0f\\\\fscx%.0f\\\\fscy%.0f' % (rotarg[2:5] + (rotarg[5] * scale_x, rotarg[6] * scale_y)))\n        else:\n            if scale_x is not None:\n                styles.append('\\\\fscx%.0f' % (scale_x * 100))\n            if scale_y is not None:\n                styles.append('\\\\fscy%.0f' % (scale_y * 100))\n        if color is not None:\n            styles.append('\\\\c&H%s&' % ConvertColor(color))\n            if color == 0x000000:\n                styles.append('\\\\3c&HFFFFFF&')\n        if alpha is not None:\n            alpha = 255 - round(alpha * 255)\n            styles.append('\\\\alpha&H%02X' % alpha)\n        return out_x, out_y, styles\n\n    def FlushCommentLine(f, text, styles, start_time, end_time, styleid):\n        if end_time > start_time:\n            f.write('Dialogue: -1,%(start)s,%(end)s,%(styleid)s,,0,0,0,,{%(styles)s}%(text)s\\n' % {'start': ConvertTimestamp(start_time), 'end': ConvertTimestamp(end_time), 'styles': ''.join(styles), 'text': text, 'styleid': styleid})\n\n    try:\n        comment_args = c[3]\n        text = ASSEscape(str(comment_args['n']).replace('\\r', '\\n'))\n        common_styles = ['\\org(%d, %d)' % (width / 2, height / 2)]\n        anchor = {0: 7, 1: 8, 2: 9, 3: 4, 4: 5, 5: 6, 6: 1, 7: 2, 8: 3}.get(comment_args.get('c', 0), 7)\n        if anchor != 7:\n            common_styles.append('\\\\an%s' % anchor)\n        font = comment_args.get('w')\n        if font:\n            font = dict(font)\n            fontface = font.get('f')\n            if fontface:\n                common_styles.append('\\\\fn%s' % ASSEscape(str(fontface)))\n            fontbold = bool(font.get('b'))\n            if fontbold:\n                common_styles.append('\\\\b1')\n        common_styles.append('\\\\fs%.0f' % (c[6] * ZoomFactor[0]))\n        isborder = bool(comment_args.get('b', True))\n        if not isborder:\n            common_styles.append('\\\\bord0')\n        to_pos = dict(comment_args.get('p', {'x': 0, 'y': 0}))\n        to_x = round(GetPosition(int(to_pos.get('x', 0)), False))\n        to_y = round(GetPosition(int(to_pos.get('y', 0)), True))\n        to_scale_x = float(comment_args.get('e', 1.0))\n        to_scale_y = float(comment_args.get('f', 1.0))\n        to_rotate_z = float(comment_args.get('r', 0.0))\n        to_rotate_y = float(comment_args.get('k', 0.0))\n        to_color = c[5]\n        to_alpha = float(comment_args.get('a', 1.0))\n        from_time = float(comment_args.get('t', 0.0))\n        action_time = float(comment_args.get('l', 3.0))\n        actions = list(comment_args.get('z', []))\n        to_out_x, to_out_y, transform_styles = GetTransformStyles(to_x, to_y, to_scale_x, to_scale_y, to_rotate_z, to_rotate_y, to_color, to_alpha)\n        FlushCommentLine(f, text, common_styles + ['\\\\pos(%.0f, %.0f)' % (to_out_x, to_out_y)] + transform_styles, c[0] + from_time, c[0] + from_time + action_time, styleid)\n        action_styles = transform_styles\n        for action in actions:\n            action = dict(action)\n            from_x, from_y = to_x, to_y\n            from_out_x, from_out_y = to_out_x, to_out_y\n            from_scale_x, from_scale_y = to_scale_x, to_scale_y\n            from_rotate_z, from_rotate_y = to_rotate_z, to_rotate_y\n            from_color, from_alpha = to_color, to_alpha\n            transform_styles, action_styles = action_styles, []\n            from_time += action_time\n            action_time = float(action.get('l', 0.0))\n            if 'x' in action:\n                to_x = round(GetPosition(int(action['x']), False))\n            if 'y' in action:\n                to_y = round(GetPosition(int(action['y']), True))\n            if 'f' in action:\n                to_scale_x = float(action['f'])\n            if 'g' in action:\n                to_scale_y = float(action['g'])\n            if 'c' in action:\n                to_color = int(action['c'])\n            if 't' in action:\n                to_alpha = float(action['t'])\n            if 'd' in action:\n                to_rotate_z = float(action['d'])\n            if 'e' in action:\n                to_rotate_y = float(action['e'])\n            to_out_x, to_out_y, action_styles = GetTransformStyles(to_x, to_y, from_scale_x, from_scale_y, to_rotate_z, to_rotate_y, from_color, from_alpha)\n            if (from_out_x, from_out_y) == (to_out_x, to_out_y):\n                pos_style = '\\\\pos(%.0f, %.0f)' % (to_out_x, to_out_y)\n            else:\n                pos_style = '\\\\move(%.0f, %.0f, %.0f, %.0f)' % (from_out_x, from_out_y, to_out_x, to_out_y)\n            styles = common_styles + transform_styles\n            styles.append(pos_style)\n            if action_styles:\n                styles.append('\\\\t(%s)' % (''.join(action_styles)))\n            FlushCommentLine(f, text, styles, c[0] + from_time, c[0] + from_time + action_time, styleid)\n    except (IndexError, ValueError) as e:\n        logging.warning(_('Invalid comment: %r') % c[3])\n\n\ndef WriteCommentSH5VPositioned(f, c, width, height, styleid):\n\n    def GetTransformStyles(x=None, y=None, fsize=None, rotate_z=None, rotate_y=None, color=None, alpha=None):\n        styles = []\n        if x is not None and y is not None:\n            styles.append('\\\\pos(%.0f, %.0f)' % (x, y))\n        if fsize is not None:\n            styles.append('\\\\fs%.0f' % fsize)\n        if rotate_y is not None and rotate_z is not None:\n            styles.append('\\\\frz%.0f' % rotate_z)\n            styles.append('\\\\fry%.0f' % rotate_y)\n        if color is not None:\n            styles.append('\\\\c&H%s&' % ConvertColor(color))\n            if color == 0x000000:\n                styles.append('\\\\3c&HFFFFFF&')\n        if alpha is not None:\n            alpha = 255 - round(alpha * 255)\n            styles.append('\\\\alpha&H%02X' % alpha)\n        return styles\n\n    def FlushCommentLine(f, text, styles, start_time, end_time, styleid):\n        if end_time > start_time:\n            f.write('Dialogue: -1,%(start)s,%(end)s,%(styleid)s,,0,0,0,,{%(styles)s}%(text)s\\n' % {'start': ConvertTimestamp(start_time), 'end': ConvertTimestamp(end_time), 'styles': ''.join(styles), 'text': text, 'styleid': styleid})\n\n    try:\n        text = ASSEscape(str(c[3]))\n        to_x = float(c[9]) * width\n        to_y = float(c[10]) * height\n        to_rotate_z = -int(c[14])\n        to_rotate_y = -int(c[15])\n        to_color = c[5]\n        to_alpha = float(c[12])\n        # Note: Alpha transition hasn't been worked out yet.\n        to_size = int(c[6]) * math.sqrt(width * height / 307200)\n        # Note: Because sH5V's data is the absolute size of font,temporarily solve by it at present.[*math.sqrt(width/640*height/480)]\n        # But it seems to be working fine...\n        from_time = float(c[0])\n        action_time = float(c[11]) / 1000\n        transform_styles = GetTransformStyles(to_x, to_y, to_size, to_rotate_z, to_rotate_y, to_color, to_alpha)\n        FlushCommentLine(f, text, transform_styles, from_time, from_time + action_time, styleid)\n    except (IndexError, ValueError) as e:\n        logging.warning(_('Invalid comment: %r') % c[3])\n\n\n# Result: (f, dx, dy)\n# To convert: NewX = f*x+dx, NewY = f*y+dy\ndef GetZoomFactor(SourceSize, TargetSize):\n    try:\n        if (SourceSize, TargetSize) == GetZoomFactor.Cached_Size:\n            return GetZoomFactor.Cached_Result\n    except AttributeError:\n        pass\n    GetZoomFactor.Cached_Size = (SourceSize, TargetSize)\n    try:\n        SourceAspect = SourceSize[0] / SourceSize[1]\n        TargetAspect = TargetSize[0] / TargetSize[1]\n        if TargetAspect < SourceAspect:  # narrower\n            ScaleFactor = TargetSize[0] / SourceSize[0]\n            GetZoomFactor.Cached_Result = (ScaleFactor, 0, (TargetSize[1] - TargetSize[0] / SourceAspect) / 2)\n        elif TargetAspect > SourceAspect:  # wider\n            ScaleFactor = TargetSize[1] / SourceSize[1]\n            GetZoomFactor.Cached_Result = (ScaleFactor, (TargetSize[0] - TargetSize[1] * SourceAspect) / 2, 0)\n        else:\n            GetZoomFactor.Cached_Result = (TargetSize[0] / SourceSize[0], 0, 0)\n        return GetZoomFactor.Cached_Result\n    except ZeroDivisionError:\n        GetZoomFactor.Cached_Result = (1, 0, 0)\n        return GetZoomFactor.Cached_Result\n\n\n# Calculation is based on https://github.com/jabbany/CommentCoreLibrary/issues/5#issuecomment-40087282\n#                     and https://github.com/m13253/danmaku2ass/issues/7#issuecomment-41489422\n# ASS FOV = width*4/3.0\n# But Flash FOV = width/math.tan(100*math.pi/360.0)/2 will be used instead\n# Result: (transX, transY, rotX, rotY, rotZ, scaleX, scaleY)\ndef ConvertFlashRotation(rotY, rotZ, X, Y, width, height):\n    def WrapAngle(deg):\n        return 180 - ((180 - deg) % 360)\n    rotY = WrapAngle(rotY)\n    rotZ = WrapAngle(rotZ)\n    if rotY in (90, -90):\n        rotY -= 1\n    if rotY == 0 or rotZ == 0:\n        outX = 0\n        outY = -rotY  # Positive value means clockwise in Flash\n        outZ = -rotZ\n        rotY *= math.pi / 180.0\n        rotZ *= math.pi / 180.0\n    else:\n        rotY *= math.pi / 180.0\n        rotZ *= math.pi / 180.0\n        outY = math.atan2(-math.sin(rotY) * math.cos(rotZ), math.cos(rotY)) * 180 / math.pi\n        outZ = math.atan2(-math.cos(rotY) * math.sin(rotZ), math.cos(rotZ)) * 180 / math.pi\n        outX = math.asin(math.sin(rotY) * math.sin(rotZ)) * 180 / math.pi\n    trX = (X * math.cos(rotZ) + Y * math.sin(rotZ)) / math.cos(rotY) + (1 - math.cos(rotZ) / math.cos(rotY)) * width / 2 - math.sin(rotZ) / math.cos(rotY) * height / 2\n    trY = Y * math.cos(rotZ) - X * math.sin(rotZ) + math.sin(rotZ) * width / 2 + (1 - math.cos(rotZ)) * height / 2\n    trZ = (trX - width / 2) * math.sin(rotY)\n    FOV = width * math.tan(2 * math.pi / 9.0) / 2\n    try:\n        scaleXY = FOV / (FOV + trZ)\n    except ZeroDivisionError:\n        logging.error('Rotation makes object behind the camera: trZ == %.0f' % trZ)\n        scaleXY = 1\n    trX = (trX - width / 2) * scaleXY + width / 2\n    trY = (trY - height / 2) * scaleXY + height / 2\n    if scaleXY < 0:\n        scaleXY = -scaleXY\n        outX += 180\n        outY += 180\n        logging.error('Rotation makes object behind the camera: trZ == %.0f < %.0f' % (trZ, FOV))\n    return (trX, trY, WrapAngle(outX), WrapAngle(outY), WrapAngle(outZ), scaleXY * 100, scaleXY * 100)\n\n\ndef ProcessComments(comments, f, width, height, bottomReserved, fontface, fontsize, alpha, duration_marquee, duration_still, reduced, progress_callback):\n    styleid = 'Danmaku2ASS_%04x' % random.randint(0, 0xffff)\n    WriteASSHead(f, width, height, fontface, fontsize, alpha, styleid)\n    rows = [[None] * (height - bottomReserved + 1) for i in xrange(4)]\n    for idx, i in enumerate(comments):\n        if progress_callback and idx % 1000 == 0:\n            progress_callback(idx, len(comments))\n        if isinstance(i[4], int):\n            row = 0\n            rowmax = height - bottomReserved - i[7]\n            while row <= rowmax:\n                freerows = TestFreeRows(rows, i, row, width, height, bottomReserved, duration_marquee, duration_still)\n                if freerows >= i[7]:\n                    MarkCommentRow(rows, i, row)\n                    WriteComment(f, i, row, width, height, bottomReserved, fontsize, duration_marquee, duration_still, styleid)\n                    break\n                else:\n                    row += freerows or 1\n            else:\n                if not reduced:\n                    row = FindAlternativeRow(rows, i, height, bottomReserved)\n                    MarkCommentRow(rows, i, row)\n                    WriteComment(f, i, row, width, height, bottomReserved, fontsize, duration_marquee, duration_still, styleid)\n        elif i[4] == 'bilipos':\n            WriteCommentBilibiliPositioned(f, i, width, height, styleid)\n        elif i[4] == 'acfunpos':\n            WriteCommentAcfunPositioned(f, i, width, height, styleid)\n        elif i[4] == 'sH5Vpos':\n            WriteCommentSH5VPositioned(f, i, width, height, styleid)\n        else:\n            logging.warning(_('Invalid comment: %r') % i[3])\n    if progress_callback:\n        progress_callback(len(comments), len(comments))\n\n\ndef TestFreeRows(rows, c, row, width, height, bottomReserved, duration_marquee, duration_still):\n    res = 0\n    rowmax = height - bottomReserved\n    targetRow = None\n    if c[4] in (1, 2):\n        while row < rowmax and res < c[7]:\n            if targetRow != rows[c[4]][row]:\n                targetRow = rows[c[4]][row]\n                if targetRow and targetRow[0] + duration_still > c[0]:\n                    break\n            row += 1\n            res += 1\n    else:\n        try:\n            thresholdTime = c[0] - duration_marquee * (1 - width / (c[8] + width))\n        except ZeroDivisionError:\n            thresholdTime = c[0] - duration_marquee\n        while row < rowmax and res < c[7]:\n            if targetRow != rows[c[4]][row]:\n                targetRow = rows[c[4]][row]\n                try:\n                    if targetRow and (targetRow[0] > thresholdTime or targetRow[0] + targetRow[8] * duration_marquee / (targetRow[8] + width) > c[0]):\n                        break\n                except ZeroDivisionError:\n                    pass\n            row += 1\n            res += 1\n    return res\n\n\ndef FindAlternativeRow(rows, c, height, bottomReserved):\n    res = 0\n    for row in xrange(height - bottomReserved - int(math.ceil(c[7]))):\n        if not rows[c[4]][row]:\n            return row\n        elif rows[c[4]][row][0] < rows[c[4]][res][0]:\n            res = row\n    return res\n\n\ndef MarkCommentRow(rows, c, row):\n    try:\n        for i in xrange(row, row + int(math.ceil(c[7]))):\n            rows[c[4]][i] = c\n    except IndexError:\n        pass\n\n\ndef WriteASSHead(f, width, height, fontface, fontsize, alpha, styleid):\n    f.write(\n        '''[Script Info]\n; Script generated by Danmaku2ASS\n; https://github.com/m13253/danmaku2ass\nScript Updated By: Danmaku2ASS (https://github.com/m13253/danmaku2ass)\nScriptType: v4.00+\nPlayResX: %(width)d\nPlayResY: %(height)d\nAspect Ratio: %(width)d:%(height)d\nCollisions: Normal\nWrapStyle: 2\nScaledBorderAndShadow: yes\nYCbCr Matrix: TV.601\n\n[V4+ Styles]\nFormat: Name, Fontname, Fontsize, PrimaryColour, SecondaryColour, OutlineColour, BackColour, Bold, Italic, Underline, StrikeOut, ScaleX, ScaleY, Spacing, Angle, BorderStyle, Outline, Shadow, Alignment, MarginL, MarginR, MarginV, Encoding\nStyle: %(styleid)s, %(fontface)s, %(fontsize).0f, &H%(alpha)02XFFFFFF, &H%(alpha)02XFFFFFF, &H%(alpha)02X000000, &H%(alpha)02X000000, 0, 0, 0, 0, 100, 100, 0.00, 0.00, 1, %(outline).0f, 0, 7, 0, 0, 0, 0\n\n[Events]\nFormat: Layer, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text\n''' % {'width': width, 'height': height, 'fontface': fontface, 'fontsize': fontsize, 'alpha': 255 - round(alpha * 255), 'outline': max(fontsize / 25.0, 1), 'styleid': styleid}\n    )\n\n\ndef WriteComment(f, c, row, width, height, bottomReserved, fontsize, duration_marquee, duration_still, styleid):\n    text = ASSEscape(c[3])\n    styles = []\n    if c[4] == 1:\n        styles.append('\\\\an8\\\\pos(%(halfwidth)d, %(row)d)' % {'halfwidth': width / 2, 'row': row})\n        duration = duration_still\n    elif c[4] == 2:\n        styles.append('\\\\an2\\\\pos(%(halfwidth)d, %(row)d)' % {'halfwidth': width / 2, 'row': ConvertType2(row, height, bottomReserved)})\n        duration = duration_still\n    elif c[4] == 3:\n        styles.append('\\\\move(%(neglen)d, %(row)d, %(width)d, %(row)d)' % {'width': width, 'row': row, 'neglen': -math.ceil(c[8])})\n        duration = duration_marquee\n    else:\n        styles.append('\\\\move(%(width)d, %(row)d, %(neglen)d, %(row)d)' % {'width': width, 'row': row, 'neglen': -math.ceil(c[8])})\n        duration = duration_marquee\n    if not (-1 < c[6] - fontsize < 1):\n        styles.append('\\\\fs%.0f' % c[6])\n    if c[5] != 0xffffff:\n        styles.append('\\\\c&H%s&' % ConvertColor(c[5]))\n        if c[5] == 0x000000:\n            styles.append('\\\\3c&HFFFFFF&')\n    f.write('Dialogue: 2,%(start)s,%(end)s,%(styleid)s,,0000,0000,0000,,{%(styles)s}%(text)s\\n' % {'start': ConvertTimestamp(c[0]), 'end': ConvertTimestamp(c[0] + duration), 'styles': ''.join(styles), 'text': text, 'styleid': styleid})\n\n\ndef ASSEscape(s):\n    def ReplaceLeadingSpace(s):\n        sstrip = s.strip(' ')\n        slen = len(s)\n        if slen == len(sstrip):\n            return s\n        else:\n            llen = slen - len(s.lstrip(' '))\n            rlen = slen - len(s.rstrip(' '))\n            return ''.join(('\\u2007' * llen, sstrip, '\\u2007' * rlen))\n    return '\\\\N'.join((ReplaceLeadingSpace(i) or ' ' for i in str(s).replace('\\\\', '\\\\\\\\').replace('{', '\\\\{').replace('}', '\\\\}').split('\\n')))\n\n\ndef CalculateLength(s):\n    return max(imap(len, s.split('\\n')))  # May not be accurate\n\n\ndef ConvertTimestamp(timestamp):\n    timestamp = round(timestamp * 100.0)\n    hour, minute = divmod(timestamp, 360000)\n    minute, second = divmod(minute, 6000)\n    second, centsecond = divmod(second, 100)\n    return '%d:%02d:%02d.%02d' % (int(hour), int(minute), int(second), int(centsecond))\n\n\ndef ConvertColor(RGB, width=1280, height=576):\n    if RGB == 0x000000:\n        return '000000'\n    elif RGB == 0xffffff:\n        return 'FFFFFF'\n    R = (RGB >> 16) & 0xff\n    G = (RGB >> 8) & 0xff\n    B = RGB & 0xff\n    if width < 1280 and height < 576:\n        return '%02X%02X%02X' % (B, G, R)\n    else:  # VobSub always uses BT.601 colorspace, convert to BT.709\n        ClipByte = lambda x: 255 if x > 255 else 0 if x < 0 else round(x)\n        return '%02X%02X%02X' % (\n            ClipByte(R * 0.00956384088080656 + G * 0.03217254540203729 + B * 0.95826361371715607),\n            ClipByte(R * -0.10493933142075390 + G * 1.17231478191855154 + B * -0.06737545049779757),\n            ClipByte(R * 0.91348912373987645 + G * 0.07858536372532510 + B * 0.00792551253479842)\n        )\n\n\ndef ConvertType2(row, height, bottomReserved):\n    return height - bottomReserved - row\n\n\ndef ConvertToFile(filename_or_file, *args, **kwargs):\n    if isinstance(filename_or_file, bytes):\n        filename_or_file = str(bytes(filename_or_file).decode('utf-8', 'replace'))\n    if isinstance(filename_or_file, str):\n        return open(filename_or_file, *args, **kwargs)\n    else:\n        return filename_or_file\n\n\ndef FilterBadChars(f):\n    s = f.read()\n    s = re.sub('[\\\\x00-\\\\x08\\\\x0b\\\\x0c\\\\x0e-\\\\x1f]', '\\ufffd', s)\n    return io.StringIO(s)\n\n\nclass safe_list(list):\n\n    def get(self, index, default=None):\n        try:\n            return self[index]\n        except IndexError:\n            return default\n\n\ndef export(func):\n    global __all__\n    try:\n        __all__.append(func.__name__)\n    except NameError:\n        __all__ = [func.__name__]\n    return func\n\n\n@export\ndef Danmaku2ASS(input_files, output_file, stage_width, stage_height, reserve_blank=0, font_face=_('(FONT) sans-serif')[7:], font_size=25.0, text_opacity=1.0, duration_marquee=5.0, duration_still=5.0, is_reduce_comments=False, progress_callback=None):\n    fo = None\n    comments = ReadComments(input_files, font_size)\n    try:\n        if output_file:\n            fo = ConvertToFile(output_file, 'w', encoding='utf-8-sig', errors='replace', newline='\\r\\n')\n        else:\n            fo = sys.stdout\n        ProcessComments(comments, fo, stage_width, stage_height, reserve_blank, font_face, font_size, text_opacity, duration_marquee, duration_still, is_reduce_comments, progress_callback)\n    finally:\n        if output_file and fo != output_file:\n            fo.close()\n\n\n@export\ndef ReadComments(input_files, font_size=25.0, progress_callback=None):\n    if isinstance(input_files, bytes):\n        input_files = str(bytes(input_files).decode('utf-8', 'replace'))\n    if isinstance(input_files, str):\n        input_files = [input_files]\n    else:\n        input_files = list(input_files)\n    comments = []\n    for idx, i in enumerate(input_files):\n        if progress_callback:\n            progress_callback(idx, len(input_files))\n        with ConvertToFile(i, 'r', encoding='utf-8', errors='replace') as f:\n            CommentProcessor = GetCommentProcessor(f)\n            if not CommentProcessor:\n                raise ValueError(_('Unknown comment file format: %s') % i)\n            comments.extend(CommentProcessor(FilterBadChars(f), font_size))\n    if progress_callback:\n        progress_callback(len(input_files), len(input_files))\n    comments.sort()\n    return comments\n\n\n@export\ndef GetCommentProcessor(input_file):\n    return CommentFormatMap[ProbeCommentFormat(input_file)]\n\n\ndef main():\n    logging.basicConfig(format='%(levelname)s: %(message)s')\n    if len(sys.argv) == 1:\n        sys.argv.append('--help')\n    parser = argparse.ArgumentParser()\n    parser.add_argument(b'-o', b'--output', metavar=_(b'OUTPUT'), help=_(b'Output file'))\n    parser.add_argument(b'-s', b'--size', metavar=_(b'WIDTHxHEIGHT'), required=True, help=_(b'Stage size in pixels'))\n    parser.add_argument(b'-fn', b'--font', metavar=_(b'FONT'), help=_(b'Specify font face [default: %s]') % _(b'(FONT) sans-serif')[7:], default=_('(FONT) sans-serif')[7:])\n    parser.add_argument(b'-fs', b'--fontsize', metavar=_(b'SIZE'), help=(_(b'Default font size [default: %s]') % 25), type=float, default=25.0)\n    parser.add_argument(b'-a', b'--alpha', metavar=_(b'ALPHA'), help=_(b'Text opacity'), type=float, default=1.0)\n    parser.add_argument(b'-dm', b'--duration-marquee', metavar=_(b'SECONDS'), help=_(b'Duration of scrolling comment display [default: %s]') % 5, type=float, default=5.0)\n    parser.add_argument(b'-ds', b'--duration-still', metavar=_(b'SECONDS'), help=_(b'Duration of still comment display [default: %s]') % 5, type=float, default=5.0)\n    parser.add_argument(b'-p', b'--protect', metavar=_(b'HEIGHT'), help=_(b'Reserve blank on the bottom of the stage'), type=int, default=0)\n    parser.add_argument(b'-r', b'--reduce', action=b'store_true', help=_(b'Reduce the amount of comments if stage is full'))\n    parser.add_argument(b'file', metavar=_(b'FILE'), nargs=b'+', help=_(b'Comment file to be processed'))\n    args = parser.parse_args()\n    try:\n        width, height = bytes(args.size).decode('utf-8', 'replace').split('x', 1)\n        width = int(width)\n        height = int(height)\n    except ValueError:\n        raise ValueError(_('Invalid stage size: %r') % args.size)\n    Danmaku2ASS(args.file, args.output, width, height, args.protect, args.font, args.fontsize, args.alpha, args.duration_marquee, args.duration_still, args.reduce)\n\n\nif __name__ == '__main__':\n    main()"
  },
  {
    "path": "service.subtitles.bilibili/service.py",
    "content": "# -*- coding: utf-8 -*-\n\nimport os\nimport sys\nimport xbmc\nimport urllib\nimport urllib2\nimport json\nimport xbmcvfs\nimport requests\nimport xbmcaddon\nimport xbmcgui,xbmcplugin\nimport re\nfrom bs4 import BeautifulSoup\nimport time\n\n\n\n__addon__      = xbmcaddon.Addon()\n__author__     = __addon__.getAddonInfo('author')\n__scriptid__   = __addon__.getAddonInfo('id')\n__scriptname__ = __addon__.getAddonInfo('name')\n__version__    = __addon__.getAddonInfo('version')\n__language__   = __addon__.getLocalizedString\n\n__cwd__        = xbmc.translatePath( __addon__.getAddonInfo('path') ).decode(\"utf-8\")\n__profile__    = xbmc.translatePath( __addon__.getAddonInfo('profile') ).decode(\"utf-8\")\n__resource__   = xbmc.translatePath( os.path.join( __cwd__, 'resources', 'lib' ) ).decode(\"utf-8\")\n__temp__       = xbmc.translatePath( os.path.join( __profile__, 'temp') ).decode(\"utf-8\")\n\nsys.path.append (__resource__)\nimport xml2ass\n\nZIMUZU_BASE = 'https://api.bilibili.com'\n\nZIMUZU_API = ZIMUZU_BASE + '/x/web-interface/search/all/v2?keyword=%s'\nUserAgent  = 'Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; Trident/6.0)'\n\ndef log(module, msg):\n    pass\n    # xbmc.log((u\"%s::%s - %s\" % (__scriptname__,module,msg,)).decode('utf-8'),level=xbmc.LOGDEBUG )\n\ndef GetHttpData(url, data=''):\n    log(sys._getframe().f_code.co_name, \"url [%s]\" % (url))\n    if data:\n        req = urllib2.Request(url, data)\n    else:\n        req = urllib2.Request(url)\n    req.add_header('User-Agent', UserAgent)\n    try:\n        response = urllib2.urlopen(req)\n        httpdata = response.read()\n        response.close()\n    except:\n        log(sys._getframe().f_code.co_name, \"Error (%d) [%s]\" % (\n               sys.exc_info()[2].tb_lineno,\n               sys.exc_info()[1]\n               ))\n        return ''\n    return httpdata\n\ndef Search( item ):\n    subtitles_list = []\n\n    log(sys._getframe().f_code.co_name, \"Search for [%s] by name\" % (os.path.basename( item['file_original_path'] )))\n    if item['mansearch']:\n        search_string = item['mansearchstr']\n    elif len(item['tvshow']) > 0:\n        search_string = \"%s S%.2dE%.2d\" % (item['tvshow'],\n                                           int(item['season']),\n                                           int(item['episode']),)\n    else:\n        search_string = item['title']\n    #search_string = search_string.replace(' ','')\n    # dialog = xbmcgui.Dialog()\n    # dialog.textviewer('错误提示', search_string)\n    if search_string.find('%') != -1:\n        url = ZIMUZU_API % search_string\n    else:\n        url = ZIMUZU_API % urllib.quote(search_string)\n    data = GetHttpData(url)\n    try:\n        j = json.loads(data)\n    except:\n        return\n    \n    #番剧\n    bgm = j['data']['result'][3]['data']\n    for index in range(len(bgm)):\n        subtitles_list.append({\"language_name\":\"Chinese\", \"filename\":'[COLOR pink][' + bgm[index]['season_type_name'] + '] ' + bgm[index]['title'].replace('<em class=\"keyword\">','').replace('</em>','') + '[/COLOR]', \"link\":'https://www.bilibili.com/bangumi/play/ss' + str(bgm[index]['season_id']), \"language_flag\":'zh', \"rating\":\"0\"})\n    #影视\n    mov = j['data']['result'][4]['data']\n    for index in range(len(mov)):\n        subtitles_list.append({\"language_name\":\"Chinese\", \"filename\":'[COLOR pink][' + mov[index]['season_type_name'] + '] ' +  mov[index]['title'].replace('<em class=\"keyword\">','').replace('</em>','') + '[/COLOR]', \"link\":'https://www.bilibili.com/bangumi/play/ss' + str(mov[index]['season_id']), \"language_flag\":'zh', \"rating\":\"0\"})\n    #视频\n    k = j['data']['result'][8]['data']\n    for index in range(len(k)):\n        subtitles_list.append({\"language_name\":\"Chinese\", \"filename\":'[' + k[index]['typename'] + ']' + k[index]['title'].replace('<em class=\"keyword\">','').replace('</em>',''), \"link\":'http://www.bilibili.com/video/' + k[index]['bvid'], \"language_flag\":'zh', \"rating\":\"0\"})\n    # results = j['data']['result']\n    # for it in results:\n    #     link = ZIMUZU_BASE + it.find(\"div\", class_=\"fl-info\").a.get('href').encode('utf-8')\n    #     title = it.find(\"strong\", class_=\"list_title\").text.encode('utf-8')\n    #     subtitles_list.append({\"language_name\":\"Chinese\", \"filename\":title, \"link\":link, \"language_flag\":'zh', \"rating\":\"0\"})\n\n    if subtitles_list:\n        for it in subtitles_list:\n            listitem = xbmcgui.ListItem(label=it[\"language_name\"],\n                                  label2=it[\"filename\"],\n                                  iconImage=it[\"rating\"],\n                                  thumbnailImage=it[\"language_flag\"])\n            listitem.setProperty( \"sync\", \"false\" )\n            listitem.setProperty( \"hearing_imp\", \"false\" )\n\n            url = \"plugin://%s/?action=download&link=%s\" % (__scriptid__,\n                                                            it[\"link\"]\n                                                            )\n            xbmcplugin.addDirectoryItem(handle=int(sys.argv[1]),url=url,listitem=listitem,isFolder=False)\n\ndef Download(url):\n    if not xbmcvfs.exists(__temp__.replace('\\\\','/')):\n        xbmcvfs.mkdirs(__temp__)\n    dirs, files = xbmcvfs.listdir(__temp__)\n    \n    for file in files:\n        xbmcvfs.delete(os.path.join(__temp__, file.decode(\"utf-8\")))\n    \n    subtitle_list = []\n    try:\n        #data = GetHttpData(url)\n        if re.match('https://',url) == None:\n            if re.match('http://',url) != None:\n                url = 'https://'+url[7:]\n            else:\n                dialog = xbmcgui.Dialog()\n                ok = dialog.ok('错误提示', '非法url')\n\n        ifbangumiurl = re.match('https://www.bilibili.com/bangumi/play/ss',url)\n        ifvideourl = re.match('https://www.bilibili.com/video/',url)\n        if ifbangumiurl or ifvideourl != None:\n            if ifbangumiurl != None:\n                ssid = re.search(r'ss[0-9]+', url)\n                ssid = ssid.group()\n                ssid = ssid[2:]\n                r = GetHttpData('http://api.bilibili.com/pgc/web/season/section?season_id=' + ssid)\n                j = json.loads(r)\n        \n                titles = []\n                cids = []\n                for p in range(len(j['result']['main_section']['episodes'])):\n                    titles.append(u'正片 - ' + j['result']['main_section']['episodes'][p]['title'])\n                    cids.append(j['result']['main_section']['episodes'][p]['cid'])\n                for index in range(len(j['result']['section'])):\n                    duopname = j['result']['section'][index]['title']\n                    for i in range(len(j['result']['section'][index]['episodes'])):\n                        titles.append(duopname + u' - ' + j['result']['section'][index]['episodes'][i]['title'])\n                        cids.append(j['result']['section'][index]['episodes'][i]['cid'])\n\n            if ifvideourl != None:\n                bvid = ''\n                aid = ''\n                if re.search(r'[Bb]{1}[Vv]{1}[a-zA-Z0-9]+', url):\n                    bvid = re.search(r'[Bb]{1}[Vv]{1}[a-zA-Z0-9]+', url)\n                    bvid = bvid.group()\n                    vurl = 'https://api.bilibili.com/x/web-interface/view?bvid='+bvid\n                if re.search('[aA]{1}[vV]{1}[0-9]+', url):\n                    aid = re.search(r'[aA]{1}[vV]{1}[0-9]+', url)\n                    aid = aid.group()\n                    aid = aid[2:]\n                    vurl = 'https://api.bilibili.com/x/web-interface/view?aid='+aid\n                r = GetHttpData(vurl)\n                j = json.loads(r)\n                #bvid = j['data']['pages'][0]['bvid']\n                titles = []\n                cids = []\n                for p in range(len(j['data']['pages'])):\n                    titles.append(j['data']['pages'][p]['part'])\n                    cids.append(j['data']['pages'][p]['cid'])\n            if len(titles) > 1:\n                sel = xbmcgui.Dialog().select('请选择分集的弹幕', titles)\n                if sel == -1:\n                    sel = 0\n            else:\n                sel = 0\n        r = requests.get('https://api.bilibili.com/x/v1/dm/list.so?oid=' + str(cids[sel]))\n        r.encoding = 'utf-8'\n        data = r.text\n        pDialog = xbmcgui.DialogProgress()\n        pDialog.create('获取弹幕', '初始化...')\n        pDialog.update(50, '获取弹幕成功...')\n        # dialog = xbmcgui.Dialog()\n        # dialog.textviewer('错误提示', str(data.encode('utf-8')))\n    except:\n        return []\n    if len(data) < 1024:\n        return []\n    tmpfile = os.path.join(__temp__, \"cid%s%s.ass\" % (str(cids[sel]), os.path.splitext(url)[1])).replace('\\\\','/')\n    # dialog = xbmcgui.Dialog()\n    # dialog.textviewer('错误提示', str(tmpfile))\n    with open(tmpfile, \"wb\") as subFile:\n        subFile.write(data.encode('utf-8'))\n    pDialog.update(75, '写入xml成功...')\n    xbmc.sleep(500)\n    xml2ass.Danmaku2ASS(tmpfile,tmpfile,960,540,duration_marquee=10.0)\n    pDialog.update(100, '转换ass成功...')\n    pDialog.close()\n    subtitle_list.append(tmpfile)\n    return subtitle_list\n\ndef get_params():\n    param=[]\n    paramstring=sys.argv[2]\n    if len(paramstring)>=2:\n        params=paramstring\n        cleanedparams=params.replace('?','')\n        if (params[len(params)-1]=='/'):\n            params=params[0:len(params)-2]\n        pairsofparams=cleanedparams.split('&')\n        param={}\n        for i in range(len(pairsofparams)):\n            splitparams={}\n            splitparams=pairsofparams[i].split('=')\n            if (len(splitparams))==2:\n                param[splitparams[0]]=splitparams[1]\n\n    return param\n\nparams = get_params()\nif params['action'] == 'search' or params['action'] == 'manualsearch':\n    item = {}\n    item['temp']               = False\n    item['rar']                = False\n    item['mansearch']          = False\n    item['year']               = xbmc.getInfoLabel(\"VideoPlayer.Year\")                           # Year\n    item['season']             = str(xbmc.getInfoLabel(\"VideoPlayer.Season\"))                    # Season\n    item['episode']            = str(xbmc.getInfoLabel(\"VideoPlayer.Episode\"))                   # Episode\n    item['tvshow']             = xbmc.getInfoLabel(\"VideoPlayer.TVshowtitle\")                    # Show\n    item['title']              = xbmc.getInfoLabel(\"VideoPlayer.OriginalTitle\")                  # try to get original title\n    item['file_original_path'] = urllib.unquote(xbmc.Player().getPlayingFile().decode('utf-8'))  # Full path of a playing file\n    item['3let_language']      = []\n\n    if 'searchstring' in params:\n        item['mansearch'] = True\n        item['mansearchstr'] = params['searchstring']\n\n    for lang in urllib.unquote(params['languages']).decode('utf-8').split(\",\"):\n        item['3let_language'].append(xbmc.convertLanguage(lang,xbmc.ISO_639_2))\n\n    if item['title'] == \"\":\n        item['title']  = xbmc.getInfoLabel(\"VideoPlayer.Title\")                       # no original title, get just Title\n        if item['title'] == os.path.basename(xbmc.Player().getPlayingFile()):         # get movie title and year if is filename\n            title, year = xbmc.getCleanMovieTitle(item['title'])\n            item['title'] = title.replace('[','').replace(']','')\n            item['year'] = year\n\n    if item['episode'].lower().find(\"s\") > -1:                                        # Check if season is \"Special\"\n        item['season'] = \"0\"                                                          #\n        item['episode'] = item['episode'][-1:]\n\n    if ( item['file_original_path'].find(\"http\") > -1 ):\n        item['temp'] = True\n\n    elif ( item['file_original_path'].find(\"rar://\") > -1 ):\n        item['rar']  = True\n        item['file_original_path'] = os.path.dirname(item['file_original_path'][6:])\n\n    elif ( item['file_original_path'].find(\"stack://\") > -1 ):\n        stackPath = item['file_original_path'].split(\" , \")\n        item['file_original_path'] = stackPath[0][8:]\n\n    Search(item)\n\nelif params['action'] == 'download':\n    subs = Download(params[\"link\"])\n    for sub in subs:\n        listitem = xbmcgui.ListItem(label=sub)\n        xbmcplugin.addDirectoryItem(handle=int(sys.argv[1]),url=sub,listitem=listitem,isFolder=False)\n\nxbmcplugin.endOfDirectory(int(sys.argv[1]))\n"
  },
  {
    "path": "step1/README.MD",
    "content": "# hi 这里是存放python抓取xx视频列表的原型代码"
  },
  {
    "path": "step1/acfun-rank-list.py",
    "content": "#acfun爬全站排行榜列表\nimport json\nimport requests\n\nurl = 'https://www.acfun.cn/rest/pc-direct/rank/channel?channelId=155&subChannelId=&rankLimit=30&rankPeriod=WEEK'\n    \nheaders = {'user-agent' : 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.122 Safari/537.36'}\nrec = requests.get(url,headers=headers)\n#print(rec.text)\nj = json.loads(rec.text)\n#j是字典\nk = j['rankList']\n#k是列表对象\nprint('视频总数：')\nprint(len(k))\n\nfor index in range(len(k)):\n    item = k[index]\n    print('视频标题：')\n    print(item['contentTitle'])\n    print('视频图片：')\n    print(item['coverUrl'])\n    print('视频地址：')\n    print(item['shareUrl'])\n    print('---'*30)\n#写完这个，学到了很多python关于list和dict的东西\n#zhengfan2014 于2020/3/2 23.56\n\n    "
  },
  {
    "path": "step1/acfun-video.py",
    "content": "import requests\nimport json\n#多p：https://www.acfun.cn/v/ac3202810_4\n#单p：https://www.acfun.cn/v/ac12607834\nurl = 'https://www.acfun.cn/v/ac3202810_4'\nheaders = {'user-agent' : 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.122 Safari/537.36'}\nrec = requests.get(url,headers=headers)\n#print(rec.text)\n\ncutjson = rec.text\nstr1 = cutjson.find('window.pageInfo = window.videoInfo = ')\nstr2 = cutjson.find('window.qualityConfig =')\nvideoinfo = cutjson[str1+37:str2-10]\nj = json.loads(videoinfo)\n\nprint(j['title'])\nprint(j['description'])\n\nif len(j['videoList']) == 1:\n  #单p\n  #print(j['currentVideoInfo']['ksPlayJson'])\n\n  j2 = json.loads(j['currentVideoInfo']['ksPlayJson'])\n  for index in range(len(j2)):\n    print(j2['adaptationSet']['representation'][index]['qualityType'])\n    print(j2['adaptationSet']['representation'][index]['url'])\n    print('**********'*30)\nelse:\n  #duop\n  for index in range(len(j['videoList'])):\n    print(j['videoList'][index]['title'])\n  print(j['currentVideoInfo']['ksPlayJson'])"
  },
  {
    "path": "step1/bangumi.py",
    "content": ""
  },
  {
    "path": "step1/bilibili-all-list.py",
    "content": "#bangumi-list和video-list的整合\n#!/usr/bin/python\n# -*- coding: UTF-8 -*- \nfrom bs4 import BeautifulSoup\nimport re\nimport requests\nimport json\n\nheaders = {'user-agent' : 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.122 Safari/537.36'}\nmheaders = {'user-agent' : 'Mozilla/5.0 (Linux; Android 10; Z832 Build/MMB29M) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.116 Mobile Safari/537.36'}\nurl = 'https://www.bilibili.com/bangumi/play/ss29366/'\n\n#多p：https://www.bilibili.com/video/av84351845\n#单p：https://www.bilibili.com/video/av91222524/\n\n\nif re.match('https://',url) == None:\n  if re.match('http://',url) != None:\n    url = 'https://'+url[7:]\n  else:\n    print('无法解析')\n\nifbangumiurl = re.match('https://www.bilibili.com/bangumi/play/ss',url)\nifvideourl = re.match('https://www.bilibili.com/video/av',url)\nif ifbangumiurl or ifvideourl != None:\n  if ifbangumiurl != None:\n    \n    rec = requests.get('http://m'+url[11:],headers=mheaders)\n    soup = BeautifulSoup(rec.text, 'html.parser')\n    htmll = soup.find_all('script')\n\n\n    #切出番剧信息的json\n    cutjson =str(rec.text)\n    str1 = cutjson.find('window.__INITIAL_STATE__=')\n    str2 = cutjson.find(';(function(){var s;')\n    videoinfojson = cutjson[str1+25:str2]\n    #print(videoinfojson)\n\n    j = json.loads(videoinfojson)\n    #j是字典\n    k = j['epList']\n    print(len(k))\n    for index in range(len(k)):\n        item = k[index]\n        print('视频标题：')\n        print(item['long_title'])\n        print('视频图片：')\n        print(item['cover'])\n        print('视频地址：')\n        print(item['link'])\n        print('---'*30)\n\n\n\n\n  else:\n    print('视频')\n    rec = requests.get(url,headers=headers)\n    soup = BeautifulSoup(rec.text, 'html.parser')\n    ifpnum = soup.find_all('div',class_='multi-page report-wrap-module report-scroll-module')\n    if ifpnum != []:\n      print('多p')\n      rec = requests.get('http://m'+url[11:],headers=mheaders)\n      cutjson =str(rec.text)\n      str1 = cutjson.find('window.__INITIAL_STATE__=')\n      str2 = cutjson.find('if(window.__INITIAL_STATE__.abserver)')\n      videoinfojson = cutjson[str1+25:str2-6]\n      #print(videoinfojson)\n      j = json.loads(videoinfojson)\n      #j是字典\n      k = j['reduxAsyncConnect']['videoInfo']['pages']\n      #print(len(k))\n      #图片\n      print(j['reduxAsyncConnect']['videoInfo']['pic'])\n      #名\n      print(j['reduxAsyncConnect']['videoInfo']['title'])\n      #介绍\n      print(j['reduxAsyncConnect']['videoInfo']['desc'])\n      for index in range(len(k)):\n        duration = k[index]['duration']\n        min = str(duration//60)\n        sec = duration%60-1\n        if sec < 10:\n          sec = str('0') + str(sec)\n        sec = str(sec)\n        print('【P' + str(index+1) + '】' + k[index]['part'] + ' - ' + min + ':' + sec)\n    else:\n      #print('单p')\n      rec = requests.get(url,headers=headers)\n      soup = BeautifulSoup(rec.text, 'html.parser')\n      videotitle = soup.find(name='title')\n      videoimage = soup.find(itemprop='image')\n      videodesc = soup.find(itemprop='description')\n      print(str(videoimage['content']))\n\n      print('【P1】' + str(videotitle.text[:-26]))\n  \n      print(str(videodesc['content']))\n\n\n\n\n\nelse:\n  print('不支持的B站链接')"
  },
  {
    "path": "step1/bilibili-bangumi-list.py",
    "content": "#b站爬番剧列表\nimport json\nimport requests\nimport re\nfrom bs4 import BeautifulSoup\n\nurl = 'https://m.bilibili.com/bangumi/play/ss29366'\n    \nheaders = {'user-agent' : 'Mozilla/5.0 (Linux; Android 10; Z832 Build/MMB29M) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.116 Mobile Safari/537.36'}\nrec = requests.get(url,headers=headers)\nsoup = BeautifulSoup(rec.text, 'html.parser')\nhtmll = soup.find_all('script')\n\n\n#切出番剧信息的json\ncutjson =str(rec.text)\nstr1 = cutjson.find('window.__INITIAL_STATE__=')\nstr2 = cutjson.find(';(function(){var s;')\nvideoinfojson = cutjson[str1+25:str2]\n#print(videoinfojson)\n\nj = json.loads(videoinfojson)\n#j是字典\nk = j['epList']\nprint(len(k))\nfor index in range(len(k)):\n    item = k[index]\n    print('视频标题：')\n    print(item['long_title'])\n    print('视频图片：')\n    print(item['cover'])\n    print('视频地址：')\n    print(item['link'])\n    print('---'*30)"
  },
  {
    "path": "step1/bilibili-rank-list.py",
    "content": "#b站全站排行列表\nfrom bs4 import BeautifulSoup\nhtml_doc = \"\"\"\n\n\n<!DOCTYPE html><html lang=\"zh-Hans\"><head><title>热门视频排行榜 - 哔哩哔哩 (゜-゜)つロ 干杯~-bilibili</title><meta charset=\"utf-8\"><meta name=\"spm_prefix\" content=\"333.158\"><meta http-equiv=\"X-UA-Compatible\" content=\"IE=edge\"><meta name=\"renderer\" content=\"webkit\"><meta name=\"description\" content=\"bilibili是国内知名的视频弹幕网站，这里有最及时的动漫新番，最棒的ACG氛围，最有创意的Up主。大家可以在这里找到许多欢乐。\"><meta name=\"keywords\" content=\"B站,弹幕,字幕,AMV,MAD,MTV,ANIME,动漫,动漫音乐,游戏,游戏解说,ACG,galgame,动画,番组,新番,初音,洛天依,vocaloid\"><script type=\"text/javascript\">window.spmReportData={},window.reportConfig={sample:1,scrollTracker:!0,msgObjects:\"spmReportData\"}</script><script type=\"text/javascript\">window.__BILI_CONFIG__={\"show_bv\":false}</script><link rel=\"preload\" href=\"//s1.hdslb.com/bfs/static/jinkela/rank/1.rank.66267091ff49e189079246486d715b1a4f140057.js\" as=\"script\"><link rel=\"preload\" href=\"//s1.hdslb.com/bfs/static/jinkela/rank/css/rank.0.66267091ff49e189079246486d715b1a4f140057.css\" as=\"style\"><link rel=\"preload\" href=\"//s1.hdslb.com/bfs/static/jinkela/rank/rank.66267091ff49e189079246486d715b1a4f140057.js\" as=\"script\"><link rel=\"stylesheet\" href=\"//s1.hdslb.com/bfs/static/jinkela/rank/css/rank.0.66267091ff49e189079246486d715b1a4f140057.css\"></head><body><div id=\"biliMainHeader\" type=\"all\" style=\"height:263px\"></div><div id=\"rank-app\"></div><script type=\"text/javascript\" src=\"//s1.hdslb.com/bfs/static/jinkela/long/js/jquery/jquery1.7.2.min.js\"></script><script type=\"text/javascript\" src=\"//s1.hdslb.com/bfs/seed/jinkela/header-v2/header.js\" defer=\"defer\"></script><script type=\"text/javascript\" src=\"//s1.hdslb.com/bfs/cm/st/bundle.js\" crossorigin></script><div id=\"app\" data-server-rendered=\"true\"><div class=\"b-page-body\"><div class=\"main-inner b-wrap\"><div class=\"rank-container\"><div class=\"rank-head\"><ul class=\"rank-menu\"><li type=\"all\" class=\"active\"><span class=\"rank-icon all\"></span><span class=\"text\">全站榜</span></li><li type=\"origin\"><span class=\"rank-icon origin\"></span><span class=\"text\">原创榜</span></li><li type=\"bangumi\"><span class=\"rank-icon bangumi\"></span><span class=\"text\">新番榜</span></li><li type=\"cinema\"><span class=\"rank-icon cinema\"></span><span class=\"text\">影视榜</span></li><li type=\"rookie\"><span class=\"rank-icon rookie\"></span><span class=\"text\">新人榜</span></li></ul></div><div class=\"rank-body\"><div seasonType=\"1\" class=\"rank-tab-wrap\"><ul class=\"rank-tab\"><li class=\"active\">全站</li><li>动画</li><li>国创相关</li><li>音乐</li><li>舞蹈</li><li>游戏</li><li>科技</li><li>数码</li><li>生活</li><li>鬼畜</li><li>时尚</li><li>娱乐</li><li>影视</li></ul><div class=\"rank-type-dropdown\"><div class=\"bili-dropdown rank-dropdown\"><span class=\"selected\">全部投稿</span><i class=\"icon icon-arrow-down\"></i><ul class=\"dropdown-list\"><li class=\"dropdown-item\" style=\"display:none;\">全部投稿</li><li class=\"dropdown-item\" style=\"display:;\">近期投稿</li></ul></div><div class=\"bili-dropdown rank-dropdown\"><span class=\"selected\">三日排行</span><i class=\"icon icon-arrow-down\"></i><ul class=\"dropdown-list\"><li class=\"dropdown-item\" style=\"display:;\">日排行</li><li class=\"dropdown-item\" style=\"display:none;\">三日排行</li><li class=\"dropdown-item\" style=\"display:;\">周排行</li><li class=\"dropdown-item\" style=\"display:;\">月排行</li></ul></div></div></div><div class=\"rank-list-head\"><div class=\"rank_tips\"><i class=\"b-icon-tip\"></i><span class=\"tip-txt\">统计所有投稿在 2020年02月27日 - 2020年03月01日 的数据综合得分，每日更新一次</span></div></div><div class=\"rank-list-wrap\"><ul class=\"rank-list\"><li class=\"rank-item\"><div class=\"num\">1</div><div class=\"content\"><div class=\"img\"><a href=\"https://www.bilibili.com/video/av91835249\" target=\"_blank\"><div class=\"lazy-img cover\"><img alt=\"这十个软件,让你的电脑舒适度提升1400%\" src=\"\"></div></a><div class=\"watch-later-trigger w-later\"></div></div><div class=\"info\"><a href=\"https://www.bilibili.com/video/av91835249\" target=\"_blank\" class=\"title\">这十个软件,让你的电脑舒适度提升1400%</a><!----><div class=\"detail\"><span class=\"data-box\"><i class=\"b-icon play\"></i>174.5万</span><span class=\"data-box\"><i class=\"b-icon view\"></i>7492</span><a target=\"_blank\" href=\"//space.bilibili.com/17873487\"><span class=\"data-box\"><i class=\"b-icon author\"></i>飞鱼不在天</span></a></div><div class=\"pts\"><div>7874690</div>综合得分\n          </div></div><!----></div></li><li class=\"rank-item\"><div class=\"num\">2</div><div class=\"content\"><div class=\"img\"><a href=\"https://www.bilibili.com/video/av92252043\" target=\"_blank\"><div class=\"lazy-img cover\"><img alt=\"《崩坏3》动画短片「天穹流星」\" src=\"\"></div></a><div class=\"watch-later-trigger w-later\"></div></div><div class=\"info\"><a href=\"https://www.bilibili.com/video/av92252043\" target=\"_blank\" class=\"title\">《崩坏3》动画短片「天穹流星」</a><!----><div class=\"detail\"><span class=\"data-box\"><i class=\"b-icon play\"></i>264.4万</span><span class=\"data-box\"><i class=\"b-icon view\"></i>9.7万</span><a target=\"_blank\" href=\"//space.bilibili.com/27534330\"><span class=\"data-box\"><i class=\"b-icon author\"></i>崩坏3第一偶像爱酱</span></a></div><div class=\"pts\"><div>7573351</div>综合得分\n          </div></div><div class=\"other-panel\"><div class=\"other\"><a target=\"_blank\" href=\"//www.bilibili.com/video/av92253209\" class=\"other-link\"><span class=\"title\">「Starfall」——《崩坏3》印象曲（演唱者：袁娅维）</span><span>综合评分</span><strong>1830537</strong></a></div><a class=\"more-data\" style=\"display:none;\">显示UP主全部上榜视频<i></i></a></div></div></li><li class=\"rank-item\"><div class=\"num\">3</div><div class=\"content\"><div class=\"img\"><a href=\"https://www.bilibili.com/video/av91572143\" target=\"_blank\"><div class=\"lazy-img cover\"><img alt=\"病 名 为 钉 钉钉钉钉钉钉...（钉钉音效与人声完美契合电音 无限循环 疯狂洗脑）\" src=\"\"></div></a><div class=\"watch-later-trigger w-later\"></div></div><div class=\"info\"><a href=\"https://www.bilibili.com/video/av91572143\" target=\"_blank\" class=\"title\">病 名 为 钉 钉钉钉钉钉钉...（钉钉音效与人声完美契合电音 无限循环 疯狂洗脑）</a><!----><div class=\"detail\"><span class=\"data-box\"><i class=\"b-icon play\"></i>171.9万</span><span class=\"data-box\"><i class=\"b-icon view\"></i>3.0万</span><a target=\"_blank\" href=\"//space.bilibili.com/228651\"><span class=\"data-box\"><i class=\"b-icon author\"></i>赤leopard_大暴</span></a></div><div class=\"pts\"><div>3192103</div>综合得分\n          </div></div><!----></div></li><li class=\"rank-item\"><div class=\"num\">4</div><div class=\"content\"><div class=\"img\"><a href=\"https://www.bilibili.com/video/av92699533\" target=\"_blank\"><div class=\"lazy-img cover\"><img alt=\"【何同学】二十万元的电脑是什么样子的？苹果Mac Pro深度体验\" src=\"\"></div></a><div class=\"watch-later-trigger w-later\"></div></div><div class=\"info\"><a href=\"https://www.bilibili.com/video/av92699533\" target=\"_blank\" class=\"title\">【何同学】二十万元的电脑是什么样子的？苹果Mac Pro深度体验</a><!----><div class=\"detail\"><span class=\"data-box\"><i class=\"b-icon play\"></i>146.9万</span><span class=\"data-box\"><i class=\"b-icon view\"></i>2.4万</span><a target=\"_blank\" href=\"//space.bilibili.com/163637592\"><span class=\"data-box\"><i class=\"b-icon author\"></i>老师好我叫何同学</span></a></div><div class=\"pts\"><div>2874317</div>综合得分\n          </div></div><!----></div></li><li class=\"rank-item\"><div class=\"num\">5</div><div class=\"content\"><div class=\"img\"><a href=\"https://www.bilibili.com/video/av91822864\" target=\"_blank\"><div class=\"lazy-img cover\"><img alt=\"面对疫情日本为何消极？中国真的太NB了\" src=\"\"></div></a><div class=\"watch-later-trigger w-later\"></div></div><div class=\"info\"><a href=\"https://www.bilibili.com/video/av91822864\" target=\"_blank\" class=\"title\">面对疫情日本为何消极？中国真的太NB了</a><!----><div class=\"detail\"><span class=\"data-box\"><i class=\"b-icon play\"></i>326.5万</span><span class=\"data-box\"><i class=\"b-icon view\"></i>3.7万</span><a target=\"_blank\" href=\"//space.bilibili.com/378885845\"><span class=\"data-box\"><i class=\"b-icon author\"></i>不正经老丝</span></a></div><div class=\"pts\"><div>2749905</div>综合得分\n          </div></div><!----></div></li><li class=\"rank-item\"><div class=\"num\">6</div><div class=\"content\"><div class=\"img\"><a href=\"https://www.bilibili.com/video/av92274735\" target=\"_blank\"><div class=\"lazy-img cover\"><img alt=\"分享烹饪3580元一位的顶级日料中最好吃的一道菜！包教包会！\" src=\"\"></div></a><div class=\"watch-later-trigger w-later\"></div></div><div class=\"info\"><a href=\"https://www.bilibili.com/video/av92274735\" target=\"_blank\" class=\"title\">分享烹饪3580元一位的顶级日料中最好吃的一道菜！包教包会！</a><!----><div class=\"detail\"><span class=\"data-box\"><i class=\"b-icon play\"></i>191.7万</span><span class=\"data-box\"><i class=\"b-icon view\"></i>1.9万</span><a target=\"_blank\" href=\"//space.bilibili.com/2920960\"><span class=\"data-box\"><i class=\"b-icon author\"></i>大祥哥来了</span></a></div><div class=\"pts\"><div>2574448</div>综合得分\n          </div></div><!----></div></li><li class=\"rank-item\"><div class=\"num\">7</div><div class=\"content\"><div class=\"img\"><a href=\"https://www.bilibili.com/video/av92177270\" target=\"_blank\"><div class=\"lazy-img cover\"><img alt=\"我，老坛胡说，实名diss中国BOY超级大猩猩\" src=\"\"></div></a><div class=\"watch-later-trigger w-later\"></div></div><div class=\"info\"><a href=\"https://www.bilibili.com/video/av92177270\" target=\"_blank\" class=\"title\">我，老坛胡说，实名diss中国BOY超级大猩猩</a><!----><div class=\"detail\"><span class=\"data-box\"><i class=\"b-icon play\"></i>240.7万</span><span class=\"data-box\"><i class=\"b-icon view\"></i>11.0万</span><a target=\"_blank\" href=\"//space.bilibili.com/279583114\"><span class=\"data-box\"><i class=\"b-icon author\"></i>老坛胡说</span></a></div><div class=\"pts\"><div>2499235</div>综合得分\n          </div></div><!----></div></li><li class=\"rank-item\"><div class=\"num\">8</div><div class=\"content\"><div class=\"img\"><a href=\"https://www.bilibili.com/video/av92146996\" target=\"_blank\"><div class=\"lazy-img cover\"><img alt=\"我回来了！我最近一年想做的事情！\" src=\"\"></div></a><div class=\"watch-later-trigger w-later\"></div></div><div class=\"info\"><a href=\"https://www.bilibili.com/video/av92146996\" target=\"_blank\" class=\"title\">我回来了！我最近一年想做的事情！</a><!----><div class=\"detail\"><span class=\"data-box\"><i class=\"b-icon play\"></i>323.8万</span><span class=\"data-box\"><i class=\"b-icon view\"></i>9.8万</span><a target=\"_blank\" href=\"//space.bilibili.com/9824766\"><span class=\"data-box\"><i class=\"b-icon author\"></i>敬汉卿</span></a></div><div class=\"pts\"><div>2443710</div>综合得分\n          </div></div><div class=\"other-panel\"><div class=\"other\"><a target=\"_blank\" href=\"//www.bilibili.com/video/av92424738\" class=\"other-link\"><span class=\"title\">挑战三块黄油一口气吃完！除了油腻剩下的就是想呕吐了！</span><span>综合评分</span><strong>2225967</strong></a></div><a class=\"more-data\" style=\"display:none;\">显示UP主全部上榜视频<i></i></a></div></div></li><li class=\"rank-item\"><div class=\"num\">9</div><div class=\"content\"><div class=\"img\"><a href=\"https://www.bilibili.com/video/av91317525\" target=\"_blank\"><div class=\"lazy-img cover\"><img alt=\"《野草》：我把16篇鲁迅写成了一首歌\" src=\"\"></div></a><div class=\"watch-later-trigger w-later\"></div></div><div class=\"info\"><a href=\"https://www.bilibili.com/video/av91317525\" target=\"_blank\" class=\"title\">《野草》：我把16篇鲁迅写成了一首歌</a><!----><div class=\"detail\"><span class=\"data-box\"><i class=\"b-icon play\"></i>64.0万</span><span class=\"data-box\"><i class=\"b-icon view\"></i>2561</span><a target=\"_blank\" href=\"//space.bilibili.com/157831228\"><span class=\"data-box\"><i class=\"b-icon author\"></i>SealWu吴一凡</span></a></div><div class=\"pts\"><div>2323158</div>综合得分\n          </div></div><!----></div></li><li class=\"rank-item\"><div class=\"num\">10</div><div class=\"content\"><div class=\"img\"><a href=\"https://www.bilibili.com/video/av91710819\" target=\"_blank\"><div class=\"lazy-img cover\"><img alt=\"快 放 我 下 车！\" src=\"\"></div></a><div class=\"watch-later-trigger w-later\"></div></div><div class=\"info\"><a href=\"https://www.bilibili.com/video/av91710819\" target=\"_blank\" class=\"title\">快 放 我 下 车！</a><!----><div class=\"detail\"><span class=\"data-box\"><i class=\"b-icon play\"></i>100.9万</span><span class=\"data-box\"><i class=\"b-icon view\"></i>4376</span><a target=\"_blank\" href=\"//space.bilibili.com/368912467\"><span class=\"data-box\"><i class=\"b-icon author\"></i>Devil青酱</span></a></div><div class=\"pts\"><div>2306169</div>综合得分\n          </div></div><!----></div></li><li class=\"rank-item\"><div class=\"num\">11</div><div class=\"content\"><div class=\"img\"><a href=\"https://www.bilibili.com/video/av91521896\" target=\"_blank\"><div class=\"lazy-img cover\"><img alt=\"珍 贵 录 像 : 慈善三巨头聚首斗地主\" src=\"\"></div></a><div class=\"watch-later-trigger w-later\"></div></div><div class=\"info\"><a href=\"https://www.bilibili.com/video/av91521896\" target=\"_blank\" class=\"title\">珍 贵 录 像 : 慈善三巨头聚首斗地主</a><!----><div class=\"detail\"><span class=\"data-box\"><i class=\"b-icon play\"></i>204.9万</span><span class=\"data-box\"><i class=\"b-icon view\"></i>4160</span><a target=\"_blank\" href=\"//space.bilibili.com/13575288\"><span class=\"data-box\"><i class=\"b-icon author\"></i>宇智钵啥是gay</span></a></div><div class=\"pts\"><div>2006316</div>综合得分\n          </div></div><!----></div></li><li class=\"rank-item\"><div class=\"num\">12</div><div class=\"content\"><div class=\"img\"><a href=\"https://www.bilibili.com/video/av92008692\" target=\"_blank\"><div class=\"lazy-img cover\"><img alt=\"深层次解析日韩开卷考为何不及格，日韩的难言之隐（思密达没了）\" src=\"\"></div></a><div class=\"watch-later-trigger w-later\"></div></div><div class=\"info\"><a href=\"https://www.bilibili.com/video/av92008692\" target=\"_blank\" class=\"title\">深层次解析日韩开卷考为何不及格，日韩的难言之隐（思密达没了）</a><!----><div class=\"detail\"><span class=\"data-box\"><i class=\"b-icon play\"></i>104.2万</span><span class=\"data-box\"><i class=\"b-icon view\"></i>2.3万</span><a target=\"_blank\" href=\"//space.bilibili.com/99336697\"><span class=\"data-box\"><i class=\"b-icon author\"></i>树根龙门阵</span></a></div><div class=\"pts\"><div>1965003</div>综合得分\n          </div></div><!----></div></li><li class=\"rank-item\"><div class=\"num\">13</div><div class=\"content\"><div class=\"img\"><a href=\"https://www.bilibili.com/video/av91720074\" target=\"_blank\"><div class=\"lazy-img cover\"><img alt=\"人干事？为阻止少年轻生，狙击手成功将其击毙【阅片无数36】\" src=\"\"></div></a><div class=\"watch-later-trigger w-later\"></div></div><div class=\"info\"><a href=\"https://www.bilibili.com/video/av91720074\" target=\"_blank\" class=\"title\">人干事？为阻止少年轻生，狙击手成功将其击毙【阅片无数36】</a><!----><div class=\"detail\"><span class=\"data-box\"><i class=\"b-icon play\"></i>200.2万</span><span class=\"data-box\"><i class=\"b-icon view\"></i>2.1万</span><a target=\"_blank\" href=\"//space.bilibili.com/14110780\"><span class=\"data-box\"><i class=\"b-icon author\"></i>凉风Kaze</span></a></div><div class=\"pts\"><div>1937061</div>综合得分\n          </div></div><!----></div></li><li class=\"rank-item\"><div class=\"num\">14</div><div class=\"content\"><div class=\"img\"><a href=\"https://www.bilibili.com/video/av91833336\" target=\"_blank\"><div class=\"lazy-img cover\"><img alt=\"真实叶问本人咏春木人桩演示（全站最清晰胶片版）\" src=\"\"></div></a><div class=\"watch-later-trigger w-later\"></div></div><div class=\"info\"><a href=\"https://www.bilibili.com/video/av91833336\" target=\"_blank\" class=\"title\">真实叶问本人咏春木人桩演示（全站最清晰胶片版）</a><!----><div class=\"detail\"><span class=\"data-box\"><i class=\"b-icon play\"></i>227.3万</span><span class=\"data-box\"><i class=\"b-icon view\"></i>1.0万</span><a target=\"_blank\" href=\"//space.bilibili.com/363116832\"><span class=\"data-box\"><i class=\"b-icon author\"></i>天佑咏春</span></a></div><div class=\"pts\"><div>1878186</div>综合得分\n          </div></div><!----></div></li><li class=\"rank-item\"><div class=\"num\">15</div><div class=\"content\"><div class=\"img\"><a href=\"https://www.bilibili.com/video/av92101881\" target=\"_blank\"><div class=\"lazy-img cover\"><img alt=\"弓箭高手老番茄\" src=\"\"></div></a><div class=\"watch-later-trigger w-later\"></div></div><div class=\"info\"><a href=\"https://www.bilibili.com/video/av92101881\" target=\"_blank\" class=\"title\">弓箭高手老番茄</a><!----><div class=\"detail\"><span class=\"data-box\"><i class=\"b-icon play\"></i>325.2万</span><span class=\"data-box\"><i class=\"b-icon view\"></i>5.5万</span><a target=\"_blank\" href=\"//space.bilibili.com/546195\"><span class=\"data-box\"><i class=\"b-icon author\"></i>老番茄</span></a></div><div class=\"pts\"><div>1845017</div>综合得分\n          </div></div><!----></div></li><li class=\"rank-item\"><div class=\"num\">16</div><div class=\"content\"><div class=\"img\"><a href=\"https://www.bilibili.com/video/av92536625\" target=\"_blank\"><div class=\"lazy-img cover\"><img alt=\"好 兄 弟\" src=\"\"></div></a><div class=\"watch-later-trigger w-later\"></div></div><div class=\"info\"><a href=\"https://www.bilibili.com/video/av92536625\" target=\"_blank\" class=\"title\">好 兄 弟</a><!----><div class=\"detail\"><span class=\"data-box\"><i class=\"b-icon play\"></i>89.4万</span><span class=\"data-box\"><i class=\"b-icon view\"></i>7.7万</span><a target=\"_blank\" href=\"//space.bilibili.com/2206456\"><span class=\"data-box\"><i class=\"b-icon author\"></i>花少北丶</span></a></div><div class=\"pts\"><div>1830732</div>综合得分\n          </div></div><!----></div></li><li class=\"rank-item\"><div class=\"num\">17</div><div class=\"content\"><div class=\"img\"><a href=\"https://www.bilibili.com/video/av92523652\" target=\"_blank\"><div class=\"lazy-img cover\"><img alt=\"【老E】比宇宙还要古老的存在！行星一样大的安康鱼！\" src=\"\"></div></a><div class=\"watch-later-trigger w-later\"></div></div><div class=\"info\"><a href=\"https://www.bilibili.com/video/av92523652\" target=\"_blank\" class=\"title\">【老E】比宇宙还要古老的存在！行星一样大的安康鱼！</a><!----><div class=\"detail\"><span class=\"data-box\"><i class=\"b-icon play\"></i>78.4万</span><span class=\"data-box\"><i class=\"b-icon view\"></i>6626</span><a target=\"_blank\" href=\"//space.bilibili.com/433351\"><span class=\"data-box\"><i class=\"b-icon author\"></i>EdmundDZhang</span></a></div><div class=\"pts\"><div>1810956</div>综合得分\n          </div></div><!----></div></li><li class=\"rank-item\"><div class=\"num\">18</div><div class=\"content\"><div class=\"img\"><a href=\"https://www.bilibili.com/video/av91610100\" target=\"_blank\"><div class=\"lazy-img cover\"><img alt=\"【郭老师】华 农 捕 郭\" src=\"\"></div></a><div class=\"watch-later-trigger w-later\"></div></div><div class=\"info\"><a href=\"https://www.bilibili.com/video/av91610100\" target=\"_blank\" class=\"title\">【郭老师】华 农 捕 郭</a><!----><div class=\"detail\"><span class=\"data-box\"><i class=\"b-icon play\"></i>108.5万</span><span class=\"data-box\"><i class=\"b-icon view\"></i>5923</span><a target=\"_blank\" href=\"//space.bilibili.com/375116258\"><span class=\"data-box\"><i class=\"b-icon author\"></i>-Super屎蛋</span></a></div><div class=\"pts\"><div>1732198</div>综合得分\n          </div></div><!----></div></li><li class=\"rank-item\"><div class=\"num\">19</div><div class=\"content\"><div class=\"img\"><a href=\"https://www.bilibili.com/video/av91878989\" target=\"_blank\"><div class=\"lazy-img cover\"><img alt=\"父母反对我做up主！该怎么说服他们？【读评论01】\" src=\"\"></div></a><div class=\"watch-later-trigger w-later\"></div></div><div class=\"info\"><a href=\"https://www.bilibili.com/video/av91878989\" target=\"_blank\" class=\"title\">父母反对我做up主！该怎么说服他们？【读评论01】</a><!----><div class=\"detail\"><span class=\"data-box\"><i class=\"b-icon play\"></i>161.2万</span><span class=\"data-box\"><i class=\"b-icon view\"></i>2.9万</span><a target=\"_blank\" href=\"//space.bilibili.com/777536\"><span class=\"data-box\"><i class=\"b-icon author\"></i>LexBurner</span></a></div><div class=\"pts\"><div>1668614</div>综合得分\n          </div></div><!----></div></li><li class=\"rank-item\"><div class=\"num\">20</div><div class=\"content\"><div class=\"img\"><a href=\"https://www.bilibili.com/video/av91755251\" target=\"_blank\"><div class=\"lazy-img cover\"><img alt=\"见识下什么叫TMD绿茶婊！\" src=\"\"></div></a><div class=\"watch-later-trigger w-later\"></div></div><div class=\"info\"><a href=\"https://www.bilibili.com/video/av91755251\" target=\"_blank\" class=\"title\">见识下什么叫TMD绿茶婊！</a><!----><div class=\"detail\"><span class=\"data-box\"><i class=\"b-icon play\"></i>169.9万</span><span class=\"data-box\"><i class=\"b-icon view\"></i>3.2万</span><a target=\"_blank\" href=\"//space.bilibili.com/318223\"><span class=\"data-box\"><i class=\"b-icon author\"></i>Reiji-白龙</span></a></div><div class=\"pts\"><div>1650296</div>综合得分\n          </div></div><!----></div></li><li class=\"rank-item\"><div class=\"num\">21</div><div class=\"content\"><div class=\"img\"><a href=\"https://www.bilibili.com/video/av91844781\" target=\"_blank\"><div class=\"lazy-img cover\"><img alt=\"我在3平米的房间住了两年............\" src=\"\"></div></a><div class=\"watch-later-trigger w-later\"></div></div><div class=\"info\"><a href=\"https://www.bilibili.com/video/av91844781\" target=\"_blank\" class=\"title\">我在3平米的房间住了两年............</a><!----><div class=\"detail\"><span class=\"data-box\"><i class=\"b-icon play\"></i>270.5万</span><span class=\"data-box\"><i class=\"b-icon view\"></i>9223</span><a target=\"_blank\" href=\"//space.bilibili.com/8237763\"><span class=\"data-box\"><i class=\"b-icon author\"></i>东亚悍匪阿_张</span></a></div><div class=\"pts\"><div>1595133</div>综合得分\n          </div></div><!----></div></li><li class=\"rank-item\"><div class=\"num\">22</div><div class=\"content\"><div class=\"img\"><a href=\"https://www.bilibili.com/video/av91556645\" target=\"_blank\"><div class=\"lazy-img cover\"><img alt=\"“那是我日夜思念，深深爱着的人啊”\" src=\"\"></div></a><div class=\"watch-later-trigger w-later\"></div></div><div class=\"info\"><a href=\"https://www.bilibili.com/video/av91556645\" target=\"_blank\" class=\"title\">“那是我日夜思念，深深爱着的人啊”</a><!----><div class=\"detail\"><span class=\"data-box\"><i class=\"b-icon play\"></i>142.0万</span><span class=\"data-box\"><i class=\"b-icon view\"></i>1.5万</span><a target=\"_blank\" href=\"//space.bilibili.com/178135921\"><span class=\"data-box\"><i class=\"b-icon author\"></i>囧墙先生</span></a></div><div class=\"pts\"><div>1556583</div>综合得分\n          </div></div><!----></div></li><li class=\"rank-item\"><div class=\"num\">23</div><div class=\"content\"><div class=\"img\"><a href=\"https://www.bilibili.com/video/av91669955\" target=\"_blank\"><div class=\"lazy-img cover\"><img alt=\"腾讯加持B站股权，B站又双叒叕变味了？【膨胀说】\" src=\"\"></div></a><div class=\"watch-later-trigger w-later\"></div></div><div class=\"info\"><a href=\"https://www.bilibili.com/video/av91669955\" target=\"_blank\" class=\"title\">腾讯加持B站股权，B站又双叒叕变味了？【膨胀说】</a><!----><div class=\"detail\"><span class=\"data-box\"><i class=\"b-icon play\"></i>162.5万</span><span class=\"data-box\"><i class=\"b-icon view\"></i>1.2万</span><a target=\"_blank\" href=\"//space.bilibili.com/80304\"><span class=\"data-box\"><i class=\"b-icon author\"></i>亚食人</span></a></div><div class=\"pts\"><div>1535679</div>综合得分\n          </div></div><!----></div></li><li class=\"rank-item\"><div class=\"num\">24</div><div class=\"content\"><div class=\"img\"><a href=\"https://www.bilibili.com/video/av91750514\" target=\"_blank\"><div class=\"lazy-img cover\"><img alt=\"【 唱 首 歌 】我 钉 起 来 真 好 听\" src=\"\"></div></a><div class=\"watch-later-trigger w-later\"></div></div><div class=\"info\"><a href=\"https://www.bilibili.com/video/av91750514\" target=\"_blank\" class=\"title\">【 唱 首 歌 】我 钉 起 来 真 好 听</a><!----><div class=\"detail\"><span class=\"data-box\"><i class=\"b-icon play\"></i>118.1万</span><span class=\"data-box\"><i class=\"b-icon view\"></i>2.6万</span><a target=\"_blank\" href=\"//space.bilibili.com/481393564\"><span class=\"data-box\"><i class=\"b-icon author\"></i>钉钉DingTalk</span></a></div><div class=\"pts\"><div>1491066</div>综合得分\n          </div></div><div class=\"other-panel\"><div class=\"other\"><a target=\"_blank\" href=\"//www.bilibili.com/video/av89441613\" class=\"other-link\"><span class=\"title\">【 钉 钉 本 钉 ，在 线 求 饶 】</span><span>综合评分</span><strong>998745</strong></a></div><a class=\"more-data\" style=\"display:none;\">显示UP主全部上榜视频<i></i></a></div></div></li><li class=\"rank-item\"><div class=\"num\">25</div><div class=\"content\"><div class=\"img\"><a href=\"https://www.bilibili.com/video/av92424996\" target=\"_blank\"><div class=\"lazy-img cover\"><img alt=\"【党妹】懒人在家煮火锅！再来串甜到心里的冰糖草莓~不出门也能吃到美味！\" src=\"\"></div></a><div class=\"watch-later-trigger w-later\"></div></div><div class=\"info\"><a href=\"https://www.bilibili.com/video/av92424996\" target=\"_blank\" class=\"title\">【党妹】懒人在家煮火锅！再来串甜到心里的冰糖草莓~不出门也能吃到美味！</a><!----><div class=\"detail\"><span class=\"data-box\"><i class=\"b-icon play\"></i>103.9万</span><span class=\"data-box\"><i class=\"b-icon view\"></i>2.7万</span><a target=\"_blank\" href=\"//space.bilibili.com/466272\"><span class=\"data-box\"><i class=\"b-icon author\"></i>机智的党妹</span></a></div><div class=\"pts\"><div>1481200</div>综合得分\n          </div></div><!----></div></li><li class=\"rank-item\"><div class=\"num\">26</div><div class=\"content\"><div class=\"img\"><a href=\"https://www.bilibili.com/video/av90748215\" target=\"_blank\"><div class=\"lazy-img cover\"><img alt=\"【师 生 对 线】这网课上得就尼玛离谱！\" src=\"\"></div></a><div class=\"watch-later-trigger w-later\"></div></div><div class=\"info\"><a href=\"https://www.bilibili.com/video/av90748215\" target=\"_blank\" class=\"title\">【师 生 对 线】这网课上得就尼玛离谱！</a><!----><div class=\"detail\"><span class=\"data-box\"><i class=\"b-icon play\"></i>83.6万</span><span class=\"data-box\"><i class=\"b-icon view\"></i>7071</span><a target=\"_blank\" href=\"//space.bilibili.com/3353026\"><span class=\"data-box\"><i class=\"b-icon author\"></i>鹤吱菌</span></a></div><div class=\"pts\"><div>1446500</div>综合得分\n          </div></div><!----></div></li><li class=\"rank-item\"><div class=\"num\">27</div><div class=\"content\"><div class=\"img\"><a href=\"https://www.bilibili.com/video/av92290565\" target=\"_blank\"><div class=\"lazy-img cover\"><img alt=\"处 处 删 （注意！脖子以下不可描述！）\" src=\"\"></div></a><div class=\"watch-later-trigger w-later\"></div></div><div class=\"info\"><a href=\"https://www.bilibili.com/video/av92290565\" target=\"_blank\" class=\"title\">处 处 删 （注意！脖子以下不可描述！）</a><!----><div class=\"detail\"><span class=\"data-box\"><i class=\"b-icon play\"></i>50.1万</span><span class=\"data-box\"><i class=\"b-icon view\"></i>5396</span><a target=\"_blank\" href=\"//space.bilibili.com/27692819\"><span class=\"data-box\"><i class=\"b-icon author\"></i>切粒粒</span></a></div><div class=\"pts\"><div>1411936</div>综合得分\n          </div></div><!----></div></li><li class=\"rank-item\"><div class=\"num\">28</div><div class=\"content\"><div class=\"img\"><a href=\"https://www.bilibili.com/video/av92285943\" target=\"_blank\"><div class=\"lazy-img cover\"><img alt=\"【祖娅纳惜】 囍 【这什么灵魂唢呐！！】\" src=\"\"></div></a><div class=\"watch-later-trigger w-later\"></div></div><div class=\"info\"><a href=\"https://www.bilibili.com/video/av92285943\" target=\"_blank\" class=\"title\">【祖娅纳惜】 囍 【这什么灵魂唢呐！！】</a><!----><div class=\"detail\"><span class=\"data-box\"><i class=\"b-icon play\"></i>45.1万</span><span class=\"data-box\"><i class=\"b-icon view\"></i>3366</span><a target=\"_blank\" href=\"//space.bilibili.com/3046429\"><span class=\"data-box\"><i class=\"b-icon author\"></i>祖娅纳惜</span></a></div><div class=\"pts\"><div>1403823</div>综合得分\n          </div></div><!----></div></li><li class=\"rank-item\"><div class=\"num\">29</div><div class=\"content\"><div class=\"img\"><a href=\"https://www.bilibili.com/video/av34107674\" target=\"_blank\"><div class=\"lazy-img cover\"><img alt=\"10分钟改善斜方肌粗大、溜肩圆肩富贵包、背厚、肩颈背疼痛、高低肩！【周六野Zoey】\" src=\"\"></div></a><div class=\"watch-later-trigger w-later\"></div></div><div class=\"info\"><a href=\"https://www.bilibili.com/video/av34107674\" target=\"_blank\" class=\"title\">10分钟改善斜方肌粗大、溜肩圆肩富贵包、背厚、肩颈背疼痛、高低肩！【周六野Zoey】</a><!----><div class=\"detail\"><span class=\"data-box\"><i class=\"b-icon play\"></i>62.0万</span><span class=\"data-box\"><i class=\"b-icon view\"></i>6897</span><a target=\"_blank\" href=\"//space.bilibili.com/62540916\"><span class=\"data-box\"><i class=\"b-icon author\"></i>周六野Zoey</span></a></div><div class=\"pts\"><div>1339601</div>综合得分\n          </div></div><div class=\"other-panel\"><div class=\"other\"><a target=\"_blank\" href=\"//www.bilibili.com/video/av8879609\" class=\"other-link\"><span class=\"title\">快速瘦小腿运动！摆脱萝卜腿让小腿更细长，拉伸小腿【周六野Zoey】</span><span>综合评分</span><strong>1165409</strong></a><a target=\"_blank\" href=\"//www.bilibili.com/video/av8775849\" class=\"other-link\"><span class=\"title\">五分钟在家瘦腰运动！快速瘦肚子小蛮腰，马甲线一周现形！适合初学者【周六野Zoey】</span><span>综合评分</span><strong>1069408</strong></a></div><a class=\"more-data\">显示UP主全部上榜视频<i></i></a></div></div></li><li class=\"rank-item\"><div class=\"num\">30</div><div class=\"content\"><div class=\"img\"><a href=\"https://www.bilibili.com/video/av92437162\" target=\"_blank\"><div class=\"lazy-img cover\"><img alt=\"撕逼剧透全滚粗！百万粉up主教你提升弹幕质量的秘诀！\" src=\"\"></div></a><div class=\"watch-later-trigger w-later\"></div></div><div class=\"info\"><a href=\"https://www.bilibili.com/video/av92437162\" target=\"_blank\" class=\"title\">撕逼剧透全滚粗！百万粉up主教你提升弹幕质量的秘诀！</a><!----><div class=\"detail\"><span class=\"data-box\"><i class=\"b-icon play\"></i>82.3万</span><span class=\"data-box\"><i class=\"b-icon view\"></i>1.0万</span><a target=\"_blank\" href=\"//space.bilibili.com/63231\"><span class=\"data-box\"><i class=\"b-icon author\"></i>泛式</span></a></div><div class=\"pts\"><div>1336186</div>综合得分\n          </div></div><!----></div></li><li class=\"rank-item\"><div class=\"num\">31</div><div class=\"content\"><div class=\"img\"><a href=\"https://www.bilibili.com/video/av90782208\" target=\"_blank\"><div class=\"lazy-img cover\"><img alt=\"这 TM 才叫 无 缝 衔 接 ！！！\" src=\"\"></div></a><div class=\"watch-later-trigger w-later\"></div></div><div class=\"info\"><a href=\"https://www.bilibili.com/video/av90782208\" target=\"_blank\" class=\"title\">这 TM 才叫 无 缝 衔 接 ！！！</a><!----><div class=\"detail\"><span class=\"data-box\"><i class=\"b-icon play\"></i>51.0万</span><span class=\"data-box\"><i class=\"b-icon view\"></i>2350</span><a target=\"_blank\" href=\"//space.bilibili.com/36117352\"><span class=\"data-box\"><i class=\"b-icon author\"></i>一颗糖糖゛</span></a></div><div class=\"pts\"><div>1291730</div>综合得分\n          </div></div><!----></div></li><li class=\"rank-item\"><div class=\"num\">32</div><div class=\"content\"><div class=\"img\"><a href=\"https://www.bilibili.com/video/av91675841\" target=\"_blank\"><div class=\"lazy-img cover\"><img alt=\"孩子要出道了，《被 迫 营 业》MV正式首发！！\" src=\"\"></div></a><div class=\"watch-later-trigger w-later\"></div></div><div class=\"info\"><a href=\"https://www.bilibili.com/video/av91675841\" target=\"_blank\" class=\"title\">孩子要出道了，《被 迫 营 业》MV正式首发！！</a><!----><div class=\"detail\"><span class=\"data-box\"><i class=\"b-icon play\"></i>51.8万</span><span class=\"data-box\"><i class=\"b-icon view\"></i>939</span><a target=\"_blank\" href=\"//space.bilibili.com/27756469\"><span class=\"data-box\"><i class=\"b-icon author\"></i>奶糕成精档案社</span></a></div><div class=\"pts\"><div>1274818</div>综合得分\n          </div></div><!----></div></li><li class=\"rank-item\"><div class=\"num\">33</div><div class=\"content\"><div class=\"img\"><a href=\"https://www.bilibili.com/video/av92135544\" target=\"_blank\"><div class=\"lazy-img cover\"><img alt=\"沙雕不能拯救单身狗！！\" src=\"\"></div></a><div class=\"watch-later-trigger w-later\"></div></div><div class=\"info\"><a href=\"https://www.bilibili.com/video/av92135544\" target=\"_blank\" class=\"title\">沙雕不能拯救单身狗！！</a><!----><div class=\"detail\"><span class=\"data-box\"><i class=\"b-icon play\"></i>41.8万</span><span class=\"data-box\"><i class=\"b-icon view\"></i>3391</span><a target=\"_blank\" href=\"//space.bilibili.com/32172331\"><span class=\"data-box\"><i class=\"b-icon author\"></i>战场ヶ原様</span></a></div><div class=\"pts\"><div>1262560</div>综合得分\n          </div></div><!----></div></li><li class=\"rank-item\"><div class=\"num\">34</div><div class=\"content\"><div class=\"img\"><a href=\"https://www.bilibili.com/video/av92393584\" target=\"_blank\"><div class=\"lazy-img cover\"><img alt=\"害怕！和熊同桌吃早饭，60斤食物，吃完要陪练格斗？！【北极大宝荐06】\" src=\"\"></div></a><div class=\"watch-later-trigger w-later\"></div></div><div class=\"info\"><a href=\"https://www.bilibili.com/video/av92393584\" target=\"_blank\" class=\"title\">害怕！和熊同桌吃早饭，60斤食物，吃完要陪练格斗？！【北极大宝荐06】</a><!----><div class=\"detail\"><span class=\"data-box\"><i class=\"b-icon play\"></i>134.8万</span><span class=\"data-box\"><i class=\"b-icon view\"></i>1.6万</span><a target=\"_blank\" href=\"//space.bilibili.com/39627524\"><span class=\"data-box\"><i class=\"b-icon author\"></i>食贫道</span></a></div><div class=\"pts\"><div>1225581</div>综合得分\n          </div></div><!----></div></li><li class=\"rank-item\"><div class=\"num\">35</div><div class=\"content\"><div class=\"img\"><a href=\"https://www.bilibili.com/video/av91655656\" target=\"_blank\"><div class=\"lazy-img cover\"><img alt=\"【处处吻】物理版 进来挑战一下\" src=\"\"></div></a><div class=\"watch-later-trigger w-later\"></div></div><div class=\"info\"><a href=\"https://www.bilibili.com/video/av91655656\" target=\"_blank\" class=\"title\">【处处吻】物理版 进来挑战一下</a><!----><div class=\"detail\"><span class=\"data-box\"><i class=\"b-icon play\"></i>69.0万</span><span class=\"data-box\"><i class=\"b-icon view\"></i>4333</span><a target=\"_blank\" href=\"//space.bilibili.com/250648682\"><span class=\"data-box\"><i class=\"b-icon author\"></i>红豆稀饭中</span></a></div><div class=\"pts\"><div>1219087</div>综合得分\n          </div></div><!----></div></li><li class=\"rank-item\"><div class=\"num\">36</div><div class=\"content\"><div class=\"img\"><a href=\"https://www.bilibili.com/video/av91871151\" target=\"_blank\"><div class=\"lazy-img cover\"><img alt=\"【经典老番】我一路向北，离开有怡的季节\" src=\"\"></div></a><div class=\"watch-later-trigger w-later\"></div></div><div class=\"info\"><a href=\"https://www.bilibili.com/video/av91871151\" target=\"_blank\" class=\"title\">【经典老番】我一路向北，离开有怡的季节</a><!----><div class=\"detail\"><span class=\"data-box\"><i class=\"b-icon play\"></i>86.1万</span><span class=\"data-box\"><i class=\"b-icon view\"></i>8554</span><a target=\"_blank\" href=\"//space.bilibili.com/345259842\"><span class=\"data-box\"><i class=\"b-icon author\"></i>BEmow</span></a></div><div class=\"pts\"><div>1216950</div>综合得分\n          </div></div><!----></div></li><li class=\"rank-item\"><div class=\"num\">37</div><div class=\"content\"><div class=\"img\"><a href=\"https://www.bilibili.com/video/av91880741\" target=\"_blank\"><div class=\"lazy-img cover\"><img alt=\"外国小哥体验了一天月经之后，决定给湖北的医护人员捐卫生巾和安心裤\" src=\"\"></div></a><div class=\"watch-later-trigger w-later\"></div></div><div class=\"info\"><a href=\"https://www.bilibili.com/video/av91880741\" target=\"_blank\" class=\"title\">外国小哥体验了一天月经之后，决定给湖北的医护人员捐卫生巾和安心裤</a><!----><div class=\"detail\"><span class=\"data-box\"><i class=\"b-icon play\"></i>77.4万</span><span class=\"data-box\"><i class=\"b-icon view\"></i>1.8万</span><a target=\"_blank\" href=\"//space.bilibili.com/398597377\"><span class=\"data-box\"><i class=\"b-icon author\"></i>贝乐泰是冠军</span></a></div><div class=\"pts\"><div>1215165</div>综合得分\n          </div></div><!----></div></li><li class=\"rank-item\"><div class=\"num\">38</div><div class=\"content\"><div class=\"img\"><a href=\"https://www.bilibili.com/video/av70455264\" target=\"_blank\"><div class=\"lazy-img cover\"><img alt=\"女团腿 去头尾 自用\" src=\"\"></div></a><div class=\"watch-later-trigger w-later\"></div></div><div class=\"info\"><a href=\"https://www.bilibili.com/video/av70455264\" target=\"_blank\" class=\"title\">女团腿 去头尾 自用</a><!----><div class=\"detail\"><span class=\"data-box\"><i class=\"b-icon play\"></i>57.9万</span><span class=\"data-box\"><i class=\"b-icon view\"></i>3070</span><a target=\"_blank\" href=\"//space.bilibili.com/248404676\"><span class=\"data-box\"><i class=\"b-icon author\"></i>木马唧唧</span></a></div><div class=\"pts\"><div>1199618</div>综合得分\n          </div></div><!----></div></li><li class=\"rank-item\"><div class=\"num\">39</div><div class=\"content\"><div class=\"img\"><a href=\"https://www.bilibili.com/video/av90866754\" target=\"_blank\"><div class=\"lazy-img cover\"><img alt=\"简单高效学生党瘦胳膊运动｜每天8分钟，亲测一周见效！去拜拜肉，消副乳｜无器械，无需场地，站着做瘦手臂操！\" src=\"\"></div></a><div class=\"watch-later-trigger w-later\"></div></div><div class=\"info\"><a href=\"https://www.bilibili.com/video/av90866754\" target=\"_blank\" class=\"title\">简单高效学生党瘦胳膊运动｜每天8分钟，亲测一周见效！去拜拜肉，消副乳｜无器械，无需场地，站着做瘦手臂操！</a><!----><div class=\"detail\"><span class=\"data-box\"><i class=\"b-icon play\"></i>24.6万</span><span class=\"data-box\"><i class=\"b-icon view\"></i>3727</span><a target=\"_blank\" href=\"//space.bilibili.com/369750017\"><span class=\"data-box\"><i class=\"b-icon author\"></i>韩小四April</span></a></div><div class=\"pts\"><div>1199036</div>综合得分\n          </div></div><!----></div></li><li class=\"rank-item\"><div class=\"num\">40</div><div class=\"content\"><div class=\"img\"><a href=\"https://www.bilibili.com/video/av91770298\" target=\"_blank\"><div class=\"lazy-img cover\"><img alt=\"服了日本，在东京告诉你为啥日本的确诊人数涨的慢。日本佛系抗疫下的日常惊悚加无奈加震惊vlog\" src=\"\"></div></a><div class=\"watch-later-trigger w-later\"></div></div><div class=\"info\"><a href=\"https://www.bilibili.com/video/av91770298\" target=\"_blank\" class=\"title\">服了日本，在东京告诉你为啥日本的确诊人数涨的慢。日本佛系抗疫下的日常惊悚加无奈加震惊vlog</a><!----><div class=\"detail\"><span class=\"data-box\"><i class=\"b-icon play\"></i>291.9万</span><span class=\"data-box\"><i class=\"b-icon view\"></i>8241</span><a target=\"_blank\" href=\"//space.bilibili.com/254726274\"><span class=\"data-box\"><i class=\"b-icon author\"></i>东京大明白</span></a></div><div class=\"pts\"><div>1178981</div>综合得分\n          </div></div><!----></div></li><li class=\"rank-item\"><div class=\"num\">41</div><div class=\"content\"><div class=\"img\"><a href=\"https://www.bilibili.com/video/av92333422\" target=\"_blank\"><div class=\"lazy-img cover\"><img alt=\"普    通    木    门\" src=\"\"></div></a><div class=\"watch-later-trigger w-later\"></div></div><div class=\"info\"><a href=\"https://www.bilibili.com/video/av92333422\" target=\"_blank\" class=\"title\">普    通    木    门</a><!----><div class=\"detail\"><span class=\"data-box\"><i class=\"b-icon play\"></i>50.2万</span><span class=\"data-box\"><i class=\"b-icon view\"></i>3688</span><a target=\"_blank\" href=\"//space.bilibili.com/36298367\"><span class=\"data-box\"><i class=\"b-icon author\"></i>Jimoki_</span></a></div><div class=\"pts\"><div>1145975</div>综合得分\n          </div></div><!----></div></li><li class=\"rank-item\"><div class=\"num\">42</div><div class=\"content\"><div class=\"img\"><a href=\"https://www.bilibili.com/video/av91458840\" target=\"_blank\"><div class=\"lazy-img cover\"><img alt=\"“我们的存在 本身就是谋逆”【燃向双声道|权谋|帝王霸业】\" src=\"\"></div></a><div class=\"watch-later-trigger w-later\"></div></div><div class=\"info\"><a href=\"https://www.bilibili.com/video/av91458840\" target=\"_blank\" class=\"title\">“我们的存在 本身就是谋逆”【燃向双声道|权谋|帝王霸业】</a><!----><div class=\"detail\"><span class=\"data-box\"><i class=\"b-icon play\"></i>41.8万</span><span class=\"data-box\"><i class=\"b-icon view\"></i>2582</span><a target=\"_blank\" href=\"//space.bilibili.com/500619654\"><span class=\"data-box\"><i class=\"b-icon author\"></i>爱打瞌睡的考拉-</span></a></div><div class=\"pts\"><div>1123438</div>综合得分\n          </div></div><!----></div></li><li class=\"rank-item\"><div class=\"num\">43</div><div class=\"content\"><div class=\"img\"><a href=\"https://www.bilibili.com/video/av91888385\" target=\"_blank\"><div class=\"lazy-img cover\"><img alt=\"相亲对象居然是我的粉丝！场面一度尴尬！\" src=\"\"></div></a><div class=\"watch-later-trigger w-later\"></div></div><div class=\"info\"><a href=\"https://www.bilibili.com/video/av91888385\" target=\"_blank\" class=\"title\">相亲对象居然是我的粉丝！场面一度尴尬！</a><!----><div class=\"detail\"><span class=\"data-box\"><i class=\"b-icon play\"></i>215.6万</span><span class=\"data-box\"><i class=\"b-icon view\"></i>3.1万</span><a target=\"_blank\" href=\"//space.bilibili.com/449825072\"><span class=\"data-box\"><i class=\"b-icon author\"></i>高冷小姜</span></a></div><div class=\"pts\"><div>1118607</div>综合得分\n          </div></div><!----></div></li><li class=\"rank-item\"><div class=\"num\">44</div><div class=\"content\"><div class=\"img\"><a href=\"https://www.bilibili.com/video/av92389548\" target=\"_blank\"><div class=\"lazy-img cover\"><img alt=\"【半佛】减肥产品是如何骗你钱的？\" src=\"\"></div></a><div class=\"watch-later-trigger w-later\"></div></div><div class=\"info\"><a href=\"https://www.bilibili.com/video/av92389548\" target=\"_blank\" class=\"title\">【半佛】减肥产品是如何骗你钱的？</a><!----><div class=\"detail\"><span class=\"data-box\"><i class=\"b-icon play\"></i>74.1万</span><span class=\"data-box\"><i class=\"b-icon view\"></i>1.2万</span><a target=\"_blank\" href=\"//space.bilibili.com/37663924\"><span class=\"data-box\"><i class=\"b-icon author\"></i>硬核的半佛仙人</span></a></div><div class=\"pts\"><div>1092769</div>综合得分\n          </div></div><!----></div></li><li class=\"rank-item\"><div class=\"num\">45</div><div class=\"content\"><div class=\"img\"><a href=\"https://www.bilibili.com/video/av90824584\" target=\"_blank\"><div class=\"lazy-img cover\"><img alt=\"当 前 老 师 网 课 现 状\" src=\"\"></div></a><div class=\"watch-later-trigger w-later\"></div></div><div class=\"info\"><a href=\"https://www.bilibili.com/video/av90824584\" target=\"_blank\" class=\"title\">当 前 老 师 网 课 现 状</a><!----><div class=\"detail\"><span class=\"data-box\"><i class=\"b-icon play\"></i>37.4万</span><span class=\"data-box\"><i class=\"b-icon view\"></i>2264</span><a target=\"_blank\" href=\"//space.bilibili.com/120586\"><span class=\"data-box\"><i class=\"b-icon author\"></i>凯玟桑</span></a></div><div class=\"pts\"><div>1092370</div>综合得分\n          </div></div><!----></div></li><li class=\"rank-item\"><div class=\"num\">46</div><div class=\"content\"><div class=\"img\"><a href=\"https://www.bilibili.com/video/av91941319\" target=\"_blank\"><div class=\"lazy-img cover\"><img alt=\"【三神定喘】治一个死一百个，三个疗程彻底断气，让你体验升天的感觉\" src=\"\"></div></a><div class=\"watch-later-trigger w-later\"></div></div><div class=\"info\"><a href=\"https://www.bilibili.com/video/av91941319\" target=\"_blank\" class=\"title\">【三神定喘】治一个死一百个，三个疗程彻底断气，让你体验升天的感觉</a><!----><div class=\"detail\"><span class=\"data-box\"><i class=\"b-icon play\"></i>55.1万</span><span class=\"data-box\"><i class=\"b-icon view\"></i>5974</span><a target=\"_blank\" href=\"//space.bilibili.com/394201823\"><span class=\"data-box\"><i class=\"b-icon author\"></i>狗辉大师</span></a></div><div class=\"pts\"><div>1087881</div>综合得分\n          </div></div><!----></div></li><li class=\"rank-item\"><div class=\"num\">47</div><div class=\"content\"><div class=\"img\"><a href=\"https://www.bilibili.com/video/av91703457\" target=\"_blank\"><div class=\"lazy-img cover\"><img alt=\"【海绵宝宝】B 站 等 级 现 状\" src=\"\"></div></a><div class=\"watch-later-trigger w-later\"></div></div><div class=\"info\"><a href=\"https://www.bilibili.com/video/av91703457\" target=\"_blank\" class=\"title\">【海绵宝宝】B 站 等 级 现 状</a><!----><div class=\"detail\"><span class=\"data-box\"><i class=\"b-icon play\"></i>71.9万</span><span class=\"data-box\"><i class=\"b-icon view\"></i>3.4万</span><a target=\"_blank\" href=\"//space.bilibili.com/12876332\"><span class=\"data-box\"><i class=\"b-icon author\"></i>霍顿</span></a></div><div class=\"pts\"><div>1058754</div>综合得分\n          </div></div><!----></div></li><li class=\"rank-item\"><div class=\"num\">48</div><div class=\"content\"><div class=\"img\"><a href=\"https://www.bilibili.com/video/av92166013\" target=\"_blank\"><div class=\"lazy-img cover\"><img alt=\"我真的太难了！这些东西要怎么选啊！我要做老八！\" src=\"\"></div></a><div class=\"watch-later-trigger w-later\"></div></div><div class=\"info\"><a href=\"https://www.bilibili.com/video/av92166013\" target=\"_blank\" class=\"title\">我真的太难了！这些东西要怎么选啊！我要做老八！</a><!----><div class=\"detail\"><span class=\"data-box\"><i class=\"b-icon play\"></i>114.4万</span><span class=\"data-box\"><i class=\"b-icon view\"></i>14.0万</span><a target=\"_blank\" href=\"//space.bilibili.com/562197\"><span class=\"data-box\"><i class=\"b-icon author\"></i>中国BOY超级大猩猩</span></a></div><div class=\"pts\"><div>1054284</div>综合得分\n          </div></div><div class=\"other-panel\"><div class=\"other\"><a target=\"_blank\" href=\"//www.bilibili.com/video/av92538218\" class=\"other-link\"><span class=\"title\">每天使用健身环锻炼身体，持续一周，会有什么改变吗？</span><span>综合评分</span><strong>872755</strong></a></div><a class=\"more-data\" style=\"display:none;\">显示UP主全部上榜视频<i></i></a></div></div></li><li class=\"rank-item\"><div class=\"num\">49</div><div class=\"content\"><div class=\"img\"><a href=\"https://www.bilibili.com/video/av92378722\" target=\"_blank\"><div class=\"lazy-img cover\"><img alt=\"五斤鸡胸肉可以做出多少鸡精？小伙花两天时间才做出来这么点\" src=\"\"></div></a><div class=\"watch-later-trigger w-later\"></div></div><div class=\"info\"><a href=\"https://www.bilibili.com/video/av92378722\" target=\"_blank\" class=\"title\">五斤鸡胸肉可以做出多少鸡精？小伙花两天时间才做出来这么点</a><!----><div class=\"detail\"><span class=\"data-box\"><i class=\"b-icon play\"></i>111.6万</span><span class=\"data-box\"><i class=\"b-icon view\"></i>2.7万</span><a target=\"_blank\" href=\"//space.bilibili.com/337521240\"><span class=\"data-box\"><i class=\"b-icon author\"></i>记录生活的蛋黄派</span></a></div><div class=\"pts\"><div>1052990</div>综合得分\n          </div></div><!----></div></li><li class=\"rank-item\"><div class=\"num\">50</div><div class=\"content\"><div class=\"img\"><a href=\"https://www.bilibili.com/video/av50314054\" target=\"_blank\"><div class=\"lazy-img cover\"><img alt=\"瘦腿课表（美丽芭蕾外侧+内侧+第三套+第四套+美丽芭蕾拉伸）\" src=\"\"></div></a><div class=\"watch-later-trigger w-later\"></div></div><div class=\"info\"><a href=\"https://www.bilibili.com/video/av50314054\" target=\"_blank\" class=\"title\">瘦腿课表（美丽芭蕾外侧+内侧+第三套+第四套+美丽芭蕾拉伸）</a><!----><div class=\"detail\"><span class=\"data-box\"><i class=\"b-icon play\"></i>50.0万</span><span class=\"data-box\"><i class=\"b-icon view\"></i>1.1万</span><a target=\"_blank\" href=\"//space.bilibili.com/2993682\"><span class=\"data-box\"><i class=\"b-icon author\"></i>普鲁士ll</span></a></div><div class=\"pts\"><div>1045804</div>综合得分\n          </div></div><!----></div></li><li class=\"rank-item\"><div class=\"num\">51</div><div class=\"content\"><div class=\"img\"><a href=\"https://www.bilibili.com/video/av3534854\" target=\"_blank\"><div class=\"lazy-img cover\"><img alt=\"【更新1p，告别蝴蝶袖】美丽芭蕾 天鹅臂 累断手\" src=\"\"></div></a><div class=\"watch-later-trigger w-later\"></div></div><div class=\"info\"><a href=\"https://www.bilibili.com/video/av3534854\" target=\"_blank\" class=\"title\">【更新1p，告别蝴蝶袖】美丽芭蕾 天鹅臂 累断手</a><!----><div class=\"detail\"><span class=\"data-box\"><i class=\"b-icon play\"></i>69.2万</span><span class=\"data-box\"><i class=\"b-icon view\"></i>1.3万</span><a target=\"_blank\" href=\"//space.bilibili.com/3751951\"><span class=\"data-box\"><i class=\"b-icon author\"></i>废柴家里蹲</span></a></div><div class=\"pts\"><div>1042484</div>综合得分\n          </div></div><!----></div></li><li class=\"rank-item\"><div class=\"num\">52</div><div class=\"content\"><div class=\"img\"><a href=\"https://www.bilibili.com/video/av83835400\" target=\"_blank\"><div class=\"lazy-img cover\"><img alt=\"康复专家手把手教学，「石原里美」式下颌线！（P2完整跟练）\" src=\"\"></div></a><div class=\"watch-later-trigger w-later\"></div></div><div class=\"info\"><a href=\"https://www.bilibili.com/video/av83835400\" target=\"_blank\" class=\"title\">康复专家手把手教学，「石原里美」式下颌线！（P2完整跟练）</a><!----><div class=\"detail\"><span class=\"data-box\"><i class=\"b-icon play\"></i>24.9万</span><span class=\"data-box\"><i class=\"b-icon view\"></i>6103</span><a target=\"_blank\" href=\"//space.bilibili.com/152015773\"><span class=\"data-box\"><i class=\"b-icon author\"></i>瘦不了猫</span></a></div><div class=\"pts\"><div>1029120</div>综合得分\n          </div></div><!----></div></li><li class=\"rank-item\"><div class=\"num\">53</div><div class=\"content\"><div class=\"img\"><a href=\"https://www.bilibili.com/video/av92180296\" target=\"_blank\"><div class=\"lazy-img cover\"><img alt=\"《明日方舟》携手WWF联合公益活动「万类共生」宣传PV\" src=\"\"></div></a><div class=\"watch-later-trigger w-later\"></div></div><div class=\"info\"><a href=\"https://www.bilibili.com/video/av92180296\" target=\"_blank\" class=\"title\">《明日方舟》携手WWF联合公益活动「万类共生」宣传PV</a><!----><div class=\"detail\"><span class=\"data-box\"><i class=\"b-icon play\"></i>78.6万</span><span class=\"data-box\"><i class=\"b-icon view\"></i>1.0万</span><a target=\"_blank\" href=\"//space.bilibili.com/161775300\"><span class=\"data-box\"><i class=\"b-icon author\"></i>明日方舟</span></a></div><div class=\"pts\"><div>1016104</div>综合得分\n          </div></div><!----></div></li><li class=\"rank-item\"><div class=\"num\">54</div><div class=\"content\"><div class=\"img\"><a href=\"https://www.bilibili.com/video/av92147507\" target=\"_blank\"><div class=\"lazy-img cover\"><img alt=\"吃 虾 大 户\" src=\"\"></div></a><div class=\"watch-later-trigger w-later\"></div></div><div class=\"info\"><a href=\"https://www.bilibili.com/video/av92147507\" target=\"_blank\" class=\"title\">吃 虾 大 户</a><!----><div class=\"detail\"><span class=\"data-box\"><i class=\"b-icon play\"></i>107.4万</span><span class=\"data-box\"><i class=\"b-icon view\"></i>8699</span><a target=\"_blank\" href=\"//space.bilibili.com/99157282\"><span class=\"data-box\"><i class=\"b-icon author\"></i>盗月社食遇记</span></a></div><div class=\"pts\"><div>1010436</div>综合得分\n          </div></div><!----></div></li><li class=\"rank-item\"><div class=\"num\">55</div><div class=\"content\"><div class=\"img\"><a href=\"https://www.bilibili.com/video/av90541176\" target=\"_blank\"><div class=\"lazy-img cover\"><img alt=\"传说中要靠吸吮少女“续命”的老两口，遇到富江会怎样呢？《富江：养女》\" src=\"\"></div></a><div class=\"watch-later-trigger w-later\"></div></div><div class=\"info\"><a href=\"https://www.bilibili.com/video/av90541176\" target=\"_blank\" class=\"title\">传说中要靠吸吮少女“续命”的老两口，遇到富江会怎样呢？《富江：养女》</a><!----><div class=\"detail\"><span class=\"data-box\"><i class=\"b-icon play\"></i>88.1万</span><span class=\"data-box\"><i class=\"b-icon view\"></i>4566</span><a target=\"_blank\" href=\"//space.bilibili.com/452309333\"><span class=\"data-box\"><i class=\"b-icon author\"></i>丸子叨叨叨</span></a></div><div class=\"pts\"><div>1008646</div>综合得分\n          </div></div><!----></div></li><li class=\"rank-item\"><div class=\"num\">56</div><div class=\"content\"><div class=\"img\"><a href=\"https://www.bilibili.com/video/av91996500\" target=\"_blank\"><div class=\"lazy-img cover\"><img alt=\"【醋醋】这就是二次元广场舞吗，真香！彩虹节拍【bdf2020】\" src=\"\"></div></a><div class=\"watch-later-trigger w-later\"></div></div><div class=\"info\"><a href=\"https://www.bilibili.com/video/av91996500\" target=\"_blank\" class=\"title\">【醋醋】这就是二次元广场舞吗，真香！彩虹节拍【bdf2020】</a><!----><div class=\"detail\"><span class=\"data-box\"><i class=\"b-icon play\"></i>86.4万</span><span class=\"data-box\"><i class=\"b-icon view\"></i>2634</span><a target=\"_blank\" href=\"//space.bilibili.com/2689967\"><span class=\"data-box\"><i class=\"b-icon author\"></i>醋醋cucu</span></a></div><div class=\"pts\"><div>1002846</div>综合得分\n          </div></div><!----></div></li><li class=\"rank-item\"><div class=\"num\">57</div><div class=\"content\"><div class=\"img\"><a href=\"https://www.bilibili.com/video/av91847164\" target=\"_blank\"><div class=\"lazy-img cover\"><img alt=\"5分钟让你明白BGM的重要性~你见过配乐欺负诗朗诵吗？到底是配乐重要还是诗朗诵重要？侯乐天音乐喜剧之《钢琴不是吹的》—配乐诗朗诵\" src=\"\"></div></a><div class=\"watch-later-trigger w-later\"></div></div><div class=\"info\"><a href=\"https://www.bilibili.com/video/av91847164\" target=\"_blank\" class=\"title\">5分钟让你明白BGM的重要性~你见过配乐欺负诗朗诵吗？到底是配乐重要还是诗朗诵重要？侯乐天音乐喜剧之《钢琴不是吹的》—配乐诗朗诵</a><!----><div class=\"detail\"><span class=\"data-box\"><i class=\"b-icon play\"></i>50.7万</span><span class=\"data-box\"><i class=\"b-icon view\"></i>2462</span><a target=\"_blank\" href=\"//space.bilibili.com/64840236\"><span class=\"data-box\"><i class=\"b-icon author\"></i>侯乐天工作室</span></a></div><div class=\"pts\"><div>998398</div>综合得分\n          </div></div><!----></div></li><li class=\"rank-item\"><div class=\"num\">58</div><div class=\"content\"><div class=\"img\"><a href=\"https://www.bilibili.com/video/av92119607\" target=\"_blank\"><div class=\"lazy-img cover\"><img alt=\"祖 安 一 家 亲 ????（大结局）\" src=\"\"></div></a><div class=\"watch-later-trigger w-later\"></div></div><div class=\"info\"><a href=\"https://www.bilibili.com/video/av92119607\" target=\"_blank\" class=\"title\">祖 安 一 家 亲 ????（大结局）</a><!----><div class=\"detail\"><span class=\"data-box\"><i class=\"b-icon play\"></i>65.9万</span><span class=\"data-box\"><i class=\"b-icon view\"></i>3180</span><a target=\"_blank\" href=\"//space.bilibili.com/9354231\"><span class=\"data-box\"><i class=\"b-icon author\"></i>快乐的台长</span></a></div><div class=\"pts\"><div>994276</div>综合得分\n          </div></div><!----></div></li><li class=\"rank-item\"><div class=\"num\">59</div><div class=\"content\"><div class=\"img\"><a href=\"https://www.bilibili.com/video/av92194218\" target=\"_blank\"><div class=\"lazy-img cover\"><img alt=\"称霸了6亿年 ，才发现自己忘了长脑子【龙女动物学07】刺胞动物门\" src=\"\"></div></a><div class=\"watch-later-trigger w-later\"></div></div><div class=\"info\"><a href=\"https://www.bilibili.com/video/av92194218\" target=\"_blank\" class=\"title\">称霸了6亿年 ，才发现自己忘了长脑子【龙女动物学07】刺胞动物门</a><!----><div class=\"detail\"><span class=\"data-box\"><i class=\"b-icon play\"></i>79.1万</span><span class=\"data-box\"><i class=\"b-icon view\"></i>3083</span><a target=\"_blank\" href=\"//space.bilibili.com/18706318\"><span class=\"data-box\"><i class=\"b-icon author\"></i>龙女之声</span></a></div><div class=\"pts\"><div>978966</div>综合得分\n          </div></div><!----></div></li><li class=\"rank-item\"><div class=\"num\">60</div><div class=\"content\"><div class=\"img\"><a href=\"https://www.bilibili.com/video/av92142952\" target=\"_blank\"><div class=\"lazy-img cover\"><img alt=\"那些说话喜欢夹英文的中国人\" src=\"\"></div></a><div class=\"watch-later-trigger w-later\"></div></div><div class=\"info\"><a href=\"https://www.bilibili.com/video/av92142952\" target=\"_blank\" class=\"title\">那些说话喜欢夹英文的中国人</a><!----><div class=\"detail\"><span class=\"data-box\"><i class=\"b-icon play\"></i>115.4万</span><span class=\"data-box\"><i class=\"b-icon view\"></i>6936</span><a target=\"_blank\" href=\"//space.bilibili.com/297242063\"><span class=\"data-box\"><i class=\"b-icon author\"></i>黄一刀有毒</span></a></div><div class=\"pts\"><div>975355</div>综合得分\n          </div></div><!----></div></li><li class=\"rank-item\"><div class=\"num\">61</div><div class=\"content\"><div class=\"img\"><a href=\"https://www.bilibili.com/video/av91341454\" target=\"_blank\"><div class=\"lazy-img cover\"><img alt=\"自制KFC肯德基炸鸡翅，鲜嫩多汁，酥脆外皮的关键\" src=\"\"></div></a><div class=\"watch-later-trigger w-later\"></div></div><div class=\"info\"><a href=\"https://www.bilibili.com/video/av91341454\" target=\"_blank\" class=\"title\">自制KFC肯德基炸鸡翅，鲜嫩多汁，酥脆外皮的关键</a><!----><div class=\"detail\"><span class=\"data-box\"><i class=\"b-icon play\"></i>32.1万</span><span class=\"data-box\"><i class=\"b-icon view\"></i>459</span><a target=\"_blank\" href=\"//space.bilibili.com/99795254\"><span class=\"data-box\"><i class=\"b-icon author\"></i>丁抠抠的小厨房</span></a></div><div class=\"pts\"><div>974872</div>综合得分\n          </div></div><!----></div></li><li class=\"rank-item\"><div class=\"num\">62</div><div class=\"content\"><div class=\"img\"><a href=\"https://www.bilibili.com/video/av92121576\" target=\"_blank\"><div class=\"lazy-img cover\"><img alt=\"我被女朋友捆绑在厕所，公开处刑！\" src=\"\"></div></a><div class=\"watch-later-trigger w-later\"></div></div><div class=\"info\"><a href=\"https://www.bilibili.com/video/av92121576\" target=\"_blank\" class=\"title\">我被女朋友捆绑在厕所，公开处刑！</a><!----><div class=\"detail\"><span class=\"data-box\"><i class=\"b-icon play\"></i>106.8万</span><span class=\"data-box\"><i class=\"b-icon view\"></i>2.3万</span><a target=\"_blank\" href=\"//space.bilibili.com/147166910\"><span class=\"data-box\"><i class=\"b-icon author\"></i>雨哥到处跑</span></a></div><div class=\"pts\"><div>967790</div>综合得分\n          </div></div><!----></div></li><li class=\"rank-item\"><div class=\"num\">63</div><div class=\"content\"><div class=\"img\"><a href=\"https://www.bilibili.com/video/av92186513\" target=\"_blank\"><div class=\"lazy-img cover\"><img alt=\"教大家破解闪照，不用看闪照就知道里面是什么。\" src=\"\"></div></a><div class=\"watch-later-trigger w-later\"></div></div><div class=\"info\"><a href=\"https://www.bilibili.com/video/av92186513\" target=\"_blank\" class=\"title\">教大家破解闪照，不用看闪照就知道里面是什么。</a><!----><div class=\"detail\"><span class=\"data-box\"><i class=\"b-icon play\"></i>95.3万</span><span class=\"data-box\"><i class=\"b-icon view\"></i>1357</span><a target=\"_blank\" href=\"//space.bilibili.com/174452295\"><span class=\"data-box\"><i class=\"b-icon author\"></i>女装完就改名</span></a></div><div class=\"pts\"><div>965132</div>综合得分\n          </div></div><!----></div></li><li class=\"rank-item\"><div class=\"num\">64</div><div class=\"content\"><div class=\"img\"><a href=\"https://www.bilibili.com/video/av92674262\" target=\"_blank\"><div class=\"lazy-img cover\"><img alt=\"龙吟草莓的妹妹：羊 啸 草 莓\" src=\"\"></div></a><div class=\"watch-later-trigger w-later\"></div></div><div class=\"info\"><a href=\"https://www.bilibili.com/video/av92674262\" target=\"_blank\" class=\"title\">龙吟草莓的妹妹：羊 啸 草 莓</a><!----><div class=\"detail\"><span class=\"data-box\"><i class=\"b-icon play\"></i>50.0万</span><span class=\"data-box\"><i class=\"b-icon view\"></i>4.0万</span><a target=\"_blank\" href=\"//space.bilibili.com/18202105\"><span class=\"data-box\"><i class=\"b-icon author\"></i>绵羊料理</span></a></div><div class=\"pts\"><div>953045</div>综合得分\n          </div></div><!----></div></li><li class=\"rank-item\"><div class=\"num\">65</div><div class=\"content\"><div class=\"img\"><a href=\"https://www.bilibili.com/video/av91930007\" target=\"_blank\"><div class=\"lazy-img cover\"><img alt=\"【人狗共演】猜 猜 我 是 谁\" src=\"\"></div></a><div class=\"watch-later-trigger w-later\"></div></div><div class=\"info\"><a href=\"https://www.bilibili.com/video/av91930007\" target=\"_blank\" class=\"title\">【人狗共演】猜 猜 我 是 谁</a><!----><div class=\"detail\"><span class=\"data-box\"><i class=\"b-icon play\"></i>91.1万</span><span class=\"data-box\"><i class=\"b-icon view\"></i>1824</span><a target=\"_blank\" href=\"//space.bilibili.com/297675463\"><span class=\"data-box\"><i class=\"b-icon author\"></i>是我的星星啊啊</span></a></div><div class=\"pts\"><div>947392</div>综合得分\n          </div></div><!----></div></li><li class=\"rank-item\"><div class=\"num\">66</div><div class=\"content\"><div class=\"img\"><a href=\"https://www.bilibili.com/video/av22227629\" target=\"_blank\"><div class=\"lazy-img cover\"><img alt=\"在床上就可以做的20分钟特快瘦大腿操  2星期内明显见效【Coffee林芊妤】\" src=\"\"></div></a><div class=\"watch-later-trigger w-later\"></div></div><div class=\"info\"><a href=\"https://www.bilibili.com/video/av22227629\" target=\"_blank\" class=\"title\">在床上就可以做的20分钟特快瘦大腿操  2星期内明显见效【Coffee林芊妤】</a><!----><div class=\"detail\"><span class=\"data-box\"><i class=\"b-icon play\"></i>43.1万</span><span class=\"data-box\"><i class=\"b-icon view\"></i>9117</span><a target=\"_blank\" href=\"//space.bilibili.com/1960460\"><span class=\"data-box\"><i class=\"b-icon author\"></i>带枪小女孩weibo</span></a></div><div class=\"pts\"><div>939475</div>综合得分\n          </div></div><!----></div></li><li class=\"rank-item\"><div class=\"num\">67</div><div class=\"content\"><div class=\"img\"><a href=\"https://www.bilibili.com/video/av92012084\" target=\"_blank\"><div class=\"lazy-img cover\"><img alt=\"【嘟督咆哮解说】这才是疫情期间正确制作生日蛋糕的方式！\" src=\"\"></div></a><div class=\"watch-later-trigger w-later\"></div></div><div class=\"info\"><a href=\"https://www.bilibili.com/video/av92012084\" target=\"_blank\" class=\"title\">【嘟督咆哮解说】这才是疫情期间正确制作生日蛋糕的方式！</a><!----><div class=\"detail\"><span class=\"data-box\"><i class=\"b-icon play\"></i>54.9万</span><span class=\"data-box\"><i class=\"b-icon view\"></i>3.9万</span><a target=\"_blank\" href=\"//space.bilibili.com/2403047\"><span class=\"data-box\"><i class=\"b-icon author\"></i>嘟督不噶油</span></a></div><div class=\"pts\"><div>926570</div>综合得分\n          </div></div><!----></div></li><li class=\"rank-item\"><div class=\"num\">68</div><div class=\"content\"><div class=\"img\"><a href=\"https://www.bilibili.com/video/av89411163\" target=\"_blank\"><div class=\"lazy-img cover\"><img alt=\"这宇航员我TM不当了！\" src=\"\"></div></a><div class=\"watch-later-trigger w-later\"></div></div><div class=\"info\"><a href=\"https://www.bilibili.com/video/av89411163\" target=\"_blank\" class=\"title\">这宇航员我TM不当了！</a><!----><div class=\"detail\"><span class=\"data-box\"><i class=\"b-icon play\"></i>69.9万</span><span class=\"data-box\"><i class=\"b-icon view\"></i>2730</span><a target=\"_blank\" href=\"//space.bilibili.com/258547693\"><span class=\"data-box\"><i class=\"b-icon author\"></i>麦老当</span></a></div><div class=\"pts\"><div>922076</div>综合得分\n          </div></div><!----></div></li><li class=\"rank-item\"><div class=\"num\">69</div><div class=\"content\"><div class=\"img\"><a href=\"https://www.bilibili.com/video/av91900795\" target=\"_blank\"><div class=\"lazy-img cover\"><img alt=\"骁话一下：每百人6个被忽悠，引爆韩国疫情的奇葩邪教，为何如此猖獗？\" src=\"\"></div></a><div class=\"watch-later-trigger w-later\"></div></div><div class=\"info\"><a href=\"https://www.bilibili.com/video/av91900795\" target=\"_blank\" class=\"title\">骁话一下：每百人6个被忽悠，引爆韩国疫情的奇葩邪教，为何如此猖獗？</a><!----><div class=\"detail\"><span class=\"data-box\"><i class=\"b-icon play\"></i>90.0万</span><span class=\"data-box\"><i class=\"b-icon view\"></i>2.0万</span><a target=\"_blank\" href=\"//space.bilibili.com/10330740\"><span class=\"data-box\"><i class=\"b-icon author\"></i>观察者网</span></a></div><div class=\"pts\"><div>920023</div>综合得分\n          </div></div><div class=\"other-panel\"><div class=\"other\"><a target=\"_blank\" href=\"//www.bilibili.com/video/av92433763\" class=\"other-link\"><span class=\"title\">【懂点儿啥32】韩国最大的“疫情”，就是他们的邪教</span><span>综合评分</span><strong>775616</strong></a></div><a class=\"more-data\" style=\"display:none;\">显示UP主全部上榜视频<i></i></a></div></div></li><li class=\"rank-item\"><div class=\"num\">70</div><div class=\"content\"><div class=\"img\"><a href=\"https://www.bilibili.com/video/av91544129\" target=\"_blank\"><div class=\"lazy-img cover\"><img alt=\"当时我害怕极了，我....哈哈哈哈哈\" src=\"\"></div></a><div class=\"watch-later-trigger w-later\"></div></div><div class=\"info\"><a href=\"https://www.bilibili.com/video/av91544129\" target=\"_blank\" class=\"title\">当时我害怕极了，我....哈哈哈哈哈</a><!----><div class=\"detail\"><span class=\"data-box\"><i class=\"b-icon play\"></i>73.6万</span><span class=\"data-box\"><i class=\"b-icon view\"></i>1637</span><a target=\"_blank\" href=\"//space.bilibili.com/79153003\"><span class=\"data-box\"><i class=\"b-icon author\"></i>异瞳才不是死宅-</span></a></div><div class=\"pts\"><div>912292</div>综合得分\n          </div></div><!----></div></li><li class=\"rank-item\"><div class=\"num\">71</div><div class=\"content\"><div class=\"img\"><a href=\"https://www.bilibili.com/video/av82766716\" target=\"_blank\"><div class=\"lazy-img cover\"><img alt=\"【处处吻】 愣着干嘛 进来白嫖啊\" src=\"\"></div></a><div class=\"watch-later-trigger w-later\"></div></div><div class=\"info\"><a href=\"https://www.bilibili.com/video/av82766716\" target=\"_blank\" class=\"title\">【处处吻】 愣着干嘛 进来白嫖啊</a><!----><div class=\"detail\"><span class=\"data-box\"><i class=\"b-icon play\"></i>46.3万</span><span class=\"data-box\"><i class=\"b-icon view\"></i>1207</span><a target=\"_blank\" href=\"//space.bilibili.com/400413571\"><span class=\"data-box\"><i class=\"b-icon author\"></i>一本正经的小方</span></a></div><div class=\"pts\"><div>905272</div>综合得分\n          </div></div><!----></div></li><li class=\"rank-item\"><div class=\"num\">72</div><div class=\"content\"><div class=\"img\"><a href=\"https://www.bilibili.com/video/av92188887\" target=\"_blank\"><div class=\"lazy-img cover\"><img alt=\"【官方回播】Bilibili Macro Link-Visual Release 2019\" src=\"\"></div></a><div class=\"watch-later-trigger w-later\"></div></div><div class=\"info\"><a href=\"https://www.bilibili.com/video/av92188887\" target=\"_blank\" class=\"title\">【官方回播】Bilibili Macro Link-Visual Release 2019</a><!----><div class=\"detail\"><span class=\"data-box\"><i class=\"b-icon play\"></i>35.0万</span><span class=\"data-box\"><i class=\"b-icon view\"></i>3.9万</span><a target=\"_blank\" href=\"//space.bilibili.com/403748305\"><span class=\"data-box\"><i class=\"b-icon author\"></i>BML制作指挥部</span></a></div><div class=\"pts\"><div>902541</div>综合得分\n          </div></div><!----></div></li><li class=\"rank-item\"><div class=\"num\">73</div><div class=\"content\"><div class=\"img\"><a href=\"https://www.bilibili.com/video/av92157578\" target=\"_blank\"><div class=\"lazy-img cover\"><img alt=\"【朱一旦】148 发现了一个全新的商机！\" src=\"\"></div></a><div class=\"watch-later-trigger w-later\"></div></div><div class=\"info\"><a href=\"https://www.bilibili.com/video/av92157578\" target=\"_blank\" class=\"title\">【朱一旦】148 发现了一个全新的商机！</a><!----><div class=\"detail\"><span class=\"data-box\"><i class=\"b-icon play\"></i>195.4万</span><span class=\"data-box\"><i class=\"b-icon view\"></i>4672</span><a target=\"_blank\" href=\"//space.bilibili.com/437316738\"><span class=\"data-box\"><i class=\"b-icon author\"></i>朱一旦的枯燥生活</span></a></div><div class=\"pts\"><div>898603</div>综合得分\n          </div></div><!----></div></li><li class=\"rank-item\"><div class=\"num\">74</div><div class=\"content\"><div class=\"img\"><a href=\"https://www.bilibili.com/video/av91763054\" target=\"_blank\"><div class=\"lazy-img cover\"><img alt=\"【犬科踩点混剪|捕猎集锦|燃向】天性如此/Natural（野生狗片混剪）\" src=\"\"></div></a><div class=\"watch-later-trigger w-later\"></div></div><div class=\"info\"><a href=\"https://www.bilibili.com/video/av91763054\" target=\"_blank\" class=\"title\">【犬科踩点混剪|捕猎集锦|燃向】天性如此/Natural（野生狗片混剪）</a><!----><div class=\"detail\"><span class=\"data-box\"><i class=\"b-icon play\"></i>22.1万</span><span class=\"data-box\"><i class=\"b-icon view\"></i>1220</span><a target=\"_blank\" href=\"//space.bilibili.com/1583050\"><span class=\"data-box\"><i class=\"b-icon author\"></i>爱福西西一级学者</span></a></div><div class=\"pts\"><div>897922</div>综合得分\n          </div></div><!----></div></li><li class=\"rank-item\"><div class=\"num\">75</div><div class=\"content\"><div class=\"img\"><a href=\"https://www.bilibili.com/video/av91922911\" target=\"_blank\"><div class=\"lazy-img cover\"><img alt=\"【允星河】这TM才是神仙打架\" src=\"\"></div></a><div class=\"watch-later-trigger w-later\"></div></div><div class=\"info\"><a href=\"https://www.bilibili.com/video/av91922911\" target=\"_blank\" class=\"title\">【允星河】这TM才是神仙打架</a><!----><div class=\"detail\"><span class=\"data-box\"><i class=\"b-icon play\"></i>108.0万</span><span class=\"data-box\"><i class=\"b-icon view\"></i>2017</span><a target=\"_blank\" href=\"//space.bilibili.com/1605721\"><span class=\"data-box\"><i class=\"b-icon author\"></i>允星河Yoseya</span></a></div><div class=\"pts\"><div>876911</div>综合得分\n          </div></div><!----></div></li><li class=\"rank-item\"><div class=\"num\">76</div><div class=\"content\"><div class=\"img\"><a href=\"https://www.bilibili.com/video/av91835142\" target=\"_blank\"><div class=\"lazy-img cover\"><img alt=\"撸大猫\" src=\"\"></div></a><div class=\"watch-later-trigger w-later\"></div></div><div class=\"info\"><a href=\"https://www.bilibili.com/video/av91835142\" target=\"_blank\" class=\"title\">撸大猫</a><!----><div class=\"detail\"><span class=\"data-box\"><i class=\"b-icon play\"></i>116.6万</span><span class=\"data-box\"><i class=\"b-icon view\"></i>835</span><a target=\"_blank\" href=\"//space.bilibili.com/12248850\"><span class=\"data-box\"><i class=\"b-icon author\"></i>岑子舟</span></a></div><div class=\"pts\"><div>868578</div>综合得分\n          </div></div><!----></div></li><li class=\"rank-item\"><div class=\"num\">77</div><div class=\"content\"><div class=\"img\"><a href=\"https://www.bilibili.com/video/av91644176\" target=\"_blank\"><div class=\"lazy-img cover\"><img alt=\"【神经病式配音】谁都是你老婆？！DD斩首！\" src=\"\"></div></a><div class=\"watch-later-trigger w-later\"></div></div><div class=\"info\"><a href=\"https://www.bilibili.com/video/av91644176\" target=\"_blank\" class=\"title\">【神经病式配音】谁都是你老婆？！DD斩首！</a><!----><div class=\"detail\"><span class=\"data-box\"><i class=\"b-icon play\"></i>41.9万</span><span class=\"data-box\"><i class=\"b-icon view\"></i>1303</span><a target=\"_blank\" href=\"//space.bilibili.com/249118\"><span class=\"data-box\"><i class=\"b-icon author\"></i>shourei小N</span></a></div><div class=\"pts\"><div>841941</div>综合得分\n          </div></div><!----></div></li><li class=\"rank-item\"><div class=\"num\">78</div><div class=\"content\"><div class=\"img\"><a href=\"https://www.bilibili.com/video/av91955082\" target=\"_blank\"><div class=\"lazy-img cover\"><img alt=\"因为疑似新冠肺炎，我被澳洲医院隔离了【nya酱】\" src=\"\"></div></a><div class=\"watch-later-trigger w-later\"></div></div><div class=\"info\"><a href=\"https://www.bilibili.com/video/av91955082\" target=\"_blank\" class=\"title\">因为疑似新冠肺炎，我被澳洲医院隔离了【nya酱】</a><!----><div class=\"detail\"><span class=\"data-box\"><i class=\"b-icon play\"></i>66.5万</span><span class=\"data-box\"><i class=\"b-icon view\"></i>3405</span><a target=\"_blank\" href=\"//space.bilibili.com/1885078\"><span class=\"data-box\"><i class=\"b-icon author\"></i>nya酱的一生</span></a></div><div class=\"pts\"><div>841561</div>综合得分\n          </div></div><!----></div></li><li class=\"rank-item\"><div class=\"num\">79</div><div class=\"content\"><div class=\"img\"><a href=\"https://www.bilibili.com/video/av89799412\" target=\"_blank\"><div class=\"lazy-img cover\"><img alt=\"【声优接到诈骗电话】哈哈哈哈真的好好玩！！！\" src=\"\"></div></a><div class=\"watch-later-trigger w-later\"></div></div><div class=\"info\"><a href=\"https://www.bilibili.com/video/av89799412\" target=\"_blank\" class=\"title\">【声优接到诈骗电话】哈哈哈哈真的好好玩！！！</a><!----><div class=\"detail\"><span class=\"data-box\"><i class=\"b-icon play\"></i>66.4万</span><span class=\"data-box\"><i class=\"b-icon view\"></i>2420</span><a target=\"_blank\" href=\"//space.bilibili.com/491936052\"><span class=\"data-box\"><i class=\"b-icon author\"></i>啊脑袋_</span></a></div><div class=\"pts\"><div>818727</div>综合得分\n          </div></div><!----></div></li><li class=\"rank-item\"><div class=\"num\">80</div><div class=\"content\"><div class=\"img\"><a href=\"https://www.bilibili.com/video/av91651051\" target=\"_blank\"><div class=\"lazy-img cover\"><img alt=\"【沙雕新闻】直接笑到原地去世，喝水吃饭慎入\" src=\"\"></div></a><div class=\"watch-later-trigger w-later\"></div></div><div class=\"info\"><a href=\"https://www.bilibili.com/video/av91651051\" target=\"_blank\" class=\"title\">【沙雕新闻】直接笑到原地去世，喝水吃饭慎入</a><!----><div class=\"detail\"><span class=\"data-box\"><i class=\"b-icon play\"></i>108.3万</span><span class=\"data-box\"><i class=\"b-icon view\"></i>2.7万</span><a target=\"_blank\" href=\"//space.bilibili.com/20892823\"><span class=\"data-box\"><i class=\"b-icon author\"></i>柠檬派奇幻漂流</span></a></div><div class=\"pts\"><div>812443</div>综合得分\n          </div></div><!----></div></li><li class=\"rank-item\"><div class=\"num\">81</div><div class=\"content\"><div class=\"img\"><a href=\"https://www.bilibili.com/video/av92211150\" target=\"_blank\"><div class=\"lazy-img cover\"><img alt=\"在抖音买的水果真的有视频里那么好吗\" src=\"\"></div></a><div class=\"watch-later-trigger w-later\"></div></div><div class=\"info\"><a href=\"https://www.bilibili.com/video/av92211150\" target=\"_blank\" class=\"title\">在抖音买的水果真的有视频里那么好吗</a><!----><div class=\"detail\"><span class=\"data-box\"><i class=\"b-icon play\"></i>174.4万</span><span class=\"data-box\"><i class=\"b-icon view\"></i>2.6万</span><a target=\"_blank\" href=\"//space.bilibili.com/196356191\"><span class=\"data-box\"><i class=\"b-icon author\"></i>翔翔大作战</span></a></div><div class=\"pts\"><div>808270</div>综合得分\n          </div></div><!----></div></li><li class=\"rank-item\"><div class=\"num\">82</div><div class=\"content\"><div class=\"img\"><a href=\"https://www.bilibili.com/video/av92069282\" target=\"_blank\"><div class=\"lazy-img cover\"><img alt=\"【每 天 一 遍 ，肥 肉 再 见】8分钟无器械燃脂训练\" src=\"\"></div></a><div class=\"watch-later-trigger w-later\"></div></div><div class=\"info\"><a href=\"https://www.bilibili.com/video/av92069282\" target=\"_blank\" class=\"title\">【每 天 一 遍 ，肥 肉 再 见】8分钟无器械燃脂训练</a><!----><div class=\"detail\"><span class=\"data-box\"><i class=\"b-icon play\"></i>18.8万</span><span class=\"data-box\"><i class=\"b-icon view\"></i>1948</span><a target=\"_blank\" href=\"//space.bilibili.com/66391032\"><span class=\"data-box\"><i class=\"b-icon author\"></i>帅soserious</span></a></div><div class=\"pts\"><div>806151</div>综合得分\n          </div></div><!----></div></li><li class=\"rank-item\"><div class=\"num\">83</div><div class=\"content\"><div class=\"img\"><a href=\"https://www.bilibili.com/video/av91688086\" target=\"_blank\"><div class=\"lazy-img cover\"><img alt=\"【基德】日本这次被各国打脸，来，看看背后的博弈\" src=\"\"></div></a><div class=\"watch-later-trigger w-later\"></div></div><div class=\"info\"><a href=\"https://www.bilibili.com/video/av91688086\" target=\"_blank\" class=\"title\">【基德】日本这次被各国打脸，来，看看背后的博弈</a><!----><div class=\"detail\"><span class=\"data-box\"><i class=\"b-icon play\"></i>74.1万</span><span class=\"data-box\"><i class=\"b-icon view\"></i>7419</span><a target=\"_blank\" href=\"//space.bilibili.com/510856133\"><span class=\"data-box\"><i class=\"b-icon author\"></i>吟游诗人基德</span></a></div><div class=\"pts\"><div>798819</div>综合得分\n          </div></div><!----></div></li><li class=\"rank-item\"><div class=\"num\">84</div><div class=\"content\"><div class=\"img\"><a href=\"https://www.bilibili.com/video/av91772980\" target=\"_blank\"><div class=\"lazy-img cover\"><img alt=\"《抽烟模拟器》玩过没？？\" src=\"\"></div></a><div class=\"watch-later-trigger w-later\"></div></div><div class=\"info\"><a href=\"https://www.bilibili.com/video/av91772980\" target=\"_blank\" class=\"title\">《抽烟模拟器》玩过没？？</a><!----><div class=\"detail\"><span class=\"data-box\"><i class=\"b-icon play\"></i>101.9万</span><span class=\"data-box\"><i class=\"b-icon view\"></i>9899</span><a target=\"_blank\" href=\"//space.bilibili.com/13354765\"><span class=\"data-box\"><i class=\"b-icon author\"></i>徐大虾咯</span></a></div><div class=\"pts\"><div>791469</div>综合得分\n          </div></div><div class=\"other-panel\"><div class=\"other\"><a target=\"_blank\" href=\"//www.bilibili.com/video/av92014380\" class=\"other-link\"><span class=\"title\">丢人合集</span><span>综合评分</span><strong>782064</strong></a></div><a class=\"more-data\" style=\"display:none;\">显示UP主全部上榜视频<i></i></a></div></div></li><li class=\"rank-item\"><div class=\"num\">85</div><div class=\"content\"><div class=\"img\"><a href=\"https://www.bilibili.com/video/av91662776\" target=\"_blank\"><div class=\"lazy-img cover\"><img alt=\"对不起，我真的累了，这次压力打败了我\" src=\"\"></div></a><div class=\"watch-later-trigger w-later\"></div></div><div class=\"info\"><a href=\"https://www.bilibili.com/video/av91662776\" target=\"_blank\" class=\"title\">对不起，我真的累了，这次压力打败了我</a><!----><div class=\"detail\"><span class=\"data-box\"><i class=\"b-icon play\"></i>42.0万</span><span class=\"data-box\"><i class=\"b-icon view\"></i>1.6万</span><a target=\"_blank\" href=\"//space.bilibili.com/1654470\"><span class=\"data-box\"><i class=\"b-icon author\"></i>席拉瑞丝</span></a></div><div class=\"pts\"><div>790450</div>综合得分\n          </div></div><!----></div></li><li class=\"rank-item\"><div class=\"num\">86</div><div class=\"content\"><div class=\"img\"><a href=\"https://www.bilibili.com/video/av91814419\" target=\"_blank\"><div class=\"lazy-img cover\"><img alt=\"华农兄弟：看一下兄弟家的野池塘还有没有鱼，再拔点枇杷苗来种\" src=\"\"></div></a><div class=\"watch-later-trigger w-later\"></div></div><div class=\"info\"><a href=\"https://www.bilibili.com/video/av91814419\" target=\"_blank\" class=\"title\">华农兄弟：看一下兄弟家的野池塘还有没有鱼，再拔点枇杷苗来种</a><!----><div class=\"detail\"><span class=\"data-box\"><i class=\"b-icon play\"></i>154.0万</span><span class=\"data-box\"><i class=\"b-icon view\"></i>1.4万</span><a target=\"_blank\" href=\"//space.bilibili.com/250858633\"><span class=\"data-box\"><i class=\"b-icon author\"></i>华农兄弟</span></a></div><div class=\"pts\"><div>769222</div>综合得分\n          </div></div><div class=\"other-panel\"><div class=\"other\"><a target=\"_blank\" href=\"//www.bilibili.com/video/av92472600\" class=\"other-link\"><span class=\"title\">华农兄弟：扔了4个地笼到水潭里，第二天带个桶，高兴的去收鱼</span><span>综合评分</span><strong>750301</strong></a></div><a class=\"more-data\" style=\"display:none;\">显示UP主全部上榜视频<i></i></a></div></div></li><li class=\"rank-item\"><div class=\"num\">87</div><div class=\"content\"><div class=\"img\"><a href=\"https://www.bilibili.com/video/av68364792\" target=\"_blank\"><div class=\"lazy-img cover\"><img alt=\"压抑到极致的瞬间燃爆！！！我拯救了世界 世界却抛弃了我\" src=\"\"></div></a><div class=\"watch-later-trigger w-later\"></div></div><div class=\"info\"><a href=\"https://www.bilibili.com/video/av68364792\" target=\"_blank\" class=\"title\">压抑到极致的瞬间燃爆！！！我拯救了世界 世界却抛弃了我</a><!----><div class=\"detail\"><span class=\"data-box\"><i class=\"b-icon play\"></i>33.2万</span><span class=\"data-box\"><i class=\"b-icon view\"></i>1350</span><a target=\"_blank\" href=\"//space.bilibili.com/8055928\"><span class=\"data-box\"><i class=\"b-icon author\"></i>在下蕾姆有何贵干</span></a></div><div class=\"pts\"><div>758711</div>综合得分\n          </div></div><!----></div></li><li class=\"rank-item\"><div class=\"num\">88</div><div class=\"content\"><div class=\"img\"><a href=\"https://www.bilibili.com/video/av90525290\" target=\"_blank\"><div class=\"lazy-img cover\"><img alt=\"奇…奇怪的知识增加了!!\" src=\"\"></div></a><div class=\"watch-later-trigger w-later\"></div></div><div class=\"info\"><a href=\"https://www.bilibili.com/video/av90525290\" target=\"_blank\" class=\"title\">奇…奇怪的知识增加了!!</a><!----><div class=\"detail\"><span class=\"data-box\"><i class=\"b-icon play\"></i>32.9万</span><span class=\"data-box\"><i class=\"b-icon view\"></i>2365</span><a target=\"_blank\" href=\"//space.bilibili.com/124735327\"><span class=\"data-box\"><i class=\"b-icon author\"></i>-柠萌菌-</span></a></div><div class=\"pts\"><div>754583</div>综合得分\n          </div></div><div class=\"other-panel\"><div class=\"other\"><a target=\"_blank\" href=\"//www.bilibili.com/video/av91507560\" class=\"other-link\"><span class=\"title\">他笑的那一刻，我们长大了！</span><span>综合评分</span><strong>746456</strong></a></div><a class=\"more-data\" style=\"display:none;\">显示UP主全部上榜视频<i></i></a></div></div></li><li class=\"rank-item\"><div class=\"num\">89</div><div class=\"content\"><div class=\"img\"><a href=\"https://www.bilibili.com/video/av92649884\" target=\"_blank\"><div class=\"lazy-img cover\"><img alt=\"日本绝学！试着做这个动作1秒你的背会发生什么变化....\" src=\"\"></div></a><div class=\"watch-later-trigger w-later\"></div></div><div class=\"info\"><a href=\"https://www.bilibili.com/video/av92649884\" target=\"_blank\" class=\"title\">日本绝学！试着做这个动作1秒你的背会发生什么变化....</a><!----><div class=\"detail\"><span class=\"data-box\"><i class=\"b-icon play\"></i>40.7万</span><span class=\"data-box\"><i class=\"b-icon view\"></i>7088</span><a target=\"_blank\" href=\"//space.bilibili.com/6574487\"><span class=\"data-box\"><i class=\"b-icon author\"></i>纳豆奶奶</span></a></div><div class=\"pts\"><div>754397</div>综合得分\n          </div></div><!----></div></li><li class=\"rank-item\"><div class=\"num\">90</div><div class=\"content\"><div class=\"img\"><a href=\"https://www.bilibili.com/video/av91188408\" target=\"_blank\"><div class=\"lazy-img cover\"><img alt=\"谁才是普通人-月薪3000是什么水平？\" src=\"\"></div></a><div class=\"watch-later-trigger w-later\"></div></div><div class=\"info\"><a href=\"https://www.bilibili.com/video/av91188408\" target=\"_blank\" class=\"title\">谁才是普通人-月薪3000是什么水平？</a><!----><div class=\"detail\"><span class=\"data-box\"><i class=\"b-icon play\"></i>36.9万</span><span class=\"data-box\"><i class=\"b-icon view\"></i>5206</span><a target=\"_blank\" href=\"//space.bilibili.com/492564948\"><span class=\"data-box\"><i class=\"b-icon author\"></i>手绢舞者</span></a></div><div class=\"pts\"><div>753818</div>综合得分\n          </div></div><!----></div></li><li class=\"rank-item\"><div class=\"num\">91</div><div class=\"content\"><div class=\"img\"><a href=\"https://www.bilibili.com/video/av91139496\" target=\"_blank\"><div class=\"lazy-img cover\"><img alt=\"关于抑郁 沉于海底\" src=\"\"></div></a><div class=\"watch-later-trigger w-later\"></div></div><div class=\"info\"><a href=\"https://www.bilibili.com/video/av91139496\" target=\"_blank\" class=\"title\">关于抑郁 沉于海底</a><!----><div class=\"detail\"><span class=\"data-box\"><i class=\"b-icon play\"></i>20.9万</span><span class=\"data-box\"><i class=\"b-icon view\"></i>629</span><a target=\"_blank\" href=\"//space.bilibili.com/33338837\"><span class=\"data-box\"><i class=\"b-icon author\"></i>一支榴莲</span></a></div><div class=\"pts\"><div>753380</div>综合得分\n          </div></div><!----></div></li><li class=\"rank-item\"><div class=\"num\">92</div><div class=\"content\"><div class=\"img\"><a href=\"https://www.bilibili.com/video/av92077273\" target=\"_blank\"><div class=\"lazy-img cover\"><img alt=\"老干妈，辣子鸡，炸辣椒，大sao第一次吃辣味拌面，这是辣懵了吧\" src=\"\"></div></a><div class=\"watch-later-trigger w-later\"></div></div><div class=\"info\"><a href=\"https://www.bilibili.com/video/av92077273\" target=\"_blank\" class=\"title\">老干妈，辣子鸡，炸辣椒，大sao第一次吃辣味拌面，这是辣懵了吧</a><!----><div class=\"detail\"><span class=\"data-box\"><i class=\"b-icon play\"></i>139.9万</span><span class=\"data-box\"><i class=\"b-icon view\"></i>2.0万</span><a target=\"_blank\" href=\"//space.bilibili.com/390461123\"><span class=\"data-box\"><i class=\"b-icon author\"></i>徐大sao</span></a></div><div class=\"pts\"><div>748323</div>综合得分\n          </div></div><!----></div></li><li class=\"rank-item\"><div class=\"num\">93</div><div class=\"content\"><div class=\"img\"><a href=\"https://www.bilibili.com/video/av92245724\" target=\"_blank\"><div class=\"lazy-img cover\"><img alt=\"您TM是女娲投胎？\" src=\"\"></div></a><div class=\"watch-later-trigger w-later\"></div></div><div class=\"info\"><a href=\"https://www.bilibili.com/video/av92245724\" target=\"_blank\" class=\"title\">您TM是女娲投胎？</a><!----><div class=\"detail\"><span class=\"data-box\"><i class=\"b-icon play\"></i>84.7万</span><span class=\"data-box\"><i class=\"b-icon view\"></i>9416</span><a target=\"_blank\" href=\"//space.bilibili.com/397540531\"><span class=\"data-box\"><i class=\"b-icon author\"></i>不知耻の紫烟老师</span></a></div><div class=\"pts\"><div>747972</div>综合得分\n          </div></div><!----></div></li><li class=\"rank-item\"><div class=\"num\">94</div><div class=\"content\"><div class=\"img\"><a href=\"https://www.bilibili.com/video/av91439496\" target=\"_blank\"><div class=\"lazy-img cover\"><img alt=\"唯 美 至 极！\" src=\"\"></div></a><div class=\"watch-later-trigger w-later\"></div></div><div class=\"info\"><a href=\"https://www.bilibili.com/video/av91439496\" target=\"_blank\" class=\"title\">唯 美 至 极！</a><!----><div class=\"detail\"><span class=\"data-box\"><i class=\"b-icon play\"></i>21.4万</span><span class=\"data-box\"><i class=\"b-icon view\"></i>865</span><a target=\"_blank\" href=\"//space.bilibili.com/404215032\"><span class=\"data-box\"><i class=\"b-icon author\"></i>萌新の阿文</span></a></div><div class=\"pts\"><div>733429</div>综合得分\n          </div></div><!----></div></li><li class=\"rank-item\"><div class=\"num\">95</div><div class=\"content\"><div class=\"img\"><a href=\"https://www.bilibili.com/video/av87560221\" target=\"_blank\"><div class=\"lazy-img cover\"><img alt=\"这小孩有大富大贵之相\" src=\"\"></div></a><div class=\"watch-later-trigger w-later\"></div></div><div class=\"info\"><a href=\"https://www.bilibili.com/video/av87560221\" target=\"_blank\" class=\"title\">这小孩有大富大贵之相</a><!----><div class=\"detail\"><span class=\"data-box\"><i class=\"b-icon play\"></i>63.6万</span><span class=\"data-box\"><i class=\"b-icon view\"></i>2611</span><a target=\"_blank\" href=\"//space.bilibili.com/451115073\"><span class=\"data-box\"><i class=\"b-icon author\"></i>长白山小野猪</span></a></div><div class=\"pts\"><div>722305</div>综合得分\n          </div></div><!----></div></li><li class=\"rank-item\"><div class=\"num\">96</div><div class=\"content\"><div class=\"img\"><a href=\"https://www.bilibili.com/video/av92232733\" target=\"_blank\"><div class=\"lazy-img cover\"><img alt=\"“你没穷过，你不懂”\" src=\"\"></div></a><div class=\"watch-later-trigger w-later\"></div></div><div class=\"info\"><a href=\"https://www.bilibili.com/video/av92232733\" target=\"_blank\" class=\"title\">“你没穷过，你不懂”</a><!----><div class=\"detail\"><span class=\"data-box\"><i class=\"b-icon play\"></i>31.4万</span><span class=\"data-box\"><i class=\"b-icon view\"></i>1073</span><a target=\"_blank\" href=\"//space.bilibili.com/13544375\"><span class=\"data-box\"><i class=\"b-icon author\"></i>像素企鹅</span></a></div><div class=\"pts\"><div>721921</div>综合得分\n          </div></div><!----></div></li><li class=\"rank-item\"><div class=\"num\">97</div><div class=\"content\"><div class=\"img\"><a href=\"https://www.bilibili.com/video/av92423699\" target=\"_blank\"><div class=\"lazy-img cover\"><img alt=\"徐老师来巡山254：气急败坏石头人，一头撞死在路上\" src=\"\"></div></a><div class=\"watch-later-trigger w-later\"></div></div><div class=\"info\"><a href=\"https://www.bilibili.com/video/av92423699\" target=\"_blank\" class=\"title\">徐老师来巡山254：气急败坏石头人，一头撞死在路上</a><!----><div class=\"detail\"><span class=\"data-box\"><i class=\"b-icon play\"></i>113.7万</span><span class=\"data-box\"><i class=\"b-icon view\"></i>8599</span><a target=\"_blank\" href=\"//space.bilibili.com/16794231\"><span class=\"data-box\"><i class=\"b-icon author\"></i>靠脸吃饭的徐大王</span></a></div><div class=\"pts\"><div>721042</div>综合得分\n          </div></div><!----></div></li><li class=\"rank-item\"><div class=\"num\">98</div><div class=\"content\"><div class=\"img\"><a href=\"https://www.bilibili.com/video/av92298355\" target=\"_blank\"><div class=\"lazy-img cover\"><img alt=\"厨师长教你：“懒人烧豆腐”的家常做法，很简单懒人的做法，收藏\" src=\"\"></div></a><div class=\"watch-later-trigger w-later\"></div></div><div class=\"info\"><a href=\"https://www.bilibili.com/video/av92298355\" target=\"_blank\" class=\"title\">厨师长教你：“懒人烧豆腐”的家常做法，很简单懒人的做法，收藏</a><!----><div class=\"detail\"><span class=\"data-box\"><i class=\"b-icon play\"></i>83.1万</span><span class=\"data-box\"><i class=\"b-icon view\"></i>5639</span><a target=\"_blank\" href=\"//space.bilibili.com/290526283\"><span class=\"data-box\"><i class=\"b-icon author\"></i>美食作家王刚R</span></a></div><div class=\"pts\"><div>720682</div>综合得分\n          </div></div><!----></div></li><li class=\"rank-item\"><div class=\"num\">99</div><div class=\"content\"><div class=\"img\"><a href=\"https://www.bilibili.com/video/av90771418\" target=\"_blank\"><div class=\"lazy-img cover\"><img alt=\"祖 安 の 鹿\" src=\"\"></div></a><div class=\"watch-later-trigger w-later\"></div></div><div class=\"info\"><a href=\"https://www.bilibili.com/video/av90771418\" target=\"_blank\" class=\"title\">祖 安 の 鹿</a><!----><div class=\"detail\"><span class=\"data-box\"><i class=\"b-icon play\"></i>106.3万</span><span class=\"data-box\"><i class=\"b-icon view\"></i>4656</span><a target=\"_blank\" href=\"//space.bilibili.com/33496214\"><span class=\"data-box\"><i class=\"b-icon author\"></i>伦砸-StatTrak-绿宝石</span></a></div><div class=\"pts\"><div>717508</div>综合得分\n          </div></div><!----></div></li><li class=\"rank-item\"><div class=\"num\">100</div><div class=\"content\"><div class=\"img\"><a href=\"https://www.bilibili.com/video/av91919224\" target=\"_blank\"><div class=\"lazy-img cover\"><img alt=\"钟南山院士年轻时究竟长啥样？学术界顶流们教你什么叫颜值与实力齐飞！\" src=\"\"></div></a><div class=\"watch-later-trigger w-later\"></div></div><div class=\"info\"><a href=\"https://www.bilibili.com/video/av91919224\" target=\"_blank\" class=\"title\">钟南山院士年轻时究竟长啥样？学术界顶流们教你什么叫颜值与实力齐飞！</a><!----><div class=\"detail\"><span class=\"data-box\"><i class=\"b-icon play\"></i>76.0万</span><span class=\"data-box\"><i class=\"b-icon view\"></i>3160</span><a target=\"_blank\" href=\"//space.bilibili.com/38887907\"><span class=\"data-box\"><i class=\"b-icon author\"></i>偶尔性别女</span></a></div><div class=\"pts\"><div>715103</div>综合得分\n          </div></div><!----></div></li></ul><!----><!----></div></div></div><!----></div></div><div class=\"go-top-m\" style=\"display:none;\"><div title=\"返回顶部\" class=\"go-top icon\"></div></div></div><script>window.__INITIAL_STATE__={\"rankList\":[{\"aid\":\"91835249\",\"bvid\":\"\",\"author\":\"飞鱼不在天\",\"coins\":152531,\"duration\":\"6:00\",\"mid\":17873487,\"pic\":\"http:\\u002F\\u002Fi0.hdslb.com\\u002Fbfs\\u002Farchive\\u002Fba98d75553c0f34eeceddbf141e3f5d25dc16122.jpg\",\"cid\":156813498,\"play\":1745264,\"pts\":7874690,\"title\":\"这十个软件,让你的电脑舒适度提升1400%\",\"trend\":null,\"video_review\":7492,\"rights\":{\"bp\":0,\"elec\":0,\"download\":0,\"movie\":0,\"pay\":0,\"hd5\":0,\"no_reprint\":1,\"autoplay\":1,\"ugc_pay\":0,\"is_cooperation\":0,\"ugc_pay_preview\":0,\"no_background\":0},\"open\":false},{\"aid\":\"92252043\",\"bvid\":\"\",\"author\":\"崩坏3第一偶像爱酱\",\"coins\":562078,\"duration\":\"6:18\",\"mid\":27534330,\"pic\":\"http:\\u002F\\u002Fi2.hdslb.com\\u002Fbfs\\u002Farchive\\u002F2ee7d828e6defd70f932dc6ae098e9429da3a8ac.jpg\",\"cid\":157513459,\"play\":2643534,\"pts\":7573351,\"title\":\"《崩坏3》动画短片「天穹流星」\",\"trend\":null,\"video_review\":97245,\"rights\":{\"bp\":0,\"elec\":0,\"download\":0,\"movie\":0,\"pay\":0,\"hd5\":0,\"no_reprint\":1,\"autoplay\":1,\"ugc_pay\":0,\"is_cooperation\":0,\"ugc_pay_preview\":0,\"no_background\":0},\"others\":[{\"aid\":92253209,\"bvid\":\"\",\"play\":727089,\"video_review\":6291,\"coins\":95544,\"pts\":1830537,\"title\":\"「Starfall」——《崩坏3》印象曲（演唱者：袁娅维）\",\"pic\":\"http:\\u002F\\u002Fi0.hdslb.com\\u002Fbfs\\u002Farchive\\u002Fd0d39d512c4eb7d31d29bf7c25926753100d1d28.jpg\",\"duration\":\"3:12\",\"rights\":{\"bp\":0,\"elec\":0,\"download\":0,\"movie\":0,\"pay\":0,\"hd5\":0,\"no_reprint\":1,\"autoplay\":1,\"ugc_pay\":0,\"is_cooperation\":0,\"ugc_pay_preview\":0,\"no_background\":0}}],\"open\":false},{\"aid\":\"91572143\",\"bvid\":\"\",\"author\":\"赤leopard_大暴\",\"coins\":116070,\"duration\":\"2:03\",\"mid\":228651,\"pic\":\"http:\\u002F\\u002Fi1.hdslb.com\\u002Fbfs\\u002Farchive\\u002Fbd2964a3e16475763a2cf73d6f07fa2f828afe9c.jpg\",\"cid\":156798884,\"play\":1718868,\"pts\":3192103,\"title\":\"病 名 为 钉 钉钉钉钉钉钉...（钉钉音效与人声完美契合电音 无限循环 疯狂洗脑）\",\"trend\":null,\"video_review\":30215,\"rights\":{\"bp\":0,\"elec\":0,\"download\":0,\"movie\":0,\"pay\":0,\"hd5\":1,\"no_reprint\":1,\"autoplay\":1,\"ugc_pay\":0,\"is_cooperation\":1,\"ugc_pay_preview\":0,\"no_background\":0},\"open\":false},{\"aid\":\"92699533\",\"bvid\":\"\",\"author\":\"老师好我叫何同学\",\"coins\":283283,\"duration\":\"8:12\",\"mid\":163637592,\"pic\":\"http:\\u002F\\u002Fi2.hdslb.com\\u002Fbfs\\u002Farchive\\u002F5e18e772a4383abe3f0762f2f07083d1d8789ca4.jpg\",\"cid\":158298604,\"play\":1468730,\"pts\":2874317,\"title\":\"【何同学】二十万元的电脑是什么样子的？苹果Mac Pro深度体验\",\"trend\":null,\"video_review\":24031,\"rights\":{\"bp\":0,\"elec\":0,\"download\":0,\"movie\":0,\"pay\":0,\"hd5\":1,\"no_reprint\":1,\"autoplay\":1,\"ugc_pay\":0,\"is_cooperation\":0,\"ugc_pay_preview\":0,\"no_background\":0},\"open\":false},{\"aid\":\"91822864\",\"bvid\":\"\",\"author\":\"不正经老丝\",\"coins\":158953,\"duration\":\"7:14\",\"mid\":378885845,\"pic\":\"http:\\u002F\\u002Fi1.hdslb.com\\u002Fbfs\\u002Farchive\\u002F0574097906c643e4a7123775a1a784b329e4837f.jpg\",\"cid\":156793573,\"play\":3264616,\"pts\":2749905,\"title\":\"面对疫情日本为何消极？中国真的太NB了\",\"trend\":null,\"video_review\":37485,\"rights\":{\"bp\":0,\"elec\":0,\"download\":0,\"movie\":0,\"pay\":0,\"hd5\":0,\"no_reprint\":1,\"autoplay\":1,\"ugc_pay\":0,\"is_cooperation\":0,\"ugc_pay_preview\":0,\"no_background\":0},\"open\":false},{\"aid\":\"92274735\",\"bvid\":\"\",\"author\":\"大祥哥来了\",\"coins\":138014,\"duration\":\"8:18\",\"mid\":2920960,\"pic\":\"http:\\u002F\\u002Fi2.hdslb.com\\u002Fbfs\\u002Farchive\\u002Fc828665a3f04cbe71c0b41e96e2631af2a5a42ea.jpg\",\"cid\":157553560,\"play\":1917108,\"pts\":2574448,\"title\":\"分享烹饪3580元一位的顶级日料中最好吃的一道菜！包教包会！\",\"trend\":null,\"video_review\":18862,\"rights\":{\"bp\":0,\"elec\":0,\"download\":0,\"movie\":0,\"pay\":0,\"hd5\":0,\"no_reprint\":1,\"autoplay\":1,\"ugc_pay\":0,\"is_cooperation\":0,\"ugc_pay_preview\":0,\"no_background\":0},\"open\":false},{\"aid\":\"92177270\",\"bvid\":\"\",\"author\":\"老坛胡说\",\"coins\":168819,\"duration\":\"12:14\",\"mid\":279583114,\"pic\":\"http:\\u002F\\u002Fi2.hdslb.com\\u002Fbfs\\u002Farchive\\u002F40e024d05172e3d3419074b0e8947f726de2a7b6.jpg\",\"cid\":157389373,\"play\":2406565,\"pts\":2499235,\"title\":\"我，老坛胡说，实名diss中国BOY超级大猩猩\",\"trend\":null,\"video_review\":109984,\"rights\":{\"bp\":0,\"elec\":0,\"download\":0,\"movie\":0,\"pay\":0,\"hd5\":1,\"no_reprint\":1,\"autoplay\":1,\"ugc_pay\":0,\"is_cooperation\":0,\"ugc_pay_preview\":0,\"no_background\":0},\"open\":false},{\"aid\":\"92146996\",\"bvid\":\"\",\"author\":\"敬汉卿\",\"coins\":202845,\"duration\":\"4:37\",\"mid\":9824766,\"pic\":\"http:\\u002F\\u002Fi1.hdslb.com\\u002Fbfs\\u002Farchive\\u002Fdc460102dece057873afa1db5846ad1b756ca227.jpg\",\"cid\":157339475,\"play\":3237509,\"pts\":2443710,\"title\":\"我回来了！我最近一年想做的事情！\",\"trend\":null,\"video_review\":97761,\"rights\":{\"bp\":0,\"elec\":0,\"download\":0,\"movie\":0,\"pay\":0,\"hd5\":0,\"no_reprint\":1,\"autoplay\":1,\"ugc_pay\":0,\"is_cooperation\":0,\"ugc_pay_preview\":0,\"no_background\":0},\"others\":[{\"aid\":92424738,\"bvid\":\"\",\"play\":2664898,\"video_review\":54447,\"coins\":233694,\"pts\":2225967,\"title\":\"挑战三块黄油一口气吃完！除了油腻剩下的就是想呕吐了！\",\"pic\":\"http:\\u002F\\u002Fi2.hdslb.com\\u002Fbfs\\u002Farchive\\u002F40dddcfeaae7cf8f5d32590ac8b9ed341a80f2d6.jpg\",\"duration\":\"4:48\",\"rights\":{\"bp\":0,\"elec\":0,\"download\":0,\"movie\":0,\"pay\":0,\"hd5\":0,\"no_reprint\":1,\"autoplay\":1,\"ugc_pay\":0,\"is_cooperation\":0,\"ugc_pay_preview\":0,\"no_background\":0}}],\"open\":false},{\"aid\":\"91317525\",\"bvid\":\"\",\"author\":\"SealWu吴一凡\",\"coins\":104867,\"duration\":\"4:31\",\"mid\":157831228,\"pic\":\"http:\\u002F\\u002Fi1.hdslb.com\\u002Fbfs\\u002Farchive\\u002Feeaf109a27eace7e6f2fdf02ee677787fb021582.jpg\",\"cid\":155923456,\"play\":639775,\"pts\":2323158,\"title\":\"《野草》：我把16篇鲁迅写成了一首歌\",\"trend\":null,\"video_review\":2561,\"rights\":{\"bp\":0,\"elec\":0,\"download\":0,\"movie\":0,\"pay\":0,\"hd5\":1,\"no_reprint\":1,\"autoplay\":1,\"ugc_pay\":0,\"is_cooperation\":0,\"ugc_pay_preview\":0,\"no_background\":0},\"open\":false},{\"aid\":\"91710819\",\"bvid\":\"\",\"author\":\"Devil青酱\",\"coins\":80294,\"duration\":\"2:17\",\"mid\":368912467,\"pic\":\"http:\\u002F\\u002Fi2.hdslb.com\\u002Fbfs\\u002Farchive\\u002F45fc8f12fe13a05944ad10315ed6b396a82db90f.jpg\",\"cid\":156598792,\"play\":1009044,\"pts\":2306169,\"title\":\"快 放 我 下 车！\",\"trend\":null,\"video_review\":4376,\"rights\":{\"bp\":0,\"elec\":0,\"download\":0,\"movie\":0,\"pay\":0,\"hd5\":1,\"no_reprint\":1,\"autoplay\":1,\"ugc_pay\":0,\"is_cooperation\":0,\"ugc_pay_preview\":0,\"no_background\":0},\"open\":false},{\"aid\":\"91521896\",\"bvid\":\"\",\"author\":\"宇智钵啥是gay\",\"coins\":54580,\"duration\":\"2:19\",\"mid\":13575288,\"pic\":\"http:\\u002F\\u002Fi2.hdslb.com\\u002Fbfs\\u002Farchive\\u002F26015f5f8761891b684382c693449c52a27c3246.jpg\",\"cid\":156279698,\"play\":2049252,\"pts\":2006316,\"title\":\"珍 贵 录 像 : 慈善三巨头聚首斗地主\",\"trend\":null,\"video_review\":4160,\"rights\":{\"bp\":0,\"elec\":0,\"download\":0,\"movie\":0,\"pay\":0,\"hd5\":0,\"no_reprint\":1,\"autoplay\":1,\"ugc_pay\":0,\"is_cooperation\":0,\"ugc_pay_preview\":0,\"no_background\":0},\"open\":false},{\"aid\":\"92008692\",\"bvid\":\"\",\"author\":\"树根龙门阵\",\"coins\":145382,\"duration\":\"16:54\",\"mid\":99336697,\"pic\":\"http:\\u002F\\u002Fi2.hdslb.com\\u002Fbfs\\u002Farchive\\u002F7ea25f9cb0ebd519edd6036c04ac4822bd02837d.jpg\",\"cid\":157132250,\"play\":1042458,\"pts\":1965003,\"title\":\"深层次解析日韩开卷考为何不及格，日韩的难言之隐（思密达没了）\",\"trend\":null,\"video_review\":22810,\"rights\":{\"bp\":0,\"elec\":0,\"download\":0,\"movie\":0,\"pay\":0,\"hd5\":1,\"no_reprint\":1,\"autoplay\":1,\"ugc_pay\":0,\"is_cooperation\":0,\"ugc_pay_preview\":0,\"no_background\":0},\"open\":false},{\"aid\":\"91720074\",\"bvid\":\"\",\"author\":\"凉风Kaze\",\"coins\":139981,\"duration\":\"12:03\",\"mid\":14110780,\"pic\":\"http:\\u002F\\u002Fi1.hdslb.com\\u002Fbfs\\u002Farchive\\u002F611655e4e9748633bfe30f62998fb079702d49ef.jpg\",\"cid\":156611244,\"play\":2001677,\"pts\":1937061,\"title\":\"人干事？为阻止少年轻生，狙击手成功将其击毙【阅片无数36】\",\"trend\":null,\"video_review\":20797,\"rights\":{\"bp\":0,\"elec\":0,\"download\":0,\"movie\":0,\"pay\":0,\"hd5\":1,\"no_reprint\":1,\"autoplay\":1,\"ugc_pay\":0,\"is_cooperation\":0,\"ugc_pay_preview\":0,\"no_background\":0},\"open\":false},{\"aid\":\"91833336\",\"bvid\":\"\",\"author\":\"天佑咏春\",\"coins\":26904,\"duration\":\"2:51\",\"mid\":363116832,\"pic\":\"http:\\u002F\\u002Fi1.hdslb.com\\u002Fbfs\\u002Farchive\\u002Ff92a404b42a024a3a9f4c74d69e36be0e9074cfb.jpg\",\"cid\":156809442,\"play\":2272693,\"pts\":1878186,\"title\":\"真实叶问本人咏春木人桩演示（全站最清晰胶片版）\",\"trend\":null,\"video_review\":10121,\"rights\":{\"bp\":0,\"elec\":0,\"download\":0,\"movie\":0,\"pay\":0,\"hd5\":1,\"no_reprint\":0,\"autoplay\":1,\"ugc_pay\":0,\"is_cooperation\":0,\"ugc_pay_preview\":0,\"no_background\":0},\"open\":false},{\"aid\":\"92101881\",\"bvid\":\"\",\"author\":\"老番茄\",\"coins\":81210,\"duration\":\"14:56\",\"mid\":546195,\"pic\":\"http:\\u002F\\u002Fi1.hdslb.com\\u002Fbfs\\u002Farchive\\u002F54e1a688cc0dbc021423cf82390d70d1f0d39cce.jpg\",\"cid\":157261590,\"play\":3252304,\"pts\":1845017,\"title\":\"弓箭高手老番茄\",\"trend\":null,\"video_review\":55169,\"rights\":{\"bp\":0,\"elec\":0,\"download\":0,\"movie\":0,\"pay\":0,\"hd5\":0,\"no_reprint\":1,\"autoplay\":1,\"ugc_pay\":0,\"is_cooperation\":0,\"ugc_pay_preview\":0,\"no_background\":0},\"open\":false},{\"aid\":\"92536625\",\"bvid\":\"\",\"author\":\"花少北丶\",\"coins\":117510,\"duration\":\"28:29\",\"mid\":2206456,\"pic\":\"http:\\u002F\\u002Fi1.hdslb.com\\u002Fbfs\\u002Farchive\\u002F02e5dd707cd63bb60d9c262bcfd46e7cb7bf4ad2.jpg\",\"cid\":157992034,\"play\":894452,\"pts\":1830732,\"title\":\"好 兄 弟\",\"trend\":null,\"video_review\":77123,\"rights\":{\"bp\":0,\"elec\":0,\"download\":0,\"movie\":0,\"pay\":0,\"hd5\":0,\"no_reprint\":1,\"autoplay\":1,\"ugc_pay\":0,\"is_cooperation\":0,\"ugc_pay_preview\":0,\"no_background\":0},\"open\":false},{\"aid\":\"92523652\",\"bvid\":\"\",\"author\":\"EdmundDZhang\",\"coins\":93426,\"duration\":\"17:03\",\"mid\":433351,\"pic\":\"http:\\u002F\\u002Fi0.hdslb.com\\u002Fbfs\\u002Farchive\\u002Fea1e5ee52e19ee759bea6fa33ec2d4cf7afa93a9.jpg\",\"cid\":157974244,\"play\":784403,\"pts\":1810956,\"title\":\"【老E】比宇宙还要古老的存在！行星一样大的安康鱼！\",\"trend\":null,\"video_review\":6626,\"rights\":{\"bp\":0,\"elec\":0,\"download\":0,\"movie\":0,\"pay\":0,\"hd5\":0,\"no_reprint\":1,\"autoplay\":1,\"ugc_pay\":0,\"is_cooperation\":0,\"ugc_pay_preview\":0,\"no_background\":0},\"open\":false},{\"aid\":\"91610100\",\"bvid\":\"\",\"author\":\"-Super屎蛋\",\"coins\":54317,\"duration\":\"2:38\",\"mid\":375116258,\"pic\":\"http:\\u002F\\u002Fi2.hdslb.com\\u002Fbfs\\u002Farchive\\u002F17ebc22bcdc63c6b1db1306d58e3ac3f82904264.jpg\",\"cid\":156430051,\"play\":1085079,\"pts\":1732198,\"title\":\"【郭老师】华 农 捕 郭\",\"trend\":null,\"video_review\":5923,\"rights\":{\"bp\":0,\"elec\":0,\"download\":0,\"movie\":0,\"pay\":0,\"hd5\":1,\"no_reprint\":1,\"autoplay\":1,\"ugc_pay\":0,\"is_cooperation\":0,\"ugc_pay_preview\":0,\"no_background\":0},\"open\":false},{\"aid\":\"91878989\",\"bvid\":\"\",\"author\":\"LexBurner\",\"coins\":90420,\"duration\":\"7:34\",\"mid\":777536,\"pic\":\"http:\\u002F\\u002Fi2.hdslb.com\\u002Fbfs\\u002Farchive\\u002F811f4e4e747de8641b6b1714622a60503d279b86.jpg\",\"cid\":156887648,\"play\":1612425,\"pts\":1668614,\"title\":\"父母反对我做up主！该怎么说服他们？【读评论01】\",\"trend\":null,\"video_review\":29321,\"rights\":{\"bp\":0,\"elec\":0,\"download\":0,\"movie\":0,\"pay\":0,\"hd5\":0,\"no_reprint\":1,\"autoplay\":1,\"ugc_pay\":0,\"is_cooperation\":0,\"ugc_pay_preview\":0,\"no_background\":0},\"open\":false},{\"aid\":\"91755251\",\"bvid\":\"\",\"author\":\"Reiji-白龙\",\"coins\":31711,\"duration\":\"13:07\",\"mid\":318223,\"pic\":\"http:\\u002F\\u002Fi2.hdslb.com\\u002Fbfs\\u002Farchive\\u002F82e74cf78f8ed113b0e8c3eecda3a109e8757db3.jpg\",\"cid\":156673048,\"play\":1698698,\"pts\":1650296,\"title\":\"见识下什么叫TMD绿茶婊！\",\"trend\":null,\"video_review\":32275,\"rights\":{\"bp\":0,\"elec\":0,\"download\":0,\"movie\":0,\"pay\":0,\"hd5\":0,\"no_reprint\":1,\"autoplay\":1,\"ugc_pay\":0,\"is_cooperation\":0,\"ugc_pay_preview\":0,\"no_background\":0},\"open\":false},{\"aid\":\"91844781\",\"bvid\":\"\",\"author\":\"东亚悍匪阿_张\",\"coins\":99338,\"duration\":\"6:12\",\"mid\":8237763,\"pic\":\"http:\\u002F\\u002Fi1.hdslb.com\\u002Fbfs\\u002Farchive\\u002F03a3a6bf107997ca208697d7cd8b7e1208bd31f3.jpg\",\"cid\":156829347,\"play\":2704911,\"pts\":1595133,\"title\":\"我在3平米的房间住了两年............\",\"trend\":null,\"video_review\":9223,\"rights\":{\"bp\":0,\"elec\":0,\"download\":0,\"movie\":0,\"pay\":0,\"hd5\":0,\"no_reprint\":1,\"autoplay\":1,\"ugc_pay\":0,\"is_cooperation\":0,\"ugc_pay_preview\":0,\"no_background\":0},\"open\":false},{\"aid\":\"91556645\",\"bvid\":\"\",\"author\":\"囧墙先生\",\"coins\":45063,\"duration\":\"4:40\",\"mid\":178135921,\"pic\":\"http:\\u002F\\u002Fi1.hdslb.com\\u002Fbfs\\u002Farchive\\u002F68fd18d70f02dd41e888a181c6bc8e4e0183d044.jpg\",\"cid\":156350380,\"play\":1420074,\"pts\":1556583,\"title\":\"“那是我日夜思念，深深爱着的人啊”\",\"trend\":null,\"video_review\":14758,\"rights\":{\"bp\":0,\"elec\":0,\"download\":0,\"movie\":0,\"pay\":0,\"hd5\":1,\"no_reprint\":1,\"autoplay\":1,\"ugc_pay\":0,\"is_cooperation\":0,\"ugc_pay_preview\":0,\"no_background\":0},\"open\":false},{\"aid\":\"91669955\",\"bvid\":\"\",\"author\":\"亚食人\",\"coins\":88999,\"duration\":\"6:36\",\"mid\":80304,\"pic\":\"http:\\u002F\\u002Fi2.hdslb.com\\u002Fbfs\\u002Farchive\\u002F196c664b534d35cc565621758e8bee27218b4c30.jpg\",\"cid\":156524890,\"play\":1625417,\"pts\":1535679,\"title\":\"腾讯加持B站股权，B站又双叒叕变味了？【膨胀说】\",\"trend\":null,\"video_review\":12450,\"rights\":{\"bp\":0,\"elec\":0,\"download\":0,\"movie\":0,\"pay\":0,\"hd5\":0,\"no_reprint\":1,\"autoplay\":1,\"ugc_pay\":0,\"is_cooperation\":0,\"ugc_pay_preview\":0,\"no_background\":0},\"open\":false},{\"aid\":\"91750514\",\"bvid\":\"\",\"author\":\"钉钉DingTalk\",\"coins\":56353,\"duration\":\"2:51\",\"mid\":481393564,\"pic\":\"http:\\u002F\\u002Fi1.hdslb.com\\u002Fbfs\\u002Farchive\\u002Fb7baed780bf509fef2babb8aa68c9b52d67bdd86.jpg\",\"cid\":157525597,\"play\":1180654,\"pts\":1491066,\"title\":\"【 唱 首 歌 】我 钉 起 来 真 好 听\",\"trend\":null,\"video_review\":26492,\"rights\":{\"bp\":0,\"elec\":0,\"download\":0,\"movie\":0,\"pay\":0,\"hd5\":1,\"no_reprint\":1,\"autoplay\":1,\"ugc_pay\":0,\"is_cooperation\":0,\"ugc_pay_preview\":0,\"no_background\":0},\"others\":[{\"aid\":89441613,\"bvid\":\"\",\"play\":17538870,\"video_review\":220976,\"coins\":882104,\"pts\":998745,\"title\":\"【 钉 钉 本 钉 ，在 线 求 饶 】\",\"pic\":\"http:\\u002F\\u002Fi2.hdslb.com\\u002Fbfs\\u002Farchive\\u002Fa5cfd2589d5e3d7d389dd355877c2821b5a80034.jpg\",\"duration\":\"1:45\",\"rights\":{\"bp\":0,\"elec\":0,\"download\":0,\"movie\":0,\"pay\":0,\"hd5\":1,\"no_reprint\":1,\"autoplay\":1,\"ugc_pay\":0,\"is_cooperation\":0,\"ugc_pay_preview\":0,\"no_background\":0}}],\"open\":false},{\"aid\":\"92424996\",\"bvid\":\"\",\"author\":\"机智的党妹\",\"coins\":97789,\"duration\":\"20:35\",\"mid\":466272,\"pic\":\"http:\\u002F\\u002Fi2.hdslb.com\\u002Fbfs\\u002Farchive\\u002F6af3db68ce8d469a5e60f7912c80b652c389d63f.jpg\",\"cid\":157810914,\"play\":1039385,\"pts\":1481200,\"title\":\"【党妹】懒人在家煮火锅！再来串甜到心里的冰糖草莓~不出门也能吃到美味！\",\"trend\":null,\"video_review\":26941,\"rights\":{\"bp\":0,\"elec\":0,\"download\":0,\"movie\":0,\"pay\":0,\"hd5\":1,\"no_reprint\":1,\"autoplay\":1,\"ugc_pay\":0,\"is_cooperation\":0,\"ugc_pay_preview\":0,\"no_background\":0},\"open\":false},{\"aid\":\"90748215\",\"bvid\":\"\",\"author\":\"鹤吱菌\",\"coins\":55625,\"duration\":\"6:26\",\"mid\":3353026,\"pic\":\"http:\\u002F\\u002Fi0.hdslb.com\\u002Fbfs\\u002Farchive\\u002F3abd68fd895fa93b110f25495ed3d76e66f35bcd.jpg\",\"cid\":154970537,\"play\":836108,\"pts\":1446500,\"title\":\"【师 生 对 线】这网课上得就尼玛离谱！\",\"trend\":null,\"video_review\":7071,\"rights\":{\"bp\":0,\"elec\":0,\"download\":0,\"movie\":0,\"pay\":0,\"hd5\":0,\"no_reprint\":1,\"autoplay\":1,\"ugc_pay\":0,\"is_cooperation\":0,\"ugc_pay_preview\":0,\"no_background\":0},\"open\":false},{\"aid\":\"92290565\",\"bvid\":\"\",\"author\":\"切粒粒\",\"coins\":45093,\"duration\":\"4:10\",\"mid\":27692819,\"pic\":\"http:\\u002F\\u002Fi2.hdslb.com\\u002Fbfs\\u002Farchive\\u002F6711ed3a50d676c199e565c3b22b65f8f1adaa58.jpg\",\"cid\":157577835,\"play\":500594,\"pts\":1411936,\"title\":\"处 处 删 （注意！脖子以下不可描述！）\",\"trend\":null,\"video_review\":5396,\"rights\":{\"bp\":0,\"elec\":0,\"download\":0,\"movie\":0,\"pay\":0,\"hd5\":1,\"no_reprint\":1,\"autoplay\":1,\"ugc_pay\":0,\"is_cooperation\":0,\"ugc_pay_preview\":0,\"no_background\":0},\"open\":false},{\"aid\":\"92285943\",\"bvid\":\"\",\"author\":\"祖娅纳惜\",\"coins\":47665,\"duration\":\"3:34\",\"mid\":3046429,\"pic\":\"http:\\u002F\\u002Fi1.hdslb.com\\u002Fbfs\\u002Farchive\\u002Ffe5262e45f4d6242672cf97086ebbcd177c3cd1f.jpg\",\"cid\":157601200,\"play\":451251,\"pts\":1403823,\"title\":\"【祖娅纳惜】 囍 【这什么灵魂唢呐！！】\",\"trend\":null,\"video_review\":3366,\"rights\":{\"bp\":0,\"elec\":0,\"download\":0,\"movie\":0,\"pay\":0,\"hd5\":0,\"no_reprint\":1,\"autoplay\":1,\"ugc_pay\":0,\"is_cooperation\":0,\"ugc_pay_preview\":0,\"no_background\":0},\"open\":false},{\"aid\":\"34107674\",\"bvid\":\"\",\"author\":\"周六野Zoey\",\"coins\":4404,\"duration\":\"17:36\",\"mid\":62540916,\"pic\":\"http:\\u002F\\u002Fi2.hdslb.com\\u002Fbfs\\u002Farchive\\u002F746e3c53d9a7a15e2436b5c57431a2caf4eb328e.jpg\",\"cid\":59740709,\"play\":619625,\"pts\":1339601,\"title\":\"10分钟改善斜方肌粗大、溜肩圆肩富贵包、背厚、肩颈背疼痛、高低肩！【周六野Zoey】\",\"trend\":null,\"video_review\":6897,\"rights\":{\"bp\":0,\"elec\":0,\"download\":0,\"movie\":0,\"pay\":0,\"hd5\":1,\"no_reprint\":1,\"autoplay\":1,\"ugc_pay\":0,\"is_cooperation\":0,\"ugc_pay_preview\":0,\"no_background\":0},\"others\":[{\"aid\":8879609,\"bvid\":\"\",\"play\":13706752,\"video_review\":118205,\"coins\":102913,\"pts\":1165409,\"title\":\"快速瘦小腿运动！摆脱萝卜腿让小腿更细长，拉伸小腿【周六野Zoey】\",\"pic\":\"http:\\u002F\\u002Fi2.hdslb.com\\u002Fbfs\\u002Farchive\\u002F7dcd5d51e6f7b19d806f3dea1630f656b5134984.jpg\",\"duration\":\"9:31\",\"rights\":{\"bp\":0,\"elec\":0,\"download\":0,\"movie\":0,\"pay\":0,\"hd5\":0,\"no_reprint\":0,\"autoplay\":1,\"ugc_pay\":0,\"is_cooperation\":0,\"ugc_pay_preview\":0,\"no_background\":0}},{\"aid\":8775849,\"bvid\":\"\",\"play\":15786505,\"video_review\":153972,\"coins\":99713,\"pts\":1069408,\"title\":\"五分钟在家瘦腰运动！快速瘦肚子小蛮腰，马甲线一周现形！适合初学者【周六野Zoey】\",\"pic\":\"http:\\u002F\\u002Fi0.hdslb.com\\u002Fbfs\\u002Farchive\\u002Fe161008a0355e91901a8cf518becfa47261c607b.jpg\",\"duration\":\"7:51\",\"rights\":{\"bp\":0,\"elec\":0,\"download\":0,\"movie\":0,\"pay\":0,\"hd5\":0,\"no_reprint\":0,\"autoplay\":1,\"ugc_pay\":0,\"is_cooperation\":0,\"ugc_pay_preview\":0,\"no_background\":0}}],\"open\":false},{\"aid\":\"92437162\",\"bvid\":\"\",\"author\":\"泛式\",\"coins\":44006,\"duration\":\"8:03\",\"mid\":63231,\"pic\":\"http:\\u002F\\u002Fi0.hdslb.com\\u002Fbfs\\u002Farchive\\u002F3c7add1871de8bbfc7bf819df08c72efd59d831c.jpg\",\"cid\":157829966,\"play\":822634,\"pts\":1336186,\"title\":\"撕逼剧透全滚粗！百万粉up主教你提升弹幕质量的秘诀！\",\"trend\":null,\"video_review\":10189,\"rights\":{\"bp\":0,\"elec\":0,\"download\":0,\"movie\":0,\"pay\":0,\"hd5\":0,\"no_reprint\":1,\"autoplay\":1,\"ugc_pay\":0,\"is_cooperation\":0,\"ugc_pay_preview\":0,\"no_background\":0},\"open\":false},{\"aid\":\"90782208\",\"bvid\":\"\",\"author\":\"一颗糖糖゛\",\"coins\":52235,\"duration\":\"2:38\",\"mid\":36117352,\"pic\":\"http:\\u002F\\u002Fi1.hdslb.com\\u002Fbfs\\u002Farchive\\u002F5f0ef1c2fdab1222887faaf805c418c2603fb5e9.jpg\",\"cid\":155028241,\"play\":510353,\"pts\":1291730,\"title\":\"这 TM 才叫 无 缝 衔 接 ！！！\",\"trend\":null,\"video_review\":2350,\"rights\":{\"bp\":0,\"elec\":0,\"download\":0,\"movie\":0,\"pay\":0,\"hd5\":1,\"no_reprint\":1,\"autoplay\":1,\"ugc_pay\":0,\"is_cooperation\":0,\"ugc_pay_preview\":0,\"no_background\":0},\"open\":false},{\"aid\":\"91675841\",\"bvid\":\"\",\"author\":\"奶糕成精档案社\",\"coins\":72659,\"duration\":\"1:49\",\"mid\":27756469,\"pic\":\"http:\\u002F\\u002Fi0.hdslb.com\\u002Fbfs\\u002Farchive\\u002Fc9e287f6a90ad0edd0e2a3a0725c1f12eee81a1a.jpg\",\"cid\":156538565,\"play\":518466,\"pts\":1274818,\"title\":\"孩子要出道了，《被 迫 营 业》MV正式首发！！\",\"trend\":null,\"video_review\":939,\"rights\":{\"bp\":0,\"elec\":0,\"download\":0,\"movie\":0,\"pay\":0,\"hd5\":1,\"no_reprint\":1,\"autoplay\":1,\"ugc_pay\":0,\"is_cooperation\":0,\"ugc_pay_preview\":0,\"no_background\":0},\"open\":false},{\"aid\":\"92135544\",\"bvid\":\"\",\"author\":\"战场ヶ原様\",\"coins\":36029,\"duration\":\"2:29\",\"mid\":32172331,\"pic\":\"http:\\u002F\\u002Fi0.hdslb.com\\u002Fbfs\\u002Farchive\\u002F0bc1aec592b0712621d5ec658b8164793c8cf220.jpg\",\"cid\":157356947,\"play\":418226,\"pts\":1262560,\"title\":\"沙雕不能拯救单身狗！！\",\"trend\":null,\"video_review\":3391,\"rights\":{\"bp\":0,\"elec\":0,\"download\":0,\"movie\":0,\"pay\":0,\"hd5\":1,\"no_reprint\":1,\"autoplay\":1,\"ugc_pay\":0,\"is_cooperation\":0,\"ugc_pay_preview\":0,\"no_background\":0},\"open\":false},{\"aid\":\"92393584\",\"bvid\":\"\",\"author\":\"食贫道\",\"coins\":63274,\"duration\":\"19:14\",\"mid\":39627524,\"pic\":\"http:\\u002F\\u002Fi0.hdslb.com\\u002Fbfs\\u002Farchive\\u002F8c8241080aee8f128d4e9136bbbeb4564387e913.jpg\",\"cid\":157845466,\"play\":1348195,\"pts\":1225581,\"title\":\"害怕！和熊同桌吃早饭，60斤食物，吃完要陪练格斗？！【北极大宝荐06】\",\"trend\":null,\"video_review\":16248,\"rights\":{\"bp\":0,\"elec\":0,\"download\":0,\"movie\":0,\"pay\":0,\"hd5\":1,\"no_reprint\":1,\"autoplay\":1,\"ugc_pay\":0,\"is_cooperation\":1,\"ugc_pay_preview\":0,\"no_background\":0},\"open\":false},{\"aid\":\"91655656\",\"bvid\":\"\",\"author\":\"红豆稀饭中\",\"coins\":31964,\"duration\":\"2:15\",\"mid\":250648682,\"pic\":\"http:\\u002F\\u002Fi0.hdslb.com\\u002Fbfs\\u002Farchive\\u002F57a75235eda87c14b2495f2f6af6228e24a2be41.jpg\",\"cid\":156508429,\"play\":690430,\"pts\":1219087,\"title\":\"【处处吻】物理版 进来挑战一下\",\"trend\":null,\"video_review\":4333,\"rights\":{\"bp\":0,\"elec\":0,\"download\":0,\"movie\":0,\"pay\":0,\"hd5\":0,\"no_reprint\":1,\"autoplay\":1,\"ugc_pay\":0,\"is_cooperation\":0,\"ugc_pay_preview\":0,\"no_background\":0},\"open\":false},{\"aid\":\"91871151\",\"bvid\":\"\",\"author\":\"BEmow\",\"coins\":49856,\"duration\":\"6:52\",\"mid\":345259842,\"pic\":\"http:\\u002F\\u002Fi2.hdslb.com\\u002Fbfs\\u002Farchive\\u002F5e7b057613d64faa0fc06254bdfd2f88717e3ce8.jpg\",\"cid\":157349137,\"play\":861195,\"pts\":1216950,\"title\":\"【经典老番】我一路向北，离开有怡的季节\",\"trend\":null,\"video_review\":8554,\"rights\":{\"bp\":0,\"elec\":0,\"download\":0,\"movie\":0,\"pay\":0,\"hd5\":1,\"no_reprint\":1,\"autoplay\":1,\"ugc_pay\":0,\"is_cooperation\":0,\"ugc_pay_preview\":0,\"no_background\":0},\"open\":false},{\"aid\":\"91880741\",\"bvid\":\"\",\"author\":\"贝乐泰是冠军\",\"coins\":119268,\"duration\":\"10:40\",\"mid\":398597377,\"pic\":\"http:\\u002F\\u002Fi1.hdslb.com\\u002Fbfs\\u002Farchive\\u002F57760014d5563aef30fa615fed281b6e2f136f60.jpg\",\"cid\":156930327,\"play\":774250,\"pts\":1215165,\"title\":\"外国小哥体验了一天月经之后，决定给湖北的医护人员捐卫生巾和安心裤\",\"trend\":null,\"video_review\":17526,\"rights\":{\"bp\":0,\"elec\":0,\"download\":0,\"movie\":0,\"pay\":0,\"hd5\":1,\"no_reprint\":1,\"autoplay\":1,\"ugc_pay\":0,\"is_cooperation\":0,\"ugc_pay_preview\":0,\"no_background\":0},\"open\":false},{\"aid\":\"70455264\",\"bvid\":\"\",\"author\":\"木马唧唧\",\"coins\":1007,\"duration\":\"10:00\",\"mid\":248404676,\"pic\":\"http:\\u002F\\u002Fi2.hdslb.com\\u002Fbfs\\u002Farchive\\u002F267699a61ab574ffcfee26ea9f6d2d35ab183e30.jpg\",\"cid\":122062746,\"play\":578605,\"pts\":1199618,\"title\":\"女团腿 去头尾 自用\",\"trend\":null,\"video_review\":3070,\"rights\":{\"bp\":0,\"elec\":0,\"download\":0,\"movie\":0,\"pay\":0,\"hd5\":0,\"no_reprint\":0,\"autoplay\":1,\"ugc_pay\":0,\"is_cooperation\":0,\"ugc_pay_preview\":0,\"no_background\":0},\"open\":false},{\"aid\":\"90866754\",\"bvid\":\"\",\"author\":\"韩小四April\",\"coins\":5605,\"duration\":\"9:29\",\"mid\":369750017,\"pic\":\"http:\\u002F\\u002Fi0.hdslb.com\\u002Fbfs\\u002Farchive\\u002F2ef8fc7df888360b9f4b57eb9782238268dc6d4d.jpg\",\"cid\":156325567,\"play\":245714,\"pts\":1199036,\"title\":\"简单高效学生党瘦胳膊运动｜每天8分钟，亲测一周见效！去拜拜肉，消副乳｜无器械，无需场地，站着做瘦手臂操！\",\"trend\":null,\"video_review\":3727,\"rights\":{\"bp\":0,\"elec\":0,\"download\":0,\"movie\":0,\"pay\":0,\"hd5\":0,\"no_reprint\":1,\"autoplay\":1,\"ugc_pay\":0,\"is_cooperation\":0,\"ugc_pay_preview\":0,\"no_background\":0},\"open\":false},{\"aid\":\"91770298\",\"bvid\":\"\",\"author\":\"东京大明白\",\"coins\":19272,\"duration\":\"3:10\",\"mid\":254726274,\"pic\":\"http:\\u002F\\u002Fi1.hdslb.com\\u002Fbfs\\u002Farchive\\u002Fb0258d1229bdad24fa74d222ec5113e4b51b4da8.jpg\",\"cid\":156698057,\"play\":2918720,\"pts\":1178981,\"title\":\"服了日本，在东京告诉你为啥日本的确诊人数涨的慢。日本佛系抗疫下的日常惊悚加无奈加震惊vlog\",\"trend\":null,\"video_review\":8241,\"rights\":{\"bp\":0,\"elec\":0,\"download\":0,\"movie\":0,\"pay\":0,\"hd5\":1,\"no_reprint\":1,\"autoplay\":1,\"ugc_pay\":0,\"is_cooperation\":0,\"ugc_pay_preview\":0,\"no_background\":0},\"open\":false},{\"aid\":\"92333422\",\"bvid\":\"\",\"author\":\"Jimoki_\",\"coins\":42136,\"duration\":\"3:01\",\"mid\":36298367,\"pic\":\"http:\\u002F\\u002Fi2.hdslb.com\\u002Fbfs\\u002Farchive\\u002F255d6b7239c8022d795ab71945e28a1f3bec98dc.jpg\",\"cid\":157653408,\"play\":501662,\"pts\":1145975,\"title\":\"普    通    木    门\",\"trend\":null,\"video_review\":3688,\"rights\":{\"bp\":0,\"elec\":0,\"download\":0,\"movie\":0,\"pay\":0,\"hd5\":0,\"no_reprint\":1,\"autoplay\":1,\"ugc_pay\":0,\"is_cooperation\":0,\"ugc_pay_preview\":0,\"no_background\":0},\"open\":false},{\"aid\":\"91458840\",\"bvid\":\"\",\"author\":\"爱打瞌睡的考拉-\",\"coins\":25034,\"duration\":\"4:38\",\"mid\":500619654,\"pic\":\"http:\\u002F\\u002Fi0.hdslb.com\\u002Fbfs\\u002Farchive\\u002F3f8eb827f3a34d43b9796d3e573136faa72e6c6c.jpg\",\"cid\":156166833,\"play\":417592,\"pts\":1123438,\"title\":\"“我们的存在 本身就是谋逆”【燃向双声道|权谋|帝王霸业】\",\"trend\":null,\"video_review\":2582,\"rights\":{\"bp\":0,\"elec\":0,\"download\":0,\"movie\":0,\"pay\":0,\"hd5\":1,\"no_reprint\":1,\"autoplay\":1,\"ugc_pay\":0,\"is_cooperation\":0,\"ugc_pay_preview\":0,\"no_background\":0},\"open\":false},{\"aid\":\"91888385\",\"bvid\":\"\",\"author\":\"高冷小姜\",\"coins\":33200,\"duration\":\"7:55\",\"mid\":449825072,\"pic\":\"http:\\u002F\\u002Fi1.hdslb.com\\u002Fbfs\\u002Farchive\\u002Fb409aef88f867b7b10c5da6ffa5e4817d2dbfa11.jpg\",\"cid\":156902631,\"play\":2155694,\"pts\":1118607,\"title\":\"相亲对象居然是我的粉丝！场面一度尴尬！\",\"trend\":null,\"video_review\":31154,\"rights\":{\"bp\":0,\"elec\":0,\"download\":0,\"movie\":0,\"pay\":0,\"hd5\":1,\"no_reprint\":1,\"autoplay\":1,\"ugc_pay\":0,\"is_cooperation\":0,\"ugc_pay_preview\":0,\"no_background\":0},\"open\":false},{\"aid\":\"92389548\",\"bvid\":\"\",\"author\":\"硬核的半佛仙人\",\"coins\":58853,\"duration\":\"18:10\",\"mid\":37663924,\"pic\":\"http:\\u002F\\u002Fi1.hdslb.com\\u002Fbfs\\u002Farchive\\u002F87c3d9dd17d4b1b297904f6c81a0a8b7bf34e727.jpg\",\"cid\":157743516,\"play\":740651,\"pts\":1092769,\"title\":\"【半佛】减肥产品是如何骗你钱的？\",\"trend\":null,\"video_review\":12298,\"rights\":{\"bp\":0,\"elec\":0,\"download\":0,\"movie\":0,\"pay\":0,\"hd5\":1,\"no_reprint\":1,\"autoplay\":1,\"ugc_pay\":0,\"is_cooperation\":0,\"ugc_pay_preview\":0,\"no_background\":0},\"open\":false},{\"aid\":\"90824584\",\"bvid\":\"\",\"author\":\"凯玟桑\",\"coins\":49332,\"duration\":\"3:59\",\"mid\":120586,\"pic\":\"http:\\u002F\\u002Fi2.hdslb.com\\u002Fbfs\\u002Farchive\\u002Fb9e130ae57d29870697096bead7553a265c01ef8.jpg\",\"cid\":155096324,\"play\":374334,\"pts\":1092370,\"title\":\"当 前 老 师 网 课 现 状\",\"trend\":null,\"video_review\":2264,\"rights\":{\"bp\":0,\"elec\":0,\"download\":0,\"movie\":0,\"pay\":0,\"hd5\":0,\"no_reprint\":1,\"autoplay\":1,\"ugc_pay\":0,\"is_cooperation\":1,\"ugc_pay_preview\":0,\"no_background\":0},\"open\":false},{\"aid\":\"91941319\",\"bvid\":\"\",\"author\":\"狗辉大师\",\"coins\":34579,\"duration\":\"6:19\",\"mid\":394201823,\"pic\":\"http:\\u002F\\u002Fi1.hdslb.com\\u002Fbfs\\u002Farchive\\u002F8a7d4ac78cfc06005f3e9587d28ce509a699e67f.jpg\",\"cid\":156986205,\"play\":550788,\"pts\":1087881,\"title\":\"【三神定喘】治一个死一百个，三个疗程彻底断气，让你体验升天的感觉\",\"trend\":null,\"video_review\":5974,\"rights\":{\"bp\":0,\"elec\":0,\"download\":0,\"movie\":0,\"pay\":0,\"hd5\":0,\"no_reprint\":1,\"autoplay\":1,\"ugc_pay\":0,\"is_cooperation\":0,\"ugc_pay_preview\":0,\"no_background\":0},\"open\":false},{\"aid\":\"91703457\",\"bvid\":\"\",\"author\":\"霍顿\",\"coins\":101537,\"duration\":\"2:57\",\"mid\":12876332,\"pic\":\"http:\\u002F\\u002Fi2.hdslb.com\\u002Fbfs\\u002Farchive\\u002F6481c78d758665af135c83c98fcfb4c53a891ce9.jpg\",\"cid\":156586738,\"play\":718732,\"pts\":1058754,\"title\":\"【海绵宝宝】B 站 等 级 现 状\",\"trend\":null,\"video_review\":34280,\"rights\":{\"bp\":0,\"elec\":0,\"download\":0,\"movie\":0,\"pay\":0,\"hd5\":1,\"no_reprint\":1,\"autoplay\":1,\"ugc_pay\":0,\"is_cooperation\":0,\"ugc_pay_preview\":0,\"no_background\":0},\"open\":false},{\"aid\":\"92166013\",\"bvid\":\"\",\"author\":\"中国BOY超级大猩猩\",\"coins\":34835,\"duration\":\"19:38\",\"mid\":562197,\"pic\":\"http:\\u002F\\u002Fi0.hdslb.com\\u002Fbfs\\u002Farchive\\u002F640ebd19288b3e2a68d93d4a7cab31643167546f.jpg\",\"cid\":157371155,\"play\":1144395,\"pts\":1054284,\"title\":\"我真的太难了！这些东西要怎么选啊！我要做老八！\",\"trend\":null,\"video_review\":140412,\"rights\":{\"bp\":0,\"elec\":0,\"download\":0,\"movie\":0,\"pay\":0,\"hd5\":1,\"no_reprint\":1,\"autoplay\":1,\"ugc_pay\":0,\"is_cooperation\":0,\"ugc_pay_preview\":0,\"no_background\":0},\"others\":[{\"aid\":92538218,\"bvid\":\"\",\"play\":755702,\"video_review\":15781,\"coins\":38780,\"pts\":872755,\"title\":\"每天使用健身环锻炼身体，持续一周，会有什么改变吗？\",\"pic\":\"http:\\u002F\\u002Fi1.hdslb.com\\u002Fbfs\\u002Farchive\\u002Fa4dff0319db39edf869eafc96e71eefc36ec9682.jpg\",\"duration\":\"15:44\",\"rights\":{\"bp\":0,\"elec\":0,\"download\":0,\"movie\":0,\"pay\":0,\"hd5\":1,\"no_reprint\":1,\"autoplay\":1,\"ugc_pay\":0,\"is_cooperation\":0,\"ugc_pay_preview\":0,\"no_background\":0}}],\"open\":false},{\"aid\":\"92378722\",\"bvid\":\"\",\"author\":\"记录生活的蛋黄派\",\"coins\":70533,\"duration\":\"7:16\",\"mid\":337521240,\"pic\":\"http:\\u002F\\u002Fi0.hdslb.com\\u002Fbfs\\u002Farchive\\u002Fcc23dd14cde5a061d53742a57e79cb58317c9ae1.jpg\",\"cid\":157723410,\"play\":1115556,\"pts\":1052990,\"title\":\"五斤鸡胸肉可以做出多少鸡精？小伙花两天时间才做出来这么点\",\"trend\":null,\"video_review\":26720,\"rights\":{\"bp\":0,\"elec\":0,\"download\":0,\"movie\":0,\"pay\":0,\"hd5\":0,\"no_reprint\":1,\"autoplay\":1,\"ugc_pay\":0,\"is_cooperation\":0,\"ugc_pay_preview\":0,\"no_background\":0},\"open\":false},{\"aid\":\"50314054\",\"bvid\":\"\",\"author\":\"普鲁士ll\",\"coins\":993,\"duration\":\"72:29\",\"mid\":2993682,\"pic\":\"http:\\u002F\\u002Fi0.hdslb.com\\u002Fbfs\\u002Farchive\\u002Fb4303266776e43a0e4b27123c29cef547ed20a0c.jpg\",\"cid\":88081446,\"play\":500174,\"pts\":1045804,\"title\":\"瘦腿课表（美丽芭蕾外侧+内侧+第三套+第四套+美丽芭蕾拉伸）\",\"trend\":null,\"video_review\":11458,\"rights\":{\"bp\":0,\"elec\":0,\"download\":0,\"movie\":0,\"pay\":0,\"hd5\":0,\"no_reprint\":0,\"autoplay\":1,\"ugc_pay\":0,\"is_cooperation\":0,\"ugc_pay_preview\":0,\"no_background\":0},\"open\":false},{\"aid\":\"3534854\",\"bvid\":\"\",\"author\":\"废柴家里蹲\",\"coins\":1147,\"duration\":\"26:43\",\"mid\":3751951,\"pic\":\"http:\\u002F\\u002Fi0.hdslb.com\\u002Fbfs\\u002Farchive\\u002Fcffa0a6189e281516b3bb31aa120e8fe6bce3ff5.jpg\",\"cid\":5627945,\"play\":691669,\"pts\":1042484,\"title\":\"【更新1p，告别蝴蝶袖】美丽芭蕾 天鹅臂 累断手\",\"trend\":null,\"video_review\":12870,\"rights\":{\"bp\":0,\"elec\":0,\"download\":0,\"movie\":0,\"pay\":0,\"hd5\":0,\"no_reprint\":0,\"autoplay\":1,\"ugc_pay\":0,\"is_cooperation\":0,\"ugc_pay_preview\":0,\"no_background\":0},\"open\":false},{\"aid\":\"83835400\",\"bvid\":\"\",\"author\":\"瘦不了猫\",\"coins\":3771,\"duration\":\"25:48\",\"mid\":152015773,\"pic\":\"http:\\u002F\\u002Fi2.hdslb.com\\u002Fbfs\\u002Farchive\\u002Fd97fb032a39f7b774a47cec9d80ab4eca2e16d4e.jpg\",\"cid\":143438940,\"play\":248963,\"pts\":1029120,\"title\":\"康复专家手把手教学，「石原里美」式下颌线！（P2完整跟练）\",\"trend\":null,\"video_review\":6103,\"rights\":{\"bp\":0,\"elec\":0,\"download\":0,\"movie\":0,\"pay\":0,\"hd5\":1,\"no_reprint\":1,\"autoplay\":1,\"ugc_pay\":0,\"is_cooperation\":0,\"ugc_pay_preview\":0,\"no_background\":0},\"open\":false},{\"aid\":\"92180296\",\"bvid\":\"\",\"author\":\"明日方舟\",\"coins\":48695,\"duration\":\"1:17\",\"mid\":161775300,\"pic\":\"http:\\u002F\\u002Fi1.hdslb.com\\u002Fbfs\\u002Farchive\\u002F0ab733084b20e6327177b0e6988bcbd60089f897.jpg\",\"cid\":157357960,\"play\":786271,\"pts\":1016104,\"title\":\"《明日方舟》携手WWF联合公益活动「万类共生」宣传PV\",\"trend\":null,\"video_review\":10312,\"rights\":{\"bp\":0,\"elec\":0,\"download\":0,\"movie\":0,\"pay\":0,\"hd5\":1,\"no_reprint\":1,\"autoplay\":1,\"ugc_pay\":0,\"is_cooperation\":0,\"ugc_pay_preview\":0,\"no_background\":0},\"open\":false},{\"aid\":\"92147507\",\"bvid\":\"\",\"author\":\"盗月社食遇记\",\"coins\":32417,\"duration\":\"7:15\",\"mid\":99157282,\"pic\":\"http:\\u002F\\u002Fi1.hdslb.com\\u002Fbfs\\u002Farchive\\u002F89eb6b657a49705a1f95411319e2e8ff9a454738.jpg\",\"cid\":157338786,\"play\":1073877,\"pts\":1010436,\"title\":\"吃 虾 大 户\",\"trend\":null,\"video_review\":8699,\"rights\":{\"bp\":0,\"elec\":0,\"download\":0,\"movie\":0,\"pay\":0,\"hd5\":1,\"no_reprint\":1,\"autoplay\":1,\"ugc_pay\":0,\"is_cooperation\":0,\"ugc_pay_preview\":0,\"no_background\":0},\"open\":false},{\"aid\":\"90541176\",\"bvid\":\"\",\"author\":\"丸子叨叨叨\",\"coins\":73952,\"duration\":\"8:57\",\"mid\":452309333,\"pic\":\"http:\\u002F\\u002Fi0.hdslb.com\\u002Fbfs\\u002Farchive\\u002F3d47220db4f9ab6cfad299f45739b7fcd6b22b94.jpg\",\"cid\":154622835,\"play\":880937,\"pts\":1008646,\"title\":\"传说中要靠吸吮少女“续命”的老两口，遇到富江会怎样呢？《富江：养女》\",\"trend\":null,\"video_review\":4566,\"rights\":{\"bp\":0,\"elec\":0,\"download\":0,\"movie\":0,\"pay\":0,\"hd5\":1,\"no_reprint\":1,\"autoplay\":1,\"ugc_pay\":0,\"is_cooperation\":0,\"ugc_pay_preview\":0,\"no_background\":0},\"open\":false},{\"aid\":\"91996500\",\"bvid\":\"\",\"author\":\"醋醋cucu\",\"coins\":23636,\"duration\":\"4:27\",\"mid\":2689967,\"pic\":\"http:\\u002F\\u002Fi1.hdslb.com\\u002Fbfs\\u002Farchive\\u002F6a2c43c0b45ef896b54ccbe8cc43cb2d55cfb23c.jpg\",\"cid\":157074730,\"play\":864138,\"pts\":1002846,\"title\":\"【醋醋】这就是二次元广场舞吗，真香！彩虹节拍【bdf2020】\",\"trend\":null,\"video_review\":2634,\"rights\":{\"bp\":0,\"elec\":0,\"download\":0,\"movie\":0,\"pay\":0,\"hd5\":1,\"no_reprint\":1,\"autoplay\":1,\"ugc_pay\":0,\"is_cooperation\":0,\"ugc_pay_preview\":0,\"no_background\":0},\"open\":false},{\"aid\":\"91847164\",\"bvid\":\"\",\"author\":\"侯乐天工作室\",\"coins\":48480,\"duration\":\"8:52\",\"mid\":64840236,\"pic\":\"http:\\u002F\\u002Fi2.hdslb.com\\u002Fbfs\\u002Farchive\\u002F421d08c69802aeec87a82e0df37ac0cdd9cb0008.jpg\",\"cid\":156822997,\"play\":507497,\"pts\":998398,\"title\":\"5分钟让你明白BGM的重要性~你见过配乐欺负诗朗诵吗？到底是配乐重要还是诗朗诵重要？侯乐天音乐喜剧之《钢琴不是吹的》—配乐诗朗诵\",\"trend\":null,\"video_review\":2462,\"rights\":{\"bp\":0,\"elec\":0,\"download\":0,\"movie\":0,\"pay\":0,\"hd5\":1,\"no_reprint\":1,\"autoplay\":1,\"ugc_pay\":0,\"is_cooperation\":0,\"ugc_pay_preview\":0,\"no_background\":0},\"open\":false},{\"aid\":\"92119607\",\"bvid\":\"\",\"author\":\"快乐的台长\",\"coins\":23227,\"duration\":\"2:06\",\"mid\":9354231,\"pic\":\"http:\\u002F\\u002Fi2.hdslb.com\\u002Fbfs\\u002Farchive\\u002F763a17177edfaccd7d20fea4a3b3dff0413510f2.jpg\",\"cid\":157284353,\"play\":659284,\"pts\":994276,\"title\":\"祖 安 一 家 亲 ????（大结局）\",\"trend\":null,\"video_review\":3180,\"rights\":{\"bp\":0,\"elec\":0,\"download\":0,\"movie\":0,\"pay\":0,\"hd5\":0,\"no_reprint\":1,\"autoplay\":1,\"ugc_pay\":0,\"is_cooperation\":0,\"ugc_pay_preview\":0,\"no_background\":0},\"open\":false},{\"aid\":\"92194218\",\"bvid\":\"\",\"author\":\"龙女之声\",\"coins\":57349,\"duration\":\"10:39\",\"mid\":18706318,\"pic\":\"http:\\u002F\\u002Fi1.hdslb.com\\u002Fbfs\\u002Farchive\\u002F78659c3af7d9cfe7d0eef8ca09dca2911d1c7a62.jpg\",\"cid\":157407693,\"play\":791202,\"pts\":978966,\"title\":\"称霸了6亿年 ，才发现自己忘了长脑子【龙女动物学07】刺胞动物门\",\"trend\":null,\"video_review\":3083,\"rights\":{\"bp\":0,\"elec\":0,\"download\":0,\"movie\":0,\"pay\":0,\"hd5\":0,\"no_reprint\":1,\"autoplay\":1,\"ugc_pay\":0,\"is_cooperation\":0,\"ugc_pay_preview\":0,\"no_background\":0},\"open\":false},{\"aid\":\"92142952\",\"bvid\":\"\",\"author\":\"黄一刀有毒\",\"coins\":27886,\"duration\":\"4:38\",\"mid\":297242063,\"pic\":\"http:\\u002F\\u002Fi0.hdslb.com\\u002Fbfs\\u002Farchive\\u002F6cc9b070c7b9eb8ca40a21ea23fe1ad95768dadc.jpg\",\"cid\":157327428,\"play\":1154477,\"pts\":975355,\"title\":\"那些说话喜欢夹英文的中国人\",\"trend\":null,\"video_review\":6936,\"rights\":{\"bp\":0,\"elec\":0,\"download\":0,\"movie\":0,\"pay\":0,\"hd5\":0,\"no_reprint\":1,\"autoplay\":1,\"ugc_pay\":0,\"is_cooperation\":0,\"ugc_pay_preview\":0,\"no_background\":0},\"open\":false},{\"aid\":\"91341454\",\"bvid\":\"\",\"author\":\"丁抠抠的小厨房\",\"coins\":14370,\"duration\":\"4:15\",\"mid\":99795254,\"pic\":\"http:\\u002F\\u002Fi0.hdslb.com\\u002Fbfs\\u002Farchive\\u002F195fcf99f2a3e06d5d1b09ca12eb0903b01e3e62.jpg\",\"cid\":155967713,\"play\":321332,\"pts\":974872,\"title\":\"自制KFC肯德基炸鸡翅，鲜嫩多汁，酥脆外皮的关键\",\"trend\":null,\"video_review\":459,\"rights\":{\"bp\":0,\"elec\":0,\"download\":0,\"movie\":0,\"pay\":0,\"hd5\":1,\"no_reprint\":1,\"autoplay\":1,\"ugc_pay\":0,\"is_cooperation\":0,\"ugc_pay_preview\":0,\"no_background\":0},\"open\":false},{\"aid\":\"92121576\",\"bvid\":\"\",\"author\":\"雨哥到处跑\",\"coins\":42243,\"duration\":\"9:49\",\"mid\":147166910,\"pic\":\"http:\\u002F\\u002Fi2.hdslb.com\\u002Fbfs\\u002Farchive\\u002Fb18747c017c4656edd5e1cd8d5147a3aba0d4dd2.jpg\",\"cid\":157283467,\"play\":1068244,\"pts\":967790,\"title\":\"我被女朋友捆绑在厕所，公开处刑！\",\"trend\":null,\"video_review\":23404,\"rights\":{\"bp\":0,\"elec\":0,\"download\":0,\"movie\":0,\"pay\":0,\"hd5\":1,\"no_reprint\":1,\"autoplay\":1,\"ugc_pay\":0,\"is_cooperation\":0,\"ugc_pay_preview\":0,\"no_background\":0},\"open\":false},{\"aid\":\"92186513\",\"bvid\":\"\",\"author\":\"女装完就改名\",\"coins\":17828,\"duration\":\"1:36\",\"mid\":174452295,\"pic\":\"http:\\u002F\\u002Fi0.hdslb.com\\u002Fbfs\\u002Farchive\\u002F473442c579341d5af23a8107710673dc13d0a1da.jpg\",\"cid\":157405772,\"play\":953349,\"pts\":965132,\"title\":\"教大家破解闪照，不用看闪照就知道里面是什么。\",\"trend\":null,\"video_review\":1357,\"rights\":{\"bp\":0,\"elec\":0,\"download\":0,\"movie\":0,\"pay\":0,\"hd5\":0,\"no_reprint\":1,\"autoplay\":1,\"ugc_pay\":0,\"is_cooperation\":0,\"ugc_pay_preview\":0,\"no_background\":0},\"open\":false},{\"aid\":\"92674262\",\"bvid\":\"\",\"author\":\"绵羊料理\",\"coins\":77608,\"duration\":\"5:48\",\"mid\":18202105,\"pic\":\"http:\\u002F\\u002Fi1.hdslb.com\\u002Fbfs\\u002Farchive\\u002F948d5e77e59c4600f678665c737ee12ac9cd088a.jpg\",\"cid\":158229347,\"play\":499772,\"pts\":953045,\"title\":\"龙吟草莓的妹妹：羊 啸 草 莓\",\"trend\":null,\"video_review\":40325,\"rights\":{\"bp\":0,\"elec\":0,\"download\":0,\"movie\":0,\"pay\":0,\"hd5\":0,\"no_reprint\":1,\"autoplay\":1,\"ugc_pay\":0,\"is_cooperation\":0,\"ugc_pay_preview\":0,\"no_background\":0},\"open\":false},{\"aid\":\"91930007\",\"bvid\":\"\",\"author\":\"是我的星星啊啊\",\"coins\":18428,\"duration\":\"1:51\",\"mid\":297675463,\"pic\":\"http:\\u002F\\u002Fi0.hdslb.com\\u002Fbfs\\u002Farchive\\u002F5ee958360c431b4e3904d9d27a17ea5f794b0a47.jpg\",\"cid\":156972756,\"play\":911353,\"pts\":947392,\"title\":\"【人狗共演】猜 猜 我 是 谁\",\"trend\":null,\"video_review\":1824,\"rights\":{\"bp\":0,\"elec\":0,\"download\":0,\"movie\":0,\"pay\":0,\"hd5\":1,\"no_reprint\":1,\"autoplay\":1,\"ugc_pay\":0,\"is_cooperation\":0,\"ugc_pay_preview\":0,\"no_background\":0},\"open\":false},{\"aid\":\"22227629\",\"bvid\":\"\",\"author\":\"带枪小女孩weibo\",\"coins\":890,\"duration\":\"21:22\",\"mid\":1960460,\"pic\":\"http:\\u002F\\u002Fi2.hdslb.com\\u002Fbfs\\u002Farchive\\u002Fc55b99b53c1a4a7421648aced820d91bf69a7ac1.png\",\"cid\":36779723,\"play\":430642,\"pts\":939475,\"title\":\"在床上就可以做的20分钟特快瘦大腿操  2星期内明显见效【Coffee林芊妤】\",\"trend\":null,\"video_review\":9117,\"rights\":{\"bp\":0,\"elec\":0,\"download\":0,\"movie\":0,\"pay\":0,\"hd5\":0,\"no_reprint\":0,\"autoplay\":1,\"ugc_pay\":0,\"is_cooperation\":0,\"ugc_pay_preview\":0,\"no_background\":0},\"open\":false},{\"aid\":\"92012084\",\"bvid\":\"\",\"author\":\"嘟督不噶油\",\"coins\":62628,\"duration\":\"6:13\",\"mid\":2403047,\"pic\":\"http:\\u002F\\u002Fi2.hdslb.com\\u002Fbfs\\u002Farchive\\u002Fc55cc734bcb970a85d0da8f79df237945692e15d.jpg\",\"cid\":157104613,\"play\":548512,\"pts\":926570,\"title\":\"【嘟督咆哮解说】这才是疫情期间正确制作生日蛋糕的方式！\",\"trend\":null,\"video_review\":38991,\"rights\":{\"bp\":0,\"elec\":0,\"download\":0,\"movie\":0,\"pay\":0,\"hd5\":1,\"no_reprint\":1,\"autoplay\":1,\"ugc_pay\":0,\"is_cooperation\":0,\"ugc_pay_preview\":0,\"no_background\":0},\"open\":false},{\"aid\":\"89411163\",\"bvid\":\"\",\"author\":\"麦老当\",\"coins\":34894,\"duration\":\"7:25\",\"mid\":258547693,\"pic\":\"http:\\u002F\\u002Fi1.hdslb.com\\u002Fbfs\\u002Farchive\\u002Fa8ee511b60d923e9a1980181e8c2615f8aadaf78.jpg\",\"cid\":152715653,\"play\":699248,\"pts\":922076,\"title\":\"这宇航员我TM不当了！\",\"trend\":null,\"video_review\":2730,\"rights\":{\"bp\":0,\"elec\":0,\"download\":0,\"movie\":0,\"pay\":0,\"hd5\":0,\"no_reprint\":1,\"autoplay\":1,\"ugc_pay\":0,\"is_cooperation\":0,\"ugc_pay_preview\":0,\"no_background\":0},\"open\":false},{\"aid\":\"91900795\",\"bvid\":\"\",\"author\":\"观察者网\",\"coins\":32480,\"duration\":\"16:17\",\"mid\":10330740,\"pic\":\"http:\\u002F\\u002Fi0.hdslb.com\\u002Fbfs\\u002Farchive\\u002F14d2c499a1e080d020f55673667857802b91aa52.jpg\",\"cid\":156905256,\"play\":900410,\"pts\":920023,\"title\":\"骁话一下：每百人6个被忽悠，引爆韩国疫情的奇葩邪教，为何如此猖獗？\",\"trend\":null,\"video_review\":20130,\"rights\":{\"bp\":0,\"elec\":0,\"download\":0,\"movie\":0,\"pay\":0,\"hd5\":1,\"no_reprint\":1,\"autoplay\":1,\"ugc_pay\":0,\"is_cooperation\":0,\"ugc_pay_preview\":0,\"no_background\":0},\"others\":[{\"aid\":92433763,\"bvid\":\"\",\"play\":860751,\"video_review\":45055,\"coins\":24154,\"pts\":775616,\"title\":\"【懂点儿啥32】韩国最大的“疫情”，就是他们的邪教\",\"pic\":\"http:\\u002F\\u002Fi2.hdslb.com\\u002Fbfs\\u002Farchive\\u002F710bee480a3f72f0551c391c44da059713ab04e7.jpg\",\"duration\":\"21:30\",\"rights\":{\"bp\":0,\"elec\":0,\"download\":0,\"movie\":0,\"pay\":0,\"hd5\":1,\"no_reprint\":1,\"autoplay\":1,\"ugc_pay\":0,\"is_cooperation\":0,\"ugc_pay_preview\":0,\"no_background\":0}}],\"open\":false},{\"aid\":\"91544129\",\"bvid\":\"\",\"author\":\"异瞳才不是死宅-\",\"coins\":5698,\"duration\":\"3:13\",\"mid\":79153003,\"pic\":\"http:\\u002F\\u002Fi2.hdslb.com\\u002Fbfs\\u002Farchive\\u002F284cd935a896a16eba002afbe3a2c55f95025674.jpg\",\"cid\":156476693,\"play\":735581,\"pts\":912292,\"title\":\"当时我害怕极了，我....哈哈哈哈哈\",\"trend\":null,\"video_review\":1637,\"rights\":{\"bp\":0,\"elec\":0,\"download\":0,\"movie\":0,\"pay\":0,\"hd5\":0,\"no_reprint\":0,\"autoplay\":1,\"ugc_pay\":0,\"is_cooperation\":0,\"ugc_pay_preview\":0,\"no_background\":0},\"open\":false},{\"aid\":\"82766716\",\"bvid\":\"\",\"author\":\"一本正经的小方\",\"coins\":29300,\"duration\":\"2:39\",\"mid\":400413571,\"pic\":\"http:\\u002F\\u002Fi1.hdslb.com\\u002Fbfs\\u002Farchive\\u002F003b4a739080944140cab368825a624f1d2949ae.jpg\",\"cid\":147308234,\"play\":463319,\"pts\":905272,\"title\":\"【处处吻】 愣着干嘛 进来白嫖啊\",\"trend\":null,\"video_review\":1207,\"rights\":{\"bp\":0,\"elec\":0,\"download\":0,\"movie\":0,\"pay\":0,\"hd5\":1,\"no_reprint\":1,\"autoplay\":1,\"ugc_pay\":0,\"is_cooperation\":0,\"ugc_pay_preview\":0,\"no_background\":0},\"open\":false},{\"aid\":\"92188887\",\"bvid\":\"\",\"author\":\"BML制作指挥部\",\"coins\":27571,\"duration\":\"189:22\",\"mid\":403748305,\"pic\":\"http:\\u002F\\u002Fi0.hdslb.com\\u002Fbfs\\u002Farchive\\u002Fd439545794b99d3ca88facc56fb2e1564a2e570f.jpg\",\"cid\":157392610,\"play\":350009,\"pts\":902541,\"title\":\"【官方回播】Bilibili Macro Link-Visual Release 2019\",\"trend\":null,\"video_review\":38582,\"rights\":{\"bp\":0,\"elec\":0,\"download\":0,\"movie\":0,\"pay\":0,\"hd5\":0,\"no_reprint\":1,\"autoplay\":1,\"ugc_pay\":0,\"is_cooperation\":1,\"ugc_pay_preview\":0,\"no_background\":0},\"open\":false},{\"aid\":\"92157578\",\"bvid\":\"\",\"author\":\"朱一旦的枯燥生活\",\"coins\":22871,\"duration\":\"1:22\",\"mid\":437316738,\"pic\":\"http:\\u002F\\u002Fi2.hdslb.com\\u002Fbfs\\u002Farchive\\u002F69d9519adb157724a304e416a6e98b1cbccf2fc9.jpg\",\"cid\":157357772,\"play\":1954384,\"pts\":898603,\"title\":\"【朱一旦】148 发现了一个全新的商机！\",\"trend\":null,\"video_review\":4672,\"rights\":{\"bp\":0,\"elec\":0,\"download\":0,\"movie\":0,\"pay\":0,\"hd5\":1,\"no_reprint\":1,\"autoplay\":1,\"ugc_pay\":0,\"is_cooperation\":0,\"ugc_pay_preview\":0,\"no_background\":0},\"open\":false},{\"aid\":\"91763054\",\"bvid\":\"\",\"author\":\"爱福西西一级学者\",\"coins\":20675,\"duration\":\"3:42\",\"mid\":1583050,\"pic\":\"http:\\u002F\\u002Fi2.hdslb.com\\u002Fbfs\\u002Farchive\\u002F8247337415385379c10bd784b1f4e51f20157d58.jpg\",\"cid\":156701266,\"play\":221142,\"pts\":897922,\"title\":\"【犬科踩点混剪|捕猎集锦|燃向】天性如此\\u002FNatural（野生狗片混剪）\",\"trend\":null,\"video_review\":1220,\"rights\":{\"bp\":0,\"elec\":0,\"download\":0,\"movie\":0,\"pay\":0,\"hd5\":1,\"no_reprint\":1,\"autoplay\":1,\"ugc_pay\":0,\"is_cooperation\":0,\"ugc_pay_preview\":0,\"no_background\":0},\"open\":false},{\"aid\":\"91922911\",\"bvid\":\"\",\"author\":\"允星河Yoseya\",\"coins\":20356,\"duration\":\"6:36\",\"mid\":1605721,\"pic\":\"http:\\u002F\\u002Fi2.hdslb.com\\u002Fbfs\\u002Farchive\\u002Faf5812cb3962f53875ea27b01ddba922e039359a.jpg\",\"cid\":156961476,\"play\":1079560,\"pts\":876911,\"title\":\"【允星河】这TM才是神仙打架\",\"trend\":null,\"video_review\":2017,\"rights\":{\"bp\":0,\"elec\":0,\"download\":0,\"movie\":0,\"pay\":0,\"hd5\":0,\"no_reprint\":1,\"autoplay\":1,\"ugc_pay\":0,\"is_cooperation\":0,\"ugc_pay_preview\":0,\"no_background\":0},\"open\":false},{\"aid\":\"91835142\",\"bvid\":\"\",\"author\":\"岑子舟\",\"coins\":1393,\"duration\":\"0:34\",\"mid\":12248850,\"pic\":\"http:\\u002F\\u002Fi2.hdslb.com\\u002Fbfs\\u002Farchive\\u002F3d9a3edb2f563f5f5270f3b2873289a9a48afa2d.jpg\",\"cid\":156813685,\"play\":1165588,\"pts\":868578,\"title\":\"撸大猫\",\"trend\":null,\"video_review\":835,\"rights\":{\"bp\":0,\"elec\":0,\"download\":0,\"movie\":0,\"pay\":0,\"hd5\":0,\"no_reprint\":0,\"autoplay\":1,\"ugc_pay\":0,\"is_cooperation\":0,\"ugc_pay_preview\":0,\"no_background\":0},\"open\":false},{\"aid\":\"91644176\",\"bvid\":\"\",\"author\":\"shourei小N\",\"coins\":22588,\"duration\":\"1:02\",\"mid\":249118,\"pic\":\"http:\\u002F\\u002Fi0.hdslb.com\\u002Fbfs\\u002Farchive\\u002F76e4c7cf95659836bd7375f9c917a8499ebf611d.jpg\",\"cid\":156541898,\"play\":418641,\"pts\":841941,\"title\":\"【神经病式配音】谁都是你老婆？！DD斩首！\",\"trend\":null,\"video_review\":1303,\"rights\":{\"bp\":0,\"elec\":0,\"download\":0,\"movie\":0,\"pay\":0,\"hd5\":0,\"no_reprint\":1,\"autoplay\":1,\"ugc_pay\":0,\"is_cooperation\":0,\"ugc_pay_preview\":0,\"no_background\":0},\"open\":false},{\"aid\":\"91955082\",\"bvid\":\"\",\"author\":\"nya酱的一生\",\"coins\":54379,\"duration\":\"11:14\",\"mid\":1885078,\"pic\":\"http:\\u002F\\u002Fi2.hdslb.com\\u002Fbfs\\u002Farchive\\u002F1d05675fbb3c319a0272e5c145e0a62bd05a3baa.jpg\",\"cid\":157182797,\"play\":664815,\"pts\":841561,\"title\":\"因为疑似新冠肺炎，我被澳洲医院隔离了【nya酱】\",\"trend\":null,\"video_review\":3405,\"rights\":{\"bp\":0,\"elec\":0,\"download\":0,\"movie\":0,\"pay\":0,\"hd5\":0,\"no_reprint\":1,\"autoplay\":1,\"ugc_pay\":0,\"is_cooperation\":0,\"ugc_pay_preview\":0,\"no_background\":0},\"open\":false},{\"aid\":\"89799412\",\"bvid\":\"\",\"author\":\"啊脑袋_\",\"coins\":11645,\"duration\":\"1:49\",\"mid\":491936052,\"pic\":\"http:\\u002F\\u002Fi2.hdslb.com\\u002Fbfs\\u002Farchive\\u002F85fe37d9a7c1645111a9c55d161aec859da983ff.jpg\",\"cid\":153371262,\"play\":663670,\"pts\":818727,\"title\":\"【声优接到诈骗电话】哈哈哈哈真的好好玩！！！\",\"trend\":null,\"video_review\":2420,\"rights\":{\"bp\":0,\"elec\":0,\"download\":0,\"movie\":0,\"pay\":0,\"hd5\":0,\"no_reprint\":1,\"autoplay\":1,\"ugc_pay\":0,\"is_cooperation\":0,\"ugc_pay_preview\":0,\"no_background\":0},\"open\":false},{\"aid\":\"91651051\",\"bvid\":\"\",\"author\":\"柠檬派奇幻漂流\",\"coins\":20684,\"duration\":\"5:41\",\"mid\":20892823,\"pic\":\"http:\\u002F\\u002Fi2.hdslb.com\\u002Fbfs\\u002Farchive\\u002F0a97ef168b6e92a89d94bccae15eebc203e53dc3.jpg\",\"cid\":156501542,\"play\":1083027,\"pts\":812443,\"title\":\"【沙雕新闻】直接笑到原地去世，喝水吃饭慎入\",\"trend\":null,\"video_review\":27091,\"rights\":{\"bp\":0,\"elec\":0,\"download\":0,\"movie\":0,\"pay\":0,\"hd5\":1,\"no_reprint\":1,\"autoplay\":1,\"ugc_pay\":0,\"is_cooperation\":0,\"ugc_pay_preview\":0,\"no_background\":0},\"open\":false},{\"aid\":\"92211150\",\"bvid\":\"\",\"author\":\"翔翔大作战\",\"coins\":17628,\"duration\":\"6:56\",\"mid\":196356191,\"pic\":\"http:\\u002F\\u002Fi2.hdslb.com\\u002Fbfs\\u002Farchive\\u002Ff92684246f2854216d66419994fa694590babb7e.jpg\",\"cid\":157446898,\"play\":1744081,\"pts\":808270,\"title\":\"在抖音买的水果真的有视频里那么好吗\",\"trend\":null,\"video_review\":25906,\"rights\":{\"bp\":0,\"elec\":0,\"download\":0,\"movie\":0,\"pay\":0,\"hd5\":0,\"no_reprint\":1,\"autoplay\":1,\"ugc_pay\":0,\"is_cooperation\":0,\"ugc_pay_preview\":0,\"no_background\":0},\"open\":false},{\"aid\":\"92069282\",\"bvid\":\"\",\"author\":\"帅soserious\",\"coins\":23524,\"duration\":\"9:41\",\"mid\":66391032,\"pic\":\"http:\\u002F\\u002Fi2.hdslb.com\\u002Fbfs\\u002Farchive\\u002Faabdd88ba7be63c0999097a46f32fa06fc60bf00.jpg\",\"cid\":157179772,\"play\":188211,\"pts\":806151,\"title\":\"【每 天 一 遍 ，肥 肉 再 见】8分钟无器械燃脂训练\",\"trend\":null,\"video_review\":1948,\"rights\":{\"bp\":0,\"elec\":0,\"download\":0,\"movie\":0,\"pay\":0,\"hd5\":1,\"no_reprint\":1,\"autoplay\":1,\"ugc_pay\":0,\"is_cooperation\":0,\"ugc_pay_preview\":0,\"no_background\":0},\"open\":false},{\"aid\":\"91688086\",\"bvid\":\"\",\"author\":\"吟游诗人基德\",\"coins\":18830,\"duration\":\"9:27\",\"mid\":510856133,\"pic\":\"http:\\u002F\\u002Fi1.hdslb.com\\u002Fbfs\\u002Farchive\\u002Fca238446412558e6e60d26f419e0454c6d6566f6.jpg\",\"cid\":156550625,\"play\":740668,\"pts\":798819,\"title\":\"【基德】日本这次被各国打脸，来，看看背后的博弈\",\"trend\":null,\"video_review\":7419,\"rights\":{\"bp\":0,\"elec\":0,\"download\":0,\"movie\":0,\"pay\":0,\"hd5\":1,\"no_reprint\":1,\"autoplay\":1,\"ugc_pay\":0,\"is_cooperation\":0,\"ugc_pay_preview\":0,\"no_background\":0},\"open\":false},{\"aid\":\"91772980\",\"bvid\":\"\",\"author\":\"徐大虾咯\",\"coins\":13813,\"duration\":\"10:52\",\"mid\":13354765,\"pic\":\"http:\\u002F\\u002Fi2.hdslb.com\\u002Fbfs\\u002Farchive\\u002Fe52018da05ad5a0682cdd0d07dc457598999854d.jpg\",\"cid\":156701136,\"play\":1019300,\"pts\":791469,\"title\":\"《抽烟模拟器》玩过没？？\",\"trend\":null,\"video_review\":9899,\"rights\":{\"bp\":0,\"elec\":0,\"download\":0,\"movie\":0,\"pay\":0,\"hd5\":0,\"no_reprint\":1,\"autoplay\":1,\"ugc_pay\":0,\"is_cooperation\":0,\"ugc_pay_preview\":0,\"no_background\":0},\"others\":[{\"aid\":92014380,\"bvid\":\"\",\"play\":1465267,\"video_review\":20418,\"coins\":12417,\"pts\":782064,\"title\":\"丢人合集\",\"pic\":\"http:\\u002F\\u002Fi0.hdslb.com\\u002Fbfs\\u002Farchive\\u002F9dfd305a11d9706d38eb166be5283ad52665c392.jpg\",\"duration\":\"10:52\",\"rights\":{\"bp\":0,\"elec\":0,\"download\":0,\"movie\":0,\"pay\":0,\"hd5\":0,\"no_reprint\":1,\"autoplay\":1,\"ugc_pay\":0,\"is_cooperation\":0,\"ugc_pay_preview\":0,\"no_background\":0}}],\"open\":false},{\"aid\":\"91662776\",\"bvid\":\"\",\"author\":\"席拉瑞丝\",\"coins\":53130,\"duration\":\"9:34\",\"mid\":1654470,\"pic\":\"http:\\u002F\\u002Fi2.hdslb.com\\u002Fbfs\\u002Farchive\\u002Fcd7610e1c20f9588b589c4670334a40cc1915f63.jpg\",\"cid\":156519835,\"play\":420000,\"pts\":790450,\"title\":\"对不起，我真的累了，这次压力打败了我\",\"trend\":null,\"video_review\":16041,\"rights\":{\"bp\":0,\"elec\":0,\"download\":0,\"movie\":0,\"pay\":0,\"hd5\":0,\"no_reprint\":1,\"autoplay\":1,\"ugc_pay\":0,\"is_cooperation\":0,\"ugc_pay_preview\":0,\"no_background\":0},\"open\":false},{\"aid\":\"91814419\",\"bvid\":\"\",\"author\":\"华农兄弟\",\"coins\":18580,\"duration\":\"3:49\",\"mid\":250858633,\"pic\":\"http:\\u002F\\u002Fi2.hdslb.com\\u002Fbfs\\u002Farchive\\u002Fbea7cf7e016f9822cb79619ef519a80fa0a616d2.jpg\",\"cid\":156773242,\"play\":1540301,\"pts\":769222,\"title\":\"华农兄弟：看一下兄弟家的野池塘还有没有鱼，再拔点枇杷苗来种\",\"trend\":null,\"video_review\":13942,\"rights\":{\"bp\":0,\"elec\":0,\"download\":0,\"movie\":0,\"pay\":0,\"hd5\":0,\"no_reprint\":1,\"autoplay\":1,\"ugc_pay\":0,\"is_cooperation\":0,\"ugc_pay_preview\":0,\"no_background\":0},\"others\":[{\"aid\":92472600,\"bvid\":\"\",\"play\":1231276,\"video_review\":30927,\"coins\":25351,\"pts\":750301,\"title\":\"华农兄弟：扔了4个地笼到水潭里，第二天带个桶，高兴的去收鱼\",\"pic\":\"http:\\u002F\\u002Fi2.hdslb.com\\u002Fbfs\\u002Farchive\\u002F8cc82c47ccdda03d61b04613ec9fb2917300cd60.jpg\",\"duration\":\"7:52\",\"rights\":{\"bp\":0,\"elec\":0,\"download\":0,\"movie\":0,\"pay\":0,\"hd5\":0,\"no_reprint\":1,\"autoplay\":1,\"ugc_pay\":0,\"is_cooperation\":0,\"ugc_pay_preview\":0,\"no_background\":0}}],\"open\":false},{\"aid\":\"68364792\",\"bvid\":\"\",\"author\":\"在下蕾姆有何贵干\",\"coins\":20995,\"duration\":\"2:47\",\"mid\":8055928,\"pic\":\"http:\\u002F\\u002Fi2.hdslb.com\\u002Fbfs\\u002Farchive\\u002F0c2dc4393889679833f97855157377e3d5a49d30.jpg\",\"cid\":118490002,\"play\":331540,\"pts\":758711,\"title\":\"压抑到极致的瞬间燃爆！！！我拯救了世界 世界却抛弃了我\",\"trend\":null,\"video_review\":1350,\"rights\":{\"bp\":0,\"elec\":0,\"download\":0,\"movie\":0,\"pay\":0,\"hd5\":0,\"no_reprint\":1,\"autoplay\":1,\"ugc_pay\":0,\"is_cooperation\":0,\"ugc_pay_preview\":0,\"no_background\":0},\"open\":false},{\"aid\":\"90525290\",\"bvid\":\"\",\"author\":\"-柠萌菌-\",\"coins\":20873,\"duration\":\"2:38\",\"mid\":124735327,\"pic\":\"http:\\u002F\\u002Fi1.hdslb.com\\u002Fbfs\\u002Farchive\\u002Fbab23d07d1fcfdec6a34249035d5407a3d5eb753.jpg\",\"cid\":154595114,\"play\":329430,\"pts\":754583,\"title\":\"奇…奇怪的知识增加了!!\",\"trend\":null,\"video_review\":2365,\"rights\":{\"bp\":0,\"elec\":0,\"download\":0,\"movie\":0,\"pay\":0,\"hd5\":0,\"no_reprint\":1,\"autoplay\":1,\"ugc_pay\":0,\"is_cooperation\":0,\"ugc_pay_preview\":0,\"no_background\":0},\"others\":[{\"aid\":91507560,\"bvid\":\"\",\"play\":577554,\"video_review\":1860,\"coins\":34275,\"pts\":746456,\"title\":\"他笑的那一刻，我们长大了！\",\"pic\":\"http:\\u002F\\u002Fi1.hdslb.com\\u002Fbfs\\u002Farchive\\u002Fe15e098d1c1f81a46b25fdd5585a08b0845fa4be.jpg\",\"duration\":\"3:59\",\"rights\":{\"bp\":0,\"elec\":0,\"download\":0,\"movie\":0,\"pay\":0,\"hd5\":0,\"no_reprint\":1,\"autoplay\":1,\"ugc_pay\":0,\"is_cooperation\":0,\"ugc_pay_preview\":0,\"no_background\":0}}],\"open\":false},{\"aid\":\"92649884\",\"bvid\":\"\",\"author\":\"纳豆奶奶\",\"coins\":12070,\"duration\":\"7:46\",\"mid\":6574487,\"pic\":\"http:\\u002F\\u002Fi0.hdslb.com\\u002Fbfs\\u002Farchive\\u002F3e0c31af8c1977f6a2c074df23b3d03e1525c0c1.jpg\",\"cid\":158184419,\"play\":406623,\"pts\":754397,\"title\":\"日本绝学！试着做这个动作1秒你的背会发生什么变化....\",\"trend\":null,\"video_review\":7088,\"rights\":{\"bp\":0,\"elec\":0,\"download\":0,\"movie\":0,\"pay\":0,\"hd5\":0,\"no_reprint\":1,\"autoplay\":1,\"ugc_pay\":0,\"is_cooperation\":0,\"ugc_pay_preview\":0,\"no_background\":0},\"open\":false},{\"aid\":\"91188408\",\"bvid\":\"\",\"author\":\"手绢舞者\",\"coins\":35040,\"duration\":\"21:06\",\"mid\":492564948,\"pic\":\"http:\\u002F\\u002Fi2.hdslb.com\\u002Fbfs\\u002Farchive\\u002F48a1032f86ae755bb4014fb3d854f04696eba4ab.jpg\",\"cid\":155708753,\"play\":369191,\"pts\":753818,\"title\":\"谁才是普通人-月薪3000是什么水平？\",\"trend\":null,\"video_review\":5206,\"rights\":{\"bp\":0,\"elec\":0,\"download\":0,\"movie\":0,\"pay\":0,\"hd5\":0,\"no_reprint\":1,\"autoplay\":1,\"ugc_pay\":0,\"is_cooperation\":0,\"ugc_pay_preview\":0,\"no_background\":0},\"open\":false},{\"aid\":\"91139496\",\"bvid\":\"\",\"author\":\"一支榴莲\",\"coins\":22799,\"duration\":\"1:45\",\"mid\":33338837,\"pic\":\"http:\\u002F\\u002Fi1.hdslb.com\\u002Fbfs\\u002Farchive\\u002F8225c2684fc92204d6e64838e8407d7aff3140b2.jpg\",\"cid\":155629749,\"play\":208636,\"pts\":753380,\"title\":\"关于抑郁 沉于海底\",\"trend\":null,\"video_review\":629,\"rights\":{\"bp\":0,\"elec\":0,\"download\":0,\"movie\":0,\"pay\":0,\"hd5\":0,\"no_reprint\":1,\"autoplay\":1,\"ugc_pay\":0,\"is_cooperation\":0,\"ugc_pay_preview\":0,\"no_background\":0},\"open\":false},{\"aid\":\"92077273\",\"bvid\":\"\",\"author\":\"徐大sao\",\"coins\":18349,\"duration\":\"7:15\",\"mid\":390461123,\"pic\":\"http:\\u002F\\u002Fi1.hdslb.com\\u002Fbfs\\u002Farchive\\u002F72af2a1befe0782a47a76c8b3f0f47c563ccb521.jpg\",\"cid\":157190754,\"play\":1399417,\"pts\":748323,\"title\":\"老干妈，辣子鸡，炸辣椒，大sao第一次吃辣味拌面，这是辣懵了吧\",\"trend\":null,\"video_review\":20176,\"rights\":{\"bp\":0,\"elec\":0,\"download\":0,\"movie\":0,\"pay\":0,\"hd5\":1,\"no_reprint\":1,\"autoplay\":1,\"ugc_pay\":0,\"is_cooperation\":0,\"ugc_pay_preview\":0,\"no_background\":0},\"open\":false},{\"aid\":\"92245724\",\"bvid\":\"\",\"author\":\"不知耻の紫烟老师\",\"coins\":10994,\"duration\":\"6:27\",\"mid\":397540531,\"pic\":\"http:\\u002F\\u002Fi0.hdslb.com\\u002Fbfs\\u002Farchive\\u002F24031623755881904a218869ae1ad1c2af268cb7.jpg\",\"cid\":157502407,\"play\":846832,\"pts\":747972,\"title\":\"您TM是女娲投胎？\",\"trend\":null,\"video_review\":9416,\"rights\":{\"bp\":0,\"elec\":0,\"download\":0,\"movie\":0,\"pay\":0,\"hd5\":1,\"no_reprint\":1,\"autoplay\":1,\"ugc_pay\":0,\"is_cooperation\":0,\"ugc_pay_preview\":0,\"no_background\":0},\"open\":false},{\"aid\":\"91439496\",\"bvid\":\"\",\"author\":\"萌新の阿文\",\"coins\":20491,\"duration\":\"2:09\",\"mid\":404215032,\"pic\":\"http:\\u002F\\u002Fi2.hdslb.com\\u002Fbfs\\u002Farchive\\u002F6ef83fddb43e8f960b75d9966588f65bfda245fe.jpg\",\"cid\":156139989,\"play\":214229,\"pts\":733429,\"title\":\"唯 美 至 极！\",\"trend\":null,\"video_review\":865,\"rights\":{\"bp\":0,\"elec\":0,\"download\":0,\"movie\":0,\"pay\":0,\"hd5\":0,\"no_reprint\":1,\"autoplay\":1,\"ugc_pay\":0,\"is_cooperation\":0,\"ugc_pay_preview\":0,\"no_background\":0},\"open\":false},{\"aid\":\"87560221\",\"bvid\":\"\",\"author\":\"长白山小野猪\",\"coins\":23794,\"duration\":\"1:33\",\"mid\":451115073,\"pic\":\"http:\\u002F\\u002Fi1.hdslb.com\\u002Fbfs\\u002Farchive\\u002F81d1e78eed762a531180d692cb4d14162fc024b7.jpg\",\"cid\":149608614,\"play\":636060,\"pts\":722305,\"title\":\"这小孩有大富大贵之相\",\"trend\":null,\"video_review\":2611,\"rights\":{\"bp\":0,\"elec\":0,\"download\":0,\"movie\":0,\"pay\":0,\"hd5\":0,\"no_reprint\":0,\"autoplay\":1,\"ugc_pay\":0,\"is_cooperation\":0,\"ugc_pay_preview\":0,\"no_background\":0},\"open\":false},{\"aid\":\"92232733\",\"bvid\":\"\",\"author\":\"像素企鹅\",\"coins\":16549,\"duration\":\"3:23\",\"mid\":13544375,\"pic\":\"http:\\u002F\\u002Fi0.hdslb.com\\u002Fbfs\\u002Farchive\\u002Fcb14786a27c500e8e7124e25982e34ee2b4adc5c.jpg\",\"cid\":157477753,\"play\":313655,\"pts\":721921,\"title\":\"“你没穷过，你不懂”\",\"trend\":null,\"video_review\":1073,\"rights\":{\"bp\":0,\"elec\":0,\"download\":0,\"movie\":0,\"pay\":0,\"hd5\":1,\"no_reprint\":1,\"autoplay\":1,\"ugc_pay\":0,\"is_cooperation\":0,\"ugc_pay_preview\":0,\"no_background\":0},\"open\":false},{\"aid\":\"92423699\",\"bvid\":\"\",\"author\":\"靠脸吃饭的徐大王\",\"coins\":14691,\"duration\":\"11:15\",\"mid\":16794231,\"pic\":\"http:\\u002F\\u002Fi2.hdslb.com\\u002Fbfs\\u002Farchive\\u002F2ea1f8bb1c224730aec0156c0109d70dd77565c8.jpg\",\"cid\":157806242,\"play\":1136539,\"pts\":721042,\"title\":\"徐老师来巡山254：气急败坏石头人，一头撞死在路上\",\"trend\":null,\"video_review\":8599,\"rights\":{\"bp\":0,\"elec\":0,\"download\":0,\"movie\":0,\"pay\":0,\"hd5\":1,\"no_reprint\":0,\"autoplay\":1,\"ugc_pay\":0,\"is_cooperation\":0,\"ugc_pay_preview\":0,\"no_background\":0},\"open\":false},{\"aid\":\"92298355\",\"bvid\":\"\",\"author\":\"美食作家王刚R\",\"coins\":8899,\"duration\":\"3:30\",\"mid\":290526283,\"pic\":\"http:\\u002F\\u002Fi2.hdslb.com\\u002Fbfs\\u002Farchive\\u002Fa09f221b206cc90e525a1527cc9621bb9080c46b.jpg\",\"cid\":157595181,\"play\":831170,\"pts\":720682,\"title\":\"厨师长教你：“懒人烧豆腐”的家常做法，很简单懒人的做法，收藏\",\"trend\":null,\"video_review\":5639,\"rights\":{\"bp\":0,\"elec\":0,\"download\":0,\"movie\":0,\"pay\":0,\"hd5\":1,\"no_reprint\":1,\"autoplay\":1,\"ugc_pay\":0,\"is_cooperation\":0,\"ugc_pay_preview\":0,\"no_background\":0},\"open\":false},{\"aid\":\"90771418\",\"bvid\":\"\",\"author\":\"伦砸-StatTrak-绿宝石\",\"coins\":5156,\"duration\":\"3:06\",\"mid\":33496214,\"pic\":\"http:\\u002F\\u002Fi0.hdslb.com\\u002Fbfs\\u002Farchive\\u002F08d1b9006c4e07c0a66f00f33d67fe7503625c1d.jpg\",\"cid\":155007864,\"play\":1063112,\"pts\":717508,\"title\":\"祖 安 の 鹿\",\"trend\":null,\"video_review\":4656,\"rights\":{\"bp\":0,\"elec\":0,\"download\":0,\"movie\":0,\"pay\":0,\"hd5\":0,\"no_reprint\":1,\"autoplay\":1,\"ugc_pay\":0,\"is_cooperation\":0,\"ugc_pay_preview\":0,\"no_background\":0},\"open\":false},{\"aid\":\"91919224\",\"bvid\":\"\",\"author\":\"偶尔性别女\",\"coins\":4602,\"duration\":\"1:17\",\"mid\":38887907,\"pic\":\"http:\\u002F\\u002Fi2.hdslb.com\\u002Fbfs\\u002Farchive\\u002Fdd28248c9e9bb1e4e2f25e17388361084453263c.jpg\",\"cid\":156948634,\"play\":760295,\"pts\":715103,\"title\":\"钟南山院士年轻时究竟长啥样？学术界顶流们教你什么叫颜值与实力齐飞！\",\"trend\":null,\"video_review\":3160,\"rights\":{\"bp\":0,\"elec\":0,\"download\":0,\"movie\":0,\"pay\":0,\"hd5\":1,\"no_reprint\":1,\"autoplay\":1,\"ugc_pay\":0,\"is_cooperation\":0,\"ugc_pay_preview\":0,\"no_background\":0},\"open\":false}],\"rankRouteParams\":{\"rankTab\":\"all\",\"rid\":0,\"arc_type\":0,\"day\":3,\"season_type\":1},\"channels\":[{\"name\":\"全站\",\"tid\":0},{\"name\":\"动画\",\"tid\":1},{\"name\":\"国创相关\",\"tid\":168},{\"name\":\"音乐\",\"tid\":3},{\"name\":\"舞蹈\",\"tid\":129},{\"name\":\"游戏\",\"tid\":4},{\"name\":\"科技\",\"tid\":36},{\"name\":\"数码\",\"tid\":188},{\"name\":\"生活\",\"tid\":160},{\"name\":\"鬼畜\",\"tid\":119},{\"name\":\"时尚\",\"tid\":155},{\"name\":\"娱乐\",\"tid\":5},{\"name\":\"影视\",\"tid\":181}],\"showTypes\":true,\"typeList\":[{\"name\":\"全部投稿\",\"value\":0},{\"name\":\"近期投稿\",\"value\":1}],\"times\":[{\"name\":\"日排行\",\"value\":1},{\"name\":\"三日排行\",\"value\":3},{\"name\":\"周排行\",\"value\":7},{\"name\":\"月排行\",\"value\":30}],\"note\":\"统计所有投稿在 2020年02月27日 - 2020年03月01日 的数据综合得分，每日更新一次\",\"loading\":false};(function(){var s;(s=document.currentScript||document.scripts[document.scripts.length-1]).parentNode.removeChild(s);}());</script><script src=\"//s1.hdslb.com/bfs/static/jinkela/rank/1.rank.66267091ff49e189079246486d715b1a4f140057.js\" defer></script><script src=\"//s1.hdslb.com/bfs/static/jinkela/rank/rank.66267091ff49e189079246486d715b1a4f140057.js\" defer></script><!-- built files will be auto injected --><script type=\"text/javascript\">0</script><div class=\"footer bili-footer report-wrap-module\"></div><script type=\"text/javascript\" src=\"//s1.hdslb.com/bfs/seed/jinkela/footer-v2/footer.js\" defer=\"defer\"></script></body></html>\n\"\"\"\nsoup = BeautifulSoup(html_doc, 'html.parser')\n\nhtmll = soup.find_all('li',class_='rank-item')\n\n\nprint('视频总数：')\nprint(len(htmll))\n\nfor index in range(len(htmll)):\n    print('视频标题：')\n    print(htmll[index].img['alt'])\n    print('视频地址：')\n    print(htmll[index].a['href'])\n"
  },
  {
    "path": "step1/bilibili-video-api.py",
    "content": "import json\nimport requests\nimport re\nimport random\nfrom bs4 import BeautifulSoup\nhash = '45de7ffc02c0fdeb49263721999a5dbf'\napilist1=['https://happyukgo.com/','https://helloacm.com/','https://steakovercooked.com/','https://anothervps.com/','https://isvbscriptdead.com/','https://zhihua-lai.com/','https://weibomiaopai.com/','https://steemyy.com/']\n\nurl = 'https://m.bilibili.com/video/av84351845'\napiurl = apilist1[random.randint(0,8)]+'api/video/?cached&lang=ch&page=bilibili&hash='+hash+'&video='+url\n\n#print(apiurl)\n\nheaders = {'user-agent' : 'Mozilla/5.0 (Linux; Android 10; Z832 Build/MMB29M) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.116 Mobile Safari/537.36'}\nrec = requests.get(apiurl,headers=headers)\nresult = eval(repr(rec.text).replace('\\\\', ''))\n#print(result)\nj = json.loads(result)\nprint('【1080P】 FLV - 由' + j['server']+'的api解析')\n\nprint(j['url'])\n\n#api2\npayload = {'urlav': url}\n\nr = requests.post(\"https://www.xbeibeix.com/api/bilibili.php\",data=payload,headers=headers)\n#print(r.text)\nsoup = BeautifulSoup(r.text, 'html.parser')\nvideodown = soup.find(download='视频.mp4')\n\ncuthtml1 =str(r.text)\nstr1 = cuthtml1.find('清晰度：')\nstr2 = cuthtml1.find('P</p></li>')\napiqingxidu = cuthtml1[str1+7:str2]\nprint('【'+apiqingxidu+'P】 MP4 - 由xbeibeix.com的api解析')\n\ncuthtml2 =str(r.text)\nstr1 = cuthtml2.find('封面：')\nstr2 = cuthtml2.find('ng</p></li>')\napiimage = cuthtml2[str1+3:str2] + 'ng'\nprint(apiimage)\n\nprint('--'*100)\nprint(videodown['href'])"
  },
  {
    "path": "step1/bilibili-video-list.py",
    "content": "import json\nimport requests\nimport re\nfrom bs4 import BeautifulSoup\n\nurl = 'https://www.bilibili.com/video/av91222524'\n#多p：https://www.bilibili.com/video/av84351845\n#单p：https://www.bilibili.com/video/av91222524/\n    \nheaders = {'user-agent' : 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.122 Safari/537.36'}\nmheaders = {'user-agent' : 'Mozilla/5.0 (Linux; Android 10; Z832 Build/MMB29M) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.116 Mobile Safari/537.36'}\nrec = requests.get(url,headers=headers)\nsoup = BeautifulSoup(rec.text, 'html.parser')\nifpnum = soup.find_all('div',class_='multi-page report-wrap-module report-scroll-module')\nif ifpnum != []:\n  print('多p')\n  rec = requests.get('http://m'+url[11:],headers=mheaders)\n  cutjson =str(rec.text)\n  str1 = cutjson.find('window.__INITIAL_STATE__=')\n  str2 = cutjson.find('if(window.__INITIAL_STATE__.abserver)')\n  videoinfojson = cutjson[str1+25:str2-6]\n  #print(videoinfojson)\n  j = json.loads(videoinfojson)\n  #j是字典\n  k = j['reduxAsyncConnect']['videoInfo']['pages']\n  #print(len(k))\n  #图片\n  print(j['reduxAsyncConnect']['videoInfo']['pic'])\n  #名\n  print(j['reduxAsyncConnect']['videoInfo']['title'])\n  #介绍\n  print(j['reduxAsyncConnect']['videoInfo']['desc'])\n  for index in range(len(k)):\n    duration = k[index]['duration']\n    min = str(duration//60)\n    sec = duration%60-1\n    if sec < 10:\n      sec = str('0') + str(sec)\n    sec = str(sec)\n    print('【P' + str(index+1) + '】' + k[index]['part'] + ' - ' + min + ':' + sec)\nelse:\n  #print('单p')\n  rec = requests.get(url,headers=headers)\n  soup = BeautifulSoup(rec.text, 'html.parser')\n  videotitle = soup.find(name='title')\n  videoimage = soup.find(itemprop='image')\n  videodesc = soup.find(itemprop='description')\n  print(str(videoimage['content']))\n\n  print('【P1】' + str(videotitle.text[:-26]))\n  \n  print(str(videodesc['content']))\n\n\n\n\n"
  },
  {
    "path": "step1/kaiyan.py",
    "content": "#开眼每日精选\nimport requests\nimport json\nurl = 'http://baobab.kaiyanapp.com/api/v5/index/tab/allRec?page=0'\nheaders = {'user-agent' : 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.122 Safari/537.36'}\nrec = requests.get(url,headers=headers)\n#print(rec.text)\n\nj = json.loads(rec.text)\n#标题\nprint(j['itemList'][0]['data']['header']['title'] + ' - ' + j['itemList'][0]['data']['header']['subTitle'])\n#视频数：\n#print(j['itemList'][0]['data'])\nfor index in range(len(j['itemList'][0]['data']['itemList'])):\n  #标题\n  print(j['itemList'][0]['data']['itemList'][index]['data']['content']['data']['title'])\n  #图片\n  print(j['itemList'][0]['data']['itemList'][index]['data']['content']['data']['cover']['feed'])\n  #mp4\n  print(j['itemList'][0]['data']['itemList'][index]['data']['content']['data']['playUrl'])\n\n\nfor index in range(len(j['itemList'])):\n  if j['itemList'][index]['type'] == 'videoSmallCard' or j['itemList'][index]['type'] == 'FollowCard':\n    print(j['itemList'][index]['data']['category']+'] - ' + j['itemList'][index]['data']['title'])\n    print(j['itemList'][index]['data']['cover']['feed'])\n    print(j['itemList'][index]['data']['playUrl'])\n\n\n\n\n\n\n    #开眼排行榜 /周\nimport requests\nimport json\nlistnum = 8\nnum = 0\nwhile listnum == 8:\n  \n  url = 'http://baobab.kaiyanapp.com/api/v4/rankList/videos?strategy=weekly&num=8&start=' + str(num*8)\n  #monthly 月\n  headers = {'user-agent' : 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.122 Safari/537.36'}\n  rec = requests.get(url,headers=headers)\n  #print(rec.text)\n\n  j = json.loads(rec.text)\n  listnum = len(j['itemList'])\n  num += 1\n  for index in range(len(j['itemList'])):\n    #标题\n    print(j['itemList'][index]['data']['category'] + ' - ' + j['itemList'][index]['data']['title'])\n    #图片\n    print(j['itemList'][index]['data']['cover']['feed'])\n    #mp4\n    print(j['itemList'][index]['data']['playUrl'])\n\n\n\n\n\n\n\n\n\n\n#专题页面解析（多p）\nimport requests\nimport json\nid = 488\nurl = 'https://baobab.kaiyanapp.com/api/v3/lightTopics/webPage/' + str(id)\nheaders = {'user-agent' : 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.122 Safari/537.36'}\nrec = requests.get(url,headers=headers)\n#print(rec.text)\n\nj = json.loads(rec.text)\nfor index in range(len(j['itemList'])):\n  print(j['itemList'][index]['data']['title'])\n  print(j['itemList'][index]['data']['cover']['feed'])\n  print(j['itemList'][index]['data']['playUrl'])\n\n\n\n\n\n\n\n\n\n\n\n  #专题列表解析\nimport requests\nimport json\nimport urllib\nheaders = {'user-agent' : 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.122 Safari/537.36'}\nurl = 'http://baobab.kaiyanapp.com/api/v3/specialTopics?start=0&num=10'\nheaders = {'user-agent' : 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.122 Safari/537.36'}\nrec = requests.get(url,headers=headers)\nrec.encoding = 'utf-8'\nj = json.loads(rec.text)\nfor index in range(len(j['itemList'])):\n  zhuantiurl = str(j['itemList'][index]['data']['actionUrl'])\n\n  cutjson = zhuantiurl.find('url=')\n  zhuantiurl = zhuantiurl[cutjson+4:]\n  str1 = zhuantiurl.find('nid%3D')\n  str2 = zhuantiurl.find('%26')\n  id = zhuantiurl[str1+6:str2]\n  print(id)\n\n  \n  r = requests.get('https://baobab.kaiyanapp.com/api/v3/lightTopics/webPage/' + str(id),headers=headers)\n\n  jo = json.loads(r.text)\n  print(jo['brief'])\n  print(j['itemList'][index]['data']['image'])\n  print('https://www.eyepetizer.net/videos_article.html?nid='+str(id))\n  #print(j['itemList'][index]['data']['playUrl'])"
  },
  {
    "path": "step1/livideo.py",
    "content": "\nimport requests\nfrom bs4 import BeautifulSoup\n\n#首次加载网页\nurl = 'https://www.pearvideo.com/popular'\nheaders = {'user-agent' : 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.122 Safari/537.36'}\nrec = requests.get(url,headers=headers)\nttmp = rec.text\n#从api循环爬出网页，和1合并\nurlx = 'https://www.pearvideo.com/popular_loading.jsp'\nnum = 1\nwhile num < 10:\n    startnum = 10\n    payload = {'reqType': '1', 'categoryId': '', 'start': startnum*num}\n    rec = requests.get(urlx,headers=headers,params=payload)\n    ttmp += rec.text\n    num += 1\n\n\n#交给美丽汤循环爬出所有数据\nsoup = BeautifulSoup(ttmp, 'html.parser')\n\nhtmll = soup.find_all('li',class_='popularem clearfix')\n\n\nprint('视频总数：')\nprint(len(htmll))\n#print(htmll)\nfor index in range(len(htmll)):\n    print('视频标题：')\n    print(htmll[index].h2.text)\n    print('视频地址：')\n    print('https://www.pearvideo.com/' + htmll[index].a['href'])\n    print('视频图片：')\n    imgtmp = htmll[index].find('div',class_='popularem-img')\n    print(imgtmp['style'][22:-2])\n    print('*-'*30)"
  },
  {
    "path": "step1/pengpai.py",
    "content": "#爬视频列表\nimport json \nimport requests\nfrom bs4 import BeautifulSoup\n\nurl = 'https://www.thepaper.cn/load_video_chosen.jsp?channellID=26916&nodeid=26913&pageidx=1'\nheaders = {'user-agent' : 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.122 Safari/537.36'}\nrec = requests.get(url,headers=headers)\n#print(rec.text)\n\nsoup = BeautifulSoup(rec.text, 'html.parser')\n\nimgsrc = soup.find_all('img')\nahref = soup.find_all('a',class_='play has_pic')\ntitle = soup.find_all('div',class_='video_title')\nfor index in range(len(imgsrc)):\n  titletext = title[index].text\n  titletext = titletext.replace('\t', '')\n  imgsrcurl = imgsrc[index]['src']\n  print('http' + imgsrcurl[5:])\n  print('https://thepaper.cn/' + ahref[index]['href'])\n  print(titletext)\n  print('-----------'*30)\n\n\n\n\n\n\n#爬视频地址\nimport requests\nfrom bs4 import BeautifulSoup\n\nurl = 'https://www.thepaper.cn/newsDetail_forward_6437339'\nheaders = {'user-agent' : 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.122 Safari/537.36'}\nrec = requests.get(url,headers=headers)\n\nsoup = BeautifulSoup(rec.text, 'html.parser')\n#print(rec.text)\nmp4 = soup.find('source',type='video/mp4')\nprint(mp4['src'])"
  },
  {
    "path": "step1/taptap.py",
    "content": "\n#编辑推荐视频列表\nimport json \nimport requests\nfrom bs4 import BeautifulSoup\n\nurl = 'https://www.taptap.com/webapiv2/video/v1/refresh?type=editors_choice&from=1&limit=10&X-UA=V%3D1%26PN%3DWebApp%26LANG%3Dzh_CN%26VN%3D0.1.0%26LOC%3DCN%26PLT%3DPC'\nheaders = {'user-agent' : 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.122 Safari/537.36'}\nrec = requests.get(url,headers=headers)\n#print(rec.text)\nj = json.loads(rec.text)\n#print(j['data'])\n\nfor index in range(len(j['data']['list'])):\n  imgurl = j['data']['list'][index]['image']['url']\n  id = j['data']['list'][index]['id']\n  print(j['data']['list'][index]['title'])\n  print('http' + imgurl[5:])\n  print('https://taptap.com/video/' + str(id))\n\n\n\n\n\n\n\n#为你推荐视频列表\nimport json \nimport requests\nfrom bs4 import BeautifulSoup\n\nurl = 'https://www.taptap.com/webapiv2/video/v1/refresh?type=recommend&from=0&limit=30&X-UA=V%3D1%26PN%3DWebApp%26LANG%3Dzh_CN%26VN%3D0.1.0%26LOC%3DCN%26PLT%3DPC'\nheaders = {'user-agent' : 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.122 Safari/537.36'}\nrec = requests.get(url,headers=headers)\n#print(rec.text)\nj = json.loads(rec.text)\n#print(j['data'])\n\nfor index in range(len(j['data']['list'])):\n  imgurl = j['data']['list'][index]['data']['image']['url']\n  id = j['data']['list'][index]['data']['id']\n  print(j['data']['list'][index]['data']['title'])\n  print('http' + imgurl[5:])\n  print('https://taptap.com/video/' + str(id))\n\n\n\n\n\n\n#由视频链接爬出视频m3u8\n\nimport json \nimport requests\nfrom bs4 import BeautifulSoup\nimport re\n\nurl = 'https://www.taptap.com/video/1310782'\nheaders = {'user-agent' : 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.122 Safari/537.36'}\nrec = requests.get(url,headers=headers)\nrectext = rec.text\nstr1 = rectext.find('{url:B,url_h265:')\nstr2 = rectext.find(',url_expires:C}')\n#print(rectext[str1+17:str2-1])\nmainm3u8 = rectext[str1+17:str2-1]\n#print(type(mainm3u8))\nmainm3u8 = mainm3u8.replace(r'\\u002F','/')\n\n\n#print(mainm3u8)\n#j = json.loads(rec.text)\n#print(j['data'])\n\nrec = requests.get(mainm3u8,headers=headers)\nrectext = rec.text\n#print(rectext)\n\nprule = re.compile(r'\\d+[p|k]\\d?\\d?')   # 查找数字\npname = prule.findall(rectext)\n\nurlrule = re.compile(r'http[s]?://(?:[a-zA-Z]|[0-9]|[$-_@.&+]|[!*\\(\\),]|(?:%[0-9a-fA-F][0-9a-fA-F]))+')   # 查找数字\nm3u8url = urlrule.findall(rectext)\ncuttext = rectext\n#print(m3u8url)\nfor index in range(len(m3u8url)):\n  print(pname[index])\n  print(m3u8url[index])\n  print('-----------'*30)\n\n\n\n\n\n\n\n\n\n\n  \n#排行榜\nimport json \nimport requests\nfrom bs4 import BeautifulSoup\n\nurl = 'https://www.taptap.com/top/download'\nheaders = {'user-agent' : 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.122 Safari/537.36'}\nrec = requests.get(url,headers=headers)\n#print(rec.text)\nsoup = BeautifulSoup(rec.text, 'html.parser')\nrankitem = soup.find_all('div',class_='taptap-top-card')\nfor index in range(len(rankitem)):\n  data = rankitem[index].find('a',class_='card-left-image')\n  img = data.find('img')\n  print(img['alt'])\n  print('http'+img['src'][5:])\n  print(data['href'])\n  print('------'*30)\n\n\n\n\n\n\n\n#游戏分类\nimport json \nimport requests\nfrom bs4 import BeautifulSoup\n\nurl = 'https://www.taptap.com/category/recommend'\nheaders = {'user-agent' : 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.122 Safari/537.36'}\nrec = requests.get(url,headers=headers)\n#print(rec.text)\nsoup = BeautifulSoup(rec.text, 'html.parser')\nappitem = soup.find_all('div',class_='taptap-app-item swiper-slide')\nfor index in range(len(rankitem)):\n  data = appitem[index].find('a',class_='app-item-image taptap-link')\n  img = data.find('img')\n  print(img['alt'])\n  print('http'+img['data-src'][5:])\n  print(data['href'])\n  print('------'*30)\n\n\n\n\n\n#详情获取视频\nimport json \nimport requests\nfrom bs4 import BeautifulSoup\n\nurl = 'https://www.taptap.com/app/39186/video?type=not_official'\nheaders = {'user-agent' : 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.122 Safari/537.36'}\nrec = requests.get(url,headers=headers)\n#print(rec.text)\nsoup = BeautifulSoup(rec.text, 'html.parser')\nif soup.find_all('div',class_='no-content'):\n\n  print('没有视频')\nelse:\n  #print('cunzai')\n  videoitem = soup.find_all('div',class_='video-item')\n  for index in range(len(videoitem)):\n    img = videoitem[index].find('div',class_='video-thumb-box')\n    img = img['style']\n    cutimg = img.split(\"'\")\n    img = cutimg[1]\n    data = videoitem[index].find('div',class_='video-content')\n    print(data.a.text)\n    print('http' + img[5:])\n    print(data.a['href'])\n\n\n\n\n\n\n\n"
  },
  {
    "path": "step1/weibo.py",
    "content": "#热门推荐（纪录片，评测，娱乐都没有）\nimport json \nimport requests\nimport re\nfrom bs4 import BeautifulSoup\nimport urllib\n\nurl = 'https://weibo.com/video/aj/load?ajwvr=6&page=2&type=channel&hot_recommend_containerid=video_tag_15&__rnd=1584096137063'\ncookies = dict(SUB='_2AkMpN-raf8NxqwJRmfoXxGniZIl_ygvEieKfaxsBJRMxHRl-yj92qhFTtRB6ArfENQBVM_xipNLvZYca4pNo4lw7p9Xi')\nheaders = {'user-agent' : 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.132 Safari/537.36'}\nrec = requests.get(url,headers=headers,cookies=cookies)\nrec.encoding = 'utf-8'\nrectext = rec.text\nprint(rectext)\n\nnum = re.sub(r'\\\\n', \"\", rectext)\nnum = re.sub(r'\\\\', \"\", num)\nprint(num)\nsoup = BeautifulSoup(num, 'html.parser')\nlist = soup.find_all('div',class_='V_list_a')\nprint(len(list))\nfor index in range(len(list)):\n  #soup = BeautifulSoup(list[index], 'html.parser')\n  videosource = list[index]['video-sources']\n\n  videosource = urllib.parse.unquote(videosource,encoding='utf-8',errors='replace')\n  videosource = urllib.parse.unquote(videosource,encoding='utf-8',errors='replace')\n  videosource = videosource[8:]\n  mp4 = videosource.split('http:')\n  #q = videosource\n  imgsrc = list[index].find('img')\n  imgsrc = imgsrc['src']\n  title = list[index]['action-data']\n\n  str1 = title.find('&title=')\n  str2 = title.find('&uid=')\n  title = title[str1+7:str2]\n  title = urllib.parse.unquote(title,encoding='utf-8',errors='replace')\n  print(title)\n  print('http:' + imgsrc[6:])\n  print('http:' + mp4[0])\n  print('*******'*30)\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n  #编辑推荐\nimport json \nimport requests\nimport re\nfrom bs4 import BeautifulSoup\nimport urllib\n\nurl = 'https://weibo.com/tv?type=channel&first_level_channel_id=4453781547450385&broadcast_id=4476916414218244'\ncookies = dict(SUB='_2AkMpN-raf8NxqwJRmfoXxGniZIl_ygvEieKfaxsBJRMxHRl-yj92qhFTtRB6ArfENQBVM_xipNLvZYca4pNo4lw7p9Xi')\nheaders = {'user-agent' : 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.132 Safari/537.36'}\nrec = requests.get(url,headers=headers,cookies=cookies)\nrec.encoding = 'utf-8'\nrectext = rec.text\n#print(rectext)\nsoup = BeautifulSoup(rectext, 'html.parser')\nlist = soup.find_all('div',class_='V_list_a')\nfor index in range(len(list)):\n  videosource = list[index]['video-sources']\n  videosource = urllib.parse.unquote(videosource,encoding='utf-8',errors='replace')\n  videosource = urllib.parse.unquote(videosource,encoding='utf-8',errors='replace')\n  videosource = videosource[8:]\n  mp4 = videosource.split('http:')\n  img = list[index].find('img')\n  img = img['src']\n  if img[0:4] == 'http':\n    img = 'http' + img[5:]\n  else:\n    img = 'http:' + img\n  title = list[index].find('h3')\n  print(title.text)\n  print(img)\n  print('http:' + mp4[len(mp4)-1])\n\n\n\n\n\n#排行榜\nimport json \nimport requests\nimport re\nfrom bs4 import BeautifulSoup\nimport urllib\n\nurl = 'https://weibo.com/tv?type=dayrank'\ncookies = dict(SUB='_2AkMpN-raf8NxqwJRmfoXxGniZIl_ygvEieKfaxsBJRMxHRl-yj92qhFTtRB6ArfENQBVM_xipNLvZYca4pNo4lw7p9Xi')\nheaders = {'user-agent' : 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.132 Safari/537.36'}\nrec = requests.get(url,headers=headers,cookies=cookies)\nrec.encoding = 'utf-8'\nrectext = rec.text\n#print(rectext)\nsoup = BeautifulSoup(rectext, 'html.parser')\nlist = soup.find_all('div',class_='V_list_a')\nfor index in range(len(list)):\n  videosource = list[index]['video-sources']\n  videosource = urllib.parse.unquote(videosource,encoding='utf-8',errors='replace')\n  videosource = urllib.parse.unquote(videosource,encoding='utf-8',errors='replace')\n  videosource = videosource[8:]\n  mp4 = videosource.split('http:')\n  img = list[index].find('img')\n  img = img['src']\n  if img[0:4] == 'http':\n    img = 'http' + img[5:]\n  else:\n    img = 'http:' + img\n  title = list[index].find('h3')\n  title = title.text\n  title = title.replace(' ', '').replace('\\n','')\n  if len(title) > 40:\n    title = title[:40] + '...'\n  print(title)\n  print(img)\n  print('http:' + mp4[len(mp4)-1])\n\n\n\n\n#故事\nimport json \nimport requests\nimport re\nfrom bs4 import BeautifulSoup\nimport urllib\n\nurl = 'https://weibo.com/tv?type=story'\ncookies = dict(SUB='_2AkMpN-raf8NxqwJRmfoXxGniZIl_ygvEieKfaxsBJRMxHRl-yj92qhFTtRB6ArfENQBVM_xipNLvZYca4pNo4lw7p9Xi')\nheaders = {'user-agent' : 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.132 Safari/537.36'}\nrec = requests.get(url,headers=headers,cookies=cookies)\nrec.encoding = 'utf-8'\nrectext = rec.text\n#print(rectext)\nsoup = BeautifulSoup(rectext, 'html.parser')\nlist = soup.find_all('div',class_='V_list_b')\nfor index in range(len(list)):\n\n  #print(list[index])\n\n  if list[index]['action-data'][:9] != 'type=live':\n\n\n    videosource = list[index]['video-sources']\n    videosource = urllib.parse.unquote(videosource,encoding='utf-8',errors='replace')\n    videosource = urllib.parse.unquote(videosource,encoding='utf-8',errors='replace')\n    videosource = videosource[8:]\n    mp4 = videosource.split('http:')\n    img = list[index].find('img')\n    img = img['src']\n    if img[0:4] == 'http':\n      img = 'http' + img[5:]\n    else:\n      img = 'http:' + img\n    like = list[index].find('div',class_='like')\n    like = like.text\n    likenum = re.findall(r'\\d+',like)\n    print(str(likenum[0] + '赞'))\n    print(img)\n    print('http:' + mp4[len(mp4)-1])\n\n    \n  else:\n    index = index +1"
  },
  {
    "path": "step1/weibomiaopai的js加密算法破解.py",
    "content": "import json \nimport requests\nimport base64\nfrom bs4 import BeautifulSoup\n\nurl = 'https://weibomiaopai.com/online-video-download-helper/bilibili'\nheaders = {'user-agent' : 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.122 Safari/537.36'}\nrec = requests.get(url,headers=headers)\nrec.encoding = 'utf-8'\nrte = rec.text\nstr1 = rte.find('var freeservice=')\nstr2 = rte.find('var thepage=\"bilibili\";')\ncut = rte[str1+16:str2]\ncut = cut.replace('\\n','')\ncut = cut.replace(';','')\ncut = cut.split(\"' + '\")\nq = ''\ni = 2\nwhile (i < len(cut)):\n  q += cut[i]\n  i+=3\nq =  base64.b64decode(q)\nq =str(q, encoding = \"utf-8\")\nprint(q)\n"
  },
  {
    "path": "step1/医学卫视.py",
    "content": "#视频列表\nimport json \nimport requests\nfrom bs4 import BeautifulSoup\n\nurl = 'https://www.mvyxws.com/'\nheaders = {'user-agent' : 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.122 Safari/537.36'}\nrec = requests.get(url,headers=headers)\ncag=1\n#print(rec.text)\nsoup = BeautifulSoup(rec.text, 'html.parser')\nfilmitem = soup.find_all('div',class_='category')\n#print(filmitem[cag])\nfilmitem = filmitem[cag].find_all('a')\nprint(len(filmitem))\nfor index in range(len(filmitem)):\n  print(filmitem[index]['title'])\n  print('https://www.mvyxws.com'+filmitem[index]['href'])\n\n  \n\n\n  #多p\nimport json \nimport requests\nfrom bs4 import BeautifulSoup\n\nurl = 'https://www.mvyxws.com/vod/disease?cid=718'\nheaders = {'user-agent' : 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.122 Safari/537.36'}\nrec = requests.get(url,headers=headers)\ncag=1\n#print(rec.text)\nsoup = BeautifulSoup(rec.text, 'html.parser')\nfilmitem = soup.find('ul',class_='jb-list')\n#print(filmitem[cag])\nfilmitem = filmitem.find_all('li')\nprint(len(filmitem))\nfor index in range(len(filmitem)):\n  print(filmitem[index].a['title'])\n  print('https://www.mvyxws.com'+filmitem[index].a['href'])\n\n  \n\n  #取出mp4\nimport re\nimport json \nimport requests\nfrom bs4 import BeautifulSoup\n\nurl = 'https://www.mvyxws.com/vod/play/id/12279'\nheaders = {'user-agent' : 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.122 Safari/537.36'}\nrec = requests.get(url,headers=headers)\n#print(rec.text)\nrect = rec.text\nstr1 = rect.find('fileID:')\nstr2 = rect.find('appID:')\nstr3 = rect.find('player.currentTime(0);')\nfileid = re.search(r'\\d+',rect[str1:str2]).group()\nappid = re.search(r'\\d+',rect[str2:str3]).group()\nrec = requests.get('https://playvideo.qcloud.com/getplayinfo/v2/' + appid + '/' + fileid,headers=headers)\nj = json.loads(rec.text)\nprint()\nfor index in range(len(j['videoInfo']['transcodeList']) - 1):\n  num = len(j['videoInfo']['transcodeList'])\n  print(j['videoInfo']['transcodeList'][num - index - 1]['height'])\n  print(j['videoInfo']['transcodeList'][num - index - 1]['url'])"
  },
  {
    "path": "step1/国土公开课.py",
    "content": "#视频列表\nimport json \nimport requests\nfrom bs4 import BeautifulSoup\n\nurl = 'http://open.nlc.cn/onlineedu/course/explore/search.htm?filter=subject&subjectId=1001&orderBy=latest'\nheaders = {'user-agent' : 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.122 Safari/537.36'}\nrec = requests.get(url,headers=headers)\n#print(rec.text)\nsoup = BeautifulSoup(rec.text, 'html.parser')\ncourseitem = soup.find_all('div',class_='course-item')\nfor index in range(len(courseitem)):\n  img = courseitem[index].find('img',class_='img-responsive')\n  title = courseitem[index].find('a',class_='link-dark')\n  titletext = title.text\n  titletext = titletext.strip()\n  titletext = titletext.replace('\\n', '').replace('\\r', '')\n  print(titletext)\n  print('http://open.nlc.cn' + img['src'])\n  print('http://open.nlc.cn' + title['href'])\n  print('------'*30)\n\n\n\n\n\n#多p\nimport json \nimport requests\nfrom bs4 import BeautifulSoup\n\nurl = 'http://open.nlc.cn/onlineedu/course/detail/lesson/list.htm?courseid=4916'\nheaders = {'user-agent' : 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.122 Safari/537.36'}\nrec = requests.get(url,headers=headers)\n#print(rec.text)\nsoup = BeautifulSoup(rec.text, 'html.parser')\ncourseitem = soup.find_all('li',class_='period lesson-item')\nfor index in range(len(courseitem)):\n  link = courseitem[index].find('a')\n  title = courseitem[index].find('span',class_='title')\n  print(title.text)\n  print('http://open.nlc.cn' + link['href'])\n  \n\n\n\n\n\n#video url\nimport json \nimport requests\nfrom bs4 import BeautifulSoup\n\nurl = 'http://open.nlc.cn/onlineedu/course/play.htm?id=10497'\nheaders = {'user-agent' : 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.122 Safari/537.36'}\nrec = requests.get(url,headers=headers)\n#print(rec.text)\nsoup = BeautifulSoup(rec.text, 'html.parser')\nvideolist = soup.find('div',class_='lesson-dashboard lesson-dashboard-open')\nprint()\nprint()\napi = 'http://open.nlc.cn/onlineedu/course/plugin/lesson/play.htm?lessonId=' + str(videolist['data-lesson-id']) + '&fileId=' + str(videolist['data-file-id'])\nrec = requests.get(api,headers=headers)\nj = json.loads(rec.text)\nvideourl = j['coursefile']['clarity4']\nvidnum = videourl[-6:-5]\nprint(vidnum)\nif vidnum != 2:\n  vidnum = int(vidnum) - 1\n  qxd = ['标清540p','高清720p','超清1080p']\n  for index in range(vidnum):\n    print(qxd[index])\n    print(videourl[:-6] + str(index+1) + '.mp4')\n  print('ok')\n\n\n\n\n\n"
  },
  {
    "path": "step1/新片场和场库.py",
    "content": "#视频列表\nimport json \nimport requests\nfrom bs4 import BeautifulSoup\n\nurl = 'https://www.xinpianchang.com/channel/index/id-81/sort-pick/type-/duration_type-0/resolution_type-?from=articleListPage'\nheaders = {'user-agent' : 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.122 Safari/537.36'}\nrec = requests.get(url,headers=headers)\n#print(rec.text)\nsoup = BeautifulSoup(rec.text, 'html.parser')\nfilmitem = soup.find_all('li',class_='enter-filmplay')\nfor index in range(len(filmitem)):\n  img = filmitem[index].find('img',class_='lazy-img')\n  title = filmitem[index].find('p',class_='fs_14 fw_600 c_b_3 line-hide-1')\n  print(img['_src'])\n  print(title.text)\n  print(filmitem[index]['data-articleid'])\n\n\n\n\n\n#获取视频mp4\nimport json \nimport requests\nimport re\nfrom bs4 import BeautifulSoup\n\nurl = 'https://www.xinpianchang.com/a10696100'\nheaders = {'user-agent' : 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.122 Safari/537.36'}\nrec = requests.get(url,headers=headers)\n#print(rec.text)\nrectext = rec.text\nstr1 = rectext.find('vid: \"')\nstr2 = rectext[str1:str1+30].find('\",')\nvid = rectext[str1+6:str1+str2]\napi = 'https://openapi-vtom.vmovier.com/v3/video/' + vid + '?expand=resource&usage=xpc_web'\nrec = requests.get(api,headers=headers)\nj = json.loads(rec.text)\nfor index in range(len(j['data']['resource']['progressive'])):\n  print(j['data']['resource']['progressive'][index]['profile'])\n  print('http' + j['data']['resource']['progressive'][index]['url'][5:])\n\n\n\n\n\n#场库分类\nimport json \nimport requests\nfrom bs4 import BeautifulSoup\n\nurl = 'https://www.vmovier.com/channel/idea'\nheaders = {'user-agent' : 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.122 Safari/537.36'}\nrec = requests.get(url,headers=headers)\n#print(rec.text)\nsoup = BeautifulSoup(rec.text, 'html.parser')\nfilmitem = soup.find('ul',class_='search-works-list clearfix')\nfilmitem = filmitem.find_all('li')\nprint(len(filmitem))\nfor index in range(len(filmitem)):\n  print(filmitem[index].img['alt'])\n  print(filmitem[index].img['src'])\n  print('https://www.vmovier.com' + filmitem[index].a['href'])\n\n\n\n\n\n\n  #场库首页和排行榜\nimport json \nimport requests\nfrom bs4 import BeautifulSoup\n\nurl = 'https://www.vmovier.com/stars#rotate-nav'\nheaders = {'user-agent' : 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.122 Safari/537.36'}\nrec = requests.get(url,headers=headers)\n#print(rec.text)\nsoup = BeautifulSoup(rec.text, 'html.parser')\nfilmitem = soup.find('ul',class_='index-list clearfix')\nfilmitem = filmitem.find_all('li')\nprint(len(filmitem))\nfor index in range(len(filmitem)):\n  print(filmitem[index].img['alt'])\n  print(filmitem[index].img['src'])\n  print('https://www.vmovier.com' + filmitem[index].a['href'])\n\n\n\n\n\n\n\n  #场库每日推荐(有报错)\nimport json \nimport requests\nfrom bs4 import BeautifulSoup\n\nurl = 'https://www.vmovier.com/'\nheaders = {'user-agent' : 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.122 Safari/537.36'}\nrec = requests.get(url,headers=headers)\n#print(rec.text)\nsoup = BeautifulSoup(rec.text, 'html.parser')\nfilmitem = soup.find('ul',class_='rotate')\nfilmitem = filmitem.find_all('li')\nprint(len(filmitem))\nfor index in range(len(filmitem)):\n  if filmitem[index].img['alt'] != '':\n\n    print(filmitem[index].img['alt'])\n    print(filmitem[index].img['src'])\n    print(filmitem[index].a['href'])\n  "
  }
]