few bug fixes
This commit is contained in:
		
							parent
							
								
									f9f621c920
								
							
						
					
					
						commit
						79e2013fbd
					
				| @ -2,7 +2,6 @@ import { | ||||
|   type ChatHistory as ChatHistoryType, | ||||
|   type Message as MessageType | ||||
| } from "~/store/option" | ||||
| import { Storage, browser } from "wxt/browser" | ||||
| 
 | ||||
| type HistoryInfo = { | ||||
|   id: string | ||||
| @ -58,18 +57,15 @@ type ChatHistory = HistoryInfo[] | ||||
| type Prompts = Prompt[] | ||||
| 
 | ||||
| export class PageAssitDatabase { | ||||
|   db: Storage.LocalStorageArea | ||||
|   db: chrome.storage.StorageArea | ||||
| 
 | ||||
|   constructor() { | ||||
|     this.db = browser.storage.local | ||||
|     this.db = chrome.storage.local | ||||
|   } | ||||
| 
 | ||||
|   async getChatHistory(id: string): Promise<MessageHistory> { | ||||
|     return new Promise((resolve, reject) => { | ||||
|       // this.db.get(id, (result) => {
 | ||||
|       //   resolve(result[id] || [])
 | ||||
|       // })
 | ||||
|       this.db.get(id).then((result) => { | ||||
|       this.db.get(id, (result) => { | ||||
|         resolve(result[id] || []) | ||||
|       }) | ||||
|     }) | ||||
| @ -77,10 +73,7 @@ export class PageAssitDatabase { | ||||
| 
 | ||||
|   async getChatHistories(): Promise<ChatHistory> { | ||||
|     return new Promise((resolve, reject) => { | ||||
|       // this.db.get("chatHistories", (result) => {
 | ||||
|       //   resolve(result.chatHistories || [])
 | ||||
|       // })
 | ||||
|       this.db.get("chatHistories").then((result) => { | ||||
|       this.db.get("chatHistories", (result) => { | ||||
|         resolve(result.chatHistories || []) | ||||
|       }) | ||||
|     }) | ||||
| @ -133,10 +126,7 @@ export class PageAssitDatabase { | ||||
| 
 | ||||
|   async getAllPrompts(): Promise<Prompts> { | ||||
|     return new Promise((resolve, reject) => { | ||||
|       // this.db.get("prompts", (result) => {
 | ||||
|       //   resolve(result.prompts || [])
 | ||||
|       // })
 | ||||
|       this.db.get("prompts").then((result) => { | ||||
|       this.db.get("prompts", (result) => { | ||||
|         resolve(result.prompts || []) | ||||
|       }) | ||||
|     }) | ||||
| @ -179,10 +169,7 @@ export class PageAssitDatabase { | ||||
| 
 | ||||
|   async getWebshare(id: string) { | ||||
|     return new Promise((resolve, reject) => { | ||||
|       // this.db.get(id, (result) => {
 | ||||
|       //   resolve(result[id] || [])
 | ||||
|       // })
 | ||||
|       this.db.get(id).then((result) => { | ||||
|       this.db.get(id, (result) => { | ||||
|         resolve(result[id] || []) | ||||
|       }) | ||||
|     }) | ||||
| @ -190,10 +177,7 @@ export class PageAssitDatabase { | ||||
| 
 | ||||
|   async getAllWebshares(): Promise<Webshare[]> { | ||||
|     return new Promise((resolve, reject) => { | ||||
|       // this.db.get("webshares", (result) => {
 | ||||
|       //   resolve(result.webshares || [])
 | ||||
|       // })
 | ||||
|       this.db.get("webshares").then((result) => { | ||||
|       this.db.get("webshares", (result) => { | ||||
|         resolve(result.webshares || []) | ||||
|       }) | ||||
|     }) | ||||
| @ -213,10 +197,7 @@ export class PageAssitDatabase { | ||||
| 
 | ||||
|   async getUserID() { | ||||
|     return new Promise((resolve, reject) => { | ||||
|       // this.db.get("user_id", (result) => {
 | ||||
|       //   resolve(result.user_id || "")
 | ||||
|       // })
 | ||||
|       this.db.get("user_id").then((result) => { | ||||
|       this.db.get("user_id", (result) => { | ||||
|         resolve(result.user_id || "") | ||||
|       }) | ||||
|     }) | ||||
|  | ||||
| @ -1,4 +1,3 @@ | ||||
| import { Storage, browser } from "wxt/browser" | ||||
| import { deleteVector, deleteVectorByFileId } from "./vector" | ||||
| 
 | ||||
| export type Source = { | ||||
| @ -25,105 +24,89 @@ export const generateID = () => { | ||||
|   }) | ||||
| } | ||||
| export class PageAssistKnowledge { | ||||
|   db: Storage.LocalStorageArea | ||||
|   db: chrome.storage.StorageArea | ||||
| 
 | ||||
|   constructor() { | ||||
|     this.db = browser.storage.local | ||||
|     this.db = chrome.storage.local | ||||
|   } | ||||
| 
 | ||||
|   getAll = async (): Promise<Knowledge[]> => { | ||||
|     return new Promise((resolve, reject) => { | ||||
|       // this.db.get(null, (result) => {
 | ||||
|       //   if (chrome.runtime.lastError) {
 | ||||
|       //     reject(chrome.runtime.lastError)
 | ||||
|       //   } else {
 | ||||
|       //     const data = Object.keys(result).map((key) => result[key])
 | ||||
|       //     resolve(data)
 | ||||
|       //   }
 | ||||
|       // })
 | ||||
|       this.db.get(null).then((result) => { | ||||
|         const data = Object.keys(result).map((key) => result[key]) | ||||
|         resolve(data) | ||||
|       this.db.get(null, (result) => { | ||||
|         if (chrome.runtime.lastError) { | ||||
|           reject(chrome.runtime.lastError) | ||||
|         } else { | ||||
|           const data = Object.keys(result).map((key) => result[key]) | ||||
|           resolve(data) | ||||
|         } | ||||
|       }) | ||||
|     }) | ||||
|   } | ||||
| 
 | ||||
|   getById = async (id: string): Promise<Knowledge> => { | ||||
|     return new Promise((resolve, reject) => { | ||||
|       this.db.get(id).then((result) => { | ||||
|         resolve(result[id]) | ||||
|       this.db.get(id, (result) => { | ||||
|         if (chrome.runtime.lastError) { | ||||
|           reject(chrome.runtime.lastError) | ||||
|         } else { | ||||
|           resolve(result[id]) | ||||
|         } | ||||
|       }) | ||||
|     }) | ||||
|      | ||||
|   } | ||||
| 
 | ||||
|   create = async (knowledge: Knowledge): Promise<void> => { | ||||
|     return new Promise((resolve, reject) => { | ||||
|       // this.db.set({ [knowledge.id]: knowledge }, () => {
 | ||||
|       //   if (chrome.runtime.lastError) {
 | ||||
|       //     reject(chrome.runtime.lastError)
 | ||||
|       //   } else {
 | ||||
|       //     resolve()
 | ||||
|       //   }
 | ||||
|       // })
 | ||||
|       this.db.set({ [knowledge.id]: knowledge }).then(() => { | ||||
|         resolve() | ||||
|       this.db.set({ [knowledge.id]: knowledge }, () => { | ||||
|         if (chrome.runtime.lastError) { | ||||
|           reject(chrome.runtime.lastError) | ||||
|         } else { | ||||
|           resolve() | ||||
|         } | ||||
|       }) | ||||
|     }) | ||||
|   } | ||||
| 
 | ||||
|   update = async (knowledge: Knowledge): Promise<void> => { | ||||
|     return new Promise((resolve, reject) => { | ||||
|       // this.db.set({ [knowledge.id]: knowledge }, () => {
 | ||||
|       //   if (chrome.runtime.lastError) {
 | ||||
|       //     reject(chrome.runtime.lastError)
 | ||||
|       //   } else {
 | ||||
|       //     resolve()
 | ||||
|       //   }
 | ||||
|       // })
 | ||||
|       this.db.set({ [knowledge.id]: knowledge }).then(() => { | ||||
|         resolve() | ||||
|       this.db.set({ [knowledge.id]: knowledge }, () => { | ||||
|         if (chrome.runtime.lastError) { | ||||
|           reject(chrome.runtime.lastError) | ||||
|         } else { | ||||
|           resolve() | ||||
|         } | ||||
|       }) | ||||
|     }) | ||||
|   } | ||||
| 
 | ||||
|   delete = async (id: string): Promise<void> => { | ||||
|     return new Promise((resolve, reject) => { | ||||
|       // this.db.remove(id, () => {
 | ||||
|       //   if (chrome.runtime.lastError) {
 | ||||
|       //     reject(chrome.runtime.lastError)
 | ||||
|       //   } else {
 | ||||
|       //     resolve()
 | ||||
|       //   }
 | ||||
|       // })
 | ||||
|       this.db.remove(id).then(() => { | ||||
|         resolve() | ||||
|       this.db.remove(id, () => { | ||||
|         if (chrome.runtime.lastError) { | ||||
|           reject(chrome.runtime.lastError) | ||||
|         } else { | ||||
|           resolve() | ||||
|         } | ||||
|       }) | ||||
|     }) | ||||
|   } | ||||
| 
 | ||||
|   deleteSource = async (id: string, source_id: string): Promise<void> => { | ||||
|     return new Promise((resolve, reject) => { | ||||
|       // this.db.get(id, (result) => {
 | ||||
|       //   if (chrome.runtime.lastError) {
 | ||||
|       //     reject(chrome.runtime.lastError)
 | ||||
|       //   } else {
 | ||||
|       //     const data = result[id] as Knowledge
 | ||||
|       //     data.source = data.source.filter((s) => s.source_id !== source_id)
 | ||||
|       //     this.db.set({ [id]: data }, () => {
 | ||||
|       //       if (chrome.runtime.lastError) {
 | ||||
|       //         reject(chrome.runtime.lastError)
 | ||||
|       //       } else {
 | ||||
|       //         resolve()
 | ||||
|       //       }
 | ||||
|       //     })
 | ||||
|       //   }
 | ||||
|       // })
 | ||||
|       this.db.get(id).then((result) => { | ||||
|         const data = result[id] as Knowledge | ||||
|         data.source = data.source.filter((s) => s.source_id !== source_id) | ||||
|         this.db.set({ [id]: data }).then(() => { | ||||
|           resolve() | ||||
|         }) | ||||
|       this.db.get(id, (result) => { | ||||
|         if (chrome.runtime.lastError) { | ||||
|           reject(chrome.runtime.lastError) | ||||
|         } else { | ||||
|           const data = result[id] as Knowledge | ||||
|           data.source = data.source.filter((s) => s.source_id !== source_id) | ||||
|           this.db.set({ [id]: data }, () => { | ||||
|             if (chrome.runtime.lastError) { | ||||
|               reject(chrome.runtime.lastError) | ||||
|             } else { | ||||
|               resolve() | ||||
|             } | ||||
|           }) | ||||
|         } | ||||
|       }) | ||||
|     }) | ||||
|   } | ||||
|  | ||||
							
								
								
									
										174
									
								
								src/db/vector.ts
									
									
									
									
									
								
							
							
						
						
									
										174
									
								
								src/db/vector.ts
									
									
									
									
									
								
							| @ -1,5 +1,3 @@ | ||||
| import { Storage, browser } from "wxt/browser" | ||||
| 
 | ||||
| interface PageAssistVector { | ||||
|   file_id: string | ||||
|   content: string | ||||
| @ -13,10 +11,10 @@ export type VectorData = { | ||||
| } | ||||
| 
 | ||||
| export class PageAssistVectorDb { | ||||
|   db: Storage.LocalStorageArea | ||||
|   db: chrome.storage.StorageArea | ||||
| 
 | ||||
|   constructor() { | ||||
|     this.db = browser.storage.local | ||||
|     this.db = chrome.storage.local | ||||
|   } | ||||
| 
 | ||||
|   insertVector = async ( | ||||
| @ -24,55 +22,36 @@ export class PageAssistVectorDb { | ||||
|     vector: PageAssistVector[] | ||||
|   ): Promise<void> => { | ||||
|     return new Promise((resolve, reject) => { | ||||
|       // this.db.get(id, (result) => {
 | ||||
|       //   if (chrome.runtime.lastError) {
 | ||||
|       //     reject(chrome.runtime.lastError)
 | ||||
|       //   } else {
 | ||||
|       //     const data = result[id] as VectorData
 | ||||
|       //     if (!data) {
 | ||||
|       //       this.db.set({ [id]: { id, vectors: vector } }, () => {
 | ||||
|       //         if (chrome.runtime.lastError) {
 | ||||
|       //           reject(chrome.runtime.lastError)
 | ||||
|       //         } else {
 | ||||
|       //           resolve()
 | ||||
|       //         }
 | ||||
|       //       })
 | ||||
|       //     } else {
 | ||||
|       //       this.db.set(
 | ||||
|       //         {
 | ||||
|       //           [id]: {
 | ||||
|       //             ...data,
 | ||||
|       //             vectors: data.vectors.concat(vector)
 | ||||
|       //           }
 | ||||
|       //         },
 | ||||
|       //         () => {
 | ||||
|       //           if (chrome.runtime.lastError) {
 | ||||
|       //             reject(chrome.runtime.lastError)
 | ||||
|       //           } else {
 | ||||
|       //             resolve()
 | ||||
|       //           }
 | ||||
|       //         }
 | ||||
|       //       )
 | ||||
|       //     }
 | ||||
|       //   }
 | ||||
|       // })
 | ||||
|       this.db.get(id).then((result) => { | ||||
|         const data = result[id] as VectorData | ||||
|         if (!data) { | ||||
|           this.db.set({ [id]: { id, vectors: vector } }).then(() => { | ||||
|             resolve() | ||||
|           }) | ||||
|       this.db.get(id, (result) => { | ||||
|         if (chrome.runtime.lastError) { | ||||
|           reject(chrome.runtime.lastError) | ||||
|         } else { | ||||
|           this.db | ||||
|             .set({ | ||||
|               [id]: { | ||||
|                 ...data, | ||||
|                 vectors: data.vectors.concat(vector) | ||||
|           const data = result[id] as VectorData | ||||
|           if (!data) { | ||||
|             this.db.set({ [id]: { id, vectors: vector } }, () => { | ||||
|               if (chrome.runtime.lastError) { | ||||
|                 reject(chrome.runtime.lastError) | ||||
|               } else { | ||||
|                 resolve() | ||||
|               } | ||||
|             }) | ||||
|             .then(() => { | ||||
|               resolve() | ||||
|             }) | ||||
|           } else { | ||||
|             this.db.set( | ||||
|               { | ||||
|                 [id]: { | ||||
|                   ...data, | ||||
|                   vectors: data.vectors.concat(vector) | ||||
|                 } | ||||
|               }, | ||||
|               () => { | ||||
|                 if (chrome.runtime.lastError) { | ||||
|                   reject(chrome.runtime.lastError) | ||||
|                 } else { | ||||
|                   resolve() | ||||
|                 } | ||||
|               } | ||||
|             ) | ||||
|           } | ||||
|         } | ||||
|       }) | ||||
|     }) | ||||
| @ -80,72 +59,56 @@ export class PageAssistVectorDb { | ||||
| 
 | ||||
|   deleteVector = async (id: string): Promise<void> => { | ||||
|     return new Promise((resolve, reject) => { | ||||
|       // this.db.remove(id, () => {
 | ||||
|       //   if (chrome.runtime.lastError) {
 | ||||
|       //     reject(chrome.runtime.lastError)
 | ||||
|       //   } else {
 | ||||
|       //     resolve()
 | ||||
|       //   }
 | ||||
|       // })
 | ||||
|       this.db.remove(id).then(() => { | ||||
|         resolve() | ||||
|       this.db.remove(id, () => { | ||||
|         if (chrome.runtime.lastError) { | ||||
|           reject(chrome.runtime.lastError) | ||||
|         } else { | ||||
|           resolve() | ||||
|         } | ||||
|       }) | ||||
|     }) | ||||
|   } | ||||
| 
 | ||||
|   deleteVectorByFileId = async (id: string, file_id: string): Promise<void> => { | ||||
|     return new Promise((resolve, reject) => { | ||||
|       // this.db.get(id, (result) => {
 | ||||
|       //   if (chrome.runtime.lastError) {
 | ||||
|       //     reject(chrome.runtime.lastError)
 | ||||
|       //   } else {
 | ||||
|       //     const data = result[id] as VectorData
 | ||||
|       //     data.vectors = data.vectors.filter((v) => v.file_id !== file_id)
 | ||||
|       //     this.db.set({ [id]: data }, () => {
 | ||||
|       //       if (chrome.runtime.lastError) {
 | ||||
|       //         reject(chrome.runtime.lastError)
 | ||||
|       //       } else {
 | ||||
|       //         resolve()
 | ||||
|       //       }
 | ||||
|       //     })
 | ||||
|       //   }
 | ||||
|       // })
 | ||||
|       this.db.get(id).then((result) => { | ||||
|         const data = result[id] as VectorData | ||||
|         data.vectors = data.vectors.filter((v) => v.file_id !== file_id) | ||||
|         this.db.set({ [id]: data }).then(() => { | ||||
|           resolve() | ||||
|         }) | ||||
|       this.db.get(id, (result) => { | ||||
|         if (chrome.runtime.lastError) { | ||||
|           reject(chrome.runtime.lastError) | ||||
|         } else { | ||||
|           const data = result[id] as VectorData | ||||
|           data.vectors = data.vectors.filter((v) => v.file_id !== file_id) | ||||
|           this.db.set({ [id]: data }, () => { | ||||
|             if (chrome.runtime.lastError) { | ||||
|               reject(chrome.runtime.lastError) | ||||
|             } else { | ||||
|               resolve() | ||||
|             } | ||||
|           }) | ||||
|         } | ||||
|       }) | ||||
|     }) | ||||
|   } | ||||
| 
 | ||||
|   getVector = async (id: string): Promise<VectorData> => { | ||||
|     return new Promise((resolve, reject) => { | ||||
|       // this.db.get(id, (result) => {
 | ||||
|       //   if (chrome.runtime.lastError) {
 | ||||
|       //     reject(chrome.runtime.lastError)
 | ||||
|       //   } else {
 | ||||
|       //     resolve(result[id] as VectorData)
 | ||||
|       //   }
 | ||||
|       // })
 | ||||
|       this.db.get(id).then((result) => { | ||||
|         resolve(result[id] as VectorData) | ||||
|       this.db.get(id, (result) => { | ||||
|         if (chrome.runtime.lastError) { | ||||
|           reject(chrome.runtime.lastError) | ||||
|         } else { | ||||
|           resolve(result[id] as VectorData) | ||||
|         } | ||||
|       }) | ||||
|     }) | ||||
|   } | ||||
| 
 | ||||
|   getAll = async (): Promise<VectorData[]> => { | ||||
|     return new Promise((resolve, reject) => { | ||||
|       // this.db.get(null, (result) => {
 | ||||
|       //   if (chrome.runtime.lastError) {
 | ||||
|       //     reject(chrome.runtime.lastError)
 | ||||
|       //   } else {
 | ||||
|       //     resolve(Object.values(result))
 | ||||
|       //   }
 | ||||
|       // })
 | ||||
|       this.db.get(null).then((result) => { | ||||
|         resolve(Object.values(result)) | ||||
|       this.db.get(null, (result) => { | ||||
|         if (chrome.runtime.lastError) { | ||||
|           reject(chrome.runtime.lastError) | ||||
|         } else { | ||||
|           resolve(Object.values(result)) | ||||
|         } | ||||
|       }) | ||||
|     }) | ||||
|   } | ||||
| @ -156,15 +119,12 @@ export class PageAssistVectorDb { | ||||
|       data.forEach((d) => { | ||||
|         obj[d.id] = d | ||||
|       }) | ||||
|       // this.db.set(obj, () => {
 | ||||
|       //   if (chrome.runtime.lastError) {
 | ||||
|       //     reject(chrome.runtime.lastError)
 | ||||
|       //   } else {
 | ||||
|       //     resolve()
 | ||||
|       //   }
 | ||||
|       // })
 | ||||
|       this.db.set(obj).then(() => { | ||||
|         resolve() | ||||
|       this.db.set(obj, () => { | ||||
|         if (chrome.runtime.lastError) { | ||||
|           reject(chrome.runtime.lastError) | ||||
|         } else { | ||||
|           resolve() | ||||
|         } | ||||
|       }) | ||||
|     }) | ||||
|   } | ||||
|  | ||||
| @ -1,13 +1,13 @@ | ||||
| import { getOllamaURL, isOllamaRunning } from "../services/ollama" | ||||
| import { browser } from "wxt/browser" | ||||
| 
 | ||||
| import { setBadgeBackgroundColor, setBadgeText, setTitle } from "@/utils/action" | ||||
| const progressHuman = (completed: number, total: number) => { | ||||
|   return ((completed / total) * 100).toFixed(0) + "%" | ||||
| } | ||||
| 
 | ||||
| const clearBadge = () => { | ||||
|   browser.action.setBadgeText({ text: "" }) | ||||
|   browser.action.setTitle({ title: "" }) | ||||
|   setBadgeText({ text: "" }) | ||||
|   setTitle({ title: "" }) | ||||
| } | ||||
| const streamDownload = async (url: string, model: string) => { | ||||
|   url += "/api/pull" | ||||
| @ -42,16 +42,16 @@ const streamDownload = async (url: string, model: string) => { | ||||
|         completed?: number | ||||
|       } | ||||
|       if (json.total && json.completed) { | ||||
|         browser.action.setBadgeText({ | ||||
|         setBadgeText({ | ||||
|           text: progressHuman(json.completed, json.total) | ||||
|         }) | ||||
|         browser.action.setBadgeBackgroundColor({ color: "#0000FF" }) | ||||
|         setBadgeBackgroundColor({ color: "#0000FF" }) | ||||
|       } else { | ||||
|         browser.action.setBadgeText({ text: "🏋️♂️" }) | ||||
|         browser.action.setBadgeBackgroundColor({ color: "#FFFFFF" }) | ||||
|         setBadgeText({ text: "🏋️♂️" }) | ||||
|         setBadgeBackgroundColor({ color: "#FFFFFF" }) | ||||
|       } | ||||
| 
 | ||||
|       browser.action.setTitle({ title: json.status }) | ||||
|       setTitle({ title: json.status }) | ||||
| 
 | ||||
|       if (json.status === "success") { | ||||
|         isSuccess = true | ||||
| @ -62,13 +62,13 @@ const streamDownload = async (url: string, model: string) => { | ||||
|   } | ||||
| 
 | ||||
|   if (isSuccess) { | ||||
|     browser.action.setBadgeText({ text: "✅" }) | ||||
|     browser.action.setBadgeBackgroundColor({ color: "#00FF00" }) | ||||
|     browser.action.setTitle({ title: "Model pulled successfully" }) | ||||
|     setBadgeText({ text: "✅" }) | ||||
|     setBadgeBackgroundColor({ color: "#00FF00" }) | ||||
|     setTitle({ title: "Model pulled successfully" }) | ||||
|   } else { | ||||
|     browser.action.setBadgeText({ text: "❌" }) | ||||
|     browser.action.setBadgeBackgroundColor({ color: "#FF0000" }) | ||||
|     browser.action.setTitle({ title: "Model pull failed" }) | ||||
|     setBadgeText({ text: "❌" }) | ||||
|     setBadgeBackgroundColor({ color: "#FF0000" }) | ||||
|     setTitle({ title: "Model pull failed" }) | ||||
|   } | ||||
| 
 | ||||
|   setTimeout(() => { | ||||
| @ -86,9 +86,9 @@ export default defineBackground({ | ||||
|         const isRunning = await isOllamaRunning() | ||||
| 
 | ||||
|         if (!isRunning) { | ||||
|           browser.action.setBadgeText({ text: "E" }) | ||||
|           browser.action.setBadgeBackgroundColor({ color: "#FF0000" }) | ||||
|           browser.action.setTitle({ title: "Ollama is not running" }) | ||||
|           setBadgeText({ text: "E" }) | ||||
|           setBadgeBackgroundColor({ color: "#FF0000" }) | ||||
|           setTitle({ title: "Ollama is not running" }) | ||||
|           setTimeout(() => { | ||||
|             clearBadge() | ||||
|           }, 5000) | ||||
| @ -98,9 +98,8 @@ export default defineBackground({ | ||||
|       } | ||||
|     }) | ||||
| 
 | ||||
|     if (browser?.action) { | ||||
|       browser.action.onClicked.addListener((tab) => { | ||||
|         console.log("browser.action.onClicked.addListener") | ||||
|     if (import.meta.env.BROWSER === "chrome") { | ||||
|       chrome.action.onClicked.addListener((tab) => { | ||||
|         browser.tabs.create({ url: browser.runtime.getURL("/options.html") }) | ||||
|       }) | ||||
|     } else { | ||||
|  | ||||
| @ -4,7 +4,7 @@ import { | ||||
|   isTweet, | ||||
|   isTwitterTimeline, | ||||
|   parseTweet, | ||||
|   parseTwitterTimeline, | ||||
|   parseTwitterTimeline | ||||
| } from "@/parser/twitter" | ||||
| import { isGoogleDocs, parseGoogleDocs } from "@/parser/google-docs" | ||||
| import { cleanUnwantedUnicode } from "@/utils/clean" | ||||
| @ -24,18 +24,35 @@ const _getHtml = () => { | ||||
| 
 | ||||
| export const getDataFromCurrentTab = async () => { | ||||
|   const result = new Promise((resolve) => { | ||||
|     chrome.tabs.query({ active: true, currentWindow: true }, async (tabs) => { | ||||
|       const tab = tabs[0] | ||||
|     if (import.meta.env.BROWSER === "chrome") { | ||||
|       chrome.tabs.query({ active: true, currentWindow: true }, async (tabs) => { | ||||
|         const tab = tabs[0] | ||||
| 
 | ||||
|       const data = await chrome.scripting.executeScript({ | ||||
|         target: { tabId: tab.id }, | ||||
|         func: _getHtml | ||||
|         const data = await chrome.scripting.executeScript({ | ||||
|           target: { tabId: tab.id }, | ||||
|           func: _getHtml | ||||
|         }) | ||||
| 
 | ||||
|         if (data.length > 0) { | ||||
|           resolve(data[0].result) | ||||
|         } | ||||
|       }) | ||||
|     } else { | ||||
|       browser.tabs | ||||
|         .query({ active: true, currentWindow: true }) | ||||
|         .then(async (tabs) => { | ||||
|           const tab = tabs[0] | ||||
| 
 | ||||
|       if (data.length > 0) { | ||||
|         resolve(data[0].result) | ||||
|       } | ||||
|     }) | ||||
|           const data = await browser.scripting.executeScript({ | ||||
|             target: { tabId: tab.id }, | ||||
|             func: _getHtml | ||||
|           }) | ||||
| 
 | ||||
|           if (data.length > 0) { | ||||
|             resolve(data[0].result) | ||||
|           } | ||||
|         }) | ||||
|     } | ||||
|   }) as Promise<{ | ||||
|     url: string | ||||
|     content: string | ||||
|  | ||||
| @ -95,19 +95,36 @@ const getGoogleDocs = () => { | ||||
| 
 | ||||
| export const parseGoogleDocs = async () => { | ||||
|   const result = new Promise((resolve) => { | ||||
|     chrome.tabs.query({ active: true, currentWindow: true }, async (tabs) => { | ||||
|       const tab = tabs[0] | ||||
|     if (import.meta.env.BROWSER === "chrome") { | ||||
|       chrome.tabs.query({ active: true, currentWindow: true }, async (tabs) => { | ||||
|         const tab = tabs[0] | ||||
| 
 | ||||
|       const data = await chrome.scripting.executeScript({ | ||||
|         target: { tabId: tab.id }, | ||||
|         world: "MAIN", | ||||
|         func: getGoogleDocs | ||||
|         const data = await chrome.scripting.executeScript({ | ||||
|           target: { tabId: tab.id }, | ||||
|           world: "MAIN", | ||||
|           func: getGoogleDocs | ||||
|         }) | ||||
| 
 | ||||
|         if (data.length > 0) { | ||||
|           resolve(data[0].result) | ||||
|         } | ||||
|       }) | ||||
|     } else { | ||||
|       browser.tabs | ||||
|         .query({ active: true, currentWindow: true }) | ||||
|         .then(async (tabs) => { | ||||
|           const tab = tabs[0] | ||||
| 
 | ||||
|       if (data.length > 0) { | ||||
|         resolve(data[0].result) | ||||
|       } | ||||
|     }) | ||||
|           const data = await browser.scripting.executeScript({ | ||||
|             target: { tabId: tab.id }, | ||||
|             func: getGoogleDocs | ||||
|           }) | ||||
| 
 | ||||
|           if (data.length > 0) { | ||||
|             resolve(data[0].result) | ||||
|           } | ||||
|         }) | ||||
|     } | ||||
|   }) as Promise<{ | ||||
|     content?: string | ||||
|   }> | ||||
|  | ||||
							
								
								
									
										25
									
								
								src/utils/action.ts
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										25
									
								
								src/utils/action.ts
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,25 @@ | ||||
| import { browser } from "wxt/browser" | ||||
| 
 | ||||
| export const setTitle = ({ title }: { title: string }) => { | ||||
|   if (import.meta.env.BROWSER === "chrome") { | ||||
|     chrome.action.setTitle({ title }) | ||||
|   } else { | ||||
|     browser.browserAction.setTitle({ title }) | ||||
|   } | ||||
| } | ||||
| 
 | ||||
| export const setBadgeBackgroundColor = ({ color }: { color: string }) => { | ||||
|   if (import.meta.env.BROWSER === "chrome") { | ||||
|     chrome.action.setBadgeBackgroundColor({ color }) | ||||
|   } else { | ||||
|     browser.browserAction.setBadgeBackgroundColor({ color }) | ||||
|   } | ||||
| } | ||||
| 
 | ||||
| export const setBadgeText = ({ text }: { text: string }) => { | ||||
|   if (import.meta.env.BROWSER === "chrome") { | ||||
|     chrome.action.setBadgeText({ text }) | ||||
|   } else { | ||||
|     browser.browserAction.setBadgeText({ text }) | ||||
|   } | ||||
| } | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user