File: TODO

package info (click to toggle)
gtm 0.4.12+cvs20031024-3
  • links: PTS
  • area: main
  • in suites: etch, etch-m68k
  • size: 3,556 kB
  • ctags: 909
  • sloc: ansic: 7,804; sh: 2,990; makefile: 383
file content (306 lines) | stat: -rw-r--r-- 11,682 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
 UI Changes
============

        * Tell the user the format of some of the preferences
        fields (proxy and regular expressions)

        * Rethink the properties box and remove the button from the toolbar

        * Totally remove the download info page and move the information to:
	
            + The information of the auto download goes to a new column on
            the list.

            + The buttons go to the properties box

            + The rest go to a popping double click (on a list element)
            window

        * Make the list less taller and less wider

        * [DONE] Change the titles of the windows:

            + main window and message windows => GNOME Transfer Manager

            + other windows => title according to the content without GTM

        * [DONE] Auto-scroll the list when a new download starts to make that
        download visible

        * [DONE] Master switch to the auto download feature on the toolbar

        * [DONE] List information with (opening from the menu or something like
        that):

	    + Number of files on the list

	    + Number of complete files

	    + Number of running files

	    + Number of stopped files

	    + Other information people might think it is useful

	* [DONE] It's annoying to have GTM open just to wait for a connection
        to the network. So the applet will have an option to open GTM when
	it knows the network is up.

	* [DONE] Resize the applet according to the size of the panel. This is
	important with GNOME 1.2 because the panel has diferent sizes
	and we don't want the gtm_applet to be the one to ruin the party by
	not resizing like the other applets.

 Users wish list
