@mr-quin/dango-manifests 0.8.3 → 0.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -127,7 +127,7 @@ The smoke fetcher keeps a per-host cookie jar so bilibili's anti-bot wall lets u
127
127
  2. Capture representative responses from the source's API to `src/__tests__/fixtures/`.
128
128
  3. Write a per-manifest test that:
129
129
  - Parses the manifest against `zManifest` (catches schema drift)
130
- - Runs each pipeline with a mocked `FetchLike` against the captured fixtures
130
+ - Runs each pipeline with a mocked `FetchLike` against the captured fixtures, through `createContractRunner` so the output is also checked against the engine's row schemas
131
131
  - Asserts the canonical shape the engine emits
132
132
  4. (Optional) Add a section to `scripts/smoke-test.ts` to exercise the new manifest against a live endpoint.
133
133
 
package/catalog.json CHANGED
@@ -1,5 +1,5 @@
1
1
  {
2
- "packageVersion": "0.8.3",
2
+ "packageVersion": "0.9.0",
3
3
  "manifests": [
4
4
  {
5
5
  "id": "aiyifan",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mr-quin/dango-manifests",
3
- "version": "0.8.3",
3
+ "version": "0.9.0",
4
4
  "description": "Built-in dango manifests for danmaku sources",
5
5
  "author": "Mr-Quin",
6
6
  "license": "MIT",
@@ -1,6 +1,5 @@
1
1
  {
2
2
  "apiVersion": 1,
3
- "identityFields": [],
4
3
  "id": "aiyifan",
5
4
  "name": "Aiyifan",
6
5
  "locales": {
@@ -1,6 +1,5 @@
1
1
  {
2
2
  "apiVersion": 1,
3
- "identityFields": [],
4
3
  "id": "bahamut",
5
4
  "name": "Bahamut",
6
5
  "locales": {
@@ -1,6 +1,5 @@
1
1
  {
2
2
  "apiVersion": 1,
3
- "identityFields": [],
4
3
  "id": "bilibili",
5
4
  "name": "Bilibili",
6
5
  "locales": {
@@ -1,6 +1,5 @@
1
1
  {
2
2
  "apiVersion": 1,
3
- "identityFields": ["baseUrl"],
4
3
  "id": "dandanplay",
5
4
  "name": "DanDanPlay",
6
5
  "locales": {
@@ -1,6 +1,5 @@
1
1
  {
2
2
  "apiVersion": 1,
3
- "identityFields": [],
4
3
  "id": "hanjutv",
5
4
  "name": "Hanjutv",
6
5
  "locales": {
@@ -38,7 +37,7 @@
38
37
  }
39
38
  }
40
39
  ],
41
- "output": "($uid := 'DA000000000000000000'; $exists(search.data) and search.data != '' ? ($key := $exists(search.key) and search.key != '' ? search.key : $md5($uid & $string(search.ts)); $mix := $md5($key & '34F9Q53w/HJW8E6Q'); $aesKey := $base64Encode($substring($mix, 0, 16)); $aesIv := $base64Encode($substring($mix, 16, 16)); $raw := $aesCbcDecrypt(search.data, $aesKey, $aesIv, 'none'); $clean := $replace($trim($raw), /[\\u0000-\\u001f\\u007f-\\u009f]/, ''); $decoded := $jsonParse($clean); $list := $exists($decoded.seriesData.seriesList) ? $decoded.seriesData.seriesList : $decoded.seriesList; [$list.{ 'providerIds': { 'sid': $string(sid) }, 'indexedId': $string(sid), 'title': name, 'type': 'tvseries', 'typeDescription': '韩剧', 'imageUrl': $exists(image.thumb) ? image.thumb : '', 'episodeCount': 0, 'year': null }]) : [])"
40
+ "output": "($uid := 'DA000000000000000000'; $exists(search.data) and search.data != '' ? ($key := $exists(search.key) and search.key != '' ? search.key : $md5($uid & $string(search.ts)); $mix := $md5($key & '34F9Q53w/HJW8E6Q'); $aesKey := $base64Encode($substring($mix, 0, 16)); $aesIv := $base64Encode($substring($mix, 16, 16)); $raw := $aesCbcDecrypt(search.data, $aesKey, $aesIv, 'none'); $clean := $replace($trim($raw), /[\\u0000-\\u001f\\u007f-\\u009f]/, ''); $decoded := $jsonParse($clean); $list := $exists($decoded.seriesData.seriesList) ? $decoded.seriesData.seriesList : $decoded.seriesList; [$list.{ 'providerIds': { 'sid': $string(sid) }, 'indexedId': $string(sid), 'title': name, 'type': 'tvseries', 'typeDescription': '韩剧', 'imageUrl': $exists(image.thumb) ? image.thumb : '', 'episodeCount': 0 }]) : [])"
42
41
  },
43
42
  "episodes": {
44
43
  "inputs": ["sid"],
@@ -1,6 +1,5 @@
1
1
  {
2
2
  "apiVersion": 1,
3
- "identityFields": [],
4
3
  "id": "iqiyi",
5
4
  "name": "iQIYI",
6
5
  "locales": {
@@ -1,6 +1,5 @@
1
1
  {
2
2
  "apiVersion": 1,
3
- "identityFields": [],
4
3
  "id": "maiduidui",
5
4
  "name": "Maiduidui",
6
5
  "locales": {
@@ -1,6 +1,5 @@
1
1
  {
2
2
  "apiVersion": 1,
3
- "identityFields": [],
4
3
  "id": "mango",
5
4
  "name": "Mango TV",
6
5
  "locales": {
@@ -1,6 +1,5 @@
1
1
  {
2
2
  "apiVersion": 1,
3
- "identityFields": [],
4
3
  "id": "migu",
5
4
  "name": "Migu Video",
6
5
  "locales": {
@@ -1,6 +1,5 @@
1
1
  {
2
2
  "apiVersion": 1,
3
- "identityFields": [],
4
3
  "id": "renren",
5
4
  "name": "Renren",
6
5
  "locales": {
@@ -1,6 +1,5 @@
1
1
  {
2
2
  "apiVersion": 1,
3
- "identityFields": [],
4
3
  "id": "sohu",
5
4
  "name": "Sohu",
6
5
  "locales": {
@@ -1,6 +1,5 @@
1
1
  {
2
2
  "apiVersion": 1,
3
- "identityFields": [],
4
3
  "id": "tencent",
5
4
  "name": "Tencent Video",
6
5
  "locales": {
@@ -1,6 +1,5 @@
1
1
  {
2
2
  "apiVersion": 1,
3
- "identityFields": [],
4
3
  "id": "youku",
5
4
  "name": "Youku",
6
5
  "locales": {