获取main-entry用来获取anti_content

This commit is contained in:
aixianling
2023-08-14 18:25:19 +08:00
parent 55d2684c52
commit 788c879ed6
4 changed files with 480 additions and 52 deletions

View File

@@ -1,51 +1,55 @@
/**
利用chrome的fetch来避免跨域
**/
利用chrome的fetch来避免跨域
**/
import {genAnti} from "@/entry/genAnti";
chrome.runtime.onMessage.addListener((request, sender, sendResponse) => {
if (request.type == 'api') {
new Promise((resolve, reject) => {
let headers = {};
if (request.needMallId) {
headers.Mallid = request.mallId;
}
headers['Content-Type'] = 'application/json';
headers.cookie = getCookie();
fetch(request.url, {
// Promise.resolve(genAnti()).then(r => {
// headers["Anti-Content"] = r
// })
Promise.resolve().then(() => fetch(request.url, {
'headers': headers,
'method': 'POST',
'referrerPolicy': 'no-referrer',
'credentials': 'include',
'body': JSON.stringify(request.data),
'mode': 'cors'
}).then((res) => {
})).then((res) => {
resolve(res.json());
});
}).then((res) => {
sendResponse(res);
});
} else if (request.type == 'init') {
fetch(request.url,{headers:{cookie: getCookie()}}).then(res => sendResponse(res.text()));
} else if (request.type == 'notify') {
chrome.notifications.create(
"" + Math.random(), {
type: "basic",
title: "TEMU助手",
message: "您店铺【" + request.mallName + "】的商品【" + request.productName + "】成功加入发货台,请尽快处理",
iconUrl: "./icons/48.png"
}, null
"" + Math.random(), {
type: "basic",
title: "TEMU助手",
message: "您店铺【" + request.mallName + "】的商品【" + request.productName + "】成功加入发货台,请尽快处理",
iconUrl: "./icons/48.png"
}, null
)
}
return true;
});
chrome.action.onClicked.addListener(function () {
chrome.tabs.create({
url: "./popup.html"
url: "./popup.html"
}, function (tab) {
console.log('tab is:' + tab);
console.log('tab is:' + tab);
});
});
@@ -58,4 +62,4 @@ function getCookie() {
});
});
return cStr;
}
}

419
src/entry/genAnti.js Normal file
View File

