Messagerie : Titres Perso

Personnalisation des titres et des avatars d'aperçu, sur la messagerie. Inspiré du script original "Messagerie : Titre Perso".

// ==UserScript==
// @name        Messagerie : Titres Perso
// @author      Isilin
// @namespace   Dreadcast
// @include     https://www.dreadcast.net/Main
// @version     1.0.4
// @grant       none
// @description Personnalisation des titres et des avatars d'aperçu, sur la messagerie. Inspiré du script original "Messagerie : Titre Perso".
// ==/UserScript==

function personnaliseAvatar(idMessage) {
  var saisie = prompt(
    "Saisissez un url d'avatar pour ce message :",
    $('#message_' + idMessage + ' img').attr('src'),
  );
  if (saisie != null) {
    setAvatarStorage(saisie, idMessage);
    applyAvatarMessage(saisie, idMessage);
  }
}

function applyAvatarMessage(url, idMessage) {
  $('#message_' + idMessage + ' img').attr('src', url);
}

function setAvatarStorage(url, idMessage) {
  if (url != null && url.length > 0) {
    avatarMessagesPerso = getAllStorageAvatar() || {};
    avatarMessagesPerso[idMessage] = url;
    localStorage.setItem(
      'avatarMessagesPerso',
      JSON.stringify(avatarMessagesPerso),
    );
  }
}

function getAvatarStorage(idMessage) {
  avatarMessagesPerso = getAllStorageAvatar();
  return avatarMessagesPerso[idMessage] ? avatarMessagesPerso[idMessage] : null;
}

function getAllStorageAvatarJson() {
  return localStorage.getItem('avatarMessagesPerso');
}

function getAllStorageAvatar() {
  var avatarMessagesPerso = {};
  var avatarMessagesPersoJson = getAllStorageAvatarJson();
  if (avatarMessagesPerso != null) {
    avatarMessagesPerso = JSON.parse(avatarMessagesPersoJson);
  }
  return avatarMessagesPerso;
}

function applyAvatarOnAllMessages() {
  avatarMessagesPerso = getAllStorageAvatar();
  if (avatarMessagesPerso != null) {
    $.each(avatarMessagesPerso, function (idMessage, url) {
      applyAvatarMessage(url, idMessage);
    });
  }
}

// ====================================

function personnaliseMessage(idMessage) {
  var saisie = prompt(
    'Saisissez un titre a mettre pour ce message :',
    $('#db_message_' + idMessage + ' .head .title').html(),
  );
  if (saisie != null) {
    setTitreStorage(saisie, idMessage);
    applyTitreMessage(saisie, idMessage);
  }
}

function applyTitreMessage(titre, idMessage) {
  $('#message_' + idMessage + ' .message_titre').html(titre);
  $('#db_message_' + idMessage + ' .head .title').html(titre);
}

function setTitreStorage(titre, idMessage) {
  if (titre != null && titre.length > 0) {
    titreMessagesPerso = getAllStorage();
    titreMessagesPerso[idMessage] = titre;
    localStorage.setItem(
      'titreMessagesPerso',
      JSON.stringify(titreMessagesPerso),
    );
  }
}

function getTitreStorage(idMessage) {
  titreMessagesPerso = getAllStorage();
  return titreMessagesPerso[idMessage] ? titreMessagesPerso[idMessage] : null;
}

function getAllStorageJson() {
  return localStorage.getItem('titreMessagesPerso');
}
function getAllStorage() {
  var titreMessagesPerso = {};
  var titreMessagesPersoJson = getAllStorageJson();
  if (titreMessagesPersoJson != null) {
    titreMessagesPerso = JSON.parse(titreMessagesPersoJson);
  }
  return titreMessagesPerso;
}

function applyOnAllMessages() {
  titreMessagesPerso = getAllStorage();
  $.each(titreMessagesPerso, function (idMessage, titre) {
    applyTitreMessage(titre, idMessage);
  });
}

$(document).ready(function () {
  applyOnAllMessages();
  applyAvatarOnAllMessages();
  addImportExportMessages();
});

