feiying 1.0.1__tar.gz

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.
Files changed (82) hide show
  1. feiying-1.0.1/LICENSE +21 -0
  2. feiying-1.0.1/MANIFEST.in +6 -0
  3. feiying-1.0.1/PKG-INFO +119 -0
  4. feiying-1.0.1/README.md +96 -0
  5. feiying-1.0.1/pyproject.toml +41 -0
  6. feiying-1.0.1/setup.cfg +4 -0
  7. feiying-1.0.1/src/feiying/__init__.py +8 -0
  8. feiying-1.0.1/src/feiying/__main__.py +7 -0
  9. feiying-1.0.1/src/feiying/app.py +862 -0
  10. feiying-1.0.1/src/feiying/catalog.json +254 -0
  11. feiying-1.0.1/src/feiying/cli.py +472 -0
  12. feiying-1.0.1/src/feiying/maccms_source.py +227 -0
  13. feiying-1.0.1/src/feiying/server.py +55 -0
  14. feiying-1.0.1/src/feiying/source.py +612 -0
  15. feiying-1.0.1/src/feiying/static/icon-180.png +0 -0
  16. feiying-1.0.1/src/feiying/static/icon-192.png +0 -0
  17. feiying-1.0.1/src/feiying/static/icon-512.png +0 -0
  18. feiying-1.0.1/src/feiying/static/index.html +1719 -0
  19. feiying-1.0.1/src/feiying/static/manifest.webmanifest +17 -0
  20. feiying-1.0.1/src/feiying/static/media/c1.mp4 +0 -0
  21. feiying-1.0.1/src/feiying/static/media/c2.mp4 +0 -0
  22. feiying-1.0.1/src/feiying/static/media/c3.mp4 +0 -0
  23. feiying-1.0.1/src/feiying/static/media/c4.mp4 +0 -0
  24. feiying-1.0.1/src/feiying/static/media/c5.mp4 +0 -0
  25. feiying-1.0.1/src/feiying/static/media/c6.mp4 +0 -0
  26. feiying-1.0.1/src/feiying/static/media/hls1/index.m3u8 +7 -0
  27. feiying-1.0.1/src/feiying/static/media/hls1/seg0.ts +0 -0
  28. feiying-1.0.1/src/feiying/static/media/hls2/index.m3u8 +7 -0
  29. feiying-1.0.1/src/feiying/static/media/hls2/seg0.ts +0 -0
  30. feiying-1.0.1/src/feiying/static/media/hls3/index.m3u8 +7 -0
  31. feiying-1.0.1/src/feiying/static/media/hls3/seg0.ts +0 -0
  32. feiying-1.0.1/src/feiying/static/media/hls4/index.m3u8 +7 -0
  33. feiying-1.0.1/src/feiying/static/media/hls4/seg0.ts +0 -0
  34. feiying-1.0.1/src/feiying/static/media/hls5/index.m3u8 +7 -0
  35. feiying-1.0.1/src/feiying/static/media/hls5/seg0.ts +0 -0
  36. feiying-1.0.1/src/feiying/static/media/hls6/index.m3u8 +7 -0
  37. feiying-1.0.1/src/feiying/static/media/hls6/seg0.ts +0 -0
  38. feiying-1.0.1/src/feiying/static/poster/p1.jpg +0 -0
  39. feiying-1.0.1/src/feiying/static/poster/p10.jpg +0 -0
  40. feiying-1.0.1/src/feiying/static/poster/p11.jpg +0 -0
  41. feiying-1.0.1/src/feiying/static/poster/p12.jpg +0 -0
  42. feiying-1.0.1/src/feiying/static/poster/p13.jpg +0 -0
  43. feiying-1.0.1/src/feiying/static/poster/p14.jpg +0 -0
  44. feiying-1.0.1/src/feiying/static/poster/p15.jpg +0 -0
  45. feiying-1.0.1/src/feiying/static/poster/p16.jpg +0 -0
  46. feiying-1.0.1/src/feiying/static/poster/p17.jpg +0 -0
  47. feiying-1.0.1/src/feiying/static/poster/p18.jpg +0 -0
  48. feiying-1.0.1/src/feiying/static/poster/p19.jpg +0 -0
  49. feiying-1.0.1/src/feiying/static/poster/p2.jpg +0 -0
  50. feiying-1.0.1/src/feiying/static/poster/p20.jpg +0 -0
  51. feiying-1.0.1/src/feiying/static/poster/p21.jpg +0 -0
  52. feiying-1.0.1/src/feiying/static/poster/p22.jpg +0 -0
  53. feiying-1.0.1/src/feiying/static/poster/p23.jpg +0 -0
  54. feiying-1.0.1/src/feiying/static/poster/p24.jpg +0 -0
  55. feiying-1.0.1/src/feiying/static/poster/p25.jpg +0 -0
  56. feiying-1.0.1/src/feiying/static/poster/p26.jpg +0 -0
  57. feiying-1.0.1/src/feiying/static/poster/p27.jpg +0 -0
  58. feiying-1.0.1/src/feiying/static/poster/p28.jpg +0 -0
  59. feiying-1.0.1/src/feiying/static/poster/p29.jpg +0 -0
  60. feiying-1.0.1/src/feiying/static/poster/p3.jpg +0 -0
  61. feiying-1.0.1/src/feiying/static/poster/p30.jpg +0 -0
  62. feiying-1.0.1/src/feiying/static/poster/p31.jpg +0 -0
  63. feiying-1.0.1/src/feiying/static/poster/p32.jpg +0 -0
  64. feiying-1.0.1/src/feiying/static/poster/p33.jpg +0 -0
  65. feiying-1.0.1/src/feiying/static/poster/p34.jpg +0 -0
  66. feiying-1.0.1/src/feiying/static/poster/p35.jpg +0 -0
  67. feiying-1.0.1/src/feiying/static/poster/p36.jpg +0 -0
  68. feiying-1.0.1/src/feiying/static/poster/p4.jpg +0 -0
  69. feiying-1.0.1/src/feiying/static/poster/p5.jpg +0 -0
  70. feiying-1.0.1/src/feiying/static/poster/p6.jpg +0 -0
  71. feiying-1.0.1/src/feiying/static/poster/p7.jpg +0 -0
  72. feiying-1.0.1/src/feiying/static/poster/p8.jpg +0 -0
  73. feiying-1.0.1/src/feiying/static/poster/p9.jpg +0 -0
  74. feiying-1.0.1/src/feiying/static/vendor/hls.min.js +2 -0
  75. feiying-1.0.1/src/feiying/static/vendor/hls.min.js.gz +0 -0
  76. feiying-1.0.1/src/feiying.egg-info/PKG-INFO +119 -0
  77. feiying-1.0.1/src/feiying.egg-info/SOURCES.txt +80 -0
  78. feiying-1.0.1/src/feiying.egg-info/dependency_links.txt +1 -0
  79. feiying-1.0.1/src/feiying.egg-info/entry_points.txt +2 -0
  80. feiying-1.0.1/src/feiying.egg-info/not-zip-safe +1 -0
  81. feiying-1.0.1/src/feiying.egg-info/requires.txt +3 -0
  82. feiying-1.0.1/src/feiying.egg-info/top_level.txt +1 -0
