Skip to content

Instantly share code, notes, and snippets.

@kujirahand
kujirahand / camera.py
Created May 2, 2026 03:21
ラズパイでDiscordにカメラ画像を送信
#!/usr/bin/env python3
import os
import subprocess
import sys
from urllib.parse import parse_qsl, urlencode, urlsplit, urlunsplit
import requests
from dotenv import load_dotenv
load_dotenv() # .envファイルを読み込む
@kujirahand
kujirahand / camera.py
Created April 13, 2026 15:22
ラズパイで画像を撮影してTelegramに送信するプログラム
#!/usr/bin/env python3
import os
import subprocess
import sys
import requests
from dotenv import load_dotenv
load_dotenv() # .envファイルを読み込む
PHOTO_PATH = "photo.jpg"
@kujirahand
kujirahand / dropbox_send.py
Created April 8, 2026 05:57
リフレッシュトークン対応したDropboxのファイルをメール送信するスクリプト
"""DropboxからファイルをダウンロードしてGmailで送信"""
import os
import dropbox
import smtplib
from email.message import EmailMessage
import sys
# 定数の設定 --- (※1)
MAIL_TO = "example@example.com" # ★要変更 - メールを送信する宛先を指定
@kujirahand
kujirahand / send.py
Created April 6, 2026 09:02
DropboxからファイルをダウンロードしてGmailで送信
"""DropboxからファイルをダウンロードしてGmailで送信"""
import os
import dropbox
import smtplib
from email.message import EmailMessage
import sys
# 定数の設定 --- (※1)
MAIL_TO = "mailto@example.com" # ★要変更 - メールを送信する宛先を指定
DROPBOX_FILE = "/売上データ.xlsx" # ★要変更 - 送信したいファイル
@kujirahand
kujirahand / ask_llm.py
Created March 17, 2026 11:23
複数LLMに質問できるGUIを備えたツール
import os
from queue import Queue
import TkEasyGUI as eg
from litellm import completion
# 複数のモデルを指定 --- (*1)
models = [
"openrouter/openai/gpt-5-mini",
"openrouter/anthropic/claude-3-haiku",
"openrouter/google/gemini-2.5-flash"
@kujirahand
kujirahand / list__main.rs
Created March 2, 2026 07:17
Rustで単方向リスト
// 単方向リストのノード構造体 --- (*1)
#[derive(Debug)]
struct Node {
value: String,
next: Option<Box<Node>>,
}
impl Node {
// ノードを作成する関数 --- (*3)
fn new(value: &str) -> Self {
Node {
@kujirahand
kujirahand / list.c
Created March 2, 2026 06:59
単方向リスト
#include <stdbool.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
// 単方向リストのノード構造体 --- (*1)
typedef struct Node {
char *value;
struct Node *next;
} Node;
@kujirahand
kujirahand / fix_zip.py
Last active February 13, 2026 04:36
ZIPファイル内の日本語ファイル名を復元して再圧縮するツール
"""ZIPファイルの中身を検査するスクリプト"""
import sys
import zipfile
def main(path_input_zip):
"""メイン処理"""
# 出力ファイル名を決定 --- (※1)
path_output_zip = path_input_zip + ".fixed.zip"
with zipfile.ZipFile(path_input_zip, 'r') as zin:
with zipfile.ZipFile(path_output_zip, 'w', zipfile.ZIP_DEFLATED) as zout:
@kujirahand
kujirahand / sort_simple.rs
Created February 3, 2026 03:14
住所で郵便番号データをソート
use std::fs::File;
use std::io::{BufRead, BufReader};
use std::error::Error;
fn main() -> Result<(), Box<dyn Error>> {
// 対象CSVファイルを開いてバッファ付きリーダーで巻き取る --- (*1)
let file = File::open("utf_ken_all.csv")?;
let reader = BufReader::new(file);
// 住所カナや郵便番号・住所を一時保存する構造体を蓄積 --- (*2)
@kujirahand
kujirahand / app.py
Last active January 12, 2026 12:48
太陽フレア情報を画像で配信するWebサーバー
""" 太陽フレア情報を画像で配信するWebサーバー """
from datetime import datetime, timedelta
from io import BytesIO
from pathlib import Path
import requests
from PIL import Image, ImageDraw, ImageFont
from flask import Flask, send_file, redirect
# NASA API キー (以下を書き換えてください) --- (*1)
NASA_API_KEY = "DEMO_KEY"