Skip to content

Instantly share code, notes, and snippets.

View Mulperi's full-sized avatar
🎯
Focusing

Mika Mulperi Lakanen Mulperi

🎯
Focusing
View GitHub Profile
@Mulperi
Mulperi / todos.effects.ts
Last active January 13, 2022 08:22
React redux-saga with websocket
import { put, take, takeEvery, call, select } from "redux-saga/effects";
import { eventChannel } from "redux-saga";
import { io, Socket } from "socket.io-client";
/* Event channel for converting incoming socket messages to saga events. */
function createEventChannel(mySocket: Socket<any>) {
return eventChannel((emit) => {
mySocket.onAny((type: string, payload: any) => emit({ type, payload }));
return () => {
mySocket.close();
@Mulperi
Mulperi / node_licenses.py
Created January 13, 2022 08:17
Get all licenses from node_modules
from pathlib import Path
import json
for path in Path('node_modules').rglob('package.json'):
with open(path) as jsonFile:
try:
jsonObject = json.load(jsonFile)
except:
print("ERROR: json load failed")
jsonFile.close()
@Mulperi
Mulperi / license_check.py
Created January 12, 2022 09:41
Get license metadata from installed python package
from importlib.metadata import metadata
print(metadata("flask-cors")["License"])
@Mulperi
Mulperi / websocket.py
Created December 30, 2021 11:24
flask websocket
from flask import Flask
from flask_cors import CORS
from flask_socketio import SocketIO, emit
import os
app = Flask(__name__)
CORS(app)
socketio = SocketIO(app, cors_allowed_origins="*")
@socketio.on('connect', namespace="/items")
@Mulperi
Mulperi / remove_microseconds.py
Created November 2, 2021 06:28
python datetime object remove microseconds
from datetime import datetime, date, time, timezone
dt = datetime.utcnow()
print(dt)
newtime = dt.replace(microsecond=0)
print(newtime)
@Mulperi
Mulperi / dropdown.js
Last active August 13, 2021 05:46
Simple javascript dropdown
/**
HTML:
<header style="display: flex; justify-content: space-between;">
<div class="dropdown--container">
<button>Menu</button>
<div class="dropdown--content">
<ul>
<li><a href="#">Link</a></li>
@Mulperi
Mulperi / use_dropdown.tsx
Last active July 30, 2021 11:50
React simple custom hook for dropdown menu
import React, { Component, useEffect, useRef, useState } from 'react';
import { render } from 'react-dom';
import './style.css';
interface AppProps {}
interface AppState {
name: string;
}
function useDropdown(props: any) {
@Mulperi
Mulperi / todo.service.ts
Last active July 21, 2021 10:57
react service usage
import { Todo } from '../models/todo.model';
const TodoService = {
get: () => {
return new Promise((resolve) => {
return fetch('http://localhost:5000/todos')
.then((resp) => resp.json())
.then((data) => {
resolve(data);
});
@Mulperi
Mulperi / dict_to_list.py
Created July 20, 2021 06:52
Python dict values to list
items = {
"123": {
"id": '123',
"title": 'title1',
"description": 'Description text',
"tag": 'Tag1',
"timestamp": '2021-06-21',
},
"456": {
"id": '456',
@Mulperi
Mulperi / utc_timstamps.py
Created July 19, 2021 05:22
Create 30 utc timestamps
import datetime
timestamps = []
for i in range(30):
new_date = datetime.datetime(2021, 7, i+1, 12, 00, 00, 000,
tzinfo=datetime.timezone.utc)
timestamp = int(datetime.datetime.timestamp(new_date) * 1000)
timestamps.append(timestamp)