b16e9f0bd1
Plan 0 (workspaces): add workspaces + workspace_memberships schema, extend JWT/Actor/claims with primary_workspace_id, seed default workspace per tenant, thread workspace_id through tenant monitoring quota. Plan A (desktop skeleton): new Electron app (apps/desktop-client) with main/ preload/renderer, shared Vue component package (packages/ui-shared), and server surface — desktop client registration + token rotation + heartbeat, SSE task event stream, desktop accounts/tasks/content handlers, publish job endpoint, and supporting repositories, services, sqlc queries, and migrations. Hard cutover per plan: remove browser-extension monitoring callback endpoints, stub legacy media API in admin-web, and delete monitoring_callback_handler.go.
193 lines
5.2 KiB
TypeScript
193 lines
5.2 KiB
TypeScript
import logoBaijiahao from "../assets/logos/logo_baijiahao.png";
|
|
import logoBilibili from "../assets/logos/logo_bilibili.png";
|
|
import logoDongchedi from "../assets/logos/logo_dongchedi.svg";
|
|
import logoJianshu from "../assets/logos/logo_jianshu.svg";
|
|
import logoJuejin from "../assets/logos/logo_juejin.png";
|
|
import logoQiehao from "../assets/logos/logo_qiehao.png";
|
|
import logoSmzdm from "../assets/logos/logo_smzdm.svg";
|
|
import logoSouhu from "../assets/logos/logo_souhu.png";
|
|
import logoToutiao from "../assets/logos/logo_toutiao.png";
|
|
import logoWangyihao from "../assets/logos/logo_wangyihao.png";
|
|
import logoWeixinGzh from "../assets/logos/logo_weixin_gzh.svg";
|
|
import logoZhihu from "../assets/logos/logo_zhihu.png";
|
|
import logoZol from "../assets/logos/logo_zol.png";
|
|
|
|
export interface DesktopMediaDefinition {
|
|
id: string;
|
|
label: string;
|
|
shortName: string;
|
|
accent: string;
|
|
loginUrl: string | null;
|
|
logoUrl: string | null;
|
|
category: "publish" | "monitoring";
|
|
description: string;
|
|
}
|
|
|
|
export const desktopPublishMediaCatalog: DesktopMediaDefinition[] = [
|
|
{
|
|
id: "toutiaohao",
|
|
label: "头条号",
|
|
shortName: "头",
|
|
accent: "#f5222d",
|
|
loginUrl: "https://mp.toutiao.com/auth/page/login",
|
|
logoUrl: logoToutiao,
|
|
category: "publish",
|
|
description: "发布媒体 / 浏览器登录检测",
|
|
},
|
|
{
|
|
id: "baijiahao",
|
|
label: "百家号",
|
|
shortName: "百",
|
|
accent: "#31445a",
|
|
loginUrl: "https://baijiahao.baidu.com/builder/theme/bjh/login",
|
|
logoUrl: logoBaijiahao,
|
|
category: "publish",
|
|
description: "发布媒体 / 浏览器登录检测",
|
|
},
|
|
{
|
|
id: "sohuhao",
|
|
label: "搜狐号",
|
|
shortName: "搜",
|
|
accent: "#fa8c16",
|
|
loginUrl: "https://mp.sohu.com/mpfe/v4/login",
|
|
logoUrl: logoSouhu,
|
|
category: "publish",
|
|
description: "发布媒体 / 浏览器登录检测",
|
|
},
|
|
{
|
|
id: "qiehao",
|
|
label: "企鹅号",
|
|
shortName: "Q",
|
|
accent: "#111827",
|
|
loginUrl: "https://om.qq.com",
|
|
logoUrl: logoQiehao,
|
|
category: "publish",
|
|
description: "发布媒体 / 浏览器登录检测",
|
|
},
|
|
{
|
|
id: "zhihu",
|
|
label: "知乎",
|
|
shortName: "知",
|
|
accent: "#1677ff",
|
|
loginUrl: "https://www.zhihu.com/signin",
|
|
logoUrl: logoZhihu,
|
|
category: "publish",
|
|
description: "发布媒体 / 浏览器登录检测",
|
|
},
|
|
{
|
|
id: "wangyihao",
|
|
label: "网易号",
|
|
shortName: "网",
|
|
accent: "#ff4d4f",
|
|
loginUrl: "https://mp.163.com/login.html",
|
|
logoUrl: logoWangyihao,
|
|
category: "publish",
|
|
description: "发布媒体 / 浏览器登录检测",
|
|
},
|
|
{
|
|
id: "jianshu",
|
|
label: "简书",
|
|
shortName: "简",
|
|
accent: "#f56a5e",
|
|
loginUrl: "https://www.jianshu.com/sign_in",
|
|
logoUrl: logoJianshu,
|
|
category: "publish",
|
|
description: "发布媒体 / 浏览器登录检测",
|
|
},
|
|
{
|
|
id: "bilibili",
|
|
label: "bilibili",
|
|
shortName: "B",
|
|
accent: "#eb2f96",
|
|
loginUrl: "https://www.bilibili.com",
|
|
logoUrl: logoBilibili,
|
|
category: "publish",
|
|
description: "发布媒体 / 浏览器登录检测",
|
|
},
|
|
{
|
|
id: "juejin",
|
|
label: "稀土掘金",
|
|
shortName: "掘",
|
|
accent: "#1677ff",
|
|
loginUrl: "https://juejin.cn/login",
|
|
logoUrl: logoJuejin,
|
|
category: "publish",
|
|
description: "发布媒体 / 浏览器登录检测",
|
|
},
|
|
{
|
|
id: "smzdm",
|
|
label: "什么值得买",
|
|
shortName: "值",
|
|
accent: "#f5222d",
|
|
loginUrl: "https://zhiyou.smzdm.com/user/login",
|
|
logoUrl: logoSmzdm,
|
|
category: "publish",
|
|
description: "发布媒体 / 浏览器登录检测",
|
|
},
|
|
{
|
|
id: "weixin_gzh",
|
|
label: "微信公众号",
|
|
shortName: "微",
|
|
accent: "#13c26b",
|
|
loginUrl: "https://mp.weixin.qq.com/cgi-bin/loginpage",
|
|
logoUrl: logoWeixinGzh,
|
|
category: "publish",
|
|
description: "发布媒体 / 浏览器登录检测",
|
|
},
|
|
{
|
|
id: "zol",
|
|
label: "中关村在线",
|
|
shortName: "Z",
|
|
accent: "#ff4d4f",
|
|
loginUrl: "https://post.zol.com.cn/v2/manage/works/all",
|
|
logoUrl: logoZol,
|
|
category: "publish",
|
|
description: "发布媒体 / 浏览器登录检测",
|
|
},
|
|
{
|
|
id: "dongchedi",
|
|
label: "懂车帝",
|
|
shortName: "懂",
|
|
accent: "#fadb14",
|
|
loginUrl: "https://mp.dcdapp.com/login",
|
|
logoUrl: logoDongchedi,
|
|
category: "publish",
|
|
description: "发布媒体 / 浏览器登录检测",
|
|
},
|
|
];
|
|
|
|
export const desktopMonitoringMediaCatalog: DesktopMediaDefinition[] = [
|
|
{
|
|
id: "deepseek",
|
|
label: "DeepSeek",
|
|
shortName: "D",
|
|
accent: "#4468ff",
|
|
loginUrl: "https://chat.deepseek.com/",
|
|
logoUrl: null,
|
|
category: "monitoring",
|
|
description: "AI 监测 / 登录后可采集",
|
|
},
|
|
{
|
|
id: "qwen",
|
|
label: "通义千问",
|
|
shortName: "Q",
|
|
accent: "#6b46ff",
|
|
loginUrl: "https://www.qianwen.com/",
|
|
logoUrl: null,
|
|
category: "monitoring",
|
|
description: "AI 监测 / 匿名可用",
|
|
},
|
|
{
|
|
id: "doubao",
|
|
label: "豆包",
|
|
shortName: "豆",
|
|
accent: "#00a870",
|
|
loginUrl: "https://www.doubao.com/",
|
|
logoUrl: null,
|
|
category: "monitoring",
|
|
description: "AI 监测 / 匿名可用",
|
|
},
|
|
];
|
|
|
|
export const desktopMediaCatalog = [...desktopPublishMediaCatalog, ...desktopMonitoringMediaCatalog];
|