62 lines
No EOL
1.8 KiB
JavaScript
62 lines
No EOL
1.8 KiB
JavaScript
import Client from './base/media/client.mjs'
|
|
|
|
const client = new Client()
|
|
|
|
function fetch(page = 1) {
|
|
return client.get(`http://fasteignir.visir.is/api/search?onpage=100&page=${page}`)
|
|
.then(data => {
|
|
return data.map(listing => {
|
|
if (listing.bathrooms === null) {
|
|
listing.bathrooms = 0
|
|
listing.invalid = true
|
|
}
|
|
listing.rooms = Number(listing.rooms)
|
|
listing.bedrooms = Number(listing.bedrooms)
|
|
listing.bathrooms = Number(listing.bathrooms)
|
|
listing.zip.zip = Number(listing.zip.zip)
|
|
listing.price = Number(listing.price)
|
|
listing.size = listing.size.split(',')[0]
|
|
|
|
return listing
|
|
})
|
|
})
|
|
}
|
|
|
|
async function parseAll() {
|
|
let page = 1
|
|
let data = []
|
|
|
|
while (page <= 10) {
|
|
console.log(`Fetching page ${page}`)
|
|
let add = await fetch(page)
|
|
if (add.length === 0) {
|
|
break
|
|
}
|
|
page += 1
|
|
data = data.concat(add)
|
|
|
|
}
|
|
console.log(`finished, got total ${data.length} listings`)
|
|
return data
|
|
}
|
|
|
|
parseAll().then((data) => {
|
|
for (let i = 0; i < data.length && i < 100; i++) {
|
|
let listing = data[i]
|
|
if (listing.invalid || listing.rooms === 0 || listing.zip.zip >= 950 || listing.bathrooms === 0 || listing.price === 0) {
|
|
let prefix = ''
|
|
if (listing.invalid && listing.rooms > 0) {
|
|
prefix += '[Invalid] '
|
|
}
|
|
if (listing.bathrooms === 0 && listing.rooms > 0) {
|
|
prefix += '[No bath] '
|
|
}
|
|
if (listing.price === 0) {
|
|
prefix += '[Tilboð] '
|
|
}
|
|
console.log(`${prefix}http://fasteignir.visir.is/property/${listing.id} : ${listing.street_name} ${listing.street_number}, ${listing.zip.zip} (${listing.sale_or_rent}). ${listing.rooms} rooms, ${listing.bedrooms} bedrooms, ${listing.bathrooms} baths. ${listing.size} m2 = ${listing.price} kr.`)
|
|
}
|
|
}
|
|
})
|
|
|
|
// http://fasteignir.visir.is/api/search?onpage=1000&page=1&zip=103
|