Giter Site home page Giter Site logo

erickutcher / httpdownloader Goto Github PK

View Code? Open in Web Editor NEW
493.0 493.0 64.0 3.11 MB

HTTP(S) download manager that uses input/output completion ports (IOCP).

Home Page: https://erickutcher.github.io/#HTTP_Downloader

Assembly 0.67% C 14.25% C++ 81.31% JavaScript 2.74% HTML 1.03%

httpdownloader's People

Contributors

bovirus avatar erickutcher avatar sr093906 avatar udev2019 avatar wcxu21 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  avatar  avatar  avatar

httpdownloader's Issues

Thanks and some requests

Thanks for creating a bloat-free download manager that can easily get download links (along with referer and cookies) from Firefox and Chrome browsers. Implementing communication between browser and download manager by running a server was a brilliant idea.

For a super light-weight program, it has almost all essential features. But if you find time, please consider the following additional requests:

  • In the "Add URL(s)" dialog, please create a button "Fetch size" which would fetch and show the file size before starting download. When adding multiple urls, this might get complicated - so maybe enable this button only in case of a single url.
  • Currently, the "Add URL(s)" dialog contains buttons for "Download" and "Cancel". Please add one more button "Queue", which would just add to the queue of download tasks instead of downloading immediately.
  • It already has support for http/https proxy. How about adding support for SOCKS 5 proxy? Another minimalist downloader MiniGet has this feature although it lacks many other features supported by HTTP downloader.

Issues that have been raised before by others but immensely useful to me as well:

  • append an extension to incomplete file
  • automatic rename in case file with same name exists

I think that the program would still be super light-weight after adding the above features.

Thanks again for this software.

Portable Mode

Currently (as of version 1.0.0.6) HTTP Downloader saves history (download_history) and configuration (http_downloader_settings) files in AppData:

C:\Users\User\AppData\Local\HTTP Downloader

I would appreciate if there is an option to save history and settings files in program folder which will make HTTP Downloader truly portable.

Portable mode may be implemented in different ways, for example:

  • command-line argument- if the program is started with a special parameter, for example HTTP_Downloader.exe -portable, history and settings are saved in program folder;
  • portable flag - an empty file (for example Portable) in program folder triggers portable mode, on program start HTTP Downloader checks program folder for Portable flag and if it is present settings and history are saved in program folder;
  • special sub-folder - a special sub-folder (for example Data) triggers portable mode, on program start HTTP Downloader checks program folder for this special sub-folder and if it is present settings and history are saved in program folder (perhaps in this special Data sub-folder);
  • check-box - a check-box in options (Save Data in Program Folder or just Portable Mode) enables portable mode- history and settings saved in program folder.

Any of these options would be fine for me, I just need to be able to save all program data in program folder which will make HTTP Downloader really portable.

Drop Box

Adding download links manually works fine but this is not the handiest way to pass downloads to a download manager (especially when browser integration does not work which is the case for me). I know that HTTP Downloader supports 'Drag&Drop' and 'Always on Top' but I think that it would be easier if the program offers a drop box (also called drop basket)- a tiny square box to which the user may drag&drop download links and it opens 'Add URL(s)' dialog.

Usage

  • 'Drop Box' can be enabled from menu bar ('View') or from tray menu ('Show Drop Box' or just 'Drop Box');
  • 'Drop Box' can be moved on desktop and last used position is remembered after restart;
  • 'Drop Box' can have the same context menu commands like tray menu;
  • When a download link is dragged and dropped to 'Drop Box' it opens 'Add URL(s)' dialog;

Advantages

  • Dragging and dropping download links to 'Drop Box' would be faster than copying the link and pasting it in HTTP Downloader;
  • A tiny square (the 'Drop Box') being 'Always on Top' would be handier for dragging and dropping of links than the whole program window being 'Always on Top';

Windows Defender quarantined Trojan:Win32/Azden.A!cl (Severe)

I've been using HTTP_Downloader w/Windows 10 since 2/19/2019, but on 3/8/2019 my Windows Defender quarantined it as a "Trojan:Win32/Azden.A!cl" and indicated that "the program is dangerous and executes commands from an attacker".

HTTP_Downloader_20190308131607

I don't want to put myself or business at risk. Any idea what would cause this?

About Window

I suppose that 'About' window might be enhanced a bit with clickable URLs (which are opened in default browser on click) which will provide an easy access to some HTTP Downloader resoures, for example:

Such enhanced 'About' window is not of great importance but I suppose that with clickable links ot would look better and it would provide the users with fast access to most important program resources.

