• Stars
    star
    381
  • Rank 112,502 (Top 3 %)
  • Language
    Go
  • Created over 2 years ago
  • Updated 12 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

テキストを壱百満天原サロメお嬢様風の口調に変換します

ojosama

test codecov

テキストを壱百満天原サロメお嬢様風の口調に変換して出力します。

demo

1. 概要

任意のテキストを壱百満天原サロメお嬢様風の口調風に変換する非公式プログラムです。 コマンドラインとライブラリの2つの方法で使えます。

壱百満天原サロメお嬢様風の口調変換の例を以下に示します。

変換前 変換後

〇〇をプレイする

〇〇をプレイいたしますわ

ビデオテープはどこで使うんですか

おビデオテープはどちらで使うんですの

汚いです!

きったねぇですわ~~!!!

わたしも使ってました

わたくしも使っておりましたわ

文の区切れ目や、文の変換結果の終端で「わ!」あるいは「わ?」で終わる場合は、 ランダムで「~」と「!」または「?」を追加します。 「~」「!」「?」の数は0~3個のいずれかになります。

変換前 変換後

ハーブです!

おハーブですわ~~!!!

ハーブです?

おハーブですわ~~???

変換では、単語の品詞や読み、特定の単語の前後にある単語、 特定の単語の連続などの変換ルールを順番に評価して変換しています。

文章に対して形態素解析を行っており、 形態素解析ライブラリの kagome を使用しています。

2. 壱百満天原サロメお嬢様について

本当のお嬢様に憧れる一般女性です。 麗しいお姿と独特な言葉選びと高貴なお声 が魅力的な圧倒的お嬢様です。

毎回約1時間前後の枠で配信するスタイルなので、翌日が仕事の人にも視聴しやすいです。 また、配信冒頭に前回のあらすじを話してくださるため、 途中から配信を見始めた方も内容についていけるように配慮してくださっています。

サロメイトにも、そうでない方にも等しく配慮をしてくださる高貴なお嬢様であるため ぜひ、まだ配信を見たことの無い方も配信を視聴してみてください。

詳細は以下リンクをご参照ください。

3. 使い方

3.1. Web

Web版提供してます。特にツールのインストールは不要です。

Web版のソースコードは以下です。

3.2. コマンド

ワンライナーでテキストを変換する場合は、以下のように実行します。

$ ojosama -t ハーブがありました!
おハーブがありましたわ~!!

# 標準入力
$ echo ハーブがありました! | ojosama
おハーブがありましたわ~!!

テキストファイルをまるごと変換する場合は、以下のように実行します。

$ ojosama README.adoc