@@ -0,0 +1,419 @@
const genAnti = function () {
const x = {
touchEventData: !0,
clickEventData: !0,
focusblurEventData: !0,
changeEventData: !0,
locationInfo: !0,
referrer: !0,
browserSize: !0,
browserInfo: !0,
token: !0,
fingerprint: !0
}, w = {_2827c887a48a351a: !1, serverTime: NaN}
function l(t, e, r, n, o, i, a) {
try {
var s = t[i](a), u = s.value
} catch (l) {
return void r(l)
}
s.done ? e(u) : Promise.resolve(u).then(n, o)
}
function c(t) {
return function () {
var e = this, r = arguments;
return new Promise((function (n, o) {
var i = t.apply(e, r);
function a(t) {
l(i, n, o, a, s, "next", t)
}
function s(t) {
l(i, n, o, a, s, "throw", t)
}
a(void 0)
}))
}
}
function u() {
u = function () {
return t
};
var t = {}, e = Object.prototype, r = e.hasOwnProperty, n = "function" == typeof Symbol ? Symbol : {},
o = n.iterator || "@@iterator", i = n.asyncIterator || "@@asyncIterator",
a = n.toStringTag || "@@toStringTag";
function s(t, e, r) {
return Object.defineProperty(t, e, {value: r, enumerable: !0, configurable: !0, writable: !0}), t[e]
}
try {
s({}, "")
} catch (E) {
s = function (t, e, r) {
return t[e] = r
}
}
function l(t, e, r, n) {
var o = e && e.prototype instanceof d ? e : d, i = Object.create(o.prototype), a = new O(n || []);
return i._invoke = function (t, e, r) {
var n = "suspendedStart";
return function (o, i) {
if ("executing" === n) throw new Error("Generator is already running");
if ("completed" === n) {
if ("throw" === o) throw i;
return k()
}
for (r.method = o, r.arg = i; ;) {
var a = r.delegate;
if (a) {
var s = x(a, r);
if (s) {
if (s === f) continue;
return s
}
}
if ("next" === r.method) r.sent = r._sent = r.arg; else if ("throw" === r.method) {
if ("suspendedStart" === n) throw n = "completed", r.arg;
r.dispatchException(r.arg)
} else "return" === r.method && r.abrupt("return", r.arg);
n = "executing";
var u = c(t, e, r);
if ("normal" === u.type) {
if (n = r.done ? "completed" : "suspendedYield", u.arg === f) continue;
return {value: u.arg, done: r.done}
}
"throw" === u.type && (n = "completed", r.method = "throw", r.arg = u.arg)
}
}
}(t, r, a), i
}
function c(t, e, r) {
try {
return {type: "normal", arg: t.call(e, r)}
} catch (E) {
return {type: "throw", arg: E}
}
}
t.wrap = l;
var f = {};
function d() {
}
function p() {
}
function h() {
}
var v = {};
s(v, o, (function () {
return this
}));
var g = Object.getPrototypeOf, m = g && g(g(C([])));
m && m !== e && r.call(m, o) && (v = m);
var b = h.prototype = d.prototype = Object.create(v);
function y(t) {
["next", "throw", "return"].forEach((function (e) {
s(t, e, (function (t) {
return this._invoke(e, t)
}))
}))
}
function w(t, e) {
function n(o, i, a, s) {
var u = c(t[o], t, i);
if ("throw" !== u.type) {
var l = u.arg, f = l.value;
return f && "object" == typeof f && r.call(f, "__await") ? e.resolve(f.__await).then((function (t) {
n("next", t, a, s)
}), (function (t) {
n("throw", t, a, s)
})) : e.resolve(f).then((function (t) {
l.value = t, a(l)
}), (function (t) {
return n("throw", t, a, s)
}))
}
s(u.arg)
}
var o;
this._invoke = function (t, r) {
function i() {
return new e((function (e, o) {
n(t, r, e, o)
}))
}
return o = o ? o.then(i, i) : i()
}
}
function x(t, e) {
var r = t.iterator[e.method];
if (void 0 === r) {
if (e.delegate = null, "throw" === e.method) {
if (t.iterator.return && (e.method = "return", e.arg = void 0, x(t, e), "throw" === e.method)) return f;
e.method = "throw", e.arg = new TypeError("The iterator does not provide a 'throw' method")
}
return f
}
var n = c(r, t.iterator, e.arg);
if ("throw" === n.type) return e.method = "throw", e.arg = n.arg, e.delegate = null, f;
var o = n.arg;
return o ? o.done ? (e[t.resultName] = o.value, e.next = t.nextLoc, "return" !== e.method && (e.method = "next", e.arg = void 0), e.delegate = null, f) : o : (e.method = "throw", e.arg = new TypeError("iterator result is not an object"), e.delegate = null, f)
}
function _(t) {
var e = {tryLoc: t[0]};
1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e)
}
function S(t) {
var e = t.completion || {};
e.type = "normal", delete e.arg, t.completion = e
}
function O(t) {
this.tryEntries = [{tryLoc: "root"}], t.forEach(_, this), this.reset(!0)
}
function C(t) {
if (t) {
var e = t[o];
if (e) return e.call(t);
if ("function" == typeof t.next) return t;
if (!isNaN(t.length)) {
var n = -1, i = function e() {
for (; ++n < t.length;) if (r.call(t, n)) return e.value = t[n], e.done = !1, e;
return e.value = void 0, e.done = !0, e
};
return i.next = i
}
}
return {next: k}
}
function k() {
return {value: void 0, done: !0}
}
return p.prototype = h, s(b, "constructor", h), s(h, "constructor", p), p.displayName = s(h, a, "GeneratorFunction"), t.isGeneratorFunction = function (t) {
var e = "function" == typeof t && t.constructor;
return !!e && (e === p || "GeneratorFunction" === (e.displayName || e.name))
}, t.mark = function (t) {
return Object.setPrototypeOf ? Object.setPrototypeOf(t, h) : (t.__proto__ = h, s(t, a, "GeneratorFunction")), t.prototype = Object.create(b), t
}, t.awrap = function (t) {
return {__await: t}
}, y(w.prototype), s(w.prototype, i, (function () {
return this
})), t.AsyncIterator = w, t.async = function (e, r, n, o, i) {
void 0 === i && (i = Promise);
var a = new w(l(e, r, n, o), i);
return t.isGeneratorFunction(r) ? a : a.next().then((function (t) {
return t.done ? t.value : a.next()
}))
}, y(b), s(b, a, "Generator"), s(b, o, (function () {
return this
})), s(b, "toString", (function () {
return "[object Generator]"
})), t.keys = function (t) {
var e = [];
for (var r in t) e.push(r);
return e.reverse(), function r() {
for (; e.length;) {
var n = e.pop();
if (n in t) return r.value = n, r.done = !1, r
}
return r.done = !0, r
}
}, t.values = C, O.prototype = {
constructor: O, reset: function (t) {
if (this.prev = 0, this.next = 0, this.sent = this._sent = void 0, this.done = !1, this.delegate = null, this.method = "next", this.arg = void 0, this.tryEntries.forEach(S), !t) for (var e in this) "t" === e.charAt(0) && r.call(this, e) && !isNaN(+e.slice(1)) && (this[e] = void 0)
}, stop: function () {
this.done = !0;
var t = this.tryEntries[0].completion;
if ("throw" === t.type) throw t.arg;
return this.rval
}, dispatchException: function (t) {
if (this.done) throw t;
var e = this;
function n(r, n) {
return a.type = "throw", a.arg = t, e.next = r, n && (e.method = "next", e.arg = void 0), !!n
}
for (var o = this.tryEntries.length - 1; o >= 0; --o) {
var i = this.tryEntries[o], a = i.completion;
if ("root" === i.tryLoc) return n("end");
if (i.tryLoc <= this.prev) {
var s = r.call(i, "catchLoc"), u = r.call(i, "finallyLoc");
if (s && u) {
if (this.prev < i.catchLoc) return n(i.catchLoc, !0);
if (this.prev < i.finallyLoc) return n(i.finallyLoc)
} else if (s) {
if (this.prev < i.catchLoc) return n(i.catchLoc, !0)
} else {
if (!u) throw new Error("try statement without catch or finally");
if (this.prev < i.finallyLoc) return n(i.finallyLoc)
}
}
}
}, abrupt: function (t, e) {
for (var n = this.tryEntries.length - 1; n >= 0; --n) {
var o = this.tryEntries[n];
if (o.tryLoc <= this.prev && r.call(o, "finallyLoc") && this.prev < o.finallyLoc) {
var i = o;
break
}
}
i && ("break" === t || "continue" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null);
var a = i ? i.completion : {};
return a.type = t, a.arg = e, i ? (this.method = "next", this.next = i.finallyLoc, f) : this.complete(a)
}, complete: function (t, e) {
if ("throw" === t.type) throw t.arg;
return "break" === t.type || "continue" === t.type ? this.next = t.arg : "return" === t.type ? (this.rval = this.arg = t.arg, this.method = "return", this.next = "end") : "normal" === t.type && e && (this.next = e), f
}, finish: function (t) {
for (var e = this.tryEntries.length - 1; e >= 0; --e) {
var r = this.tryEntries[e];
if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), S(r), f
}
}, catch: function (t) {
for (var e = this.tryEntries.length - 1; e >= 0; --e) {
var r = this.tryEntries[e];
if (r.tryLoc === t) {
var n = r.completion;
if ("throw" === n.type) {
var o = n.arg;
S(r)
}
return o
}
}
throw new Error("illegal catch attempt")
}, delegateYield: function (t, e, r) {
return this.delegate = {
iterator: C(t),
resultName: e,
nextLoc: r
}, "next" === this.method && (this.arg = void 0), f
}
}, t
}
function f() {
return f = Object.assign ? Object.assign.bind() : function (t) {
for (var e = 1; e < arguments.length; e++) {
var r = arguments[e];
for (var n in r) Object.prototype.hasOwnProperty.call(r, n) && (t[n] = r[n])
}
return t
}, f.apply(this, arguments)
}
const b = function () {
var t = function () {
return (new Date).getTime()
}();
if (t) return new Promise((function (e) {
console.log(e.toString())
return e(t)
}));
return new Promise((function (t) {
var e = function () {
return new Promise((function (t) {
var e = function (e) {
p("riskUtilGetServerTimeFallback", e), t((new Date).getTime())
}, r = new XMLHttpRequest;
r.open("HEAD", window.location.href, !0), r.setRequestHeader("Content-type", "application/json; charset=utf-8"), r.withCredentials = !0, r.onreadystatechange = function () {
if (4 === r.readyState) {
var n = r.getResponseHeader("Date");
if (n) {
var o = new Date(n).getTime();
o || e("date invalid " + JSON.stringify(n));
var i = (new Date).getTime();
window.bgbRisk.timeBaseline = {
serverTime: o,
localTime: i
}, t(o), g(o, i) && p("getServerTimeFallback timeDiffOverOneHour", JSON.stringify({
serverTime: o,
localTime: i
}))
} else e("date not exsit, " + r.statusText)
}
}, r.send(null)
})).then(t).catch((function (e) {
p("riskUtilGetServerTimeFallback", "catch " + (null == e ? void 0 : e.stack)), t((new Date).getTime())
}))
}, r = new XMLHttpRequest;
r.open("GET", "/api/server/_stm", !0), r.setRequestHeader("Content-type", "application/json; charset=utf-8"), r.withCredentials = !0, r.onreadystatechange = function () {
if (4 === r.readyState) {
try {
var n = JSON.parse(r.responseText).server_time;
if (n && "number" === typeof n) {
var o = (new Date).getTime();
return window.bgbRisk.timeBaseline = {
serverTime: n,
localTime: o
}, t(n), void (g(n, o) && p("getServerTime timeDiffOverOneHour", JSON.stringify({
serverTime: n,
localTime: o
})))
}
} catch (i) {
console.error(i)
}
e()
}
}, r.send()
}))
}
const r377 = function (e, t) {
return {enumerable: !(1 && e), configurable: !(2 && e), writable: !(4 && e), value: t}
}
const S = function () {
var t = c(u().mark((function t() {
var e, r;
return u().wrap((function (t) {
for (; ;) {
console.log(t.next)
switch (t.prev = t.next) {
case 0:
return t.next = 2, b();
case 2:
let y;
return e = t.sent, t.next = 3, y = new r377(e, t).a(f({}, w, {serverTime: e})), console.log(y), y;
case 3:
return e = t.sent, r = e.messagePack(x), e.clearCache(), t.abrupt("return", r);
case 9:
t.prev = 9
return t.abrupt("return", "");
case 13:
case"end":
return t.stop()
}
}
}), t, null, [[0, 9]])
})));
return function () {
return t.apply(this, arguments)
}
}()
return S()
}
Promise.resolve(genAnti()).then(r => {
// console.log(r.toString())
})

