Skip to content

Instantly share code, notes, and snippets.

View andrevinsky's full-sized avatar

Andrew Revinsky andrevinsky

View GitHub Profile
@andrevinsky
andrevinsky / batch-delete-gmail-emails.js
Created March 5, 2021 21:13 — forked from gene1wood/batch-delete-gmail-emails.js
A Google Apps Script script to bulk delete large amounts of email in Gmail while avoiding the error #793 which Gmail encounters normally
/*
This script, when used with Google Apps Scripts will delete 500 emails and
can be triggered to run every minute without user interaction enabling you
to bulk delete email in Gmail without getting the #793 error from Gmail.
Configure the search query in the code below to match the type of emails
you want to delete
Browser to https://script.google.com/.
Start a script and paste in the code below.
After you past it in, save it and click the little clock looking button.
const range = function* (
from,
to,
step = from > to ? -1 : 1
) {
if (
step < 0
? from <= to
: from >= to
) {
@andrevinsky
andrevinsky / index.js
Created November 15, 2016 16:56 — forked from wtfil/index.js
injection of redux's dispatch in react-router's onEnter hook
/*
* common react, redux staff here
*/
import {Router, createRoutes} from 'react-router';
import createBrowserHistory from 'history/lib/createBrowserHistory';
import rawRoutes from './routes';
import store from './store';
function mixStoreToRoutes(routes) {
return routes && routes.map(route => ({
Как вы привязываете логику приложения к срабатыванию какого-то действия (action, FSA)?
Вот, к примеру, приложение получило от сервера пакет элементов. Понятно, что есть редьюсер,
который эти элементы сложит куда-то; может, даже взведёт какой-то флаг, что, мол, данные
получены. И какой-то компонент даже отрисует их.
Но вот живет в приложении какая-то другая сущность, которая, должна сделать какую-то трансформацию
над элементами и принять решение, надо ли еще совершать какие-то действия (подгрузить новую порцию,
обновить флаги в профиле пользователя и тп).
const KEYS = {
key: 'k',
invoked: 'i',
fulfilled: 'f',
depsOn: 'd',
notify: 'n'
};
function ackProducer(handle, { hashMap = {}, lastKey = null } = {}, diag) {
const state = { hashMap, lastKey };
wordpress_root/wp-content/plugins/thinkup-panels/widgets-builder/animation/js/thinkup-builder-tinymce-widget.dev.js?ver=2.4.4
Exception origin:
https://gyazo.com/05ebdd67e8a50d95785e23d25686df68
Console readout & prior conditions:
https://gyazo.com/d10cb7e3f89e2a808a2589698f0a7ce3
Error stack:
https://gyazo.com/e1ed015033fd86542cc1eb34fe6a3982
<form remote-form="/accounts/register/" class="register pull-left">
<h3>Регистрация</h3>
<div ng-repeat="error in errors.non_field_errors" class="alert alert-danger fade in">
{{ error }}
</div>
<div class="form-group">
<label>Имя</label>
<input remote-form-control="input.first_name" type="text" name="first_name" class="form-control"/>
</div>
<div class="form-group">
app.directive('remoteForm', function($http){
function link(scope, formElement, attrs, formController) {
scope.input = {};
scope.submit = function (){
$http.post(attrs.remoteForm, scope.input)
.success(function(data, status, headers, config) {
// $window.location.reload();
@andrevinsky
andrevinsky / SassMeister-input.scss
Created March 7, 2014 16:23
Generated by SassMeister.com.
// ----
// Sass (v3.3.0.rc.5)
// Compass (v1.0.0.alpha.18)
// Bourbon (v3.2.0.beta.1.a)
// ----
@import "bourbon/bourbon";
body {
@andrevinsky
andrevinsky / timer-on-deferreds.js
Created December 28, 2013 16:57
Timer on Deferreds
//Timer on Deferreds
(function (){
var top = this;
var defaults = {
granularity : 500,
name : 'default'
};
this.Timer = function(timeout, options){
var o = $.extend({}, defaults, options),