PropertyguruAssist

one button click -> simplify propertyguru listing info for easily copy / paste

当前为 2024-04-04 提交的版本,查看 最新版本

// ==UserScript==
// @name         PropertyguruAssist
// @namespace    http://tampermonkey.net/
// @version      0.3
// @description  one button click -> simplify propertyguru listing info for easily copy / paste
// @author       EnginePlus
// @match        https://*.propertyguru.com.sg/listing/*
// @grant        none
// @resource     customCSS https://cdn.jsdelivr.net/npm/[email protected]/dist/css/bootstrap.min.css
// @require      https://greasyfork.org/scripts/27254-clipboard-js/code/clipboardjs.js?version=174357
// @require      https://cdn.jsdelivr.net/npm/[email protected]/dist/jquery.slim.min.js
// ==/UserScript==

(function() {
    'use strict';
    //var title    = $(document).attr("title");
    //// alert(title);
    //var arr      = title.split(',');
    ////The Jade, 9 Bukit Batok Central Link, 3 Bedrooms, 1755 Sqft, Condos & Apartments for Sale, by Chan Yong Jie (Bob), S$ 1,620,000, 21559901
    ////Lake Grande, 2 Jurong Lake Link, 2 Bedrooms, 667 sqft, N SALE, by Tan Chee Kiong, 24402533
    //var url      = window.location.href;
    //var project  = arr[0];
    ////var address = arr[1];
    //var bdr_num  = arr[2];
    //var size     = arr[3];
    //var agent    = arr[5];
    //var price    = $(".price .amount").text(); //var price    = $(".element-label.price").attr("content");
    //var details  = $("table tbody").text();
    //var info     = details.slice(details.indexOf("TOP"), details.indexOf("Listed On"));
    //info         = info.replace('TOP', '');
    //info         = info.replace('Total Units', ' / ');
    //info         = info.replace('Tenure', ' / ');
	//
    //var phone    = $('.card-body a').attr("href");
    //phone        = phone.slice(phone.indexOf("="), phone.indexOf("&"));
    //phone        = phone.replace('=', '+');
    //agent = agent.replace('by ','');
    //var clipbard_text = url + '	'
    //                    + project + ' [' + info + '] '
    //                    + ', ' + bdr_num + ', ' + size + ', ' + price +'	'
    //                    + agent + ' ' + phone;
    ////alert(agent_phone);
    //var clipboard = new Clipboard('.btn');
    //var title_text = ' <button style="font-size:13px;background-color: #eeeee4" class="btn" data-clipboard-text="' + clipbard_text + '">点我复制 url / listing info / agent + phone </button>';
    //$("h1").append(title_text);
	//
    //// Your code here...

    //#version 2: read data from json format data

  // 获取JSON数据内容
  var url         = window.location.href;
  var jsonData    = JSON.parse(document.getElementById('__NEXT_DATA__').textContent);
  var propetyName = jsonData.props.pageProps.pageData.data.listingData.localizedTitle;
  var propetyType = jsonData.props.pageProps.pageData.data.detailsData.metatable.items[0].value;
  var floorSize	= jsonData.props.pageProps.pageData.data.detailsData.metatable.items[1].value;
  var tenureType 	= jsonData.props.pageProps.pageData.data.detailsData.metatable.items[8].value;
  var listDate 	= jsonData.props.pageProps.pageData.data.detailsData.metatable.items[9].value;
  var listID 		= jsonData.props.pageProps.pageData.data.detailsData.metatable.items[10].value;
    var floorLevel;
    var topYear;
    var totalUnits ="";

  if (propetyType.includes("hdb") || propetyType.includes("HDB")) {
	// "字符串中包含'hdb'或'HDB'
	floorLevel	= jsonData.props.pageProps.pageData.data.detailsData.metatable.items[3].value;
	topYear 	= jsonData.props.pageProps.pageData.data.detailsData.metatable.items[7].value;
  } else {
      // if condo
	floorLevel	= jsonData.props.pageProps.pageData.data.detailsData.metatable.items[2].value;
	topYear 	= jsonData.props.pageProps.pageData.data.detailsData.metatable.items[6].value;
	totalUnits 	= jsonData.props.pageProps.pageData.data.detailsData.metatable.items[7].value;
  }

var bedNum 		= jsonData.props.pageProps.pageData.data.propertyOverviewData.propertyInfo.amenities[0].text;
var bathNum 	= jsonData.props.pageProps.pageData.data.propertyOverviewData.propertyInfo.amenities[1].text;
var price 	= jsonData.props.pageProps.pageData.data.propertyOverviewData.propertyInfo.price.amount;
//var floorSize 	= jsonData.props.pageProps.pageData.data.propertyOverviewData.propertyInfo.amenities[2].text;

  var agentName	= jsonData.props.pageProps.pageData.data.contactAgentData.contactAgentCard.agentInfoProps.agent.name;
  var phoneNumber = jsonData.props.pageProps.pageData.data.contactAgentData.contactAgentCard.contactActions[1].phoneNumber;
var clipboardText = url + '&#9;'
                        + propetyName + ' [' + tenureType + ' / ' + topYear + ' / ' + totalUnits + '] '
                        + ', ' + bedNum + ', ' + bathNum + ', ' + floorSize + ', ' + price + '&#9;'
                        + agentName + ' ' + phoneNumber
//alert(clipboardText);
    var clipboard = new Clipboard('.btn');
    var title_text = ' <button style="font-size:13px;background-color: #eeeee4" class="btn" data-clipboard-text="' + clipboardText + '">点我复制 url / listing info / agent + phone </button>';
    $("h1").append(title_text);

})();