当前位置: 首页 > 软件库 > 应用工具 > 下载工具 >

downthemall

The DownThemAll! WebExtension
授权协议 View license
开发语言 Java
所属分类 应用工具、 下载工具
软件类型 开源软件
地区 不详
投 递 者 壤驷瑾瑜
操作系统 跨平台
开源组织
适用人群 未知
 软件概览

DownThemAll!

DownThemAll! WE

The DownThemAll! WebExtension.

For those still on supported browser: Non-WebExtension legacy code.

About

This is the WebExtension version of DownThemAll!, a complete re-development from scratch.Being a WebExtension it lacks a ton of features the original DownThemAll! had. Sorry, but there is no way around it since Mozilla decided to adopt WebExtensions as the only extension type and WebExtensions are extremely limited in what they can do.

For what is planned (and not planned because impossible to do in WebExtensions), see TODO.md.

What this furthermore means is that some bugs we fixed in the original DownThemAll! are back, as we cannot do our own downloads any longer but have to go through the browser download manager always, which is notoriously bad at handling certain "quirks" real web servers in the wild show. It doesn't even handle regular 404 errors.

I spent countless hours evaluating various workarounds to enable us to do our own downloads instead of relying on the downloads API (the browser built-in downloader). From using IndexedDB to store retrieved chunks via XHR, to doing nasty service-worker tricks to fake a download that the backend would retrieve with XHR. The last one looks promising but I have yet to get it to work in a manner that is reliable, performs well enough and doesn't eat all the system memory for breakfast. Maybe in the future...

What this also means is that we have to write our user interface in HTML, which never looks "native" and cannot offer deep OS integration.

But it is what it is...

What we can do and did do is bring the mass selection, organizing (renaming masks, etc) and queueing tools of DownThemAll! over to the WebExtension, so you can easily queue up hundreds or thousands files at once without the downloads going up in flames because the browser tried to download them all at once.

Translations

If you would like to help out translating DTA, please see our translation guide.

Development

Requirements

Setup

You will want to run yarn to install the development dependencies such as webpack first.

Making changes

Just use your favorite text editor to edit the files.

You will want to runyarn watch.This will run the webpack bundler in watch mode, transpiling the TypeScript to Javascript and updating bundles as you change the source.

Please note: You have to run yarn watch or yarn build (at least once) as it builds the actual script bundles.

Running in Firefox

I recommend you install the web-ext tools from mozilla. It is not listed as a dependency by design at it causes problems with dependency resolution in yarn right now if installed in the same location as the rest of the dependencies.

If you did, then running yarn webext (additionally to yarn watch) will run the WebExtension in a development profile. This will use the directory ../dtalite.p to keep a development profile. You might need to create this directory before you use this command. Furthermore yarn webext will watch for changes to the sources and automatically reload the extension.

Alternatively, you can also yarn build, which then builds an unsigned zip that you can then install permanently in a browser that does not enforce signing (i.e. Nightly or the Unbranded Firefox with the right about:config preferences).

Running in Chrome/Chromium/etc

You have to build the bundles first, of course.

Then put your Chrome into Developement Mode on the Extensions page, and Load Unpacked the directory of your downthemall clone.

Making release zips

To get a basic unofficial set of zips for Firefox and chrome, run yarn build.

If you want to generate release builds like the ones that are eventually released in the extension stores, use python3 util/build.py --mode=release.

The output is located in web-ext-artifacts.

  • -fx.zip are Firefox builds
  • -crx.zip are Chrome/Chromium builds
  • -opr.zip are Opera builds (essentially like the Chrome one, but without sounds)

The AMO Editors tl;dr guide

  1. Install the requirements.
  2. yarn && python3 build/util.py --mode=release
  3. Have a look in web-ext-artifacts/dta-*-fx.zip

Patches

Before submitting patches, please make sure you run eslint (if this isn't done automatically in your text editor/IDE), and eslint does not report any open issues. Code contributions should favor typescript code over javascript code. External dependencies that would ship with the final product (including all npm/yarn packages) should be kept to a bare minimum and need justification.

Please submit your patches as Pull Requests, and rebase your commits onto the current master before submitting.

Code structure

The code base is comparatively large for a WebExtension, with over 11K sloc of typescript.It isn't as well organized as it should be in some places; hope you don't mind.

  • uikit/ - The base User Interface Kit, which currently consists of
    • the VirtualTable implementation, aka that interactive HTML table with columns, columns resizing and hiding, etc you see in the Manager, Select and Preferences windows/tabs
    • the ContextMenu and related classes that drive the HTML-based context menus
  • lib/ - The "backend stuff" and assorted library routines and classes.
  • windows/ - The "frontend stuff" so all the HTML and corresponding code to make that HTML into something interactive
  • style/ - CSS and images
  • firefox浏览器有一个好用的批量下载插件:downthemall 安装地址:http://www.downthemall.net/ 进入之后找到Install DownThemAll now!按钮并点击即可自动安装到firefox 安装完成后会要求你重启firefox浏览器,之后当你下载一个东西的时候,下载选项就会多出一个。 这个下载插件是不较好用的,而且速度还不错哟! 之前在linux mi

  • 打开视频网站时提示无法加载视频,没有安装插件,点击视频节目中间的安装插件按钮。 点击安装后会自动打开flashplayer下载界面,需要选择安装方式。 在弹出来的界面中左下角选择安装方式,我选择的是.tar.gz方式安装,然后点击右下角的Download下载插件。下载方式都选择默认,然后点击OK 浏览器会弹出下载界面,等待下载完成。下载完成以后的文件一般是在/tmp文件夹内,下载完成后在命令行界面

  • 打开视频网站时提示无法加载视频,没有安装插件,点击视频节目中间的安装插件按钮。 点击安装后会自动打开flashplayer下载界面,需要选择安装方式。 在弹出来的界面中左下角选择安装方式,我选择的是.tar.gz方式安装,然后点击右下角的Download下载插件。下载方式都选择默认,然后点击OK 浏览器会弹出下载界面,等待下载完成。下载完成以后的文件一般是在/tmp文件夹内,下载完成后在命令行界面

  • DownThemAll! 1.1.2 March 24, 2009 A new release of dTa! has been made available today to fix a compatibility issue with other extensions. You can learn more here , and get it from Mozilla Add-ons or f

  • # normalize filename of file downloaded by DownThemAll # convert 'extjs%E7%94%B5%E5%AD%90%E6%95%99%E7%A8%8B' to 'extjs电子教程' # only tested on Windows XP from glob import glob import urllib2 import os

 相关资料
  • 我想知道如何在Firefox WebExtension中访问和修改JavaScript中跨域iframe的内容。我理解普通JavaScript的局限性,也理解修改跨域iframe将是XSS漏洞,但我相信在我找不到的WebExtension中有某种方法可以做到这一点。我相信这是因为遗留扩展清单在权限部分中有允许跨域内容的选项。 当查看FireFox扩展的旧版本的旧代码时,似乎可以选择某些网站的跨域内

  • Webpack WebExtension Plugin Webpack plugin that compiles web-extension manifest.json files and adds smart auto reload. What does it do? Autoreload extensions via websockets Use vendor prefixes in mani

  • WebExtension Toolbox Small cli toolbox for creating cross-browser WebExtensions. If you want to get started quickly check out the yeoman generator for this project. Browser Support Chrome (chrome) (au

  • Vuex WebExtensions A Node.JS module to use Vuex on WebExtensions on "shared" context, the module allows you to start several instances of Vuex store and keep them synchronized throught WebExtensions m

相关阅读

相关文章

相关问答

相关文档