Skip to content

Commit 142f886

Browse files
committed
feat: 补充自托管应用识别规则
新增 Paperless-ngx、Mealie、Planka、媒体自动化和下载管理等自托管应用的页面与资源匹配规则。 补充对应技术链接,并将版本升至 1.1.8。 验证:npx prettier --write .;npx prettier --check .;pnpm run typecheck;pnpm run lint;JSON/正则全量校验;pnpm run build。
1 parent fabae7f commit 142f886

4 files changed

Lines changed: 509 additions & 1 deletion

File tree

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"name": "stackprism",
33
"private": true,
4-
"version": "1.1.7",
4+
"version": "1.1.8",
55
"type": "module",
66
"description": "StackPrism 用于检测网页前端、后端、CDN、SaaS、广告营销、统计、登录、支付、网站程序和主题模板线索。",
77
"scripts": {

public/rules/page/admin-panels-page.json

Lines changed: 207 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -266,6 +266,213 @@
266266
{
267267
"name": "ntfy",
268268
"patterns": ["<title>\\s*ntfy(?:\\s*</title>|\\s+-)", "ntfy[^\\s\"'<>]*\\.(?:js|css|svg|png)(?:\\?|$)"]
269+
},
270+
{
271+
"name": "Paperless-ngx",
272+
"patterns": [
273+
"<title>\\s*Paperless(?:-ngx)?(?:\\s*</title>|\\s+-)",
274+
"paperless(?:-ngx)?[^\\s\"'<>]*\\.(?:js|css|svg|png|webp)(?:\\?|$)"
275+
]
276+
},
277+
{
278+
"name": "Papermerge",
279+
"patterns": ["<title>\\s*Papermerge(?:\\s*</title>|\\s+-)", "papermerge[^\\s\"'<>]*\\.(?:js|css|svg|png|webp)(?:\\?|$)"]
280+
},
281+
{
282+
"name": "Stirling PDF",
283+
"patterns": [
284+
"<title>\\s*Stirling(?:\\s+PDF)?(?:\\s*</title>|\\s+-)",
285+
"stirling(?:-?pdf)?[^\\s\"'<>]*\\.(?:js|css|svg|png|webp)(?:\\?|$)"
286+
]
287+
},
288+
{
289+
"name": "Docmost",
290+
"patterns": ["<title>\\s*Docmost(?:\\s*</title>|\\s+-)", "docmost[^\\s\"'<>]*\\.(?:js|css|svg|png|webp)(?:\\?|$)"]
291+
},
292+
{
293+
"name": "CryptPad",
294+
"patterns": ["<title>\\s*CryptPad(?:\\s*</title>|\\s+-)", "cryptpad[^\\s\"'<>]*\\.(?:js|css|svg|png|webp)(?:\\?|$)"]
295+
},
296+
{
297+
"name": "ONLYOFFICE Docs",
298+
"patterns": [
299+
"<title>\\s*ONLYOFFICE(?:\\s+Docs)?(?:\\s*</title>|\\s+-)",
300+
"(?:^|/)web-apps/apps/(?:api|documenteditor|presentationeditor|spreadsheeteditor)(?:/|[?#]|$)"
301+
]
302+
},
303+
{
304+
"name": "Collabora Online",
305+
"patterns": ["<title>\\s*Collabora Online(?:\\s*</title>|\\s+-)", "(?:^|/)browser/[^\\s\"'<>]*/cool\\.html(?:[?#]|$)"]
306+
},
307+
{
308+
"name": "Planka",
309+
"patterns": ["<title>\\s*Planka(?:\\s*</title>|\\s+-)", "planka[^\\s\"'<>]*\\.(?:js|css|svg|png|webp)(?:\\?|$)"]
310+
},
311+
{
312+
"name": "Focalboard",
313+
"patterns": ["<title>\\s*Focalboard(?:\\s*</title>|\\s+-)", "focalboard[^\\s\"'<>]*\\.(?:js|css|svg|png)(?:\\?|$)"]
314+
},
315+
{
316+
"name": "Vikunja",
317+
"patterns": ["<title>\\s*Vikunja(?:\\s*</title>|\\s+-)", "vikunja[^\\s\"'<>]*\\.(?:js|css|svg|png|webp)(?:\\?|$)"]
318+
},
319+
{
320+
"name": "Huly",
321+
"patterns": ["<title>\\s*Huly(?:\\s*</title>|\\s+-)", "huly[^\\s\"'<>]*\\.(?:js|css|svg|png|webp)(?:\\?|$)"]
322+
},
323+
{
324+
"name": "Linkwarden",
325+
"patterns": ["<title>\\s*Linkwarden(?:\\s*</title>|\\s+-)", "linkwarden[^\\s\"'<>]*\\.(?:js|css|svg|png|webp)(?:\\?|$)"]
326+
},
327+
{
328+
"name": "linkding",
329+
"patterns": ["<title>\\s*linkding(?:\\s*</title>|\\s+-)", "linkding[^\\s\"'<>]*\\.(?:js|css|svg|png)(?:\\?|$)"]
330+
},
331+
{
332+
"name": "Shaarli",
333+
"patterns": ["<title>\\s*Shaarli(?:\\s*</title>|\\s+-)", "shaarli[^\\s\"'<>]*\\.(?:js|css|svg|png)(?:\\?|$)"]
334+
},
335+
{
336+
"name": "ArchiveBox",
337+
"patterns": ["<title>\\s*ArchiveBox(?:\\s*</title>|\\s+-)", "archivebox[^\\s\"'<>]*\\.(?:js|css|svg|png|webp)(?:\\?|$)"]
338+
},
339+
{
340+
"name": "Mealie",
341+
"patterns": ["<title>\\s*Mealie(?:\\s*</title>|\\s+-)", "mealie[^\\s\"'<>]*\\.(?:js|css|svg|png|webp)(?:\\?|$)"]
342+
},
343+
{
344+
"name": "Tandoor Recipes",
345+
"patterns": [
346+
"<title>\\s*Tandoor(?:\\s+Recipes)?(?:\\s*</title>|\\s+-)",
347+
"tandoor[^\\s\"'<>]*\\.(?:js|css|svg|png|webp)(?:\\?|$)"
348+
]
349+
},
350+
{
351+
"name": "Grocy",
352+
"patterns": ["<title>\\s*Grocy(?:\\s*</title>|\\s+-)", "grocy[^\\s\"'<>]*\\.(?:js|css|svg|png|webp)(?:\\?|$)"]
353+
},
354+
{
355+
"name": "Monica",
356+
"confidence": "",
357+
"patterns": [
358+
"<title>\\s*Monica(?:\\s*</title>|\\s+-\\s+Personal CRM)",
359+
"monica[^\\s\"'<>]*\\.(?:js|css|svg|png|webp)(?:\\?|$)"
360+
]
361+
},
362+
{
363+
"name": "Actual Budget",
364+
"patterns": [
365+
"<title>\\s*Actual Budget(?:\\s*</title>|\\s+-)",
366+
"actual-(?:budget|server)[^\\s\"'<>]*\\.(?:js|css|svg|png|webp)(?:\\?|$)"
367+
]
368+
},
369+
{
370+
"name": "Firefly III",
371+
"patterns": ["<title>\\s*Firefly III(?:\\s*</title>|\\s+-)", "firefly-iii[^\\s\"'<>]*\\.(?:js|css|svg|png|webp)(?:\\?|$)"]
372+
},
373+
{
374+
"name": "Invoice Ninja",
375+
"patterns": [
376+
"<title>\\s*Invoice Ninja(?:\\s*</title>|\\s+-)",
377+
"(?:invoice-ninja|invoiceninja)[^\\s\"'<>]*\\.(?:js|css|svg|png|webp)(?:\\?|$)"
378+
]
379+
},
380+
{
381+
"name": "Kimai",
382+
"patterns": ["<title>\\s*Kimai(?:\\s*</title>|\\s+-)", "kimai[^\\s\"'<>]*\\.(?:js|css|svg|png|webp)(?:\\?|$)"]
383+
},
384+
{
385+
"name": "Snipe-IT",
386+
"patterns": [
387+
"<title>\\s*Snipe-IT(?:\\s*</title>|\\s+-)",
388+
"(?:snipe-it|snipeit)[^\\s\"'<>]*\\.(?:js|css|svg|png|webp)(?:\\?|$)"
389+
]
390+
},
391+
{
392+
"name": "Plex",
393+
"confidence": "",
394+
"patterns": [
395+
"<title>\\s*Plex(?:\\s*</title>|\\s+-)",
396+
"(?:^|[\\/._-])plex(?:[\\/._-]|[^\\s\"'<>]*\\.(?:js|css|svg|png|webp)(?:\\?|$))"
397+
]
398+
},
399+
{
400+
"name": "Emby",
401+
"patterns": ["<title>\\s*Emby(?:\\s*</title>|\\s+-)", "emby[^\\s\"'<>]*\\.(?:js|css|svg|png|webp)(?:\\?|$)"]
402+
},
403+
{
404+
"name": "Jellyseerr",
405+
"patterns": ["<title>\\s*Jellyseerr(?:\\s*</title>|\\s+-)", "jellyseerr[^\\s\"'<>]*\\.(?:js|css|svg|png|webp)(?:\\?|$)"]
406+
},
407+
{
408+
"name": "Overseerr",
409+
"patterns": ["<title>\\s*Overseerr(?:\\s*</title>|\\s+-)", "overseerr[^\\s\"'<>]*\\.(?:js|css|svg|png|webp)(?:\\?|$)"]
410+
},
411+
{
412+
"name": "Komga",
413+
"patterns": ["<title>\\s*Komga(?:\\s*</title>|\\s+-)", "komga[^\\s\"'<>]*\\.(?:js|css|svg|png|webp)(?:\\?|$)"]
414+
},
415+
{
416+
"name": "Kavita",
417+
"confidence": "",
418+
"patterns": ["<title>\\s*Kavita(?:\\s*</title>|\\s+-)", "kavita[^\\s\"'<>]*\\.(?:js|css|svg|png|webp)(?:\\?|$)"]
419+
},
420+
{
421+
"name": "Calibre-Web",
422+
"patterns": ["<title>\\s*Calibre-Web(?:\\s*</title>|\\s+-)", "calibre-web[^\\s\"'<>]*\\.(?:js|css|svg|png|webp)(?:\\?|$)"]
423+
},
424+
{
425+
"name": "Tube Archivist",
426+
"patterns": [
427+
"<title>\\s*Tube Archivist(?:\\s*</title>|\\s+-)",
428+
"(?:tube-archivist|tubearchivist)[^\\s\"'<>]*\\.(?:js|css|svg|png|webp)(?:\\?|$)"
429+
]
430+
},
431+
{
432+
"name": "Sonarr",
433+
"patterns": ["<title>\\s*Sonarr(?:\\s*</title>|\\s+-)", "sonarr[^\\s\"'<>]*\\.(?:js|css|svg|png|webp)(?:\\?|$)"]
434+
},
435+
{
436+
"name": "Radarr",
437+
"patterns": ["<title>\\s*Radarr(?:\\s*</title>|\\s+-)", "radarr[^\\s\"'<>]*\\.(?:js|css|svg|png|webp)(?:\\?|$)"]
438+
},
439+
{
440+
"name": "Lidarr",
441+
"patterns": ["<title>\\s*Lidarr(?:\\s*</title>|\\s+-)", "lidarr[^\\s\"'<>]*\\.(?:js|css|svg|png|webp)(?:\\?|$)"]
442+
},
443+
{
444+
"name": "Readarr",
445+
"patterns": ["<title>\\s*Readarr(?:\\s*</title>|\\s+-)", "readarr[^\\s\"'<>]*\\.(?:js|css|svg|png|webp)(?:\\?|$)"]
446+
},
447+
{
448+
"name": "Bazarr",
449+
"patterns": ["<title>\\s*Bazarr(?:\\s*</title>|\\s+-)", "bazarr[^\\s\"'<>]*\\.(?:js|css|svg|png|webp)(?:\\?|$)"]
450+
},
451+
{
452+
"name": "Prowlarr",
453+
"patterns": ["<title>\\s*Prowlarr(?:\\s*</title>|\\s+-)", "prowlarr[^\\s\"'<>]*\\.(?:js|css|svg|png|webp)(?:\\?|$)"]
454+
},
455+
{
456+
"name": "Jackett",
457+
"patterns": ["<title>\\s*Jackett(?:\\s*</title>|\\s+-)", "jackett[^\\s\"'<>]*\\.(?:js|css|svg|png|webp)(?:\\?|$)"]
458+
},
459+
{
460+
"name": "qBittorrent Web UI",
461+
"patterns": [
462+
"<title>\\s*qBittorrent(?:\\s+Web\\s+UI)?(?:\\s*</title>|\\s+-)",
463+
"qbittorrent[^\\s\"'<>]*\\.(?:js|css|svg|png)(?:\\?|$)"
464+
]
465+
},
466+
{
467+
"name": "Transmission Web",
468+
"patterns": [
469+
"<title>\\s*Transmission(?:\\s+Web\\s+Interface)?(?:\\s*</title>|\\s+-)",
470+
"(?:^|/)transmission/web/(?:style|javascript|images)(?:/|[?#]|$)"
471+
]
472+
},
473+
{
474+
"name": "SABnzbd",
475+
"patterns": ["<title>\\s*SABnzbd(?:\\s*</title>|\\s+-)", "sabnzbd[^\\s\"'<>]*\\.(?:js|css|svg|png|webp)(?:\\?|$)"]
269476
}
270477
]
271478
}

0 commit comments

Comments
 (0)