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
) {
( function($) {
$.fn.uploadFile = function(options) {
ajaxFileUpload(this.filter(':file'), options);
return this;
};
function ajaxFileUpload(elements, s) {
@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
@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),
@andrevinsky
andrevinsky / jquery.js
Created May 7, 2013 07:11
AMD inside jQuery
// Expose jQuery as an AMD module, but only for AMD loaders that
// understand the issues with loading multiple versions of jQuery
// in a page that all might call define(). The loader will indicate
// they have special allowances for multiple jQuery versions by
// specifying define.amd.jQuery = true. Register as a named module,
// since jQuery can be concatenated with other files that may use define,
// but not use a proper concatenation script that understands anonymous
// AMD modules. A named AMD is safest and most robust way to register.
// Lowercase jquery is used because AMD module names are derived from
// file names, and jQuery is normally delivered in a lowercase file name.
<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">