Pop-up Notification

Now (as of version 1.0.1.1) HTTP Downloader offers an option for sound notifications for the completed downloads. It is a nice option but I found all sound notifications distracting- I have even disabled all Windows sounds. I would prefer a tony pop-up notification window which shows a text message for a certain period of time that all the downloads are completed. If such pop-up notification is implemented there might be an option to choose how long it should stay open before it disappears (2, 3, 5 seconds, etc).

If you do not like the idea, or you think it requires too much work and it is not worth the effort please feel free to close this issue.

Tool Bar

You may consider adding a tool bar for quick access to most common commands ('Add', 'Start', 'Pause', 'Stop', 'Options', 'Exit', etc) which are currently accessible from menu bar and from context menu. Tool bar may be disabled by default, accessible from 'View' menu. I think that using tool bar commands would be faster than using the current commands- for example- using tool bar button 'Add URL(s)' will require 1 click, using 'Add URL(s)' command from menu bar requires 2 clicks, the same for example for 'Pause'- 1 click if executed from 'Pause' tool bar button, 2 clicks if executed from context menu (right-click on a download, then 'Pause').

By the way what is the difference between 'Pause' and 'Stop' commands?

Get Time and Date from Server

I would highly appreciate if there is a new option to get time and date for the downloaded file from server (perhaps in 'Options' - 'General'):

  • Get Time and Date from Server

which, if enabled, forces HTTP Downloader to retrieve the time and date for the downloaded file from server (if the server supports that).

This is a rather common feature for the download managers, for example:

  • in DownloadStudio - 'Use web server's date and time for downloaded files';
  • in Free Download Manager - 'Set the date of a file identical to the date specified by the server';
  • in Internet Download Accelerator - 'Get date and time of file creation from the server';

I hope that this option would be implemented in the future releases of the program.

Browser Integration

This is more a question than a request. I managed to add the Chrome Extension (version 1.0.0.1) of HTTP Downloader to two Chromium-based browsers (Cent Browser and Vivaldi):

http_downloader_chrome_extension 1 0 0 1 - 2018-09-30 - 002

it had options menu:

http_downloader_chrome_extension 1 0 0 1 - 2018-09-30 - 004

and it appeared on extensions bar:

http_downloader_chrome_extension 1 0 0 1 - 2018-09-30 - 006

but it did nothing, My expectation was that new downloads should be passed from the browser to HTTP Downloader (via 'Add URL(s)' dialog) but nothing like that happened. Am I missing something? How is Chrome Extension supposed to work?

I also tried to integrate HTTP Downloader with an old, pre-Quantum version of Firefox via FlashGot:

http downloader 1 0 0 7 - 2018-09-30 - flashgot - 001

but I failed again because I did not know what placeholder should I use. Is it possible to integrate HTTP Downloader with Firefox (versions 57 and older) via FlashGot add-on?

Restart Download

When a downloaded file has been deleted or it has been updated on the server it might be useful to have an option to restart the download- right-click on completed download- new context menu item (perhaps below 'Stop' command):

  • Restart