ファイルの文字コードを指定する場合は -charcode オプションを指定します。 現状 sjisutf8 のみサポートしています。(デフォルトでは utf8

$ ojosama -charcode sjis testdata/sample1_sjis.txt

3.3. ライブラリ

Goのコードとして使う場合は以下のように使用します。

一部変換ロジックの中でランダムな選択を行うため、乱数のシード値を設定します。

package main

import (
	"fmt"
	"math/rand"
	"time"

	"github.com/jiro4989/ojosama"
)

func main() {
	rand.Seed(time.Now().UnixNano())

	s := "ハーブがありました!"
	text, err := ojosama.Convert(s, nil)
	if err != nil {
		panic(err)
	}
	fmt.Println(text)
}

4. インストール

Releasesから実行可能ファイルをダウンロードしてください。

あるいは以下のコマンドでインストールしてください。

$ go install github.com/jiro4989/ojosama/cmd/ojosama@latest

4.1. タブ補完の有効化

4.1.1. Bash

bash-completion がインストール済みであれば、 以下のコマンドでタブ補完を使えるようになります。

$ ojosama -completions bash | sudo tee /usr/share/bash-completion/completions/ojosama

4.1.2. Zsh

$ ojosama -completions zsh | sudo tee /usr/share/zsh/functions/Completion/_ojosama

4.1.3. Fish

$ ojosama -completions fish | tee $HOME/.config/fish/completions/ojosama.fish

5. 注意事項

5.1. 変換結果について

まだまだ実装途中なので、怪しい変換をする場合があります。

必ずしも、自分のイメージしているお嬢様の口調になっているとは限らないことをご了承ください。

5.2. プログラムの使用について

壱百満天原サロメお嬢様、及びその所属の にじさんじ や、 その関係者、ファンコミュニティの方の迷惑にならないように使ってください。

本プログラムは、にじさんじ所属の壱百満天原サロメお嬢様のキャラクターを題材にした二次創作の一つです。 故に、本プログラムは以下二次創作ガイドラインに従います。

本プログラムを使う場合も上記ガイドラインを守ってお使いください。

6. 既知のバグ

変換済みの文を更に変換すると変になります。

$ ojosama -t お願いします | ojosama
お願いいたしますわですわ

7. 派生プロジェクト

派生したプロジェクトのリンクです。多謝。

説明 言語 リポジトリURL

スラッシュコマンドでお嬢様に変換できるDiscordBot

Go

https://github.com/wgdp/ojosama-discord-bot

Gitのコミットメッセージをお嬢様にするCLI

Rust

https://github.com/Sigumaa/ojosama-commit

任意のテキストや、開いてるバッファ上のテキストをお嬢様にするVimプラグイン

Vim Script

https://github.com/heavenshell/vim-ojosama

スラッシュコマンドでお嬢様に変換できるSlack App

Go

https://github.com/yoskeoka/ojosama-slack-app

8. 開発者向け

8.1. 開発環境

  • Go 1.18.2

  • Ubuntu 22.04 on Docker

  • make (なくてもいい)

8.2. ビルド

以下のコマンドでビルドします。 実行すると内部で単体テストも実施されるので、とりあえずこれがパスすればOK。

$ make
$ ls -lah ./bin/ojosama

8.3. リリース

git tag打ったらCIが走って自動でリリースする。

8.4. 絵文字プレフィックス

コミットメッセージにはなるべく絵文字プレフィックスを付けるようにします。 ただし忘れてもOKです。 使う絵文字は大体以下。

絵文字 GitHub上のマーク 使うタイミング

:sparkles:

新機能、変換ルールの追加

🐛

:bug:

バグ修正

💯

:100:

リファクタリング

💚

:green_heart:

テスト、CI系

📝

:memo:

ドキュメント系

More Repositories

1

textimg

Command to convert from color text (ANSI or 256) to image.
Go
193
star
2

setup-nim-action

Set up your GitHub Actions workflow with a specific version of Nim
JavaScript
93
star
3

websh

シェル芸botをWebで使えるようにしたNim製Webアプリ
Nim
67
star
4

slotchmod

slotchmod changes file permission with a slot.
Go
57
star
5

nimjson

nimjson generates nim object definitions from json documents.
Nim
49
star
6

ojosama-web

テキストを壱百満天原サロメお嬢様風の口調に変換するWebアプリ
HTML
41
star
7

faker

Faker is a Nim package that generates fake data for you.
Nim
39
star
8

build-deb-action

build-deb-action builds a simple debian package.
Nim
37
star
9

monit

The task runner. Run tasks and watch file changes with custom paths.
Nim
27
star
10

nimtetris

A terminal tetris in Nim.
Nim
23
star
11

relma

GitHub Releases Management cli
Go
22
star
12

wave

The wave is a tiny WAV sound module
Nim
20
star
13

nmi

nmi display animations aimed to correct users who accidentally enter nmi instead of nim. nmi is heavily inspired by sl .
Nim
13
star
14

nimsh

nimsh is a simple implementation of a shell in pure Nim.
Nim
12
star
15

TKoolFacetileMaker2

RPGツクールVXACE・MV・MZの画像差分ファイル作成用GUIソフト
Kotlin
12
star
16

repo-template-nim

Nim project template.
Nim
10
star
17

nimothello

A teminal othello (reversi) in Nim.
Nim
10
star
18

nimlint-action

NIm lint GitHub Actions.
Shell
10
star
19

termnovel

A command that to read novel on terminal.
Nim
10
star
20

MVTextEditor

RPGツクールMVのテキスト編集ツール
Java
10
star
21

sayhissatsuwaza

コマンドラインだって必殺技を叫びたい
Nim
9
star
22

rena

rena is a tiny fire/directory renaming command.
Nim
8
star
23

filetype

Small and dependency free Nim package to infer file and MIME type checking the magic numbers signature.
Nim
8
star
24

build-rpm-action

build-rpm-action builds a simple rpm package.
Nim
8
star
25

envconfig

envconfig provides a function to get config objects from environment variables.
Nim
8
star
26

TKoolImageTileEditor

RPGツクールの顔差分ファイルを編集するソフト
Java
7
star
27

gsv

gsv transforms a multi-line CSV into one-line JSON to make it easier to grep.
Go
7
star
28

dotfiles

次郎の開発環境設定ファイル
Vim Script
7
star
29

meme

自作のCLIツールを命名するためのツール
Clojure
6
star
30

workspace

次郎の開発環境
Shell
6
star
31

TKoolCharacterAnimationSimulator

RPGツクールMVのキャラチップアニメーションのシミュレーションソフト。
Java
6
star
32

svgo

This is svgo, a small utility to create SVG objects.
Nim
6
star
33

align

Simple text align CLI
Go
6
star
34

alignment

alignment is a library to align strings.
Nim
5
star
35

xlsxlang

A tiny toy script programming language with Excel.
Go
5
star
36

yourutils

Tiny your cli utilities in pure Nim
Nim
5
star
37

eastasianwidth

Library for East Asian Width in pure Nim.
Nim
5
star
38

ponpe

アルファベットを結合してpͪoͣnͬpͣoͥnͭpͣa͡iͥnするコマンド
Go
4
star
39

pnm

Library for PNM in pure Nim.
Nim
4
star
40

maze

A library to generate maze in pure Nim.
Nim
4
star
41

markx

markx selects execution targets with editor and executes commands.
Nim
3
star
42

vhwatch

Simple watch CLI with monitoring multiple commands execution.
Go
3
star
43

joyn

joyn joins lines of two files with a common characters, field or regular expression.
Nim
3
star
44

eachdo

Nim
3
star
45

nimbot

Nim code execution bot
Nim
3
star
46

coc-radar

キャラクター保管所のクトゥルフの探索者の能力値をレーダーチャートで表示するWebサイト
JavaScript
3
star
47

tetris

Terminal Tetris
Go
2
star
48

mcp

mcp copies multiple files with editor. mcp is heavily inspired by itchyny/mmv.
Nim
2
star
49

scripts

自分用のスクリプト置き場。大多数はbashで書かれている
Shell
2
star
50

suln

suln is a CLI that prints surroundings of line number with grep.
Rust
2
star
51

morsed

Clojure
2
star
52

godot_practice

Godotの練習コード置き場
GDScript
2
star
53

edfsay

EDF! EDF!!
Shell
2
star
54

taishoku

コマンドで退職届を提出する
Go
2
star
55

muse

Nim
2
star
56

calendar-go

Go
2
star
57

nim_sdl2_samples

Nim
2
star
58

own-weather

Twitterの自身のユーザ名に天気を付与します。
JavaScript
2
star
59

MVSkillsEditor

RPGツクールMVのスキルデータベース編集用GUIソフト
Java
2
star
60

rect

Command to crop/paste rectangle text.
Nim
2
star
61

tinyutils

Minimum commands
Go
1
star
62

trans

行列データを入れ替えるだけのコマンド
Go
1
star
63

sekigae

席替えプログラム
Go
1
star
64

colc

CombinatorLogic文字列を計算するツール
Go
1
star
65

sqlfmt

Nim
1
star
66

ski

Library for calculation SKI Combinator in pure Nim.
Nim
1
star
67

jiro4989

1
star
68

dist-illust

配布用のイラスト管理・生成リポジトリ
Shell
1
star
69

jira_issue_url_generator

JIRAのissues作成用URLをGitHub Pagesでやる
TypeScript
1
star
70

lib-js

web制作の時に便利な関数まとめ
JavaScript
1
star
71

txtconv4mv

RPGツクールMV用のテキストファイル→イベント変換ツール
Nim
1
star
72

aws-lambda-slack-bot

Nim
1
star
73

edens

edensは任意の辞書で文字列をエンコード・デコードするコマンドです
Nim
1
star
74

dejo

dejo generates multiple language object definitions from json documents.
Nim
1
star
75

parseetcpasswd

Nim
1
star
76

bookmarkapp

Kubernetesの勉強がてらアプリを作ってみる
JavaScript
1
star
77

codepoint

codepoint prints codepoint of characters.
Nim
1
star
78

toilet

Docker image of toilet command
Dockerfile
1
star
79

note

📝 A note cli for you
Nim
1
star
80

jiro4989.github.io

次郎のホームページ。ただのリンク集。
1
star
81

text-proofreading

文章添削リポジトリ。ブログとかQiitaの文章を書くために
Shell
1
star
82

image

Nim
1
star
83

tdur

時刻と時刻の差を計算するコマンド
Go
1
star
84

MVVariablesSearcher

ツクールMVの変数検索・選択ツールです。
Java
1
star
85

daylog.vim

Vimで日報書くプラグイン
Vim Script
1
star
86

go-timer

CLI Timer in Golang
Go
1
star
87

gyaric

gyaric is a module to encode/decode text to unreadable gyaru’s text.
Nim
1
star
88

subnet

subnet prints subnet mask in human readable.
Nim
1
star
89

imgctl

複数の画像を一括操作するだけのツール
Go
1
star
90

textchat

textchat is a terminal chat cli.
Go
1
star
91

sekigae.nim

席替えプログラム
Nim
1
star
92

chof

Nim
1
star
93

yml2conf

A config file generator from YAML
Nim
1
star
94

clgrep

grep for changelog
Go
1
star
95

aws-cfn-templates

Cloud Formationテンプレート
Python
1
star
96

minesweeper

飽きた
Go
1
star
97

tkradar

ツクールMVの職業のデータからレーダーチャートSVGを生成するCLI
Go
1
star
98

gameoflife

Library for Game of Life in pure Nim.
Nim
1
star
99

operation-scripts

サーバ保守運用で使うシェルスクリプト
Shell
1
star
100

arth

平均値、中央値、パーセンタイル値をさっと計算するCLI
Go
1
star