2025年2月28日金曜日

EPUBからJPEG

EPUBの中のJPEGのファイル名が連番でないのでMCOMIXで読みにくい問題を解決するべく ChatGptがだしたパイソンコード
epubリーダーの見開き設定とか思うようにできなかったので
epubを解凍してjpegのファイルを連番に書き換えるコード 以下のフォルダの構成が前提

manga/ (manga.epub)
├ OLEBPS/
└ META-INF/

-----以下コード---------

import os
import glob
import re
import zipfile
import sys
import shutil  # フォルダ削除用

# コマンドライン引数からEPUBファイル名を取得
if len(sys.argv) < 2:
    print("❌ 使用方法: python3 rename_images.py <epubファイル名>")
    sys.exit(1)

EPUB_FILE = sys.argv[1]

# 出力ディレクトリ(EPUBファイル名からフォルダ名を作成)
EXTRACT_DIR = os.path.splitext(EPUB_FILE)[0]  # 例: "manga.epub" → "manga"

# ① EPUBを解凍
print(f"📖 EPUBを解凍中: {EPUB_FILE} → {EXTRACT_DIR}/")
os.makedirs(EXTRACT_DIR, exist_ok=True)

with zipfile.ZipFile(EPUB_FILE, 'r') as zip_ref:
    zip_ref.extractall(EXTRACT_DIR)

# ② OEBPSフォルダを探す(デフォルト: OEBPS, なければ他をチェック)
oebps_path = os.path.join(EXTRACT_DIR, "OEBPS")
if not os.path.exists(oebps_path):
    possible_dirs = glob.glob(os.path.join(EXTRACT_DIR, "*"))
    for d in possible_dirs:
        if os.path.isdir(d) and any(f.startswith("part") for f in os.listdir(d)):  
            oebps_path = d
            break

if not os.path.exists(oebps_path):
    print("❌ OEBPSフォルダが見つかりません。")
    sys.exit(1)

# ③ XHTMLファイルを取得(ソート)
xhtml_files = sorted(glob.glob(os.path.join(oebps_path, "part*.xhtml")))

# ④ 画像ファイルをXHTMLの記述から抽出 & リネーム
print("🖼 画像をリネーム中...")
for i, xhtml_file in enumerate(xhtml_files, start=1):
    with open(xhtml_file, "r", encoding="utf-8") as file:
        content = file.read()

    match = re.search(r'<img src="(.*?)"', content)
    if match:
        img_file = match.group(1)
        img_path = os.path.join(oebps_path, img_file)
        new_name = os.path.join(EXTRACT_DIR, f"{i:04}.jpg")

        if os.path.exists(img_path):
            os.rename(img_path, new_name)
            print(f"✔ {img_file} → {new_name}")

# ⑤ OEBPS & META-INF を削除
print("🗑 不要なフォルダを削除中...")
for folder in ["OEBPS", "META-INF"]:
    folder_path = os.path.join(EXTRACT_DIR, folder)
    if os.path.exists(folder_path):
        shutil.rmtree(folder_path)
        print(f"🗑 削除: {folder_path}")

print("✅ すべての画像をリネーム & 不要フォルダを削除しました!")
print(f"📂 画像が保存されたフォルダ: {EXTRACT_DIR}/")



以上のコードをrename_images.py で保存してepubファイル(複数可)があるフォルダに置いて
python3 rename_images.py manga.epub
を実行

2025年1月21日火曜日

ytdlpでダウンロードした自動生成翻訳した字幕の文章ダブるのが設定で直せないのでjsで再処理

ytdlpの字幕問題 20250121付
かりに以下の動画の自動生成からの翻訳字幕をダウンロードすると
Greedy Meshing Voxels Fast - Optimism in Design Handmade Seattle 2022

1
00:00:00,000 --> 00:00:02,389

彼はVoxleyのシステムエンジニアで、

2
00:00:02,389 --> 00:00:02,399
彼はVoxleyのシステムエンジニアで、


