Skip to content

Commit 60e337d

Browse files
committed
FormMain.csのnostrEvent.Content処理を改善、他の修正
- `FormMain.cs` に `using System.Text.RegularExpressions;` を追加 - `nostrEvent.Content` に `nostr:npub1` が含まれる場合のユーザー名取得と置換処理を追加 - `nostr:` に続く英数字を `(citations omitted)` に置換する処理を追加 - `dataGridViewNotes.Rows.Insert` メソッドで `nostrEvent.Content` を `editedContent` に置換 - `SSTPHeader` 辞書の `"Script"` の値を `content` から `editedContent` に変更 - `FormSetting.Designer.cs` のUI要素の位置とタブインデックスを調整 - `kakoi.csproj` のバージョンを `0.4.8` から `0.4.9` に更新 - `readme.txt` に `nokakoienc.exe` の説明を追加し、更新履歴に `v0.4.9` の変更点を追加
1 parent d7550a7 commit 60e337d

4 files changed

Lines changed: 55 additions & 20 deletions

File tree

kakoi/FormMain.cs

Lines changed: 23 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
using Svg.Skia;
1010
using System.Diagnostics;
1111
using System.Runtime.InteropServices;
12+
using System.Text.RegularExpressions;
1213

1314
namespace kakoi
1415
{
@@ -472,7 +473,24 @@ private async void OnClientOnTimeLineEventsReceived(object? sender, (string subs
472473
#region テキストノート
473474
if (1 == nostrEvent.Kind)
474475
{
475-
var lang = DetermineLanguage(content);
476+
string editedContent = content;
477+
// nostrEvent.Contentにnostr:npub1が含まれている場合、@ユーザー名を取得
478+
string mentionedUserName = string.Empty;
479+
Match match = Regex.Match(editedContent, @"nostr:(npub1\w+)");
480+
if (match.Success)
481+
{
482+
string npub = match.Groups[1].Value.ConvertToHex();
483+
// ユーザー名取得
484+
mentionedUserName = $"@{GetUserName(npub)}";
485+
}
486+
// nostr:npub1を@ユーザー名に置き換え
487+
editedContent = Regex.Replace(editedContent, @"nostr:(npub1\w+)", mentionedUserName);
488+
489+
// nostrEvent.Contentにnostr:が含まれている場合、続く英数字を含めて(引用省略)に置き換える
490+
editedContent = Regex.Replace(editedContent, @"nostr:\w+", "(citations omitted)");
491+
492+
// 言語判定
493+
var lang = DetermineLanguage(editedContent);
476494
// 日本語限定表示オンで日本語じゃない時は表示しない
477495
if (_showOnlyJapanese && "jpn" != lang)
478496
{
@@ -527,7 +545,8 @@ private async void OnClientOnTimeLineEventsReceived(object? sender, (string subs
527545
dto.ToLocalTime(),
528546
new Bitmap(1, 1),
529547
$"{headMark} {userName}",
530-
nostrEvent.Content,
548+
//nostrEvent.Content,
549+
editedContent,
531550
nostrEvent.Id,
532551
nostrEvent.PublicKey,
533552
nostrEvent.Kind
@@ -554,7 +573,7 @@ private async void OnClientOnTimeLineEventsReceived(object? sender, (string subs
554573
var nevent = nostrEventNote.ToNIP19();
555574
SearchGhost();
556575

557-
string msg = content;
576+
//string msg = content;
558577
Dictionary<string, string> SSTPHeader = new(_baseSSTPHeader)
559578
{
560579
{ "Reference1", "1" }, // kind
@@ -564,7 +583,7 @@ private async void OnClientOnTimeLineEventsReceived(object? sender, (string subs
564583
{ "Reference5", user?.Picture ?? string.Empty }, // picture
565584
{ "Reference6", nevent }, // nevent1...
566585
{ "Reference7", nostrEvent.PublicKey.ConvertToNpub() }, // npub1...
567-
{ "Script", $"{speaker}{userName}\\n{msg}\\e" }
586+
{ "Script", $"{speaker}{userName}\\n{editedContent}\\e" }
568587
};
569588
string sstpmsg = _SSTPMethod + "\r\n" + String.Join("\r\n", SSTPHeader.Select(kvp => kvp.Key + ": " + kvp.Value.Replace("\n", "\\n"))) + "\r\n\r\n";
570589
string r = _ds.GetSSTPResponse(_ghostName, sstpmsg);

kakoi/FormSetting.Designer.cs

Lines changed: 16 additions & 15 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

kakoi/kakoi.csproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
<PropertyGroup>
66
<OutputType>WinExe</OutputType>
77
<TargetFramework>net8.0-windows7.0</TargetFramework>
8-
<Version>$(VersionPrefix)0.4.8</Version>
8+
<Version>$(VersionPrefix)0.4.9</Version>
99
<IncludeSourceRevisionInInformationalVersion>false</IncludeSourceRevisionInInformationalVersion>
1010
<UseWindowsForms>True</UseWindowsForms>
1111
<ImplicitUsings>enable</ImplicitUsings>

readme.txt

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,8 +35,23 @@ C:Webビューを閉じる
3535
Ctrl + Shift + A:メインフォームをアクティブにするグローバルホットキー
3636

3737

38+
◆ nokakoienc.exe
39+
40+
Nostr秘密鍵(nsec1...)と自分で決めたパスワードからnokakoiキー(nokakoi:...)を作成するアプリケーションです。
41+
42+
nokakoiキーはNostr秘密鍵をパスワードを使ってローカルで暗号化したものです。
43+
nokakoi/kakoi独自仕様なので多少は安全ですが、Nostr秘密鍵を完全に含むものなので公開は控えてください。
44+
nokakoiキーとパスワードが漏れると、他者によるnokakoi/kakoiでの投稿が可能となってしまいます。
45+
パスワード変更して新しいnokakoiキーを作成したとしても、以前のnokakoiキーとパスワードの組み合わせは有効のままです。
46+
47+
3848
◆ 更新履歴
3949

50+
2024/11/15 v0.4.9
51+
フォロイーからのリポストのみを表示する設定を追加しました。
52+
content-warningタグがあれば理由のみ表示し、内容はツールチップで表示するようにしました。
53+
nostr: URI schemeを省略表示するようにしました。
54+
4055
2024/11/09 v0.4.8
4156
内部的な不具合の修正と動作の安定化を行いました。
4257

0 commit comments

Comments
 (0)