tulip17
千年狐狸
千年狐狸
  • UID34021
  • 注册日期2010-09-17
  • 最后登录2024-05-14
  • 发帖数980
  • 经验678枚
  • 威望1点
  • 贡献值420点
  • 好评度51点
  • 社区居民
  • 忠实会员
阅读:3354回复:12

【已解决】哪位大侠能修改一下downloadSoundPlay.uc.js,让它在26中可用

楼主#
更多 发布于:2013-12-13 22:43
下载完成后发出声音的uc脚本,在26中不能用了,哪位高手能修改一下昵,多谢!
// ==UserScript==
// @name downloadSoundPlay.uc
// @namespace http://space.geocities.yahoo.co.jp/gl/alice0775
// @description ダウンロードマネージャー用のダウンロードを監視し音を鳴らす
// @include main
// @compatibility Firefox 3.0 more
// @author Alice0775
// @version 2009/11/28
// ==/UserScript==
  
var downloadPlaySound = {
  // -- config --
  DL_START : "",
  DL_DONE : "file:///C:/WINDOWS/Media/chimes.wav",
  DL_CANCEL: "",
  DL_FAILED: "",
  // -- config --
  
  observerService: null,
  init: function sampleDownload_init() {
    //window.removeEventListener("load", this, false);
    window.addEventListener("unload", this, false);
  
    //**** ダウンロード監視の追加
    this.observerService = Components.classes["@mozilla.org/observer-service;1"]
                                    .getService(Components.interfaces.nsIObserverService);
    this.observerService.addObserver(this, "dl-start", false);
    this.observerService.addObserver(this, "dl-done", false);
    this.observerService.addObserver(this, "dl-cancel", false);
    this.observerService.addObserver(this, "dl-failed", false);
  },
  
  uninit: function() {
    window.removeEventListener("unload", this, false);
    this.observerService.removeObserver(this, "dl-start");
    this.observerService.removeObserver(this, "dl-done");
    this.observerService.removeObserver(this, "dl-cancel");
    this.observerService.removeObserver(this, "dl-failed");
  },
  
  // ******************************
  // DownloadObserver
  // ******************************
  observe: function (subject, topic, state) {
    var oDownload = subject.QueryInterface(Components.interfaces.nsIDownload);
    //**** ダウンロードファイルを持つオブジェクトを取得
    var oFile = null;
    try{
      oFile = oDownload.targetFile; // New firefox 0.9+
    } catch (e){
      oFile = oDownload.target; // Old firefox 0.8
    }
    //**** ダウンロード開始イベント
    if (topic == "dl-start"){
      //alert('Start download to - '+oFile.path);
      if (this.DL_START)
        this.playSoundFile(this.DL_START);
    }
    //**** ダウンロードキャンセルイベント
    if(topic == "dl-cancel"){
      //alert('Canceled download to - '+oFile.path);
      if (this.DL_CANCEL)
        this.playSoundFile(this.DL_CANCEL);
    }
    //**** ダウンロード失敗
    else if(topic == "dl-failed"){
      //alert('Failed download to - '+oFile.path);
      if (this.DL_FAILED)
        this.playSoundFile(this.DL_FAILED);
    }
    //**** ダウンロード完了
    else if(topic == "dl-done"){
      //alert('Done download to - '+oFile.path);
      if (this.DL_DONE)
        this.playSoundFile(this.DL_DONE);
    }
  },
  
  playSoundFile: function(aFilePath) {
    var ios = Components.classes["@mozilla.org/network/io-service;1"]
              .createInstance(Components.interfaces["nsIIOService"]);
    try {
      var uri = ios.newURI(aFilePath, "UTF-8", null);
    } catch(e) {
      return;
    }
    var file = uri.QueryInterface(Components.interfaces.nsIFileURL).file;
    if (!file.exists())
      return;
  
    this.play(uri);
   },
  
  play: function(aUri) {
    var sound = Components.classes["@mozilla.org/sound;1"]
              .createInstance(Components.interfaces["nsISound"]);
    sound.play(aUri);
  },
  
  handleEvent: function(event) {
    switch (event.type) {
      case "load":
        this.init();
        break;
      case"unload":
        this.uninit();
        break;
    }
  }
}
//window.addEventListener("load", downloadPlaySound.init, false);
downloadPlaySound.init();
bugmenot
禁止发言
禁止发言
  • UID36046
  • 注册日期2011-04-19
  • 最后登录2016-12-04
  • 发帖数257
  • 经验180枚
  • 威望0点
  • 贡献值164点
  • 好评度1点
