Module: Line::Timeline::Api

Defined in:
lib/line/timeline/api.rb,
lib/line/timeline/api/version.rb

Constant Summary collapse

VERSION =
"0.1.0"

Class Method Summary collapse

Class Method Details

.get_home_id(session) ⇒ Object



10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
# File 'lib/line/timeline/api.rb', line 10

def self.get_home_id(session)
  url = URI.parse'https://timeline.line.me/'
  http = Net::HTTP.new url.host, url.port
  http.use_ssl = true
  http.verify_mode = OpenSSL::SSL::VERIFY_NONE
  request = Net::HTTP::Get.new url.path
  request['cookie'] = session
  response = http.request(request)
  body = response.body
  user_id = body.scan(/href="\/user\/([^"]+)" data-reactid="\d+">Home/)
  if user_id.empty?
    nil
  else
    user_id[0][0]
  end
end

.get_user_feed(cookie, home_id, next_scroll_id = nil, post_limit = 10, comment_limit = 2, like_limit = 20) ⇒ Object



27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
# File 'lib/line/timeline/api.rb', line 27

def self.get_user_feed (cookie, home_id, next_scroll_id = nil, post_limit=10, comment_limit=2, like_limit=20)
  url_string = "https://timeline.line.me/api/post/list.json?homeId=#{home_id}&postLimit=#{post_limit}&commentLimit=#{comment_limit}&likeLimit=#{like_limit}&requestTime=" + DateTime.now.strftime('%Q')
  url_string += '&scrollId=' + next_scroll_id unless next_scroll_id.nil?
  url = URI.parse(url_string)
  http = Net::HTTP.new url.host, url.port
  http.use_ssl = true
  http.verify_mode = OpenSSL::SSL::VERIFY_NONE
  request = Net::HTTP::Get.new url.path + '?' + url.query
  request['X-Timeline-WebVersion'] = '1.9.2'
  request['X-Line-AcceptLanguage'] = 'en'
  request['User-Agent'] = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/61.0.3163.100 Safari/537.36'
  request['Accept'] = 'application/json, text/plain, */*'
  request['Connection'] = 'keep-alive'
  request['cookie'] = cookie
  request['Referer'] = 'https://timeline.line.me/' + cookie.scan(/trmcpage=([^;]+)/)[0][0]
  response = http.request(request)
  JSON.parse response.body
end