update server
This commit is contained in:
parent
eb4e711e58
commit
71290dcdcd
|
|
@ -2,3 +2,5 @@ Servers matching 'ai':
|
|||
Server Name: AI training tool server
|
||||
Command: ssh root@172.16.7.48
|
||||
Password: Work1234
|
||||
|
||||
server folder: /root/facebook-publist-server/auto-post-marketplace-facebook/server
|
||||
|
|
|
|||
|
|
@ -1 +1 @@
|
|||
import{R as c,j as s,Q as u,q as l,P as d}from"./popup-DvUDMaaW.js";import"./base64-BbJB1hmJ.js";import"./product-api.service-DR0CE0o9.js";import"./app-C7VSS-q9.js";(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const e of document.querySelectorAll('link[rel="modulepreload"]'))i(e);new MutationObserver(e=>{for(const r of e)if(r.type==="childList")for(const o of r.addedNodes)o.tagName==="LINK"&&o.rel==="modulepreload"&&i(o)}).observe(document,{childList:!0,subtree:!0});function n(e){const r={};return e.integrity&&(r.integrity=e.integrity),e.referrerPolicy&&(r.referrerPolicy=e.referrerPolicy),e.crossOrigin==="use-credentials"?r.credentials="include":e.crossOrigin==="anonymous"?r.credentials="omit":r.credentials="same-origin",r}function i(e){if(e.ep)return;e.ep=!0;const r=n(e);fetch(e.href,r)}})();c.createRoot(document.getElementById("root")).render(s.jsx(u,{client:l,children:s.jsx(d,{})}));
|
||||
import{R as c,j as s,Q as u,q as l,P as d}from"./popup-Bz59jSUd.js";import"./base64-BbJB1hmJ.js";import"./product-api.service--mothqFI.js";import"./app-C7VSS-q9.js";(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const e of document.querySelectorAll('link[rel="modulepreload"]'))i(e);new MutationObserver(e=>{for(const r of e)if(r.type==="childList")for(const o of r.addedNodes)o.tagName==="LINK"&&o.rel==="modulepreload"&&i(o)}).observe(document,{childList:!0,subtree:!0});function n(e){const r={};return e.integrity&&(r.integrity=e.integrity),e.referrerPolicy&&(r.referrerPolicy=e.referrerPolicy),e.crossOrigin==="use-credentials"?r.credentials="include":e.crossOrigin==="anonymous"?r.credentials="omit":r.credentials="same-origin",r}function i(e){if(e.ep)return;e.ep=!0;const r=n(e);fetch(e.href,r)}})();c.createRoot(document.getElementById("root")).render(s.jsx(u,{client:l,children:s.jsx(d,{})}));
|
||||
|
|
|
|||
File diff suppressed because one or more lines are too long
|
|
@ -7,9 +7,9 @@
|
|||
<title>Vite + React + TS</title>
|
||||
<script type="module" crossorigin src="/assets/popup.js"></script>
|
||||
<link rel="modulepreload" crossorigin href="/assets/base64-BbJB1hmJ.js">
|
||||
<link rel="modulepreload" crossorigin href="/assets/product-api.service-DR0CE0o9.js">
|
||||
<link rel="modulepreload" crossorigin href="/assets/product-api.service--mothqFI.js">
|
||||
<link rel="modulepreload" crossorigin href="/assets/app-C7VSS-q9.js">
|
||||
<link rel="modulepreload" crossorigin href="/assets/popup-DvUDMaaW.js">
|
||||
<link rel="modulepreload" crossorigin href="/assets/popup-Bz59jSUd.js">
|
||||
<link rel="stylesheet" crossorigin href="/assets/style.css">
|
||||
</head>
|
||||
<body>
|
||||
|
|
|
|||
|
|
@ -9,10 +9,10 @@
|
|||
"service_worker": "background/background.js",
|
||||
"type": "module"
|
||||
},
|
||||
"host_permissions": ["http://172.16.7.48/*"],
|
||||
"host_permissions": ["https://www.facebook.com/*"],
|
||||
"content_scripts": [
|
||||
{
|
||||
"matches": ["<all_urls>"],
|
||||
"matches": ["https://www.facebook.com/*"],
|
||||
"js": ["content/content.js"],
|
||||
"type": "module"
|
||||
}
|
||||
|
|
@ -20,9 +20,8 @@
|
|||
"web_accessible_resources": [
|
||||
{
|
||||
"resources": ["content/inject-ui.js", "assets/*"],
|
||||
"matches": ["<all_urls>"]
|
||||
"matches": ["https://www.facebook.com/*"]
|
||||
}
|
||||
],
|
||||
|
||||
"permissions": ["storage", "tabs", "activeTab", "scripting"]
|
||||
}
|
||||
|
|
|
|||
|
|
@ -9,10 +9,10 @@
|
|||
"service_worker": "background/background.js",
|
||||
"type": "module"
|
||||
},
|
||||
"host_permissions": ["http://172.16.7.48/*"],
|
||||
"host_permissions": ["https://www.facebook.com/*"],
|
||||
"content_scripts": [
|
||||
{
|
||||
"matches": ["<all_urls>"],
|
||||
"matches": ["https://www.facebook.com/*"],
|
||||
"js": ["content/content.js"],
|
||||
"type": "module"
|
||||
}
|
||||
|
|
@ -20,9 +20,8 @@
|
|||
"web_accessible_resources": [
|
||||
{
|
||||
"resources": ["content/inject-ui.js", "assets/*"],
|
||||
"matches": ["<all_urls>"]
|
||||
"matches": ["https://www.facebook.com/*"]
|
||||
}
|
||||
],
|
||||
|
||||
"permissions": ["storage", "tabs", "activeTab", "scripting"]
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1 +1 @@
|
|||
import{R as c,j as s,Q as u,q as l,P as d}from"./popup-DvUDMaaW.js";import"./base64-BbJB1hmJ.js";import"./product-api.service-DR0CE0o9.js";import"./app-C7VSS-q9.js";(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const e of document.querySelectorAll('link[rel="modulepreload"]'))i(e);new MutationObserver(e=>{for(const r of e)if(r.type==="childList")for(const o of r.addedNodes)o.tagName==="LINK"&&o.rel==="modulepreload"&&i(o)}).observe(document,{childList:!0,subtree:!0});function n(e){const r={};return e.integrity&&(r.integrity=e.integrity),e.referrerPolicy&&(r.referrerPolicy=e.referrerPolicy),e.crossOrigin==="use-credentials"?r.credentials="include":e.crossOrigin==="anonymous"?r.credentials="omit":r.credentials="same-origin",r}function i(e){if(e.ep)return;e.ep=!0;const r=n(e);fetch(e.href,r)}})();c.createRoot(document.getElementById("root")).render(s.jsx(u,{client:l,children:s.jsx(d,{})}));
|
||||
import{R as c,j as s,Q as u,q as l,P as d}from"./popup-Bz59jSUd.js";import"./base64-BbJB1hmJ.js";import"./product-api.service--mothqFI.js";import"./app-C7VSS-q9.js";(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const e of document.querySelectorAll('link[rel="modulepreload"]'))i(e);new MutationObserver(e=>{for(const r of e)if(r.type==="childList")for(const o of r.addedNodes)o.tagName==="LINK"&&o.rel==="modulepreload"&&i(o)}).observe(document,{childList:!0,subtree:!0});function n(e){const r={};return e.integrity&&(r.integrity=e.integrity),e.referrerPolicy&&(r.referrerPolicy=e.referrerPolicy),e.crossOrigin==="use-credentials"?r.credentials="include":e.crossOrigin==="anonymous"?r.credentials="omit":r.credentials="same-origin",r}function i(e){if(e.ep)return;e.ep=!0;const r=n(e);fetch(e.href,r)}})();c.createRoot(document.getElementById("root")).render(s.jsx(u,{client:l,children:s.jsx(d,{})}));
|
||||
|
|
|
|||
File diff suppressed because one or more lines are too long
|
|
@ -7,9 +7,9 @@
|
|||
<title>Vite + React + TS</title>
|
||||
<script type="module" crossorigin src="/assets/popup.js"></script>
|
||||
<link rel="modulepreload" crossorigin href="/assets/base64-BbJB1hmJ.js">
|
||||
<link rel="modulepreload" crossorigin href="/assets/product-api.service-DR0CE0o9.js">
|
||||
<link rel="modulepreload" crossorigin href="/assets/product-api.service--mothqFI.js">
|
||||
<link rel="modulepreload" crossorigin href="/assets/app-C7VSS-q9.js">
|
||||
<link rel="modulepreload" crossorigin href="/assets/popup-DvUDMaaW.js">
|
||||
<link rel="modulepreload" crossorigin href="/assets/popup-Bz59jSUd.js">
|
||||
<link rel="stylesheet" crossorigin href="/assets/style.css">
|
||||
</head>
|
||||
<body>
|
||||
|
|
|
|||
|
|
@ -9,10 +9,10 @@
|
|||
"service_worker": "background/background.js",
|
||||
"type": "module"
|
||||
},
|
||||
"host_permissions": ["http://172.16.7.48/*"],
|
||||
"host_permissions": ["https://www.facebook.com/*"],
|
||||
"content_scripts": [
|
||||
{
|
||||
"matches": ["<all_urls>"],
|
||||
"matches": ["https://www.facebook.com/*"],
|
||||
"js": ["content/content.js"],
|
||||
"type": "module"
|
||||
}
|
||||
|
|
@ -20,9 +20,8 @@
|
|||
"web_accessible_resources": [
|
||||
{
|
||||
"resources": ["content/inject-ui.js", "assets/*"],
|
||||
"matches": ["<all_urls>"]
|
||||
"matches": ["https://www.facebook.com/*"]
|
||||
}
|
||||
],
|
||||
|
||||
"permissions": ["storage", "tabs", "activeTab", "scripting"]
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,20 +1,14 @@
|
|||
[
|
||||
{
|
||||
"title": "Air-ct7510-k9 - AIR-CT7510-K9",
|
||||
"title": "Cisco AIR-PWRINJ6 Power Injector 8023at for Aironet Access Points - AIR-PWRINJ6",
|
||||
"price": 95,
|
||||
"el": {},
|
||||
"date": "2025-08-22T09:58:21.949Z"
|
||||
},
|
||||
{
|
||||
"title": "Cisco AIR-CT7510-K9 Wireless LAN Controller w / OS 8.5.182, 2x 300GB, 2x SFP+ - AIR-CT7510-K9",
|
||||
"price": 8562,
|
||||
"el": {},
|
||||
"date": "2025-08-21T08:56:43.192Z"
|
||||
},
|
||||
{
|
||||
"title": "2-Port Analog Telephone Adapter - ATA191-K9",
|
||||
"price": 220,
|
||||
"el": {},
|
||||
"date": "2025-08-21T08:56:43.192Z"
|
||||
},
|
||||
{
|
||||
"title": "Cisco 2911 Voice Bundle, Pvdm3-16, Uc License Pak, Fl- Cube10 - CISCO2911-V/K9",
|
||||
"price": 125,
|
||||
"el": {},
|
||||
"date": "2025-08-21T08:56:43.192Z"
|
||||
"date": "2025-08-22T09:58:21.950Z"
|
||||
}
|
||||
]
|
||||
|
|
@ -137,15 +137,28 @@ app.post("/", async (req, res) => {
|
|||
const skip = originalFilter.skip || 0;
|
||||
const limit = originalFilter.limit || data.data.length;
|
||||
|
||||
const listedCodes = new Set(
|
||||
publistedData.map((i) => (i.title + i.price || "").trim().toLowerCase())
|
||||
);
|
||||
// const listedCodes = new Set(
|
||||
// publistedData.map((i) => (i.title + i.price || "").trim().toLowerCase())
|
||||
// );
|
||||
|
||||
// let filteredData = data.data.filter((item) => {
|
||||
// const key = `${item.title} - ${item.code}${item.price}`.toLowerCase();
|
||||
// return status === "listed"
|
||||
// ? listedCodes.has(key)
|
||||
// : !listedCodes.has(key);
|
||||
// });
|
||||
let filteredData = data.data.filter((item) => {
|
||||
const key = `${item.title} - ${item.code}${item.price}`.toLowerCase();
|
||||
return status === "listed"
|
||||
? listedCodes.has(key)
|
||||
: !listedCodes.has(key);
|
||||
const key = `${item.title} - ${item.code}`.toLowerCase();
|
||||
|
||||
if (status === "listed") {
|
||||
return publistedData.some((i) =>
|
||||
`${i.title}`.toLowerCase().includes(key)
|
||||
);
|
||||
} else {
|
||||
return !publistedData.some((i) =>
|
||||
`${i.title}`.toLowerCase().includes(key)
|
||||
);
|
||||
}
|
||||
});
|
||||
|
||||
data.total = filteredData.length;
|
||||
|
|
|
|||
|
|
@ -74,7 +74,8 @@ class ProductApiService {
|
|||
| "get"
|
||||
| "createBlobUrl"
|
||||
| "publist"
|
||||
| "unlist",
|
||||
| "unlist"
|
||||
| "sync",
|
||||
body: Record<string, any>
|
||||
) {
|
||||
return new Promise((resolve, reject) => {
|
||||
|
|
|
|||
|
|
@ -167,8 +167,6 @@ window.addEventListener("message", async (event) => {
|
|||
"background-to-content-actions"
|
||||
);
|
||||
|
||||
console.log({ publisted: data });
|
||||
|
||||
break;
|
||||
}
|
||||
|
||||
|
|
@ -184,7 +182,18 @@ window.addEventListener("message", async (event) => {
|
|||
"background-to-content-actions"
|
||||
);
|
||||
|
||||
console.log({ data });
|
||||
console.log({ unlisted: data });
|
||||
|
||||
break;
|
||||
}
|
||||
case "sync": {
|
||||
const products = await facebookService.getProducts();
|
||||
|
||||
console.log({ products });
|
||||
|
||||
await productApi.sync(products);
|
||||
|
||||
data = products;
|
||||
|
||||
break;
|
||||
}
|
||||
|
|
@ -212,9 +221,6 @@ window.addEventListener("message", async (event) => {
|
|||
});
|
||||
|
||||
(async () => {
|
||||
// Call to inject modal
|
||||
injectApp();
|
||||
|
||||
await delayRD(800, 1000);
|
||||
|
||||
// Sử dụng
|
||||
|
|
@ -234,6 +240,9 @@ window.addEventListener("message", async (event) => {
|
|||
console.log({ products });
|
||||
|
||||
productApi.sync(products);
|
||||
|
||||
// Call to inject modal
|
||||
injectApp();
|
||||
})
|
||||
.catch((err) => {
|
||||
console.error(err);
|
||||
|
|
|
|||
|
|
@ -75,9 +75,9 @@ export function mapToIPost(raw: any): IPost {
|
|||
condition: (raw?.conditionEbay as string)?.toLowerCase()?.includes("new")
|
||||
? "new"
|
||||
: "used – like new",
|
||||
brand: typeof raw.manufactor === "string" ? raw.manufactor : raw?.name,
|
||||
brand: typeof raw.manufactor === "string" ? raw.manufactor : "",
|
||||
description: descriptionLines,
|
||||
tags: raw.tags || [],
|
||||
tags: [],
|
||||
sku: raw.code,
|
||||
location: raw.location || "Sydney, Australia",
|
||||
status: false,
|
||||
|
|
|
|||
|
|
@ -35,6 +35,7 @@ import {
|
|||
Eye,
|
||||
EyeOff,
|
||||
MoreHorizontal,
|
||||
RefreshCcwIcon,
|
||||
Search,
|
||||
} from "lucide-react";
|
||||
import { useMemo, useState } from "react";
|
||||
|
|
@ -53,7 +54,11 @@ export default function Popup() {
|
|||
);
|
||||
|
||||
// --- React Query fetch ---
|
||||
const { data: rawProducts, isLoading } = useQuery({
|
||||
const {
|
||||
data: rawProducts,
|
||||
isFetching,
|
||||
...dataQuery
|
||||
} = useQuery({
|
||||
queryKey,
|
||||
queryFn: async () => {
|
||||
const data = await productApi.apiRequest(
|
||||
|
|
@ -71,7 +76,7 @@ export default function Popup() {
|
|||
},
|
||||
});
|
||||
|
||||
const { data: publistedProducts } = useQuery({
|
||||
const { data: publistedProducts, ...publistQuery } = useQuery({
|
||||
queryKey: ["publised-products"],
|
||||
queryFn: async () => {
|
||||
const data = await productApi.apiRequest("getPublistedProducts", {});
|
||||
|
|
@ -166,6 +171,18 @@ export default function Popup() {
|
|||
/>
|
||||
</div>
|
||||
|
||||
{/* <Button
|
||||
onClick={async () => {
|
||||
await productApi.apiRequest("sync", {});
|
||||
|
||||
publistQuery.refetch();
|
||||
dataQuery.refetch();
|
||||
}}
|
||||
size={"icon"}
|
||||
>
|
||||
<RefreshCcwIcon />
|
||||
</Button> */}
|
||||
|
||||
<ImprovedToggleFilter
|
||||
filter={filter as any}
|
||||
setFilter={setFilter}
|
||||
|
|
@ -298,7 +315,7 @@ export default function Popup() {
|
|||
</TableHeader>
|
||||
|
||||
<TableBody className="relative">
|
||||
{isLoading && (
|
||||
{isFetching && (
|
||||
<TableRow>
|
||||
<TableCell
|
||||
colSpan={10}
|
||||
|
|
@ -311,7 +328,7 @@ export default function Popup() {
|
|||
</TableRow>
|
||||
)}
|
||||
|
||||
{data.length === 0 && !isLoading ? (
|
||||
{data.length === 0 && !isFetching ? (
|
||||
<TableRow>
|
||||
<TableCell
|
||||
colSpan={10}
|
||||
|
|
@ -389,7 +406,7 @@ export default function Popup() {
|
|||
)}
|
||||
{post.status ? "Unlist" : "List"}
|
||||
|
||||
{actionMutation.isPending && <Loader />}
|
||||
{/* {actionMutation.isPending && <Loader />} */}
|
||||
</DropdownMenuItem>
|
||||
{/* <DropdownMenuItem onClick={() => handleUnListing(post)}>
|
||||
unList
|
||||
|
|
|
|||
Loading…
Reference in New Issue