feiying-1.0.1/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 feiying
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
@@ -0,0 +1,6 @@
1
+ include README.md
2
+ include LICENSE
3
+ recursive-include src/feiying/static *
4
+ recursive-include src/feiying/downloads *
5
+ include src/feiying/catalog.json
6
+ global-exclude *.pyc __pycache__
feiying-1.0.1/PKG-INFO ADDED
@@ -0,0 +1,119 @@
1
+ Metadata-Version: 2.4
2
+ Name: feiying
3
+ Version: 1.0.1
4
+ Summary: 飞影 · MacCMS 播放器外壳,多数据源,一条命令自建
5
+ Author: feiying
6
+ License: MIT
7
+ Project-URL: Homepage, https://a3e8ccb225cfa33ec.app.workbuddy.host/?sharecode=EK2CY4UHDI
8
+ Keywords: maccms,vod,player,flask,self-hosted,termux
9
+ Classifier: Programming Language :: Python :: 3
10
+ Classifier: License :: OSI Approved :: MIT License
11
+ Classifier: Operating System :: POSIX :: Linux
12
+ Classifier: Operating System :: Android
13
+ Classifier: Environment :: Web Environment
14
+ Classifier: Framework :: Flask
15
+ Classifier: Topic :: Multimedia :: Video
16
+ Requires-Python: >=3.8
17
+ Description-Content-Type: text/markdown
18
+ License-File: LICENSE
19
+ Requires-Dist: flask>=2.0
20
+ Requires-Dist: requests>=2.20
21
+ Requires-Dist: waitress>=2.0
22
+ Dynamic: license-file
23
+
24
+ # 飞影
25
+
26
+ 一个跑在自己设备上的 MacCMS 播放器外壳。程序本身**不带任何片单**:你填哪个接口地址,它就显示哪个源的内容;首页、分类、详情、播放、搜索、24 小时缓存与增量更新都由它负责。
27
+
28
+ - 多数据源,右上角一键切换,各源缓存互不干扰
29
+ - 手机 / 电脑 / 电视盒子都能开,浏览器访问即可,不用装 App
30
+ - 不用 Docker、不用数据库、不用编译
31
+
32
+ ## 安装
33
+
34
+ ```bash
35
+ pip install feiying
36
+ ```
37
+
38
+ 想装在独立环境里(推荐,避免污染系统 Python):
39
+
40
+ ```bash
41
+ pipx install feiying
42
+ ```
43
+
44
+ Android 的 Termux 里:
45
+
46
+ ```bash
47
+ pkg install python
48
+ pip install feiying
49
+ ```
50
+
51
+ ## 启动
52
+
53
+ ```bash
54
+ feiying start
55
+ ```
56
+
57
+ 打开 <http://127.0.0.1:8080>。第一次是空白页,两种开始方式:
58
+
59
+ - 点「载入内置演示源」先看效果(36 部本地演示片,能点进详情、能播)
60
+ - 粘贴你自己的 MacCMS 接口地址(形如 `https://xxx.com/api.php/provide/vod/`),点保存
61
+
62
+ 手机和电脑连同一个 WiFi 时,用 `feiying status` 里显示的「同一WiFi」地址就能在电脑上打开。
63
+
64
+ ## 常用命令
65
+
66
+ | 命令 | 作用 |
67
+ |---|---|
68
+ | `feiying` | 状态一览 |
69
+ | `feiying start` | 后台启动 |
70
+ | `feiying start -f` | 前台启动,Ctrl+C 停止 |
71
+ | `feiying stop` | 停止 |
72
+ | `feiying restart` | 重启 |
73
+ | `feiying status` | 是否在跑、端口、版本、数据源、缓存 |
74
+ | `feiying log -f` | 实时日志 |
75
+ | `feiying port 9000` | 换端口并重启 |
76
+ | `feiying config` | 查看数据源配置 |
77
+ | `feiying cache` | 清服务端缓存 |
78
+ | `feiying update` | 升级到最新版 |
79
+ | `feiying open` | 用浏览器打开 |
80
+
81
+ ## 数据放在哪
82
+
83
+ `~/.feiying/`,升级或卸载包都不会动它:
84
+
85
+ ```
86
+ ~/.feiying/
87
+ ├─ config.json 数据源配置 ← 要备份就备份它
88
+ ├─ settings.json 端口等本机设置
89
+ ├─ cache/ 磁盘缓存,可随时删
90
+ └─ feiying.log 日志
91
+ ```
92
+
93
+ 换机器时把 `config.json` 拷过去即可,数据源不用重填。想换目录就设环境变量 `FEIYING_HOME`。
94
+
95
+ ## 接口
96
+
97
+ 所有接口都支持 `?src=<源id>` 指定源:
98
+
99
+ ```
100
+ GET /api/health 运行状态
101
+ GET /api/sources 源列表
102
+ POST /api/sources {"base_url":"..."} 或 {"builtin":true}
103
+ PATCH /api/sources/<id> 改名
104
+ DELETE /api/sources/<id> 删除
105
+ POST /api/sources/<id>/active 切换
106
+ GET /api/vod?ac=&pg=&t=&wd=&h= 数据代理(参数原样透传)
107
+ GET /api/cats 分类 + 每个分类的真实条数
108
+ GET /api/search?wd=演员+分类 多词 AND 搜索
109
+ GET /api/sync?hours=24 增量更新
110
+ GET /api/cache DELETE /api/cache 缓存统计 / 清理
111
+ ```
112
+
113
+ ## 说明
114
+
115
+ 本程序不托管、不转存、不分发任何视频文件,只做「按你填的接口取数据并渲染」。接口内容与使用方式请自行确保合规,只接入你有权访问的数据源。
116
+
117
+ ## 许可
118
+
119
+ MIT
@@ -0,0 +1,96 @@
1
+ # 飞影
2
+
3
+ 一个跑在自己设备上的 MacCMS 播放器外壳。程序本身**不带任何片单**:你填哪个接口地址,它就显示哪个源的内容;首页、分类、详情、播放、搜索、24 小时缓存与增量更新都由它负责。
4
+
5
+ - 多数据源,右上角一键切换,各源缓存互不干扰
6
+ - 手机 / 电脑 / 电视盒子都能开,浏览器访问即可,不用装 App
7
+ - 不用 Docker、不用数据库、不用编译
8
+
9
+ ## 安装
10
+
11
+ ```bash
12
+ pip install feiying
13
+ ```
14
+
15
+ 想装在独立环境里(推荐,避免污染系统 Python):
16
+
17
+ ```bash
18
+ pipx install feiying
19
+ ```
20
+
21
+ Android 的 Termux 里:
22
+
23
+ ```bash
24
+ pkg install python
25
+ pip install feiying
26
+ ```
27
+
28
+ ## 启动
29
+
30
+ ```bash
31
+ feiying start
32
+ ```
33
+
34
+ 打开 <http://127.0.0.1:8080>。第一次是空白页,两种开始方式:
35
+
36
+ - 点「载入内置演示源」先看效果(36 部本地演示片,能点进详情、能播)
37
+ - 粘贴你自己的 MacCMS 接口地址(形如 `https://xxx.com/api.php/provide/vod/`),点保存
38
+
39
+ 手机和电脑连同一个 WiFi 时,用 `feiying status` 里显示的「同一WiFi」地址就能在电脑上打开。
40
+
41
+ ## 常用命令
42
+
43
+ | 命令 | 作用 |
44
+ |---|---|
45
+ | `feiying` | 状态一览 |
46
+ | `feiying start` | 后台启动 |
47
+ | `feiying start -f` | 前台启动,Ctrl+C 停止 |
48
+ | `feiying stop` | 停止 |
49
+ | `feiying restart` | 重启 |
50
+ | `feiying status` | 是否在跑、端口、版本、数据源、缓存 |
51
+ | `feiying log -f` | 实时日志 |
52
+ | `feiying port 9000` | 换端口并重启 |
53
+ | `feiying config` | 查看数据源配置 |
54
+ | `feiying cache` | 清服务端缓存 |
55
+ | `feiying update` | 升级到最新版 |
56
+ | `feiying open` | 用浏览器打开 |
57
+
58
+ ## 数据放在哪
59
+
60
+ `~/.feiying/`,升级或卸载包都不会动它:
61
+
62
+ ```
63
+ ~/.feiying/
64
+ ├─ config.json 数据源配置 ← 要备份就备份它
65
+ ├─ settings.json 端口等本机设置
66
+ ├─ cache/ 磁盘缓存,可随时删
67
+ └─ feiying.log 日志
68
+ ```
69
+
70
+ 换机器时把 `config.json` 拷过去即可,数据源不用重填。想换目录就设环境变量 `FEIYING_HOME`。
71
+
72
+ ## 接口
73
+
74
+ 所有接口都支持 `?src=<源id>` 指定源:
75
+
76
+ ```
77
+ GET /api/health 运行状态
78
+ GET /api/sources 源列表
79
+ POST /api/sources {"base_url":"..."} 或 {"builtin":true}
80
+ PATCH /api/sources/<id> 改名
81
+ DELETE /api/sources/<id> 删除
82
+ POST /api/sources/<id>/active 切换
83
+ GET /api/vod?ac=&pg=&t=&wd=&h= 数据代理(参数原样透传)
84
+ GET /api/cats 分类 + 每个分类的真实条数
85
+ GET /api/search?wd=演员+分类 多词 AND 搜索
86
+ GET /api/sync?hours=24 增量更新
87
+ GET /api/cache DELETE /api/cache 缓存统计 / 清理
88
+ ```
89
+
90
+ ## 说明
91
+
92
+ 本程序不托管、不转存、不分发任何视频文件,只做「按你填的接口取数据并渲染」。接口内容与使用方式请自行确保合规,只接入你有权访问的数据源。
93
+
94
+ ## 许可
95
+
96
+ MIT
@@ -0,0 +1,41 @@
1
+ [build-system]
2
+ requires = ["setuptools>=68", "wheel"]
3
+ build-backend = "setuptools.build_meta"
4
+
5
+ [project]
6
+ name = "feiying"
7
+ version = "1.0.1"
8
+ description = "飞影 · MacCMS 播放器外壳,多数据源,一条命令自建"
9
+ readme = "README.md"
10
+ requires-python = ">=3.8"
11
+ license = { text = "MIT" }
12
+ authors = [{ name = "feiying" }]
13
+ keywords = ["maccms", "vod", "player", "flask", "self-hosted", "termux"]
14
+ classifiers = [
15
+ "Programming Language :: Python :: 3",
16
+ "License :: OSI Approved :: MIT License",
17
+ "Operating System :: POSIX :: Linux",
18
+ "Operating System :: Android",
19
+ "Environment :: Web Environment",
20
+ "Framework :: Flask",
21
+ "Topic :: Multimedia :: Video",
22
+ ]
23
+ dependencies = [
24
+ "flask>=2.0",
25
+ "requests>=2.20",
26
+ "waitress>=2.0",
27
+ ]
28
+
29
+ [project.scripts]
30
+ feiying = "feiying.cli:main"
31
+
32
+ [project.urls]
33
+ Homepage = "https://a3e8ccb225cfa33ec.app.workbuddy.host/?sharecode=EK2CY4UHDI"
34
+
35
+ [tool.setuptools]
36
+ package-dir = { "" = "src" }
37
+ include-package-data = true
38
+ zip-safe = false
39
+
40
+ [tool.setuptools.packages.find]
41
+ where = ["src"]
@@ -0,0 +1,4 @@
1
+ [egg_info]
2
+ tag_build =
3
+ tag_date = 0
4
+
@@ -0,0 +1,8 @@
1
+ """飞影 · MacCMS 播放器外壳(多数据源,可自建)。
2
+
3
+ pip install feiying
4
+ feiying start
5
+ """
6
+
7
+ __version__ = "1.0.1"
8
+ __all__ = ["__version__"]
@@ -0,0 +1,7 @@
1
+ """python -m feiying → 命令行;python -m feiying.server → 只跑服务。"""
2
+ import sys
3
+
4
+ from .cli import main
5
+
6
+ if __name__ == "__main__":
7
+ sys.exit(main())