()
| 33 | } |
| 34 | |
| 35 | async function createUserJs() { |
| 36 | /** 模拟浏览器环境 */ |
| 37 | require('browser-env')(); |
| 38 | |
| 39 | // @ts-ignore |
| 40 | globalThis.unsafeWindow = {}; |
| 41 | |
| 42 | /** @type {import('../packages/scripts/src/index')} */ |
| 43 | // @ts-ignore |
| 44 | const ocs = require(path.join(distPath, 'index.js')); |
| 45 | |
| 46 | /** @return {import('../packages/utils').CreateOptions} */ |
| 47 | const createOptions = () => { |
| 48 | const { CXProject, ZHSProject, ZJYProject, IcveMoocProject, ICourseProject, YKTProject } = ocs; |
| 49 | const projectList = [CXProject, ZHSProject, ZJYProject, IcveMoocProject, ICourseProject, YKTProject] |
| 50 | .map((s) => `【${s.name}】`) |
| 51 | .join(' '); |
| 52 | |
| 53 | const matchMetadata = Array.from( |
| 54 | new Set( |
| 55 | ocs |
| 56 | .definedProjects() |
| 57 | .map((p) => (p.domains || []).map((d) => `*://*.${d}/*`)) |
| 58 | .flat() |
| 59 | ) |
| 60 | ); |
| 61 | |
| 62 | return { |
| 63 | parseRequire: true, |
| 64 | parseResource: true, |
| 65 | resourceBuilder: (key, value) => `const ${key} = \`${value}\`;`, |
| 66 | metaDataFormatter: { |
| 67 | header: '==UserScript==', |
| 68 | footer: '==/UserScript==', |
| 69 | prefix: '// ', |
| 70 | symbol: '@', |
| 71 | gap: '\t'.repeat(4) |
| 72 | }, |
| 73 | metadata: { |
| 74 | name: 'OCS 网课助手', |
| 75 | version: version, |
| 76 | description: [ |
| 77 | 'OCS(online-course-script) 网课助手,官网 https://docs.ocsjs.com ,专注于帮助大学生从网课中释放出来', |
| 78 | '让自己的时间把握在自己的手中,拥有人性化的操作页面,流畅的步骤提示,支持 ', |
| 79 | projectList, |
| 80 | '等网课的学习,作业。具体的功能请查看脚本悬浮窗中的教程页面。' |
| 81 | ].join(' '), |
| 82 | author: 'enncy', |
| 83 | license: 'MIT', |
| 84 | namespace: 'https://enncy.cn', |
| 85 | homepage: 'https://docs.ocsjs.com', |
| 86 | source: 'https://github.com/ocsjs/ocsjs', |
| 87 | icon: 'https://cdn.ocsjs.com/logo.png', |
| 88 | connect: ['enncy.cn', 'icodef.com', 'ocsjs.com', 'zaizhexue.top', 'localhost', '127.0.0.1'], |
| 89 | match: matchMetadata, |
| 90 | grant: [ |
| 91 | 'GM_info', |
| 92 | 'GM_getTab', |
nothing calls this directly
no test coverage detected