javascript:void%20(function%20houseflowShortcut(mode%2C%20ask%20%3D%20(message%2C%20value)%20%3D%3E%20window.prompt(message%2C%20value))%20%7B%0A%20%20const%20stop%20%3D%20message%20%3D%3E%20%7B%20window.alert(message)%3B%20return%20false%3B%20%7D%3B%0A%20%20if%20(location.hostname%20!%3D%3D%20%27app.houseflow.tw%27%20%7C%7C%20!%2F%5E%5C%2F%5B%5E%2F%5D%2B%5C%2FObj%5C%2FQueryEntrust%24%2F.test(location.pathname))%20%7B%0A%20%20%20%20if%20(window.confirm(%27%E9%80%99%E4%B8%80%E9%A0%81%E4%B8%8D%E6%98%AF%E4%BD%8F%E9%80%9A%E7%9A%84%E3%80%8C%E5%A7%94%E8%A8%97%E7%89%A9%E4%BB%B6%E6%9F%A5%E8%A9%A2%E3%80%8D%E3%80%82%E8%A6%81%E5%B8%B6%E4%BD%A0%E9%81%8E%E5%8E%BB%E5%97%8E%EF%BC%9F%5Cn%E5%88%B0%E4%BA%86%E4%B9%8B%E5%BE%8C%EF%BC%8C%E8%AB%8B%E5%86%8D%E6%8C%89%E4%B8%80%E6%AC%A1%E9%80%99%E5%80%8B%E6%9B%B8%E7%B1%A4%E3%80%82%27))%20location.href%20%3D%20%27https%3A%2F%2Fapp.houseflow.tw%2F97337000%2FObj%2FQueryEntrust%27%3B%0A%20%20%20%20return%20false%3B%0A%20%20%7D%0A%20%20const%20one%20%3D%20selector%20%3D%3E%20%7B%20const%20found%20%3D%20document.querySelectorAll(selector)%3B%20return%20found.length%20%3D%3D%3D%201%20%3F%20found%5B0%5D%20%3A%20null%3B%20%7D%3B%0A%20%20const%20low%20%3D%20one(%27input%5Bname%3D%22QueryConditionModel.EntrustPriceTotalS%22%5D%27)%3B%0A%20%20const%20high%20%3D%20one(%27input%5Bname%3D%22QueryConditionModel.EntrustPriceTotalE%22%5D%27)%3B%0A%20%20const%20buy%20%3D%20one(%27input%5Bname%3D%22QueryConditionModel.SaleType%22%5D%5Bvalue%3D%22Buy%22%5D%27)%3B%0A%20%20const%20rent%20%3D%20one(%27input%5Bname%3D%22QueryConditionModel.SaleType%22%5D%5Bvalue%3D%22Rent%22%5D%27)%3B%0A%20%20const%20button%20%3D%20one(%27button%5Bname%3D%22SubmitBtn%22%5D%27)%3B%0A%20%20if%20(!low%20%7C%7C%20!high%20%7C%7C%20!buy%20%7C%7C%20!rent%20%7C%7C%20!button%20%7C%7C%20button.textContent.trim()%20!%3D%3D%20%27%E5%A7%94%E8%A8%97%E7%89%A9%E4%BB%B6%E6%9F%A5%E8%A9%A2%27%20%7C%7C%20!low.form%20%7C%7C%20low.form%20!%3D%3D%20high.form%20%7C%7C%20low.form%20!%3D%3D%20button.form%20%7C%7C%20low.form%20!%3D%3D%20buy.form%20%7C%7C%20low.form%20!%3D%3D%20rent.form%20%7C%7C%20low.disabled%20%7C%7C%20high.disabled%20%7C%7C%20low.readOnly%20%7C%7C%20high.readOnly%20%7C%7C%20button.disabled)%20return%20stop(%27%E6%9F%A5%E8%A9%A2%E6%AC%84%E4%BD%8D%E4%B8%8D%E5%AE%8C%E6%95%B4%E6%88%96%E4%B8%8D%E5%94%AF%E4%B8%80%EF%BC%8C%E5%B7%B2%E5%81%9C%E6%AD%A2%E3%80%82%E8%AB%8B%E6%89%8B%E5%8B%95%E7%A2%BA%E8%AA%8D%E9%A0%81%E9%9D%A2%E3%80%82%27)%3B%0A%20%20const%20preset%20%3D%20typeof%20mode%20%3D%3D%3D%20%27object%27%20%26%26%20mode%20!%3D%3D%20null%20%3F%20mode%20%3A%20null%3B%0A%20%20if%20(preset%20%26%26%20!%5B%27Buy%27%2C%20%27Rent%27%2C%20%27%27%5D.includes(preset.saleType))%20return%20stop(%27%E7%A7%9F%E5%94%AE%E8%A8%AD%E5%AE%9A%E9%8C%AF%E8%AA%A4%EF%BC%8C%E5%B7%B2%E5%81%9C%E6%AD%A2%E3%80%82%27)%3B%0A%20%20if%20(preset%20%26%26%20(preset.county%20%7C%7C%20preset.district))%20%7B%0A%20%20%20%20if%20(!preset.county%20%7C%7C%20!preset.district)%20return%20stop(%27%E7%B8%A3%E5%B8%82%E8%88%87%E8%A1%8C%E6%94%BF%E5%8D%80%E9%83%BD%E5%BF%85%E9%A0%88%E5%A1%AB%E5%AF%AB%EF%BC%8C%E5%B7%B2%E5%81%9C%E6%AD%A2%E3%80%82%27)%3B%0A%20%20%20%20return%20(async%20()%20%3D%3E%20%7B%0A%20%20%20%20%20%20const%20fail%20%3D%20message%20%3D%3E%20%7B%20throw%20new%20Error(message)%3B%20%7D%3B%0A%20%20%20%20%20%20const%20packed%20%3D%20one(%27input%5Bname%3D%22QueryConditionModel.QueryAddresses%22%5D%27)%3B%0A%20%20%20%20%20%20if%20(!packed%20%7C%7C%20packed.form%20!%3D%3D%20low.form)%20return%20stop(%27%E5%BB%BA%E7%89%A9%E9%96%80%E7%89%8C%E6%A2%9D%E4%BB%B6%E4%B8%8D%E5%94%AF%E4%B8%80%EF%BC%8C%E5%B7%B2%E5%81%9C%E6%AD%A2%E3%80%82%27)%3B%0A%20%20%20%20%20%20const%20root%20%3D%20packed.parentElement%3B%0A%20%20%20%20%20%20const%20unique%20%3D%20selector%20%3D%3E%20%7B%20const%20items%20%3D%20root.querySelectorAll(selector)%3B%20if%20(items.length%20!%3D%3D%201)%20fail(%27%E5%9C%B0%E5%8D%80%E6%AC%84%E4%BD%8D%E4%B8%8D%E5%AE%8C%E6%95%B4%E6%88%96%E4%B8%8D%E5%94%AF%E4%B8%80%27)%3B%20return%20items%5B0%5D%3B%20%7D%3B%0A%20%20%20%20%20%20const%20setValue%20%3D%20(el%2C%20value)%20%3D%3E%20%7B%0A%20%20%20%20%20%20%20%20if%20(el.disabled%20%7C%7C%20el.readOnly)%20fail(%27%E5%9C%B0%E5%8D%80%E6%AC%84%E4%BD%8D%E4%B8%8D%E5%8F%AF%E7%B7%A8%E8%BC%AF%27)%3B%0A%20%20%20%20%20%20%20%20const%20proto%20%3D%20el.tagName%20%3D%3D%3D%20%27SELECT%27%20%3F%20HTMLSelectElement.prototype%20%3A%20HTMLInputElement.prototype%3B%0A%20%20%20%20%20%20%20%20Object.getOwnPropertyDescriptor(proto%2C%20%27value%27).set.call(el%2C%20value)%3B%0A%20%20%20%20%20%20%20%20el.dispatchEvent(new%20Event(%27input%27%2C%20%7B%20bubbles%3A%20true%20%7D))%3B%0A%20%20%20%20%20%20%20%20el.dispatchEvent(new%20Event(%27change%27%2C%20%7B%20bubbles%3A%20true%20%7D))%3B%0A%20%20%20%20%20%20%20%20if%20(el.value%20!%3D%3D%20value)%20fail(%27%E5%9C%B0%E5%8D%80%E6%AC%84%E4%BD%8D%E8%AE%80%E5%9B%9E%E4%B8%8D%E4%B8%80%E8%87%B4%27)%3B%0A%20%20%20%20%20%20%7D%3B%0A%20%20%20%20%20%20const%20read%20%3D%20()%20%3D%3E%20JSON.parse(packed.value%20%7C%7C%20%27%5B%5D%27)%3B%0A%20%20%20%20%20%20try%20%7B%0A%20%20%20%20%20%20%20%20const%20county%20%3D%20unique(%27select%5Bname%24%3D%22.County%22%5D%27)%3B%0A%20%20%20%20%20%20%20%20const%20district%20%3D%20unique(%27select%5Bname%24%3D%22.District%22%5D%27)%3B%0A%20%20%20%20%20%20%20%20const%20road%20%3D%20unique(%27input%5Bplaceholder%3D%22%E6%AE%B5%E8%B7%AF%E8%A1%97%22%5D%27)%3B%0A%20%20%20%20%20%20%20%20const%20detail%20%3D%20unique(%27input%5Bplaceholder%3D%22%E5%B7%B7%E5%BC%84%E8%99%9F%E6%A8%93%22%5D%27)%3B%0A%20%20%20%20%20%20%20%20const%20add%20%3D%20unique(%27.address-detail%20a%27)%3B%0A%20%20%20%20%20%20%20%20if%20(add.textContent.trim()%20!%3D%3D%20%27%E5%8A%A0%E5%85%A5%27%20%7C%7C%20!%5B...county.options%5D.some(o%20%3D%3E%20o.value%20%3D%3D%3D%20preset.county))%20fail(%27%E6%89%BE%E4%B8%8D%E5%88%B0%E6%8C%87%E5%AE%9A%E7%B8%A3%E5%B8%82%E6%88%96%E5%8A%A0%E5%85%A5%E6%8C%89%E9%88%95%27)%3B%0A%20%20%20%20%20%20%20%20const%20previous%20%3D%20read()%3B%0A%20%20%20%20%20%20%20%20const%20removers%20%3D%20%5B...root.querySelectorAll(%27.token-input-delete-token%27)%5D%3B%0A%20%20%20%20%20%20%20%20if%20(!Array.isArray(previous)%20%7C%7C%20previous.length%20!%3D%3D%20removers.length)%20fail(%27%E5%8E%9F%E9%96%80%E7%89%8C%E6%A2%9D%E4%BB%B6%E7%84%A1%E6%B3%95%E7%A2%BA%E8%AA%8D%27)%3B%0A%20%20%20%20%20%20%20%20setValue(county%2C%20preset.county)%3B%0A%20%20%20%20%20%20%20%20await%20new%20Promise((resolve%2C%20reject)%20%3D%3E%20%7B%0A%20%20%20%20%20%20%20%20%20%20const%20start%20%3D%20Date.now()%3B%0A%20%20%20%20%20%20%20%20%20%20const%20poll%20%3D%20()%20%3D%3E%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20if%20(county.value%20!%3D%3D%20preset.county)%20return%20reject(new%20Error(%27%E7%B8%A3%E5%B8%82%E5%B7%B2%E6%94%B9%E8%AE%8A%27))%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20if%20(%5B...district.options%5D.some(o%20%3D%3E%20o.value%20%3D%3D%3D%20preset.district))%20return%20resolve()%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20if%20(Date.now()%20-%20start%20%3E%3D%208000)%20return%20reject(new%20Error(%27%E8%A1%8C%E6%94%BF%E5%8D%80%E9%81%B8%E5%96%AE%E7%AD%89%E5%BE%85%E9%80%BE%E6%99%82%E6%88%96%E6%B2%92%E6%9C%89%E6%8C%87%E5%AE%9A%E8%A1%8C%E6%94%BF%E5%8D%80%27))%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20setTimeout(poll%2C%2050)%3B%0A%20%20%20%20%20%20%20%20%20%20%7D%3B%20poll()%3B%0A%20%20%20%20%20%20%20%20%7D)%3B%0A%20%20%20%20%20%20%20%20setValue(district%2C%20preset.district)%3B%0A%20%20%20%20%20%20%20%20setValue(road%2C%20%27%27)%3B%20setValue(detail%2C%20%27%27)%3B%0A%20%20%20%20%20%20%20%20%2F%2F%20%E9%80%8F%E9%81%8E%E6%97%A2%E6%9C%89%E7%A7%BB%E9%99%A4%E6%8C%89%E9%88%95%E5%8F%96%E4%BB%A3%E5%85%A8%E9%83%A8%E5%BB%BA%E7%89%A9%E9%96%80%E7%89%8C%EF%BC%8C%E9%81%BF%E5%85%8D%E5%A4%9A%E5%8D%80%E7%B4%AF%E5%8A%A0%E3%80%82%0A%20%20%20%20%20%20%20%20for%20(let%20i%20%3D%20removers.length%20-%201%3B%20i%20%3E%3D%200%3B%20i--)%20removers%5Bi%5D.click()%3B%0A%20%20%20%20%20%20%20%20if%20(read().length%20!%3D%3D%200)%20fail(%27%E8%88%8A%E9%96%80%E7%89%8C%E6%9C%AA%E6%B8%85%E9%99%A4%27)%3B%0A%20%20%20%20%20%20%20%20add.click()%3B%0A%20%20%20%20%20%20%20%20const%20addresses%20%3D%20read()%3B%0A%20%20%20%20%20%20%20%20const%20a%20%3D%20addresses%5B0%5D%3F.Address%3B%0A%20%20%20%20%20%20%20%20if%20(addresses.length%20!%3D%3D%201%20%7C%7C%20a%3F.County%20!%3D%3D%20preset.county%20%7C%7C%20a%3F.District%20!%3D%3D%20preset.district%20%7C%7C%20a%3F.Road%20%7C%7C%20a%3F.Detail)%20fail(%27%E5%8A%A0%E5%85%A5%E5%BE%8C%E5%9C%B0%E5%8D%80%E6%89%93%E5%8C%85%E5%85%A7%E5%AE%B9%E4%B8%8D%E7%AC%A6%27)%3B%0A%20%20%20%20%20%20%20%20return%20houseflowShortcut(%7B%20...preset%2C%20county%3A%20%27%27%2C%20district%3A%20%27%27%20%7D%2C%20ask)%3B%0A%20%20%20%20%20%20%7D%20catch%20(error)%20%7B%20return%20stop(error.message%20%2B%20%27%EF%BC%8C%E6%9C%AA%E9%80%81%E5%87%BA%E6%9F%A5%E8%A9%A2%E3%80%82%E8%AB%8B%E5%85%88%E6%AA%A2%E6%9F%A5%E5%BB%BA%E7%89%A9%E9%96%80%E7%89%8C%E8%88%87%E5%83%B9%E6%A0%BC%EF%BC%8C%E5%86%8D%E6%89%8B%E5%8B%95%E9%87%8D%E8%A8%AD%E3%80%82%27)%3B%20%7D%0A%20%20%20%20%7D)()%3B%0A%20%20%7D%0A%20%20let%20values%3B%0A%20%20if%20(preset)%20values%20%3D%20%5BString(preset.totalPriceMin%20%3F%3F%20%27%27)%2C%20String(preset.totalPriceMax%20%3F%3F%20%27%27)%5D%3B%0A%20%20else%20if%20(mode%20%3D%3D%3D%20%271500-2500%27)%20values%20%3D%20%5B%271500%27%2C%20%272500%27%5D%3B%0A%20%20else%20if%20(mode%20%3D%3D%3D%20%272500-4000%27)%20values%20%3D%20%5B%272500%27%2C%20%274000%27%5D%3B%0A%20%20else%20if%20(mode%20%3D%3D%3D%20%27clear%27)%20values%20%3D%20%5B%27%27%2C%20%27%27%5D%3B%0A%20%20else%20if%20(mode%20%3D%3D%3D%20%27custom%27)%20%7B%0A%20%20%20%20const%20min%20%3D%20ask(%27%E7%B8%BD%EF%BC%88%E7%A7%9F%EF%BC%89%E5%83%B9%E4%B8%8B%E9%99%90%EF%BC%8C%E5%96%AE%E4%BD%8D%E8%90%AC%EF%BC%9B%E7%95%99%E7%99%BD%E8%A1%A8%E7%A4%BA%E4%B8%8D%E9%99%90%27%2C%20low.value)%3B%0A%20%20%20%20if%20(min%20%3D%3D%3D%20null)%20return%20false%3B%0A%20%20%20%20const%20max%20%3D%20ask(%27%E7%B8%BD%EF%BC%88%E7%A7%9F%EF%BC%89%E5%83%B9%E4%B8%8A%E9%99%90%EF%BC%8C%E5%96%AE%E4%BD%8D%E8%90%AC%EF%BC%9B%E7%95%99%E7%99%BD%E8%A1%A8%E7%A4%BA%E4%B8%8D%E9%99%90%27%2C%20high.value)%3B%0A%20%20%20%20if%20(max%20%3D%3D%3D%20null)%20return%20false%3B%0A%20%20%20%20values%20%3D%20%5BString(min).trim()%2C%20String(max).trim()%5D%3B%0A%20%20%7D%20else%20return%20stop(%27%E7%84%A1%E6%B3%95%E8%BE%A8%E8%AD%98%E6%9B%B8%E7%B1%A4%EF%BC%8C%E8%AB%8B%E9%87%8D%E6%96%B0%E5%AE%89%E8%A3%9D%E3%80%82%27)%3B%0A%20%20if%20(values.some(v%20%3D%3E%20v%20!%3D%3D%20%27%27%20%26%26%20(!%2F%5E%5Cd%2B(%3F%3A%5C.%5Cd%2B)%3F%24%2F.test(v)%20%7C%7C%20!Number.isFinite(Number(v))))%20%7C%7C%20(values%5B0%5D%20!%3D%3D%20%27%27%20%26%26%20values%5B1%5D%20!%3D%3D%20%27%27%20%26%26%20Number(values%5B0%5D)%20%3E%20Number(values%5B1%5D)))%20return%20stop(%27%E8%AB%8B%E8%BC%B8%E5%85%A5%E6%9C%89%E9%99%90%E7%9A%84%E9%9D%9E%E8%B2%A0%E6%95%B8%EF%BC%8C%E4%B8%94%E4%B8%8B%E9%99%90%E4%B8%8D%E5%BE%97%E5%A4%A7%E6%96%BC%E4%B8%8A%E9%99%90%E3%80%82%27)%3B%0A%20%20const%20set%20%3D%20Object.getOwnPropertyDescriptor(HTMLInputElement.prototype%2C%20%27value%27).set%3B%0A%20%20%5Blow%2C%20high%5D.forEach((el%2C%20i)%20%3D%3E%20%7B%20set.call(el%2C%20values%5Bi%5D)%3B%20el.dispatchEvent(new%20Event(%27input%27%2C%20%7B%20bubbles%3A%20true%20%7D))%3B%20el.dispatchEvent(new%20Event(%27change%27%2C%20%7B%20bubbles%3A%20true%20%7D))%3B%20%7D)%3B%0A%20%20const%20fixed%20%3D%20mode%20%3D%3D%3D%20%271500-2500%27%20%7C%7C%20mode%20%3D%3D%3D%20%272500-4000%27%3B%0A%20%20const%20sale%20%3D%20preset%3F.saleType%20%3D%3D%3D%20%27Rent%27%20%3F%20rent%20%3A%20preset%3F.saleType%20%3D%3D%3D%20%27Buy%27%20%7C%7C%20fixed%20%3F%20buy%20%3A%20null%3B%0A%20%20if%20(sale%20%26%26%20!sale.checked)%20sale.click()%3B%0A%20%20if%20(low.value%20!%3D%3D%20values%5B0%5D%20%7C%7C%20high.value%20!%3D%3D%20values%5B1%5D%20%7C%7C%20(sale%20%26%26%20!sale.checked))%20return%20stop(%27%E6%AC%84%E4%BD%8D%E8%AE%80%E5%9B%9E%E4%B8%8D%E4%B8%80%E8%87%B4%EF%BC%8C%E5%B7%B2%E5%81%9C%E6%AD%A2%E6%9F%A5%E8%A9%A2%E3%80%82%27)%3B%0A%20%20button.click()%3B%0A%20%20return%20true%3B%0A%7D)(%7B%22id%22%3A%22linkou%22%2C%22title%22%3A%22%E7%AF%84%E4%BE%8B%EF%BD%9C%E6%96%B0%E5%8C%97%E5%B8%82%E6%9E%97%E5%8F%A3%E5%8D%80%201500%EF%BD%9E2500%20%E8%90%AC%22%2C%22totalPriceMin%22%3A%221500%22%2C%22totalPriceMax%22%3A%222500%22%2C%22county%22%3A%22%E6%96%B0%E5%8C%97%E5%B8%82%22%2C%22district%22%3A%22%E6%9E%97%E5%8F%A3%E5%8D%80%22%2C%22saleType%22%3A%22Buy%22%7D)%3B