"John J. Foerch" <[email protected]> writes:
> 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);
Nice solution. Thanks.
But does it also work if I
remove_hook("download_added_hook", open_download_buffer_automatically)
which makes the download buffer not open at all, while the hook foo is
still called?
p.s. foo is added by add_hook('download_finished_hook', foo);
_______________________________________________
Conkeror mailing list
[email protected]
https://www.mozdev.org/mailman/listinfo/conkeror