efront 3.24.2 → 3.24.7
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.
- package/apps/kugou/main.js +1 -3
- package/coms/basic/assert.js +10 -2
- package/coms/basic/extends_.js +13 -0
- package/coms/basic/loader.js +22 -17
- package/coms/basic/mark.js +155 -0
- package/coms/basic/queue.js +11 -14
- package/coms/basic/rest_.js +27 -0
- package/coms/basic/submit_.js +3 -1
- package/{apps → coms}/kugou/api.js +2 -0
- package/coms/kugou/buildList.js +7 -1
- package/coms/kugou/player.js +1 -0
- package/coms/kugou/song.html +1 -1
- package/coms/kugou/song.js +1 -0
- package/coms/kugou/song.less +12 -1
- package/coms/zimoli/cloneVisible.js +1 -0
- package/coms/zimoli/compile.js +64 -1
- package/coms/{compile → zimoli}/compile_test.js +0 -0
- package/coms/zimoli/data.js +8 -2
- package/coms/zimoli/input.js +6 -4
- package/coms/zimoli/render.js +1 -1
- package/package.json +1 -1
- package/public/efront.js +1 -1
- package/readme.md +0 -1
- package/apps/zimoli/book/main.js +0 -8
- package/apps/zimoli/broadcast/main.js +0 -8
- package/apps/zimoli/collection/add.html +0 -13
- package/apps/zimoli/collection/add.js +0 -14
- package/apps/zimoli/collection/add.less +0 -0
- package/apps/zimoli/collection/main.html +0 -0
- package/apps/zimoli/collection/main.js +0 -13
- package/apps/zimoli/collection/main.less +0 -8
- package/apps/zimoli/config.js +0 -14
- package/apps/zimoli/extra/pending.html +0 -1
- package/apps/zimoli/extra/pending.js +0 -8
- package/apps/zimoli/extra/pending.less +0 -15
- package/apps/zimoli/files/info.js +0 -7
- package/apps/zimoli/files/main.js +0 -108
- package/apps/zimoli/files/main.less +0 -26
- package/apps/zimoli/images/avatar.png +0 -0
- package/apps/zimoli/images/background.jpg +0 -0
- package/apps/zimoli/index.html +0 -42
- package/apps/zimoli/kugou/font/demo.css +0 -539
- package/apps/zimoli/kugou/font/demo_index.html +0 -1159
- package/apps/zimoli/kugou/font/iconfont.css +0 -189
- package/apps/zimoli/kugou/font/iconfont.eot +0 -0
- package/apps/zimoli/kugou/font/iconfont.js +0 -1
- package/apps/zimoli/kugou/font/iconfont.svg +0 -155
- package/apps/zimoli/kugou/font/iconfont.ttf +0 -0
- package/apps/zimoli/kugou/font/iconfont.woff +0 -0
- package/apps/zimoli/kugou/font/iconfont.woff2 +0 -0
- package/apps/zimoli/kugou/listen.html +0 -15
- package/apps/zimoli/kugou/listen.js +0 -37
- package/apps/zimoli/kugou/listen.less +0 -114
- package/apps/zimoli/kugou/mine.html +0 -53
- package/apps/zimoli/kugou/mine.js +0 -21
- package/apps/zimoli/kugou/mine.less +0 -106
- package/apps/zimoli/kugou/search.js +0 -109
- package/apps/zimoli/kugou/search.less +0 -50
- package/apps/zimoli/kugou/sing.js +0 -42
- package/apps/zimoli/kugou/sing.less +0 -93
- package/apps/zimoli/kugou/view.html +0 -39
- package/apps/zimoli/kugou/view.js +0 -17
- package/apps/zimoli/kugou/view.less +0 -84
- package/apps/zimoli/login/qq.js +0 -20
- package/apps/zimoli/login/qq_callback.html +0 -15
- package/apps/zimoli/main.js +0 -87
- package/apps/zimoli/main.less +0 -81
- package/apps/zimoli/message/chatList.js +0 -57
- package/apps/zimoli/message/chatList.less +0 -52
- package/apps/zimoli/message/commentList.js +0 -55
- package/apps/zimoli/message/commentList.less +0 -55
- package/apps/zimoli/message/informList.js +0 -69
- package/apps/zimoli/message/informList.less +0 -51
- package/apps/zimoli/message/main.js +0 -59
- package/apps/zimoli/message/main.less +0 -51
- package/apps/zimoli/message/praiseList.js +0 -3
- package/apps/zimoli/message/praiseList.less +0 -7
- package/apps/zimoli/nearby/main.js +0 -8
- package/apps/zimoli/skin/main.js +0 -47
- package/apps/zimoli/skin/main.less +0 -31
- package/apps/zimoli/user/getPassword.js +0 -82
- package/apps/zimoli/user/getPassword.less +0 -14
- package/apps/zimoli/user/login.html +0 -12
- package/apps/zimoli/user/login.js +0 -50
- package/apps/zimoli/user/login.less +0 -139
- package/apps/zimoli/user/profile-bg.jpg +0 -0
- package/apps/zimoli/user/profile.html +0 -32
- package/apps/zimoli/user/profile.js +0 -63
- package/apps/zimoli/user/profile.less +0 -50
- package/apps/zimoli/user/register.js +0 -20
- package/apps/zimoli/user/register.less +0 -3
- package/apps/zimoli/user/setting.js +0 -90
- package/apps/zimoli/user/setting.less +0 -11
- package/apps/zimoli/user/welcome.js +0 -36
- package/apps/zimoli/user/welcome.less +0 -136
- package/apps/zimoli/watch/main.html +0 -22
- package/apps/zimoli/watch/main.js +0 -76
- package/apps/zimoli/watch/main.less +0 -54
- package/apps/zimoli/yuanfen/main.js +0 -55
- package/apps/zimoli/yuanfen/main.json +0 -0
- package/coms/compile/breakcode.js +0 -78
- package/coms/compile/common.js +0 -688
- package/coms/compile/compile.js +0 -64
- package/coms/compile/keywords.js +0 -6
- package/coms/compile/namelist.js +0 -142
- package/coms/compile/namelist_test.js +0 -7
- package/coms/compile/required.js +0 -20
- package/coms/compile/scanner.js +0 -653
- package/coms/compile/scanner2.js +0 -921
- package/coms/compile/scanner2_test.js +0 -85
- package/coms/compile/scanner_test.js +0 -10
- package/coms/compile/washcode.js +0 -313
- package/coms/zimoli/mark.js +0 -70
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
var page = createVboxWithState(state);
|
|
2
|
-
page.innerHTML = listen;
|
|
3
|
-
|
|
4
|
-
var _images = [];
|
|
5
|
-
var _slider = slider(_images);
|
|
6
|
-
cross("get", "http://m.kugou.com/").done(function (xhr) {
|
|
7
|
-
var bodyHTML = String(xhr.responseText || xhr.responseText || "").replace(RegBodyExp, "$1").replace(RegScriptExp, "").replace(/\son/ig, " no").replace(/\s(src|href)/g, " s$1");
|
|
8
|
-
var sandbox = createElement(div);
|
|
9
|
-
sandbox.innerHTML = bodyHTML;
|
|
10
|
-
var images = [].map.call(sandbox.querySelector(".mod-slider").children[0].children, function (child) {
|
|
11
|
-
var a = child.children[0];
|
|
12
|
-
var src = a.children[0].getAttribute("ssrc");
|
|
13
|
-
var href = a.getAttribute("shref");
|
|
14
|
-
var image = createElement(div);
|
|
15
|
-
css(image, `background:url('${src}') center no-repeat;background-size:contain;`)
|
|
16
|
-
return image;
|
|
17
|
-
});
|
|
18
|
-
_images.splice(0, _images.length);
|
|
19
|
-
_images.push.apply(_images, images);
|
|
20
|
-
_slider.go(0).play();
|
|
21
|
-
});
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
render(page, {
|
|
25
|
-
go,
|
|
26
|
-
user,
|
|
27
|
-
slider() {
|
|
28
|
-
return _slider;
|
|
29
|
-
},
|
|
30
|
-
btn(a) {
|
|
31
|
-
return button(a, "white");
|
|
32
|
-
}
|
|
33
|
-
});
|
|
34
|
-
|
|
35
|
-
function main() {
|
|
36
|
-
return page;
|
|
37
|
-
}
|
|
@@ -1,114 +0,0 @@
|
|
|
1
|
-
@font-face {
|
|
2
|
-
font-family: "kugouicons";
|
|
3
|
-
@font-path: "kugou/font/";
|
|
4
|
-
src: url('@{font-path}iconfont.eot?t=1496068931776');
|
|
5
|
-
/* IE9*/
|
|
6
|
-
src: url('@{font-path}iconfont.eot?t=1496068931776#iefix') format('embedded-opentype'),
|
|
7
|
-
/* IE6-IE8 */
|
|
8
|
-
url('@{font-path}iconfont.woff?t=1496068931776') format('woff'),
|
|
9
|
-
/* chrome, firefox */
|
|
10
|
-
url('@{font-path}iconfont.ttf?t=1496068931776') format('truetype'),
|
|
11
|
-
/* chrome, firefox, opera, Safari, Android, iOS 4.2+*/
|
|
12
|
-
url('@{font-path}iconfont.svg?t=1496068931776#iconfont') format('svg');
|
|
13
|
-
/* iOS 4.1- */
|
|
14
|
-
}
|
|
15
|
-
|
|
16
|
-
.user-info {
|
|
17
|
-
width: 100%;
|
|
18
|
-
height: 80px;
|
|
19
|
-
padding: 20px 0 0 0;
|
|
20
|
-
background-color: #fff;
|
|
21
|
-
position: relative;
|
|
22
|
-
>div {
|
|
23
|
-
padding-left: 16px;
|
|
24
|
-
vertical-align: top;
|
|
25
|
-
&:nth-last-child(1) {
|
|
26
|
-
padding-right: 16px;
|
|
27
|
-
}
|
|
28
|
-
display: inline-block;
|
|
29
|
-
}
|
|
30
|
-
.name {
|
|
31
|
-
font-size: 16px;
|
|
32
|
-
line-height: 26px;
|
|
33
|
-
}
|
|
34
|
-
.level {
|
|
35
|
-
border-radius: 2px;
|
|
36
|
-
font-size: 10px;
|
|
37
|
-
padding: 0 2px;
|
|
38
|
-
color: #fa2;
|
|
39
|
-
border: 1px solid;
|
|
40
|
-
height: 12px;
|
|
41
|
-
line-height: 12px;
|
|
42
|
-
display: inline-block;
|
|
43
|
-
}
|
|
44
|
-
.avatar {
|
|
45
|
-
border: none;
|
|
46
|
-
width: 50px;
|
|
47
|
-
height: 50px;
|
|
48
|
-
border-radius: 25px;
|
|
49
|
-
}
|
|
50
|
-
}
|
|
51
|
-
|
|
52
|
-
i {
|
|
53
|
-
font-family: kugouicons;
|
|
54
|
-
font-style: normal;
|
|
55
|
-
}
|
|
56
|
-
|
|
57
|
-
.music-info {
|
|
58
|
-
background-color: #fff;
|
|
59
|
-
position: relative;
|
|
60
|
-
padding: 0 16px;
|
|
61
|
-
&:before {
|
|
62
|
-
content: "";
|
|
63
|
-
display: block;
|
|
64
|
-
height: 1px;
|
|
65
|
-
left: 16px;
|
|
66
|
-
right: 16px;
|
|
67
|
-
top: 0;
|
|
68
|
-
background-color: #eee;
|
|
69
|
-
position: absolute;
|
|
70
|
-
}
|
|
71
|
-
margin-bottom: 10px;
|
|
72
|
-
>.button {
|
|
73
|
-
display: inline-block;
|
|
74
|
-
padding: 10px 0;
|
|
75
|
-
width: 25%;
|
|
76
|
-
height: auto;
|
|
77
|
-
box-shadow: none;
|
|
78
|
-
i {
|
|
79
|
-
font-size: 24px;
|
|
80
|
-
color: #2299ed;
|
|
81
|
-
display: block;
|
|
82
|
-
}
|
|
83
|
-
}
|
|
84
|
-
}
|
|
85
|
-
.button-group{
|
|
86
|
-
background-color: #fff;
|
|
87
|
-
padding: 8px 0;
|
|
88
|
-
>.button{
|
|
89
|
-
display: inline-block;
|
|
90
|
-
height: auto;
|
|
91
|
-
padding: 8px 10px;
|
|
92
|
-
width: 33.3333%;
|
|
93
|
-
text-align: center;
|
|
94
|
-
box-shadow: none;
|
|
95
|
-
i{
|
|
96
|
-
color: #fff;
|
|
97
|
-
display: block;
|
|
98
|
-
width: 50px;
|
|
99
|
-
height: 50px;
|
|
100
|
-
margin: auto;
|
|
101
|
-
font-size: 26px;
|
|
102
|
-
border-radius: 50%;
|
|
103
|
-
line-height: 50px;
|
|
104
|
-
}
|
|
105
|
-
}
|
|
106
|
-
}
|
|
107
|
-
|
|
108
|
-
.slider{
|
|
109
|
-
position: relative;
|
|
110
|
-
>*{
|
|
111
|
-
vertical-align: top;
|
|
112
|
-
top:0;
|
|
113
|
-
}
|
|
114
|
-
}
|
|
@@ -1,53 +0,0 @@
|
|
|
1
|
-
<div ng-click="go('/user/profile')" class=user-info>
|
|
2
|
-
<div>${avatar}</div>
|
|
3
|
-
<div class=info>
|
|
4
|
-
<div ng-if=user.isLogin class=name ng-bind=user.name>不枝雀</div>
|
|
5
|
-
<div class=level>LV.5</div>
|
|
6
|
-
</div>
|
|
7
|
-
</div>
|
|
8
|
-
<div class=music-info>
|
|
9
|
-
<btn ng-click="go('/files/main')"><i></i>${i18n({zh:'本地音乐',en:'Local'})}</btn>
|
|
10
|
-
<btn ng-click="go('/collection/main')"><i></i>${i18n({zh:'我的收藏',en:'Favourite'})}</btn>
|
|
11
|
-
<btn ng-click="go('/extra/pending',this.innerText)"><i></i>${i18n('下载','Downloads')}</btn>
|
|
12
|
-
<btn ng-click="go('/extra/pending',this.innerText)"><i></i>${i18n('最近','Recent')}</btn>
|
|
13
|
-
</div>
|
|
14
|
-
<group>
|
|
15
|
-
<option ng-click="go('/extra/pending',this.innerText)">
|
|
16
|
-
<div>直播</div>
|
|
17
|
-
<div>
|
|
18
|
-
<avatar></avatar><span>林儿初新年快乐</span> <span>直播中</span>
|
|
19
|
-
</div>
|
|
20
|
-
<div><i></i></div>
|
|
21
|
-
</option>
|
|
22
|
-
<option ng-click="go('/extra/pending',this.innerText)">
|
|
23
|
-
<div>已购音乐</div>
|
|
24
|
-
<div>单曲1首</div>
|
|
25
|
-
</option>
|
|
26
|
-
<option ng-click="go('/extra/pending',this.innerText)">
|
|
27
|
-
<div>
|
|
28
|
-
K歌作品
|
|
29
|
-
</div>
|
|
30
|
-
</option>
|
|
31
|
-
<option ng-click="go('/extra/pending',this.innerText)">
|
|
32
|
-
<div>
|
|
33
|
-
音乐圈
|
|
34
|
-
</div>
|
|
35
|
-
</option>
|
|
36
|
-
<option ng-click="go('/extra/pending',this.innerText)">
|
|
37
|
-
<div>
|
|
38
|
-
自建歌单
|
|
39
|
-
</div>
|
|
40
|
-
</option ng-click="go('/extra/pending',this.innerText)">
|
|
41
|
-
<option ng-click="go('/extra/pending',this.innerText)">
|
|
42
|
-
<div>
|
|
43
|
-
收藏歌单
|
|
44
|
-
</div>
|
|
45
|
-
</option>
|
|
46
|
-
<option ng-click="go('/extra/pending',this.innerText)">
|
|
47
|
-
<div>
|
|
48
|
-
推广
|
|
49
|
-
</div>
|
|
50
|
-
<div>好音质,长续航,跪步专用耳机</div>
|
|
51
|
-
</option>
|
|
52
|
-
|
|
53
|
-
</group>
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
var page = createVboxWithState(state);
|
|
2
|
-
page.innerHTML = mine;
|
|
3
|
-
|
|
4
|
-
render(page, {
|
|
5
|
-
go,
|
|
6
|
-
user,
|
|
7
|
-
group,
|
|
8
|
-
option(node) {
|
|
9
|
-
var [head, body, foot] = node.children;
|
|
10
|
-
var opt = option(head, body, foot || true, 120);
|
|
11
|
-
return opt;
|
|
12
|
-
},
|
|
13
|
-
|
|
14
|
-
btn(a) {
|
|
15
|
-
return button(a, "white");
|
|
16
|
-
}
|
|
17
|
-
});
|
|
18
|
-
|
|
19
|
-
function main() {
|
|
20
|
-
return page;
|
|
21
|
-
}
|
|
@@ -1,106 +0,0 @@
|
|
|
1
|
-
@font-face {
|
|
2
|
-
font-family: "kugouicons";
|
|
3
|
-
@font-path: "kugou/font/";
|
|
4
|
-
src: url('@{font-path}iconfont.eot?t=1496068931776');
|
|
5
|
-
/* IE9*/
|
|
6
|
-
src: url('@{font-path}iconfont.eot?t=1496068931776#iefix') format('embedded-opentype'),
|
|
7
|
-
/* IE6-IE8 */
|
|
8
|
-
url('@{font-path}iconfont.woff?t=1496068931776') format('woff'),
|
|
9
|
-
/* chrome, firefox */
|
|
10
|
-
url('@{font-path}iconfont.ttf?t=1496068931776') format('truetype'),
|
|
11
|
-
/* chrome, firefox, opera, Safari, Android, iOS 4.2+*/
|
|
12
|
-
url('@{font-path}iconfont.svg?t=1496068931776#iconfont') format('svg');
|
|
13
|
-
/* iOS 4.1- */
|
|
14
|
-
}
|
|
15
|
-
|
|
16
|
-
.user-info {
|
|
17
|
-
width: 100%;
|
|
18
|
-
height: 80px;
|
|
19
|
-
padding: 20px 0 0 0;
|
|
20
|
-
background-color: #fff;
|
|
21
|
-
position: relative;
|
|
22
|
-
>div {
|
|
23
|
-
padding-left: 16px;
|
|
24
|
-
vertical-align: top;
|
|
25
|
-
&:nth-last-child(1) {
|
|
26
|
-
padding-right: 16px;
|
|
27
|
-
}
|
|
28
|
-
display: inline-block;
|
|
29
|
-
}
|
|
30
|
-
.name {
|
|
31
|
-
font-size: 16px;
|
|
32
|
-
line-height: 26px;
|
|
33
|
-
}
|
|
34
|
-
.level {
|
|
35
|
-
border-radius: 2px;
|
|
36
|
-
font-size: 10px;
|
|
37
|
-
padding: 0 2px;
|
|
38
|
-
color: #fa2;
|
|
39
|
-
border: 1px solid;
|
|
40
|
-
height: 12px;
|
|
41
|
-
line-height: 12px;
|
|
42
|
-
display: inline-block;
|
|
43
|
-
}
|
|
44
|
-
.avatar {
|
|
45
|
-
border: none;
|
|
46
|
-
width: 50px;
|
|
47
|
-
height: 50px;
|
|
48
|
-
border-radius: 25px;
|
|
49
|
-
}
|
|
50
|
-
}
|
|
51
|
-
|
|
52
|
-
i {
|
|
53
|
-
font-family: kugouicons;
|
|
54
|
-
font-style: normal;
|
|
55
|
-
}
|
|
56
|
-
|
|
57
|
-
.music-info {
|
|
58
|
-
background-color: #fff;
|
|
59
|
-
position: relative;
|
|
60
|
-
padding: 0 16px;
|
|
61
|
-
&:before {
|
|
62
|
-
content: "";
|
|
63
|
-
display: block;
|
|
64
|
-
height: 1px;
|
|
65
|
-
left: 16px;
|
|
66
|
-
right: 16px;
|
|
67
|
-
top: 0;
|
|
68
|
-
background-color: #eee;
|
|
69
|
-
position: absolute;
|
|
70
|
-
}
|
|
71
|
-
margin-bottom: 10px;
|
|
72
|
-
>.button {
|
|
73
|
-
display: inline-block;
|
|
74
|
-
padding: 10px 0;
|
|
75
|
-
width: 25%;
|
|
76
|
-
height: auto;
|
|
77
|
-
box-shadow: none;
|
|
78
|
-
i {
|
|
79
|
-
font-size: 24px;
|
|
80
|
-
color: #2299ed;
|
|
81
|
-
display: block;
|
|
82
|
-
}
|
|
83
|
-
}
|
|
84
|
-
}
|
|
85
|
-
.button-group{
|
|
86
|
-
background-color: #fff;
|
|
87
|
-
padding: 8px 0;
|
|
88
|
-
>div{
|
|
89
|
-
display: inline-block;
|
|
90
|
-
height: auto;
|
|
91
|
-
padding: 8px 10px;
|
|
92
|
-
width: 33.3333%;
|
|
93
|
-
text-align: center;
|
|
94
|
-
box-shadow: none;
|
|
95
|
-
i{
|
|
96
|
-
color: #fff;
|
|
97
|
-
display: block;
|
|
98
|
-
width: 50px;
|
|
99
|
-
height: 50px;
|
|
100
|
-
margin: auto;
|
|
101
|
-
font-size: 26px;
|
|
102
|
-
border-radius: 50%;
|
|
103
|
-
line-height: 50px;
|
|
104
|
-
}
|
|
105
|
-
}
|
|
106
|
-
}
|
|
@@ -1,109 +0,0 @@
|
|
|
1
|
-
|
|
2
|
-
var _titlebar = titlebar(i18n("搜索", 'Search'));
|
|
3
|
-
var inputBox = createWithClass(div, "input-box");
|
|
4
|
-
var textInput = createWithClass(input, "input");
|
|
5
|
-
appendChild(inputBox, textInput);
|
|
6
|
-
var page = createVboxWithState(state);
|
|
7
|
-
appendChild(page, inputBox);
|
|
8
|
-
var hot_keywords = [/*热搜*/], history_keywords = state().keywords || [];
|
|
9
|
-
var keywords_pad = createWithClass(div, "keyword-pad");
|
|
10
|
-
var updateKeywords = function () {
|
|
11
|
-
remove(keywords_pad.children);
|
|
12
|
-
var keywords = history_keywords.concat(hot_keywords).map(function (str) {
|
|
13
|
-
var label = div();
|
|
14
|
-
text(label, str);
|
|
15
|
-
onclick(label, function () {
|
|
16
|
-
textInput.value = str;
|
|
17
|
-
dispatch(textInput, "input");
|
|
18
|
-
});
|
|
19
|
-
return label;
|
|
20
|
-
});
|
|
21
|
-
appendChild(keywords_pad, keywords);
|
|
22
|
-
};
|
|
23
|
-
|
|
24
|
-
appendChild(page, keywords_pad);
|
|
25
|
-
var result_pad = createWithClass(div, "result-pad");
|
|
26
|
-
|
|
27
|
-
var updateHotKeyword = function () {
|
|
28
|
-
cross("get", "http://mobilecdn.kugou.com/api/v3/search/hot?format=jsonp&plat=0&count=30&callback=kgJSONP").done(function (xhr) {
|
|
29
|
-
var data = kugou$getJsonpData(xhr);
|
|
30
|
-
hot_keywords = data.info.map(a => a.keyword);
|
|
31
|
-
updateKeywords();
|
|
32
|
-
});
|
|
33
|
-
};
|
|
34
|
-
var searchIng = createElement(div);
|
|
35
|
-
text(searchIng, i18n("搜索中..", "Searching"));
|
|
36
|
-
var searchNoResult = createElement(div);
|
|
37
|
-
text(searchNoResult, "没有找到匹配的项");
|
|
38
|
-
var updateResultWithKeyword = function () {
|
|
39
|
-
var keyword = textInput.value;
|
|
40
|
-
if (updateResultWithKeyword.ing) updateResultWithKeyword.ing.abort();
|
|
41
|
-
remove(result_pad.children);
|
|
42
|
-
appendChild(result_pad, searchIng);
|
|
43
|
-
var url = `http://mobilecdn.kugou.com/api/v3/search/song?format=jsonp&keyword=${keyword}&page=1&pagesize=30&showtype=1&callback=kgJSONP`;
|
|
44
|
-
// var url = `http://songsearch.kugou.com/song_search_v2?callback=kgJSONP&keyword=${keyword}&page=1&pagesize=30&userid=-1&clientver=&platform=WebFilter&tag=em&filter=2&iscorrection=1&privilege_filter=0&_=${+new Date}`;
|
|
45
|
-
// `http://searchtip.kugou.com/getSearchTip?MusicTipCount=5&MVTipCount=2&albumcount=2&keyword=${encodeURIComponent(keyword)}&callback=kgJSONP&_=${+new Date}`;
|
|
46
|
-
updateResultWithKeyword.ing = cross("get", url).done(function (xhr) {
|
|
47
|
-
if (keyword !== textInput.value) return;
|
|
48
|
-
remove(result_pad.children);
|
|
49
|
-
var data = kugou$getJsonpData(xhr);
|
|
50
|
-
if (!data.info && data.lists instanceof Array) {
|
|
51
|
-
data.info = data.lists;
|
|
52
|
-
}
|
|
53
|
-
if (data.info && data.info.length) {
|
|
54
|
-
var songs = data.info.map(function (data) {
|
|
55
|
-
var singer = String(data.SingerName || data.singername);
|
|
56
|
-
var song = String(data.SongName || data.songname);
|
|
57
|
-
var block = createElement(div);
|
|
58
|
-
var _singer = createElement(div);
|
|
59
|
-
var _song = createElement(div);
|
|
60
|
-
singer = mark(singer.trim(), keyword);
|
|
61
|
-
song = mark(song.trim(), keyword);
|
|
62
|
-
_singer.innerHTML = singer;
|
|
63
|
-
_song.innerHTML = song;
|
|
64
|
-
appendChild(block, _singer, _song);
|
|
65
|
-
block.hash = data.FileHash || data.HQFileHash || data.SQFileHash || data.hash;
|
|
66
|
-
onclick(block, function () {
|
|
67
|
-
kugou$player.play(this.hash);
|
|
68
|
-
});
|
|
69
|
-
return block;
|
|
70
|
-
});
|
|
71
|
-
appendChild(result_pad, songs)
|
|
72
|
-
} else {
|
|
73
|
-
appendChild(result_pad, searchNoResult);
|
|
74
|
-
}
|
|
75
|
-
});
|
|
76
|
-
};
|
|
77
|
-
var input_timer = 0;
|
|
78
|
-
oninput(textInput, function (event) {
|
|
79
|
-
clearTimeout(input_timer);
|
|
80
|
-
var value = textInput.value;
|
|
81
|
-
if (value) {
|
|
82
|
-
updateResultWithKeyword.ing && updateResultWithKeyword.ing.abort();
|
|
83
|
-
input_timer = setTimeout(function () {
|
|
84
|
-
if (textInput.value === value) updateResultWithKeyword(value);
|
|
85
|
-
}, 300);
|
|
86
|
-
appendChild(page, result_pad);
|
|
87
|
-
remove(keywords_pad);
|
|
88
|
-
} else {
|
|
89
|
-
remove(result_pad);
|
|
90
|
-
appendChild(page, keywords_pad);
|
|
91
|
-
}
|
|
92
|
-
});
|
|
93
|
-
onback(function () {
|
|
94
|
-
textInput.value = "";
|
|
95
|
-
});
|
|
96
|
-
onappend(page, function () {
|
|
97
|
-
textInput.value = state.keyword || "";
|
|
98
|
-
dispatch(textInput, "input");
|
|
99
|
-
});
|
|
100
|
-
onremove(page, function () {
|
|
101
|
-
var _state = state();
|
|
102
|
-
_state.keyword = textInput.value;
|
|
103
|
-
state(_state);
|
|
104
|
-
});
|
|
105
|
-
updateHotKeyword();
|
|
106
|
-
page.initialStyle = 'margin-left:100%;z-index:1;';
|
|
107
|
-
function main() {
|
|
108
|
-
return page;
|
|
109
|
-
}
|
|
@@ -1,50 +0,0 @@
|
|
|
1
|
-
& {
|
|
2
|
-
padding-top: 50px;
|
|
3
|
-
height: 100%;
|
|
4
|
-
width: 100%;
|
|
5
|
-
background-color: #fff;
|
|
6
|
-
position: absolute;
|
|
7
|
-
left:0;
|
|
8
|
-
top:0;
|
|
9
|
-
right: 0;
|
|
10
|
-
bottom: 0;
|
|
11
|
-
z-index: 1;
|
|
12
|
-
}
|
|
13
|
-
|
|
14
|
-
.input-box {
|
|
15
|
-
height: 50px;
|
|
16
|
-
position: relative;
|
|
17
|
-
padding: 10px 12px;
|
|
18
|
-
>input {
|
|
19
|
-
height: 30px;
|
|
20
|
-
border: none;
|
|
21
|
-
width: 100%;
|
|
22
|
-
border-radius: 3px;
|
|
23
|
-
font-size: 14px;
|
|
24
|
-
padding: 0 10px;
|
|
25
|
-
border:1px solid #2ca2f9;
|
|
26
|
-
}
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
.keyword-pad {
|
|
30
|
-
>div {
|
|
31
|
-
padding: 10px 12px;
|
|
32
|
-
background-color: #fff;
|
|
33
|
-
}
|
|
34
|
-
>div+div {
|
|
35
|
-
border-top: 1px solid #ccc;
|
|
36
|
-
}
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
.result-pad {
|
|
40
|
-
b{
|
|
41
|
-
color: rgb(44,162,149);
|
|
42
|
-
}
|
|
43
|
-
>div {
|
|
44
|
-
padding: 10px 12px;
|
|
45
|
-
background-color: #fff;
|
|
46
|
-
}
|
|
47
|
-
>div+div {
|
|
48
|
-
border-top: 1px solid #ccc;
|
|
49
|
-
}
|
|
50
|
-
}
|
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
var page = createVboxWithState(state);
|
|
2
|
-
page.innerHTML = `
|
|
3
|
-
<div class=option-buttons>
|
|
4
|
-
<div ng-click="go('/extra/pending',this.innerText)">
|
|
5
|
-
<div class=icon></div>
|
|
6
|
-
<div class=name>${i18n('发现', "Discover")}</div>
|
|
7
|
-
</div>
|
|
8
|
-
<div ng-click="go('/extra/pending',this.innerText)">
|
|
9
|
-
<div class=icon style=font-size:50px;></div>
|
|
10
|
-
<div class=name>${i18n('我要唱', "Sing by Myself")}</div>
|
|
11
|
-
</div>
|
|
12
|
-
<div ng-click="go('/extra/pending',this.innerText)">
|
|
13
|
-
<div class=icon></div>
|
|
14
|
-
<div class=name>${i18n('我的', 'Mine')}</div>
|
|
15
|
-
</div>
|
|
16
|
-
</div>
|
|
17
|
-
<div class=news-slider>
|
|
18
|
-
<div class=head ng-click="go('/extra/pending',this.innerText)">
|
|
19
|
-
<span>${i18n('头条', 'First Line')}</span>
|
|
20
|
-
${i18n("装了这个app,不用再去ktv", "With this app installed, you don't have to go to KTV anymore.")}
|
|
21
|
-
<i></i>
|
|
22
|
-
</div>
|
|
23
|
-
</div>
|
|
24
|
-
<div class=slider-options>
|
|
25
|
-
<div ng-click="go('/extra/pending',this.innerText)">${i18n('关注', 'Follow')}</div>
|
|
26
|
-
<div ng-click="go('/extra/pending',this.innerText)">${i18n('好友', 'Friends')}</div>
|
|
27
|
-
<div ng-click="go('/extra/pending',this.innerText)">${i18n('热门', 'Hot')}</div>
|
|
28
|
-
<div ng-click="go('/extra/pending',this.innerText)">${i18n('附近', 'Nearby')}</div>
|
|
29
|
-
</div>
|
|
30
|
-
<div class=message-list>
|
|
31
|
-
<div></div>
|
|
32
|
-
<div></div>
|
|
33
|
-
<div></div>
|
|
34
|
-
<div></div>
|
|
35
|
-
</div>
|
|
36
|
-
`.replace(/>\s+</g, "><");
|
|
37
|
-
render(page, {
|
|
38
|
-
go
|
|
39
|
-
});
|
|
40
|
-
function main() {
|
|
41
|
-
return page;
|
|
42
|
-
}
|
|
@@ -1,93 +0,0 @@
|
|
|
1
|
-
@font-face {
|
|
2
|
-
font-family: "kugouicons";
|
|
3
|
-
@font-path: "kugou/font/";
|
|
4
|
-
src: url('@{font-path}iconfont.eot?t=1496068931776');
|
|
5
|
-
/* IE9*/
|
|
6
|
-
src: url('@{font-path}iconfont.eot?t=1496068931776#iefix') format('embedded-opentype'),
|
|
7
|
-
/* IE6-IE8 */
|
|
8
|
-
url('@{font-path}iconfont.woff?t=1496068931776') format('woff'),
|
|
9
|
-
/* chrome, firefox */
|
|
10
|
-
url('@{font-path}iconfont.ttf?t=1496068931776') format('truetype'),
|
|
11
|
-
/* chrome, firefox, opera, Safari, Android, iOS 4.2+*/
|
|
12
|
-
url('@{font-path}iconfont.svg?t=1496068931776#iconfont') format('svg');
|
|
13
|
-
/* iOS 4.1- */
|
|
14
|
-
}
|
|
15
|
-
|
|
16
|
-
i {
|
|
17
|
-
font-family: kugouicons;
|
|
18
|
-
font-style: normal;
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
.option-buttons {
|
|
22
|
-
padding: 10px 0;
|
|
23
|
-
text-align: center;
|
|
24
|
-
background-color: #fff;
|
|
25
|
-
>div {
|
|
26
|
-
display: inline-block;
|
|
27
|
-
width: 30%;
|
|
28
|
-
vertical-align: middle;
|
|
29
|
-
>.icon {
|
|
30
|
-
line-height: 60px;
|
|
31
|
-
margin: 0 auto;
|
|
32
|
-
font-size: 40px;
|
|
33
|
-
background: #666;
|
|
34
|
-
border-radius: 50%;
|
|
35
|
-
width: 1em;
|
|
36
|
-
height: 1em;
|
|
37
|
-
}
|
|
38
|
-
>.name {
|
|
39
|
-
height: 20px;
|
|
40
|
-
}
|
|
41
|
-
}
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
.news-slider {
|
|
45
|
-
line-height: 40px;
|
|
46
|
-
background-color: #fff;
|
|
47
|
-
position: relative;
|
|
48
|
-
padding: 0 16px;
|
|
49
|
-
margin-bottom: 10px;
|
|
50
|
-
&:after {
|
|
51
|
-
content: "";
|
|
52
|
-
display: block;
|
|
53
|
-
position: absolute;
|
|
54
|
-
left: 16px;
|
|
55
|
-
right: 16px;
|
|
56
|
-
top: 0;
|
|
57
|
-
height: 1px;
|
|
58
|
-
background-color: #eee;
|
|
59
|
-
}
|
|
60
|
-
>.head {
|
|
61
|
-
>span {
|
|
62
|
-
background-color: #c44;
|
|
63
|
-
color: #fff;
|
|
64
|
-
font-weight: 600;
|
|
65
|
-
}
|
|
66
|
-
padding: 0 2px;
|
|
67
|
-
}
|
|
68
|
-
|
|
69
|
-
>div {
|
|
70
|
-
display: inline-block;
|
|
71
|
-
}
|
|
72
|
-
}
|
|
73
|
-
|
|
74
|
-
.slider-options {
|
|
75
|
-
background-color: #fff;
|
|
76
|
-
text-align: center;
|
|
77
|
-
border-bottom: 1px solid #eee;
|
|
78
|
-
>div {
|
|
79
|
-
width: 25%;
|
|
80
|
-
line-height: 40px;
|
|
81
|
-
display: inline-block;
|
|
82
|
-
}
|
|
83
|
-
}
|
|
84
|
-
|
|
85
|
-
.message-list {
|
|
86
|
-
>div{
|
|
87
|
-
height: 100px;
|
|
88
|
-
background: #fff;
|
|
89
|
-
}
|
|
90
|
-
>div+div {
|
|
91
|
-
margin-top: 10px;
|
|
92
|
-
}
|
|
93
|
-
}
|
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
<div class=rank-area>
|
|
2
|
-
<div ng-click="go('/extra/pending',this.innerText)">
|
|
3
|
-
<div class=head>${i18n("小时榜", "Rank")}</div>
|
|
4
|
-
<div class=disp>${i18n("统计本小时主播的收礼排名", "Statistical Hour Anchor's Gift Ranking.")}</div>
|
|
5
|
-
</div>
|
|
6
|
-
<div>
|
|
7
|
-
<div class=avatar></div>
|
|
8
|
-
<div class=avatar></div>
|
|
9
|
-
<div class=avatar></div>
|
|
10
|
-
</div>
|
|
11
|
-
</div>
|
|
12
|
-
<div class=filter-buttons>
|
|
13
|
-
<div ng-click="go('/extra/pending',this.innerText)">
|
|
14
|
-
<div class=icon></div>
|
|
15
|
-
<div class=name>${i18n("新秀", "Rising")}</div>
|
|
16
|
-
</div>
|
|
17
|
-
<div ng-click="go('/extra/pending',this.innerText)">
|
|
18
|
-
<div class=icon></div>
|
|
19
|
-
<div class=name>${i18n("附近", "Nearby")}</div>
|
|
20
|
-
</div>
|
|
21
|
-
<div ng-click="go('/extra/pending',this.innerText)">
|
|
22
|
-
<div class=icon></div>
|
|
23
|
-
<div class=name>${i18n("好声音", "Pleasant")}</div>
|
|
24
|
-
</div>
|
|
25
|
-
<div ng-click="go('/extra/pending',this.innerText)">
|
|
26
|
-
<div class=icon></div>
|
|
27
|
-
<div class=name>${i18n("搜索", "Search")}</div>
|
|
28
|
-
</div>
|
|
29
|
-
<div ng-click="go('/extra/pending',this.innerText)">
|
|
30
|
-
<div class=icon></div>
|
|
31
|
-
<div class=name>${i18n("我的", "Mine")}</div>
|
|
32
|
-
</div>
|
|
33
|
-
</div>
|
|
34
|
-
<lattice class=video-list v-src=src min-width=180>
|
|
35
|
-
<div ng-click="go('/watch/main',this.$scope)">
|
|
36
|
-
<div class=img ng-style="{backgroundImage:'url(\\''+imgPath+'\\')'}"></div>
|
|
37
|
-
<div ng-bind=nickName></div>
|
|
38
|
-
</div>
|
|
39
|
-
</lattice>
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
var page = createVboxWithState(state);
|
|
2
|
-
page.innerHTML = view;
|
|
3
|
-
var scope = {
|
|
4
|
-
go,
|
|
5
|
-
src: [],
|
|
6
|
-
lattice
|
|
7
|
-
};
|
|
8
|
-
render(page, scope);
|
|
9
|
-
once("append")(page, function () {
|
|
10
|
-
kugou$kugouapi.fanxingList().done(function (response) {
|
|
11
|
-
var res = JSON.parse(response.responseText);
|
|
12
|
-
scope.src = res.data.list;
|
|
13
|
-
});
|
|
14
|
-
});
|
|
15
|
-
function main() {
|
|
16
|
-
return page;
|
|
17
|
-
}
|