From 59951238f8349f7c3d5776e0b6975ed4ac660d13 Mon Sep 17 00:00:00 2001
From: stefanmm <7655575+stefanmm@users.noreply.github.com>
Date: Sun, 24 Dec 2023 12:45:39 +0100
Subject: [PATCH] fix: parsiranje podataka u prozoru za brzi pregled
---
src/changelog.txt | 3 +
src/content.js | 209 +++++++++++++++++++++++-----------------------
src/manifest.json | 2 +-
src/options.html | 2 +-
src/style.css | 21 ++++-
5 files changed, 125 insertions(+), 112 deletions(-)
diff --git a/src/changelog.txt b/src/changelog.txt
index 4400f2a..736d66d 100644
--- a/src/changelog.txt
+++ b/src/changelog.txt
@@ -1,3 +1,6 @@
+v2.0.5
+- Ispravljeno: parsiranje informacija u prozoru za brzi pregled povodom nedavnih izmena na KP sajtu
+
v2.0.3
- Novo: u panelu za brzi pregled oglasa dodate su informacije koje korisnik prikazuje istovremeno u svim svojim oglasima
- Poboljšano: "brzi pregled oglasa" panel je stilizovan
diff --git a/src/content.js b/src/content.js
index 27c6efc..367397f 100644
--- a/src/content.js
+++ b/src/content.js
@@ -294,7 +294,16 @@ function init(options) {
}
// Pokupi informacije
- var podaci = $.parseHTML(podaci);
+ var nextData = $(podaci).filter('script#__NEXT_DATA__').text();
+ var jsonObject = JSON.parse(nextData);
+
+ if(jsonObject && oglasid) {
+
+ var next = findKeyInObject(jsonObject, oglasid);
+
+ }
+ if(typeof next === 'undefined'){ return; }
+
$("#kpp_modal_data").html('\
Učitavanje...
\
\
@@ -303,7 +312,6 @@ function init(options) {
\
\
\
- \
\
\
\
@@ -314,125 +322,114 @@ function init(options) {
\
Učitavanje...
\
');
-
- var ocene = $(podaci).find("div[class^='ReviewThumbLinks_reviewsHolder__']").html();
- var oceneUrl = "Nema ocena";
-
- if(typeof ocene !== "undefined" && ocene !== "" ){
- var oceneUrl = ocene;
- }
// Popuni modal
- $('.kpp_modal_title').html(''+$(podaci).find("h1[class^='AdViewInfo_name__']").text()+'');
- $('.kpp_modal_info .kpp_modal_cena').html($(podaci).find("h2[class^='AdViewInfo_price__']").text());
- $('.kpp_modal_info .kpp_modal_korisnik').html(" "+$(podaci).find("div[class^='UserSummary_userNameHolder__'] > span:not([class^='Badge_badgeHolder__'])").text()+'');
- $('.kpp_modal_info .kpp_modal_korisnik_details').html($(podaci).find("div[class^='UserSummary_userDetails__'] > div").html());
- $('.kpp_modal_info .kpp_modal_ocene').html('Ocene: '+oceneUrl);
+ $('.kpp_modal_title').html(''+next.formattedName+'');
+
+ if(next.adKind == "job"){
+ $('.kpp_modal_info .kpp_modal_cena').html(next.priceText);
+ } else {
+ $('.kpp_modal_info .kpp_modal_cena').html("Cena: "+next.priceText);
+ }
+
+ $('.kpp_modal_info .kpp_modal_korisnik').html(" "+next.user.username+''+' Član od '+next.user.created+' '+next.user.userLocation);
+
+ $('.kpp_modal_info .kpp_modal_ocene').html('Ocene: '+next.user.reviewsPositive+''+next.user.reviewsNegative+'');
+
$('.kpp_modal_info .kpp_modal_poseti').html('Otvori oglas ');
- $('.kpp_modal_desc .desc_data').html($(podaci).find("section[class*='AdPage_adInfoBox__'] > div[class^='Grid_row__']").html());
- var nextData = $(podaci).filter('script#__NEXT_DATA__').text();
- var jsonObject = JSON.parse(nextData);
- if(jsonObject && oglasid) {
-
- var next = findKeyInObject(jsonObject, oglasid);
+
+ if(next.website != "") {
+ var website = 'Posetite websajt';
+ } else {
+ var website = "";
+ }
+
+ if(next.video != "") {
+ var video = 'Pogledajte video';
+ } else {
+ var video = "";
+ }
+ $('.kpp_modal_desc .desc_data').html(website+video+next.description);
+
+
+ // Phone
+ if(next.ownerPhone != ""){
+ $('.kpp_modal_tel').html('Telefon: '+next.ownerPhone);
+ } else if(next.jobApplicationLink != ""){ // Ako je ad tipa Job i postoji link za apliciranje
+ $('.kpp_modal_tel').html('Kontakt: Sajt korisnika ');
+ } else {
+ $('.kpp_modal_tel').remove();
+ }
+ // KP izlog
+ if( next.kpizlog == true && next.user.kpizlogUrl != "" ){
+ $('.kpp_modal_info .kpp_modal_poseti').append('kp Izlog');
}
- if(typeof next !== 'undefined'){
+ // Info box
+ if( next.user.infoBox != "" ){
+ $('.kpp_modal_desc').append('
Informacije:
'+next.user.infoBox+'
');
+ }
- // Phone
- if(next.ownerPhone != ""){
- $('.kpp_modal_tel').html('Telefon: '+next.ownerPhone);
- } else if(next.jobApplicationLink != ""){ // Ako je ad tipa Job i postoji link za apliciranje
- $('.kpp_modal_tel').html('Kontakt: Sajt korisnika ');
+ // Proveri status korisnika (offline/online/sakriven)
+ if(next.user.isShowOnline == true){
+ if(next.user.isOnline == true) {
+ $('#userIcon').css('stroke','#6ab00f');
+ $('.kpp_modal_info .kpp_modal_korisnik').attr("title","Korisnik je Online");
} else {
- $('.kpp_modal_tel').remove();
- }
-
- // KP izlog
- if( next.kpizlog == true && next.user.kpizlogUrl != "" ){
- $('.kpp_modal_info .kpp_modal_poseti').append('kp Izlog');
- }
-
- // Info box
- if( next.user.infoBox != "" ){
- $('.kpp_modal_desc').append('
Informacije:
'+next.user.infoBox+'
');
- }
-
- // Proveri status korisnika (offline/online/sakriven)
- if(next.user.isShowOnline == true){
- if(next.user.isOnline == true) {
- $('#userIcon').css('stroke','#6ab00f');
- $('.kpp_modal_info .kpp_modal_korisnik').attr("title","Korisnik je Online");
- } else {
- $('#userIcon').css('stroke','#f22e2e');
- $('.kpp_modal_info .kpp_modal_korisnik').attr("title","Korisnik je Offline");
- }
- } else { // Sakrio se
- $('#userIcon').css('stroke','');
- $('.kpp_modal_info .kpp_modal_korisnik').attr("title","Korisnik je sakrio svoj status");
+ $('#userIcon').css('stroke','#f22e2e');
+ $('.kpp_modal_info .kpp_modal_korisnik').attr("title","Korisnik je Offline");
}
+ } else { // Sakrio se
+ $('#userIcon').css('stroke','');
+ $('.kpp_modal_info .kpp_modal_korisnik').attr("title","Korisnik je sakrio svoj status");
+ }
- // Galerija
- var galeryArray = next.photos;
-
- if(Array.isArray(galeryArray) && galeryArray.length > 1 ){ // Imamo galeriju i galerija ima više od 1 slike (jer ako ima samo jednu, onda to i nije baš galerija)
-
- var big_img = true;
- $("#kppGalleryHolder").html('
');
- $.each(galeryArray, function( index, value ) {
- $("#thumbnail-carousel ul.splide__list").append('');
-
- $("#main-carousel ul.splide__list").append('');
-
- });
- var mainSlider = new Splide( '#main-carousel', {
- type : 'fade',
- rewind : true,
- pagination: false,
- arrows : true,
- lazyLoad : 'nearby',
- preloadPages: 1
- } );
-
- var thumbnailsSlider = new Splide( '#thumbnail-carousel', {
- fixedWidth : 100,
- fixedHeight : 60,
- gap : 0,
- rewind : true,
- pagination : false,
- isNavigation: true,
- lazyLoad : 'nearby',
- preloadPages: 3,
- focus : 'center',
- breakpoints : {
- 600: {
- fixedWidth : 60,
- fixedHeight: 44,
- },
- },
- } );
-
- mainSlider.sync( thumbnailsSlider );
- mainSlider.mount();
- thumbnailsSlider.mount();
- }
- } // next podaci
+ // Galerija
+ var galeryArray = next.photos;
- if(!big_img) { // Ako nemamo galeriju ili joj se nešto (pu pu pu) desilo, prikažu običnu sliku
+ if(Array.isArray(galeryArray) && galeryArray.length > 0 ){
- var big_img = $(podaci).find("div[class^='AdViewInfo_imageHolder__'] img").attr('src');
- if(big_img){ // Ima makar jednu sliku
-
- var full_img = big_img.replace('tmb-300x300-', ''); // Zameni umanjenu sliku sa najvećom
- big_img = big_img.replace('tmb-300x300-', 'big-'); // Zameni umanjenu sliku sa malo većom
+ $("#kppGalleryHolder").html('