Giter Site home page Giter Site logo

swimmy's Introduction

Actions Status

swimmy

swimmyとは,B4新人課題で作成した各々のSlackBotを1つにまとめたものである.本プロジェクト名は,絵本作家レオ・レオニ作の絵本「swimmy」に由来し,各々のプログラムをまとめた1つの成果物を表している.

Setup

  • このリポジトリを clone する.

    $ git clone https://github.com/nomlab/swimmy.git
    
  • gem のインストール

    • 以下のコマンドを実行し,gemをインストールする.
    $ gem install bundler
    $ bundle install --path vendor/bundle
    
  • 設定ファイルの作成

    • 以下のコマンドを実行し,.env.sample を .envに変更する.

      $ cp .env.sample .env
      
  • Slack appの作成とOAuth Tokenの取得

  • APIキーの設定

    • Google Maps API の API キー取得

      • Google Maps API へアクセスし,「キーの取得」をクリックする.
      • 「Select or create project」をクリックする.
      • 「Create a new project」をクリックし,プロジェクト名を付ける.
      • 「NEXT」をクリックすると,Google Maps APIキーが作成される.
    • Google Places API の API キー取得

      • Google Place APIへアクセスし, 「キーの取得」をクリックする.
      • 「Create a new project」を選択し,プロジェクト名を決定する.
      • 「Next」をクリックすると API キーが生成される.
    • Yahoo! JAPAN デベロッパーネットワーク Web API の Client ID の取得

      • Yahoo! JAPAN デベロッパーネットワークにアクセスする.
      • ページ上部の「機能」をクリックし,「アプリケーションの開発」をクリックする.
      • 本プログラムの使用者の Yahoo!JAPAN アカウントにログインする.
      • 「新しいアプリケーションの開発」をクリックする.
      • アプリケーション情報を入力し,「ガイドラインに同意する」にチェックを入れ,「確認」をクリックする.
      • Client ID を取得する.なお,Client ID を API キーとして用いる.
    • 取得したAPIキーを.envに記述する.

  • sheetqの設定

  • Google OAuthの設定
    この設定はtodayコマンド,及びphoto_uploadコマンドの使用に必須である.

    1. Google Cloud Console上で作成したOAuthクライアント認証情報をダウンロード(「OAuthクライアントをダウンロード」,「JSONをダウンロード」の順にクリック)し,config/credentials.jsonとして保存する. または,config/credentials.json.sampleをconfig/credentials.jsonとしてコピーし,自身のクライアント認証情報に沿って編集する.
    2. 以下のコマンドを実行し,Google OAuth アクセストークンを作成する.
      $ ./exe/google_oauth_initializer
  • systemdの設定

    • 以下のコマンドを実行する.

      # root ユーザ
      $ cp systemd_conf/swimmy.service /etc/systemd/system/swimmy.service
      $ cp systemd_conf/swimmy_env /etc/default/swimmy_env
      
      # 非 root ユーザ
      $ cp systemd_conf/user/swimmy.service ~/.config/systemd/user/swimmy.service
      $ cp systemd_conf/swimmy_env ~/.config/systemd/user/swimmy_env
      
    • コピーしたswimmy.serviceについて,以下の項目を環境に合わせて設定する.

      5 WorkingDirectory=/home/nomlab/swimmy
      6 ExecStart=/bin/sh -c 'exec /home/nomlab/swimmy/exe/swimmy >> /var/log/swimmy.log 2>&1'
      7 User=nomlab
      8 Group=nomlab
      
    • コピーしたswimmy_envについて,PATHを環境に合わせて設定する.

Run

以下のコマンドを実行することでswimmyを起動できる.

# root ユーザ
$ sudo systemctl start swimmy

# 非 root ユーザ
$ systemctl --user start swimmy

また,以下のコマンドを実行することでswimmyを停止できる.

# root ユーザ
$ sudo systemctl stop swimmy

# 非 root ユーザ
$ systemctl --user stop swimmy

swimmy's People

Contributors

dependabot[bot] avatar fujiwara-e avatar fujiwara-yu avatar hamamoto-j avatar hirata0813 avatar hiromuishikawa avatar hosokawa-kenshin avatar katakurayasuhiro avatar kimura3104 avatar kjtbw avatar manabe2000 avatar masafumi0612 avatar matsuda0528 avatar matsuo0227 avatar miyake13000 avatar mukohara avatar nakagawa1210 avatar nakazono0424 avatar ryota0312 avatar sakamoto-a avatar senooh avatar shukisasakura avatar taccho918 avatar takaie avatar tsubokawa-t avatar ueno12345 avatar ymdkit avatar yoshida-shu avatar yoshinari-nomura avatar yuki-jpn20 avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

swimmy's Issues

Updateコマンドについて,新しく Gem をインストールする必要がある場合, bundle install が失敗する

Created from AI0756 of minute 1081.

  • Updateコマンドについて,新しく Gem をインストールする必要がある場合, bundle install が失敗する. -->(高家 !:0756)

Bundler 環境から Bundler を実行すると,後者の Bundler は,前者のBundlerが環境変数に加えた変更の影響を受け,失敗する.
参考: https://www.cargomedia.ch/2016/03/18/reset-bundler-environment.html

today コマンドを実行するために,seiryu 上で設定を行う

Created from AI0755 of minute 1081.

  • today コマンドを実行するために,seiryu 上で設定を行う. -->(中園 !:0755)
    • Google Calendar API 用の token.yml を作成する.
    • スプレッドシート にカレンダ名とカレンダIDを記述したシートを作成する.
    • help メッセージのタイピングミスを修正する.

Update したときに詳細なメッセージが表示されるようにする

Created from AI0748 of minute 1057.

  • Update したときに詳細なメッセージが表示されるようにする.-->(高家 !:0748)
  1. 最新の状態の場合,その旨を通知する
  2. アップデートが失敗した場合,エラーメッセージを表示する
  3. アップデートが失敗したにも関わらず,完了したという旨のメッセージが送られる?

poll を二度実行すると前の値が残ってしまう

@takaie0214 より:

swimmyのpoll機能のバグについて,poll を2度行うと,集計のカウントが,
1度目のカウントを引つぎ,0からはじまらない.

とりあえず,swimmyを再起動することで対処した.

command.rbがloadされない

swimmyでは,lib/command/swimmy.rbで,command.rbなどのファイルを読み込んでいる.
しかし,requireではなくautoloadを利用すると,command.rbが読み込まれない.

ループプロテクションを追加する

現在の実装では,swimmy が自分自身の発言に反応してしまう.
このため,ループプロテクションを追加し,自分の発言には反応しないよう修正する必要がある.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.