Remove music player js because that is not the focus of EnglishPal. If people want to listen music, they have better options than EnglishPal.
parent
b0d80096d6
commit
ba2ff7dee2
File diff suppressed because one or more lines are too long
|
@ -1,84 +0,0 @@
|
||||||
"use strict";
|
|
||||||
|
|
||||||
function _objectSpread(a) {
|
|
||||||
for (var b = 1; b < arguments.length; b++) {
|
|
||||||
var c = null == arguments[b] ? {} : arguments[b], d = Object.keys(c);
|
|
||||||
"function" == typeof Object.getOwnPropertySymbols && (d = d.concat(Object.getOwnPropertySymbols(c).filter(function (a) {
|
|
||||||
return Object.getOwnPropertyDescriptor(c, a).enumerable
|
|
||||||
}))), d.forEach(function (b) {
|
|
||||||
_defineProperty(a, b, c[b])
|
|
||||||
})
|
|
||||||
}
|
|
||||||
return a
|
|
||||||
}
|
|
||||||
|
|
||||||
function _defineProperty(a, b, c) {
|
|
||||||
return b in a ? Object.defineProperty(a, b, {
|
|
||||||
value: c,
|
|
||||||
enumerable: !0,
|
|
||||||
configurable: !0,
|
|
||||||
writable: !0
|
|
||||||
}) : a[b] = c, a
|
|
||||||
}
|
|
||||||
|
|
||||||
class MetingJSElement extends HTMLElement {
|
|
||||||
connectedCallback() {
|
|
||||||
window.APlayer && window.fetch && (this._init(), this._parse())
|
|
||||||
}
|
|
||||||
|
|
||||||
disconnectedCallback() {
|
|
||||||
this.lock || this.aplayer.destroy()
|
|
||||||
}
|
|
||||||
|
|
||||||
_camelize(a) {
|
|
||||||
return a.replace(/^[_.\- ]+/, "").toLowerCase().replace(/[_.\- ]+(\w|$)/g, (a, b) => b.toUpperCase())
|
|
||||||
}
|
|
||||||
|
|
||||||
_init() {
|
|
||||||
let a = {};
|
|
||||||
for (let b = 0; b < this.attributes.length; b += 1) a[this._camelize(this.attributes[b].name)] = this.attributes[b].value;
|
|
||||||
let b = ["server", "type", "id", "api", "auth", "auto", "lock", "name", "title", "artist", "author", "url", "cover", "pic", "lyric", "lrc"];
|
|
||||||
this.meta = {};
|
|
||||||
for (var c = 0; c < b.length; c++) {
|
|
||||||
let d = b[c];
|
|
||||||
this.meta[d] = a[d], delete a[d]
|
|
||||||
}
|
|
||||||
this.config = a, this.api = this.meta.api || window.meting_api || "https://api.i-meto.com/meting/api?server=:server&type=:type&id=:id&r=:r", this.meta.auto && this._parse_link()
|
|
||||||
}
|
|
||||||
|
|
||||||
_parse_link() {
|
|
||||||
let a = [["music.163.com.*song.*id=(\\d+)", "netease", "song"], ["music.163.com.*album.*id=(\\d+)", "netease", "album"], ["music.163.com.*artist.*id=(\\d+)", "netease", "artist"], ["music.163.com.*playlist.*id=(\\d+)", "netease", "playlist"], ["music.163.com.*discover/toplist.*id=(\\d+)", "netease", "playlist"], ["y.qq.com.*song/(\\w+).html", "tencent", "song"], ["y.qq.com.*album/(\\w+).html", "tencent", "album"], ["y.qq.com.*singer/(\\w+).html", "tencent", "artist"], ["y.qq.com.*playsquare/(\\w+).html", "tencent", "playlist"], ["y.qq.com.*playlist/(\\w+).html", "tencent", "playlist"], ["xiami.com.*song/(\\w+)", "xiami", "song"], ["xiami.com.*album/(\\w+)", "xiami", "album"], ["xiami.com.*artist/(\\w+)", "xiami", "artist"], ["xiami.com.*collect/(\\w+)", "xiami", "playlist"]];
|
|
||||||
for (var b = 0; b < a.length; b++) {
|
|
||||||
let c = a[b], d = new RegExp(c[0]), e = d.exec(this.meta.auto);
|
|
||||||
if (null !== e) return this.meta.server = c[1], this.meta.type = c[2], void (this.meta.id = e[1])
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
_parse() {
|
|
||||||
if (this.meta.url) {
|
|
||||||
let a = {
|
|
||||||
name: this.meta.name || this.meta.title || "Audio name",
|
|
||||||
artist: this.meta.artist || this.meta.author || "Audio artist",
|
|
||||||
url: this.meta.url,
|
|
||||||
cover: this.meta.cover || this.meta.pic,
|
|
||||||
lrc: this.meta.lrc || this.meta.lyric || "",
|
|
||||||
type: this.meta.type || "auto"
|
|
||||||
};
|
|
||||||
return a.lrc || (this.meta.lrcType = 0), this.innerText && (a.lrc = this.innerText, this.meta.lrcType = 2), void this._loadPlayer([a])
|
|
||||||
}
|
|
||||||
let a = this.api.replace(":server", this.meta.server).replace(":type", this.meta.type).replace(":id", this.meta.id).replace(":auth", this.meta.auth).replace(":r", Math.random());
|
|
||||||
fetch(a).then(a => a.json()).then(a => this._loadPlayer(a))
|
|
||||||
}
|
|
||||||
|
|
||||||
_loadPlayer(a) {
|
|
||||||
let b = {audio: a, mutex: !0, lrcType: this.meta.lrcType || 3, storageName: "metingjs"};
|
|
||||||
if (a.length) {
|
|
||||||
let a = _objectSpread({}, b, this.config);
|
|
||||||
for (let b in a) ("true" === a[b] || "false" === a[b]) && (a[b] = "true" === a[b]);
|
|
||||||
let c = document.createElement("div");
|
|
||||||
a.container = c, this.appendChild(c), this.aplayer = new APlayer(a)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
console.log("\n %c MetingJS v2.0.1 %c https://github.com/metowolf/MetingJS \n", "color: #fadfa3; background: #030307; padding:5px 0;", "background: #fadfa3; padding:5px 0;"), window.customElements && !window.customElements.get("meting-js") && (window.MetingJSElement = MetingJSElement, window.customElements.define("meting-js", MetingJSElement));
|
|
|
@ -39,7 +39,7 @@
|
||||||
<p><b>收集生词吧</b> (可以在正文中划词,也可以复制黏贴)</p>
|
<p><b>收集生词吧</b> (可以在正文中划词,也可以复制黏贴)</p>
|
||||||
<form method="post" action="/{{ username }}">
|
<form method="post" action="/{{ username }}">
|
||||||
<textarea name="content" id="selected-words" rows="10" cols="120"></textarea><br/>
|
<textarea name="content" id="selected-words" rows="10" cols="120"></textarea><br/>
|
||||||
<input type="submit" value="get 所有词的频率"/>
|
<input type="submit" value="把生词加入我的生词库"/>
|
||||||
<input type="reset" value="清除"/>
|
<input type="reset" value="清除"/>
|
||||||
</form>
|
</form>
|
||||||
{% if session.get['thisWord'] %}
|
{% if session.get['thisWord'] %}
|
||||||
|
|
Loading…
Reference in New Issue