qingting_api 0.1.5 → 0.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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
|