which just re-downloads the file. If such context menu command is implemented it might also be added to the tool bar ('Restart' button, perhaps after 'Stop' button to the right- 'Start' - 'Pause' - Stop' - 'Restart').

Ability to verify that a download completed correctly

Please consider adding the ability to check if a download completed correctly. [Data received fully intact]

Maybe a checksum (SHA-3) against an expected checksum for each download and a byte-based count check?

This would improve confidence and reassure users ๐Ÿ‘

Silent Mode

I would like to suggest a new option (perhaps new check box in 'Options' - 'General'):

  • Silent Mode

which, if enabled, automatically starts the download after it has been added either either via 'URL drop window' or via 'Download Link' browser context menu command (when browser extension is installed). This would mean that 'Add URL(s)' dialog would be skipped. I think that this might be particularly useful if in the future the browser extensions manage to intercept the downloads directly from the browser- click on a download link- the download starts automatically without any confirmation. If you do not like the idea just close this issue.

Watch Clipboard

Adding download links to HTTP Downloader may be facilitated via a new option (perhaps a new check-box in 'Options' - 'General'):

  • Watch Clipboard

which, if enabled, watches the clipboard for download links, and if such links are detected, they are automatically passed to 'Add URL(s)' dialog.

Default Download Directory

Bug
I think that there is a bug in HTTP Downloader version 1.0.1.6- it loses its "Default download directory".

Reproduce

  • Execute "Add URL(s)" command either from File or from Toolbar or from Tray;
  • Cancel "Add URL(s)" command;
  • Next time "Add URL(s)" command is executed "Download directory" box is blank;
  • HTTP Downloader opens warning message "You must supply a download directory.";

Screen
http downloader 1 0 1 6 - 2019-01-23 - 002

Note
Even though "Download directory" box is blank the download starts sometimes but not always. This happens with version 1.0.1.6 only, both x32 and x64 builds. I have never experienced the same problem using earlier versions of HTTP Downloader. Please confirm the problem.

Clear History

Currently (as of version 1.0.0.7) the download history can be cleared via 'CTRL+A' command and 'Remove Selected' context menu command.

You may add an option to use 'Del' command to delete selected download(s). Thus the user would not need to use 'Remove Selected' command via context menu- just mark a download and then press 'Del' key. This would be equal to 'Remove Selected' context menu command and it would be handy for those accustomed to use the keyboard- 'CTRL+A' selects all downloads, 'Del' deletes all downloads. For me the combination of 'CTRL+A' to select all and 'Del' to delete selected is logical and its usage is common.

You may also add a new context menu command- 'Remove All' (perhaps below 'Remove Selected' command) which clears all download history.

Links and wildcards

I wonder if possible some function to use links with custom wildcards.
Why that? I'm was looking for the direct download link for CCleaner, portable and current build.
And although exist, is using this format
https://download.ccleaner.com/portable/ccsetup549.zip
where the 549 is the program version, so tomorrow can be 550, 532 or whatever.
Then with custom wildcards we can download from this direct link without know what is the current version number.
Of course this can have more utilities like batch downloads, extra options for command line, etc

By example some options to make things as:
https://download.ccleaner.com/portable/ccsetup*0*999.zip to download all from that link with "ccsetup0.zip" to "ccsetup999.zip"

I know probably this is not the best/proper way to implement wildcards, is just an example about what I want heh :P

Work with SingleFile Extension

When HTTP Downloader is integrated with Chromium-based browsers via the extension it cannot download the files prepared by another extension- SingleFile:

When HTTP Downloader extension is set to Override browser's download manager the HTML files created by SingleFile are not downloaded right, HTTP Downloader gets something like that (file without extension, 6 KB size):

96a9297e-7bce-4a42-8d31-40241e26653d

When I download the same file via the browser (Override browser's download manager is disabled) I got a file with a name like that:

HTML NAME (2018-11-25 1_45_30 PM).html

As a workaround I download the HTML file via the browser. Is it possible to make HTTP Downloader get the right file from SingleFile? If this is beyond the scope of HTTP Downloader please close this issue.

Saving Download History

This is rather a question than an issue.

If 'Enable download history' option is selected it seems that the download history is saved on program exit (if new files have been downloaded since previous session), is that true? A day ago I had to shut down the computer using the power button and the new downloads for the latest session were lost. What about every new download being immediately saved after completion in 'download_history' file?

Export History

I would like to suggest a new feature:

  • Export History

perhaps accessible via 'File' - 'Export History' which would allow the user to save download history to file (TXT file, HTML file, or both). I suppose that such a feature would be useful (at least for me it would be).

Torrent

Hi erickutcher, I wonder if possible in the future add support for Torrent, I guess this is a bit complicated to do, but indeed there are some simple download managers wich have this, Like EagleGet and MiniGet, this last the latter is very small too.

Thanks and (lots of) feedback

Thanks a lot for HTTP Downloader :) . It is fast, straightforward, handles what more established downloaders can't, and seems very promising.

Some feedback:

Adding URLs:

  • Editable download location field (i.e. allows paste).
  • Show the better location selection window (where you can access location history from the address bar) like here and here.
  • Option to show drop window from tray menu.
  • Option to automatically paste clipboard contents when clicking add URLs.
  • Bug: crashed when I dragged a txt file with links to it.
  • Option to automatically encode non-ASCII characters in imported/pasted URLs.

Saving:

  • If there is a "File IO Error", you can rename the file but the restart option (and related options) is grayed out.
  • Rename patterns see DownThemAll (which was better than most standalone download managers). This will also help witch duplicate filenames.
  • Append an extension to the incomplete file part during download, or download to a temp folder then move to location.
  • If two downloads have the same filename (File.zip, file.zip), add option to rename automatically instead of I/O Error.
  • If a link has a URL-encoded non-ASCII characters (like here or here or here), (in these examples, each file is saved with a different name. See image below), I believe the file should be saved in Unicode.

1

List:

  • Confirmation policy for different task (e.g. for me, warning when deleting an unfinished entry, but not needed when clearing completed downloads).
  • Bug: Select entry in download list. Move to a different window. Click HTTP Downloader window title. Press down or up keys. Won't scroll although file is highlighted.
  • Del key should be to remove entry not the file I just downloaded. A shortcut should be for the more common action, I think. You could provide hotkey options.
  • Bug: When you click "delete" on a running download, the program continues to download.
  • Some options defaults should be revised, I think. For example, prevent sleep while downloading.

Behavior:

  • Better dealing with unexpected termination (force quit, power failures, etc). It returns to the last saved state and you have to re-add interrupted files. I think it should save every couple of seconds or something to that effect.
  • Don't resume automatically on startup. Or offer an option for this.
  • Download verification: IDM does something like this (which I think you should consider): On resuming, redownload the last few bytes/kilobytes of the finished part(s) to make sure they are the same thus decreasing the likelihood of file corruption. Maybe also check modification date and time of the server file.
  • Set concurrent downloads/connections/parts/etc per domain.

Settings:

  • Why save file settings as a binary? This hinders export, modification, etc.

Export:

  • Option to export just the URL Links (this can be done currently by editing the exported CSV file but I think it should be easier.)

Extension:

  • Get extension on addons.mozilla.org

General:

  • Better (unique) name for the future :) ?

