{"id":13339317,"url":"https://github.com/kurousada/gohst","last_synced_at":"2026-03-12T01:01:28.263Z","repository":{"id":144424883,"uuid":"112622110","full_name":"kurousada/gohst","owner":"kurousada","description":"Ukagaka SHIORI made by Golang","archived":false,"fork":false,"pushed_at":"2017-12-01T10:02:50.000Z","size":13464,"stargazers_count":6,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"master","last_synced_at":"2025-12-17T13:14:46.559Z","etag":null,"topics":["golang","shiori","ukagaka","ukagaka-ghost"],"latest_commit_sha":null,"homepage":null,"language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/kurousada.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2017-11-30T14:38:19.000Z","updated_at":"2025-02-11T09:25:13.000Z","dependencies_parsed_at":null,"dependency_job_id":"188ebeeb-05c6-457f-a125-62539b02398f","html_url":"https://github.com/kurousada/gohst","commit_stats":null,"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"purl":"pkg:github/kurousada/gohst","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurousada%2Fgohst","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurousada%2Fgohst/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurousada%2Fgohst/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurousada%2Fgohst/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/kurousada","download_url":"https://codeload.github.com/kurousada/gohst/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurousada%2Fgohst/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30410356,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-12T00:40:14.898Z","status":"ssl_error","status_checked_at":"2026-03-12T00:40:08.439Z","response_time":84,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":["golang","shiori","ukagaka","ukagaka-ghost"],"created_at":"2024-07-29T19:19:54.991Z","updated_at":"2026-03-12T01:01:28.216Z","avatar_url":"https://github.com/kurousada.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"Gohst\n===\n\nSample Ghost for Ukagaka written in Go with the power of cgo, for my blog post \"[Cross Compile DLL using Golang on Linux](http://kurousada.ga/posts/tech/cross-compile-dll-using-golang-on-linux/)\", a part of [Go Advent Calender 2017 (Part 4)](https://qiita.com/advent-calendar/2017/go4).\n\n![Screenshot](screenshot.png)\n\n[Go Advent Calender 2017（その4）](https://qiita.com/advent-calendar/2017/go4)の一日目の記事である「[Goを使ってDLLをクロスコンパイル on Linux](http://kurousada.ga/posts/tech/cross-compile-dll-using-golang-on-linux/)」のサンプルゴーストです。\n\n「[伺か](https://ja.wikipedia.org/wiki/伺か)」というデスクトップアプリケーションに使われるキャラクターの、脳に当たる部分である「[栞]()」をGoで書きました。\n記事で説明したものを基に、ランダムトークしてくれるように書き足しています。\n\n## 機能\n\n - かわいい女の子 ~~のソロゴースト~~ とGopherくんです。\n - [奈良阪某](https://narazaka.net/)さんの[github.com/Narazaka/shiorigo](https://github.com/Narazaka/shiorigo)を使っています。\n - だいたい15〜30秒に一回ぐらいの頻度でランダムトークします。ネタが少ないのは仕様です。\n - 起動時と終了時にも話します。\n - その他の機能はありません。つついても撫でても無反応です。~~お触りし放題！~~\n - ベースウェアとの通信ログがベースウェアのゴーストフォルダ内`gohst/ghost/master/shiori.log`に残ります。\n - 通信はリクエスト・レスポンスともにUTF-8決め打ちですが、ログはShift_JISです。\n - シェルは[ボトル猫](http://catbottle.sakura.ne.jp/)さん作成の超かわいいフリーシェル『[pink](http://wikiwiki.jp/feeshell/?cmd=read\u0026page=pink)』を使っています。\n\n## Installation\n\n[Releases](https://github.com/kurousada/gohst/releases)からnarファイルをダウンロードできますので、お好みのベースウェアを起動してドラッグ\u0026ドロップしてください。\n\nWine 上の SSP だとなぜか 2回インストールしようとして「上書きしないで別のフォルダ作る？」的なことを聞かれるので「いや、上書き」とお答えください。\n\n動作確認は以下の環境で行っています。\n\n - [SSP](http://ssp.shillest.net/) 2.4.13 with Wine 1.6.2 (64bit) on Linux Mint 18.2 Sonya Xfce (64bit)\n\n## Compilation\n\nコンパイルには以下のものが必要です。\n\n - Go 1.9.2（たぶん他のバージョンでもWindowsでの`-buildmode=c-archieve`をサポートしていればコンパイルできます）\n - GCC 5.3.1（たぶん他のバージョンでもコンパイルできます）\n - [github.com/Narazaka/shiorigo](https://github.com/Narazaka/shiorigo)\n\nLinux/MacでもMinGWを用意すればコンパイルできます。\n詳しくは「[Goを使ってDLLをクロスコンパイル on Linux](http://kurousada.ga/posts/cross-compile-dll-using-golang-on-linux/)」を見てください。\n\n### レポジトリをクローン\n\n```sh\n$ git clone 'https://github.com/kurousada/gohst'\n$ cd gohst\n```\n\n### 必要なパッケージをインストール\n\n```sh\n$ go get github.com/Narazaki/shiorigo\n```\n\n### shiori.dllのコンパイル\n\n```sh\n$ CGO_ENABLED=1 GOOS=\"windows\" GOARCH=\"386\" CC=\"gcc\" go build -buildmode=c-archive -o libshiori.a\n$ gcc -m32 -shared -o shiori.dll shiori.def libshiori.a -Wl,--allow-multiple-definition -static -lstdc++ -lwinmm -lntdll -lws2_32\n```\n\nMinGWのGCCを使う場合はGCCのコマンドや引数、環境変数`CC`を適切なものにしてください。\n\n### narファイル作成\n\nコンパイルしてできた`shiori.dll`を`gohst/ghost/master/`にコピーし、`gohst`フォルダをZIP圧縮します。\nそして拡張子を`.nar`にすれば完成です。\n\n```sh\n$ cp shiori.dll gohst/ghost/master/shiori.dll\n$ zip -r -q -l gohst.zip gohst                  # -l オプションでLFをCR+LFに変換します。\n$ mv gohst.zip gohst.nar                        # narファイルはzipファイルの拡張子を変えただけです。\n```\n\n### 非Windows環境向けシェルスクリプト\n\nコンパイル〜nar作成までしてくれるシェルスクリプトを用意してあります。\nMinGWとGo、zipコマンドがインストールされていればこちらが便利です。\n\n```sh\n$ chmod +x ./compile.sh  # 実行権限を付与\n$ ./compile.sh\n```\n\nMakefile……？なにそれおいし(ry\n\n## TODO\n\n - テストを書く（`go test`とテスト用のベースウェアエミュレータで書ける？）\n - ゴーストのトークや反応、機能を増やす\n - ~~相方を見つける（ソロだと基本的に独り言かユーザーさんに話しかける必要があるので……）~~ *Gopherくんが相方です！*\n\n## License\n\nシェル部分（`descript.txt`と`surfaces.txt`を除く）は[ボトル猫](http://catbottle.sakura.ne.jp/)さんの著作物です。\nまた、[Gopher](https://blog.golang.org/gopher)は[Renee French](http://reneefrench.blogspot.com/)さんによってデザインされました。\n\nそのほかの[Kuro Usada](http://kurousada.ga/)が作った部分はMIT Licenseにしておきます。\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkurousada%2Fgohst","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkurousada%2Fgohst","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkurousada%2Fgohst/lists"}