Git Product home page Git Product logo

ef2's Introduction

MotooriKashin's github stats
MotooriKashin's github Top Langs

ef2's People

Contributors

motoorikashin 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

ef2's Issues

特殊链接(可能是跳转)会导入失败提示:未找到有效链接

一些特殊的链接,如: https://www.screenscraper.fr/api2/mediaGroup.php?devid=jelos&devpassword=jelos&softname=zzz&crc=&md5=&sha1=&groupid=2917&media=logo-monochrome&mediaformat=png

看上去不是个文件,是重定向到某个文件的,会在解析的时候失败,但是用 IDM 直接导入是可以,能否修复不要提示能导入,谢谢

sample.ef2:

<
https://www.screenscraper.fr/api2/mediaGroup.php?devid=jelos&devpassword=jelos&softname=zzz&crc=&md5=&sha1=&groupid=2917&media=logo-monochrome&mediaformat=png
referer: https://www.screenscraper.fr/api2/
User-Agent: Mozilla/5.0 (Windows NT 6.1; Trident/7.0; rv:11.0) like Gecko
>

ef2文件不支持utf-8编码的格式

您好:试用了您发布的工具,非常方便,特别是filename这个扩展很有效的解决了一些下载的问题,但是使用过程中发现如果导出的ef2格式文件为utf-8编码的话,解析到idm中会出现乱码,能否考虑后续对应utf-8编码的文件?

开发扩展(Manifest V3)版本

exe文件天然旧具有不安全感,Windows用户天然就抵触运行来历不明的exe文件,而且本人学习C++实在浅陋,WindowsAPI更是学了点皮毛,虽有精进之心,却没那个精力和能力。
于是我就想既然IDM官方有浏览器扩展文件,我们也可以逆向着写一个,浏览器扩展而已,不像exe那样有病毒之虑。
其实之前就研究过IDM官方扩展与IDM的通信机制,总共三条信道:

  1. websocket:这是全双工的网络通信,IDM后台程序有web服务器,扩展访问本地端口来交流信息,这是官方的首选方案。
  2. http POST:这是单向web通信,用来发送单条下载数据。
  3. Native Message:扩展专属与本机程序通信的机制,类似于websocket。

作为第三方,首选当然是websocket,毕竟在js环境中有开箱即用的支持,唯一的问题是IDM后台web服务器有白名单机制,来自第三方的web请求直接pass(http POST也一样pass)!根本无法建立连接。实际上是通过referer,这在Manifest V3时代通过declarativeNetRequestAPI似乎可以伪装一下解决?没试过🤣
次选方案Native Message,这在扩展环境是也是开箱即用的支持,不过这个也有白名单机制,不过这个白名单判定权在浏览器一方,而不是IDM本身,所以绕过方式非常简单,生成一份伪·白名单覆盖IDM安装目录下的json文件即可。

目前选择还是通过Native Message,扩展负责与IDM建立连接,然后暴露接口到页面上下文中,实现页面js直接拉起IDM进行下载的目的,相比于原exe方案,有以下优势:

  1. 无须写入注册表关联,对于讨厌别人乱动注册表的人来说是好事。
  2. 可以直接批量下载无须通过ef2文件。
  3. 未来或许可以实现主动呼出IDM浮动条。

唯一的劣势是第一次安装需要覆盖白名单,相比写入注册表完全由exe代劳,白名单可得用户自己去放,毕竟每个人IDM安装路径不尽相同——未来或许可以使用批处理(bat文件)处理,双击一下也很快🤣

其实选择扩展,主要还是为了第3点,拉出IDM浮动条,这个浮动条相比直接下载数据强大太多:

  1. 可以用来解析m3u8文件,这以往只能靠IDM自己捕获,本地想主动解析都没门!
  2. 可以用来自动封装DASH流媒体,再也不用分别下载一条视频轨一条音频轨了!
  3. 只要IDM官方浮动条支持的功能,大概都可以主动呼出……

目前虽然有了些进展,但只能通过Manifest V2扩展,因为拉出浮动条的很多参数只有MV2的API才获取的到。如何以MV3的API实现,还是得看IDM官方的扩展样品放出代码,毕竟那些参数究竟有何意义只有IDM官方才知道。
Google已于2022年6月禁止新MV2扩展上架,并将在2023年6月彻底禁止chorme运行MV2扩展,留给IDM的时间已经不多了,所以符合新标准扩展什么时候上架,快点端上来吧IDM🤣

当前进度并未推送上来,毕竟第3点不实现扩展相比于exe优势实在不大,这个feature可能要长期放着了。

有两个BUG!

第一个就是 -O 设置下载路径 中文会显示???乱码

第二个就是 -a 设置指定ua 会无效!神奇的是用 -u 设置ua ,下载地址也是-u ,虽然ua会被识别成到下载链接后面 但是IDM可以识别到指定ua 什么时候可以修复这些问题呢!!

安装后还是无法下载ef2

安装后还是显示IDM目前不支持ef2数据传输协议。或许这是个拼写错误,请检查拼写后重试。IDM版本6.4.1version3

How to compile the project?

Hi,

I have Visual Studio 2022 installed and followed your compilation instructions on the front page. However, I found that VSCode is not able to compile the project. I don't remember the exact error message, but it seems like some VSCode extension is required. So, I installed this one:

image

After that, when I press F5, I get this:

image

Have I missed anything?

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.