読者です 読者をやめる 読者になる 読者になる

Catch me If you can

酒を飲み、肉を食べ、犬と遊んで暮らしたい

【フランスじゃなくて】営業だったアラサー喪女がPythonでtwitterbotを作ってみた【タヒチだった】

Pythonの旅

しばらく更新できていなかったけど、いちおう就職もして、生活もおちついてPythonに着手できたので、記録。

 

そもそも、Pythonは本を買ってみたはいいものの、詰んでいた。

 

seong15.hatenablog.com

 

Rubyを少しだけ触って、「ああ、CSSとかHTMLとかとはだいぶ違うのね」ということを

実感したところで、9月の半ばくらいから「ねこたろうさん」(以下、(<●>ェ<●>))に隔週1回2時間程度で教えてもらっていた。

(本当はもっと短期間でできるのだろうけど、わたしが難しく考えすぎて最初の4回くらいは先生が疲弊していた)

 

関数や引数などの教えてもらった基本的なことは、今度復習兼備忘録として書くとして、わたし(以下、(((。*ω*。))))は、ねこたろうさんにこう質問された。

 

(<●>ェ<●>)「なんか作ってみたいのありますか?」

(((。*ω*。)))「twitterでランダムでツイートをつぶやくやつ作ってみたいです!」

 

というわけで、さっそくAPIを取得。

 

webnaut.jp

 

APIについてきちんと理解するのに1時間ほどかかりました。

 

コードを記載するのは「iPython」を使用。

qiita.com

 

(いつも思うんだけど、一部のエンジニアの人ってweb上ではすごく言葉が乱暴だったりするのに

会うと普通の礼儀正しい人だったりするのは、なんで?新種のヤンデレ?)

 

ターミナルでipython notebookと入れて、起動(もうコマンドプロンプトがスパゲッティの種類じゃないことはわかった)

 

ででん

 

f:id:Seong15:20151022144153p:plain

 

(<●>ェ<●>)「iPythonは普通のエディタで書くのとちがって❌❌❌🔺🔺🔺で便利なんです」←(なんかいちいち何かをかかなくていいから便利、というのは覚えているが、それが何かは覚えていないのであった)

 

iPythonで書いて、sublime textで保存、という行為の結果、コードはこんな風になった。

f:id:Seong15:20151022144222p:plain

 

 

これをつくるのに通算10時間くらいかかった……

 

■10時間もかかった理由

・そもそも関数とか変数とかの概念がいまいち理解できなかった(数学でいう代入みたいなものか!と体感的にわかったのは、ほんとにこれを作り上げる直前)

・数学でいう「公式みたいなもの」の部分と、自分で考えて書かなきゃいけないことの区別がいまいちつかない

・そのため「これは何ですか?」「なぜこれはここに入るのですか?」という質問(しかも全部似たようなこと)を5分に1回はしていた(しかも10分説明されても理解しない)

 

PythonRubyと違って{ }を使ったりするので「これCSSで見たことある!よかった!ここはスリランカじゃない!たぶんフランスあたり!親近感!」って思ったけど、そのあと数学のシグマ計算みたいになったので、フランスのつもりが、いつのまにかタヒチに行ってて現地語で話しかけられたような

そんな衝撃に慣れるのに時間がかかった。

 

さて、きちんと動くことが確認できたので、わたしの欲望は「自動でつぶやく」に及んだ。

(<●>ェ<●>)「ほかに何かつくりたいのありますか?」

(((。*ω*。)))「これを自動でつぶやけるようにしたいです!」

(<●>ェ<●>)「それはコード書くまでもないです。”くーろん”を使います」

(((。*ω*。)))。◯(香港?粥たべたいよー)

 

cronで時間設定をする、と、こうなる。

 

f:id:Seong15:20151022145019p:plain

 

途中、ツイート間隔を短くしすぎ+つぶやきの種類少なすぎ、という問題が発生したり、

それを解決するためにvimを立ち上げてlogをとるという作業をしようとしたけど、

わたしがvimを理解していなくて

 

(<●>ェ<●>)「コロン、ダブルキューです」

(((。*ω*。)))「:99」

(<●>ェ<●>)「それじゃない」

 

という要領で、いちいち指摘をされていたけど、なんとか30分に1回つぶやくbotが完成した(今は設定時間をちょいちょい変えて遊んでいる)。

 

twitter.com

 

ただし、サーバーにアップしているわけではないので、わたしのPCが落ちている時は動かない。

※txtファイルにつぶやきたいtweetを幾つか入力し、読み込みようにしています。

 

(((。*ω*。)))「なんか16歳のころにwin95でサーバーたてて、電源消して学校の情報室行ったらサイト見れなかった時のこと思い出しました~」

(<●>ェ<●>)「僕は16歳のころは学校のセキュリティ覗いて遊んでましたけどね」

(((。*ω*。)))。◯(エンジニアってほんとこうやってマウントしてくんのすきだよな~ニヤニヤ)

 

ちなみに「電源消したのがまずかったのでは?」というのはその日中に気づき、翌日電源つけて学校いったらちゃんと見れたのが良い思い出。

 

(<●>ェ<●>)「ほかはどんなの作りたいですか?」

(((。*ω*。)))「せんせい、ワイは荒木飛呂彦教に入信しております。ジョジョの名台詞が世のネット上でどれくらい使われているのか、セリフごとに拾ってきて検証したいでございます」

(<●>ェ<●>)「なるほど」

 

(<●>ェ<●>)「それにはSQLを覚えないといけません、SQLはコピペなんかしたらだめですからね。覚悟してください」

 

 

旅は続くでござる…