Caffè Latte

日々を徒然に

MacbookProをクリーンインストールするので入れるものの覚書

理由

インターンで環境汚れた
最近Macの調子が悪い(電池持ち等々)
容量がやばい(やばい)

アプリ類

VSCode
Photoshop
Lightroom
Nik correction
Microsoft Office
Xcode
Slack
Discord 
Line
Docker
Source tree
Caffein
Aware
Xquartz
VIrtual Box
123DDesign
Amazon Music
Fusion 360

環境類

Pyenv
Python
Ruby
java
node.js

その他

bash_profile
サークルの資料等
写真
インターンのレポジトリ類

pygameを使って音楽を鳴らした

Soundオブジェクトはmp3受け取れないっぽい

WAVならOK

参考記事(日本語化されてるリファレンスはすごく嬉しい) westplain.sakuraweb.com

time.sleep(時間) でコード止めないと一瞬で曲終わっちゃうから曲の長さを取得してその分止めます

他にもpygame.mixer.musicって言うモジュールも存在したが、探してみたところ音声ファイルの時間を取得できそうなものがなかった 一応pygame.mixer.musicならmp3も再生できました

'pygame (1.9.2), Python 3.5.2'

import pygame, time
def main():
    pygame.init()
    sound = pygame.mixer.Sound(input())
    sound.play()
    time.sleep(sound.get_length())
    sound.stop()
if __name__ == '__main__':
    main()

TwitterなりすましBotを作った

この記事はAizu Advent Calendar 2016 3日目の記事です。
前の人は、@mot_xxさん、次の人は @stringampさんです。


指定した誰かのツイートを取得してランダムでつぶやくBotです。 サーバーはHeroku、言語はRubyを使います。 まずGitリポジトリのセットアップをして、 Gemfileに

source 'https://rubygems.org'
ruby '2.3.1' 
gem 'sinatra', '1.4.7'
gem 'twitter', '5.16.0'

を記述し bundle install をする。

tweet.rbに

require 'twitter'

class Tweet
  def initialize
    @text = []
    @client = Twitter::REST::Client.new do |config|
      config.consumer_key        = "YOUR_CONSUMER_KEY"
      config.consumer_secret     = "YOUR_CONSUMER_SECRET"
      config.access_token        = "YOUR_ACCESS_TOKEN"
      config.access_token_secret = "YOUR_ACCESS_SECRET"
    end
  end
  def list_tweet
    @client.user_timeline("@ユーザー名",{count:200,exclude_replies:true}).each do |timeline|
    @text.push(@client.status(timeline.id).text)
    end
  end
  def random_tweet
    tweet = @text[rand(@text.length)]
    push_tweet(tweet)
  end
  def push_tweet(tweet)
    puts tweet
    @client.update(tweet)
  end
  def tweet
    self.list_tweet
    self.random_tweet
  end
end
DJ = Tweet.new.tweet

と記述します。
ツイートする内容は @client.user_timeline("@ユーザー名",{オプション}) で指定できます。

次にapp.rb

require 'sinatra'
require_relative 'tweet.rb'
get '/' do
  Tweet.new.tweet
end

config.ru

require_relative 'app.rb'
run Sinatra::Application

と記述

git commit -am "コメント
git push heroku master

でherokuにデプロイをします。

heroku open をすると動作確認ができます。 これで何かツイートされるはずです。

そしたらherokuにHeroku Schedulerのアドオンをインストールして定期的に起動するようにして完成です。 f:id:Nozomi_M:20161202170534p:plain


何故かすべてのツイートを取得することができなかったので妥協案

次はDBを使ってツイッター版魚拓を作りたい

参考記事

RubyでTwitter Botを作ってHerokuで動かす - あかんわ
Twitter API Timeline解説 - のんびりしているエンジニアの日記