qingting_api 0.1.5 → 0.3.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: f6656001c6cf4598d4edf825161f4435c67ecaa0
4
- data.tar.gz: c5d96d5f08dde055b5709afb12463330d2c1f5c0
3
+ metadata.gz: 863714ea2312c498b85964d27d465ebf5407de99
4
+ data.tar.gz: 3b2f9e14f206bda8c335028d086d83254a82fd93
5
5
  SHA512:
6
- metadata.gz: d1c72d1cb5fbdecd9d7a37b36549629ac4532eb947a3f023d863336793ecc14eef07e52fcf6c31ef84f80741a78c54115514cccb05ff95ebedbb6610c6b9a28c
7
- data.tar.gz: 431c91bf58881e9545dad59c6a77c9f6281a50fec00acfe1a5dd34e8b7a0d1b6f629e54c34606aea3523249209cafb9f3830cf35247bcd694b7ec02b9ae1bd52
6
+ metadata.gz: 527912eaf379bf186af62eaac834a3111d80e40685172c23b8ae362ed0331acfe9a6af35ae9df00d88cd7bc654904c7ecf0effd2ae4e988391f1f53ea5d8f441
7
+ data.tar.gz: 3f79c238895307d94c68098d01c7bf9064c30ba86b6ecf0e0814b550793ab43e0052c9077eb3ae4c7cbbed49f6f4555167cfe2dcbb75c728c75b2dcc25855074
data/README.md CHANGED
@@ -1,9 +1,10 @@
1
- # QingtingApi
1
+ # Qingting
2
2
 
3
- 蜻蜓FM,接口
4
- http://open.qingting.fm/documents/API%20%E5%BC%80%E5%8F%91%E6%96%87%E6%A1%A3/
3
+ 蜻蜓FM Ruby API
5
4
 
