Tistory-CLI
A command line tool for Tistory, the Korean blogging platform. It conveys Markdown files to your Tistory blog.
This project is currently in alpha stage and supports the minimal features: To post an article. It supports Linux only.
ํ๊ตญ Tistory ์ฌ์ฉ์๋ฅผ ์ํ ๋๊ตฌ์ด๋ฏ๋ก ์์ผ๋ก ํ๊ธ๋ก ์ค๋ช
ํฉ๋๋ค.
Dependencies
Linux SecretStorage ๊ธฐ๋ฅ์ ์ํด ๋ค์๊ณผ ๊ฐ์ ํจํค์ง๊ฐ ํ์ํฉ๋๋ค.
๋๋ถ๋ถ์ Linux ๋ฐฐํฌํ์์ ๊ธฐ๋ณธ์ ์ผ๋ก ์ค์น๊ฐ ๋์ด์์ ๊ฒ์
๋๋ค. Arch Linux์ ๊ฒฝ์ฐ์๋ gnome-keyring์ด ๊ธฐ๋ณธ์ผ๋ก ์ค์น๋์ง ์์ผ๋ฏ๋ก ๋ฐ๋ก ์ค์นํด์ผ ํฉ๋๋ค.
Installation
pip
๋ฅผ ํตํด์ ์ฝ๊ฒ ์ค์น ๊ฐ๋ฅํฉ๋๋ค. ์์คํ
ํ๊ฒฝ ๋๋ ์ํ๋ ๊ฐ์ ํ๊ฒฝ์์
$ pip install tistory-cli
๋๋ ์์ค์์ ์ง์ ์ค์นํ๋ ค๋ฉด (์ญ์๋ ์ํ๋ ํ๊ฒฝ์์)
$ git clone https://github.com/dgkim5360/tistory-cli-python.git
$ cd tistory-cli-python
$ python setup.py install
Features and Non-features
- ๋ณธ์ธ์ client/secret key๋ฅผ ์ฌ์ฉํด์ ์ง์ ๋ก๊ทธ์ธํ๋ฏ๋ก, ์ธ๋ถ ์๋น์ค์ ๋น๋ฐ ์ ๋ณด๋ฅผ ๋จ๊ธฐ์ง ์์ต๋๋ค.
- ์์ค์ฝ๋, ํ๊ฒฝ๋ณ์ ๋ฑ์ credential๋ฅผ ์ ์ฅํ์ง ์๊ณ , ์ด์ ์ฒด์ ๋ ๋ฒจ์ ๋น๋ฐ ์ ์ฅ์์ ์ ์ฅํฉ๋๋ค.
- Git commit message ์คํ์ผ๋ก ์ ๋ชฉ/๋ด์ฉ ๊ตฌ๋ถํด์ Markdown ํ์ผ์ ์์ฑํด์ Tistory์ ๋น๊ณต๊ฐ๊ธ๋ก ์
๋ก๋ํฉ๋๋ค.
- ์นดํ
๊ณ ๋ฆฌ์ slug๋ ์ค์ ๊ฐ๋ฅํฉ๋๋ค.
- ๊ณต๊ฐ๊ธ๋ก ์
๋ก๋ ํ์ง ์์ต๋๋ค.
- ์ด๋ฏธ์ง ์
๋ก๋ ํ์ง ์์ต๋๋ค.
- ํ๊ทธ ์ถ๊ฐ ํ์ง ์์ต๋๋ค.
Oauth Setting
- Tistory --> ๊ฐ์ด๋ --> ์คํAPI ๊ฐ์ด๋ --> ํด๋ผ์ด์ธํธ ๋ฑ๋ก
- Callback ๊ฒฝ๋ก๋ฅผ
http://localhost:8888
(๊ธฐ๋ณธ๊ฐ, ๋ค๋ฅธ ํฌํธ๋ฅผ ์ํ ์ .redirect-uri
ํ์ผ์ ํด๋น ์ฃผ์๋ฅผ ์ผ์นํ๊ฒ ์จ ๋์ผ๋ฉด ๋จ)๋ก ์ค์ ํด์ ํด๋ผ์ด์ธํธ ๋ฑ๋ก์ ์๋ฃํฉ๋๋ค. tistory login
์คํํ๋ฉด (OS ๊ณ์ ๋น๋ฐ๋ฒํธ๋ฅผ ์๊ตฌํ ์๋ ์์ต๋๋ค), ๋ก๊ทธ์ธํ ํ์ด์ง๋ฅผ ์ฝ์์ ๋์์ค๋๋ค.- ๋ธ๋ผ์ฐ์ ๋ก ํด๋น ์ฃผ์๋ก ๋ค์ด๊ฐ์ Tistory ๋ก๊ทธ์ธ์ ํด์ API ํ ํฐ์ ๋ฐ์์ต๋๋ค.
- ์ฝ์์ ๋ค์๊ณผ ๊ฐ์ด ๋์ค๋ฉด ๋ก๊ทธ์ธ์ด ๋๋ฉ๋๋ค.
Usage
$ tistory
USAGE:
tistory login
tistory logout
tistory purge
tistory category <blog_name>
tistory post <blog_name> <category_id> <file_path>
tistory login
: ๋ชจ๋ ๋น๋ฐ ์ ๋ณด๊ฐ ์๋ ์ง ํ์ธํ๊ณ ์์ผ๋ฉด ๋ก๊ทธ์ธ์ ์ํต๋๋ค.tistory logout
: Access token๋ง์ ์ง์๋๋ค.tistory purge
: ๋ชจ๋ ๋น๋ฐ ์ ๋ณด๋ฅผ ์ง์๋๋ค.tistory category
: ํด๋น ๋ธ๋ก๊ทธ์ ์นดํ
๊ณ ๋ฆฌ ์์ด๋ ์ ๋ณด๋ฅผ ๋ฐ์์ต๋๋ค.tistory post
: ํ์ผ์ ์ฝ์ด์ ํด๋น ๋ธ๋ก๊ทธ ๋ฐ ์นดํ
๊ณ ๋ฆฌ์ ๋น๊ณต๊ฐ ๊ธ๋ก ์
๋ก๋ํฉ๋๋ค.
Step-by-step Tutorial
- ๋ก๊ทธ์ธ์ ํฉ๋๋ค (Oauth Setting ์ฐธ์กฐ).
tistory category <blog_name>
์ ํตํด ๋ณธ์ธ ๋ธ๋ก๊ทธ์ ์นดํ
๊ณ ๋ฆฌ ์์ด๋๋ฅผ ํ์ธํฉ๋๋ค.
$ tistory category dgkim5360
ID Name
-- ----
880607 HTML+CSS
880608 Django
886608 Bootstrap
892553 Python
892554 Javascript
894029 GNU-Linux
896354 ๋ป๊ธ
897315 Cloud
907471 etc
908711 Front-end
912687 Machine Learning
931755 NBA
933686 Elastic
937655 Flask
951477 Javascript
959045 Travelogue
990157 Rust
<slug>.md
ํ์ผ์ Git commit message์ฒ๋ผ ์์ฑํฉ๋๋ค (์ฒซ ์ค ์ ๋ชฉ, ํ ์ค ๋์ฐ๊ณ ๋ด์ฉ ์์). ๊ธ ๋ด์ฉ์ Markdown ํ์์ ๋ง์ถ์ด ์์ฑํฉ๋๋ค. (ํ์ผ๋ช
: tistory-cli-test.md
)
[์ ๋ชฉ]Hello Tistory!
# Tistory-cli ํ
์คํธ ์ค์
๋๋ค.
์๋๋ list
* hello
* tistory
* bye
* tistory
1. hello
1. tistory
1. bye
1. tistory
์ด๊ฒ์ [๋งํฌ](http://dgkim5360.tistory.com)
Inline `code text`๋ ์จ๋ด
๋๋ค.
tistory post <blog_name> <category_id> <slug>.md
๋ก ํฌ์คํ
์ ํ ํ, Tistory์์ ํ์ธํฉ๋๋ค. ์์
์ด ์๋ฃ๋๋ฉด ํด๋น Markdown ๋ฌธ์์ ํ์ผ ์์ Tistory ์์คํ
์ ID๊ฐ์ด ๋ถ์ต๋๋ค (์๋ ์์ ์์๋ 191์ด ๋ถ์์ต๋๋ค).
$ tistory post dgkim5360 896354 path/to/tistory-cli-test.md
$ ls path/to
191_tistory-cli-test.md
- ์ถ๊ฐ์ ์ผ๋ก ํ์ํ ์ด๋ฏธ์ง ์
๋ก๋, ํ๊ทธ ์ถ๊ฐ, ๊ณต๊ฐ ์ค์ ์ Tistory์์ ํด๊ฒฐํฉ๋๋ค.