MenuMessagerie.prototype.openFolderSave = MenuMessagerie.prototype.openFolder;
MenuMessagerie.prototype.openFolder = function (a) {
  $.ajaxSetup({ async: false });
  toReturn = this.openFolderSave(a);
  applyOnAllMessages();
  applyAvatarOnAllMessages();
  $.ajaxSetup({ async: true });
  return toReturn;
};

MenuMessagerie.prototype.openMessageSave = MenuMessagerie.prototype.openMessage;
MenuMessagerie.prototype.openMessage = function (a, b) {
  $.ajaxSetup({ async: false });
  toReturn = this.openMessageSave(a, b);
  $('#db_message_' + a + ' .head .title').before(
    '<div title="Editer le titre" class="info1 link edit" id="editTitle"></div>',
  );
  $('#db_message_' + a + ' #editTitle')
    .css({
      position: 'absolute',
      right: '56px',
      top: '-1px',
      width: '34px',
      height: '34px',
      background:
        'url(../../../images/fr/design/boutons/boutons.png) -194px -138px no-repeat',
    })
    .hover(
      function () {
        $(this).css({ 'background-position': '-264px -139px' });
      },
      function () {
        $(this).css({ 'background-position': '-194px -138px' });
      },
    )
    .click(function () {
      idMessage = $(this).parent().parent().parent().attr('id').substring(11);
      personnaliseMessage(idMessage);
    });
  applyOnAllMessages();

  $('#db_message_' + a + ' .head .title').before(
    '<div title="Editer l\'avatar" class="info1 link edit" id="editAvatar"></div>',
  );
  $('#db_message_' + a + ' #editAvatar')
    .css({
      position: 'absolute',
      right: '93px',
      top: '-1px',
      width: '34px',
      height: '34px',
      background:
        'url(../../../images/fr/design/boutons/boutons.png) -229px -243px no-repeat',
    })
    .hover(
      function () {
        $(this).css({ 'background-position': '-264px -243px' });
      },
      function () {
        $(this).css({ 'background-position': '-229px -243px' });
      },
    )
    .click(function () {
      idMessage = $(this).parent().parent().parent().attr('id').substring(11);
      personnaliseAvatar(idMessage);
    });
  applyAvatarOnAllMessages();

  $.ajaxSetup({ async: true });
  return toReturn;
};

function addImportExportMessages() {
  $('#action_list')
    .append('<li id="exportMessages">Exporter mes Titres de messages</li>')
    .append('<li id="importMessages">Importer des Titres de messages</li>')
    .append(
      '<li id="exportAvatarMessages">Exporter mes Avatar de messages</li>',
    )
    .append(
      '<li id="importAvatarMessages">Importer des Avatar de messages</li>',
    )
    .append(
      '<li id="emptyMessages">Vider mes Titres et Avatar de messages</li>',
    );

  $('#exportMessages').click(function () {
    alert(getAllStorageJson());
  });
  $('#importMessages').click(function () {
    var saisie = prompt("Entrez l'export de titre a importer :");
    if (saisie != null) {
      titreMessagesPerso = JSON.parse(saisie);
      $.each(titreMessagesPerso, function (idMessage, titre) {
        setTitreStorage(titre, idMessage);
      });
      applyOnAllMessages();
    }
  });
  $('#exportAvatarMessages').click(function () {
    alert(getAllStorageAvatarJson());
  });
  $('#importAvatarMessages').click(function () {
    var saisie = prompt("Entrez l'export d'avatar a importer :");
    if (saisie != null) {
      avatarMessagesPerso = JSON.parse(saisie);
      $.each(avatarMessagesPerso, function (idMessage, url) {
        setAvatarStorage(url, idMessage);
      });
      applyAvatarOnAllMessages();
    }
  });
  $('#emptyMessages').click(function () {
    if (
      confirm(
        "Supprimer l'intégralité de votre personnalisation de Titres et Avatar de messages?",
      ) == true
    ) {
      localStorage.removeItem('titreMessagesPerso');
      localStorage.removeItem('avatarMessagesPerso');
      alert(
        "Suppression effectuée! Rechargez votre page, parce que j'ai vraiment la flemme de remettre les titres d'origine a la main...",
      );
    }
  });
}

console.log('Perso Message: On.');