View File

@@ -16,7 +16,7 @@ var relativeTime = require('dayjs/plugin/relativeTime')
require('dayjs/locale/zh-cn')
dayjs.extend(relativeTime)
Vue.prototype.$dayjs = dayjs
Vue.prototype.$base = "https://kuajing.pinduoduo.com"
Object.keys(utils).forEach(v => Vue.prototype[`$${v}`] = utils[v])
Vue.prototype.$http = instance

View File

@@ -5,52 +5,57 @@
</template>
<script>
import { sendChromeAPIMessage } from '@/api/chromeApi'
import { Message } from 'element-ui'
export default {
data () {
return {
component: 'Home'
}
},
import {sendChromeAPIMessage} from '@/api/chromeApi'
import {Message} from 'element-ui'
created () {
if (!this.$store.state.token) {
this.$router.push('/login')
} else {
this.$store.dispatch('getUserInfo');
sendChromeAPIMessage({url: 'bg/quiet/api/mms/userInfo', needMallId: false, data: {}}).then((res) => {
if (res.errorCode == 1000000) {
if (res.result.companyList[0].malInfoList.length == 1) {
export default {
data() {
return {
component: 'Home'
}
},
created() {
if (!this.$store.state.token) {
this.$router.push('/login')
} else {
this.$store.dispatch('getUserInfo');
this.getMainEntry()
sendChromeAPIMessage({url: 'bg/quiet/api/mms/userInfo', needMallId: false, data: {}}).then((res) => {
if (res.errorCode == 1000000) {
if (res.result.companyList[0].malInfoList.length == 1) {
this.$store.commit('setMallId', `${res.result.companyList[0].malInfoList[0].mallId}`)
this.$store.commit('setMallName', `${res.result.companyList[0].malInfoList[0].mallName}`)
} else {
if (!this.$store.state.mallId) {
this.$store.commit('setMallId', `${res.result.companyList[0].malInfoList[0].mallId}`)
this.$store.commit('setMallName', `${res.result.companyList[0].malInfoList[0].mallName}`)
} else {
if (!this.$store.state.mallId) {
let temp = res.result.companyList[0].malInfoList.filter(item => {
return item.mallId == this.$store.state.mallId
})
if (temp.length == 0) {
this.$store.commit('setMallId', `${res.result.companyList[0].malInfoList[0].mallId}`)
this.$store.commit('setMallName', `${res.result.companyList[0].malInfoList[0].mallName}`)
} else {
let temp = res.result.companyList[0].malInfoList.filter(item => {
return item.mallId == this.$store.state.mallId
})
if (temp.length == 0) {
this.$store.commit('setMallId', `${res.result.companyList[0].malInfoList[0].mallId}`)
this.$store.commit('setMallName', `${res.result.companyList[0].malInfoList[0].mallName}`)
}
}
}
this.$store.commit('setMallList', res.result.companyList[0].malInfoList)
} else {
Message.error("【拼多多】" + res.error_msg)
}
})
}
},
this.$store.commit('setMallList', res.result.companyList[0].malInfoList)
} else {
Message.error("【拼多多】" + res.error_msg)
}
})
}
},
methods: {
methods: {
async getMainEntry() {
chrome.runtime.sendMessage({type: "init", url: this.$base + "main-entry"})
}
}
}
</script>
<style>
@import '../assets/css/index.scss';
@import '../assets/css/index.scss';
</style>