Skip to content

jgvkmea/go-sort-tabelog

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

37 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

go-sort-tabelog

Tabelog(食べログ)上の店舗をエリアとキーワードで検索し、評価順に上位店舗を返す Go 製の LINE Bot です。 CLI ツールとしても使用可能です。

機能概要

  • LINE Bot として動作し、ユーザーからのメッセージに応じて食べログ検索を実行
  • CLI ツールで指定したエリア・キーワードに応じて上位 5 件の飲食店情報を取得
  • 店舗情報は Agouti を利用してブラウザ操作によりスクレイピング

使用技術

  • Go
  • Cobra: CLI フレームワーク
  • Agouti: Web スクレイピング用のヘッドレスブラウザ制御
  • LINE Messaging API
  • logrus: ログ出力
  • Gorilla Mux: HTTP ルーティング

構成

クリーンアーキテクチャをベースに実装しています。

.
├── cli/ # CLIツール実装
│ └── cmd/ # CLIコマンド (root, search)
├── cmd/ # Webサーバ起動エントリポイント
├── entity/ # ドメインモデル(Shopなど)
├── interface/ # 外部インターフェース (LINE, WebDriver)
│ ├── controller/ # HTTPハンドラ
│ └── gateway/ # 外部サービス連携
├── server/ # サーバ起動処理
├── usecase/ # アプリケーションロジック
├── Makefile # ビルド定義
├── go.mod # Go module定義
└── README.md # このファイル

環境変数

変数名 内容
SSH_CERT_PATH TLS 証明書ファイルのパス
SSH_KEY_PATH TLS 鍵ファイルのパス
TABELOG_SORT_CHANNEL_SECRET LINE チャンネルシークレット
TABELOG_SORT_CHANNEL_TOKEN LINE チャンネルアクセストークン

ビルド方法

# Webサーババイナリのビルド
make build

# CLIバイナリのビルド
make build-cli

実行方法

サーバ起動

./bin/tabelogbot --addr 0.0.0.0 --port 443

CLI 利用例

./bin/tabelogbot-cli search --area 渋谷 --keyword ラーメン

作者

jgvkmea https://github.com/jgvkmea

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published