Skip to content

Instantly share code, notes, and snippets.

(function () {
window.debounce = function(callback, ms) {
var isCooldown = false;
return function() {
if (isCooldown) return;
callback.apply(this, arguments);
'use strict';
(function () {
var filterState = {
'housing-type': 'any',
'housing-rooms': 'any',
'housing-guests': 'any',
'housing-price': 'any',
'features': []
};
'use strict';
(function () {
// начальное состояние фильтров, можно сразу заполнить дефолтными значениями
var filterState = {
'housing-type': 'any',
'housing-rooms': 'any',
'housing-guests': 'any',
features: {}
}
'use strict';
var OFFERS_AMOUNT = 8;
var houseTypes = ['palace', 'flat', 'house', 'bungalo'];
var localizedOfferType = {
'flat': 'Квартира',
'bungalo': 'Бунгало',
'house': 'Дом',
var SOURCE_TAB_NAME = "Портфель";
var TIKER_RANGE = "A8:B120";
var MICEX_RATES_PAGE_NAME = "MicexRateTickers";
var MICEX_INDEX_PAGE_NAME = "IMOEX";
function onOpen() {
SpreadsheetApp.getUi()
.createMenu('MICEX Updater')
.addItem('Update Rates', 'updateRates')
.addItem('Update Index', 'updateMecixIndex')
@MrMeison
MrMeison / cgi.gs
Created January 8, 2020 21:36
Хелпер для работы с параметрами запросов
var CGI = {};
CGI.buildQueryParams = function(params) {
var res = [];
for(var key in params) {
res.push(key + '=' + params[key]);
}
return res.length > 0 ? '?' + res.join('&') : '';
};
@MrMeison
MrMeison / polyfill.gs
Created January 8, 2020 20:55
Полифил для Object.assign для Google Sheets
if (typeof Object.assign !== 'function') {
Object.defineProperty(Object, "assign", {
value: function assign(target, varArgs) { // .length of function is 2
if (target === null || target === undefined) {
throw new TypeError('Cannot convert undefined or null to object');
}
var to = Object(target);
for (var index = 1; index < arguments.length; index++) {
@MrMeison
MrMeison / MicexApi.gs
Created January 8, 2020 20:53
Скрипт для Google Sheets для получения данных индекса, акциях и облигациях
var MicexApi = {};
// список id разных типов ЦБ
var BOARD_ID = {
STOCK: 'TQBR',
ETF: 'TQTF',
BONDS: 'EQOB'
};
(function(App) {
var MICEX_ENTRYPOINT = 'https://iss.moex.com/iss/';
@MrMeison
MrMeison / inflation.gs
Created January 8, 2020 11:52
Формула для Google Sheets для получения инфляции в стране за произвольный период
var ENTRYPOINT = "https://www.statbureau.org/calculate-inflation-rate-json";
/**
* Получаем инфлацию за произвольный период
*
* @param {string} country - страна (belarus, brazil, canada, european-union, eurozone, france, germany, greece, india, japan, kazakhstan, mexico, russia, spain, turkey, ukraine, united-kingdom, united-states)
* @param {Date} start - первый месяц, включительно
* @param {Date} end - последний месяц, включительно
* @return Получаем инфляцию за произвольный период
* @customfunction
@MrMeison
MrMeison / CBR.gs
Created January 8, 2020 11:46
Формула для Google Sheets для получения котировок валюты на заданную дату
var CBR_ENTRYPOINT = "https://www.cbr.ru/scripts/XML_daily.asp";
/**
* Получаем курс ЦБ на дату
*
* @param {string} currency - код валюты
* @param {Date} date - день
* @return {Number}
* @customfunction
*/