Sha256: d308f0c31211533ce0c475e9fb5064033fa08318c33734bbf0f77caeadc125e9
Contents?: true
Size: 1.32 KB
Versions: 2
Compression:
Stored size: 1.32 KB
Contents
module CureLine require "open-uri" require "json" class User attr_reader :user_id include ResourceMethods # @param user_id [String] # # @example # # read https://timeline.line.me/user/_dYbbV3vmaJrvqBoV5ZlpCbPN2CWUZdDQayBvjBE # user = CureLine::User.new("_dYbbV3vmaJrvqBoV5ZlpCbPN2CWUZdDQayBvjBE") def initialize(user_id) @user_id = user_id end # @return [CureLine::Mash] def info preloaded_state["userHome"]["homeInfo"]["userInfo"] end # @return [String] def header_url resource_url(preloaded_state["userHome"]["homeInfo"]["resourceId"]) end # @return [Array<CureLine::Post>] def posts preloaded_state["userHome"]["feeds"].map { |feed| CureLine::Post.new(feed) } end # @return [CureLine::Mash] def preloaded_state return @preloaded_state if @preloaded_state options = {} options["User-Agent"] = CureLine.config.user_agent if CureLine.config.user_agent url = "https://timeline.line.me/user/#{user_id}" html = URI.open(url, options).read m = html.match(%r{<script id="init_data" type="application/json">({.+})</script>}) raise %Q(Not Found <script id="init_data" type="application/json"> in #{url}) unless m @preloaded_state = CureLine::Mash.new(JSON.parse(m[1])) end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
cure_line-1.0.1 | lib/cure_line/user.rb |
cure_line-1.0.0 | lib/cure_line/user.rb |