Plugin Directory

Changeset 3235993


Ignore:
Timestamp:
02/06/2025 12:12:56 PM (13 months ago)
Author:
gothamdev
Message:

optimize obf.js

Location:
gothamazon/trunk
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • gothamazon/trunk/gothamzone.php

    r3235784 r3235993  
    44 * Plugin URI:        https://gothamazon.com
    55 * Description:       Parse Amazon Product Advertising API Feed in 30 seconds
    6  * Version:           3.4.3
     6 * Version:           3.4.4
    77 * Requires PHP:      7.4
    88 * Author:            Kapsule Network
  • gothamazon/trunk/js/obf.js

    r3234084 r3235993  
    1 (function($) {
    2     "use strict";
     1function handleKamesenClick(event) {
     2     const target = event.target.closest('.kamesen');
     3        if (!target || !target.hasAttribute("datasin")) return;
     4
     5        event.preventDefault(); // Empêcher le comportement par défaut du navigateur
     6        const encodedUrl = target.getAttribute("datasin");
     7        const url = decodeURIComponent(window.atob(encodedUrl));
     8
     9        const newWindow = window.open(url, '_blank');
     10        if (newWindow) newWindow.focus();
     11}
     12
     13function handleKamesenContextMenu(event) {
     14    const target = event.target.closest('.kamesen');
     15    if (!target || !target.hasAttribute("datasin")) return;
     16
     17    event.preventDefault();
     18    const encodedUrl = target.getAttribute("datasin");
     19    const url = decodeURIComponent(window.atob(encodedUrl));
     20
     21    window.open(url, '_blank');
     22}
     23
     24// ✅ Ajout d'un écouteur pour détecter le clic molette
     25function handleKamesenMiddleClick(event) {
     26    if (event.button === 1) { // Bouton molette détecté
     27        const target = event.target.closest('.kamesen');
     28        if (!target || !target.hasAttribute("datasin")) return;
     29
     30        event.preventDefault(); // Empêcher le comportement par défaut du navigateur
     31        const encodedUrl = target.getAttribute("datasin");
     32        const url = decodeURIComponent(window.atob(encodedUrl));
     33
     34        const newWindow = window.open(url, '_blank');
     35        if (newWindow) newWindow.focus();
     36    }
     37}
     38
     39document.addEventListener("DOMContentLoaded", function() {
     40    if (window.disableSameInRocketPromo) {
     41        console.log("❌ GTZ Kamesen désactivé par un autre script.");
     42        return;
     43    }
     44    window.disableSameInRocketPromo = true;
    345   
    4     // Désactiver l'équivalent dans Rocket Promo Feed car ca cause un conflit
    5     window.disableSameInRocketPromo = true;
    6 
    7     /**
    8      * Fonction pour gérer le clic gauche sur un élément avec la classe "kamesen".
    9      */
    10     function kapsuleDcode(event) {
    11         // Récupère l'attribut "datasin" et le décode
    12         var attribute = this.getAttribute("datasin");
    13         if (!attribute) return;
    14         var url_decode = decodeURI(window.atob(attribute));
    15 
    16         // Correction spécifique si l'URL contient 'fnac'
    17         if (url_decode.indexOf('fnac') !== -1) {
    18             url_decode = url_decode.replace(/&/g, '&')
    19                                    .replace(/%2B/g, '+')
    20                                    .replace(/%20/g, '+')
    21                                    .replace(/ /g, '+');
    22         }
    23 
    24         // Remplacement de certains caractères accentués
    25         url_decode = url_decode.replace(/è/g, 'e')
    26                                .replace(/à/g, 'a')
    27                                .replace(/é/g, 'e')
    28                                .replace(/ê/g, 'e');
    29 
    30         // Ouvre l'URL dans un nouvel onglet
    31         var newWindow = window.open(url_decode, '_blank');
    32         if (newWindow) {
    33             newWindow.focus();
    34         }
    35     }
    36 
    37     /**
    38      * Fonction pour gérer le clic droit sur un élément avec la classe "kamesen".
    39      */
    40     function myRightFunction(event) {
    41         event.preventDefault();
    42         var attribute = this.getAttribute("datasin");
    43         if (!attribute) return;
    44         var url_decode = decodeURI(window.atob(attribute));
    45 
    46         if (url_decode.indexOf('fnac') !== -1) {
    47             url_decode = url_decode.replace(/&/g, '&')
    48                                    .replace(/%2B/g, '+')
    49                                    .replace(/%20/g, '+')
    50                                    .replace(/ /g, '+');
    51         }
    52 
    53         url_decode = url_decode.replace(/è/g, 'e')
    54                                .replace(/à/g, 'a')
    55                                .replace(/é/g, 'e')
    56                                .replace(/ê/g, 'e');
    57 
    58         var newWindow = window.open(url_decode, '_blank');
    59         if (newWindow) {
    60             newWindow.focus();
    61         }
    62     }
    63 
    64     /**
    65      * Fonction pour gérer le clic "central" (molette) sur un élément avec la classe "kamesen".
    66      */
    67     function EveryClicks(event) {
    68         if (event.button === 1) { // Si c'est le clic de la molette
    69             event.preventDefault();
    70             var attribute = this.getAttribute("datasin");
    71             if (!attribute) return;
    72             var url_decode = decodeURI(window.atob(attribute));
    73 
    74             if (url_decode.indexOf('fnac') !== -1) {
    75                 url_decode = url_decode.replace(/&/g, '&')
    76                                        .replace(/%2B/g, '+')
    77                                        .replace(/%20/g, '+')
    78                                        .replace(/ /g, '+');
    79             }
    80 
    81             url_decode = url_decode.replace(/è/g, 'e')
    82                                    .replace(/à/g, 'a')
    83                                    .replace(/é/g, 'e')
    84                                    .replace(/ê/g, 'e');
    85 
    86             var newWindow = window.open(url_decode, '_blank');
    87             if (newWindow) {
    88                 newWindow.focus();
    89             }
    90         }
    91     }
    92 
    93     // Attachement des écouteurs d'événements via délégation
    94     // Nous utilisons jQuery.on() sur le document pour capter les clics sur les éléments
    95     // qui portent la classe "kamesen", même s'ils sont ajoutés dynamiquement.
    96     $(document)
    97         .on('click', '.kamesen', function(event) {
    98             kapsuleDcode.call(this, event);
    99         })
    100         .on('mousedown', '.kamesen', function(event) {
    101             // Ici, on laisse la fonction EveryClicks gérer le clic molette
    102             EveryClicks.call(this, event);
    103         })
    104         .on('contextmenu', '.kamesen', function(event) {
    105             event.preventDefault();
    106             myRightFunction.call(this, event);
    107         });
    108 
    109 })(jQuery);
     46    console.log("✅ GTZ Kamesen activé.");
     47    document.addEventListener("click", handleKamesenClick);
     48    document.addEventListener("contextmenu", handleKamesenContextMenu);
     49    document.addEventListener("mousedown", handleKamesenMiddleClick);
     50});
  • gothamazon/trunk/readme.txt

    r3235784 r3235993  
    44Tags: amazon affiliate, affiliate, affiliation, amazon, ecommerce, amazon product api
    55
    6 Stable tag: 3.4.3
     6Stable tag: 3.4.4
    77
    88Tested up to: 6.7
     
    180180== Changelog ==
    181181
     182= 3.4.4 =
     183
     184- Optimize obf.js
     185
    182186= 3.4.3 =
    183187
Note: See TracChangeset for help on using the changeset viewer.