Help
RSS
API
Feed
Maltego
Contact
Domain > rotorua.prestopark.work
×
More information on this domain is in
AlienVault OTX
Is this malicious?
Yes
No
DNS Resolutions
Date
IP Address
2024-06-09
15.236.230.6
(
ClassC
)
2025-10-23
13.39.100.82
(
ClassC
)
Port 80
HTTP/1.1 302 FoundDate: Thu, 23 Oct 2025 03:01:24 GMTContent-Type: text/html; charsetiso-8859-1Content-Length: 216Connection: keep-aliveServer: Apache/2.4.64 (Amazon Linux) OpenSSL/3.2.2Location: https://rotorua.prestopark.work/ !DOCTYPE HTML PUBLIC -//IETF//DTD HTML 2.0//EN>html>head>title>302 Found/title>/head>body>h1>Found/h1>p>The document has moved a hrefhttps://rotorua.prestopark.work/>here/a>./p>/body>/html>
Port 443
HTTP/1.1 200 OKDate: Thu, 23 Oct 2025 03:01:25 GMTContent-Type: text/html; charsetutf-8Transfer-Encoding: chunkedConnection: keep-aliveServer: Apache/2.4.64 (Amazon Linux) OpenSSL/3.2.2X-DNS-Prefetch-Control: offExpect-CT: max-age0Strict-Transport-Security: max-age15552000; includeSubDomainsX-Download-Options: noopenX-Content-Type-Options: nosniffX-Permitted-Cross-Domain-Policies: noneX-XSS-Protection: 0Vary: Origin,Accept-EncodingAccess-Control-Allow-Credentials: trueETag: W/7e6a-1bJ8hFbhqRhUgPyCFu8RGvRCGJYSet-Cookie: prestopark-localefr; Max-Age9000; Domain.prestopark.work; Path/; ExpiresThu, 23 Oct 2025 05:31:25 GMT; HttpOnlySet-Cookie: prestopark-countryfr; Max-Age9000; Domain.prestopark.work; Path/; ExpiresThu, 23 Oct 2025 05:31:25 GMT; HttpOnlySet-Cookie: connect.sids%3AD8GlYIEZz1aOs-iOWHMgN9IsxaGyULlP.WuKsvL3113S5OO%2FhMr3AhCs7n%2Fh2tjTZhcwo4hjh8RI; Domain.prestopark.work; Path/; ExpiresFri, 24 Oct 2025 03:01:25 GMT; HttpOnly !DOCTYPE html>html>!-- layout -->head> title>PrestoPark - Rotorua - Le stationnement connecté/title> meta charsetutf-8> meta http-equivX-UA-Compatible contentIEedge> meta nameviewport contentwidthdevice-width, initial-scale1.0> meta namedescription contentPrestoPark solutions de gestion du stationnement> meta nameauthor contentIEM SA> meta nameversion content4.1.13> meta namekeywords content PrestoPark, stationnement, ticket virtuel, Leman Express Gare Annemasse Genève Annemasse Genève Frontaliers Parking Genève P+R Genève Parking relais Genève Recharge véhicule électrique Borne recharge Parking Moto Parking frontalier Aller à Genève Travailler à Genève Stationner a Genève Se garer à Genève Parking Léman Express Tram Annemasse Tram Genève Transport Genève Transport Suisse Abonnement Léman Express Abonnement SNCF Genève Aéroport Genève Parc des Expo Genève Abonnement parking Genève Mont de Genève Séjour à Genève Week end a Genève Emploi Genève > meta nameapple-mobile-web-app-capable contentyes> meta namemobile-web-app-capable contentyes> link relshortcut icon href/favicon.ico typeimage/x-icon; charsetbinary> link relstylesheet mediascreen href/css/portal-4.1.13.min.css/>/head>body classhome rotorua locale-fr> header classheader-main> div classnavbar navbar-default rolenavigation> div classcontainer> div classnavbar-header> button typebutton classnavbar-toggle data-togglecollapse data-target.navbar-collapse> span classsr-only>Basculer la navigation/span> span classicon-bar>/span> span classicon-bar>/span> span classicon-bar>/span> /button> a classnavbar-brand href/> div classlogos--presto-park_logo>/div> /a> /div> div classnavbar-collapse collapse> ul classnav navbar-nav navbar-left> !--li classdropdown> a href/avantages classjs-activated data-toggledropdown>Avantages/a> ul classdropdown-menu> li> a href/avantages/particulier>Particulier/a> /li> li> a href/avantages/entreprise>Entreprise/a> /li> li> a href/avantages/collectivite>Collectivité/a> /li> /ul> /li>--> li classdropdown> a classdropdown-toggle js-activated data-toggledropdown href#>Services disponibles/a> ul classdropdown-menu> li> a href/fps>FPS (Amende)/a> /li> li> a href/application>Paiement mobile/a> /li> li> a href/electronic-desk>Guichet électronique/a> /li> /ul> /li> li classdropdown> a href/cities class>Villes/a> /li> li classdropdown> a hrefhttps://www.iemgroup.com/fr/faq-web/>Aide/a> ul classdropdown-menu> li> a href/help>Utilisation/a> /li> /ul> /li> /ul> ul classnav navbar-nav navbar-right> li classbutton dropdown language> a href# classjs-activated> div classvisible-xs>/div> div classflag flag-fr stylemargin-right: 0px !important;>/div> /a> ul classdropdown-menu> li> a href/fr-fr/> div classflag flag-fr>/div> span>Français/span> /a> /li> li> a href/en-fr/> div classflag flag-au>/div> span>Anglais/span> /a> /li> li> a href/de-fr/> div classflag flag-de>/div> span>Allemand/span> /a> /li> li> a href/es-fr/> div classflag flag-es>/div> span>Espagnol/span> /a> /li> li> a href/nb-fr/> div classflag flag-nb>/div> span>Norvégien/span> /a> /li> li> a href/it-fr/> div classflag flag-it>/div> span>Italien/span> /a> /li> /ul> /li> !----> li classbutton register-btn> a idregisterBtn href/inscription >Inscription/a> /li> !----> li classbutton login-btn> a idloginBtn href/connexion class>Connexion/a> /li> /ul> /div> !--/.nav-collapse --> /div> !--/.container--> /div> !--navigation end--> /header> !--header main end--> !--alerts--> !--/alerts--> !-- Section Vidéo/Image -->div classjumbotron hidden-xs hidden-sm> div classvideo-container2 styleposition: relative; overflow: hidden; width: 100%; height: 700px;> video iddelayedVideo muted playsinline stylewidth: 100%; height: 100%; object-fit: cover; object-position: bottom;> source src//s3-eu-west-1.amazonaws.com/prestopark/prestopark.webm typevideo/webm> source src//s3-eu-west-1.amazonaws.com/prestopark/prestopark.mp4 typevideo/mp4> Votre navigateur ne prend pas en charge les vidéos HTML5. /video> /div>/div>div classjumbotron visible-xs visible-sm image-container stylebackground-image: url(//prestopark.s3.eu-west-1.amazonaws.com/prestopark.jpg); background-size: cover; background-position: center; width: 100%; height: 700px;>/div>!-- Styles -->style> .jumbotron.hidden-xs.hidden-sm { position: relative; /* Pour permettre le positionnement absolu de loverlay */ } .jumbotron.hidden-xs.hidden-sm::before { content: ; position: absolute; top: 0; left: 0; width: 100%; height: 100%; background-color: #81818117; z-index: 2; pointer-events: none; } .video-container2 video { position: relative; z-index: 1; } .jumbotron { margin: 0; padding: 0; height: 700px !important; } .video-container2 video { display: block; width: 100%; height: 100%; object-fit: cover; /* La vidéo remplit lespace, crop verticalement si nécessaire */ } .image-container { background-repeat: no-repeat; background-size: cover; /* Limage couvre tout lespace, crop verticalement si nécessaire */ background-position: center; width: 100%; /* Sassure que limage occupe toute la largeur */ height: 700px; /* Ajustez cette valeur si vous voulez une hauteur différente */ } @media (max-width: 768px) { .hidden-xs { display: none !important; } .visible-xs { display: block !important; } } @media (min-width: 769px) { .hidden-sm { display: block !important; } .visible-sm { display: none !important; } } @media (max-width: 1200px) { /* Définir la largeur maximale pour le mobile */ .hidden-mb { display: none; /* Cacher lélément */ } .jumbotron { height: 300px !important; } .picto-right{ display: none; } }/style>!-- Script pour démarrer la vidéo avec un délai -->script> document.addEventListener(DOMContentLoaded, function () { const video document.getElementById(delayedVideo); // Ajouter un délai de 5 secondes avant de démarrer la vidéo setTimeout(() > { video.play().catch((error) > { console.error(La vidéo na pas pu démarrer automatiquement :, error); }); }, 1000); // 5000ms 5 secondes });/script>/div> style> .btn-primary:hover span { color: white !important; /* Change la couleur du texte */ } .jumbotron { color : #082751 !important; } .video-container { height: 700px !important; } .row.wow.animated.fadeInDown { animation-name: none !important; } /style>div classcontainer-fluid actions stylebackground: rgba(255, 255, 255, 0.6) !important;backdrop-filter: blur(30px) !important; padding-left: 0px;padding-right: 0px; height: 180px !important; z-index: 3;> div classrow wow animated fadeInDown> !-- div classspace-1 stylebackground-color: #082751; height: 3px; width: auto;>/div> --> div classcol-md-12 slogan text-center> p stylecolor: #082751;font-size: clamp(20px, 2vw, 26px);> Le stationnement connecté /p> /div> div classcontainer-center> div classrow> div classcol-lg-3 col-md-12 col-xs-12 col1 stylepadding-right: 16px;padding-left: 44px;> p stylemargin: auto; margin-bottom: 10px;> a classbtn btn-primary btn-lg icon-small_inscription fleche-droite href/inscription rolebutton stylewhite-space: nowrap;> span stylecolor: #082751;font-size: clamp(16px, 2vw, 20px);>Je m'inscris en 1 minute/span> i styletop: -1px!important;classpicto-right pictos--icon_fleche-droite hidden-xs>/i> /a> /p> /div> div classcol-lg-3 col-md-12 col-xs-12 col2 stylepadding-right: 16px;padding-left: 44px;> p stylemargin: auto; margin-bottom: 10px;> a classbtn btn-primary btn-lg icon-small_payer-fps fleche-droite text-white href/fps rolebutton stylewhite-space: nowrap;> span stylecolor: #082751;font-size: clamp(16px, 2vw, 20px);>Je saisis mon FPS (Amende)/span> i styletop: -1px!important; classpicto-right pictos--icon_fleche-droite hidden-xs>/i> /a> /p> /div> div classcol-lg-3 col-md-12 col-xs-12 col3 stylepadding-right: 16px;padding-left: 44px;> p stylemargin: auto; margin-bottom: 10px;> a classbtn btn-primary btn-lg icon-small_telecharger-app fleche-droite href/application rolebutton stylewhite-space: nowrap;> span stylecolor: #082751;font-size: clamp(16px, 2vw, 20px);>Je télécharge l'application/span> i styletop: -1px!important; classpicto-right pictos--icon_fleche-droite hidden-xs>/i> /a> /p> /div> /div> /div> div classspace-30 hidden-mb>/div> div classspace-1 stylebackground-color: #082751; height: 3px; width: auto;>/div> /div>/div>div classcontainer-fluid sub-section stylepadding: 0;> !-- Étape 1 : Stationnement Mobile --> section classstep-section stylepadding: 80px 0; background-color: white; color: #082751; padding-top : 100px !important;> div classcontainer> div classrow align-items-center> div classcol-lg-6 col-md-12 wow fadeInLeft data-wow-duration0.5s styletext-align: right;> h2 stylefont-size: 2.5em; font-weight: bold;>Le stationnement mobile/h2> p stylefont-size: 1.2em; line-height: 1.8;> Grâce à l'application PrestoPark, stationnez facilement en quelques clics, sans avoir besoin de ticket papier. Profitez d'une expérience simplifiée pour vos déplacements quotidiens. /p> a href/application classbtn btn-primary stylebackground-color: #082751; color: white; font-weight: bold; padding: 12px 24px; border-radius: 8px;>Découvrir l'application/a> /div> div classcol-lg-6 col-md-12 wow fadeInRight data-wow-duration0.5s styletext-align: center;padding-top: 10px; padding-bottom: 10px;> img src/img/entete-mobile-payment-mobile.jpg altStationnement Mobile classimg-fluid styleborder-radius: 10px; box-shadow: 0px 4px 15px rgba(0, 0, 0, 0.4); max-width: 90%; height: auto;> /div> /div> /div> /section> !-- Étape 2 : Gestion des FPS --> section classstep-section stylepadding: 80px 0; background-color: #082751; color: white;> div classcontainer> div classrow align-items-center> div classcol-lg-6 col-md-12 wow fadeInLeft data-wow-duration0.5s styletext-align: center;padding-top: 10px; padding-bottom: 10px;> img src/img/entete-post-parking-package-mobile.jpg altGestion FPS classimg-fluid styleborder-radius: 10px; box-shadow: 0px 4px 15px rgba(0, 0, 0, 0.4); max-width: 90%; height: auto;> /div> div classcol-lg-6 col-md-12 wow fadeInRight data-wow-duration0.5s styletext-align: left;> h2 stylefont-size: 2.5em; font-weight: bold;>La gestion des FPS en ligne/h2> p stylefont-size: 1.2em; line-height: 1.8;> Contestez ou payez vos amendes de stationnement directement en ligne sur une plateforme sécurisée. Simplifiez votre gestion administrative en quelques clics ! /p> a href/fps classbtn btn-light stylebackground-color: white; color: #082751; font-weight: bold; padding: 12px 24px; border-radius: 8px;>En savoir plus/a> /div> /div> /div> /section> !-- Étape 3 : Droits de Stationnement --> section classstep-section stylepadding: 80px 0; background-color: white; color: #082751;> div classcontainer> div classrow align-items-center> div classcol-lg-6 col-md-12 wow fadeInLeft data-wow-duration0.5s styletext-align: right;> h2 stylefont-size: 2.5em; font-weight: bold;>Gestion des droits de stationnement/h2> p stylefont-size: 1.2em; line-height: 1.8;> Abonnements, tarifs spéciaux ou droits particuliers: gérez tout en ligne de manière intuitive. Profitez d'une solution moderne pour tous vos besoins de stationnement. /p> a href/electronic-desk classbtn btn-primary stylebackground-color: #082751; color: white; font-weight: bold; padding: 12px 24px; border-radius: 8px;>Explorer les options/a> /div> div classcol-lg-6 col-md-12 wow fadeInRight data-wow-duration0.5s styletext-align: center;padding-top: 10px; padding-bottom: 10px;> img src/img/entete-particulier-mobile.jpg altDroits Stationnement classimg-fluid styleborder-radius: 10px; box-shadow: 0px 4px 15px rgba(0, 0, 0, 0.4); max-width: 90%; height: auto; > /div> /div> /div> /section> div classspace-1 stylebackground-color: #082751; height: 3px; width: auto;>/div>/div> div classcontainer footer> div idfooter> div classrow> div classcol-md-9 margin-btm-20> div classfooter-col> h3>A propos/h3> p> PrestoPark est une offre d’e-services accessibles en ligne et sur mobile destinée aux usagers du stationnement payant sur voirie. Que l'utilisateur soit un usager occasionnel, régulier ou simplement de passage en centre-ville, PrestoPark aide les automobilistes à stationner en toute sérénité en les guidant vers les places disponibles et en modernisant les moyens du paiement avec des titres de stationnement entièrement dématérialisés. br />PrestoPark est une marque d'IEM, entreprise franco-suisse spécialisée dans les solutions de gestion du stationnement payant sur voirie.br />br /> noscript>Free cookie consent management tool by a hrefhttps://www.termsfeed.com/>TermsFeed/a>/noscript> !-- End Cookie Consent by TermsFeed https://www.TermsFeed.com --> !-- Below is the link that users can use to open Preferences Center to change their preferences. Do not modify the ID parameter. Place it where appropriate, style it as needed. --> a href# idopen_preferences_center stylefont-size: 12px; bottom: 10px; left: 10px; z-index: 1000; color: #082751; border-radius: 5px; text-decoration: none;>Mettre à jour les préférences de cookies/a> !-- End Cookie Consent plugin --> /p> /div> /div> div classcol-md-1 no-header> div classlogos--presto-park_logo-blanc>/div> /div> div classcol-md-2 no-header> div classfooter-col legal> p>a classhover-color hrefhttps://www.iemgroup.com/fr/faq-web/ target_blank>Nous contacter/a> p> a classhover-color href/mentions-legales>Mentions légales/a> /p> p> a classhover-color href/terms>Conditions d'utilisation/a> /p> p> a classhover-color href/privacy>Politique de confidentialité/a> /p> p classcopyright>©2015 - span idyear>/span> IEM SA/SARL/p> script> document.getElementById(year).textContent new Date().getFullYear(); /script> p classcopyright current-city>Version : 4.1.13/p> /div> /div> /div> /div> /div> a idtoTop classbtn btn-default wow animated fadeInDown>Retour en haut de page/a> script> (function(i, s, o, g, r, a, m) { iGoogleAnalyticsObject r; ir ir || function() { (ir.q ir.q || ).push(arguments) }, ir.l 1 * new Date(); a s.createElement(o), m s.getElementsByTagName(o)0; a.async 1; a.src g; m.parentNode.insertBefore(a, m) })(window, document, script, //www.google-analytics.com/analytics.js, ga); ga(create, UA-10526385-6, auto); ga(send, pageview); var API_DOMAIN //www.prestopark.work/api; var LYRA_PROXY https://payment-lyra-proxy-work.prestoplatform.io; var MAP_API_DOMAIN https://apiwork.prestoplatform.io/v1; var COUNTRY fr; var DOMAIN_WWW www.prestopark.work; var PRESTOPARK_API_DOMAIN https://prestopark-api-work.prestoplatform.io; var MAPS_API_KEY AIzaSyD3CdfWnHaiXxMDWr_MEZKTP9ucJlKSs3s; /script> !-- WTF exp script async defer srchttps://maps.googleapis.com/maps/api/js?v3.exp&key>/script> --> script async defer srchttps://maps.googleapis.com/maps/api/js?keyAIzaSyD3CdfWnHaiXxMDWr_MEZKTP9ucJlKSs3s>/script> script srchttps://unpkg.com/axios@1.0.0/dist/axios.min.js>/script> script srchttps://cdn.jsdelivr.net/lodash/4.16.4/lodash.min.js>/script> script typetext/javascript src/js/portal-4.1.13.min.js>/script> script> var $buoop {c:2}; function $buo_f(){ var e document.createElement(script); e.src //browser-update.org/update.min.js; document.body.appendChild(e); }; try {document.addEventListener(DOMContentLoaded, $buo_f,false)} catch(e){window.attachEvent(onload, $buo_f)} /script> !-- HTML5 Shim and Respond.js IE8 support of HTML5 elements and media queries --> !--if lt IE 9> script srchttps://oss.maxcdn.com/libs/html5shiv/3.7.0/html5shiv.js>/script> script srchttps://oss.maxcdn.com/libs/respond.js/1.4.2/respond.min.js>/script> !endif--> !-- Begin Cookie Consent plugin by Silktide - http://silktide.com/cookieconsent --> !-- Cookie Consent by TermsFeed https://www.TermsFeed.com --> script typetext/javascript srchttps://www.termsfeed.com/public/cookie-consent/4.1.0/cookie-consent.js charsetUTF-8>/script> script typetext/javascript charsetUTF-8> document.addEventListener(DOMContentLoaded, function () { cookieconsent.run({notice_banner_type:simple,consent_type:express,palette:light,language:fr,page_load_consent_levels:strictly-necessary,notice_banner_reject_button_hide:false,preferences_center_close_button_hide:false,page_refresh_confirmation_buttons:false,website_name:prestopark.com,website_privacy_policy_url:https://prestopark.com/privacy}); }); /script> script> var i18n { message: { close: Fermer }, intelligentGuidance: { unoccupied: Libre, occupied: Occupé, availability: Disponibilité des places, total: Nombre de places, detail: Détail }, lastParkingMeasure: { label: Statut, FREE: Libre, OCCUPIED: Occupé, UNDETERMINED: Occupé, durationLabel: Durée de stationnement, capteur: Capteur } }; /script> style typetext/css> /* On screens that are 992px or less, edit the lang selector */ @media (max-width: 992px){ .navbar-right .dropdown-menu{ right: 0; left: 50px; } } /style>!--CHATBOT -->div classhelp-container idhelp-container> span classhelp-text>Besoin d'aide ?/span> /div> div classchat-container idchat-container styledisplay: none;> div classchat-header> span classchat-title>Demander de l'aide à PrestoBot/span> span classchat-help idhelp-icon>?/span> span classchat-close idchat-close>×/span> div classhelp-popup idhelp-popup> Ce bot vous aide à comprendre le fonctionnement du site PrestoPark et de l'application mobile PrestoPark. /br> /br>Posez-lui des questions et il fera de son mieux pour vous aider. /br> /br> Si vous ne trouver pas de réponse à vos question, vous pouvez nous contacter sur notre formulaire via ce a hrefhttps://prestopark.com/support target_blank> lien/a> /div> /div> div idchatbox>/div> div classinput-container> input typetext iduser-input placeholderÉcrivez votre message ici... /> button idsend-btn> Envoyer /button> /div> /div>style> .help-container { display: flex; align-items: center; cursor: pointer; padding: 10px 20px; border: 2px solid #232653; border-radius: 25px; background-color: #fff; box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1); transition: background-color 0.3s, transform 0.3s; position: fixed; bottom: 20px; right: 20px;}.help-container:hover { background-color: #f0f0f0; transform: scale(1.05);}.help-icon { font-size: 24px; color: #232653; margin-right: 15px;}.help-icon:hover { color: #ddd;}.help-text { font-size: 18px; color: #232653;}.chat-container { width: 100%; max-width: 500px; /* Augmenter la largeur maximale */ background-color: #232653; border-radius: 8px; box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1); display: flex; flex-direction: column; overflow: hidden; height: 80vh; /* Fixer la hauteur de la chatbox */ opacity: 0; transform: translateY(20px); transition: opacity 0.5s, transform 0.5s; position: fixed; bottom: 20px; right: 20px; z-index: 1000;}@media (max-width: 768px) { .chat-container { max-width: 90%; height: 70vh; /* Ajuster la hauteur pour les écrans plus petits */ } .help-container { bottom: 10px; right: 10px; padding: 8px 16px; } .input-container { padding: 10px; height: 50px; /* Ajuster la hauteur pour les écrans plus petits */ } #send-btn { padding: 0px 22px; }}.chat-container.show { opacity: 1; transform: translateY(0);}.chat-header { background-color: #232653; color: white; padding: 10px 20px; display: flex; justify-content: space-between; align-items: center; border-bottom: 1px solid #ccc; position: relative;}.chat-title { font-size: 18px; font-weight: bold; flex-grow: 1;}.chat-help { font-size: 18px; cursor: pointer; margin-right: 10px; /* Ajuster la marge pour lespacement */}.chat-help:hover { color: #ddd;}.chat-close { font-size: 24px; cursor: pointer; margin-right: 0; /* Supprimer la marge droite de la croix */}.chat-close:hover { color: #ddd;}.help-popup { display: none; position: absolute; top: 30px; right: 20px; background-color: #fff; color: #000; padding: 10px; border: 1px solid #ccc; border-radius: 5px; width: 300px; box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1); z-index: 1000;}#chatbox { flex: 1; padding: 20px; overflow-y: auto; background-color: white; display: flex; flex-direction: column; height: calc(100% - 140px); /* Ajuster en fonction de la hauteur des autres éléments */}.message { margin: 10px 0; padding: 10px; border-radius: 20px; max-width: 80%; position: relative; white-space: pre-wrap; display: flex; align-items: center;}.user { background-color: #d3d3d3; align-self: flex-end; text-align: right; border-bottom-right-radius: 0;}.bot { background-color: #add8e6; align-self: flex-start; text-align: left; border-bottom-left-radius: 0; padding-left: 20px; /* Adjust padding to make space for the logo */ margin-left: 50px; /* Adjust margin to make space for the logo */}.bot .message-content { flex: 1;}.bot .bot-logo { position: absolute; left: -50px; /* Adjust this value based on the logo size */ top: 50%; transform: translateY(-50%); width: 40px; /* Adjust based on desired logo size */ height: 40px; background: url(img/logo.png) no-repeat center center; /* Path to the transparent logo */ background-size: contain;}.input-container { display: flex; border-top: 1px solid #ccc; background-color: #232653; padding: 10px; height: 60px; /* Fixer la hauteur de linput-container */}#user-input { flex: 1; padding: 15px; border: none; outline: none; font-size: 16px; color: #232653;}#send-btn { padding: 0px 22px; background-color: #4CAF50; color: white; border: none; cursor: pointer;}#send-btn:hover { background-color: #45a049;}.spinner { border: 4px solid rgba(0, 0, 0, 0.1); width: 24px; height: 24px; border-radius: 50%; border-left-color: #add8e6; animation: spin 1s linear infinite;}@keyframes spin { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); }}/style>script> let chatboxOpenedOnce false;async function sendMessage(message, isInitialMessage false) { const chatbox document.getElementById(chatbox); let userInput ; if (!isInitialMessage) { userInput document.getElementById(user-input).value; if (userInput.trim() ) return; const userMessage document.createElement(div); userMessage.classList.add(message, user); userMessage.textContent userInput; chatbox.appendChild(userMessage); document.getElementById(user-input).value ; } else { userInput message; } const botTyping document.createElement(div); botTyping.classList.add(message, bot); botTyping.innerHTML div classspinner>/div>; chatbox.appendChild(botTyping); chatbox.scrollTop chatbox.scrollHeight; const response await fetch(/chat, { method: POST, headers: { Content-Type: application/json }, body: JSON.stringify({ message: userInput }) }); const data await response.json(); chatbox.removeChild(botTyping); const botMessage document.createElement(div); botMessage.classList.add(message, bot); botMessage.innerHTML `div classbot-logo>/div>div classmessage-content>${formatMessage(data.reply)}/div>`; chatbox.appendChild(botMessage); chatbox.scrollTop chatbox.scrollHeight;}// Formatage du message du bot pour améliorer la lisibilité et rendre les liens cliquablesfunction formatMessage(message) { // Remplacer les listes numérotées par des puces et sassurer que le texte reste sur la même ligne message message.replace(/(\d+)\.\s/g, • ); // Rendre les liens cliquables et sassurer quils ne sont pas dupliqués, ajout dun espace après chaque URL message message.replace(/(\bhttps?:\/\/^\s+)/g, function(url) { return `a href${url} target_blank>${url}/a> `; }); // Remplacer les retours à la ligne excessifs par un seul retour à la ligne message message.replace(/(\.|\?|\!)(\s|$)/g, $1br>); // Supprimer les doubles retours à la ligne pour éviter les espaces excessifs message message.replace(/br>(\s*br>)+/g, br>); return message;}// Afficher et masquer lexplication du bot au clicfunction toggleBotInfo() { const helpPopup document.getElementById(help-popup); if (helpPopup.style.display block) { helpPopup.style.display none; } else { helpPopup.style.display block; }}// Afficher la chatbox au clic sur le point dinterrogationfunction showChatbox() { const helpContainer document.getElementById(help-container); const chatContainer document.getElementById(chat-container); helpContainer.style.display none; chatContainer.style.display flex; setTimeout(() > chatContainer.classList.add(show), 10); // Ajouter la classe avec un léger délai pour activer lanimation if (!chatboxOpenedOnce) { sendMessage(Bonjour, Tu dois te présenter à l'usager et lui proposer ton aide pour PrestoPark et le stationnement., true); chatboxOpenedOnce true; }}// Fermer la chatbox et revenir à létat initialfunction closeChatbox() { const helpContainer document.getElementById(help-container); const chatContainer document.getElementById(chat-container); chatContainer.classList.remove(show); setTimeout(() > { chatContainer.style.display none; helpContainer.style.display flex; }, 500); // Délai pour correspondre à la durée de lanimation}// Ajouter les événementswindow.onload function() { document.getElementById(help-container).addEventListener(click, showChatbox); document.getElementById(help-icon).addEventListener(click, toggleBotInfo); document.getElementById(chat-close).addEventListener(click, closeChatbox); document.addEventListener(click, (event) > { const helpPopup document.getElementById(help-popup); const helpIcon document.getElementById(help-icon); if (!helpPopup.contains(event.target) && !helpIcon.contains(event.target)) { helpPopup.style.display none; } });};document.getElementById(send-btn).addEventListener(click, () > sendMessage());document.getElementById(user-input).addEventListener(keydown, (event) > { if (event.key Enter) { sendMessage(); }});/script>/body>/html>
View on OTX
|
View on ThreatMiner
Please enable JavaScript to view the
comments powered by Disqus.
Data with thanks to
AlienVault OTX
,
VirusTotal
,
Malwr
and
others
. [
Sitemap
]