Commit a1dea566 by 庄欣

fastquote

parent 02fa32f4
File mode changed from 100644 to 100755
File mode changed from 100644 to 100755
File mode changed from 100644 to 100755
File mode changed from 100644 to 100755
console.log("asdfasdfasdsssss fasdf");
chrome.tabs.getSelected(null, function(tab) {
console.log("asdfasdfasdfasdf");
console.log(tab);
chrome.tabs.sendRequest(tab.id, {url: tab.url}, function(response) {
// console.log(response);
console.log(response);
});
});
......@@ -66,7 +66,11 @@ function openUi() {
$($(_).find("img")[0]).addClass("focus");
}
isFrist = false;
$($(_).children().find("input[type=checkbox]")[0]).val(images[i].url);
if (images[i].isVideo) {
$($(_).children().find("input[type=checkbox]")[0]).val(images[i].videoUrl);
} else {
$($(_).children().find("input[type=checkbox]")[0]).val(images[i].url);
}
$($(_).children().find("input[type=checkbox]")[0]).attr("fileid", images[i].name);
$($(_).find(".fileid")[0]).text(images[i].name);
doms.push(_.html());
......@@ -146,40 +150,48 @@ function getImages() {
var imgSrc = "";
var worksString = window.location.href
if (worksString.length > 0 && worksString.indexOf("works") > -1) {
var start = worksString.indexOf("works/") + "works/".length;
var end = worksString.indexOf("?");
if (end <= -1) {
end = worksString.length;
}
var worksId = worksString.substring(start, end)
worksId = base64Decode(worksId);
if (isNaN(worksId)) {
worksId = base64Decode(worksId);
}
}
userNickname = $($(".user-info > span.nickname")[0]).text();
$.each(lists, (i,n) => {
let fullUrl = n.currentSrc;
if (fullUrl === "") {
fullUrl === $(n).attr("data-original");
}
var videoUrl = ""
var isVideo = false;
if (fullUrl !== "") {
urls = fullUrl .split("!");
imgSrc = urls[0];
if (imgSrc.indexOf("videos.mepai.me") < 0) {
if (records.indexOf(imgSrc) < 0) {
if (userId === "") {
var idStrings = imgSrc.match(reg);
if (idStrings !== undefined && idStrings.length > 0) {
userId = idStrings[0].replace(/\//g, "");
}
if (imgSrc.indexOf("videos.mepai.me") !== -1) {
imgSrc = imgSrc.replaceAll("https://images.mepai.me", "")
imgSrc = imgSrc.replaceAll("https://videos.mepai.me", "")
videoUrl =imgSrc.replaceAll("https//videos.mepai.me", "")
imgSrc = $("video").attr("poster").split("!")[0];
isVideo = true;
}
if (records.indexOf(imgSrc) < 0) {
if (userId === "") {
var idStrings = imgSrc.match(reg);
if (idStrings !== undefined && idStrings.length > 0) {
userId = idStrings[0].replace(/\//g, "");
}
records.push(imgSrc);
images.push({
name: worksId + "-" + userNickname + '-' +userId + "-" + index(),
url: imgSrc
});
}
records.push(imgSrc);
images.push({
name: worksId + "-" + userNickname + '-' +userId + "-" + index(),
url: imgSrc,
videoUrl: videoUrl,
isVideo: isVideo
});
}
} else {
console.log($(n))
......@@ -231,41 +243,86 @@ function changeFocus() {
function downloadAll() {
if (confirm("点击确定开始下载!")) {
var q = $("select[name=quality]").val();
var ext = "";
if (q == 720) {
ext = "!720w.jpg";
}
$.each($(body).find("input[type='checkbox']:checked"), (i,n) => {
downloadResource($(n).val() + ext, $(n).attr("fileid") + "-" + q);
var src = $(n).val();
var isVideo = false;
if (src.indexOf(".mp4") > -1) {
isVideo = true;
}
var ext = "";
if (q == 720) {
if (isVideo) {
ext = "!HD.mp4";
} else {
ext = "!720w.jpg";
}
}
if (q == 1200) {
if (isVideo) {
alert("视频下载仅支持720p或者源视频!")
return
}
ext = "!1200w.jpg"
}
var downloadUrl = $(n).val() + ext;
if (isVideo) {
$.getJSON("https://api.mepai.me/goms/video/sign?path=" + downloadUrl, function(res) {
downloadResource(res.data, $(n).attr("fileid") + "-" + q, true, $(n));
})
} else {
downloadResource(downloadUrl, $(n).attr("fileid") + "-" + q, false, null);
}
});
}
}
function downloadResource(url, name){
var xhr = new XMLHttpRequest();
xhr.open('GET', url, true);
xhr.responseType = 'blob';
xhr.onload = function(e) {
if (this.status == 200) {
// get binary data as a response
var blob = this.response;
const url = window.URL.createObjectURL(blob);
var link = document.createElement('a');
link.href= url;
link.target = "_blank";
link.referrerpolicy = "origin";
var filename = name + ".jpg";
link.setAttribute('download', filename);
evt = document.createEvent('MouseEvents');
evt.initEvent('click', true, true);
link.dispatchEvent(evt);
function downloadResource(url, name, isVideo, target){
if (!isVideo) {
var xhr = new XMLHttpRequest();
xhr.open('GET', url, true);
xhr.responseType = 'blob';
xhr.onload = function(e) {
if (this.status == 200) {
// get binary data as a response
var blob = this.response;
const url = window.URL.createObjectURL(blob);
var link = document.createElement('a');
link.href= url;
var filename = name + ".jpg";
link.setAttribute('download', filename);
evt = document.createEvent('MouseEvents');
evt.initEvent('click', true, true);
link.dispatchEvent(evt);
}
};
xhr.onerror = function (e) {
downloadResource("https://api.mepai.me/manage/works/proxy?uri="+url, name, false, null);
}
};
xhr.onerror = function (e) {
downloadResource("https://api.mepai.me/manage/works/proxy?uri=" + url, name);
xhr.send();
} else {
var xhr = new XMLHttpRequest();
xhr.open('GET', url, true);
xhr.responseType = 'blob';
var progressTxt = document.createElement("label");
$(target).parent("div").append(progressTxt);
xhr.onprogress = function (e) {
$(progressTxt).html(e.loaded + "/" + e.total);
}
xhr.onload = function(e) {
if (this.status == 200) {
var link = document.createElement('a');
var blob = this.response;
const resdata = window.URL.createObjectURL(blob);
link.href = resdata;
filename = name + ".mp4";
link.setAttribute('download', filename);
link.click();
}
}
xhr.send();
}
xhr.send();
}
......
File mode changed from 100644 to 100755
......@@ -5,7 +5,7 @@
<div class="item">
<img src="" />
<div class="mark">
<div><input type="checkbox" fileid=""/></div>
<div style="display: flex;font-size: 10px"><input type="checkbox" fileid=""/></div>
<div><label class="fileId"></label></div>
</div>
</div>
......@@ -18,7 +18,8 @@
<div style="width: 120px">
<select name="quality" style="width: 120px;height:30px;background-color:
#ffeeb8;font-size: 16px;border: 1px #ded748 solid">
<option value="720">720P</option>
<option value="720">720p</option>
<option value="1200">1200p(不支持视频)</option>
<option value="raw">原图</option>
</select>
</div>
......
chrome.runtime.onMessage.addListener(
function(request, sender, sendResponse) {
chrome.cookies.get({
url: "https://www.mepai.me/",
name: "auth"
}, function(cookies) {
var token = {access_token: cookies.value};
console.log(token)
sendResponse(token);
return true;
}
);
return true;
}
);
\ No newline at end of file
This source diff could not be displayed because it is too large. You can view the blob instead.
#__extend_fast_quote div.icon {
position: fixed;
right: 20px;
bottom: 140px;
background-color: #fffccc;
border-radius: 30px;
width: 50px;
height: 50px;
border: 1px solid #ff8528;
display: flex;
text-align: center;
justify-items: center;
justify-content: center;
align-items: center;
align-content: center;
}
#__extend_fast_quote div.icon img {
width: 50px;
height: 50px;
}
#__extend_fast_quote #__extend_fastquote_container #_____mp_fastquote {
position: fixed;
width: 500px;
height: 70%;
top: 10%;
z-index: 999;
background-image: linear-gradient(125deg, rgb(239 223 143), rgb(235 209 84), rgb(122 60 25));
background-size: 400%;
left:calc((100% - 500px)/2);
color: #23283f;
padding-top: 10px;
}
#__extend_fast_quote #__extend_fastquote_container #_____mp_fastquote div{
margin: 0 auto;
}
#__extend_fast_quote #__extend_fastquote_container #_____mp_fastquote .buttons {
display: flex;
justify-content: center;
width: 100%;
}
#__extend_fast_quote #__extend_fastquote_container #_____mp_fastquote .buttons button {
width: 30%;
height: 70%;
}
#__extend_fast_quote #__extend_fastquote_container #_____mp_fastquote .form-control {
display: block;
width: 100%;
font-size: 1rem;
font-weight: 400;
line-height: 1.5;
color: rgb(33, 37, 41);
background-color: rgb(255, 255, 255);
background-clip: padding-box;
appearance: none;
padding: 0.375rem 0.75rem;
border-width: 1px;
border-style: solid;
border-color: rgb(206, 212, 218);
border-image: initial;
border-radius: 0.375rem;
transition: border-color 0.15s ease-in-out 0s, box-shadow 0.15s ease-in-out 0s;
}
#__extend_fast_quote #__extend_fastquote_container #_____mp_fastquote .form-group {
margin-top: 20px;
padding-left: 10px;
padding-right: 10px;
}
#__extend_fast_quote #__extend_fastquote_container #_____mp_fastquote .btn-primary {
background-color: #3c8dbc;
border-color: #367fa9;
}
#__extend_fast_quote #__extend_fastquote_container #_____mp_fastquote .btn {
-webkit-box-shadow: none;
box-shadow: none;
border: 1px solid transparent;
display: inline-block;
padding: 6px 12px;
margin-bottom: 0;
font-size: 14px;
font-weight: normal;
line-height: 1.42857143;
text-align: center;
white-space: nowrap;
vertical-align: middle;
-ms-touch-action: manipulation;
touch-action: manipulation;
cursor: pointer;
-webkit-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
background-image: none;
border-radius: 4px;
color: #ffffff;
}
\ No newline at end of file
<div id="_____mp_fastquote" class="row">
<div class="col-12">
<h4>添加有米使用记录</h4>
</div>
<div class="form-group">
<label>作品id</label>
<input type="text" disabled id="worksId" class="form-control"/>
</div>
<div class="form-group">
<label>在哪里使用</label>
<select id="channelId" class="form-control">
<option value="">请选择</option>
</select>
</div>
<div class="form-group">
<label>在第三方平台上的标题(选填)</label>
<input type="text" class="form-control" id="title"/>
</div>
<div class="form-group">
<label>使用本组作品的张数</label>
<input type="number" value="1" id="quoteCount" class="form-control"/>
</div>
<div class="form-group">
<label>使用时间</label>
<input type="text" id="today" class="form-control"/>
</div>
<div class="form-group">
<label>过审情况</label>
<select class="form-control" id="status">
<option value="0">待审核</option>
<option value="1" selected>已审核</option>
</select>
</div>
<div class="form-group">
<label>责编</label>
<select class="form-control" id="admins">
</select>
</div>
<div class="buttons form-group">
<button class="btn btn-primary" id="send">提交</button>
</div>
</div>
let ACCESS_TOKEN = "";
let host ="https://api.mepai.me/manage";
let UI = chrome.runtime.getURL("/html/index.html")
let icon = chrome.runtime.getURL("/images/icon.png")
let extendDom = document.createElement("div");
extendDom.id = "__extend_fast_quote"
extendDom.innerHTML = "<div class='icon'><div><img src='" + icon + "'/></div></div>";
extendDom.style = "z-index:999;";
var body = document.getElementById("__nuxt");
fetch(UI).then(function(res) {
return res.text();
}).then(html => {
let container = document.createElement("div");
container.id = "__extend_fastquote_container";
container.innerHTML = html;
extendDom.appendChild(container)
body.appendChild(extendDom);
}).then(() => {
});
function showUi() {
}
function hiddenUi() {
}
function getWorksId() {
let url = window.location.href;
if (url.indexOf("works") > -1 && url.indexOf("list") === -1) {
let pre1 = /\works\/\S*\?/g;
let pre2 = /\works\/\S*\?*/g;
if (url.indexOf("?") > -1) {
worksString = url.match(pre1);
} else {
worksString = url.match(pre2);
}
let worksId = null;
if (worksString !== undefined && worksString !== null && worksString.length > 0) {
worksId = worksString[0].replace("works/", "");
worksId = worksId.replace("?", "");
worksId = base64Decode(worksId);
}
return worksId;
}
return 0;
}
function base64Decode(data) {
if (!isNaN(data)) {
return data;
}
var rv = window.atob(data);
rv = escape(rv);
rv = decodeURIComponent(rv);
return rv;
}
var getChannels = (callback) => {
this.getData(host + "/works/channels", {}, (res) => {
callback(res.data);
});
}
var getManagers = (callback) => {
this.getData(host + "/user/managers", {}, (res) => {
callback(res.data);
})
}
var getData = (api, data, callback) => {
api = api + "?";
for (var i in data) {
api = api + "&" + i + "=" + data[i]
}
var header = {
method: "GET",
headers: {
accesstoken: ACCESS_TOKEN
},
};
fetch(api, header).then(res => {
return res.json()
}).then(final => {
if (final.code.toString() === "100002") {
// $this.err = "请先登录,若登录账号没有操作权限,请向公司管理员申请";
} else if (final.code.toString() === "100001") {
// $this.err = "";
}
return callback(final);
}).catch(e => {
console.log(e);
});
}
var sendData = (api, data, callback) => {
var $this = this;
var header = {
method: "POST",
headers: {
"accesstoken": ACCESS_TOKEN,
"Content-Type": "application/json; charset=UTF-8",
"Accept-Encoding": "gzip, deflate, br"
},
keepalive: true,
body: JSON.stringify(data)
};
fetch(api, header).then(res => {
$this.loading = false;
return res.json()
}).then(final => {
return callback(final);
})
}
var getToday = () => {
var dt = new Date();
var month = dt.getMonth() + 1;
var day = dt.getDay();
if (month < 10) {
month = "0" + month.toString();
}
if (day < 10) {
day = "0" + day.toString();
}
return dt.getFullYear() + "-" + month + "-" + day;
}
function getWorksIdByBase64(url) {
let pre1 = /\works\/\S*\?/g;
let pre2 = /\works\/\S*\?*/g;
if (url.indexOf("?") > -1) {
worksString = url.match(pre1);
} else {
worksString = url.match(pre2);
}
let worksId = null;
if (worksString !== undefined && worksString !== null && worksString.length > 0) {
worksId = worksString[0].replace("works/", "");
worksId = worksId.replace("?", "");
worksId = this.base64Decode(worksId);
}
this.objectId = worksId;
this.type = TYPE_WORK;
}
window.onload = function () {
chrome.runtime.sendMessage({}, function(response) {
ACCESS_TOKEN = response.access_token;
goNext()
});
}
function goNext() {
var todayInput = document.getElementById("today");
var channelDom = document.getElementById("channelId");
var adminDom = document.getElementById("admins");
var titleDom = document.getElementById("title");
var quoteCountDom = document.getElementById("quoteCount");
var statusDom = document.getElementById("status");
var worksDom = document.getElementById("worksId");
getChannels(function(res) {
var channels = res;
for (var i in channels) {
var d = document.createElement("option");
d.value = channels[i].channel_id;
d.innerHTML = channels[i].name;
channelDom.appendChild(d)
}
});
getManagers(function(res) {
var managers = res;
for (var i in managers) {
var d = document.createElement("option");
d.value = managers[i].id;
d.innerHTML = managers[i].name;
adminDom.appendChild(d)
}
});
todayInput.value = getToday();
worksDom.value = getWorksId();
var sendBtn = document.getElementById("send")
sendBtn.onclick = function () {
var postData = {
"push_time": todayInput.value,
"channel_id": channelDom.value,
"admin_id": adminDom.value,
"title": titleDom.value,
"quote_count": quoteCountDom.value,
"status": statusDom.value,
"works_id": worksDom.value,
};
if (isNaN(postData['works_id']) || postData['works_id'] <= 0) {
alert("作品id解析失败")
return
}
sendData(host + "/works/pushrecord", postData, (res) => {
if (res.code.toString() !== "100001") {
alert(res.message);
return;
}
alert("操作成功")
return ;
});
}
}
This source diff could not be displayed because it is too large. You can view the blob instead.
{
"name": "mepai-fastquote",
"version": "1.0",
"manifest_version": 3,
"description": "有米引用快速通道",
"background": {
"service_worker": "background.js"
},
"content_scripts": [
{
"css": [
"css/main.css"
],
"js": [
"js/main.js"
],
"matches": [
"*://*.mepai.me/works/*"
]
}
],
"web_accessible_resources": [
{
"resources": [
"html/index.html",
"images/icon.png"
],
"matches": [
"*://*.mepai.me/*"
]
}
],
"host_permissions": [
"*://*.mepai.me/"
],
"permissions": [
"webRequest",
"cookies",
"tabs",
"nativeMessaging"
]
}
\ No newline at end of file
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<style>
body {
width:100px;
height:100px;
}
#container {
display: flex;
align-items: center;
align-content: center;
justify-items: center;
justify-content: center;
}
#container button {
background-color: #FF9F2A;
font-size: 18px;
color: white;
margin-top: 20px;
}
</style>
</head>
<body>
</body>
</html>
\ No newline at end of file
.cicon {
position: fixed;
right: 20px;
bottom: 20px;
background-color: #fffccc;
border-radius: 30px;
width: 50px;
height: 50px;
border: 1px solid #ff8528;
display: flex;
text-align: center;
justify-items: center;
justify-content: center;
align-items: center;
align-content: center;
}
.x {
width: 30px;
height: 30px;
background-color: white;
color: #666600;
display: flex;
border-radius: 15px;
justify-content: center;
align-items: center;
align-content: center;
justify-items: center;
position: absolute;
right: 0px;
top: -15px;
z-index: 999;
}
.cicon img {
height: 40px;
width: 40px;
}
.out_boxInChajian {
position: fixed;
top: 0px;
width: 100vw;
display: flex;
align-items: center;
justify-content: center;
z-index: 888;
height: 100vh;
margin: 0 auto;
}
.out_backMoadlBox {
position: fixed;
top: 0px;
width: 100vw;
z-index: 900;
height: 100vh;
margin: 0 auto;
background-color: rgba(0, 0, 0, 0.4);
}
.___container-anim-opacity {
animation: 0.22s opacityOut;
-webkit-animation: 0.22s opacityOut;
-moz-animation: 0.22s opacityOut;
}
@keyframes opacityOut {
0% {
opacity: 0
}
50% {
opacity: .8;
}
100% {
opacity: 1;
}
}
#___container {
/* background: linear-gradient(80deg, #fff4b5, #ffd217); */
font-size: 14px;
/* color: #666; */
border-radius: 10px;
height: 540px;
width: 810px;
z-index: 999;
overflow-y: auto;
overflow-x: hidden;
position: absolute;
box-shadow: 0px 0px 12px 2px rgba(0, 0, 0, 0.2);
margin-top: -6vh;
}
#___container .userinfo {
margin-top: 10px;
}
#___container .allcen {
display: flex;
align-items: center;
justify-content: center;
}
#___container .flex-c {
display: flex;
align-items: center;
}
#___container .cuizhi {
display: flex;
flex-direction: column;
}
#___container .cuizhi-cc {
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
}
#___container .jube {
display: flex;
justify-content: space-between;
}
#___container .jube-a {
display: flex;
justify-content: space-around;
}
#___container .hr {
height: 1px;
width: 100%;
background-color: #bbb;
margin: 10px 0;
}
#___container .wei-500 {
font-weight: 500;
}
#___container .wei-600 {
font-weight: 600;
}
#___container .col-fff {
color: #fff;
}
#___container .col-333 {
color: #333;
}
#___container .col-666 {
color: #666;
}
#___container .col-999 {
color: #999;
}
#___container .col-red {
color: #FF542E;
}
#___container .col-green {
color: #1dd923;
}
#___container .title_Out_Back_line {
background: linear-gradient(142deg, #0C7BB3, #8FCBFF);
}
#___container .userPermission_on {
background: linear-gradient(34deg, #76B3FF, #0C7BB3);
border: 1px solid #fff;
}
#___container .userPermission_off {
background: linear-gradient(245deg, #fff, #fff);
border: 1px solid #fff;
}
#___container .userinfo .form-group {
display: flex;
align-content: center;
align-items: center;
width: 100%;
}
#___container .userinfo .headSbox .form-group {
width: 50%;
}
#___container .userinfo .form-group .label {
width: 16%;
display: flex;
justify-content: flex-start;
}
#___container .userinfo .headSbox .form-group .label {
width: max-content;
margin-right: 10px;
}
#___container .userinfo .form-group .input {
/* width: 80%; */
width: max-content;
}
#___container .userinfo .headSbox .form-group .input {
max-width: 140px;
}
#___container button {
cursor: pointer;
background: linear-gradient(0deg, #0089ff, #1960ff) !important;
}
#___container .userinfo .form-group .input input {
width: max-content;
background-color: transparent;
}
#___container textarea {
padding: 12px;
border-radius: 6px;
margin: 8px 0;
}
#___container input[type=radio] {
background-color: #fffccc;
-webkit-appearance: checkbox !important;
height: 15px;
width: 15px;
}
#___container .id-flex {
display: flex;
justify-content: center;
width: 100%;
align-content: center;
align-items: center;
flex-wrap: wrap;
}
#___container a {
text-decoration: underline;
}
#___container div.danger {
display: flex;
align-content: center;
align-items: center;
text-align: center;
color: #ff0000;
justify-content: center;
}
#___container div.primary {
display: flex;
align-content: center;
align-items: center;
text-align: center;
color: #0277bd;
justify-content: center;
}
#___container button.primary {
display: flex;
align-content: center;
align-items: center;
text-align: center;
padding: 5px 10px 5px 10px;
background-color: #0277bd;
color: white;
border-radius: 5px;
}
#___container button.danger {
display: flex;
align-content: center;
align-items: center;
text-align: center;
padding: 5px 10px 5px 10px;
background-color: #ff0000;
color: white;
border-radius: 5px;
}
#___container .zone {
display: flex;
justify-content: center;
align-content: center;
margin: 0 8px;
}
#___container .mask {
position: absolute;
width: 100%;
height: 100%;
z-index: 999;
top: 0;
background-color: rgba(0, 0, 0, 0.2);
display: flex;
justify-content: center;
align-items: center;
align-content: center;
justify-items: center;
color: #ffffff;
}
#___container .xuanzhuan {
animation: xz 1s linear infinite;
}
@keyframes xz {
from {
transform: rotate(0deg);
}
to {
transform: rotate(360deg);
}
}
#___container .__messagebox_container {
margin: 0 auto;
z-index: 999;
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
width: 100%;
}
#___container ._button_groups {
margin: 10px auto;
display: flex;
justify-content: space-around;
width: 100%;
}
#___container ._button_groups button {
border-radius: 5px;
}
#___container .btn {
width: auto;
padding-left: 20px;
padding-right: 20px;
background: #0277bd;
border: none;
height: 30px;
color: white;
border-radius: 2px;
}
#___container .pushContent {
margin: 0 auto;
width: 100%;
text-align: left;
}
#___container .activeCls {
background-color: #FF9F2A !important;
color: #FFFF99 !important;
}
#___container .activeCls_on {
background: linear-gradient(72deg, #f9957f, #f2f5d0);
}
#___container .activeCls_off {
background: linear-gradient(72deg, #C1C1C1, #8C8C8C);
}
#___container .upload {
height: 100px;
display: flex;
justify-content: left;
align-content: center;
align-items: center;
padding-left: 30px;
}
#___container .info {
display: flex;
justify-self: left;
padding-left: 20px;
color: #0277bd;
}
#___container .btn-default {
background-color: #ffffff;
color: #333333;
width: auto;
padding-left: 20px;
padding-right: 20px;
border: none;
height: 30px;
border-radius: 2px;
}
chrome.extension.onRequest.addListener(
function(request, sender, sendResponse) {
chrome.cookies.get({
url: "https://www.mepai.me/",
name: "auth"
}, cookie => {
if (cookie === undefined || cookie === null || cookie === "") {
sendResponse({access_token: ""});
} else {
sendResponse({access_token: cookie.value});
}
});
});
\ No newline at end of file
This source diff could not be displayed because it is too large. You can view the blob instead.
{
"manifest_version": 2,
"name": "mepai-user-remark",
"description": "米拍用户备注小工具",
"version": "1.0",
"permissions": [
"tabs",
"webRequest",
"cookies",
"*://*.mepai.me/"
],
"background": {
"scripts": ["/js/background.js"]
},
"content_scripts": [
{
"matches": ["https://www.mepai.me/*"],
"css": ["/css/main.css"],
"js": ["/js/vue.js", "/js/jquery.min.js", "/js/index.js"],
"run_at": "document_end"
}
],
"web_accessible_resources": [
"ui.html", "icon.png","close.png","loading.png","close2.png","nickname.png","phone.png","qq.png","weixin.png","email.png","user_id.png"
],
"browser_action": {
"default_icon": "icon.png",
"default_title": "米拍用户备注小工具"
}
}
\ No newline at end of file
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<style>
body {
width:100px;
}
</style>
</head>
<body>
<div>米拍快速引用工具</div>
<div>v0.0.1</div>
</body>
</html>
\ No newline at end of file
module mepai_t
go 1.16
require (
github.com/PuerkitoBio/goquery v1.6.1
github.com/chromedp/cdproto v0.0.0-20210508221054-d7cfa85db7d1
github.com/chromedp/chromedp v0.7.2
github.com/go-sql-driver/mysql v1.6.0
github.com/go-xorm/xorm v0.7.9
github.com/google/go-querystring v1.1.0 // indirect
github.com/kr/pretty v0.2.1 // indirect
github.com/mozillazg/go-httpheader v0.3.0 // indirect
github.com/tencentyun/cos-go-sdk-v5 v0.7.25
gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b
)
This diff is collapsed. Click to expand it.
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment