t.coの伸張後URLは含まれてた
注意:Twitter gemのバージョンが5未満の設定ですので、5以上だと以下の手順は無効ですゴメンナサイ
Twitter APIのhome_timelineやmentions_timelineのオプションで”include_entities”を真にすると、tcoで短縮される前のURLを取得することができます。
Twitterで発言中のt.co短縮URLを展開する。 – return $lock;
ということは、わざわざlongurlとかで伸張しなくてもよかったのね…orz
確認
twitter gemを使ったruby一行野郎を環境変数を使って改良 - 別館 子子子子子子(ねこのここねこ)
の設定を用いてTwitter gemを使って
このツイートを取得してみます。なんだかすごい。|潮騒のメモリーズ〜第二章〜|北三陸市観光協会ホームページ -動画- http://t.co/kOHZsMhMQa チーフ演出・井上剛 インタビュー 後編|NHK連続テレビ小説「あまちゃん」 http://t.co/ffIGUE4I7J
— riocampos(りおかんぽす) (@riocampos) September 28, 2013
ツイート本文
pry(main)> eval(ENV["TW"]).statuses(383794792125054976, include_entities:true)[0].attrs[:text] => "なんだかすごい。|潮騒のメモリーズ〜第二章〜|北三陸市観光協会ホームページ -動画- http://t.co/kOHZsMhMQa チーフ演出・井上剛 インタビュー 後編|NHK連続テレビ小説「あまちゃん」 http://t.co/ffIGUE4I7J"
メッセージ全体
pry(main)> eval(ENV["TW"]).statuses(383794792125054976, include_entities:true)[0] #<Twitter::Tweet:0x00000100c0b858 @attrs= {:created_at=>"Sat Sep 28 03:26:23 +0000 2013", :id=>383794792125054976, :id_str=>"383794792125054976", :text=> "なんだかすごい。|潮騒のメモリーズ〜第二章〜|北三陸市観光協会ホームページ -動画- http://t.co/kOHZsMhMQa チーフ演出・井上剛 インタビュー 後編|NHK連続テレビ小説「あまちゃん」 http://t.co/ffIGUE4I7J", :source=>"web", :truncated=>false, :in_reply_to_status_id=>nil, :in_reply_to_status_id_str=>nil, :in_reply_to_user_id=>nil, :in_reply_to_user_id_str=>nil, :in_reply_to_screen_name=>nil, :user=> {:id=>56997313, :id_str=>"56997313", :name=>"riocampos(りおかんぽす)", :screen_name=>"riocampos", :location=>"Osaka, Japan", :description=> "plz call me rio☆ favorite: cycle road race & figure skate, Mac!, iPhone!, Ruby, Fine-Art, Science, Black/Green Tea. | Gender:♂ facebook: http://t.co/uP8O6PBYoU", :url=>"http://t.co/5yB3nIR3VQ", :entities=> {:url=> {:urls=> [{:url=>"http://t.co/5yB3nIR3VQ", :expanded_url=>"http://about.me/riocampos", :display_url=>"about.me/riocampos", :indices=>[0, 22]}]}, :description=> {:urls=> [{:url=>"http://t.co/uP8O6PBYoU", :expanded_url=>"http://on.fb.me/MvEV7P", :display_url=>"on.fb.me/MvEV7P", :indices=>[137, 159]}]}}, :protected=>false, :followers_count=>2065, :friends_count=>2272, :listed_count=>191, :created_at=>"Wed Jul 15 12:02:35 +0000 2009", :favourites_count=>2774, :utc_offset=>32400, :time_zone=>"Osaka", :geo_enabled=>true, :verified=>false, :statuses_count=>145180, :lang=>"en", :contributors_enabled=>false, :is_translator=>false, :profile_background_color=>"48E0B7", :profile_background_image_url=> "http://a0.twimg.com/profile_background_images/378800000082624100/a9d78e9000222c969e9cd8d03573f25b.jpeg", :profile_background_image_url_https=> "https://si0.twimg.com/profile_background_images/378800000082624100/a9d78e9000222c969e9cd8d03573f25b.jpeg", :profile_background_tile=>true, :profile_image_url=> "http://a0.twimg.com/profile_images/3462273402/f331afb1b57c7d39688229e86de95881_normal.jpeg", :profile_image_url_https=> "https://si0.twimg.com/profile_images/3462273402/f331afb1b57c7d39688229e86de95881_normal.jpeg", :profile_banner_url=> "https://pbs.twimg.com/profile_banners/56997313/1365179721", :profile_link_color=>"009999", :profile_sidebar_border_color=>"FFFFFF", :profile_sidebar_fill_color=>"EFEFEF", :profile_text_color=>"333333", :profile_use_background_image=>true, :default_profile=>false, :default_profile_image=>false, :following=>false, :follow_request_sent=>false, :notifications=>false}, :geo=>nil, :coordinates=>nil, :place=>nil, :contributors=>nil, :retweet_count=>0, :favorite_count=>2, :entities=> {:hashtags=>[], :symbols=>[], :urls=> [{:url=>"http://t.co/kOHZsMhMQa", :expanded_url=> "http://www1.nhk.or.jp/amachan/kitasanriku/movie_view8.html", :display_url=>"www1.nhk.or.jp/amachan/kitasa…", :indices=>[43, 65]}, {:url=>"http://t.co/ffIGUE4I7J", :expanded_url=>"http://www1.nhk.or.jp/amachan/special/0928_3.html", :display_url=>"www1.nhk.or.jp/amachan/specia…", :indices=>[104, 126]}], :user_mentions=>[]}, :favorited=>false, :retweeted=>false, :possibly_sensitive=>false, :lang=>"ja"}>
URL部分
pry(main)> eval(ENV["TW"]).statuses(383794792125054976, include_entities:true)[0].attrs[:entities][:urls] => [{:url=>"http://t.co/kOHZsMhMQa", :expanded_url=>"http://www1.nhk.or.jp/amachan/kitasanriku/movie_view8.html", :display_url=>"www1.nhk.or.jp/amachan/kitasa…", :indices=>[43, 65]}, {:url=>"http://t.co/ffIGUE4I7J", :expanded_url=>"http://www1.nhk.or.jp/amachan/special/0928_3.html", :display_url=>"www1.nhk.or.jp/amachan/specia…", :indices=>[104, 126]}]
urlをexpanded_urlに置き換える
searchで取得できたツイートのt.coのURLを伸張させてみます。
読みやすいように改行して表記しておきます。
tco_repl = {} eval(ENV["TW"]). \ search("riocampos", include_entities: true, count: 10). \ statuses.each_with_index do |t, i| t.urls.each do |u| tco_repl[u.url] = u.expanded_url end tco_repl.each do |tco, expd| t.text.sub!(tco, expd) end puts "#{i}: #{t.text}" end