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('
  • umanjena slika oglasa
  • '); - - $("#main-carousel ul.splide__list").append('
  • slika oglasa
  • '); - - }); - 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(''); + $.each(galeryArray, function( index, value ) { + $("#thumbnail-carousel ul.splide__list").append('
  • umanjena slika oglasa
  • '); - $('.kpp_modal_info .photo-col').html(''); - } else { // Nema nijednu baš sliku?! Ok, prikaži šta ima - $('.kpp_modal_info .photo-col').html( $(podaci).find("div[class^='AdViewInfo_imageHolder__']").html() ); - } + $("#main-carousel ul.splide__list").append('
  • slika oglasa
  • '); + + }); + 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(); } + }, error: function(err){ diff --git a/src/manifest.json b/src/manifest.json index 38fc675..a82154e 100644 --- a/src/manifest.json +++ b/src/manifest.json @@ -1,7 +1,7 @@ { "name": "KP Plus", "description": "Dodatne opcije za KP sajt: Brzi pregled oglasa, Noćni režim, Uveličaj sliku na klik, Plutajuća traka sa informacijama, Proširi sajt.", - "version": "2.0.4", + "version": "2.0.5", "author": "Stefan Marjanov", diff --git a/src/options.html b/src/options.html index 2cb36a9..bd7652a 100644 --- a/src/options.html +++ b/src/options.html @@ -130,7 +130,7 @@ - + diff --git a/src/style.css b/src/style.css index 1705c69..aae1db5 100644 --- a/src/style.css +++ b/src/style.css @@ -376,6 +376,19 @@ div.adListContainer div.item .kpIzlogHolder { margin-bottom: 10px; font-weight: bold; } +.kpp_modal_desc_site { + align-items: center; + display: flex; + justify-content: center; + margin: 1.6rem; +} +.kpp_modal_desc_site > svg { + stroke: var(--color-primary-sky-blue); + margin-right: 1.2rem; +} +.kpp_modal_desc_site > a { + color: var(--color-primary-sky-blue); +} .kpp_modal_single_head { font-weight: bold; font-size: 16px; @@ -387,7 +400,7 @@ div.adListContainer div.item .kpIzlogHolder { display: block; margin-top: 15px; border: 1px solid #317dc1; - padding: 5px; + padding: 1.6rem; border-radius: 5px; } .kpp_modal_poseti { @@ -421,16 +434,16 @@ div.adListContainer div.item .kpIzlogHolder { -.kpp_modal_ocene > a { +.kpp_modal_ocene > span { margin-left: 10px; } -.kpp_modal_ocene > a:first-child > svg { +.kpp_modal_ocene > span:first-child > svg { stroke: #8cc541; margin-right: 5px; } -.kpp_modal_ocene > a:last-child > svg { +.kpp_modal_ocene > span:last-child > svg { stroke: #ff0000; margin-right: 5px; }