1楼#
发布于:2013-12-13 23:35
用户被禁言,该主题自动屏蔽!
tulip17
千年狐狸
千年狐狸
  • UID34021
  • 注册日期2010-09-17
  • 最后登录2024-05-14
  • 发帖数980
  • 经验678枚
  • 威望1点
  • 贡献值420点
  • 好评度51点
  • 社区居民
  • 忠实会员
2楼#
发布于:2013-12-14 11:46
bugmenot:我找到拥有类似功能的两款扩展:
Noise :: Firefox 附加组件
https://addons.mozilla.org/zh-CN/firefox/addon/noise/
Navigational Sounds :: F...
回到原帖
Navigational Sounds不错,26有效,还可以自定义声音
文科
千年狐狸
千年狐狸
  • UID39959
  • 注册日期2013-10-17
  • 最后登录2019-07-27
  • 发帖数2069
  • 经验1328枚
  • 威望4点
  • 贡献值340点
  • 好评度256点
  • 最爱沙发
  • 社区居民
  • 忠实会员
3楼#
发布于:2013-12-14 13:46
在用dta
jinke679
小狐狸
小狐狸
  • UID27602
  • 注册日期2008-12-28
  • 最后登录2017-04-25
  • 发帖数69
  • 经验76枚
  • 威望0点
  • 贡献值14点
  • 好评度1点
  • 社区居民
  • 忠实会员
4楼#
发布于:2013-12-16 14:30
个人不需要这些其他的功能,不想再安装一个扩展,再求一下哪位能修改一下顶楼的脚本,使其在新版上可以使用!!
fang5566
管理员
管理员
  • UID3719
  • 注册日期2005-03-07
  • 最后登录2024-05-09
  • 发帖数18483
  • 经验4837枚
  • 威望5点
  • 贡献值4316点
  • 好评度1116点
  • 社区居民
  • 最爱沙发
  • 忠实会员
  • 终身成就
5楼#
发布于:2013-12-16 16:23
jinke679:个人不需要这些其他的功能,不想再安装一个扩展,再求一下哪位能修改一下顶楼的脚本,使其在新版上可以使用!!回到原帖
估计简单修改已经完全没用了,26.0已完全取消了nsidownloadmanager的方法,改成调用download.jsm的模块了。上面脚本里面所有代码基本上都不可用了。说修改不如说重写。
Firefox More than meets your experience
jinke679
小狐狸
小狐狸
  • UID27602
  • 注册日期2008-12-28
  • 最后登录2017-04-25
  • 发帖数69
  • 经验76枚
  • 威望0点
  • 贡献值14点
  • 好评度1点
  • 社区居民
  • 忠实会员
6楼#
发布于:2013-12-16 16:30
fang5566:估计简单修改已经完全没用了,26.0已完全取消了nsidownloadmanager的方法,改成调用download.jsm的模块了。上面脚本里面所有代码基本上都不可用了。说修改不如说重写。回到原帖
哦,哎,不会js啊,这不是硬逼着我要学js嘛,有的扩展已经能够实现了,不知道能不能改写出来,最近就追这个问题了,我实在是太闲了,
fang5566
管理员
管理员
  • UID3719
  • 注册日期2005-03-07
  • 最后登录2024-05-09
  • 发帖数18483
  • 经验4837枚
  • 威望5点
  • 贡献值4316点
  • 好评度1116点
  • 社区居民
  • 最爱沙发
  • 忠实会员
  • 终身成就
7楼#
发布于:2013-12-16 16:45
jinke679:哦,哎,不会js啊,这不是硬逼着我要学js嘛,有的扩展已经能够实现了,不知道能不能改写出来,最近就追这个问题了,我实在是太闲了,回到原帖
绝对支持你自学成才。
具体变化可以看这个帖子里面的 XPCOM 的修改第一条:
https://www.firefox.net.cn/read-48052
Firefox More than meets your experience
bugmenot
禁止发言
禁止发言
  • UID36046
  • 注册日期2011-04-19
  • 最后登录2016-12-04
  • 发帖数257
  • 经验180枚
  • 威望0点
  • 贡献值164点
  • 好评度1点
8楼#
发布于:2013-12-17 10:26
用户被禁言,该主题自动屏蔽!
user
小狐狸
小狐狸
  • UID33489
  • 注册日期2010-07-21
  • 最后登录2022-10-29
  • 发帖数3
  • 经验11枚
  • 威望0点
  • 贡献值0点
  • 好评度1点
