Server IP : 92.205.26.207 / Your IP : 216.73.216.16 Web Server : Apache System : Linux 207.26.205.92.host.secureserver.net 4.18.0-553.60.1.el8_10.x86_64 #1 SMP Thu Jul 10 04:01:16 EDT 2025 x86_64 User : zikryat ( 1002) PHP Version : 8.3.23 Disable Function : exec,passthru,shell_exec,system MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON Directory (0755) : /home/zikryat/public_html/node_modules/geoip-lite/lib/ |
[ Home ] | [ C0mmand ] | [ Upload File ] |
---|
var fs = require('fs'), path = require('path'), FSWatcher = {}; /** * Takes a directory/file and watch for change. Upon change, call the * callback. * * @param {String} name: name of this watcher * @param {String} directory: path to the directory to watch * @param {String} [filename]: (optional) specific filename to watch for, * watches for all files in the directory if unspecified * @param {Integer} cooldownDelay: delay to wait before triggering the callback * @param {Function} callback: function () : called when changes are detected **/ function makeFsWatchFilter(name, directory, filename, cooldownDelay, callback) { var cooldownId = null; //Delete the cooldownId and callback the outer function function timeoutCallback() { cooldownId = null; callback(); } //This function is called when there is a change in the data directory //It sets a timer to wait for the change to be completed function onWatchEvent(event, changedFile) { // check to make sure changedFile is not null if (!changedFile) { return; } var filePath = path.join(directory, changedFile); if (!filename || filename === changedFile) { fs.exists(filePath, function onExists(exists) { if (!exists) { // if the changed file no longer exists, it was a deletion. // we ignore deleted files return; } //At this point, a new file system activity has been detected, //We have to wait for file transfert to be finished before moving on. //If a cooldownId already exists, we delete it if (cooldownId !== null) { clearTimeout(cooldownId); cooldownId = null; } //Once the cooldownDelay has passed, the timeoutCallback function will be called cooldownId = setTimeout(timeoutCallback, cooldownDelay); }); } } //Manage the case where filename is missing (because it's optionnal) if (typeof cooldownDelay === 'function') { callback = cooldownDelay; cooldownDelay = filename; filename = null; } if (FSWatcher[name]) { stopWatching(name); } FSWatcher[name] = fs.watch(directory, onWatchEvent); } /** * Take a FSWatcher object and close it. * * @param {string} name: name of the watcher to close * **/ function stopWatching(name) { FSWatcher[name].close(); } module.exports.makeFsWatchFilter = makeFsWatchFilter; module.exports.stopWatching = stopWatching;