{"id":13763452,"url":"https://github.com/nikolat/angolmois","last_synced_at":"2026-01-21T23:46:59.549Z","repository":{"id":139110953,"uuid":"602820380","full_name":"nikolat/angolmois","owner":"nikolat","description":"Nostrリレーから投稿を取得して伺かにSSTPを送信します","archived":false,"fork":false,"pushed_at":"2023-11-27T09:54:55.000Z","size":3729,"stargazers_count":17,"open_issues_count":0,"forks_count":2,"subscribers_count":1,"default_branch":"main","last_synced_at":"2024-02-11T18:47:27.837Z","etag":null,"topics":["nostr-client","sirefaso","sstp","ukagaka","ukagaka-webapp"],"latest_commit_sha":null,"homepage":"https://nikolat.github.io/angolmois/","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"cc0-1.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/nikolat.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null}},"created_at":"2023-02-17T02:14:04.000Z","updated_at":"2024-02-11T18:47:27.838Z","dependencies_parsed_at":"2023-11-27T10:55:39.142Z","dependency_job_id":null,"html_url":"https://github.com/nikolat/angolmois","commit_stats":null,"previous_names":[],"tags_count":5,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nikolat%2Fangolmois","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nikolat%2Fangolmois/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nikolat%2Fangolmois/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nikolat%2Fangolmois/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/nikolat","download_url":"https://codeload.github.com/nikolat/angolmois/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":253453146,"owners_count":21911049,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["nostr-client","sirefaso","sstp","ukagaka","ukagaka-webapp"],"created_at":"2024-08-03T15:00:46.753Z","updated_at":"2026-01-21T23:46:59.543Z","avatar_url":"https://github.com/nikolat.png","language":"TypeScript","funding_links":[],"categories":["Web Clients"],"sub_categories":[],"readme":"# angolmois\n\nNostrリレーから投稿を取得して表示するWebアプリです。  \n投稿を表示すると同時に伺か互換ベースウェア(SSTPサーバー)にSSTPを送信し、ゴースト(キャラクター)に投稿を喋らせます。\n\n![プレビュー](image/preview1.gif \"プレビュー\")\n\n## 何て読むの？\n\n「アンゴルモア」と呼んでください。\n\n## 使い方1\n\n1. 下記のサイトから最新版のSSPをダウンロードしssp.exeを起動します。  \n   [独立伺か研究施設 ばぐとら研究所](http://ssp.shillest.net/)\n2. [アンゴルモア](https://nikolat.github.io/angolmois/)を開きます。\n3. 「SSTPを有効化する」にチェックを入れると投稿が表示され、同時に起動しているゴーストが投稿内容を喋り出します。\n\n### ゴースト側のカスタマイズ(伺か経験者向け)\n\nangolmoisは[SSTP](http://ssp.shillest.net/ukadoc/manual/spec_sstp.html) over HTTPによりSSTPサーバーと通信を行います。  \nangolmoisからは指定したゴーストに対して以下のようなSSTPが送信されます。\n\n```\nNOTIFY SSTP/1.1\nCharset: UTF-8\nSecurityLevel: external\nSender: angolmois\nEvent: OnNostr\nOption: nobreak\nScript: \\0おはノスー！\\e\nReference0: Nostr/0.4\nReference1: 1\nReference2: おはノスー！\nReference3: nosuta\nReference4: のす太\nReference5: https://sample.com/avatar.png\nReference6: note1...\nReference7: npub1...\n```\n\nゴーストは[OnNostrイベント](https://ssp.shillest.net/ukadoc/manual/list_shiori_event_ex.html#OnNostr)に対して独自に[SakuraScript](http://ssp.shillest.net/ukadoc/manual/list_sakura_script.html)を応答することで通知内容をカスタマイズして表現することができます。  \n以下に[YAYA](https://github.com/YAYA-shiori/yaya-shiori/wiki)による応答実装例を示します。\n\n```\nExternalEvent.OnNostr\n{\n\t_protocol_version = reference[0]\n\t_kind = reference[1]\n\tif _protocol_version != 'Nostr/0.4' || _kind != 1\n\t\treturn\n\t_note = reference[2]\n\t_name = reference[3]\n\t_display_name = reference[4]\n\t\"\\C\\0\\_q\\f[bold,true]%(SHIORI3FW.EscapeAllTags(_display_name))\\f[bold,default] /\n\t\t@%(SHIORI3FW.EscapeAllTags(_name))\\n/\n\t\t%(SHIORI3FW.EscapeDangerousTags(_note))/\n\t\t\\![set,trayballoon/\n\t\t\t,--text=%(AYATEMPLATE.EscapeText(_note))/\n\t\t\t,--title=%(AYATEMPLATE.EscapeText(_display_name))/\n\t\t\t,--icon=info]/\n\t\t\\n\\n\\e\"\n\t// \\Cにより前回までの投稿の表示を維持し、\n\t// \\_qにより以降の文字列をノーウェイトで一気に表示し、\n\t// \\f[bold,true] ~ \\f[bold,default]で名前を囲むことで名前を太文字で表示した後通常に戻し、\n\t// @付きでID名を表示し、\\nで改行し、\n\t// 投稿内容を表示し、\n\t// \\![set,trayballoon,...]でトースト通知を行い、\n\t// \\n\\nで改行2回の後、\\eでえんいー。\n}\n```\n\n### 他にカスタマイズ方法は？\n\n音声読み上げプラグイン\n\n- [apxxxxxxe/Bouyomi: 伺かプラグイン](https://github.com/apxxxxxxe/Bouyomi)\n\n## 使い方2\n\nKind 9801 および 9821 を使用してSakura Scriptを流す[SSTP Bottle](http://bottle.mikage.to/)を模した実験的機能も付いています。\n\n## 伺かって何？\n\n- [ゴーストの使い方 - SSP](http://keshiki.nobody.jp/)\n- [登場から早や20年、いまだに話題となるデスクトップマスコット「伺か」ってなに？ - やじうまの杜 - 窓の杜](https://forest.watch.impress.co.jp/docs/serial/yajiuma/1404090.html)\n- [【紹介動画】How to 伺か - YouTube](https://www.youtube.com/watch?v=AFDqMiPHptc)\n\n## What is Ukagaka?\n\n- [What is an Ukagaka/Ghost? (or FLELE) - YouTube](https://www.youtube.com/watch?v=h0CHB2M5eAE)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnikolat%2Fangolmois","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnikolat%2Fangolmois","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnikolat%2Fangolmois/lists"}