Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

話者ごとにicon.pngを作る #69

Merged
merged 3 commits into from
May 19, 2024

Conversation

Hiroshiba
Copy link
Member

@Hiroshiba Hiroshiba commented May 18, 2024

内容

の解決プルリクエストです。

話者ディレクトリごとにルートにicon.pngを作成し、スタイルごとにアイコン画像を配置しなくてもよくします。
大体はファイルmvになっています。

関連 Issue

close #64

スクリーンショット・動画など

その他

Denoとzxを使ってスクリプトを書いてみていました。
bashよりは書きやすかったけど、全てのbashコードをこっちに置き換えるほどではなかったかなという感想でした。

コードメモ:

import "npm:zx/globals";

// character_infoディレクトリ直下にあるすべてのディレクトリを取得する
const rootDir = "./character_info";
const dirs = Deno.readDirSync(rootDir);

// それぞれのキャラクターディレクトリの下で作業する
for (const dir of dirs) {
  console.log(`Character: ${dir.name}`);

  // iconsディレクトリの中の Number.png 一覧を取得し、一番数字が小さいものを探す
  const icons = Array.from(Deno.readDirSync(`${rootDir}/${dir.name}/icons`));
  const iconNumbers = icons
    .map((icon) => parseInt(icon.name.replace(".png", "")))
    .filter((n) => !isNaN(n));
  const minIconNumber = Math.min(...iconNumbers);
  console.log(`Min Icon Number: ${minIconNumber}`);

  // そのファイルを キャラディレクトリ/icon.png にコピーする
  const topIconPath = `${rootDir}/${dir.name}/icon.png`;
  Deno.copyFileSync(
    `${rootDir}/${dir.name}/icons/${minIconNumber}.png`,
    topIconPath,
  );

  // topIcon と同じハッシュ値を計算
  const calcHash = (path: string) => {
    return ($.sync`md5sum ${path}`.stdout as string).split(" ")[0];
  };
  const topIconHash = calcHash(topIconPath);
  console.log(`Top Icon Hash: ${topIconHash}`);

  // ハッシュ値が同じファイルを消していく
  for (const icon of icons) {
    const iconPath = `${rootDir}/${dir.name}/icons/${icon.name}`;
    const iconHash = calcHash(iconPath);
    if (iconHash === topIconHash) {
      console.log(`Remove: ${iconPath}`);
      Deno.removeSync(iconPath);
    }
  }
}

@Hiroshiba
Copy link
Member Author

たぶん大丈夫だと思うのでマージ!

@Hiroshiba Hiroshiba merged commit b59b147 into VOICEVOX:main May 19, 2024
2 checks passed
@Hiroshiba Hiroshiba deleted the 話者ごとにicon.pngを作る branch May 19, 2024 22:05
Hiroshiba added a commit to Hiroshiba/voicevox_resource that referenced this pull request Jul 31, 2024
Hiroshiba added a commit that referenced this pull request Jul 31, 2024
* Revert "話者ごとにicon.pngを作る (#69)"

This reverts commit b59b147.

* ここは戻さなくても良い

* 後鬼さんのはこっち
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

話者ごとにicon.pngを作る
1 participant