Skip to content

Instantly share code, notes, and snippets.

View YumNumm's full-sized avatar
:bowtie:

Ryotaro Onoue YumNumm

:bowtie:
View GitHub Profile
@YumNumm
YumNumm / email-worker.js
Last active July 2, 2024 15:58
Cloudflare Email Workersで、Slack通知を行うスクリプト cf. https://developers.cloudflare.com/email-routing/email-workers/
export default {
async email(message, env, ctx) {
await message.forward("example@example.com");
const SLACK_WEBHOOK_URL =
"https://hooks.slack.com/services/[credential]";
const data = {
username: message.from,
channel: "#mail",
text: `<!channel> ${message.from}からのメール`,

Keybase proof

I hereby claim:

  • I am YumNumm on github.
  • I am yumnumm (https://keybase.io/yumnumm) on keybase.
  • I have a public key whose fingerprint is E74C D2A9 6E0B DAEB E4FF BFEE 98D7 1D27 EC36 41DC

To claim this, I am signing this object:

@YumNumm
YumNumm / main.dart
Created July 23, 2023 09:32
interactive_viewer sample
import 'package:flutter/material.dart';
void main() => runApp(const App());
class App extends StatelessWidget {
const App({super.key});
@override
Widget build(BuildContext context) => MaterialApp(
title: 'InteractiveViewer Demo',
home: const HomePage(),
@YumNumm
YumNumm / README.md
Last active July 11, 2023 16:26
BMIを算出するFlutter Application
@YumNumm
YumNumm / dart.json.code-snippets
Created May 12, 2023 16:09
FreezedとJsonEnumのVSCode code-snippets
{
"Freezed class with import": {
"prefix": "frzclass",
"description": "Create a Freezed class",
"body": [
"import 'package:freezed_annotation/freezed_annotation.dart';",
"part '${TM_FILENAME_BASE}.freezed.dart';",
"part '${TM_FILENAME_BASE}.g.dart';",
"",
"@freezed",
import requests
import os
import datetime
def pga(now) -> str:
u1 = now.strftime('%Y%m%d')
u2 = now.strftime('%Y%m%d%H%M%S')
return "http://www.kmoni.bosai.go.jp/data/map_img/RealTimeImg/acmap_s/"+ str(u1) +"/" + str(u2) + ".acmap_s.gif"
def shindo(now) -> str:
@YumNumm
YumNumm / weather.rb
Last active August 12, 2022 07:22
雲の形に見えない....
eval(s=(%w(require
'uri';require'net/http';requi
re"json";n='';firstM="東京の明日の天 気は";;e
ndM="です!";;res=JSON.parse(Net::HTT P.get_respo
nse(URI('https://www.jma.go.jp/bosai/forecast/data/for
ecast/010000.json')).body)[8]["srf"]["timeSeries"][0]["are
as"]["weathers"][0];;if(res.include?"晴")then;;res="\e[44;97m"+
res+"☀️"+"\e[m";;elsif(res.include?"曇")then;;res="\e[44;97m"+res+"
☁"+"\e[m";;elsif(res.include?"雨")then;;res="\e[44;97m#{firstM
}#{res}"+"☔"+"#{endM}\e[ m";;;end;puts("n='#{res}'\n"
import 'package:html/parser.dart' show parse;
import 'package:http/http.dart' as http;
import 'package:intl/intl.dart';
Future<void> main(List<String> args) async {
const String url = "https://typhoon.yahoo.co.jp/weather/jp/earthquake/list/";
final target = Uri.parse(url);
final res = await http.get(target);
if (res.statusCode != 200) {
@YumNumm
YumNumm / main.py
Last active February 20, 2022 22:31
強震モニター ExtensionからPOSTを受け取ってツイート/FCM POSTするプログラム
from http.server import BaseHTTPRequestHandler, HTTPServer
from urllib.parse import parse_qs, urlparse
import firebase_admin
from firebase_admin import credentials
from firebase_admin import auth
from firebase_admin import messaging
import tweepy
import time
import reader
@YumNumm
YumNumm / light_controller.dart
Last active January 30, 2022 16:18
部屋のライトコントローラ(NECだったかな)
import 'dart:io';
final Map<String, String> light_map = {
"on":
"0x01,0x58,0x00,0xab,0x00,0x16,0x00,0x17,0x00,0x15,0x00,0x42,0x00,0x16,0x00,0x17,0x00,0x15,0x00,0x17,0x00,0x16,0x00,0x17,0x00,0x16,0x00,0x17,0x00,0x15,0x00,0x17,0x00,0x16,0x00,0x42,0x00,0x15,0x00,0x42,0x00,0x16,0x00,0x16,0x00,0x16,0x00,0x42,0x00,0x15,0x00,0x42,0x00,0x16,0x00,0x17,0x00,0x15,0x00,0x42,0x00,0x16,0x00,0x41,0x00,0x16,0x00,0x17,0x00,0x16,0x00,0x41,0x00,0x16,0x00,0x41,0x00,0x16,0x00,0x17,0x00,0x16,0x00,0x41,0x00,0x16,0x00,0x17,0x00,0x16,0x00,0x41,0x00,0x16,0x00,0x17,0x00,0x16,0x00,0x41,0x00,0x16,0x00,0x17,0x00,0x16,0x00,0x16,0x00,0x16,0x00,0x42,0x00,0x15,0x00,0x17,0x00,0x16,0x00,0x42,0x00,0x15,0x00,0x17,0x00,0x16,0x00,0x41,0x00,0x16,0x00,0x17,0x00,0x16,0x06,0x1c",
"off":
"0x01,0x58,0x00,0xab,0x00,0x16,0x00,0x17,0x00,0x15,0x00,0x42,0x00,0x16,0x00,0x17,0x00,0x15,0x00,0x17,0x00,0x16,0x00,0x17,0x00,0x16,0x00,0x17,0x00,0x15,0x00,0x17,0x00,0x16,0x00,0x42,0x00,0x15,0x00,0x42,0x00,0x16,0x00,0x16,0x00,0x16,0x00,0x42,0x00,0x15,0x