From 4b953b68ecd9c34b9bfed90fbe5feee0330b7543 Mon Sep 17 00:00:00 2001 From: Benny Date: Mon, 13 Feb 2023 19:41:57 +0100 Subject: [PATCH] add ci and one test case --- .../workflows/{builder.yaml => docker.yaml} | 38 +- .../{onekey.yaml => golang-onekey.yaml} | 2 +- ...ormal_upgrade.yaml => normal-upgrade.yaml} | 0 .github/workflows/{ci.yml => pr.yml} | 42 +- .github/workflows/rapid_upgrade.yaml | 36 - Makefile | 6 + assets/ci.gz | Bin 0 -> 46745 bytes requirements.txt | 4 +- scripts/dev_robots.sh | 4 +- yyetsweb/database.py | 9 +- yyetsweb/templates/js/sample.json | 1871 ++++++++--------- yyetsweb/tests/router_test.py | 28 + 12 files changed, 1041 insertions(+), 999 deletions(-) rename .github/workflows/{builder.yaml => docker.yaml} (67%) rename .github/workflows/{onekey.yaml => golang-onekey.yaml} (95%) rename .github/workflows/{normal_upgrade.yaml => normal-upgrade.yaml} (100%) rename .github/workflows/{ci.yml => pr.yml} (67%) delete mode 100644 .github/workflows/rapid_upgrade.yaml create mode 100644 assets/ci.gz create mode 100644 yyetsweb/tests/router_test.py diff --git a/.github/workflows/builder.yaml b/.github/workflows/docker.yaml similarity index 67% rename from .github/workflows/builder.yaml rename to .github/workflows/docker.yaml index a5d40cb..2d621c3 100644 --- a/.github/workflows/builder.yaml +++ b/.github/workflows/docker.yaml @@ -1,8 +1,12 @@ -name: build docker image +name: Build and push docker image on: push: branches: - 'master' + paths-ignore: + - '**.md' + - '**.yml' + - 'LICENSE' jobs: docker: @@ -64,7 +68,35 @@ jobs: with: string: ${{ github.event.repository.full_name }} - - name: Build and push + - name: Start MongoDB + uses: supercharge/mongodb-github-action@1.8.0 + with: + mongodb-version: "6.0" + + - name: Build CI docker images + uses: docker/build-push-action@v2 + with: + context: . + # due to the limitation of docker, we can only save one platform at a time. + # for CI purposes, we only need to save amd64 and then build multi-arch later + platforms: linux/amd64 + load: true + tags: | + ${{ steps.dh_string.outputs.lowercase }} + build-args: | + env=dev + cache-from: type=local,src=/tmp/.buildx-cache + cache-to: type=local,dest=/tmp/.buildx-cache-new,mode=max + + - name: Restore database and run tests + run: | + sudo apt update && sudo apt install -y wget + wget -q https://fastdl.mongodb.org/tools/db/mongodb-database-tools-ubuntu2204-x86_64-100.6.1.deb + sudo dpkg -i mongodb-database-tools-ubuntu2204-x86_64-100.6.1.deb + mongorestore --gzip --archive=assets/ci.gz + make ci-test + + - name: Build and push docker images uses: docker/build-push-action@v2 with: context: . @@ -86,4 +118,4 @@ jobs: TOKEN: ${{ secrets.BOT_TOKEN }} run: | curl "https://api.telegram.org/bot$TOKEN/sendMessage?chat_id=260260121&text=Normal%20Build%20complete!" - echo "Build complete!" + echo "YYeTsBot Build complete!" diff --git a/.github/workflows/onekey.yaml b/.github/workflows/golang-onekey.yaml similarity index 95% rename from .github/workflows/onekey.yaml rename to .github/workflows/golang-onekey.yaml index 022db4b..eefcff3 100644 --- a/.github/workflows/onekey.yaml +++ b/.github/workflows/golang-onekey.yaml @@ -1,4 +1,4 @@ -name: publish release +name: Publish golang one key release on: push: tags: diff --git a/.github/workflows/normal_upgrade.yaml b/.github/workflows/normal-upgrade.yaml similarity index 100% rename from .github/workflows/normal_upgrade.yaml rename to .github/workflows/normal-upgrade.yaml diff --git a/.github/workflows/ci.yml b/.github/workflows/pr.yml similarity index 67% rename from .github/workflows/ci.yml rename to .github/workflows/pr.yml index 9a08ae1..92ef1c8 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/pr.yml @@ -1,4 +1,4 @@ -name: CI Test +name: Pull Request CI test on: pull_request: @@ -6,22 +6,21 @@ on: - master paths-ignore: - '**.md' + - '**.yml' + - 'LICENSE' + jobs: ci: - name: Build Image Test runs-on: ubuntu-latest steps: - - uses: actions/checkout@v3 - - - name: Lower case for ghcr - id: ghcr_string - uses: ASzc/change-string-case-action@v1 + - name: Checkout + uses: actions/checkout@v2 with: - string: ${{ github.event.repository.full_name }} + submodules: true - name: Set up Docker Buildx uses: docker/setup-buildx-action@v1 - + - name: Cache Docker layers uses: actions/cache@v2 with: @@ -37,7 +36,7 @@ jobs: platforms: linux/amd64 load: true tags: | - ghcr.io/${{ steps.ghcr_string.outputs.lowercase }} + yyetsbot:latest cache-from: type=local,src=/tmp/.buildx-cache cache-to: type=local,dest=/tmp/.buildx-cache-new @@ -46,25 +45,38 @@ jobs: rm -rf /tmp/.buildx-cache mv /tmp/.buildx-cache-new /tmp/.buildx-cache + - name: Start MongoDB + uses: supercharge/mongodb-github-action@1.8.0 + with: + mongodb-version: "6.0" + + - name: Restore database and run tests + run: | + sudo apt update && sudo apt install -y wget + wget -q https://fastdl.mongodb.org/tools/db/mongodb-database-tools-ubuntu2204-x86_64-100.6.1.deb + sudo dpkg -i mongodb-database-tools-ubuntu2204-x86_64-100.6.1.deb + mongorestore --gzip --archive=assets/ci.gz + make ci-test + - name: Install trivy run: | wget -qO - https://aquasecurity.github.io/trivy-repo/deb/public.key | sudo apt-key add - echo deb https://aquasecurity.github.io/trivy-repo/deb $(lsb_release -sc) main | sudo tee -a /etc/apt/sources.list.d/trivy.list sudo apt-get update sudo apt-get install trivy -y - + - name: Scan for CVE uses: mathiasvr/command-output@v1 id: trivy with: run: | - trivy image --no-progress --severity "HIGH,CRITICAL" ghcr.io/${{ steps.ghcr_string.outputs.lowercase }} - - - name: Comment CVE PR + trivy image --no-progress --severity "HIGH,CRITICAL" yyetsbot:latest + + - name: Comment on CVE PR uses: thollander/actions-comment-pull-request@v1 with: message: | ``` ${{ steps.trivy.outputs.stdout }} ``` - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} \ No newline at end of file + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} diff --git a/.github/workflows/rapid_upgrade.yaml b/.github/workflows/rapid_upgrade.yaml deleted file mode 100644 index 72d2ec6..0000000 --- a/.github/workflows/rapid_upgrade.yaml +++ /dev/null @@ -1,36 +0,0 @@ -name: Rapid upgrade -on: - issues: - types: - - opened - - reopened - -jobs: - build: - runs-on: ubuntu-latest - steps: - - name: emergency update from ssh - if: github.event.issue.labels[0].name == 'upgrade' - uses: appleboy/ssh-action@master - env: - TOKEN: ${{ secrets.BOT_TOKEN }} - with: - envs: TOKEN - host: ${{ secrets.PROD_HOST }} - username: ${{ secrets.PROD_USERNAME }} - key: ${{ secrets.SSH_KEY }} - command_timeout: 30m - script: | - docker save bennythink/yyetsbot > /root/yyetsbot-old.tar - cd /root/YYeTsBot - make prod - docker-compose -f /home/WebsiteRunner/docker-compose.yml up -d - docker-compose -f /home/BotsRunner/docker-compose.yml up -d - curl "https://api.telegram.org/bot$TOKEN/sendMessage?chat_id=260260121&text=Rapid%20upgrade%20complete!" - echo "Rapid upgrade complete!" - - - name: Close Issue - if: github.event.issue.labels[0].name == 'upgrade' - uses: peter-evans/close-issue@v1 - with: - comment: Upgrade complete. Close this issue. diff --git a/Makefile b/Makefile index 5ee5a8e..7d90b7a 100644 --- a/Makefile +++ b/Makefile @@ -83,3 +83,9 @@ universal: release: git tag $(shell git rev-parse --short HEAD) git push --tags + +ci-test: + docker run --rm bennythink/yyetsbot /bin/sh -c "cd /YYeTsBot/yyetsweb/tests;python -m unittest discover -p '*_test.py'" + +test: + cd $(WEB)/tests;python -m unittest discover -p '*_test.py' diff --git a/assets/ci.gz b/assets/ci.gz new file mode 100644 index 0000000000000000000000000000000000000000..8649c622817d64077c5036bfe65e343883ef705a GIT binary patch literal 46745 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 /build/build/robots.txt +cat << EOF > /YYeTsBot/YYeTsFE/build/robots.txt User-agent: * Disallow: / -EOF \ No newline at end of file +EOF diff --git a/yyetsweb/database.py b/yyetsweb/database.py index 69b257c..e19019f 100644 --- a/yyetsweb/database.py +++ b/yyetsweb/database.py @@ -14,7 +14,6 @@ import os import random import re import string -import sys import fakeredis import redis @@ -26,11 +25,13 @@ predefined_str = re.sub(r"[1l0oOI]", "", string.ascii_letters + string.digits) class Redis: def __init__(self): - if getattr(sys, '_MEIPASS', None): + self.r = redis.StrictRedis(host=os.getenv("redis") or "localhost", decode_responses=True) + try: + self.r.ping() + except redis.exceptions.ConnectionError: + # we can't connect to redis, either generated by pyinstaller(_MEIPASS), or forget to run it. logging.info("%s Disable redis for standalone exe! %s", "#" * 10, "#" * 10) self.r = fakeredis.FakeStrictRedis() - else: - self.r = redis.StrictRedis(host=os.getenv("redis") or "localhost", decode_responses=True) def __del__(self): self.r.close() diff --git a/yyetsweb/templates/js/sample.json b/yyetsweb/templates/js/sample.json index 664e3ee..56996e0 100644 --- a/yyetsweb/templates/js/sample.json +++ b/yyetsweb/templates/js/sample.json @@ -1,938 +1,937 @@ { - "status": 1, - "info": "OK", - "data": { - "info": { - "id": 34812, - "cnname": "逃避可耻却有用", - "enname": "NIGERUHA HAJIDAGA YAKUNITATSU", - "aliasname": "逃避虽可耻但有用 / 雇佣妻子(港) / 月薪娇妻(台) / 逃跑是可耻但是有用 / 逃避虽可耻但很有用 / 逃避可耻但有用", - "channel": "tv", - "channel_cn": "日剧", - "area": "日本", - "show_type": "", - "expire": "1610399344", - "views": 1200, - "year": [ - 2016, - 2017, - 2021 - ] - }, - "list": [ - { - "season_num": "101", - "season_cn": "单剧", - "items": { - "APP": [ - { - "itemid": "554385", - "episode": "12", - "name": "yyets://N=逃避可耻却有用 人类加油!新春特别篇!!.NIGERUHA.HAJIDAGA.YAKUNITATSU.Ganbare.Jinrui.Shinshun.Special.SP.Chi_Jap.HDTVrip.1280X720.mp4|S=1505489064|H=b7aae378e30689eab20125e3bff3bac1d16a043e|", - "size": "", - "yyets_trans": 0, - "dateline": "1609622857", - "files": [ - { - "way": "102", - "way_cn": "百度云", - "address": "https://pan.baidu.com/s/149tnE0DWW68jU5nMbdFH3w", - "passwd": "x28a" - }, - { - "way": "115", - "way_cn": "微云", - "address": "https://share.weiyun.com/Y2ooLgRe", - "passwd": "" - } - ] - }, - { - "itemid": "298235", - "episode": "11", - "name": "yyets://N=逃避可耻却有用.NIGERUHA.HAJIDAGA.YAKUNITATSU.Ep11.Final.Chi_Jap.HDTVrip.1280X720-ZhuixinFan.mp4|S=733784950|H=c464b9e32a999b417324b53cd92d2fbfa89b597a|", - "size": "", - "yyets_trans": 0, - "dateline": "1491891741", - "files": null - }, - { - "itemid": "298234", - "episode": "10", - "name": "yyets://N=逃避可耻却有用.NIGERUHA.HAJIDAGA.YAKUNITATSU.Ep10.Chi_Jap.HDTVrip.1280X720-ZhuixinFan.mp4|S=733930391|H=3c572ede5b41a2368d0f64071ea733592876344a|", - "size": "", - "yyets_trans": 0, - "dateline": "1491891741", - "files": null - }, - { - "itemid": "298233", - "episode": "9", - "name": "yyets://N=逃避可耻却有用.NIGERUHA.HAJIDAGA.YAKUNITATSU.Ep09.Chi_Jap.HDTVrip.1280X720-ZhuixinFan.mp4|S=629132305|H=129e9e73d44ccf575afc70eecdd171732fc89329|", - "size": "", - "yyets_trans": 0, - "dateline": "1491891741", - "files": null - }, - { - "itemid": "298232", - "episode": "8", - "name": "yyets://N=逃避可耻却有用.NIGERUHA.HAJIDAGA.YAKUNITATSU.Ep08.Chi_Jap.HDTVrip.1280X720-ZhuixinFan.mp4|S=629207765|H=47e4573d0d72fa7d2394a377f467d0b352fce08f|", - "size": "", - "yyets_trans": 0, - "dateline": "1491891741", - "files": null - }, - { - "itemid": "298231", - "episode": "7", - "name": "yyets://N=逃避可耻却有用.NIGERUHA.HAJIDAGA.YAKUNITATSU.Ep07.Chi_Jap.HDTVrip.1280X720-ZhuixinFan.mp4|S=629119647|H=bb2ff32f008d3d2e58371f34b83292ddde7b51e8|", - "size": "", - "yyets_trans": 0, - "dateline": "1491891741", - "files": null - }, - { - "itemid": "298230", - "episode": "6", - "name": "yyets://N=逃避可耻却有用.NIGERUHA.HAJIDAGA.YAKUNITATSU.Ep06.Chi_Jap.HDTVrip.1280X720-ZhuixinFan.mp4|S=629239487|H=83f72df4cd440c22c8c5ab94b559773eb472c46d|", - "size": "", - "yyets_trans": 0, - "dateline": "1491891741", - "files": null - }, - { - "itemid": "298229", - "episode": "5", - "name": "yyets://N=逃避可耻却有用.NIGERUHA.HAJIDAGA.YAKUNITATSU.Ep05.Chi_Jap.HDTVrip.1280X720-ZhuixinFan.mp4|S=629262958|H=30bb5f65bff74ebe60d848edd4748b3c3e7e76c7|", - "size": "", - "yyets_trans": 0, - "dateline": "1491891741", - "files": null - }, - { - "itemid": "298228", - "episode": "4", - "name": "yyets://N=逃避可耻却有用.NIGERUHA.HAJIDAGA.YAKUNITATSU.Ep04.Chi_Jap.HDTVrip.1280X720-ZhuixinFan.mp4|S=629037391|H=3274e38c1ba20493a0bf62d4f7c65bec651dc3d2|", - "size": "", - "yyets_trans": 0, - "dateline": "1491891741", - "files": null - }, - { - "itemid": "298227", - "episode": "3", - "name": "yyets://N=逃避可耻却有用.NIGERUHA.HAJIDAGA.YAKUNITATSU.Ep03.Chi_Jap.HDTVrip.1280X720-ZhuixinFan.mp4|S=628416378|H=9ac2a719d66b3626011c2d3366367a9d56c20e26|", - "size": "", - "yyets_trans": 0, - "dateline": "1491891741", - "files": null - }, - { - "itemid": "298226", - "episode": "2", - "name": "yyets://N=逃避可耻却有用.NIGERUHA.HAJIDAGA.YAKUNITATSU.Ep02.Chi_Jap.HDTVrip.1280X720-ZhuixinFan.mp4|S=629086728|H=d21a081cc6a32daa85310ca6aad81e378f0b736e|", - "size": "", - "yyets_trans": 0, - "dateline": "1491891741", - "files": null - }, - { - "itemid": "298225", - "episode": "1", - "name": "yyets://N=逃避可耻却有用.NIGERUHA.HAJIDAGA.YAKUNITATSU.Ep01.Chi_Jap.HDTVrip.1280X720-ZhuixinFanV2.mp4|S=733967923|H=fa1a42ee8066da0aa2b66ca470814489160ad214|", - "size": "", - "yyets_trans": 0, - "dateline": "1491891741", - "files": null - } - ], - "HR-HDTV": [ - { - "itemid": "554384", - "episode": "12", - "name": "逃避可耻却有用 人类加油!新春特别篇!!.NIGERUHA.HAJIDAGA.YAKUNITATSU.Ganbare.Jinrui.Shinshun.Special.SP.Chi_Jap.HDTVrip.1280X720.mp4", - "size": "1.4GB", - "yyets_trans": 0, - "dateline": "1609622857", - "files": [ - { - "way": "2", - "way_cn": "磁力", - "address": "magnet:?xt=urn:btih:4a6be139e640db770dbe266471e5cc81357c205e&tr=http://tr.cili001.com:8070/announce&tr=udp://p4p.arenabg.com:1337&tr=udp://tracker.opentrackr.org:1337/announce&tr=udp://open.demonii.com:1337", - "passwd": "" - }, - { - "way": "9", - "way_cn": "网盘", - "address": "https://pan.baidu.com/s/149tnE0DWW68jU5nMbdFH3w", - "passwd": "x28a" - } - ] - }, - { - "itemid": "284973", - "episode": "11", - "name": "逃避可耻却有用.NIGERUHA.HAJIDAGA.YAKUNITATSU.Ep11.Final.Chi_Jap.HDTVrip.1280X720-ZhuixinFan.mp4", - "size": "699.79MB", - "yyets_trans": 0, - "dateline": "1482282868", - "files": [ - { - "way": "1", - "way_cn": "电驴", - "address": "ed2k://|file|%E9%80%83%E9%81%BF%E5%8F%AF%E8%80%BB%E5%8D%B4%E6%9C%89%E7%94%A8.NIGERUHA.HAJIDAGA.YAKUNITATSU.Ep11.Final.Chi_Jap.HDTVrip.1280X720-ZhuixinFan.mp4|733784950|51a18ead729a833f58264700b963113a|h=ncojnutlufhohfrl42xr7t2m6lqdwzjf|/", - "passwd": "" - }, - { - "way": "2", - "way_cn": "磁力", - "address": "magnet:?xt=urn:btih:78930bae5efe391ee6bcc4c7dcfa237b05a493f0&tr=http://tracker.openbittorrent.com/announce&tr=udp://tracker.openbittorrent.com:80/announce&tr=udp://tr.cili001.com:6666/announce&tr=http://tracker.publicbt.com/announce&tr=udp://open.demonii.com:1337&tr=udp://tracker.opentrackr.org:1337/announce&tr=http://tr.cili001.com:6666/announce", - "passwd": "" - }, - { - "way": "9", - "way_cn": "网盘", - "address": "http://pan.baidu.com/s/1jHAM8aq", - "passwd": "" - } - ] - }, - { - "itemid": "284430", - "episode": "10", - "name": "逃避可耻却有用.NIGERUHA.HAJIDAGA.YAKUNITATSU.Ep10.Chi_Jap.HDTVrip.1280X720-ZhuixinFan.mp4", - "size": "699.93MB", - "yyets_trans": 0, - "dateline": "1481704074", - "files": [ - { - "way": "1", - "way_cn": "电驴", - "address": "ed2k://|file|%E9%80%83%E9%81%BF%E5%8F%AF%E8%80%BB%E5%8D%B4%E6%9C%89%E7%94%A8.NIGERUHA.HAJIDAGA.YAKUNITATSU.Ep10.Chi_Jap.HDTVrip.1280X720-ZhuixinFan.mp4|733930391|15b6440bdd991d04a7ff6ba9d22e07d6|h=aodlfl4jgt7paj6v4vbolfjeho5d744t|/", - "passwd": "" - }, - { - "way": "2", - "way_cn": "磁力", - "address": "magnet:?xt=urn:btih:1e50cd628d6829127534e5b9411d505efaea98f8&tr=http://tracker.openbittorrent.com/announce&tr=udp://tracker.openbittorrent.com:80/announce&tr=udp://tr.cili001.com:6666/announce&tr=http://tracker.publicbt.com/announce&tr=udp://open.demonii.com:1337&tr=udp://tracker.opentrackr.org:1337/announce&tr=http://tr.cili001.com:6666/announce", - "passwd": "" - }, - { - "way": "9", - "way_cn": "网盘", - "address": "http://pan.baidu.com/s/1nvPP4db", - "passwd": "" - }, - { - "way": "12", - "way_cn": "诚通网盘", - "address": "http://ZiMuZuUSTV.ctfile.com/fs/DFw163629975", - "passwd": "" - } - ] - }, - { - "itemid": "283661", - "episode": "9", - "name": "逃避可耻却有用.NIGERUHA.HAJIDAGA.YAKUNITATSU.Ep09.Chi_Jap.HDTVrip.1280X720-ZhuixinFan.mp4", - "size": "599.99MB", - "yyets_trans": 0, - "dateline": "1481098725", - "files": [ - { - "way": "1", - "way_cn": "电驴", - "address": "ed2k://|file|%E9%80%83%E9%81%BF%E5%8F%AF%E8%80%BB%E5%8D%B4%E6%9C%89%E7%94%A8.NIGERUHA.HAJIDAGA.YAKUNITATSU.Ep09.Chi_Jap.HDTVrip.1280X720-ZhuixinFan.mp4|629132305|9d5152f4f21f1a1bf053ce33abd41ad5|h=mwd7hctmq5ziym7ugc2vptn6ieazici3|/", - "passwd": "" - }, - { - "way": "2", - "way_cn": "磁力", - "address": "magnet:?xt=urn:btih:7d047723d5697c68361b05eb20da1c50d224425e&tr=http://tracker.openbittorrent.com/announce&tr=udp://tracker.openbittorrent.com:80/announce&tr=udp://tr.cili001.com:6666/announce&tr=http://tracker.publicbt.com/announce&tr=udp://open.demonii.com:1337&tr=udp://tracker.opentrackr.org:1337/announce&tr=http://tr.cili001.com:6666/announce", - "passwd": "" - }, - { - "way": "9", - "way_cn": "网盘", - "address": "http://pan.baidu.com/s/1nu9tJM5", - "passwd": "" - }, - { - "way": "12", - "way_cn": "诚通网盘", - "address": "http://ZiMuZuUSTV.ctfile.com/fs/9K9162939027", - "passwd": "" - } - ] - }, - { - "itemid": "282897", - "episode": "8", - "name": "逃避可耻却有用.NIGERUHA.HAJIDAGA.YAKUNITATSU.Ep08.Chi_Jap.HDTVrip.1280X720-ZhuixinFan.mp4", - "size": "600.06MB", - "yyets_trans": 0, - "dateline": "1480497463", - "files": [ - { - "way": "1", - "way_cn": "电驴", - "address": "ed2k://|file|%E9%80%83%E9%81%BF%E5%8F%AF%E8%80%BB%E5%8D%B4%E6%9C%89%E7%94%A8.NIGERUHA.HAJIDAGA.YAKUNITATSU.Ep08.Chi_Jap.HDTVrip.1280X720-ZhuixinFan.mp4|629207765|1ba73a37879514eabd5ab2adf938be40|h=scdffp3xfc4e36fdhslh5p3sr76oh5a6|/", - "passwd": "" - }, - { - "way": "2", - "way_cn": "磁力", - "address": "magnet:?xt=urn:btih:3ac5f75b4ad9e59f1a9752067eaa8ed9117a0931&tr.1=http://tracker.openbittorrent.com/announce&tr.2=udp://tracker.openbittorrent.com:80/announce&tr.3=udp://tr.cili001.com:6666/announce&tr.4=http://tracker.publicbt.com/announce&tr.5=udp://open.demonii.com:1337&tr.6=udp://tracker.opentrackr.org:1337/announce&tr.7=http://tr.cili001.com:6666/announce", - "passwd": "" - }, - { - "way": "9", - "way_cn": "网盘", - "address": "http://pan.baidu.com/s/1kUGjaMb", - "passwd": "" - }, - { - "way": "12", - "way_cn": "诚通网盘", - "address": "http://ZiMuZuUSTV.ctfile.com/fs/Ula162377565", - "passwd": "" - } - ] - }, - { - "itemid": "282123", - "episode": "7", - "name": "逃避可耻却有用.NIGERUHA.HAJIDAGA.YAKUNITATSU.Ep07.Chi_Jap.HDTVrip.1280X720-ZhuixinFan.mp4", - "size": "599.98MB", - "yyets_trans": 0, - "dateline": "1479886413", - "files": [ - { - "way": "1", - "way_cn": "电驴", - "address": "ed2k://|file|%E9%80%83%E9%81%BF%E5%8F%AF%E8%80%BB%E5%8D%B4%E6%9C%89%E7%94%A8.NIGERUHA.HAJIDAGA.YAKUNITATSU.Ep07.Chi_Jap.HDTVrip.1280X720-ZhuixinFan.mp4|629119647|1565719ed7d08c10a7bac9a740e3bdda|h=5pho2gfiivlv3rkhrh7q4dvsietozz5r|/", - "passwd": "" - }, - { - "way": "2", - "way_cn": "磁力", - "address": "magnet:?xt=urn:btih:b8283af2cdca0b1b751f716423611e4795fbee77&tr.1=http://tracker.openbittorrent.com/announce&tr.2=udp://tracker.openbittorrent.com:80/announce&tr.3=udp://tr.cili001.com:6666/announce&tr.4=http://tracker.publicbt.com/announce&tr.5=udp://open.demonii.com:1337&tr.6=udp://tracker.opentrackr.org:1337/announce&tr.7=http://tr.cili001.com:6666/announce", - "passwd": "" - }, - { - "way": "9", - "way_cn": "网盘", - "address": "http://pan.baidu.com/s/1qYfaU3E", - "passwd": "" - }, - { - "way": "12", - "way_cn": "诚通网盘", - "address": "http://ZiMuZuUSTV.ctfile.com/fs/AtK161811663", - "passwd": "" - } - ] - }, - { - "itemid": "281371", - "episode": "6", - "name": "逃避可耻却有用.NIGERUHA.HAJIDAGA.YAKUNITATSU.Ep06.Chi_Jap.HDTVrip.1280X720-ZhuixinFan.mp4", - "size": "600.09MB", - "yyets_trans": 0, - "dateline": "1479281049", - "files": [ - { - "way": "1", - "way_cn": "电驴", - "address": "ed2k://|file|%E9%80%83%E9%81%BF%E5%8F%AF%E8%80%BB%E5%8D%B4%E6%9C%89%E7%94%A8.NIGERUHA.HAJIDAGA.YAKUNITATSU.Ep06.Chi_Jap.HDTVrip.1280X720-ZhuixinFan.mp4|629239487|9fc21b8ce21f0699f035404ad4baae6a|h=4yse343oq7vymc4qe6qtjyge2yfukf7q|/", - "passwd": "" - }, - { - "way": "2", - "way_cn": "磁力", - "address": "magnet:?xt=urn:btih:0186d5447834e8051af6551faa4cfde44476aff5&tr.1=http://tracker.openbittorrent.com/announce&tr.2=udp://tracker.openbittorrent.com:80/announce&tr.3=udp://tr.cili001.com:6666/announce&tr.4=http://tracker.publicbt.com/announce&tr.5=udp://open.demonii.com:1337&tr.6=udp://tracker.opentrackr.org:1337/announce&tr.7=http://tr.cili001.com:6666/announce", - "passwd": "" - }, - { - "way": "9", - "way_cn": "网盘", - "address": "http://pan.baidu.com/s/1slzXo3z", - "passwd": "" - }, - { - "way": "12", - "way_cn": "诚通网盘", - "address": "http://ZiMuZuUSTV.ctfile.com/fs/4ia161194698", - "passwd": "" - } - ] - }, - { - "itemid": "280656", - "episode": "5", - "name": "逃避可耻却有用.NIGERUHA.HAJIDAGA.YAKUNITATSU.Ep05.Chi_Jap.HDTVrip.1280X720-ZhuixinFan.mp4", - "size": "600.11MB", - "yyets_trans": 0, - "dateline": "1478670362", - "files": [ - { - "way": "1", - "way_cn": "电驴", - "address": "ed2k://|file|%E9%80%83%E9%81%BF%E5%8F%AF%E8%80%BB%E5%8D%B4%E6%9C%89%E7%94%A8.NIGERUHA.HAJIDAGA.YAKUNITATSU.Ep05.Chi_Jap.HDTVrip.1280X720-ZhuixinFan.mp4|629262958|ba41b35dcfec2716f90ab664048f7e09|h=yrdanlqzxpqrsldgoi5aobjqhldxm6vq|/", - "passwd": "" - }, - { - "way": "2", - "way_cn": "磁力", - "address": "magnet:?xt=urn:btih:f52c3ba04703cd4298e7a6a09ee87f520f700f7b&tr.1=http://tracker.openbittorrent.com/announce&tr.2=udp://tracker.openbittorrent.com:80/announce&tr.3=udp://tr.cili001.com:6666/announce&tr.4=http://tracker.publicbt.com/announce&tr.5=udp://open.demonii.com:1337&tr.6=udp://tracker.opentrackr.org:1337/announce&tr.7=http://tr.cili001.com:6666/announce", - "passwd": "" - }, - { - "way": "9", - "way_cn": "网盘", - "address": "http://pan.baidu.com/s/1c1Rl1BU", - "passwd": "" - }, - { - "way": "12", - "way_cn": "诚通网盘", - "address": "http://ZiMuZuUSTV.ctfile.com/fs/fMW160612929", - "passwd": "" - } - ] - }, - { - "itemid": "280068", - "episode": "4", - "name": "逃避可耻却有用.NIGERUHA.HAJIDAGA.YAKUNITATSU.Ep04.Chi_Jap.HDTVrip.1280X720-ZhuixinFan.mp4", - "size": "599.9MB", - "yyets_trans": 0, - "dateline": "1478065113", - "files": [ - { - "way": "1", - "way_cn": "电驴", - "address": "ed2k://|file|%E9%80%83%E9%81%BF%E5%8F%AF%E8%80%BB%E5%8D%B4%E6%9C%89%E7%94%A8.NIGERUHA.HAJIDAGA.YAKUNITATSU.Ep04.Chi_Jap.HDTVrip.1280X720-ZhuixinFan.mp4|629037391|07d320c3db4ad737e398cc7ba08c5216|h=yzfnqwlsvw2yloobhvkjf6yil6gc5kag|/", - "passwd": "" - }, - { - "way": "2", - "way_cn": "磁力", - "address": "magnet:?xt=urn:btih:46ec914334a77f968d1c789b2f4a9fee8648435a&tr.1=http://tracker.openbittorrent.com/announce&tr.2=udp://tracker.openbittorrent.com:80/announce&tr.3=udp://tr.cili001.com:6666/announce&tr.4=http://tracker.publicbt.com/announce&tr.5=udp://open.demonii.com:1337&tr.6=udp://tracker.opentrackr.org:1337/announce&tr.7=http://tr.cili001.com:6666/announce", - "passwd": "" - }, - { - "way": "9", - "way_cn": "网盘", - "address": "http://pan.baidu.com/s/1pKED1gv", - "passwd": "" - }, - { - "way": "12", - "way_cn": "诚通网盘", - "address": "http://ZiMuZuUSTV.ctfile.com/fs/cOt160028088", - "passwd": "" - } - ] - }, - { - "itemid": "279384", - "episode": "3", - "name": "逃避可耻却有用.NIGERUHA.HAJIDAGA.YAKUNITATSU.Ep03.Chi_Jap.HDTVrip.1280X720-ZhuixinFan.mp4", - "size": "599.3MB", - "yyets_trans": 0, - "dateline": "1477483732", - "files": [ - { - "way": "1", - "way_cn": "电驴", - "address": "ed2k://|file|%E9%80%83%E9%81%BF%E5%8F%AF%E8%80%BB%E5%8D%B4%E6%9C%89%E7%94%A8.NIGERUHA.HAJIDAGA.YAKUNITATSU.Ep03.Chi_Jap.HDTVrip.1280X720-ZhuixinFan.mp4|628416378|8fdc3bd1714d5dab282f5e0f7cdf25be|h=on5tdwesk4maldu4txop3eutgihi2yyu|/", - "passwd": "" - }, - { - "way": "2", - "way_cn": "磁力", - "address": "magnet:?xt=urn:btih:157d2fc48b9efbe8f846643652a7c2f3d7f14989&tr.1=http://tracker.openbittorrent.com/announce&tr.2=udp://tracker.openbittorrent.com:80/announce&tr.3=udp://tr.cili001.com:6666/announce&tr.4=http://tracker.publicbt.com/announce&tr.5=udp://open.demonii.com:1337&tr.6=udp://tracker.opentrackr.org:1337/announce&tr.7=http://tr.cili001.com:6666/announce", - "passwd": "" - }, - { - "way": "9", - "way_cn": "网盘", - "address": "http://pan.baidu.com/s/1ge3yfL5", - "passwd": "" - }, - { - "way": "12", - "way_cn": "诚通网盘", - "address": "http://ZiMuZuUSTV.ctfile.com/fs/Ov3159483996", - "passwd": "" - } - ] - }, - { - "itemid": "278649", - "episode": "2", - "name": "逃避可耻却有用.NIGERUHA.HAJIDAGA.YAKUNITATSU.Ep02.Chi_Jap.HDTVrip.1280X720-ZhuixinFan.mp4", - "size": "599.94MB", - "yyets_trans": 0, - "dateline": "1476868310", - "files": [ - { - "way": "1", - "way_cn": "电驴", - "address": "ed2k://|file|%E9%80%83%E9%81%BF%E5%8F%AF%E8%80%BB%E5%8D%B4%E6%9C%89%E7%94%A8.NIGERUHA.HAJIDAGA.YAKUNITATSU.Ep02.Chi_Jap.HDTVrip.1280X720-ZhuixinFan.mp4|629086728|3812eb6a3ef37b3ead6ad9c3a26efa24|h=jogqyi4cauhueoppsgcgdnprpbu7om3g|/", - "passwd": "" - }, - { - "way": "2", - "way_cn": "磁力", - "address": "magnet:?xt=urn:btih:1e5a9180c2be2aa6a1e932479dae91ce082ca22d&tr.1=http://tracker.openbittorrent.com/announce&tr.2=udp://tracker.openbittorrent.com:80/announce&tr.3=udp://tr.cili001.com:6666/announce&tr.4=http://tracker.publicbt.com/announce&tr.5=udp://open.demonii.com:1337&tr.6=udp://tracker.opentrackr.org:1337/announce&tr.7=http://tr.cili001.com:6666/announce", - "passwd": "" - }, - { - "way": "9", - "way_cn": "网盘", - "address": "http://pan.baidu.com/s/1gfHRfnt", - "passwd": "" - }, - { - "way": "12", - "way_cn": "诚通网盘", - "address": "http://ZiMuZuUSTV.ctfile.com/fs/2Tb158731035", - "passwd": "" - } - ] - }, - { - "itemid": "277958", - "episode": "1", - "name": "逃避可耻却有用.NIGERUHA.HAJIDAGA.YAKUNITATSU.Ep01.Chi_Jap.HDTVrip.1280X720-ZhuixinFanV2.mp4", - "size": "699.97MB", - "yyets_trans": 0, - "dateline": "1476238571", - "files": [ - { - "way": "1", - "way_cn": "电驴", - "address": "ed2k://|file|%E9%80%83%E9%81%BF%E5%8F%AF%E8%80%BB%E5%8D%B4%E6%9C%89%E7%94%A8.NIGERUHA.HAJIDAGA.YAKUNITATSU.Ep01.Chi_Jap.HDTVrip.1280X720-ZhuixinFanV2.mp4|733967923|7116a9dfb86fceed3f5b71604e48745f|h=ku7saiivihhc26hcbx4cjsplvkum62ho|/", - "passwd": "" - }, - { - "way": "2", - "way_cn": "磁力", - "address": "magnet:?xt=urn:btih:2a331028531d0254a2b1f30e55edf99b6b716e49&tr.1=http://tracker.openbittorrent.com/announce&tr.2=udp://tracker.openbittorrent.com:80/announce&tr.3=udp://tr.cili001.com:6666/announce&tr.4=http://tracker.publicbt.com/announce&tr.5=udp://open.demonii.com:1337&tr.6=udp://tracker.opentrackr.org:1337/announce&tr.7=http://tr.cili001.com:6666/announce", - "passwd": "" - }, - { - "way": "9", - "way_cn": "网盘", - "address": "http://pan.baidu.com/s/1hrOugEK", - "passwd": "" - }, - { - "way": "12", - "way_cn": "诚通网盘", - "address": "http://ZiMuZuUSTV.ctfile.com/fs/Dde158319090", - "passwd": "" - } - ] - } - ], - "MP4": [ - { - "itemid": "554387", - "episode": "12", - "name": "逃避可耻却有用 人类加油!新春特别篇!!.NIGERUHA.HAJIDAGA.YAKUNITATSU.Ganbare.Jinrui.Shinshun.Special.SP.Chi_Jap.HDTVrip.1280X720.mp4", - "size": "1.4GB", - "yyets_trans": 0, - "dateline": "1609622857", - "files": [ - { - "way": "2", - "way_cn": "磁力", - "address": "magnet:?xt=urn:btih:4a6be139e640db770dbe266471e5cc81357c205e&tr=http://tr.cili001.com:8070/announce&tr=udp://p4p.arenabg.com:1337&tr=udp://tracker.opentrackr.org:1337/announce&tr=udp://open.demonii.com:1337", - "passwd": "" - } - ] - }, - { - "itemid": "284971", - "episode": "11", - "name": "逃避可耻却有用.NIGERUHA.HAJIDAGA.YAKUNITATSU.Ep11.Final.Chi_Jap.HDTVrip.852X480-ZhuixinFan.mp4", - "size": "273.97MB", - "yyets_trans": 0, - "dateline": "1482265302", - "files": [ - { - "way": "1", - "way_cn": "电驴", - "address": "ed2k://|file|%E9%80%83%E9%81%BF%E5%8F%AF%E8%80%BB%E5%8D%B4%E6%9C%89%E7%94%A8.NIGERUHA.HAJIDAGA.YAKUNITATSU.Ep11.Final.Chi_Jap.HDTVrip.852X480-ZhuixinFan.mp4|287277713|c5e3cda7312d5c959b054ce1fe2d9648|h=yons5tync72soz55fil76fhasuyef2p5|/", - "passwd": "" - }, - { - "way": "2", - "way_cn": "磁力", - "address": "magnet:?xt=urn:btih:e643ee71dcfc70ef5c768f4801937bee3474ab7c&tr=http://tracker.openbittorrent.com/announce&tr=udp://tracker.openbittorrent.com:80/announce&tr=udp://tr.cili001.com:6666/announce&tr=http://tracker.publicbt.com/announce&tr=udp://open.demonii.com:1337&tr=udp://tracker.opentrackr.org:1337/announce&tr=http://tr.cili001.com:6666/announce", - "passwd": "" - }, - { - "way": "9", - "way_cn": "网盘", - "address": "http://pan.baidu.com/s/1nu7sDDJ", - "passwd": "" - } - ] - }, - { - "itemid": "284424", - "episode": "10", - "name": "逃避可耻却有用.NIGERUHA.HAJIDAGA.YAKUNITATSU.Ep10.Chi_Jap.HDTVrip.852X480-ZhuixinFan.mp4", - "size": "250.46MB", - "yyets_trans": 0, - "dateline": "1481694187", - "files": [ - { - "way": "1", - "way_cn": "电驴", - "address": "ed2k://|file|%E9%80%83%E9%81%BF%E5%8F%AF%E8%80%BB%E5%8D%B4%E6%9C%89%E7%94%A8.NIGERUHA.HAJIDAGA.YAKUNITATSU.Ep10.Chi_Jap.HDTVrip.852X480-ZhuixinFan.mp4|262629609|5ddda8755130865fd0b506b897dd3933|h=56ncsvze3suc4pszccf3frhbw24u454u|/", - "passwd": "" - }, - { - "way": "2", - "way_cn": "磁力", - "address": "magnet:?xt=urn:btih:64c03d502e04f592fa7dc86ea9b13ccce52c53e5&tr=http://tracker.openbittorrent.com/announce&tr=udp://tracker.openbittorrent.com:80/announce&tr=udp://tr.cili001.com:6666/announce&tr=http://tracker.publicbt.com/announce&tr=udp://open.demonii.com:1337&tr=udp://tracker.opentrackr.org:1337/announce&tr=http://tr.cili001.com:6666/announce", - "passwd": "" - }, - { - "way": "9", - "way_cn": "网盘", - "address": "http://pan.baidu.com/s/1cvdJye", - "passwd": "" - }, - { - "way": "12", - "way_cn": "诚通网盘", - "address": "http://ZiMuZuUSTV.ctfile.com/fs/mcp163620606", - "passwd": "" - } - ] - }, - { - "itemid": "283576", - "episode": "9", - "name": "逃避可耻却有用.NIGERUHA.HAJIDAGA.YAKUNITATSU.Ep09.Chi_Jap.HDTVrip.852X480-ZhuixinFan.mp4", - "size": "197.99MB", - "yyets_trans": 0, - "dateline": "1481091708", - "files": [ - { - "way": "1", - "way_cn": "电驴", - "address": "ed2k://|file|%E9%80%83%E9%81%BF%E5%8F%AF%E8%80%BB%E5%8D%B4%E6%9C%89%E7%94%A8.NIGERUHA.HAJIDAGA.YAKUNITATSU.Ep09.Chi_Jap.HDTVrip.852X480-ZhuixinFan.mp4|207609828|c3bf94d4f2e63139d7196f0297aa3882|h=lixjdvvffgkozmcbujjkeusdmx5uz6h4|/", - "passwd": "" - }, - { - "way": "2", - "way_cn": "磁力", - "address": "magnet:?xt=urn:btih:f331279acc58e85d679418c7a11ebeefb4b02b42&tr=http://tracker.openbittorrent.com/announce&tr=udp://tracker.openbittorrent.com:80/announce&tr=udp://tr.cili001.com:6666/announce&tr=http://tracker.publicbt.com/announce&tr=udp://open.demonii.com:1337&tr=udp://tracker.opentrackr.org:1337/announce&tr=http://tr.cili001.com:6666/announce", - "passwd": "" - }, - { - "way": "9", - "way_cn": "网盘", - "address": "http://pan.baidu.com/s/1miyMEbm", - "passwd": "" - }, - { - "way": "12", - "way_cn": "诚通网盘", - "address": "http://ZiMuZuUSTV.ctfile.com/fs/pU0162934266", - "passwd": "" - } - ] - }, - { - "itemid": "282890", - "episode": "8", - "name": "逃避可耻却有用.NIGERUHA.HAJIDAGA.YAKUNITATSU.Ep08.Chi_Jap.HDTVrip.852X480-ZhuixinFan.mp4", - "size": "193.81MB", - "yyets_trans": 0, - "dateline": "1480490078", - "files": [ - { - "way": "1", - "way_cn": "电驴", - "address": "ed2k://|file|%E9%80%83%E9%81%BF%E5%8F%AF%E8%80%BB%E5%8D%B4%E6%9C%89%E7%94%A8.NIGERUHA.HAJIDAGA.YAKUNITATSU.Ep08.Chi_Jap.HDTVrip.852X480-ZhuixinFan.mp4|203226404|0b2c976116eead8cee3a086d112ce738|h=b56bqcmprjcnkhwez5siuz2dzzvfljo4|/", - "passwd": "" - }, - { - "way": "2", - "way_cn": "磁力", - "address": "magnet:?xt=urn:btih:2fc115a1a26ed12f8d2f540e9f8699b989193e04&tr.1=http://tracker.openbittorrent.com/announce&tr.2=udp://tracker.openbittorrent.com:80/announce&tr.3=udp://tr.cili001.com:6666/announce&tr.4=http://tracker.publicbt.com/announce&tr.5=udp://open.demonii.com:1337&tr.6=udp://tracker.opentrackr.org:1337/announce&tr.7=http://tr.cili001.com:6666/announce", - "passwd": "" - }, - { - "way": "9", - "way_cn": "网盘", - "address": "http://pan.baidu.com/s/1kUIkQ7X", - "passwd": "" - }, - { - "way": "12", - "way_cn": "诚通网盘", - "address": "http://ZiMuZuUSTV.ctfile.com/fs/NyN162369651", - "passwd": "" - } - ] - }, - { - "itemid": "282120", - "episode": "7", - "name": "逃避可耻却有用.NIGERUHA.HAJIDAGA.YAKUNITATSU.Ep07.Chi_Jap.HDTVrip.852X480-ZhuixinFan.mp4", - "size": "205.1MB", - "yyets_trans": 0, - "dateline": "1479881031", - "files": [ - { - "way": "1", - "way_cn": "电驴", - "address": "ed2k://|file|%E9%80%83%E9%81%BF%E5%8F%AF%E8%80%BB%E5%8D%B4%E6%9C%89%E7%94%A8.NIGERUHA.HAJIDAGA.YAKUNITATSU.Ep07.Chi_Jap.HDTVrip.852X480-ZhuixinFan.mp4|215062889|ca0ffa335b3a595e41f71d3c8f277040|h=a65hvn5lzc5c6loc746tf3yexszea4eh|/", - "passwd": "" - }, - { - "way": "2", - "way_cn": "磁力", - "address": "magnet:?xt=urn:btih:2d47c371eba87c52e7618a782b627a95fffed7b4&tr.1=http://tracker.openbittorrent.com/announce&tr.2=udp://tracker.openbittorrent.com:80/announce&tr.3=udp://tr.cili001.com:6666/announce&tr.4=http://tracker.publicbt.com/announce&tr.5=udp://open.demonii.com:1337&tr.6=udp://tracker.opentrackr.org:1337/announce&tr.7=http://tr.cili001.com:6666/announce", - "passwd": "" - }, - { - "way": "9", - "way_cn": "网盘", - "address": "http://pan.baidu.com/s/1bo9Dwv1", - "passwd": "" - }, - { - "way": "12", - "way_cn": "诚通网盘", - "address": "http://ZiMuZuUSTV.ctfile.com/fs/8Tk161811666", - "passwd": "" - } - ] - }, - { - "itemid": "281368", - "episode": "6", - "name": "逃避可耻却有用.NIGERUHA.HAJIDAGA.YAKUNITATSU.Ep06.Chi_Jap.HDTVrip.852X480-ZhuixinFan.mp4", - "size": "225.23MB", - "yyets_trans": 0, - "dateline": "1479275434", - "files": [ - { - "way": "1", - "way_cn": "电驴", - "address": "ed2k://|file|%E9%80%83%E9%81%BF%E5%8F%AF%E8%80%BB%E5%8D%B4%E6%9C%89%E7%94%A8.NIGERUHA.HAJIDAGA.YAKUNITATSU.Ep06.Chi_Jap.HDTVrip.852X480-ZhuixinFan.mp4|236167107|5d1ca5827f3cf88cb39bf55df64e017b|h=k2bzvh2zpyljsq6b2g5xbtci3s63q5xy|/", - "passwd": "" - }, - { - "way": "2", - "way_cn": "磁力", - "address": "magnet:?xt=urn:btih:043c0fe675011d2d6a1fcba243e130864e5ab461&tr.1=http://tracker.openbittorrent.com/announce&tr.2=udp://tracker.openbittorrent.com:80/announce&tr.3=udp://tr.cili001.com:6666/announce&tr.4=http://tracker.publicbt.com/announce&tr.5=udp://open.demonii.com:1337&tr.6=udp://tracker.opentrackr.org:1337/announce&tr.7=http://tr.cili001.com:6666/announce", - "passwd": "" - }, - { - "way": "9", - "way_cn": "网盘", - "address": "http://pan.baidu.com/s/1qYQxCBi", - "passwd": "" - }, - { - "way": "12", - "way_cn": "诚通网盘", - "address": "http://ZiMuZuUSTV.ctfile.com/fs/aXo161179959", - "passwd": "" - } - ] - }, - { - "itemid": "280651", - "episode": "5", - "name": "逃避可耻却有用.NIGERUHA.HAJIDAGA.YAKUNITATSU.Ep05.Chi_Jap.HDTVrip.852X480-ZhuixinFan.mp4", - "size": "214.19MB", - "yyets_trans": 0, - "dateline": "1478665773", - "files": [ - { - "way": "1", - "way_cn": "电驴", - "address": "ed2k://|file|%E9%80%83%E9%81%BF%E5%8F%AF%E8%80%BB%E5%8D%B4%E6%9C%89%E7%94%A8.NIGERUHA.HAJIDAGA.YAKUNITATSU.Ep05.Chi_Jap.HDTVrip.852X480-ZhuixinFan.mp4|224589979|fc95f51dd77b80abcfc8d2be7955a0fe|h=wgrml4u6cey6iiyxgtx4ml6yrzqdx7ap|/", - "passwd": "" - }, - { - "way": "2", - "way_cn": "磁力", - "address": "magnet:?xt=urn:btih:fb7c0b0c634af47bd5249873eecef81edaefbb5e&tr.1=http://tracker.openbittorrent.com/announce&tr.2=udp://tracker.openbittorrent.com:80/announce&tr.3=udp://tr.cili001.com:6666/announce&tr.4=http://tracker.publicbt.com/announce&tr.5=udp://open.demonii.com:1337&tr.6=udp://tracker.opentrackr.org:1337/announce&tr.7=http://tr.cili001.com:6666/announce", - "passwd": "" - }, - { - "way": "9", - "way_cn": "网盘", - "address": "http://pan.baidu.com/s/1miLLJBi", - "passwd": "" - }, - { - "way": "12", - "way_cn": "诚通网盘", - "address": "http://ZiMuZuUSTV.ctfile.com/fs/zRI160610232", - "passwd": "" - } - ] - }, - { - "itemid": "280038", - "episode": "4", - "name": "逃避可耻却有用.NIGERUHA.HAJIDAGA.YAKUNITATSU.Ep04.Chi_Jap.HDTVrip.852X480-ZhuixinFan.mp4", - "size": "191.02MB", - "yyets_trans": 0, - "dateline": "1478060356", - "files": [ - { - "way": "1", - "way_cn": "电驴", - "address": "ed2k://|file|%E9%80%83%E9%81%BF%E5%8F%AF%E8%80%BB%E5%8D%B4%E6%9C%89%E7%94%A8.NIGERUHA.HAJIDAGA.YAKUNITATSU.Ep04.Chi_Jap.HDTVrip.852X480-ZhuixinFan.mp4|200298651|b9e1eef644649f12ef4684f92fdb0379|h=5cvm2z6kxke24ti7gqpgcwesvsfejkvr|/", - "passwd": "" - }, - { - "way": "2", - "way_cn": "磁力", - "address": "magnet:?xt=urn:btih:4edc1466dea534e178214ed701731f6a376996b1&tr.1=http://tracker.openbittorrent.com/announce&tr.2=udp://tracker.openbittorrent.com:80/announce&tr.3=udp://tr.cili001.com:6666/announce&tr.4=http://tracker.publicbt.com/announce&tr.5=udp://open.demonii.com:1337&tr.6=udp://tracker.opentrackr.org:1337/announce&tr.7=http://tr.cili001.com:6666/announce", - "passwd": "" - }, - { - "way": "9", - "way_cn": "网盘", - "address": "http://pan.baidu.com/s/1hrZk4cc", - "passwd": "" - }, - { - "way": "12", - "way_cn": "诚通网盘", - "address": "http://ZiMuZuUSTV.ctfile.com/fs/DuN160026666", - "passwd": "" - } - ] - }, - { - "itemid": "279352", - "episode": "3", - "name": "逃避可耻却有用.NIGERUHA.HAJIDAGA.YAKUNITATSU.Ep03.Chi_Jap.HDTVrip.852X480-ZhuixinFan.mp4", - "size": "230.2MB", - "yyets_trans": 0, - "dateline": "1477463950", - "files": [ - { - "way": "1", - "way_cn": "电驴", - "address": "ed2k://|file|%E9%80%83%E9%81%BF%E5%8F%AF%E8%80%BB%E5%8D%B4%E6%9C%89%E7%94%A8.NIGERUHA.HAJIDAGA.YAKUNITATSU.Ep03.Chi_Jap.HDTVrip.852X480-ZhuixinFan.mp4|241387154|923cd649dd5d48840a7f1c42d8ba3700|h=czevlgexn5os63rxulctjubd2u65ukf6|/", - "passwd": "" - }, - { - "way": "2", - "way_cn": "磁力", - "address": "magnet:?xt=urn:btih:0f71cd2401057ef47cdc6ede0dcb1ebaec2e1618&tr.1=http://tracker.openbittorrent.com/announce&tr.2=udp://tracker.openbittorrent.com:80/announce&tr.3=udp://tr.cili001.com:6666/announce&tr.4=http://tracker.publicbt.com/announce&tr.5=udp://open.demonii.com:1337&tr.6=udp://tracker.opentrackr.org:1337/announce&tr.7=http://tr.cili001.com:6666/announce", - "passwd": "" - }, - { - "way": "9", - "way_cn": "网盘", - "address": "http://pan.baidu.com/s/1gfPtce3", - "passwd": "" - }, - { - "way": "12", - "way_cn": "诚通网盘", - "address": "http://ZiMuZuUSTV.ctfile.com/fs/Xsc159444636", - "passwd": "" - } - ] - }, - { - "itemid": "278647", - "episode": "2", - "name": "逃避可耻却有用.NIGERUHA.HAJIDAGA.YAKUNITATSU.Ep02.Chi_Jap.HDTVrip.852X480-ZhuixinFan.mp4", - "size": "200.22MB", - "yyets_trans": 0, - "dateline": "1476861702", - "files": [ - { - "way": "1", - "way_cn": "电驴", - "address": "ed2k://|file|%E9%80%83%E9%81%BF%E5%8F%AF%E8%80%BB%E5%8D%B4%E6%9C%89%E7%94%A8.NIGERUHA.HAJIDAGA.YAKUNITATSU.Ep02.Chi_Jap.HDTVrip.852X480-ZhuixinFan.mp4|209947733|ed7626c02262f287b92f2472c5ed1a29|h=f5dwdur3fhjifrztundnr7psdhzzqihv|/", - "passwd": "" - }, - { - "way": "2", - "way_cn": "磁力", - "address": "magnet:?xt=urn:btih:f5e244402d31013208dafea5e0231084cd4b3ed3&tr.1=http://tracker.openbittorrent.com/announce&tr.2=udp://tracker.openbittorrent.com:80/announce&tr.3=udp://tr.cili001.com:6666/announce&tr.4=http://tracker.publicbt.com/announce&tr.5=udp://open.demonii.com:1337&tr.6=udp://tracker.opentrackr.org:1337/announce&tr.7=http://tr.cili001.com:6666/announce", - "passwd": "" - }, - { - "way": "9", - "way_cn": "网盘", - "address": "http://pan.baidu.com/s/1o8Rgrm6", - "passwd": "" - }, - { - "way": "12", - "way_cn": "诚通网盘", - "address": "http://ZiMuZuUSTV.ctfile.com/fs/POv158726721", - "passwd": "" - } - ] - }, - { - "itemid": "277951", - "episode": "1", - "name": "逃避可耻却有用.NIGERUHA.HAJIDAGA.YAKUNITATSU.Ep01.Chi_Jap.HDTVrip.852X480-ZhuixinFanV2.mp4", - "size": "304.92MB", - "yyets_trans": 0, - "dateline": "1476216447", - "files": [ - { - "way": "1", - "way_cn": "电驴", - "address": "ed2k://|file|%E9%80%83%E9%81%BF%E5%8F%AF%E8%80%BB%E5%8D%B4%E6%9C%89%E7%94%A8.NIGERUHA.HAJIDAGA.YAKUNITATSU.Ep01.Chi_Jap.HDTVrip.852X480-ZhuixinFanV2.mp4|319730163|56c0ff1e0c00f4ae8b2636d6fa0c20ee|h=teyixuxqajhhehxiupbozfst3r5b5ytk|/", - "passwd": "" - }, - { - "way": "2", - "way_cn": "磁力", - "address": "magnet:?xt=urn:btih:e4dcb4f8fc0f99416107da0beb6697ce77b8b66b&tr.1=http://tracker.openbittorrent.com/announce&tr.2=udp://tracker.openbittorrent.com:80/announce&tr.3=udp://tr.cili001.com:6666/announce&tr.4=http://tracker.publicbt.com/announce&tr.5=udp://open.demonii.com:1337&tr.6=udp://tracker.opentrackr.org:1337/announce&tr.7=http://tr.cili001.com:6666/announce", - "passwd": "" - }, - { - "way": "9", - "way_cn": "网盘", - "address": "http://pan.baidu.com/s/1kUTD9cj", - "passwd": "" - }, - { - "way": "12", - "way_cn": "诚通网盘", - "address": "http://ZiMuZuUSTV.ctfile.com/fs/07i158318898", - "passwd": "" - } - ] - } - ] - }, - "formats": [ - "HR-HDTV", - "MP4", - "APP" - ] - } - ] + "status": 1, + "info": "OK", + "data": { + "info": { + "id": 34812, + "cnname": "逃避可耻却有用", + "enname": "NIGERUHA HAJIDAGA YAKUNITATSU", + "aliasname": "逃避虽可耻但有用 / 雇佣妻子(港) / 月薪娇妻(台) / 逃跑是可耻但是有用 / 逃避虽可耻但很有用 / 逃避可耻但有用", + "channel": "tv", + "channel_cn": "日剧", + "area": "日本", + "show_type": "", + "expire": "1610399344", + "views": 1200, + "year": [ + 2016, + 2017, + 2021 + ] }, - "is_like": false -} \ No newline at end of file + "list": [ + { + "season_num": "101", + "season_cn": "单剧", + "items": { + "APP": [ + { + "itemid": "554385", + "episode": "12", + "name": "yyets://N.fake", + "size": "", + "yyets_trans": 0, + "dateline": "1609622857", + "files": [ + { + "way": "102", + "way_cn": "百度云", + "address": "https://exmaple.com", + "passwd": "x28a" + }, + { + "way": "115", + "way_cn": "微云", + "address": "https://exmaple.com", + "passwd": "" + } + ] + }, + { + "itemid": "298235", + "episode": "11", + "name": "yyets://N.fake", + "size": "", + "yyets_trans": 0, + "dateline": "1491891741", + "files": null + }, + { + "itemid": "298234", + "episode": "10", + "name": "yyets://N.fake", + "size": "", + "yyets_trans": 0, + "dateline": "1491891741", + "files": null + }, + { + "itemid": "298233", + "episode": "9", + "name": "yyets://N.fake", + "size": "", + "yyets_trans": 0, + "dateline": "1491891741", + "files": null + }, + { + "itemid": "298232", + "episode": "8", + "name": "yyets://N.fake", + "size": "", + "yyets_trans": 0, + "dateline": "1491891741", + "files": null + }, + { + "itemid": "298231", + "episode": "7", + "name": "yyets://N.fake", + "size": "", + "yyets_trans": 0, + "dateline": "1491891741", + "files": null + }, + { + "itemid": "298230", + "episode": "6", + "name": "yyets://N.fake", + "size": "", + "yyets_trans": 0, + "dateline": "1491891741", + "files": null + }, + { + "itemid": "298229", + "episode": "5", + "name": "yyets://N.fake", + "size": "", + "yyets_trans": 0, + "dateline": "1491891741", + "files": null + }, + { + "itemid": "298228", + "episode": "4", + "name": "yyets://N.fake", + "size": "", + "yyets_trans": 0, + "dateline": "1491891741", + "files": null + }, + { + "itemid": "298227", + "episode": "3", + "name": "yyets://N.fake", + "size": "", + "yyets_trans": 0, + "dateline": "1491891741", + "files": null + }, + { + "itemid": "298226", + "episode": "2", + "name": "yyets://N.fake", + "size": "", + "yyets_trans": 0, + "dateline": "1491891741", + "files": null + }, + { + "itemid": "298225", + "episode": "1", + "name": "yyets://N.fake", + "size": "", + "yyets_trans": 0, + "dateline": "1491891741", + "files": null + } + ], + "HR-HDTV": [ + { + "itemid": "554384", + "episode": "12", + "name": "逃避可耻却有用 人类加油!新春特别篇!!.NIGERUHA.HAJIDAGA.YAKUNITATSU.Ganbare.Jinrui.Shinshun.Special.SP.Chi_Jap.HDTVrip.1280X720.mp4", + "size": "1.4GB", + "yyets_trans": 0, + "dateline": "1609622857", + "files": [ + { + "way": "2", + "way_cn": "磁力", + "address": "magnet:?xt=urn", + "passwd": "" + }, + { + "way": "9", + "way_cn": "网盘", + "address": "https://exmaple.com", + "passwd": "x28a" + } + ] + }, + { + "itemid": "284973", + "episode": "11", + "name": "逃避可耻却有用.NIGERUHA.HAJIDAGA.YAKUNITATSU.Ep11.Final.Chi_Jap.HDTVrip.1280X720-ZhuixinFan.mp4", + "size": "699.79MB", + "yyets_trans": 0, + "dateline": "1482282868", + "files": [ + { + "way": "1", + "way_cn": "电驴", + "address": "ed2k://|file|a", + "passwd": "" + }, + { + "way": "2", + "way_cn": "磁力", + "address": "magnet:?xt=urn", + "passwd": "" + }, + { + "way": "9", + "way_cn": "网盘", + "address": "http://abc.com", + "passwd": "" + } + ] + }, + { + "itemid": "284430", + "episode": "10", + "name": "逃避可耻却有用.NIGERUHA.HAJIDAGA.YAKUNITATSU.Ep10.Chi_Jap.HDTVrip.1280X720-ZhuixinFan.mp4", + "size": "699.93MB", + "yyets_trans": 0, + "dateline": "1481704074", + "files": [ + { + "way": "1", + "way_cn": "电驴", + "address": "ed2k://|file|a", + "passwd": "" + }, + { + "way": "2", + "way_cn": "磁力", + "address": "magnet:?xt=urn", + "passwd": "" + }, + { + "way": "9", + "way_cn": "网盘", + "address": "http://abc.com", + "passwd": "" + }, + { + "way": "12", + "way_cn": "诚通网盘", + "address": "http://abc.com", + "passwd": "" + } + ] + }, + { + "itemid": "283661", + "episode": "9", + "name": "逃避可耻却有用.NIGERUHA.HAJIDAGA.YAKUNITATSU.Ep09.Chi_Jap.HDTVrip.1280X720-ZhuixinFan.mp4", + "size": "599.99MB", + "yyets_trans": 0, + "dateline": "1481098725", + "files": [ + { + "way": "1", + "way_cn": "电驴", + "address": "ed2k://|file|a", + "passwd": "" + }, + { + "way": "2", + "way_cn": "磁力", + "address": "magnet:?xt=urn", + "passwd": "" + }, + { + "way": "9", + "way_cn": "网盘", + "address": "http://abc.com", + "passwd": "" + }, + { + "way": "12", + "way_cn": "诚通网盘", + "address": "http://abc.com", + "passwd": "" + } + ] + }, + { + "itemid": "282897", + "episode": "8", + "name": "逃避可耻却有用.NIGERUHA.HAJIDAGA.YAKUNITATSU.Ep08.Chi_Jap.HDTVrip.1280X720-ZhuixinFan.mp4", + "size": "600.06MB", + "yyets_trans": 0, + "dateline": "1480497463", + "files": [ + { + "way": "1", + "way_cn": "电驴", + "address": "ed2k://|file|a", + "passwd": "" + }, + { + "way": "2", + "way_cn": "磁力", + "address": "magnet:?xt=urn", + "passwd": "" + }, + { + "way": "9", + "way_cn": "网盘", + "address": "http://abc.com", + "passwd": "" + }, + { + "way": "12", + "way_cn": "诚通网盘", + "address": "http://abc.com", + "passwd": "" + } + ] + }, + { + "itemid": "282123", + "episode": "7", + "name": "逃避可耻却有用.NIGERUHA.HAJIDAGA.YAKUNITATSU.Ep07.Chi_Jap.HDTVrip.1280X720-ZhuixinFan.mp4", + "size": "599.98MB", + "yyets_trans": 0, + "dateline": "1479886413", + "files": [ + { + "way": "1", + "way_cn": "电驴", + "address": "ed2k://|file|a", + "passwd": "" + }, + { + "way": "2", + "way_cn": "磁力", + "address": "magnet:?xt=urn", + "passwd": "" + }, + { + "way": "9", + "way_cn": "网盘", + "address": "http://abc.com", + "passwd": "" + }, + { + "way": "12", + "way_cn": "诚通网盘", + "address": "http://abc.com", + "passwd": "" + } + ] + }, + { + "itemid": "281371", + "episode": "6", + "name": "逃避可耻却有用.NIGERUHA.HAJIDAGA.YAKUNITATSU.Ep06.Chi_Jap.HDTVrip.1280X720-ZhuixinFan.mp4", + "size": "600.09MB", + "yyets_trans": 0, + "dateline": "1479281049", + "files": [ + { + "way": "1", + "way_cn": "电驴", + "address": "ed2k://|file|a", + "passwd": "" + }, + { + "way": "2", + "way_cn": "磁力", + "address": "magnet:?xt=urn", + "passwd": "" + }, + { + "way": "9", + "way_cn": "网盘", + "address": "http://abc.com", + "passwd": "" + }, + { + "way": "12", + "way_cn": "诚通网盘", + "address": "http://abc.com", + "passwd": "" + } + ] + }, + { + "itemid": "280656", + "episode": "5", + "name": "逃避可耻却有用.NIGERUHA.HAJIDAGA.YAKUNITATSU.Ep05.Chi_Jap.HDTVrip.1280X720-ZhuixinFan.mp4", + "size": "600.11MB", + "yyets_trans": 0, + "dateline": "1478670362", + "files": [ + { + "way": "1", + "way_cn": "电驴", + "address": "ed2k://|file|a", + "passwd": "" + }, + { + "way": "2", + "way_cn": "磁力", + "address": "magnet:?xt=urn", + "passwd": "" + }, + { + "way": "9", + "way_cn": "网盘", + "address": "http://abc.com", + "passwd": "" + }, + { + "way": "12", + "way_cn": "诚通网盘", + "address": "http://abc.com", + "passwd": "" + } + ] + }, + { + "itemid": "280068", + "episode": "4", + "name": "逃避可耻却有用.NIGERUHA.HAJIDAGA.YAKUNITATSU.Ep04.Chi_Jap.HDTVrip.1280X720-ZhuixinFan.mp4", + "size": "599.9MB", + "yyets_trans": 0, + "dateline": "1478065113", + "files": [ + { + "way": "1", + "way_cn": "电驴", + "address": "ed2k://|file|a", + "passwd": "" + }, + { + "way": "2", + "way_cn": "磁力", + "address": "magnet:?xt=urn", + "passwd": "" + }, + { + "way": "9", + "way_cn": "网盘", + "address": "http://abc.com", + "passwd": "" + }, + { + "way": "12", + "way_cn": "诚通网盘", + "address": "http://abc.com", + "passwd": "" + } + ] + }, + { + "itemid": "279384", + "episode": "3", + "name": "逃避可耻却有用.NIGERUHA.HAJIDAGA.YAKUNITATSU.Ep03.Chi_Jap.HDTVrip.1280X720-ZhuixinFan.mp4", + "size": "599.3MB", + "yyets_trans": 0, + "dateline": "1477483732", + "files": [ + { + "way": "1", + "way_cn": "电驴", + "address": "ed2k://|file|a", + "passwd": "" + }, + { + "way": "2", + "way_cn": "磁力", + "address": "magnet:?xt=urn", + "passwd": "" + }, + { + "way": "9", + "way_cn": "网盘", + "address": "http://abc.com", + "passwd": "" + }, + { + "way": "12", + "way_cn": "诚通网盘", + "address": "http://abc.com", + "passwd": "" + } + ] + }, + { + "itemid": "278649", + "episode": "2", + "name": "逃避可耻却有用.NIGERUHA.HAJIDAGA.YAKUNITATSU.Ep02.Chi_Jap.HDTVrip.1280X720-ZhuixinFan.mp4", + "size": "599.94MB", + "yyets_trans": 0, + "dateline": "1476868310", + "files": [ + { + "way": "1", + "way_cn": "电驴", + "address": "ed2k://|file|a", + "passwd": "" + }, + { + "way": "2", + "way_cn": "磁力", + "address": "magnet:?xt=urn", + "passwd": "" + }, + { + "way": "9", + "way_cn": "网盘", + "address": "http://abc.com", + "passwd": "" + }, + { + "way": "12", + "way_cn": "诚通网盘", + "address": "http://abc.com", + "passwd": "" + } + ] + }, + { + "itemid": "277958", + "episode": "1", + "name": "逃避可耻却有用.NIGERUHA.HAJIDAGA.YAKUNITATSU.Ep01.Chi_Jap.HDTVrip.1280X720-ZhuixinFanV2.mp4", + "size": "699.97MB", + "yyets_trans": 0, + "dateline": "1476238571", + "files": [ + { + "way": "1", + "way_cn": "电驴", + "address": "ed2k://|file|a", + "passwd": "" + }, + { + "way": "2", + "way_cn": "磁力", + "address": "magnet:?xt=urn", + "passwd": "" + }, + { + "way": "9", + "way_cn": "网盘", + "address": "http://abc.com", + "passwd": "" + }, + { + "way": "12", + "way_cn": "诚通网盘", + "address": "http://abc.com", + "passwd": "" + } + ] + } + ], + "MP4": [ + { + "itemid": "554387", + "episode": "12", + "name": "逃避可耻却有用 人类加油!新春特别篇!!.NIGERUHA.HAJIDAGA.YAKUNITATSU.Ganbare.Jinrui.Shinshun.Special.SP.Chi_Jap.HDTVrip.1280X720.mp4", + "size": "1.4GB", + "yyets_trans": 0, + "dateline": "1609622857", + "files": [ + { + "way": "2", + "way_cn": "磁力", + "address": "magnet:?xt=urn", + "passwd": "" + } + ] + }, + { + "itemid": "284971", + "episode": "11", + "name": "逃避可耻却有用.NIGERUHA.HAJIDAGA.YAKUNITATSU.Ep11.Final.Chi_Jap.HDTVrip.852X480-ZhuixinFan.mp4", + "size": "273.97MB", + "yyets_trans": 0, + "dateline": "1482265302", + "files": [ + { + "way": "1", + "way_cn": "电驴", + "address": "ed2k://|file|a", + "passwd": "" + }, + { + "way": "2", + "way_cn": "磁力", + "address": "magnet:?xt=urn", + "passwd": "" + }, + { + "way": "9", + "way_cn": "网盘", + "address": "http://abc.com", + "passwd": "" + } + ] + }, + { + "itemid": "284424", + "episode": "10", + "name": "逃避可耻却有用.NIGERUHA.HAJIDAGA.YAKUNITATSU.Ep10.Chi_Jap.HDTVrip.852X480-ZhuixinFan.mp4", + "size": "250.46MB", + "yyets_trans": 0, + "dateline": "1481694187", + "files": [ + { + "way": "1", + "way_cn": "电驴", + "address": "ed2k://|file|a", + "passwd": "" + }, + { + "way": "2", + "way_cn": "磁力", + "address": "magnet:?xt=urn", + "passwd": "" + }, + { + "way": "9", + "way_cn": "网盘", + "address": "http://abc.com", + "passwd": "" + }, + { + "way": "12", + "way_cn": "诚通网盘", + "address": "http://abc.com", + "passwd": "" + } + ] + }, + { + "itemid": "283576", + "episode": "9", + "name": "逃避可耻却有用.NIGERUHA.HAJIDAGA.YAKUNITATSU.Ep09.Chi_Jap.HDTVrip.852X480-ZhuixinFan.mp4", + "size": "197.99MB", + "yyets_trans": 0, + "dateline": "1481091708", + "files": [ + { + "way": "1", + "way_cn": "电驴", + "address": "ed2k://|file|a", + "passwd": "" + }, + { + "way": "2", + "way_cn": "磁力", + "address": "magnet:?xt=urn", + "passwd": "" + }, + { + "way": "9", + "way_cn": "网盘", + "address": "http://abc.com", + "passwd": "" + }, + { + "way": "12", + "way_cn": "诚通网盘", + "address": "http://abc.com", + "passwd": "" + } + ] + }, + { + "itemid": "282890", + "episode": "8", + "name": "逃避可耻却有用.NIGERUHA.HAJIDAGA.YAKUNITATSU.Ep08.Chi_Jap.HDTVrip.852X480-ZhuixinFan.mp4", + "size": "193.81MB", + "yyets_trans": 0, + "dateline": "1480490078", + "files": [ + { + "way": "1", + "way_cn": "电驴", + "address": "ed2k://|file|a", + "passwd": "" + }, + { + "way": "2", + "way_cn": "磁力", + "address": "magnet:?xt=urn", + "passwd": "" + }, + { + "way": "9", + "way_cn": "网盘", + "address": "http://abc.com", + "passwd": "" + }, + { + "way": "12", + "way_cn": "诚通网盘", + "address": "http://abc.com", + "passwd": "" + } + ] + }, + { + "itemid": "282120", + "episode": "7", + "name": "逃避可耻却有用.NIGERUHA.HAJIDAGA.YAKUNITATSU.Ep07.Chi_Jap.HDTVrip.852X480-ZhuixinFan.mp4", + "size": "205.1MB", + "yyets_trans": 0, + "dateline": "1479881031", + "files": [ + { + "way": "1", + "way_cn": "电驴", + "address": "ed2k://|file|a", + "passwd": "" + }, + { + "way": "2", + "way_cn": "磁力", + "address": "magnet:?xt=urn", + "passwd": "" + }, + { + "way": "9", + "way_cn": "网盘", + "address": "http://abc.com", + "passwd": "" + }, + { + "way": "12", + "way_cn": "诚通网盘", + "address": "http://abc.com", + "passwd": "" + } + ] + }, + { + "itemid": "281368", + "episode": "6", + "name": "逃避可耻却有用.NIGERUHA.HAJIDAGA.YAKUNITATSU.Ep06.Chi_Jap.HDTVrip.852X480-ZhuixinFan.mp4", + "size": "225.23MB", + "yyets_trans": 0, + "dateline": "1479275434", + "files": [ + { + "way": "1", + "way_cn": "电驴", + "address": "ed2k://|file|a", + "passwd": "" + }, + { + "way": "2", + "way_cn": "磁力", + "address": "magnet:?xt=urn", + "passwd": "" + }, + { + "way": "9", + "way_cn": "网盘", + "address": "http://abc.com", + "passwd": "" + }, + { + "way": "12", + "way_cn": "诚通网盘", + "address": "http://abc.com", + "passwd": "" + } + ] + }, + { + "itemid": "280651", + "episode": "5", + "name": "逃避可耻却有用.NIGERUHA.HAJIDAGA.YAKUNITATSU.Ep05.Chi_Jap.HDTVrip.852X480-ZhuixinFan.mp4", + "size": "214.19MB", + "yyets_trans": 0, + "dateline": "1478665773", + "files": [ + { + "way": "1", + "way_cn": "电驴", + "address": "ed2k://|file|a", + "passwd": "" + }, + { + "way": "2", + "way_cn": "磁力", + "address": "magnet:?xt=urn", + "passwd": "" + }, + { + "way": "9", + "way_cn": "网盘", + "address": "http://abc.com", + "passwd": "" + }, + { + "way": "12", + "way_cn": "诚通网盘", + "address": "http://abc.com", + "passwd": "" + } + ] + }, + { + "itemid": "280038", + "episode": "4", + "name": "逃避可耻却有用.NIGERUHA.HAJIDAGA.YAKUNITATSU.Ep04.Chi_Jap.HDTVrip.852X480-ZhuixinFan.mp4", + "size": "191.02MB", + "yyets_trans": 0, + "dateline": "1478060356", + "files": [ + { + "way": "1", + "way_cn": "电驴", + "address": "ed2k://|file|a", + "passwd": "" + }, + { + "way": "2", + "way_cn": "磁力", + "address": "magnet:?xt=urn", + "passwd": "" + }, + { + "way": "9", + "way_cn": "网盘", + "address": "http://abc.com", + "passwd": "" + }, + { + "way": "12", + "way_cn": "诚通网盘", + "address": "http://abc.com", + "passwd": "" + } + ] + }, + { + "itemid": "279352", + "episode": "3", + "name": "逃避可耻却有用.NIGERUHA.HAJIDAGA.YAKUNITATSU.Ep03.Chi_Jap.HDTVrip.852X480-ZhuixinFan.mp4", + "size": "230.2MB", + "yyets_trans": 0, + "dateline": "1477463950", + "files": [ + { + "way": "1", + "way_cn": "电驴", + "address": "ed2k://|file|a", + "passwd": "" + }, + { + "way": "2", + "way_cn": "磁力", + "address": "magnet:?xt=urn", + "passwd": "" + }, + { + "way": "9", + "way_cn": "网盘", + "address": "http://abc.com", + "passwd": "" + }, + { + "way": "12", + "way_cn": "诚通网盘", + "address": "http://abc.com", + "passwd": "" + } + ] + }, + { + "itemid": "278647", + "episode": "2", + "name": "逃避可耻却有用.NIGERUHA.HAJIDAGA.YAKUNITATSU.Ep02.Chi_Jap.HDTVrip.852X480-ZhuixinFan.mp4", + "size": "200.22MB", + "yyets_trans": 0, + "dateline": "1476861702", + "files": [ + { + "way": "1", + "way_cn": "电驴", + "address": "ed2k://|file|a", + "passwd": "" + }, + { + "way": "2", + "way_cn": "磁力", + "address": "magnet:?xt=urn", + "passwd": "" + }, + { + "way": "9", + "way_cn": "网盘", + "address": "http://abc.com", + "passwd": "" + }, + { + "way": "12", + "way_cn": "诚通网盘", + "address": "http://abc.com", + "passwd": "" + } + ] + }, + { + "itemid": "277951", + "episode": "1", + "name": "逃避可耻却有用.NIGERUHA.HAJIDAGA.YAKUNITATSU.Ep01.Chi_Jap.HDTVrip.852X480-ZhuixinFanV2.mp4", + "size": "304.92MB", + "yyets_trans": 0, + "dateline": "1476216447", + "files": [ + { + "way": "1", + "way_cn": "电驴", + "address": "ed2k://|file|a", + "passwd": "" + }, + { + "way": "2", + "way_cn": "磁力", + "address": "magnet:?xt=urn", + "passwd": "" + }, + { + "way": "9", + "way_cn": "网盘", + "address": "http://abc.com", + "passwd": "" + }, + { + "way": "12", + "way_cn": "诚通网盘", + "address": "http://abc.com", + "passwd": "" + } + ] + } + ] + }, + "formats": [ + "HR-HDTV", + "MP4", + "APP" + ] + } + ] + } +} diff --git a/yyetsweb/tests/router_test.py b/yyetsweb/tests/router_test.py new file mode 100644 index 0000000..7d23eda --- /dev/null +++ b/yyetsweb/tests/router_test.py @@ -0,0 +1,28 @@ +#!/usr/bin/env python3 +# coding: utf-8 + +import pathlib +import sys +import unittest + +from tornado.testing import AsyncHTTPTestCase + +sys.path.append(pathlib.Path(__file__).parent.parent.as_posix()) +from server import RunServer + + +class YYeTsTest(AsyncHTTPTestCase): + def get_app(self): + return RunServer.application + + +class TestIndex(YYeTsTest): + + def test_homepage(self): + response = self.fetch('/') + self.assertEqual(response.code, 200) + self.assertTrue(b'' in response.body) + + +if __name__ == '__main__': + unittest.main()