On Sun, Dec 12, 2010 at 04:13:42PM +0800, zwz wrote:
> "John J. Foerch" <[email protected]> writes:
>
> > On Sun, Dec 12, 2010 at 03:02:25PM +0800, zwz wrote:
> >> Hi,
> >> I want to write a hook that is triggered when finishing downloading
> >> something, and record the link and target location into a file (by
> >> emacs).
> >>
> >> The problem here is how to write js code to get the link and target
> >> location of the thing I am downloading.
> >>
> >> btw, it seems "~" is the default target dir for downloading, but is
> >> there a separable variable for that?
> >>
> >> Best regards,
> >> zwz
> >
> >
> > Something like this:
> >
> > function foo (info) {
> > // info.source is an nsIURI of the url that was downloaded.
> > var url = info.source.spec;
> >
> > // info.target_file is an nsIFile/nsILocalFile of the target.
> > var pathstr = info.target_file.path;
> > }
> > add_hook('download_finished_hook', foo);
> >
> >
> > The variable cwd holds the default download directory. Must be set to an
> > nsILocalFile object (which is the return type of 'make_file') not a
> > string.
>
> Thanks a lot.
> So can I write code as follows in rc-file
> cwd=make_file("d:/downloads");
>
> And can I close the download buffer in the function foo?
>
Automatically killing the download buffer is a little trickier. The
download-info object doesn't have a references to buffers displaying its
information. (You can have more than one download buffer monitoring a
single download.)
So, thinking this through, you would need a hook that runs any time a
download-buffer is created, which plants a kill callback in the buffer's
download-info. Something like this:
function install_download_buffer_closer (b) {
if (b instanceof download_buffer) {
add_hook.call(b.info, "download_finished_hook",
function () {
kill_buffer(b);
});
}
}
add_hook('create_buffer_hook', install_download_buffer_closer);
--
John Foerch
_______________________________________________
Conkeror mailing list
[email protected]
https://www.mozdev.org/mailman/listinfo/conkeror