Skip to content

Commit

Permalink
Merge pull request #26 from sota0121/feature/22_fix
Browse files Browse the repository at this point in the history
Fix v0.4.0
  • Loading branch information
sota0121 authored Feb 13, 2022
2 parents 1851664 + c1338b5 commit d7fcfc2
Show file tree
Hide file tree
Showing 11 changed files with 578 additions and 106 deletions.
114 changes: 83 additions & 31 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,52 +1,104 @@
# twitter bot
# Twitter Bot CLI

## Features
- [Twitter Bot CLI](#twitter-bot-cli)
- [Overview](#overview)
- [Installation](#installation)
- [1. Install from github](#1-install-from-github)
- [2. PyPI](#2-pypi)
- [Getting started](#getting-started)
- [1. Setting Config file](#1-setting-config-file)
- [2. Send tweet](#2-send-tweet)
- [ROADMAP](#roadmap)

- Post tweet regularly
- posting messages are in `tweets_list.json` (save in Cloud Storage)
- **Future** : use tweets list in `spreadsheet`

## Overview

## Infrastructure
`tbc` is developer friendly twitter bot runner.

- Google Cloud Functions

## Installation

## Deployment
### 1. Install from github

### 1. Make `.env.yaml`
install latest pip package from github

Copy and create `.env.yaml` from `.env-template.yaml`, in root directory.
**ssh mode**

```bash
cp .env-template.yaml .env.yaml
# ssh
pip install git+ssh://git@github.com/sota0121/twitter-bot-cli
```

And then set the values below:
**https mode**

```bash
# https
pip install git+https://github.com/sota0121/twitter-bot-cli
```

if want to install specific version (See: [Releases](https://github.com/sota0121/twitter-bot-cli/releases))

```bash
pip install git+ssh://git@github.com/sota0121/twitter-bot-cli@v0.4.0
```

**check if successfully installed**

```bash
tbc --help
```

### 2. PyPI

(Comming soon ...)


## Getting started

### 1. Setting Config file

Create `.tbcconfig.yml`

See: [Twitter Authentication for Developer](https://developer.twitter.com/ja/docs/basics/authentication/overview)

```yaml
consumer_key: "twitter-consumer-key"
consumer_secret: "twitter-consumer-secret"
access_token: "twitter-access-token"
access_secret: "twitter-access-secret"
gs_type: "service_account"
gs_project_id: "Google Spreadsheet Project ID"
gs_private_key_id: "Google Spreadsheet Private key id"
# \nもそのまま設定したいのでシングルクォート
gs_private_key: 'Google Spreadsheet Private key'
gs_client_email: "Google Spreadsheet Service Account Email"
gs_client_id: "Google Spreadsheet Client ID"
gs_auth_uri: "Google Spreadsheet Auth URI"
gs_token_uri: "Google Spreadsheet Token URI"
gs_auth_provider_x509_cert_url: "Google Spreadsheet provider cert uri"
gs_client_x509_cert_url: "Google Spreadsheet client cert uri"
version: "1"

twitter:
consumer_key: "Twitter api consumer key"
consumer_secret: "Twitter api consumer secret"
access_token: "Twitter api access token"
access_secret: "Twitter api access secret"

source:
# local, gcs, gspread
type: "local"

# for local
local_path: "src/data/tweets-tbl.csv"

# for gcs (future support)
gcs_path: "path/to/cloud/storage/table.csv"

# for gspread (future support)
gspread_path: "path/to/spreadsheet/table"

```

### 2. Execute shell script

Execute `deploy-function.sh` to deploy `main.py` as Google Cloud Functions' instance.
### 2. Send tweet

```bash
chmod ./deploy-function.sh
source ./deploy-function.sh
tbc bot send -m "Hello Twitter!"

# output
Welcome to tbc !!!
bot sub command !!!
load : .tbcconfig.yml
successfully tweeted
```


## ROADMAP

See: [ROADMAP.md](docs/ROADMAP.md)
52 changes: 52 additions & 0 deletions docs/README.old.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
# twitter bot

## Features

- Post tweet regularly
- posting messages are in `tweets_list.json` (save in Cloud Storage)
- **Future** : use tweets list in `spreadsheet`


## Infrastructure

- Google Cloud Functions


## Deployment

### 1. Make `.env.yaml`

Copy and create `.env.yaml` from `.env-template.yaml`, in root directory.

```bash
cp .env-template.yaml .env.yaml
```

And then set the values below:

```yaml
consumer_key: "twitter-consumer-key"
consumer_secret: "twitter-consumer-secret"
access_token: "twitter-access-token"
access_secret: "twitter-access-secret"
gs_type: "service_account"
gs_project_id: "Google Spreadsheet Project ID"
gs_private_key_id: "Google Spreadsheet Private key id"
# \nもそのまま設定したいのでシングルクォート
gs_private_key: 'Google Spreadsheet Private key'
gs_client_email: "Google Spreadsheet Service Account Email"
gs_client_id: "Google Spreadsheet Client ID"
gs_auth_uri: "Google Spreadsheet Auth URI"
gs_token_uri: "Google Spreadsheet Token URI"
gs_auth_provider_x509_cert_url: "Google Spreadsheet provider cert uri"
gs_client_x509_cert_url: "Google Spreadsheet client cert uri"
```
### 2. Execute shell script
Execute `deploy-function.sh` to deploy `main.py` as Google Cloud Functions' instance.

```bash
chmod ./deploy-function.sh
source ./deploy-function.sh
```
2 changes: 1 addition & 1 deletion docs/ROADMAP.md
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@ Enable you to setup with cli.

## v0.4.0

status: `todo`
status: `done`

Enable you to select tweet message from local csv file.

Expand Down
4 changes: 2 additions & 2 deletions setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -15,11 +15,11 @@ def get_long_desc() -> str:

setup(
name="tbc",
version="v1.0.0-beta",
version="v0.4.0",
#long_description=get_long_desc(),
long_description_content_type="text/markdown",
author="Sota Masuda",
url="https://github.com/sota0121/twitter-bot",
url="https://github.com/sota0121/twitter-bot-cli",
packages=find_packages(where="src"),
package_dir={"": "src"},
package_data={"data": ["config.yml"],},
Expand Down
64 changes: 32 additions & 32 deletions src/data/tweets-tbl.csv
Original file line number Diff line number Diff line change
@@ -1,32 +1,32 @@
,text,tweeted,imgName
0,【01日】筋肉を裏切ってはいけない by なかやまきんに君,0,knnkn-1.jpg
1,【02日】変わりたいと思ったとき、あなたはスタートラインに立っている by なかやまきんに君,0,knnkn-0.jpg
2,【03日】筋肉は褒めて伸びるタイプです! by なかやまきんに君,0,knnkn-2.jpg
3,【04日】筋肉は師匠のようであり、家族でもある by なかやまきんに君,0,knnkn-3.jpg
4,【05日】時代は、タンパク質ファースト! by なかやまきんに君,0,knnkn-4.jpg
5,【06日】限界こそ最大のチャンス! by なかやまきんに君,0,knnkn-5.jpg
6,【07日】筋肉の声に耳を傾けろ! by なかやまきんに君,0,knnkn-1.jpg
7,【08日】仕事や恋愛、悩んだ時は筋肉を選べ! by なかやまきんに君,0,knnkn-0.jpg
8,【09日】緊急事態は解除されても、人生の筋急事態は継続です by なかやまきんに君,0,knnkn-2.jpg
9,【10日】体重は目安にすぎない! by なかやまきんに君,0,knnkn-3.jpg
10,【11日】まいにち5分!塵も積もれば体が変わる! by なかやまきんに君,0,knnkn-4.jpg
11,【12日】かっこいいとは、鍛え上げた背中で語ることさ by なかやまきんに君,0,knnkn-5.jpg
12,【13日】パンプアップで成長した未来の自分に会おう! by なかやまきんに君,0,knnkn-1.jpg
13,【14日】一番の勝負服は筋肉なんです! by なかやまきんに君,0,knnkn-0.jpg
14,【15日】筋肉を慣れさせるな! by なかやまきんに君,0,knnkn-2.jpg
15,【16日】マッチョになれば鏡の数だけ気分が上がる! by なかやまきんに君,0,knnkn-3.jpg
16,【17日】筋肉を動かせばココロも動く! by なかやまきんに君,0,knnkn-4.jpg
17,【18日】筋肉痛を既読スルーしてはいけない by なかやまきんに君,0,knnkn-5.jpg
18,【19日】食べない運動しないダイエットはありえません! by なかやまきんに君,0,knnkn-1.jpg
19,【20日】筋肉の扉は自らの筋肉で開けろ! by なかやまきんに君,0,knnkn-0.jpg
20,【21日】他人と比べなくていい。比べる相手は「過去の自分」 by なかやまきんに君,0,knnkn-2.jpg
21,【22日】早起きは三頭筋が張り出すくらい徳 by なかやまきんに君,0,knnkn-3.jpg
22,【23日】幸せは一瞬。その瞬間から努力も幸せに変わる! by なかやまきんに君,0,knnkn-4.jpg
23,【24日】ダンベルを握ると、そこは筋肉だらけだった by なかやまきんに君,0,knnkn-5.jpg
24,【25日】寒いところに筋肉芸人あり! by なかやまきんに君,0,knnkn-1.jpg
25,【26日】もう取り返しがつかない時は、割れた腹筋を見せろ! by なかやまきんに君,0,knnkn-0.jpg
26,【27日】おいしい、安い、便利な食べ物をいったん疑え! by なかやまきんに君,0,knnkn-2.jpg
27,【28日】何事もよく噛んで、噛みまくってしまえ! by なかやまきんに君,0,knnkn-3.jpg
28,【29日】健康警察が出動!太り過ぎは定員オーバーした車です。 by なかやまきんに君,0,knnkn-4.jpg
29,【30日】仕事で成功したいなら、まず体を鍛えろ! by なかやまきんに君,0,knnkn-5.jpg
30,【31日】筋トレは人生の教科書である by なかやまきんに君,0,knnkn-1.jpg
,text,imgName
0,【01日】筋肉を裏切ってはいけない by なかやまきんに君,src/data/img/knnkn-1.jpg
1,【02日】変わりたいと思ったとき、あなたはスタートラインに立っている by なかやまきんに君,src/data/img/knnkn-0.jpg
2,【03日】筋肉は褒めて伸びるタイプです! by なかやまきんに君,src/data/img/knnkn-2.jpg
3,【04日】筋肉は師匠のようであり、家族でもある by なかやまきんに君,src/data/img/knnkn-3.jpg
4,【05日】時代は、タンパク質ファースト! by なかやまきんに君,src/data/img/knnkn-4.jpg
5,【06日】限界こそ最大のチャンス! by なかやまきんに君,src/data/img/knnkn-5.jpg
6,【07日】筋肉の声に耳を傾けろ! by なかやまきんに君,src/data/img/knnkn-1.jpg
7,【08日】仕事や恋愛、悩んだ時は筋肉を選べ! by なかやまきんに君,src/data/img/knnkn-0.jpg
8,【09日】緊急事態は解除されても、人生の筋急事態は継続です by なかやまきんに君,src/data/img/knnkn-2.jpg
9,【10日】体重は目安にすぎない! by なかやまきんに君,src/data/img/knnkn-3.jpg
10,【11日】まいにち5分!塵も積もれば体が変わる! by なかやまきんに君,src/data/img/knnkn-4.jpg
11,【12日】かっこいいとは、鍛え上げた背中で語ることさ by なかやまきんに君,src/data/img/knnkn-5.jpg
12,【13日】パンプアップで成長した未来の自分に会おう! by なかやまきんに君,src/data/img/knnkn-1.jpg
13,【14日】一番の勝負服は筋肉なんです! by なかやまきんに君,src/data/img/knnkn-0.jpg
14,【15日】筋肉を慣れさせるな! by なかやまきんに君,src/data/img/knnkn-2.jpg
15,【16日】マッチョになれば鏡の数だけ気分が上がる! by なかやまきんに君,src/data/img/knnkn-3.jpg
16,【17日】筋肉を動かせばココロも動く! by なかやまきんに君,src/data/img/knnkn-4.jpg
17,【18日】筋肉痛を既読スルーしてはいけない by なかやまきんに君,src/data/img/knnkn-5.jpg
18,【19日】食べない運動しないダイエットはありえません! by なかやまきんに君,src/data/img/knnkn-1.jpg
19,【20日】筋肉の扉は自らの筋肉で開けろ! by なかやまきんに君,src/data/img/knnkn-0.jpg
20,【21日】他人と比べなくていい。比べる相手は「過去の自分」 by なかやまきんに君,src/data/img/knnkn-2.jpg
21,【22日】早起きは三頭筋が張り出すくらい徳 by なかやまきんに君,src/data/img/knnkn-3.jpg
22,【23日】幸せは一瞬。その瞬間から努力も幸せに変わる! by なかやまきんに君,src/data/img/knnkn-4.jpg
23,【24日】ダンベルを握ると、そこは筋肉だらけだった by なかやまきんに君,src/data/img/knnkn-5.jpg
24,【25日】寒いところに筋肉芸人あり! by なかやまきんに君,src/data/img/knnkn-1.jpg
25,【26日】もう取り返しがつかない時は、割れた腹筋を見せろ! by なかやまきんに君,src/data/img/knnkn-0.jpg
26,【27日】おいしい、安い、便利な食べ物をいったん疑え! by なかやまきんに君,src/data/img/knnkn-2.jpg
27,【28日】何事もよく噛んで、噛みまくってしまえ! by なかやまきんに君,src/data/img/knnkn-3.jpg
28,【29日】健康警察が出動!太り過ぎは定員オーバーした車です。 by なかやまきんに君,src/data/img/knnkn-4.jpg
29,【30日】仕事で成功したいなら、まず体を鍛えろ! by なかやまきんに君,src/data/img/knnkn-5.jpg
30,【31日】筋トレは人生の教科書である by なかやまきんに君,src/data/img/knnkn-1.jpg
12 changes: 12 additions & 0 deletions src/data/tweets-tbl_2.csv
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
idx,text,imgName
0,全ては筋肉のため by なかやまきんに君,src/data/img/knnkn-1.jpg
1,体脂肪を落とす事より、筋肉を付ける事の方が難しい by なかやまきんに君,src/data/img/knnkn-0.jpg
2,(筋トレ効果の実感について)3ヶ月で自分で気づき、6ヶ月で他人からも気づかれる by なかやまきんに君,src/data/img/knnkn-2.jpg
3,筋トレして体ができた時点で、もうめちゃめちゃ格好いいし、必ず何かが起こる by なかやまきんに君,src/data/img/knnkn-3.jpg
4,単純に筋トレが好き by なかやまきんに君,src/data/img/knnkn-4.jpg
5,筋トレは間違いない、こんなにかっこいいものはない by なかやまきんに君,src/data/img/knnkn-5.jpg
6,辛いことも楽しいことも、筋トレが教えてくれました by なかやまきんに君,src/data/img/knnkn-1.jpg
7,筋トレを長くやってると、筋肉痛が心地よくなってくる by なかやまきんに君,src/data/img/knnkn-0.jpg
8,脚のトレーニングが問題なく終わると安心する。次の日歩くのが辛いほどの筋肉痛が来るとさらに安心する by なかやまきんに君,src/data/img/knnkn-2.jpg
9,筋肉は裏切らないではなく「筋肉を裏切らない」 by なかやまきんに君,src/data/img/knnkn-3.jpg
10,笑いは取らないですが、水分はしっかり摂ります by なかやまきんに君,src/data/img/knnkn-4.jpg
Loading

0 comments on commit d7fcfc2

Please sign in to comment.