# dandan **Repository Path**: lianxun/dandan ## Basic Information - **Project Name**: dandan - **Description**: 弹弹play资源搜索节点API规范 https://github.com/kaedei/dandanplay-libraryindex/blob/master/api/ResourceService.md - **Primary Language**: PHP - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 17 - **Forks**: 5 - **Created**: 2021-01-12 - **Last Updated**: 2024-04-02 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # dandan搜索节点API实现 #### 介绍 php+curl实现弹弹资源搜索节点api,已有伊诺大佬做了python的实现 https://pastebin.ubuntu.com/p/mGP7JRpBtd/ 可自行选择. 实现的是动漫花园的解析,**程序需要部署在可以访问花园的服务器** 弹弹API规范(https://github.com/kaedei/dandanplay-libraryindex/blob/master/api/ResourceService.md) #### php版本地安装 1. 安装xampp(apache服务器) https://sourceforge.net/projects/xampp/files/XAMPP%20Windows/5.6.40/ **注意:zip/7z版只能解压到分区的根目录,如c: , d:** 第三方插件 phpQuery 是基于php5的,所以没用高版本。 修改xampp安装目录下的php\php.ini, 例如: D:\xampp\php\php.ini 查找error_reporting这一行,改为error_reporting=E_ALL & ~E_NOTICE & ~E_DEPRECATED ![输入图片说明](https://images.gitee.com/uploads/images/2021/0128/081100_8e1ae03b_384991.jpeg "xampp_php.jpg") 2. 部署应用 下载git代码zip,解压得到dandan目录,放到xampp安装目录下的htdocs,最终路径示例: D:\xampp\htdocs\dandan 3. 启动xampp的apache服务 运行xampp控制台,例如:D:\xampp\xampp-control.exe,点击start按钮: ![输入图片说明](https://images.gitee.com/uploads/images/2021/0116/180146_630e2f0d_384991.jpeg "xampp_apache.jpg") 如需开机启动,先点击stop, 再点击左侧的红叉,会将apache安装为系统服务。详见 https://blog.51cto.com/zdytesting/2124877 4. 访问测试 http://localhost/dandan/dmhy/list http://localhost/dandan/dmhy/subgroup http://localhost/dandan/dmhy/list?keyword=fate&subgroup=185&type=2&r=12345 #### python版本地安装 1. 安装anaconda (python全家桶) https://www.anaconda.com/download/ 2. 安装依赖库 进入Anaconda3命令行窗口 - 在win开始菜单搜索Anaconda Prompt,点击菜单项Anaconda Prompt (anaconda3),进入命令行窗口。 也可以直接到目录中运行,比如C:\Users\用户名\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Anaconda3 (64-bit)\Anaconda Prompt (anaconda3) ![输入图片说明](https://images.gitee.com/uploads/images/2021/0128/025001_20836ac6_384991.jpeg "Anaconda_StartMenu.jpg") 在窗口中运行下列命令 ![输入图片说明](https://images.gitee.com/uploads/images/2021/0128/083332_3671df59_384991.jpeg "Anaconda_RunPython_cmd.jpg") pip install uvicorn -i http://mirrors.aliyun.com/pypi/simple/ --trusted-host mirrors.aliyun.com pip install fastapi -i http://mirrors.aliyun.com/pypi/simple/ --trusted-host mirrors.aliyun.com pip install arrow -i http://mirrors.aliyun.com/pypi/simple/ --trusted-host mirrors.aliyun.com pip install requests -i http://mirrors.aliyun.com/pypi/simple/ --trusted-host mirrors.aliyun.com pip install bs4 -i http://mirrors.aliyun.com/pypi/simple/ --trusted-host mirrors.aliyun.com 3. 确认程序 将伊诺大佬的python代码(https://pastebin.ubuntu.com/p/mGP7JRpBtd/) 复制到文件dandanapi.py, 放到任意目录 ,如 c:\ 如果服务器已经能访问花园,修改代码去掉proxy(不修改也行,在运行时指定proxy="") ``` def get_proxies(): #return {'http': proxy_uri, 'https': proxy_uri} return {} ``` 否则,修改proxy_uri = "http://127.0.0.1:1080" 改成实际地址 4. 启动程序 在Anaconda3命令行窗口下执行 cd c:\ 如果get_proxies或proxy_uri已经在dandanapi.py中修改, 只在本机访问,直接运行 python dandanapi.py 如果未修改dandanapi.py, 可以指定参数运行,可指定的参数host,port,proxy 示例1 - 指定host,port,不用proxy: python dandanapi.py host=192.168.1.245 port=8000 proxy="" (host为服务器的ip, 这样别的机器也能访问http://192.168.1.245:8000/) 示例2 - 指定port,使用proxy: python dandanapi.py port=8000 proxy=127.0.0.1:1080 ![输入图片说明](https://images.gitee.com/uploads/images/2021/0128/084056_f1ff204e_384991.jpeg "Anaconda_RunPython.jpg") **4.x 有爱人士的补充 - 无窗口后台运行+开机启动:** - python代码修改: ``` import win32api, win32gui if __name__ == "__main__": for arg in sys.argv: if arg.startswith("host="): run_host = arg.replace("host=", "") continue if arg.startswith("port="): run_port = int(arg.replace("port=", "")) continue if arg.startswith("proxy="): proxy_uri = arg.replace("proxy=", "") continue ct = win32api.GetConsoleTitle() hd = win32gui.FindWindow(0,ct) win32gui.ShowWindow(hd,0) uvicorn.run(app, host=run_host, port=run_port, debug=False) ``` - 编辑批处理命令 startDandanapi.bat: ``` @rem根据实际路径修改 c: call C:\Users\用户名\anaconda3\Scripts\activate.bat C:\Users\用户名\anaconda3 python C:\dandanapi.py host=localhost port=8000 proxy="" ``` - 开机启动: 将startDandanapi.bat放入启动文件夹,例如: C:\Users\用户名\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup 5. 访问测试 http://localhost:8000/type http://localhost:8000/subgroup http://localhost:8000/list?keyword=fate&subgroup=185&type=2&r=12345 如果别的设备也需要访问,则指定host参数,如 python dandanapi.py host=192.168.1.245 port=8000 proxy="", 访问地址相应变为 http://192.168.1.245:8000/type http://192.168.1.245:8000/subgroup http://192.168.1.245:8000/list?keyword=fate&subgroup=185&type=2&r=12345 #### 弹弹客户端设置 详见官方说明:https://mp.weixin.qq.com/s/0xzIJX2LWnncc2YKpe6sfw 弹弹PC客户端->设置->网络与更新->自定义端点-> **修改API端点地址留空不要填写**,修改资源搜索节点地址 填入http://localhost/dandan/dmhy 或 http://localhost:8000 #### 关于扩展 弹弹官方不再负担搜索的服务器开销,由客户端自理。理论上可以把任何站点作为搜索源,比如末日网站或者自己喜好的网站,弹弹更具有适用性。 支持更多站点的api,可参照伊诺大佬的python代码自行实现,有爱人士实现后亦可留言告知,造福群众。