6
- ## 安装
5
+ [API 开发文档](http://open.qingting.fm/documents/API%20%E5%BC%80%E5%8F%91%E6%96%87%E6%A1%A3/)
6
+
7
+ ## 安装
7
8
 
8
9
  在您的 `Gemfile` 里面添加:
9
10
 
@@ -16,75 +17,160 @@ gem 'qingting_api'
16
17
  ``` bash
17
18
  # 安装gem
18
19
  bundle
19
-
20
+
20
21
  rails g qingting_api:config # 将会拷贝配置文件至 `config/initializers/qingting_api.rb`
21
22
  ```
22
23
 
23
24
  ## 配置
24
25
 
25
26
  ``` ruby
26
- SmartSMS.configure do |config|
27
-
28
- # config.base_url = "http://api.open.qingting.fm" # api url
29
- # config.client_id = "ZTk4MzAwMzAtYWFiOC0xMWU0LTkyM2YtMDAxNjNlMDAyMGFk" # 授权 API client_id
30
- # config.client_secret = "OTdiNmI0MWEtYzhiZC0zYWE1LWExZmEtMDU0OWZhNTljZmRk" # 授权 API client_secret
31
- # config.api_version = :v6 # API 的版本,目前有v6
32
- # config.page_num = 1 # 获取信息时, 指定默认的页数
33
- # config.page_size = 30 # 获取信息时, 一页包含信息数量
34
- # config.company = 'Cheenwe' # 申请api公司名称
35
- # config.expires_in = 7200.second # 过期时间。当access_token过期时,API会返回token_expired错误。这时需要重新申请access token
27
+ Qingting.configure do |config|
28
+ # config.base_url = "http://api.open.qingting.fm" # api url
29
+ # config.client_id = "ZTk4MzAwMzAtYWFiOC0xMWU0LTkyM2YtMDAxNjNlMDAyMGFk" # 授权 API client_id
30
+ # config.client_secret = "OTdiNmI0MWEtYzhiZC0zYWE1LWExZmEtMDU0OWZhNTljZmRk" # 授权 API client_secret
31
+ # config.api_version = :v6 # API 的版本,目前有v6
32
+ # config.page_num = 1 # 获取信息时, 指定默认的页数
33
+ # config.page_size = 30 # 获取信息时, 一页包含信息数量
36
34
  end
37
35
  ```
38
36
 
39
37
  ## 接口方法
40
38
 
41
- #### 音频数据中心
42
- > |方法|API|说明
43
- |:----- |:-------|----- |
44
- |QingtingApi.mediacenterlist | /v6/media/mediacenterlist | 获取域名中心
39
+ Autho2.0授权
40
+ ----
41
+
42
+ | 方法 | API | 接口文档 | 说明 |
43
+ | --- | --- | --- | --- |
44
+ | QingtingApi::Account.access_token | /access | [Autho2.0授权](http://open.qingting.fm/documents/documents/Autho2.0授权/) | |
45
+
46
+ 音频数据中心
47
+ ----
48
+
49
+ | 方法 | API | 接口文档 | 说明 |
50
+ | --- | --- | --- | --- |
51
+ | QingtingApi.mediacenterlist | /v6/media/mediacenterlist | <a href="http://open.qingting.fm/documents/documents/获取音频流拼取规则/">获取域名中心</a> | |
52
+
53
+
54
+ 分类(Category)
55
+ ----
56
+
57
+ | 方法 | API | 接口文档 | 说明 |
58
+ | --- | --- | --- | --- |
59
+ | QingtingApi.categories | /v6/media/categories | <a href="http://open.qingting.fm/documents/documents/获取点播所有分类/">获取点播所有分类</a> | |
60
+ | QingtingApi.category(id) | /v6/media/categories/5 | <a href="http://open.qingting.fm/documents/documents/直播分类及获取直播属性/">直播分类及获取直播属性</a> | |
61
+ | QingtingApi.category(id) | /v6/media/categories/#{category_id} | <a href="http://open.qingting.fm/documents/documents/获取某个分类下的属性/">获取分类属性</a> | |
62
+ | QingtingApi.channels(category_id, current_page, page_size) | /v6/media/categories/#{category_id}/channels/order/0/curpage/#{curpage}/pagesize/30 | <a href="http://open.qingting.fm/documents/documents/获取分类下的所有电台或直播电台/">获取分类下的所有电台或直播电台</a> | |
63
+ | QingtingApi.channels_attr(category_id, attrs, current_page, page_size) | /v6/media/categories/#{category_id}/channels/order/0/attr/#{attr_id_1}/#{attr_id_2}/.../curpage/#{curpage}/pagesize/30 | <a href="http://open.qingting.fm/documents/documents/获取分类下的所有电台或直播电台,并按属性筛选/">通过属性筛选分类的点播电台或直播电台</a> | |
64
+ | QingtingApi.recommend_guides | /v6/media/recommends/guides/section/#{section_id} | <a href="http://open.qingting.fm/documents/documents/获取点播分类推荐/">点播分类推荐</a> | |
65
+ | QingtingApi.live_banner | /v6/media/recommend/live/banner | <a href="http://open.qingting.fm/documents/documents/获取直播banner内容/">直播banner内容</a> | |
66
+
67
+
68
+
69
+ 点播(OnDemand)
70
+ ----
71
+
72
+ | 方法 | API | 接口文档 | 说明 |
73
+ | --- | --- | --- | --- |
74
+ | QingtingApi.channelondemand(channel_id) | /v6/media/channelondemands/#{channel_id} | <a href="http://open.qingting.fm/documents/documents/获取点播电台/">获取点播电台</a> | |
75
+ | QingtingApi.channel(id)| /wapi/channels/#{channel_id} | <a href="http://open.qingting.fm/documents/documents/(新)获取点播电台/">(新)获取点播电台</a> | |
76
+ | QingtingApi.wapi_programs(channel_id, curpage, page_size) | /wapi/channelondemands/#{channel_id}/programs/curpage/#{curpage}/pagesize/#{pagesize} | <a href="http://open.qingting.fm/documents/documents/(新)获取点播电台节目单/">(新)获取点播电台节目单</a> | |
77
+ | QingtingApi.programs(channel_id, curpage, page_size) | /v6/media/channelondemands/#{channel_id}/programs/curpage/#{curpage}/pagesize/30 | <a href="http://open.qingting.fm/documents/documents/获取点播电台下的点播节目/">获取点播电台下的点播节目</a> | |
78
+
79
+ | QingtingApi.program(id) | /v6/media/programs/#{programid} | <a href="http://open.qingting.fm/documents/documents/获取点播节目/">获取点播节目</a> | |
80
+ | QingtingApi.recommends(channel_id, curpage, page_size) | /v6/media/channelondemands/#{channel_id}/recommends/curpage/#{curpage}/pagesize/#{pagesize} | <a href="http://open.qingting.fm/documents/documents/获取电台推荐列表/">获取电台推荐列表</a> | |
81
+
82
+
83
+ 直播(Live)
84
+ ----
85
+
86
+ | 方法 | API | 接口文档 | 说明 |
87
+ | --- | --- | --- | --- |
88
+ | QingtingApi.channellive(id) | /v6/media/channellives/#{channel_id} | <a href="http://open.qingting.fm/documents/documents/获取直播电台/">获取直播电台</a> | |
89
+ | QingtingApi.live_channel(id) | /wapi/channels/#{channel_id} | <a href="http://open.qingting.fm/documents/documents/(新)获取直播电台/">(新)获取直播电台</a> | |
90
+ | QingtingApi.channellives(channel_id, days) | /v6/media/channellives/#{channel_id}/programs/day/#{day_1}/#{day_2}/.../ | <a href="http://open.qingting.fm/documents/documents/获取直播电台节目单/">获取直播电台节目单</a> | days: day1,day2,day3,... |
91
+ | QingtingApi.nowplaying(day_of_week) | /v6/media/recommends/nowplaying/day/#{day_of_week} | <a href="http://open.qingting.fm/documents/documents/获取正在直播电台列表/">获取正在直播电台列表</a> | |
92
+
93
+
94
+ 临时直播节目(Live)
95
+ ----
96
+
97
+ | 方法 | API | 接口文档 | 说明 |
98
+ | --- | --- | --- | --- |
99
+ | QingtingApi.program(id) | /v6/media/programs/#{programid} | <a href="http://open.qingting.fm/documents/documents/获取临时直播信息/">获取临时直播信息</a> | |
100
+
101
+ 排行榜
102
+ ----
103
+
104
+ | 方法 | API | 接口文档 | 说明 |
105
+ | --- | --- | --- | --- |
106
+ | QingtingApi.recommends_billboards_channellives | /v6/media/recommends/billboards/channellives | <a href="http://open.qingting.fm/documents/documents/电台排行榜/">电台排行榜</a> | |
107
+ | QingtingApi.recommends_billboards_programondemands | /v6/media/recommends/billboards/programondemands | <a href="http://open.qingting.fm/documents/documents/点播节目排行榜/">点播节目排行榜</a> | |
108
+ | QingtingApi.categories_billboard(category_id) | /wapi/categories/#{category_id}/channels/billboard | <a href="http://open.qingting.fm/documents/documents/分类排行榜/">分类排行榜</a> | |
109
+ | QingtingApi.type_billboard(category_id,type) | /v6/media/categories/#{category_id}/channels/billboard/#{type} | <a href="http://open.qingting.fm/documents/documents/获取不同类型的分类排行榜/">获取不同类型的分类排行榜</a> | |
110
+
111
+ 搜索
112
+ ----
113
+
114
+ | 方法 | API | 接口文档 | 说明 |
115
+ | --- | --- | --- | --- |
116
+ | QingtingApi.newsearch(keyword, type) | /newsearch/#{keyword}/type/#{type} | <a href="http://open.qingting.fm/documents/documents/新搜索/">新搜索</a> | |
117
+ | QingtingApi.search_hotkeywords | /search/hotkeywords | <a href="http://open.qingting.fm/documents/documents/搜索热词/">搜索热词</a> | |
118
+ | QingtingApi.suggest(keyword) | /newsearch/suggest?k=#{keyword} | <a href="http://open.qingting.fm/documents/documents/获取搜索提示/">获取搜索提示</a> | |
119
+
120
+ 获取内容更新状态
121
+ ----
122
+
123
+ | 方法 | API | 接口文档 | 说明 |
124
+ | --- | --- | --- | --- |
125
+ | QingtingApi.categories_recent(start_time, end_time) | /v6/media/categories/recent/starttime/#{starttime}/endtime/#{endtime} | <a href="http://open.qingting.fm/documents/documents/获取点播分类的更新状态/">获取点播分类的更新状态</a> | |
126
+ | QingtingApi.channels_recent(category_id, start_time, end_time, current_page=1, page_size=30) | /v6/media/categories/#{category_id}/recent/channels/starttime/#{starttime}/endtime/#{endtime}/curpage/#{curpage}/pagesize/#{pagesize} | <a href="http://open.qingting.fm/documents/documents/查询某个点播分类在指定时间段内所有点播分类的更新状态/">查询某个点播分类在指定时间段内所有点播分类的更新状态</a> | |
127
+ | QingtingApi.channelondemands_recent(channelondemand_id, start_time, end_time, current_page=1, page_size=30) | /v6/media/channelondemands/#{channelondemand_id}/recent/starttime/#{starttime}/endtime/#{endtime}/curpage/#{curpage}/pagesize/#{pagesize} | <a href="http://open.qingting.fm/documents/documents/查询某个点播专辑在指定时间段内节目的更新状态/">查询某个点播专辑在指定时间段内节目的更新状态</a> | |
128
+ | QingtingApi.live_recent(start_time, end_time, current_page=1, page_size=30) | /v6/media/categories/live/recent/channels/starttime/#{starttime}/endtime/#{endtime}/curpage/#{curpage}/pagesize/#{pagesize} | <a href="http://open.qingting.fm/documents/documents/查询直播电台在指定时间段内的更新状态/">查询直播电台在指定时间段内的更新状态</a> | |
129
+
130
+ 主播
131
+ ----
132
+
133
+ | 方法 | API | 接口文档 | 说明 |
134
+ | --- | --- | --- | --- |
135
+ | QingtingApi.podcaster_guides | /v6/media/podcasters/guides | <a href="http://open.qingting.fm/documents/documents/获取主播推荐页面信息/">获取主播推荐页面信息</a> | |
136
+ | QingtingApi.podcasters_attributes | /v6/media/podcasters/attributes | <a href="http://open.qingting.fm/documents/documents/获取主播分类属性/">获取主播分类属性</a> | |
137
+ | QingtingApi.podcasters_type(type, page) | /v6/media/podcasters/type/#{type}/page/#{page} | <a href="http://open.qingting.fm/documents/documents/获取主播排行榜或新增主播/">获取主播排行榜或新增主播</a> | |
138
+ | QingtingApi.podcasters_recommends | /v6/media/podcasters/attr/#{attrIds}/page/#{page} | <a href="http://open.qingting.fm/documents/documents/获取属性的所有主播/">获取属性的所有主播</a> | |
139
+ | QingtingApi.podcasters_attr(attr_ids, page) | /v6/media/podcasters/recommends | <a href="http://open.qingting.fm/documents/documents/获取推荐的主播/">获取推荐的主播</a> | |
140
+ | QingtingApi.podcaster(id) | /v6/media/podcasters/#{qingting_id} | <a href="http://open.qingting.fm/documents/documents/获取主播信息/">获取主播信息</a> | |
141
+ | QingtingApi.podcasters_channelondemands(qingting_id) | /v6/media/podcasters/#{qingting_id}/channelondemands | <a href="http://open.qingting.fm/documents/documents/获取主播专辑列表/">获取主播专辑列表</a> | |
142
+ | QingtingApi.podcasters_recent(qingting_id) | /v6/media/podcasters/#{qingting_id}/recent | <a href="http://open.qingting.fm/documents/documents/获取主播最近更新节目/">获取主播最近更新节目</a> | |
45
143
 
46
- #### 分类(Category)
144
+ 此刻
145
+ ----
47
146
 
48
- > |方法|API|说明
49
- |:----- |:-------|----- |
50
- |QingtingApi.categories | /v6/media/categories | 获取点播所有分类
51
- |QingtingApi.get("categories/5") /QingtingApi.get_id("categories",5) | /v6/media/categories/5 |直播分类及获取直播属性
52
- |QingtingApi.get("categories/5") /QingtingApi.get_id("categories",5) | /v6/media/categories/#{category_id} |获取分类属性
53
- |QingtingApi.catrgory_channel(category_id, curpage, page_size) | /v6/media/categories/#{category_id}/channels/order/0/curpage/#{curpage}/pagesize/30 |获取分类下的所有电台或直播电台
54
-
55
- #### 点播(OnDemand)
147
+ | 方法 | API | 接口文档 | 说明 |
148
+ | --- | --- | --- | --- |
149
+ | QingtingApi.now| /v6/media/now | <a href="http://open.qingting.fm/documents/documents/获取此时此刻节目列表/">获取此时此刻节目列表</a> | |
56
150
 
57
- > |方法|API|说明
58
- |:----- |:-------|----- |
59
- |QingtingApi.get("channelondemands/35242") / QingtingApi.get_id("channelondemands",35242) | /v6/media/channelondemands/#{channel_id} | 获取点播电台
60
- |QingtingApi.ondemand_channel(35242,1,30) | /v6/media/channelondemands/#{channel_id}/programs/curpage/#{curpage}/pagesize/30 | 获取点播电台下的点播节目
61
- |QingtingApi.get("programs/3568700") / QingtingApi.get_id("programs",3568700) | /v6/media/programs/#{programid}| 获取点播节目
151
+ 专题
152
+ ----
62
153
 
63
- #### 直播(Live)
154
+ | 方法 | API | 接口文档 | 说明 |
155
+ | --- | --- | --- | --- |
156
+ | QingtingApi.topic(topic_id) | /v6/media/topics/#{topic_id} | <a href="http://open.qingting.fm/documents/documents/获取专题的专辑列表/">获取专题的专辑列表</a> | |
64
157
 
65
- > |方法|API|说明
66
- |:----- |:-------|----- |
67
- |QingtingApi.get("channellives/266") / QingtingApi.get_id("channellives",266) | /v6/media/channellives/#{channel_id} | 获取直播电台
68
- |QingtingApi.live_channel(266,4) | /v6/media/channellives/#{channel_id}/programs/day/#{day_1}/#{day_2}/.../ | 获取直播电台节目单
69
- #### 排行榜
158
+ 活动
159
+ ----
70
160
 
71
- > |方法|API|说明
72
- |:----- |:-------|----- |
73
- |QingtingApi.get("recommends/billboards/channellives") | /v6/media/recommends/billboards/channellives | 电台排行榜
74
- |QingtingApi.get("recommends/billboards/programondemands") | /v6/media/recommends/billboards/programondemands | 点播节目排行榜
161
+ | 方法 | API | 接口文档 | 说明 |
162
+ | --- | --- | --- | --- |
163
+ | QingtingApi.activity(activity_id) | v6/media/activities/#{activity_id} | <a href="http://open.qingting.fm/documents/documents/获取活动信息/">获取活动信息</a> | |
75
164
 
76
- #### 搜索
77
- > |方法|API|说明
78
- |:----- |:-------|----- |
79
- |QingtingApi.search("上海") /QingtingApi.search("上海","channel_ondemand") | /search/#{keyword}/type/#{type}| 搜索
80
-
81
165
 
82
166
 
83
167
  ## Change log
84
168
 
85
- > |时间|版本|说明|
86
- |:----- |:-------|----- |
87
- |2015.12.08 | 0.1.5 |添加自定义分页参数 |
169
+ | 时间 | 版本 | 接口文档 |
170
+ | --- | ---- | ---- |
171
+ |2015.12.08 | 0.1.5 | 添加自定义分页参数 |
172
+ |2016.12.31 | 0.2.0 | API 接口更新 |
173
+ |2017.01.03~01.08 | 0.3.0 | 重构全部接口 |
88
174
 
89
175
  ## Contributing
90
176
 
data/bin/console ADDED
@@ -0,0 +1,14 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require "bundler/setup"
4
+ require "qingting_api"
5
+
6
+ # You can add fixtures and/or initialization code here to make experimenting
7
+ # with your gem easier. You can also use a different console, if you like.
8
+
9
+ # (If you use this, don't forget to add pry to your Gemfile!)
10
+ # require "pry"
11
+ # Pry.start
12
+
13
+ require "irb"
14
+ IRB.start
@@ -1,14 +1,14 @@
1
1
  require 'rails/generators'
2
2
  require 'rails/generators/active_record'
3
3
 
4
- module QingtingApi
4
+ module Qingting
5
5
  module Generators
6
6
  class ConfigGenerator < Rails::Generators::Base
7
7
  source_root File.expand_path(File.join(File.dirname(__FILE__), 'templates'))
8
8
 
9
9
  desc <<-DESC
10
10
  Description:
11
- Copies QingtingApi configuration file to your application's initializer directory.
11
+ Copies Qingting configuration file to your application's initializer directory.
12
12
  DESC
13
13
 
14
14
  def copy_config_file
@@ -1,6 +1,6 @@
1
1
  # encoding: utf-8
2
2
 
3
- QingtingApi.configure do |config|
3
+ Qingting.configure do |config|
4
4
 
5
5
  # config.base_url = "http://api.open.qingting.fm" # api url
6
6
  # config.client_id = "ZTk4MzAwMzAtYWFiOC0xMWU0LTkyM2YtMDAxNjNlMDAyMGFk" # 授权 API client_id
@@ -0,0 +1,44 @@
1
+ # encoding: utf-8
2
+ module Qingting
3
+ module Api
4
+ module Account
5
+ extend self
6
+
7
+ # 获取账户 token
8
+ #
9
+ def access_token
10
+ token_hash['access_token']
11
+ end
12
+
13
+ def token_hash
14
+ validate_token_hash
15
+ @token_hash ||=
16
+ begin
17
+ @token_request_at = Time.now
18
+ params = {
19
+ grant_type: Base.get_grant_type,
20
+ client_id: Base.get_client_id,
21
+ client_secret: Base.get_client_secret
22
+ }
23
+ url = Base.access_url
24
+ result = Utils::Request.post(url, params: params)
25
+ result
26
+ end
27
+ end
28
+
29
+ # Check token expired or not
30
+ def validate_token_hash
31
+ if @token_request_at and
32
+ @token_hash and @token_hash['expires_in'] and
33
+ (Time.now - @token_request_at) > @token_hash['expires_in'].to_i
34
+ @token_hash = nil
35
+ elsif @token_request_at and
36
+ @token_hash and @token_hash['expires_in']
37
+ @token_hash['access_token']
38
+ else
39
+ puts "start get token ..."
40
+ end
41
+ end
42
+ end
43
+ end
44
+ end
@@ -0,0 +1,62 @@
1
+ module Qingting
2
+ module Api
3
+ module Base
4
+ extend self
5
+
6
+ def base_url
7
+ Config::get('base_url')
8
+ end
9
+
10
+ def media_url
11
+ base_url + '/v6/media/'
12
+ end
13
+
14
+ def wapi_url
15
+ base_url + '/wapi/'
16
+ end
17
+
18
+ def access_url
19
+ base_url + '/access'
20
+ end
21
+
22
+ def params
23
+ {
24
+ access_token: token
25
+ }
26
+ end
27
+
28
+
29
+ # 1. Base.v6_categories
30
+ # 2. Base.wapi_categories
31
+ # 3. Base.get_client_id
32
+ def method_missing(name, *args)
33
+ if name =~ /^v6_[\w]+/
34
+ name = name.to_s.gsub("v6_", "")
35
+ # puts name
36
+ media_url + name.to_s.gsub('_',"/")
37
+
38
+ # puts base_url + '/v6/media/' + name.to_s.gsub('_',"/")
39
+
40
+ elsif name =~ /^wapi_[\w]+/
41
+ name = name.to_s.gsub("wapi_", "")
42
+ base_url + '/wapi/' + name.to_s.gsub('_',"/")
43
+
44
+ elsif name =~ /^get_[\w]+/
45
+ name = name.to_s.gsub("get_", "")
46
+ Config::get(name)
47
+ end
48
+ end
49
+
50
+ def token
51
+ Account.access_token
52
+ end
53
+
54
+
55
+ def request(url)
56
+ Utils::Request.get(url, params: params)
57
+ end
58
+
59
+ end
60
+ end
61
+ end
62
+
@@ -0,0 +1,40 @@
1
+ require 'qingting/api/base'
2
+
3
+ module Qingting
4
+ module Api
5
+ module Billboard
6
+ # extend self
7
+
8
+ def self.included(base)
9
+ base.send :extend, ClassMethods
10
+ end
11
+
12
+ # Class methods
13
+ module ClassMethods
14
+
15
+ def recommends_billboards_channellives
16
+ url = eval("Base.v6_recommends_billboards_channellives")
17
+ Base.request(url)
18
+ end
19
+
20
+ def recommends_billboards_programondemands
21
+ url = eval("Base.v6_recommends_billboards_programondemands")
22
+ Base.request(url)
23
+ end
24
+
25
+ def categories_billboard(category_id)
26
+ url = eval("Base.v6_categories_#{category_id}_channels_billboard")
27
+ Base.request(url)
28
+ end
29
+
30
+ def type_billboard(category_id,type)
31
+ url = eval("Base.v6_categories_#{category_id}_channels_billboard_#{type}")
32
+ Base.request(url)
33
+ end
34
+
35
+ end
36
+ end
37
+ end
38
+ end
39
+
40
+
@@ -0,0 +1,51 @@
1
+ require 'qingting/api/base'
2
+
3
+ module Qingting
4
+ module Api
5
+ module Category
6
+ # extend self
7
+
8
+ def self.included(base)
9
+ base.send :extend, ClassMethods
10
+ end
11
+
12
+ # Class methods
13
+ module ClassMethods
14
+ def mediacenterlist
15
+ Base.request(Base.v6_mediacenterlist)
16
+ end
17
+
18
+ def categories
19
+ Base.request(Base.v6_categories)
20
+ end
21
+
22
+ def category(id)
23
+ url = eval("Base.v6_categories_#{id}")
24
+ Base.request(url)
25
+ end
26
+
27
+ def channels(category_id, current_page = Base.get_current_page, page_size = Base.get_page_size)
28
+ url = Base.media_url + "categories/#{category_id}/channels/order/0/curpage/#{current_page}/pagesize/#{page_size}"
29
+ Base.request(url)
30
+ end
31
+
32
+ def channels_attr(category_id, attrs, current_page = Base.get_current_page, page_size = Base.get_page_size)
33
+ attrs = attrs.gsub(".","/")
34
+ url = Base.media_url + "categories/#{category_id}/channels/order/0/attr/#{attrs}/curpage/#{current_page}/pagesize/#{page_size}"
35
+ Base.request(url)
36
+ end
37
+
38
+ def recommend_guides
39
+ url = Base.media_url + "recommend/guides"
40
+ Base.request(url)
41
+ end
42
+
43
+ def live_banner
44
+ url = Base.media_url + "recommend/live/banner"
45
+ Base.request(url)
46
+ end
47
+
48
+ end
49
+ end
50
+ end
51
+ end