Microsoft Teams - Keep Active / Available

Keeps you active between the hours specified in the script

За да инсталирате този скрипт, трябва да имате инсталирано разширение като Tampermonkey, Greasemonkey или Violentmonkey.

За да инсталирате този скрипт, трябва да инсталирате разширение, като например Tampermonkey .

За да инсталирате този скрипт, трябва да имате инсталирано разширение като Tampermonkey или Violentmonkey.

За да инсталирате този скрипт, трябва да имате инсталирано разширение като Tampermonkey или Userscripts.

За да инсталирате скрипта, трябва да инсталирате разширение като Tampermonkey.

За да инсталирате този скрипт, трябва да имате инсталиран скриптов мениджър.

(Вече имам скриптов мениджър, искам да го инсталирам!)

За да инсталирате този стил, трябва да инсталирате разширение като Stylus.

За да инсталирате този стил, трябва да инсталирате разширение като Stylus.

За да инсталирате този стил, трябва да инсталирате разширение като Stylus.

За да инсталирате този стил, трябва да имате инсталиран мениджър на потребителски стилове.

За да инсталирате този стил, трябва да имате инсталиран мениджър на потребителски стилове.

За да инсталирате този стил, трябва да имате инсталиран мениджър на потребителски стилове.

(Вече имам инсталиран мениджър на стиловете, искам да го инсталирам!)

// ==UserScript==
// @name        Microsoft Teams - Keep Active / Available
// @description Keeps you active between the hours specified in the script
// @namespace   Violentmonkey Scripts
// @match       *://*.teams.microsoft.com/_*
// @grant       none
// @version     1.04
// @author      -
// @run-at       document-idle
// @license AGPL
// ==/UserScript==

var startTime =  9 * 60 + 0; // Work starts at 9am
var endTime   = 17 * 60 + 0; // Work ends at 5pm

function inTime() {
    var now = new Date();
    var time = now.getHours() * 60 + now.getMinutes();
    return time >= startTime && time < endTime;
}

(function(sendParam) {
  XMLHttpRequest.prototype.send = function() {
      if (typeof arguments[0] === 'string' || arguments[0] instanceof String) {
        try {
            let jsonMsg = JSON.parse(arguments[0]);
            if (jsonMsg.isActive != null) {
              if (jsonMsg.isActive === false) {
                if(inTime()) {
                  jsonMsg.isActive = true;
                  arguments[0] = JSON.stringify(jsonMsg);
                }
              }
            }
        } catch (e) {
          console.error('Teams - Always Online', e);
        }
      }

      sendParam.apply(this, arguments);
  };
})(XMLHttpRequest.prototype.send);