Skip to content

Instantly share code, notes, and snippets.

View ipetropolsky's full-sized avatar
⚒️

Ivan Petropolsky ipetropolsky

⚒️
  • HeadHunter
  • Moscow
View GitHub Profile
@ipetropolsky
ipetropolsky / README.md
Last active February 20, 2023 18:16
Splitting and wrapping words and phrases from enormous list
@ipetropolsky
ipetropolsky / promises.md
Last active February 26, 2021 01:19
Как не получить Uncaught in Promise

Как не получить Uncaught in Promise

  • Если обрабатываем промис и возвращаем его, в onRejected возвращаем Promise.reject(error) либо не используем onRejected, чтобы в любом случае была возможность обработать reject снаружи.
    const load = () => {
      return fetcher.get('/url')
        .then(
          (data) => {
            // Do something

return data;

@ipetropolsky
ipetropolsky / gist:4795d34048cea1c299a61e3ff49d6d7f
Last active January 11, 2021 17:16
Если отвалилась подпись коммита

Если отвалилась подпись коммита

gpg: Signature made Fri Nov 27 09:41:26 2020 MSK
gpg:                using DSA key 123ABCD
gpg: BAD signature from "Key Name <username@example.com>" [ultimate]

Надо сделать:

@ipetropolsky
ipetropolsky / result.yaml
Created October 18, 2020 16:17
Парсинг, изменение и сохранение yaml с помощью ruamel.yaml
# file comment
invoice: 34843
date: 2001-01-23
# Русский коммент
bill-to: &id001
given: Джон
family: Коннор
address:
@ipetropolsky
ipetropolsky / instagramJSON.js
Last active March 12, 2022 20:23
Instagram photos JSON
/* Запустить на странице https://www.instagram.com/%username%/ */
var promise = new Promise((resolve, reject) => {
const DELAY = 1000;
const DEVATION = 250;
const limit = 50;
// Сколько «страниц» скачать (на каждой по ${limit} фоток), 0 == без ограничений
const totalPages = 0;
// true если аккаунт друга (на кого подписан) или свой, иначе false
const isMyFriendPage = true;
@ipetropolsky
ipetropolsky / useUniqueArray.js
Created April 8, 2020 22:22
useUniqueArray hook
import { useCallback, useState } from 'react';
/**
* Хук для хранения уникального набора элементов в массиве.
* Возвращает массив и функцию переключения элемента.
*/
export default (initialValue = []) => {
const [items, setItems] = useState(initialValue);
const toggle = useCallback(
(item, force = null) => {
@ipetropolsky
ipetropolsky / hack-reaction.js
Last active April 7, 2020 14:52
Hack reaction time
// https://www.humanbenchmark.com/tests/reactiontime
var timeout;
var wait = false;
var el = document.querySelector('.test-standard');
var check = function() {
console.log('Working...');
if (wait && el.classList.contains('view-go')) {
wait = false;
console.log('Fire!!!');
@ipetropolsky
ipetropolsky / bad_urls.txt
Created October 10, 2019 21:37
urlRegExp
www./a
www./a/
www./a/go/to
www./a/go/to/
www./a/джа/ва
www./a/джа/ва/
www./aдж_а-ва
www./a/%D0%B4%D0%B6%D0%B0/%D0%B2%D0%B0
www./a/go/to/index.html
www./a/джа/ва/index.html
@ipetropolsky
ipetropolsky / add_overlay.sh
Last active May 17, 2019 02:40
Resize photos by imagemagick
size=50
mkdir converted
find . -type f -maxdepth 1 -print0 | \
xargs -0 -n 1 -P 8 -I __FILE__ \
convert __FILE__ -resize $size -set filename:new '%d/%t' \
\( -clone 0 -tile overlay.png -draw "color 0,0 reset" \) \
# -compose blend -define compose:args=50 \
-compose overlay \
-composite "converted/%[filename:new]_${size}.png"
@ipetropolsky
ipetropolsky / fetcher.js
Created May 14, 2019 14:09
Fetcher with canceling requests by groups and tags
import axios, { CancelToken, isCancel } from 'axios';
const instance = axios.create({
withCredentials: true,
headers: {
Accept: 'application/json',
'Content-Type': 'application/json',
},
});