こうなるのでjsで再編集、下のボタンを押してファイルを読み込むと
結果がテキストエリアに あとはコピペする
最初の3行ぐらい消えるが 直すのめんどいのでそのまま


2024年12月16日月曜日

Arduinoでc1815を使ってs2k2232のゲートに12vをかけて12vを制御

 



ヒーターにかける12vを制御するためのmosfetのゲートをc1815に12vを引っ張ってきてarduinoを使って制御
arduinoの5vでmosfetの駆動はできるがゲートとドレイン?の電圧差が熱になるらしくmosfetがアツアツになるのでゲート回路を追加
回路図は上、左がオフ、右がオン 回路は同じ、アクティブロー?なのでarduinoの出力はプログラムで反転する
+5vとスイッチははarduinoの出力もどき 4.7kの数値はchatgptのオススメ
1k(Rg)はゲート抵抗 数値はchatgptのオススメ
100k(Rgs)はゲート・ソース抵抗数値は10kでも良いらしかったが 上のRgの10倍以上の数値は必要らしい
12vの下の2kの数値はchatgptのオススメ
右上の4オームは負荷(ヒーター)

参照
https://ana-dig.com/fet_gate2/
https://detail-infomation.com/gate-driver-type/#google_vignette
https://code4fukui.github.io/circuitjs1/war/circuitjs.html

2024年10月20日日曜日

Arduino IDE が "Downloading index: library_index.tar.bz2" で固まる問題

PCとのシリアル通信が原因の一つらしい
'/home/usename/.arduino15/packages'
を消すといいらしい ので消すと治った
IDEの起動中にフリーズしてたのが治った
Downloading index: library_index.tar.bz2 とダウンロード中だったが終了したので起動中のフリーズが起こるようになった

u8glib フォントサイズ メニューの表示

u8glib フォントサイズ

u8g.setFont(u8g_font_6x10)
u8g.setFont(u8g_font_6x13)
u8g.setFont(u8g_font_7x14)
u8g.setFont(u8g_font_8x13)
u8g.setFont(u8g_font_9x14)
u8g.setFont(u8g_font_9x18)

u8g.setFont(u8g_font_7x14B) ← このように’B’をつけるとボールドになるフォントも有る


下のようなメニュー表示の矢印を表示したい

> Menu 1
_ Menu 2
_ Menu 3

こうなった(矢印部分だけ)

char *menuicon[] = { ">\0_\0_", "_\0>\0_", "_\0_\0>", };

u8g.drawStr(0, 15, &menuicon[mainManu][0]);
u8g.drawStr(0, 30, &menuicon[mainManu][2]);
u8g.drawStr(0, 45, &menuicon[mainManu][4]);

注意点はNULL文字の追加とポインタとアドレス指定

2024年10月9日水曜日

Nokia 5110 LCD u8glib arduino nanoの注意点

U8GLIB_PCD8544 u8g(9, 8, 6, 7, 5); // Clk, Din, DC, ED, RST
DCとEDが入れ替わってる気がする
すなつぶみたいな画面が出るときはDCとEDを入れ替えてみよう
今回はそれでうまく行った

2024年10月6日日曜日

CH340の/dev/usb0と/dev/ttys0の競合の解決

arduinoを引っこ抜くと /dev/usb0がIDEで表示されなくった
/dev/ttys0と競合するらしい
以下のサイトで解決
https://gist.github.com/dattasaurabh82/082d13fd61c0d06c7a358c5e605ce4fd
/dev/ttyUSB0が出来てる
何故かchromeと干渉してるみたい ブラウザを終了しないと出てきた/usb0が消える

EPUBからJPEG

EPUBの中のJPEGのファイル名が連番でないのでMCOMIXで読みにくい問題を解決するべく ChatGptがだしたパイソンコード epubリーダーの見開き設定とか思うようにできなかったので epubを解凍してjpegのファイルを連番に書き換えるコード 以下のフォルダの構成が...