Clock1

Clock in basso alle pagine colore blu e rosso

  1. // ==UserScript==
  2. // @name Clock1
  3. // @description Clock in basso alle pagine colore blu e rosso
  4. // @author figuccio
  5. // @version 1.0
  6. // @match *://*/*
  7. // @grant GM_addStyle
  8. // @grant GM_setValue
  9. // @grant GM_getValue
  10. // @grant GM_registerMenuCommand
  11. // @require http://code.jquery.com/jquery-latest.js
  12. // @require https://code.jquery.com/ui/1.13.2/jquery-ui.js
  13. // @icon data:image/gif;base64,R0lGODlhEAAQAKECABEREe7u7v///////yH5BAEKAAIALAAAAAAQABAAAAIplI+py30Bo5wB2IvzrXDvaoFcCIBeeXaeSY4tibqxSWt2RuWRw/e+UQAAOw==
  14. // @license MIT
  15. // @namespace https://greasyfork.org/users/237458
  16. // ==/UserScript==
  17. (function() {
  18. 'use strict';
  19. var $ = window.jQuery.noConflict();
  20. // Funzione per salvare la posizione del div utilizzando GM_setValue
  21. function savePosition(top, left) {
  22. GM_setValue('clockPosition', JSON.stringify({top: top, left: left}));
  23. }
  24.  
  25. // Funzione per caricare la posizione utilizzando GM_getValue
  26. function loadPosition() {
  27. var savedPosition = GM_getValue('clockPosition');
  28. if (savedPosition) {
  29. savedPosition = JSON.parse(savedPosition);
  30. return savedPosition;
  31. }
  32. return null;
  33. }
  34. // Imposta la lingua predefinita
  35. var language = GM_getValue('language') || 'it'; // Recupera la lingua dal localStorage o usa 'it' come predefinita
  36. const languages = {
  37. en: { weekday: 'long', month: 'long', day: '2-digit', year: 'numeric' },
  38. it: { weekday: 'long', month: 'long', day: '2-digit', year: 'numeric' }
  39. };
  40. // Funzione per mostrare il clock
  41. function mynascond() {
  42. if(document.getElementById('clockBox').style.display = (document.getElementById('clockBox').style.display!='none') ? 'none' : 'block');}
  43. GM_registerMenuCommand("mostra pulsante/nascondi",mynascond);
  44.  
  45. // Menu comando per cambiare lingua
  46. function changeLanguage() {
  47. language = (language === 'it') ? 'en' : 'it';
  48. GM_setValue('language', language); // Salva la lingua scelta nel localStorage
  49. alert(`Lingua cambiata a: ${language}`);
  50. }
  51. GM_registerMenuCommand("Cambia Lingua", changeLanguage);
  52.  
  53. // Avvia la funzione dopo che la pagina è stata caricata
  54. $(document).ready(function() {
  55. const body = document.body;
  56. if (window.top != window.self) return;
  57. var box = document.createElement("div");
  58. box.setAttribute("id", "clockBox");
  59. box.setAttribute("style","width:350px;margin:10px;color:red;border-radius:10px;border:2px solid green;font-family:sans-serif;font-size:16pt;background-color:blue;position:fixed;text-align:center;z-index:99999;display:block;");
  60.  
  61. // Carica la posizione dal local storage
  62. var savedPosition = loadPosition();
  63. if (savedPosition) {
  64. box.style.top = savedPosition.top + 'px';
  65. box.style.left = savedPosition.left + 'px';
  66. } else {
  67. box.style.top = '500px'; // Posizione predefinita se non ci sono dati salvati
  68. }
  69.  
  70. document.body.appendChild(box);
  71.  
  72. function tick(){
  73. var d = new Date();
  74. var options = languages[language]; // Usa la lingua salvata
  75. var t = d.toLocaleTimeString();
  76. var ms = new Date().getMilliseconds(); // millisecondi
  77. var date = d.toLocaleString(language, options);
  78. box.innerHTML = date + " " + t + ":" + ms;
  79. }
  80.  
  81. $(box).draggable({
  82. containment: "window", // Assicura che l'elemento draggable sia confinato alla finestra del browser
  83. // Salva la posizione immediatamente dopo ogni spostamento
  84. drag: function(event, ui) {
  85. savePosition(ui.position.top, ui.position.left);
  86. }
  87. });
  88.  
  89. body.append(box);
  90. tick();
  91. setInterval(tick, 70);
  92. });
  93. })();
  94.