Thanks again!

P.S. Please tell me if you want separate issues :)

Queue Commands

This is a question. There is 'Queue' context menu with sub-commands:

  • Move To Top
  • Move Up
  • Move Down
  • Move To Bottom

but these sub-commands are inaccessible (grayed out), screen:

http downloader 1 0 0 7 - 2018-09-30 - queue - 001

Why these commands are not accessible? They are supposed to work only with active downloads?

Single Instance

I discovered that the user can start multiple instances of HTTP Downloader. This is not bad but you may add new check-box in 'Options' (perhaps in 'General' tab):

  • Single Instance

which, if checked, will allow only a single instance of HTTP Downloader to be started.

Progress in task bar icon?

Please consider adding a progress indicator to the taskbar icon for HTTP Downloader.
This would allow the app to be minimized and still show the status.

e.g (pink border):
preview

The bar could indicate the "percentage completed for active downloads in the list".

Green could show it's active, yellow for paused and red for "an error has occured" (download failed etc).

"RUN" problems

Adding Http Downloader's path to windows environment and running it thru "RUN" wont read the settings from the folder and creates new one in app data,for portability (i added a blank file named "portable") on the other hand clicking on the icon twice from the folder reads the settings correctly.

Window Position

In fact HTTP Downloader remembers window size and columns' width but it does not remember window position on desktop (in my case- centered) so I have to reset it any time I start the program. It would be nice if HTTP Downloader can also save window position in the configuration file ('http_downloader_settings').

OwnCube/ownCloud

I have had problems downloading files from OwnCube (OwnCube login)- files are downloaded just fine but they are not named properly:

  • Example 1 - if the file name is APNG-2018.10.10.7z it is downloaded as APNG-2018.10.10.7z; filename=_APNG-2018.10.10.7z_;
  • Example 2 - if the file name is Indexer++ Beta.exe.159484.dmp it is downloaded as Indexer++ Beta.exe.159484.dmp; filename=_Indexer++ Beta.exe.159484.dmp_;

A couple of downloads:

As a workaround I have to rename the downloaded files manually.

Please confirm the problem.

Update Check

I will suggest a new feature to check for updates- 'Help' - new command:

  • Check for Updates

If a update is available a pop-up message prompts to open download page in browser.

Further in 'Options' there might be added a new check box:

  • Check for updates when program starts

Since I watching this project I get notifications from GitHub so I don't really need update check but I suppose that this feature might be handy to users who are not following the project on GitHub.

This has already been discussed in #19 but I will post it as separate issue with some more details.

Locale support

Can be nice view HTTP Downloader in other languagues in addition to english.
maybe something as "lang.ini" along with HTTP_Downloader.exe to translate the program if someone want. and/or including the translation(s) file(s) in the repository to translators :P

Download Directory not being set?

There seems to be a bug with adding a download in the newest version.
The download directory seems to be not set properly.

pic

I've tested with setting it to C:\Temp or the downloads folder but it prompts in both situations. (both exist)

REQUEST: command line options

REQUEST: command line options for

  • input .txt file with download links
  • quit the application
  • url (add url to download from command line)

Windows XP support

Hi, with last release HTTP Downloader is not working in Windows XP, please fix this if not problem.

Re-ordering Download in the List