=================

	* Segmented download to accelerate the download

	* Limit the number of downloads to a site

	* Handle message out-of-disk-space

	* Log the completed downloads (with the ability to reuse
	the logged URL)

	* report when it is impossible to resume (wget doesn't report this
	so it is impossible to do this right now using wget)

	* Scheduler for multiple time driven downloads (eg start this at 2am).
	A batch mode which would not require X would also be helpful for this.

	* bandwidth metering (eg don't use more than 50% of available 
	bandwidth)
        
	* choose the best mirror to get a file from (have to configure the 
	mirrors)

	* long term stats (total bytes transferred, file types, transfer 
	rates, etc)

	* mail notification (run command when all downloads are complete
	(see above) might cover this).

	* Hide the "disable proxy" if the user doesn't have a proxy configured.

	* Text box on the toolbar to speed up URL adding (instead of the
	dialog box)

	* a search function that will interface to internet search programs 
	such as FTPsearch thereby allowing the user to obtain multiple 
	locations for the same file or group of files so that, if one 
	connection is broken or too slow, gtm can switch to another connection
	and continue the download(s)

	* support recursive wget

	* Ability to select a group of files and have an option to "Send To
	Beginning" and "Send To End" on the menus and right click.

	* Ability to move a group of files at once via DND, and even if not
	contiguous.

	* It would be useful to automatically separate the list into In
	Progress/Waiting/Completed, in that order.

	* Ability to have separate "sessions" which have different file lists
	and default downloading prefs.  This would mean you could run two GTMs
	(as long as it didn't use the same session) or switch between sessions
	in one instance (and stop downloading the previous session).  This 
	would make file lists more manageable too, and quickly allow you to
	choose which download you wanted to currently continue.

	* More retry settings, like "move to end between retries", and
	"minimum time between retries".

	* Ability to define prioritisation categories, so for example, all
	files on server x would be downloaded before server y, or all mpgs 
	would be downloaded before all zips.

	* "Delete File" (from disk) and "Open File" actions (on double click).
	
	* Allow changing the whole URL, including the file name if the
	download has not already started.  If it's partially downloaded, give
	the user various options, including rename on-disk file, delete on-disk
	file or cancel.  If it is downloaded, give the same options plus one to
	leave the old file there.

	* When files selected, say somewhere how many files are selected.
	Useful for determining you've got all files when there's a lot.
	Possibly add "selected" column to list statistics.

	* Sort by various criteria as well as priority, eg file name, URL.

	* Ability to restart transfer even when already running.

	* Restore one/multiple files to default download options.
	
	* Automatic download policy selection based on URL/media-type.
	Currently only does directory on URL.

	* Forced reload checkbox, that will bypass caches.
	
	* Numeric download should support drag & drop that intelligently 
	breaks down the URL into component parts rather than just dumping 
	into first field.

	* Ability to remove finished files from the list

	* Improve directory matching capabilities, perhaps make it similar
	to the way email filter rules are typically set up.  So as well as
	the current wildcard matching you could have "contains", "is exactly",
	"matches regular expression" etc.

	* Persist download log between sessions.

	* Support headers such as Referer, User-Agent, HTTP Authentication,
	plus custom headers.

	* Prevent GTM from downloading files with different file names if
	a redirect occurs.  May require not using wget.

	* Support retrying a file when it turns out a "try again later"
	web page was downloaded.  Either require a file to be of a
	minimum size, require the MIME type not be HTML, or require the
	downloaded file name to the requested one.

	* Ability to specify a different file name for the local file
	on disk.  To change it you would have a checkbox on new single
	or numeric download.

	* If you try to drag and drop a file with the same file name as
	one that already exists you would have an option to bring up the
	"New Download" box so you can override the directory and/or file
	name.

	* Some way to specify the size of the download log, either in
	prefs or by a splitter.

	* Some way to disable the log.  Maybe use a toolbutton like the
	download info.

	* Allow the user to specify what columns appear in the file list, and
	to resize them.  Currently the file list uses the GTK CList widget.
	To fix this, GTM would either have to change to the GAL or GTK2
	version, or destroy the file list and recreate it whenever the
	column list is changed.

	* Extra columns: download size, downloaded, percentage graph,
	download time, estimated download time remaining, estimated total 
	download time, average download speed, 'instantaneous' download
	speed, 'running' download speed for a specified interval, local file
	name, local directory, originating program (possible?), extra HTTP
	headers, use proxy, use caches,	use auto download, full URL,
	download completed date/time, download started date/time, download
	last started date/time, download last stopped date/time, scheduled
	start time.

	* Allow cookies to be set up that can be passed to a site.

	* Expand the URL pattern matching so can or always corresponds to
	an entire download policy (eg use proxy, use caches, custom headers,
	etc)

	* Maybe change numeric download's min and max numbers so that
	breaking min <= max by clicking one number will also move the other
	number in the same way so as to enforce min <= max, ie if the widgets
	were 2 -> 2 and you clicked to reduce max, min would also reduce, so
	as to give 1 -> 1.  Then there is no need for the error message if
	max < min, just an assertion.

	* There are lots of different ways a URL can be refused (eg exists
	already & invalid URL).  Where one of these errors occur, all the
	invalid URLs should appear along with the error.  Where multiple
	URLs have an error, maybe list the error, then all the URLs with
	that error, then the next error, etc.

	* Do something about downloading directories.

	    + Currently says: "Multiple download not implemented yet".
	    "Download of directories not yet supported." would be better.

	    + Dialog-add allows downloading directory indexes, but dialog-new
	    gives the above error.  Maybe just allow them to be downloaded?
	    (Could require a file name to be specified?)

	* Provide an option to require that all URLs match a directory
	suggestion regexp.  If they don't, pop up a dialog saying so and
	allow the user to define a new regexp for that URL.  This would be
	like the normal dialog, except it would display the URL, and "OK"
	would check the URL matches the regexp.

	* Undo!  Restore those accidentally lost URLs!

	* Port to the soon to be released GTK 2.

	* Either use the page info or properties box to allow you to change the
	options of a lot of URLs at once.  At the moment you can only do this
	for auto download using the menus or toolbar.

	* Allow defining multiple proxy settings and let URLs choose one.

	* Applet should give a visual indication of the progress of a
	number of downloads that the application is downloading.

	* Do something with the status bar!

 Some ideas
============

	* Convert the help system to docbook (almost done).

	* I'm going to change the interface to support the download of more
	than one file per URL and with this I mean also the use of options
	like mirror. (I'm more close to finish this goal!)

	* If someone requests it we can add more functions to idl. This way
	the program can be controled from an applet or another application
	if necessary.

	* I don't know yet how to implement upload but I must do it sometime
	because programs using GTM to manage transfers through it's CORBA
	interface might like it. (This is impossible with wget unless we use
	another way to transfer files)
	Possibly switching to libcurl might help with this.

 Developer Stuff
=================

	* Investigate ease of implementation and potential memory savings of
	sharing download policy structure and possibly other stuff between
	URLs.  This may become more useful as more things are added to the
	download policy (eg HTTP headers).  Would need to handle the fact
	that if you modify the download policy of one URL you would need to
	split a new download policy off	unless it had a reference count of 1.

	* Download policy structure might also be useful elsewhere.

	* The current way of speeding up large file list loading is very
	kludgey.  In particular file-list and file-data are dependent on
	each other circularly.  There should be no references to file-list
	in file-data.

	* Perhaps make list statistics updating incremental rather than
	resumming every update.  This should speed up large list loading a
	bit more.

	* Investigate source code sharing between applet and application.
	At least some dialog code should be shareable, in particular the
	directory suggestion stuff has been copied and pasted from applet
	to application in places.

	* Keep exploring possible transition to GLADE.  GLADE seems too
	immature.  Most troublesome issue is currently the lack of the
	ability to define a compound widget for the download policy widget.

	* Audit for where assertions should be placed.

	* Run a leak finding program and remove leaks.  There are leaks.

	* Define ownership rules on interfaces and do a leak audit.  This
	will find leaks that don't occur a lot in practice and might slip
	through a leak finding program.

	* Run a "lint" source code checking program.

	* Remove all FIXMEs.