Skip to content

Instantly share code, notes, and snippets.

View seanmavley's full-sized avatar

KhoPhi seanmavley

View GitHub Profile
@seanmavley
seanmavley / unlike your youtube videos.py
Last active June 7, 2021 12:43
Unlike all your YouTube videos via YouTube Data API v3
import os
import time
import google_auth_oauthlib.flow
import googleapiclient.discovery
import googleapiclient.errors
scopes = ["https://www.googleapis.com/auth/youtube.force-ssl"]
def main():
@seanmavley
seanmavley / generate_thumbnails_from_video.py
Created January 21, 2021 21:02
Generate thumbnails from list of .mp4 videos in folder
# run as
# python generate_thumbnails_from_video.py path/to/directory
import os
import sys
# using moviepy
from moviepy.editor import *
from PIL import Image
@seanmavley
seanmavley / sensible basic form.validation.react.tsx
Last active October 30, 2023 16:23
Material UI Form with React Hook Form with Validation using Yup
import React from "react";
import { makeStyles, createStyles, Theme } from '@material-ui/core/styles';
import Paper from '@material-ui/core/Paper';
import Grid from '@material-ui/core/Grid';
import Box from '@material-ui/core/Box';
import TextField from '@material-ui/core/TextField';
import Typography from '@material-ui/core/Typography';
import { Button } from '@material-ui/core';
import { useForm } from 'react-hook-form';
import * as yup from 'yup';
@seanmavley
seanmavley / filterchips.dart
Last active June 27, 2018 01:25
Dynamic list for FilterChips
class ActorFilterEntry<Widget> {
const ActorFilterEntry(this.id, this.name);
final String name;
final int id;
}
class InterestsFilterPage extends State<InterestPage> {
...
List<Widget> actorWidgets(interest) {
@seanmavley
seanmavley / freeradius_monit
Created December 22, 2016 08:55
Monitor freeradius with Monit
check process freeradius with pidfile /var/run/freeradius/freeradius.pid
start program = "/etc/init.d/freeradius start"
stop program = "/etc/init.d/freeradius stop"
if failed host 127.0.0.1 port 1812 type udp protocol radius secret testing123 then alert
if failed host 127.0.0.1 port 1812 type udp protocol radius secret testing123 then alert
@seanmavley
seanmavley / gulpfile.js
Created June 20, 2016 22:18
Reset build folder before gulp build then restart browser
var gulp = require('gulp');
var concat = require('gulp-concat');
var uglify = require('gulp-uglify');
var rename = require('gulp-rename');
var del = require('del'); // rm -rf
var browser = require('browser-sync').create();
var port = process.env.SERVER_PORT || 3000;
gulp.task('clean', function() {
// first day of the month
var firstDayThisMonth = moment(firstDayThisMonth).startOf('month').toDate();
Go back and forth using the subtract() and add() with the endOf() and startOf():
// last day of previous month
var yesterMonthLastDay = moment(yesterMonthLastDay).subtract(1,'months').endOf('month').toDate();
@seanmavley
seanmavley / network_available.js
Created March 29, 2016 10:39
check network connectivit
// Register listeners
window.addEventListener("offline", function(){
$('#globalDiv').hide();
$("#message").html('WARNING: Internet connection has been lost.').show();
});
window.addEventListener("online", function(){
$("#message").empty().hide();
$('#globalDiv').show();
});
@seanmavley
seanmavley / forms for meteor.js
Created March 23, 2016 15:56
gather all form elements
<script>
(function() {
var form = document.getElementById('form_837299');
form.addEventListener('submit', function(event) {
// Prevent normal form submit
event.preventDefault();
});
#!/bin/bash
# backup using https://github.com/deajan/osync
# Usage:
# ./backup-script nameOfFolder
# e.g
# ~$ ./backup-script Folder SecondFolder
echo "Starting backup"
for i