Please consider improving the behaviour of re-ordering downloads in the list.

E.g.
ordering

Currently there is no visible feedback for re-ordering, the download doesn't move/down up the list. It seems to re-order in the background.

Is the # column an index (download ID) or the ordering?
Maybe there should be a list item click-and-drag functionality to reorder items, or pressing Ctrl+PgUp or Ctrl+PgDn for selected item(s)?

Thanks for making worthwhile software ๐Ÿ’ƒ

Add URL Dialog (Clipboard Insert)

Please consider adding a checkbox option to "Insert URLs in Clipboard to the Add URL dialog".
That would add links in the Windows Clipboard to the URL(s) field by default.

History Editor - Icon

I have briefly tested HTTP Downloader History Editor (version 1.0.0.0), it seems to work fine, thanks. I would like to suggest that you embed the HTTP Downloader icon in the executable (HDHistoryEditor.exe) and in the title bar, screen:

http downloader history editor 1 0 0 0 - 2019-02-15 - 002

With icons embedded in the executable and in the title bar the program would look slightly better. I suppose this is very easy to be implemented.

request: mirror settings

ey, id like to request adding a mirror settings feature if possible. currently httpdownloader is a special kind of downloader for static content. with mirror settings per download tasks i think it could become a generalized downloader.

for example, there are some sites/hosts for example that like to expire download links every so often, with mirrors we could attempt to continue before the link expired (refresh dead links in other downloaders), and hopefully still download the file intact. or as a fail safe procedure, delete off some of the unfinished chunks and restart them with the new links.

what do you guys think?

Error in downloading pdf file when using Squid HTTP proxy server

In my workplace, internet connection is shared in office LAN through Squid proxy server. I have downloaded several binary files (zip, exe, msi etc.) using HTTP Downloader through multiple computers in office LAN through proxy without any issues.

However, when I tried the following url http://www.iitk.ac.in/ce/test/IS-codes/is.4905.1968.pdf it downloaded a file with the same name as expected, ie, "is.4905.1968.pdf" but it was something completely different. It was actually an html page with the following content (copied and pasted here with some loss of formatting):

ERROR
The requested URL could not be retrieved

The following error was encountered while trying to retrieve the URL: /ce/test/IS-codes/is.4905.1968.pdf

    Invalid URL

Some aspect of the requested URL is incorrect.

Some possible problems are:

    Missing or incorrect access protocol (should be "http://" or similar)

    Missing hostname

    Illegal double-escape in the URL-Path

    Illegal character in hostname; underscores are not allowed.

Your cache administrator is admin@localhost.

Generated Tue, 26 Mar 2019 12:15:06 GMT by OfficeServer (squid)

It's actually an error message by the Squid proxy server and it's an Invalid URL issue.

I then tried to download the above URL through Flashget, Flareget and aria2c (with proper proxy settings) and all three downloaded the file properly without any problem. So this issue seems to be with HTTP Downloader only.

Please check. Thanks.

Change Log

You may consider adding a change log (perhaps just a text file) which shows version history- it would make it easier to check what has changed in the new releases. Such text file might also be used for 'Update Check' if such feature is implemented in the future.

Remove Selected

When 'Remove Selected' command is executed for incomplete download the partially downloaded file is not removed from disk. What about an option to also remove incomplete downloads from disk? I suppose that if the download is unfinished 'Remove Selected' command should remove the partially downloaded file or there might be another context menu command:

  • Delete File from Disk

which deletes the (partially) downloaded file from disk if it hasn't been already deleted manually.

Copy File Name(s)

I would like to suggest another context menu command - Copy File Name(s), perhaps below Copy URL(s):

  • ...
  • Rename
  • separator
  • Copy URL(s)
  • Copy File Name(s)
  • separator
  • ...

which works like Copy URL(s) but just copies the file names of the downloaded files.

Usage
I download all files to desktop and later move them to other folder. Sometimes I cannot remember to which folder I moved some downloaded files and if I can copy the file name from HTTP Downloader searching for these files (via Everything) would be easier. But if you think that this feature would be rarely used and that it would clutter the context menu too much just discard this suggestion.

Program Exit

When 'Close to System Tray' is enabled in 'Options' then 'Exit' command does not work neither from 'File' nor from 'Tray' , screen:

http downloader 1 0 0 6 - 2018-09-13 - 002

'Exit' should work even when 'Close to System Tray' is enabled, both from 'File' and from 'Tray'.

This happens with HTTP Downloader version 1.0.0.6 (under Windows 8 x64).

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.