HEX
Server: Apache/2
System: Linux jingle.dotvndns.vn 2.6.32-754.17.1.el6.x86_64 #1 SMP Tue Jul 2 12:42:48 UTC 2019 x86_64
User: chuahuehuong (1863)
PHP: 7.3.16
Disabled: apache_note,apache_setenv,proc_get_status,exec,passthru,proc_nice,proc_terminate,shell_exec,system,ini_restore,syslog,define_syslog_variables,symlink,link,error_log,leak,dbmopen,closelog,stream_socket_server,execl,escapeshellcmd,ini_alter,dl,show_source,posix_getpwuid,posix_geteuid,posix_getegid,posix_getgrgid,open_basedir,safe_mode_include_dir,pcntl_exec,pcntl_fork,pclose,virtual,openlog,popen,escapeshellarg,eval,calo,posix_getpwuid,symlinks,symlink,getpwuid,mail
Upload Files
File: //usr/share/doc/python-urlgrabber-3.9.1/TODO
ALPHA 2:

  * web page
    - better examples page

  * threading/batch
    - (rt) propose an interface for threaded batch downloads
    - (mds) design a new progress-meter interface for threaded
      multi-file downloads
    - (rt) look at CacheFTPHandler and its implications for batch mode
      and byte-ranges/reget

  * progress meter stuff
    - support for retrying a file (in a MirrorGroup, for example)
    - failure support (done?)
    - support for when we have less information (no sizes, etc)
    - check compatibility with gui interfaces
    - starting a download with some parts already read (with reget, 
      for example)

  * look at making the 'check_timestamp' reget mode work with ftp.
    Currently, we NEVER get a timestamp back, so we can't compare.
    We'll probably need to subclass/replace either the urllib2 FTP handler
    or the ftplib FTP object (or both, but I doubt it).  It may or may not
    be worth it just for this one mode of reget.  It fails safely - by
    getting the entire file.

  * cache dns lookups -- for a possible approach, see
    https://lists.dulug.duke.edu/pipermail/yum-devel/2004-March/000136.html

Misc/Maybe:

  * BatchURLGrabber/BatchMirrorGroup for concurrent downloads and possibly to
    handle forking into secure/setuid sandbox.

  * Consider adding a progress_meter implementation that can be used in 
    concurrent download situations (I have some ideas about this -mds)
  
  * Consider using CacheFTPHandler instead of FTPHandler in byterange.py. 
    CacheFTPHandler reuses connections but this may lead to problems with
    ranges. I've tested CacheFTPHandler with ranges using vsftpd as a 
    server and everything works fine but this needs more exhaustive tests 
    or a fallback mechanism. Also, CacheFTPHandler breaks with multiple 
    threads.

  * Consider some statistics tracking so that urlgrabber can record the 
    speed/reliability of different servers.  This could then be used by
    the mirror code for choosing optimal servers (slick, eh?)

  * check SSL certs.  This may require PyOpenSSL.