9楼#
发布于:2013-12-18 12:00
// ==UserScript==
// @name           downloadSoundPlay_Fx26.uc.js
// @namespace      http://space.geocities.yahoo.co.jp/gl/alice0775
// @description    ダウンロードマネージャー用のダウンロードを監視し音を鳴らす
// @include        main
// @compatibility  Firefox 26
// @author         Alice0775
// @version        2013/12/18 11:00 defineLazyModuleGetter for Firefox26
// @version        2013/12/18 Firefox26
// @version        2009/11/28
// ==/UserScript==
 
var downloadPlaySound = {
  // -- config --
  DL_START : null,
  DL_DONE  : "file:///C:/WINDOWS/Media/chimes.wav",
  DL_CANCEL: null,
  DL_FAILED: null,
  // -- config --
 
  _list: null,
  init: function sampleDownload_init() {
    XPCOMUtils.defineLazyModuleGetter(window, "Downloads",
              "resource://gre/modules/Downloads.jsm");
 
    //window.removeEventListener("load", this, false);
    window.addEventListener("unload", this, false);
 
    //**** ダウンロード監視の追加
    if (!this._list) {
      Downloads.getList(Downloads.ALL).then(list => {
        this._list = list;
        return this._list.addView(this);
      }).then(null, Cu.reportError);
    }
  },
 
  uninit: function() {
    window.removeEventListener("unload", this, false);
    if (this._list) {
      this._list.removeView(this);
    }
  },
 
  onDownloadAdded: function (aDownload) {
    //**** ダウンロード開始イベント
    if (this.DL_START);
      this.playSoundFile(this.DL_START);
  },
 
  onDownloadChanged: function (aDownload) {
    //**** ダウンロードキャンセル
    if (aDownload.canceled && this.DL_CANCEL)
      this.playSoundFile(this.DL_CANCEL)
    //**** ダウンロード失敗
    if (aDownload.error && this.DL_FAILED)
      this.playSoundFile(this.DL_FAILED)
    //**** ダウンロード完了
    if (aDownload.succeeded && this.DL_DONE)
      this.playSoundFile(this.DL_DONE)
  },
 
  playSoundFile: function(aFilePath) {
    if (!aFilePath)
      return;
    var ios = Components.classes["@mozilla.org/network/io-service;1"]
              .createInstance(Components.interfaces["nsIIOService"]);
    try {
      var uri = ios.newURI(aFilePath, "UTF-8", null);
    } catch(e) {
      return;
    }
    var file = uri.QueryInterface(Components.interfaces.nsIFileURL).file;
    if (!file.exists())
      return;
 
    this.play(uri);
   },
 
  play: function(aUri) {
    var sound = Components.classes["@mozilla.org/sound;1"]
              .createInstance(Components.interfaces["nsISound"]);
    sound.play(aUri);
  },
 
  handleEvent: function(event) {
    switch (event.type) {
      case "unload":
        this.uninit();
        break;
    }
  }
}
downloadPlaySound.init();
jinke679
小狐狸
小狐狸
  • UID27602
  • 注册日期2008-12-28
  • 最后登录2017-04-25
  • 发帖数69
  • 经验76枚
  • 威望0点
  • 贡献值14点
  • 好评度1点
  • 社区居民
  • 忠实会员
10楼#
发布于:2013-12-18 12:58
user:// ==UserScript==
// @name           downloadSoundPlay_Fx26.uc.js
// @namespace      http://space.geocities.yahoo.co.j...
回到原帖
赞!Alice0775终于出了新版了
brucmao
火狐狸
火狐狸
  • UID39549
  • 注册日期2013-05-29
  • 最后登录2020-03-25
  • 发帖数101
  • 经验154枚
  • 威望0点
  • 贡献值134点
  • 好评度5点
11楼#
发布于:2013-12-18 15:23
bugmenot:有没有人能向Download Manager Tweak作者提出建议,建议他在下一个版本中添加“下载完成声音”的功能回到原帖
我用  https://addons.mozilla.org/en-US/firefox/addon/download-dialog-tweak/?src=api
@brucmao
tulip17
千年狐狸
千年狐狸
  • UID34021
  • 注册日期2010-09-17
  • 最后登录2024-05-14
  • 发帖数980
  • 经验678枚
  • 威望1点
  • 贡献值420点
  • 好评度51点
  • 社区居民
  • 忠实会员
12楼#
发布于:2013-12-18 15:47
user:// ==UserScript==
// @name           downloadSoundPlay_Fx26.uc.js
// @namespace      http://space.geocities.yahoo.co.j...
回到原帖
作者更新了,感谢分享
游客

返回顶部