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

チャンネル設定ファイルの更新におけるリファクタリング #18

Closed
ucchyocean opened this issue May 1, 2013 · 5 comments

Comments

@ucchyocean
Copy link
Owner

チャンネル設定ファイルの出力形式変更による、処理高速化の検討

現在の実装では、チャンネル設定を channels.yml にまとめて登録しているが、
チャンネルごとに yml を作成して、個別に読み込み・保存するように変更することで、
チャンネルデータ保存処理の負荷を軽減したい。

【現在の出力形態】 /plugins/LunaChat/channels.yml
【対策後の出力形態】 /plugins/LunaChat/channels/(チャンネル名).yml

また、ChannelsクラスにConfigurationSerializableを継承させ、オブジェクトから直接ymlを出力できるように実装する。

【その他の付随する仕様変更項目】
●ファイル名が「(チャンネル名).yml」になるため、チャンネル名の命名規則を設定して、
 指定できないチャンネル名が指定されたときにエラーになるようにする。
 チャンネル名の命名規則案は、次の通り。
 [0-9a-zA-Z-_]{1,20}
(数字、英小文字、英大文字、ハイフン、アンダーバーの組み合わせで、1文字から20文字まで)
●チャンネル情報ファイルについては、当然ながら、旧バージョンとの互換性がなくなる。
 LunaChat 1.x から 2.0 へ移行するユーザー数が少ないので、手作業での移行を依頼し
 設定以降ツールは提供しない。

@ucchyocean
Copy link
Owner Author

1:1 チャットのチャンネル名「(発信者)>(受信者)」は、「>」がファイル名として扱えないため、
ファイルへ保存する際に「=」へ変換して保存する。
例)
 元のチャンネル名: ucchy>pabook
 保存設定ファイル名:ucchy=pabook.yml

@Laica-Lunasys
Copy link
Collaborator

更新ありがとうございます。

個人チャットのほうは、可能であれば変更できるようにできますでしょうか?
[Lunasys=uccy] あああ
このようなフォーマットより、
[uccyさんへ] あああ
このほうがしっくりくるかなと思います。

@Laica-Lunasys
Copy link
Collaborator

えっと、

1:1 チャットのチャンネル名「(発信者)>(受信者)」は、「>」がファイル名として扱えないため
ということですが、ファイルとして個人チャットを保存するのでしょうか?

@ucchyocean
Copy link
Owner Author

個人チャットのほうは、可能であれば変更できるようにできますでしょうか?
[Lunasys=uccy] あああ
このようなフォーマットより、
[uccyさんへ] あああ
このほうがしっくりくるかなと思います。

それは無理です。
チャンネル名を「ucchyさんへ」にすると、ucchyさんにとっても「ucchyさんへ」になってしまいますよね。

1:1 チャットのチャンネル名「(発信者)>(受信者)」は、「>」がファイル名として扱えないため

ということですが、ファイルとして個人チャットを保存するのでしょうか?

いままで保存していたので、保存する気でいたのですが・・・
確かに要らないですね。この仕様は落としましょう。
1:1 チャットチャンネルは永続化しないようにします。

@ucchyocean
Copy link
Owner Author

Fixed.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants