Sha256: c3b60438031c7ce2263b9fc5e93c55b1cb33df56c794c462e753f9e16232e2d5
Contents?: true
Size: 1.53 KB
Versions: 1
Compression:
Stored size: 1.53 KB
Contents
# -*- coding: utf-8 -*- require 'json' require 'open-uri' require 'time' require 'nkf' module Nowtv class Client API_URL = 'http://asp.tvguide.or.jp/api/broadcasting?region_code=' REGION_URL = 'http://asp.tvguide.or.jp/api/regions' def get_program_list(region) programs = get_programs(region) unless programs.length > 1 region_code_by_name = get_region_code(region) unless region_code_by_name $stderr.puts 'Failed to get programs!' return nil end programs = get_programs(region_code_by_name) end restruct_program_list(programs) end def get_programs(region_code) url = API_URL + region_code JSON.parse(open(url).read.sub(/^\(/, '').sub(/\)$/, ''))['programs'] rescue [] end def restruct_program_list(programs) programs.map do |program| { station: NKF.nkf("-wZ0", program["station_name"]), title: NKF.nkf("-wZ0", program["title"]).gsub(" ", " "), start_time: Time.parse(program["start"]).strftime("%H:%M"), end_time: Time.parse(program["end"]).strftime("%H:%M") } end end def get_region_list regions = JSON.parse(open(REGION_URL).read.sub(/^\(/, '').sub(/\)$/, ''))['regions'] result = {} regions.each { |region| result[region["name"].to_sym] = region["code"] } result rescue {} end def get_region_code(region_name) region_list = get_region_list region_list[region_name.to_sym] end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
nowtv-0.0.2 | lib/nowtv/client.rb |