Edited at
HALDay 5

Xonshからハッシュタグを固定してツイートする


環境


  • macOS Mojave(10.14.1)

  • Python 3.7.0


Xonsh,Tweepyの導入

$ pip install xonsh

$ pip install tweepy

上記コマンドを実行

xonsh上でPythonのコードを実行します。xonshの説明はここでは省略します。


xonshrcの編集

import tweepy

def tweet_func():
CONSUMER_KEY = 'XXXX'
CONSUMER_SECRET = 'XXXX'
auth = tweepy.OAuthHandler(CONSUMER_KEY, CONSUMER_SECRET)
TOKEN = 'XXXX'
TOKEN_SECRET = 'XXXX'
auth.set_access_token(TOKEN, TOKEN_SECRET)
api = tweepy.API(auth)
tweet = ''
tag = ['']
while tweet != 'exit':
tweet = input('Please Enter: ')
if tweet[0:7] == 'addtag ':
slice = tweet[7:]
newtag = '#' + slice
tag.append(newtag)
print('Added Hashtag')
elif tweet[0:6] == 'rmtag ':
slice = tweet[6:]
oldtag = '#' + slice
if oldtag in tag:
tag.remove(oldtag)
print('Removed ' + oldtag)
elif slice == 'all':
tag = ['']
print('Removed All Hashtags')
elif tweet == 'exit':
break
else:
tagtxt = ' '.join(tag)
api.update_status(tweet + tagtxt)
print('It was Tweeted!')

aliases["tw"] = tweet_func

~/.xonshrcに上記のコードを追記します。Twitter APIは各自取得してください。

.pyにまとめても良いのですが,xonshrcはPythonで書いても大丈夫なので直接書きました。


コードの説明

tw : xonshで偽Twitterを起動。ツイートやハッシュタグの編集をできるようにします。

addtag hoge : #hogeを固定ハッシュタグに登録

rmtag hoge : 固定ハッシュタグから#hogeを削除

rmtag all : 登録されているハッシュタグを全て削除

exit : 偽Twitter終了


やってみる

適当にハッシュタグを2つ登録して,ツイートしてみます。

$ tw

Please Enter: addtag test
Added Hashtag
Please Enter: addtag test2
Added Hashtag
Please Enter: ningen
It was Tweeted!

できましたね


まとめ

普段xonshを使っているので,何かできないかなと思ってこれをやるに至りました。こういうくだらないこと以外にも活用していきたいです。

みんなもxonshでハッピーになろう😎