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 +4 -4
- data/README.md +137 -51
- data/bin/console +14 -0
- data/lib/generators/qingting_api/config_generator.rb +2 -2
- data/lib/generators/qingting_api/templates/qingting_api_config.rb +1 -1
- data/lib/qingting/api/account.rb +44 -0
- data/lib/qingting/api/base.rb +62 -0
- data/lib/qingting/api/billboard.rb +40 -0
- data/lib/qingting/api/category.rb +51 -0
- data/lib/qingting/api/live.rb +42 -0
- data/lib/qingting/api/ondemand.rb +50 -0
- data/lib/qingting/api/podcaster.rb +73 -0
- data/lib/qingting/api/recent.rb +56 -0
- data/lib/qingting/config.rb +49 -0
- data/lib/qingting/utils/http.rb +69 -0
- data/lib/qingting/utils/request.rb +57 -0
- data/lib/qingting/version.rb +3 -0
- data/lib/qingting_api.rb +25 -11
- data/qingting_api.gemspec +9 -9
- metadata +21 -82
- data/.travis.yml +0 -7
- data/lib/qingting_api/account.rb +0 -38
- data/lib/qingting_api/config.rb +0 -44
- data/lib/qingting_api/qing_ting.rb +0 -70
- data/lib/qingting_api/request.rb +0 -52
- data/lib/qingting_api/version.rb +0 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 863714ea2312c498b85964d27d465ebf5407de99
|
4
|
+
data.tar.gz: 3b2f9e14f206bda8c335028d086d83254a82fd93
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 527912eaf379bf186af62eaac834a3111d80e40685172c23b8ae362ed0331acfe9a6af35ae9df00d88cd7bc654904c7ecf0effd2ae4e988391f1f53ea5d8f441
|
7
|
+
data.tar.gz: 3f79c238895307d94c68098d01c7bf9064c30ba86b6ecf0e0814b550793ab43e0052c9077eb3ae4c7cbbed49f6f4555167cfe2dcbb75c728c75b2dcc25855074
|
data/README.md
CHANGED
@@ -1,9 +1,10 @@
|
|
1
|
-
#
|
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
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
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
|
-
|
43
|
-
|
44
|
-
|
|
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
|
-
|
144
|
+
此刻
|
145
|
+
----
|
47
146
|
|
48
|
-
|
49
|
-
|
50
|
-
|QingtingApi.
|
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
|
-
|
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
|
-
|
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
|
-
|
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
|
-
|
72
|
-
|
73
|
-
|QingtingApi.
|
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
|
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
|
11
|
+
Copies Qingting configuration file to your application's initializer directory.
|
12
12
|
DESC
|
13
13
|
|
14
14
|
def copy_config_file
|
@@ -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
|