Skip to content

Instantly share code, notes, and snippets.

@jaeseokan94
jaeseokan94 / gist:beba76b617cf9e84a1ab88f5545ae93d
Created October 25, 2023 09:06
Airbnb Income Estimator - full comps return sample (Airbtics)
{
"input": {
"coordinate": "(40.729932,-73.989256)",
"bedroom": "2",
"bathrooms": "2"
},
"message": {
"no_of_sample": 10,
"radius_used": 475,
"last_updated_date": "2023-06-30",
{"message": {"no_of_sample": 10, "average": {"occupancy_rate": 68, "daily_rate": 326, "revenue": 8018, "cleaning_fee": 222, "extra_guest_fee": 222}, "monthly_average_granuar_data": {"average_2021_12": {"daily_rate": 335, "occupancy_rate": 69, "revenue": 8158}, "average_2022_01": {"daily_rate": 300, "occupancy_rate": 32, "revenue": 3557}, "average_2022_02": {"daily_rate": 274, "occupancy_rate": 53, "revenue": 5308}, "average_2022_03": {"daily_rate": 305, "occupancy_rate": 78, "revenue": 9226}, "average_2022_04": {"daily_rate": 303, "occupancy_rate": 63, "revenue": 6987}, "average_2022_05": {"daily_rate": 315, "occupancy_rate": 85, "revenue": 9928}, "average_2022_06": {"daily_rate": 325, "occupancy_rate": 93, "revenue": 11296}, "average_2022_07": {"daily_rate": 353, "occupancy_rate": 87, "revenue": 11008}, "average_2022_08": {"daily_rate": 362, "occupancy_rate": 62, "revenue": 7812}, "average_2022_09": {"daily_rate": 354, "occupancy_rate": 61, "revenue": 7479}, "average_2022_10": {"daily_rate": 333, "occupancy_
{
"message": {
"no_of_sample": 10,
"average": {
"occupancy_rate": 75,
"daily_rate": 218,
"revenue": 5472,
"cleaning_fee": 67,
"extra_guest_fee": 67
},
@jaeseokan94
jaeseokan94 / gist:5ba77078f28bf30f1f6a2b0bf17e3191
Created December 28, 2021 07:50
bright pricing return lambda v2
{"rates": {"2021-12-29": {"recommendedRate": 70430.3, "currency": "KRW", "userRate": 58737, "userAvailability": true}, "2021-12-30": {"recommendedRate": 73784.1, "currency": "KRW", "userRate": 67612, "userAvailability": true}, "2021-12-31": {"recommendedRate": 159865.6, "currency": "KRW", "userRate": 120231, "userAvailability": false}, "2022-01-01": {"recommendedRate": 136388.8, "currency": "KRW", "userRate": 87451, "userAvailability": false}, "2022-01-02": {"recommendedRate": 73784.1, "currency": "KRW", "userRate": 58018, "userAvailability": true}, "2022-01-03": {"recommendedRate": 65958.5, "currency": "KRW", "userRate": 55621, "userAvailability": true}, "2022-01-04": {"recommendedRate": 65958.5, "currency": "KRW", "userRate": 57667, "userAvailability": true}, "2022-01-05": {"recommendedRate": 70430.3, "currency": "KRW", "userRate": 58176, "userAvailability": true}, "2022-01-06": {"recommendedRate": 73784.1, "currency": "KRW", "userRate": 60421, "userAvailability": true}, "2022-01-07": {"recommendedRate": 15
{'content-type': 'application/json', 'x-airbnb-api-key': 'd306zoyjsyarp7ifhu67rjxn52tv0t20', 'x-airbnb-graphql-platform': 'web', 'x-csrf-without-token': '1', 'cookie': 'bev=1601633722_ZmY2OTg4YzM1YzRh; tzo=540; _ga=GA1.2.1749302054.1601633724; fbm_138566025676=base_domain=.airbnb.com; __ssid=a859795071a58952103dba93d47a504; _gcl_au=1.1.1446021098.1601633725; affiliates_bev=1601633726_esqEwZAL7EcP3rt1; sdid=; abb_fa2=%7B%22user_id%22%3A%2243%7C1%7CmdCdm%2FFE%2BvXJPwaOJC0Yw3AnuC4ZpSx32pZWX%2F7EccrcXz%2F9FvV1xQ%3D%3D%22%7D; har=1; cdn_exp_b1b38777d5c7a308a=initializers; hli=1; cdn_exp_283a19eb11edcad71=treatment; sticky_locale=en; cdn_exp_140d70271b981c913=treatment; cdn_exp_24332663b5ca816ee=treatment; cdn_exp_ccb7b37b3b52596ae=treatment; cdn_exp_34332663b5ca816ee=treatment; cdn_exp_da1663c66e2988797=treatment_2; country=KR; OptanonAlertBoxClosed=NR; amplitude_id_cb82620a40fd4087c9928deaa540a3d0airbnb.com=eyJkZXZpY2VJZCI6ImYzZjRjYmNjLTIyMTUtNDdmZC04ZWU1LTg5YzA0OTFiZmE2M1IiLCJ1c2VySWQiOm51bGwsIm9wdE91dCI6ZmFsc2U
listingID crawled_on prices calendar_avail
44492053 2021-01-13 ['85', '85', '85', '85', '85', '85', '85', '85', '85', '85', '85', '85', '85', '85', '85', '85', '85', '115', '115', '115', '115', '115', '115', '115', '115', '115', '115', '115', '115', '115', '115', '115', '115', '115', '115', '115', '115', '115', '115', '115', '115', '115', '115', '115', '115', '115', '115', '115', '115', '115', '115', '115', '115', '115', '115', '115', '115', '115', '115', '115', '115', '115', '115', '115', '115', '115', '115', '115', '115', '115', '115', '115', '115', '115', '115', '115', '85', '85', '85', '85', '85', '85', '85', '85', '85', '85', '85', '85', '85', '85', '85', '85', '85', '85', '85', '85', '85', '85', '85', '85', '85', '85', '85', '85', '85', '85', '85', '85', '85', '85', '85', '85', '85', '85', '85', '85', '85', '85', '85', '85', '85', '85', '85', '85', '85', '85', '85', '115', '115', '115', '115', '115', '115', '115', '115', '115', '115', '115', '115', '115', '115', '115', '115', '115', '115', '115', '115'
'<!doctype html>\n<html lang=en>\n<head>\n <title>Beautifully Restored Barn; Combining Original Features &amp; high tech for comfort - Marlborough</title>\n <meta charset="utf-8"/>\n <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1">\n\n <meta name="referrer" content="no-referrer-when-downgrade">\n\n <meta name="description" content="Restored Barn in Aldbourne, Nr. Marlborough - Beautiful Views, With 10 minute walk to village and within an hour of Oxford, Bath, Stonehenge and Avebury - $161 avg/night - Marlborough - Amenities include: Internet, TV, Satellite or cable, Parking, No Smoking, Heater \xe2\x9c\x93 Bedrooms: 2 \xe2\x9c\x93 Sleeps: 4 \xe2\x9c\x93 Minimum stay from 1 night(s) \xe2\x9c\x93 Bookable directly online - Book vacation rental 8120154 with Vrbo.">\n\n\n\n <link rel="preconnect" href="https://csvcus.homeaway.com" crossorigin>\n <link rel="preconnect" href="https://odis.homeaway.com">\n <link rel="preconnect" href="https://www.goo
@jaeseokan94
jaeseokan94 / airbnb-calculator.js
Created August 29, 2020 16:41
Airbtics Airbnb calculator - v1
function calculateRev(values){
let valuesLen = Object.keys(values).length;
if (valuesLen < 13){
console.log("not enough filled ", valuesLen)
return false
}
for (var key in values) {
values[key] = Number(values[key])
}
raw
https://www.airbnb.co.uk/api/v3?locale=en-GB&currency=GBP&operationName=ExploreSearch&variables=%7B%22request%22%3A%7B%22metadataOnly%22%3Afalse%2C%22version%22%3A%221.7.5%22%2C%22itemsPerGrid%22%3A20%2C%22tabId%22%3A%22home_tab%22%2C%22refinementPaths%22%3A%5B%22%2Fhomes%22%5D%2C%22source%22%3A%22structured_search_input_header%22%2C%22searchType%22%3A%22unknown%22%2C%22checkin%22%3A%222020-05-16%22%2C%22checkout%22%3A%222020-05-18%22%2C%22neLat%22%3A%2251.30192289230549%22%2C%22neLng%22%3A%22-1.5031825370876106%22%2C%22swLat%22%3A%2251.05915749554505%22%2C%22swLng%22%3A%22-2.1843348808376106%22%2C%22searchByMap%22%3Atrue%2C%22query%22%3A%22Warminster%2C%20United%20Kingdom%22%2C%22cdnCacheSafe%22%3Afalse%2C%22simpleSearchTreatment%22%3A%22simple_search_only%22%2C%22treatmentFlags%22%3A%5B%5D%2C%22screenSize%22%3A%22large%22%7D%7D&extensions=%7B%22persistedQuery%22%3A%7B%22version%22%3A1%2C%22sha256Hash%22%3A%22e1e26d9e1e9f243a25403004b402659bd03288115d90a3922b5ddf22e4725045%22%7D%7D
parsed variables
loca
@jaeseokan94
jaeseokan94 / log.py
Created August 20, 2019 10:18 — forked from nguyenkims/log.py
Basic example on how setup a Python logger
import logging
import sys
from logging.handlers import TimedRotatingFileHandler
FORMATTER = logging.Formatter("%(asctime)s - %(name)s - %(levelname)s - %(message)s")
LOG_FILE = "my_app.log"
def get_console_handler():
console_handler = logging.StreamHandler(sys.stdout)
console_handler.setFormatter(FORMATTER)