Repository Analysis

talebook/talebook

一个简单好用的个人书库

6.3 Low AI signal View on GitHub

Analysis Overview

This report presents the forensic synthetic code analysis of talebook/talebook, a JavaScript project with 5,567 GitHub stars. SynthScan v2.0 examined 187,319 lines of code across 510 source files, recording 985 pattern matches distributed across 15 syntactic categories. The overall adjusted score of 6.3 places this repository in the Low AI signal band.

The scanner applied 160+ deterministic lexical heuristics, multi-line block detectors, abstract syntax tree depth profilers, and a cross-file Jaccard similarity matrix to construct a statistically normalised synthetic code estimate. All matches are individually weighted by severity coefficient and contextual multiplier before summation, and the resulting headline score is temporally discounted to account for the repository's development history relative to the commercial emergence of large language model coding tooling (November 2022 onward).

6.3
Adjusted Score
6.3
Raw Score
100%
Time Factor
2026-07-14
Last Push
5.6K
Stars
JavaScript
Language
187.3K
Lines of Code
510
Files
985
Pattern Hits
2026-07-14
Scan Date
0.01
HC Hit Rate

What These Metrics Mean

Adjusted Score
Primary synthetic code indicator. Raw score normalised per 1,000 lines of code and multiplied by the temporal discount factor. This is the definitive comparative metric — use it to rank repositories by AI authorship density.
Raw Score
The unmodified sum of all severity-weighted, context-multiplied pattern match scores before temporal discounting. Reflects the absolute signal strength independent of when the repository was last active.
Time Factor
The temporal discount multiplier (0–100%) applied to the raw score. Repositories last updated before ChatGPT's launch (Nov 2022) receive a 5% factor. Full signal is only assigned to repositories active in the post-adoption era (Jan 2024+).
Pattern Hits
Total count of individual pattern matches across all files and categories. A high hit count with a low score may indicate a very large codebase with isolated AI snippets; a low count with a high score indicates dense, concentrated AI signatures.
HC Hit Rate
High+Critical pattern hits per file, averaged across the repository. This orthogonal signal catches repositories where a few files are densely packed with high-severity AI tells — a strong indicator even when the normalised score appears moderate due to codebase size.
Lines of Code / Files
Total lines and files analysed. The scanner examines 94 file extensions. These denominators are used to normalise the score, enabling fair comparison between repositories of vastly different sizes.

Score History

This chart maps the temporal evolution of the adjusted synthetic code score across successive scan runs. An upward trajectory indicates ongoing incorporation of AI-generated code or expanding LLM-assisted scaffolding; a stable or declining trajectory may reflect active human refactoring, code removal, or the adoption of stricter authorship policies. The dashed secondary line (right axis) independently tracks total raw pattern hit count, which can diverge from the normalised score when codebase size changes significantly between scans.

Severity Breakdown

Classifies detected patterns by their diagnostic confidence and structural impact. CRITICAL patterns (coefficient 10) represent definitive synthetic signatures — hallucinated imports, explicit LLM attribution metadata — virtually never produced by human authors. HIGH (5) indicates strong structural tells such as cross-file repetition or cross-linguistic idioms. MEDIUM (2) covers recognisable conversational padding and AI-specific vocabulary. LOW (1) captures subtle indicators like tautological comments and generic boilerplate that require density to carry independent signal.

CRITICAL 6HIGH 1MEDIUM 69LOW 909

Directory Score Breakdown

This horizontal bar chart decomposes the repository's raw synthetic code score by top-level directory, allowing you to pinpoint precisely which modules or components carry the highest AI authorship density. Directories with disproportionately high scores relative to their size warrant targeted manual review: concentrated AI signatures often trace back to mass-generated configuration layers, auto-ported test suites, LLM-scaffolded boilerplate classes, or entire subsystems authored under heavy copilot assistance. Use this view to prioritise your human code-review effort.

Pattern Findings

The scanner identified 985 distinct pattern matches across 15 syntactic categories. Each entry below represents a discrete location in the source code where the engine recorded a statistically significant AI authorship indicator. Expand any category row to inspect the individual file paths, line numbers, code snippets, and the lexical context (CODE, COMMENT, or STRING) in which each match was detected.

Reading the findings table: The Severity column indicates the diagnostic confidence level (CRITICAL / HIGH / MEDIUM / LOW). The Context column identifies whether the match occurred inside executable code, an inline comment, or a string literal — comment-context matches receive a ×1.5 weight because LLMs systematically over-annotate. The ⚡ bolt icon marks clustered matches: three or more patterns within a 10-line window, each receiving an additional ×1.5 density multiplier as dense clusters constitute far stronger evidence of synthetic authorship than isolated hits.

Hyper-Verbose Identifiers376 hits · 375 pts
SeverityFileLineSnippetContext
LOWapp/utils/builtin-themes.ts28export async function loadBuiltinThemeComponent(themeName: string, componentName: 'AppHeader' | 'AppFooter') {CODE
LOWapp/utils/builtin-theme-overlay.ts466export function buildBuiltinThemeOverlayCss(themeName: BuiltinThemeName) {CODE
LOWapp/public/static/candle-reader/js/epub-v0.3.88.js1(function webpackUniversalModuleDefinition(root, factory) {CODE
LOWapp/public/static/candle-reader/js/epub-v0.3.88.js15121function checkIfLocalStorageThrows() {CODE
LOWapp/public/static/candle-reader/js/epub-v0.3.88.js15606 var methodNotImplementedFactory = function methodNotImplementedFactory(methodName) {CODE
LOWapp/public/static/candle-reader/js/epub-v0.3.88.js15868 value: function xmlHttpRequestOverrideMimeType() {}CODE
LOWapp/public/static/pdfjs/web/viewer.js3061function webViewerPresentationMode() {CODE
LOWapp/public/static/pdfjs/web/viewer.js3064function webViewerSwitchAnnotationEditorMode(evt) {CODE
LOWapp/public/static/pdfjs/web/viewer.js3067function webViewerSwitchAnnotationEditorParams(evt) {CODE
LOWapp/public/static/pdfjs/web/viewer.js3119function webViewerOptionalContentConfig(evt) {CODE
LOWapp/public/static/pdfjs/web/viewer.js3122function webViewerSwitchScrollMode(evt) {CODE
LOWapp/public/static/pdfjs/web/viewer.js3125function webViewerSwitchSpreadMode(evt) {CODE
LOWapp/public/static/pdfjs/web/viewer.js3128function webViewerDocumentProperties() {CODE
LOWapp/public/static/pdfjs/web/viewer.js291function backtrackBeforeAllVisibleElements(index, views, top) {CODE
LOWapp/public/static/pdfjs/web/viewer.js321 function isElementBottomAfterViewTop(view) {CODE
LOWapp/public/static/pdfjs/web/viewer.js326 function isElementNextAfterViewHorizontally(view) {CODE
LOWapp/public/static/pdfjs/web/viewer.js395function normalizeWheelEventDirection(evt) {CODE
LOWapp/public/static/pdfjs/web/viewer.js497function getActiveOrFocusedElement() {CODE
LOWapp/public/static/pdfjs/web/viewer.js506function apiPageLayoutToViewerModes(layout) {CODE
LOWapp/public/static/pdfjs/web/viewer.js565 (function checkCanvasSizeLimitation() {CODE
LOWapp/public/static/pdfjs/web/viewer.js2594 function addWindowResolutionChange(evt = null) {CODE
LOWapp/public/static/pdfjs/web/viewer.js2978function webViewerPresentationModeChanged(evt) {CODE
LOWapp/public/static/pdfjs/web/viewer.js2981function webViewerSidebarViewChanged({CODE
LOWapp/public/static/pdfjs/web/viewer.js3006function webViewerScrollModeChanged(evt) {CODE
LOWapp/public/static/pdfjs/web/viewer.js3011function webViewerSpreadModeChanged(evt) {CODE
LOWapp/public/static/pdfjs/web/viewer.js3101function webViewerPageNumberChanged(evt) {CODE
LOWapp/public/static/pdfjs/web/viewer.js3144function webViewerUpdateFindMatchesCount({CODE
LOWapp/public/static/pdfjs/web/viewer.js3153function webViewerUpdateFindControlState({CODE
LOWapp/public/static/pdfjs/web/viewer.js3174function webViewerRotationChanging(evt) {CODE
LOWapp/public/static/pdfjs/web/viewer.js3193function webViewerResolutionChange(evt) {CODE
LOWapp/public/static/pdfjs/web/viewer.js3196function webViewerVisibilityChange(evt) {CODE
LOWapp/public/static/pdfjs/web/viewer.js3650function webViewerAnnotationEditorStatesChanged(data) {CODE
LOWapp/public/static/pdfjs/web/viewer.js8327function isValidAnnotationEditorMode(mode) {CODE
LOWapp/public/static/readium/lib/thirdparty/hammer.js303 stopDefaultBrowserBehavior: function stopDefaultBrowserBehavior(element, css_props) {CODE
LOW…/public/static/readium/lib/thirdparty/jquery-1.11.0.js8631function addToPrefiltersOrTransports( structure ) {CODE
LOW…/public/static/readium/lib/thirdparty/jquery-1.11.0.js8663function inspectPrefiltersOrTransports( structure, options, originalOptions, jqXHR ) {CODE
LOW…/public/static/readium/lib/thirdparty/remotestorage.js3(function(window){var haveLocalStorage;var LS_STATE_KEY="remotestorage:widget:state";var VALID_ENTRY_STATES={initial:truCODE
LOWtests/test_reading_state.py28 def test_readstate_get_no_state(self):CODE
LOWtests/test_reading_state.py36 def test_readstate_post_set_reading(self):CODE
LOWtests/test_reading_state.py48 def test_readstate_post_set_read_done(self):CODE
LOWtests/test_reading_state.py57 def test_readstate_post_invalid_state(self):CODE
LOWtests/test_reading_state.py62 def test_readstate_post_nonexistent_book(self):CODE
LOWtests/test_reading_state.py108 def test_favorite_nonexistent_book(self):CODE
LOWtests/test_reading_state.py165 def test_shelf_nonexistent_book(self):CODE
LOWtests/test_reading_state.py185 def test_progress_get_no_state(self):CODE
LOWtests/test_reading_state.py192 def test_progress_post_and_get(self):CODE
LOWtests/test_reading_state.py208 def test_progress_post_overwrites_previous(self):CODE
LOWtests/test_reading_state.py223 def test_progress_post_invalid_payload(self):CODE
LOWtests/test_reading_state.py228 def test_progress_post_too_large(self):CODE
LOWtests/test_reading_state.py233 def test_progress_post_nonexistent_book(self):CODE
LOWtests/test_reading_state.py262 def test_book_detail_no_state(self):CODE
LOWtests/test_reading_state.py274 def test_book_detail_with_state(self):CODE
LOWtests/test_update_checker.py27 def test_compare_versions_normalizes_v_prefix(self):CODE
LOWtests/test_update_checker.py31 def test_compare_versions_only_true_for_newer_version(self):CODE
LOWtests/test_update_checker.py51 def test_check_for_updates_does_not_report_same_version_with_v_prefix(self):CODE
LOWtests/test_update_checker.py62 def test_check_for_updates_reports_only_newer_latest_release(self):CODE
LOWtests/test_admin.py30 def test_settings_get_allowed_for_admin(self):CODE
LOWtests/test_admin.py36 def test_settings_update_allowed_for_admin(self):CODE
LOWtests/test_admin.py43 def test_settings_update_chunk_upload_settings(self):CODE
LOWtests/test_admin.py111 def test_settings_dangerous_keys_ignored_for_non_whitelisted(self):CODE
316 more matches not shown…
Excessive Try-Catch Wrapping290 hits · 311 pts
SeverityFileLineSnippetContext
LOWCODE_WIKI.md1182 except Exception as e:CODE
LOW.trae/documents/修改2.md94except Exception:CODE
LOW.trae/documents/修改3.md96 except Exception as err:CODE
LOW.trae/documents/修改3.md115 except Exception as err:CODE
LOW.trae/documents/修改3.md125 except Exception as err:CODE
LOW.trae/documents/修改1.md68 except Exception as e:CODE
LOW.trae/documents/修改1.md83 except Exception as e:CODE
LOW.trae/documents/修改1.md121 except Exception as e:CODE
LOW.trae/documents/修改1.md131 except Exception as e:CODE
LOW.trae/documents/修改1.md146 except Exception as e:CODE
LOW.trae/documents/修改1.md289 except Exception as e:CODE
LOW.trae/documents/修改1.md343 except Exception as e:CODE
LOW.trae/documents/修改1.md388 except Exception as e:CODE
LOW.trae/documents/修改1.md413 except Exception as e:CODE
LOW.trae/documents/修改1.md468 except Exception as e:CODE
LOW.trae/documents/修改1.md507 except Exception as e:CODE
LOWtools/tools.py83 except Exception as e:CODE
LOWtests/cases/update_users_db.py96 except Exception as e:CODE
LOWtests/cases/update_users_db.py132 except Exception as e:CODE
LOWtests/cases/update_users_db.py197 except Exception as e:CODE
LOWwebserver/models.py56 except Exception:CODE
LOWwebserver/migrate_db.py114 except Exception as e:CODE
LOWwebserver/migrate_db.py155 except Exception as e:CODE
LOWwebserver/migrate_db.py212 except Exception as e:CODE
LOWwebserver/migrate_db.py271 except Exception as e:CODE
LOWwebserver/migrate_db.py279 except Exception as e:CODE
LOWwebserver/migrate_db.py287 except Exception as e:CODE
LOWwebserver/utils.py54 except Exception as e:CODE
LOWwebserver/i18n.py104 except Exception:STRING
LOWwebserver/i18n.py130 except Exception:STRING
LOWwebserver/main.py101 except Exception as e:CODE
LOWwebserver/main.py342 except Exception as e:CODE
LOWwebserver/plugins/meta/qimao/api.py133 except Exception as e:CODE
LOWwebserver/plugins/meta/qimao/api.py150 except Exception as e:CODE
LOWwebserver/plugins/meta/qimao/api.py247 except Exception as e:CODE
LOWwebserver/plugins/meta/qimao/api.py260 except Exception as e:CODE
LOWwebserver/plugins/meta/calibre/api.py33 except Exception as e:CODE
LOWwebserver/plugins/meta/calibre/api.py99 except Exception as e:CODE
LOWwebserver/plugins/meta/calibre/api.py130 except Exception as e:CODE
LOWwebserver/plugins/meta/baike/api.py35 except Exception as err:CODE
LOWwebserver/plugins/meta/baike/api.py70 except Exception as e:CODE
LOWwebserver/plugins/meta/baike/api.py107 except Exception as e:CODE
MEDIUMwebserver/plugins/meta/baike/api.py32def _baike(self, title):CODE
LOWwebserver/plugins/meta/douban/api.py94 except Exception as e:CODE
LOWwebserver/plugins/meta/douban/api.py178 except Exception as e:CODE
LOWwebserver/plugins/meta/douban/api.py227 except Exception as err:CODE
LOWwebserver/plugins/meta/douban/api.py236 except Exception as err:CODE
LOWwebserver/plugins/meta/douban_v2/plugin.py28 except Exception as e:CODE
LOWwebserver/plugins/meta/douban_v2/plugin.py43 except Exception:CODE
LOWwebserver/plugins/meta/douban_v2/plugin.py63 except Exception:CODE
LOWwebserver/plugins/meta/douban_v2/plugin.py86 except Exception:CODE
LOWwebserver/plugins/meta/xhsd/api.py82 except Exception as e:CODE
LOWwebserver/plugins/meta/xhsd/api.py169 except Exception as e:CODE
LOWwebserver/plugins/meta/xhsd/api.py205 except Exception as e:CODE
LOWwebserver/plugins/meta/xhsd/api.py236 except Exception as e:CODE
LOWwebserver/plugins/meta/ai/api.py113 except Exception as err:STRING
LOWwebserver/plugins/meta/ai/api.py180 except Exception as e:STRING
LOWwebserver/plugins/meta/ai/api.py195 except Exception as e:STRING
LOWwebserver/plugins/meta/youshu/api.py38 except Exception as err:CODE
LOWwebserver/plugins/meta/youshu/api.py142 except Exception as err:CODE
230 more matches not shown…
Decorative Section Separators40 hits · 130 pts
SeverityFileLineSnippetContext
MEDIUMtests/test_booksource_engine.py202# --------------------------------------------------------------------------COMMENT
MEDIUMtests/test_booksource_engine.py204# --------------------------------------------------------------------------COMMENT
MEDIUMtests/test_booksource_engine.py254# --------------------------------------------------------------------------COMMENT
MEDIUMtests/test_booksource_engine.py256# --------------------------------------------------------------------------COMMENT
MEDIUMtests/test_booksource_engine.py277# --------------------------------------------------------------------------COMMENT
MEDIUMtests/test_booksource_engine.py279# --------------------------------------------------------------------------COMMENT
MEDIUMtests/test_booksource_engine.py449# --------------------------------------------------------------------------COMMENT
MEDIUMtests/test_booksource_engine.py451# --------------------------------------------------------------------------COMMENT
MEDIUMtests/test_booksource_engine.py69# --------------------------------------------------------------------------COMMENT
MEDIUMtests/test_booksource_engine.py71# --------------------------------------------------------------------------COMMENT
MEDIUMtests/test_booksource_engine.py544# --------------------------------------------------------------------------STRING
MEDIUMtests/test_booksource_engine.py546# --------------------------------------------------------------------------STRING
MEDIUMwebserver/plugins/meta/qimao/api.py21# ============================================================COMMENT
MEDIUMwebserver/plugins/meta/qimao/api.py23# ============================================================COMMENT
MEDIUMwebserver/plugins/meta/qimao/api.py61# ============================================================COMMENT
MEDIUMwebserver/plugins/meta/qimao/api.py63# ============================================================COMMENT
MEDIUMwebserver/plugins/meta/qimao/api.py94# ============================================================COMMENT
MEDIUMwebserver/plugins/meta/qimao/api.py96# ============================================================COMMENT
MEDIUMwebserver/services/booksource/rule_dispatch.py49# --------------------------------------------------------------------------COMMENT
MEDIUMwebserver/services/booksource/rule_dispatch.py51# --------------------------------------------------------------------------COMMENT
MEDIUMwebserver/services/booksource/rule_dispatch.py83# --------------------------------------------------------------------------COMMENT
MEDIUMwebserver/services/booksource/rule_dispatch.py85# --------------------------------------------------------------------------COMMENT
MEDIUMwebserver/services/booksource/rule_dispatch.py271# --------------------------------------------------------------------------COMMENT
MEDIUMwebserver/services/booksource/rule_dispatch.py273# --------------------------------------------------------------------------COMMENT
MEDIUMwebserver/services/booksource/rule_dispatch.py310# --------------------------------------------------------------------------COMMENT
MEDIUMwebserver/services/booksource/rule_dispatch.py312# --------------------------------------------------------------------------COMMENT
MEDIUMwebserver/services/booksource/analyze_url.py55 # ------------------------------------------------------------------COMMENT
MEDIUMwebserver/services/booksource/analyze_url.py145 # ------------------------------------------------------------------COMMENT
MEDIUMwebserver/services/booksource/engine.py167 # ------------------------------------------------------------------COMMENT
MEDIUMwebserver/services/booksource/engine.py225 # ------------------------------------------------------------------COMMENT
MEDIUMwebserver/services/booksource/engine.py247 # ------------------------------------------------------------------COMMENT
MEDIUMwebserver/services/booksource/engine.py296 # ------------------------------------------------------------------COMMENT
MEDIUMwebserver/services/booksource/engine.py338 # ------------------------------------------------------------------COMMENT
MEDIUMwebserver/services/booksource/analyze_rule.py75 # ------------------------------------------------------------------COMMENT
MEDIUMwebserver/services/booksource/analyze_rule.py77 # ------------------------------------------------------------------COMMENT
MEDIUMwebserver/services/booksource/analyze_rule.py211 # ------------------------------------------------------------------COMMENT
MEDIUMwebserver/services/booksource/analyze_rule.py213 # ------------------------------------------------------------------COMMENT
MEDIUM.github/workflows/build.yml24 # ----------------------------------------COMMENT
MEDIUM.github/workflows/build.yml55 # ----------------------------------------COMMENT
MEDIUM.github/workflows/build.yml147 # ----------------------------------------COMMENT
Unused Imports92 hits · 90 pts
SeverityFileLineSnippetContext
LOWserver.py8CODE
LOWtools/orzbook-spider.py5CODE
LOWtools/mebook-spider.py5CODE
LOWtests/test_reading_state.py5CODE
LOWtests/run.py12CODE
LOWtests/run.py13CODE
LOWtests/run.py14CODE
LOWtests/run.py15CODE
LOWtests/run.py16CODE
LOWtests/run.py17CODE
LOWtests/run.py18CODE
LOWtests/run.py19CODE
LOWtests/run.py20CODE
LOWtests/run.py21CODE
LOWtests/test_baike.py8CODE
LOWtests/test_tomato_novel.py22CODE
LOWtests/test_tomato_novel.py22CODE
LOWtests/test_scan.py5CODE
LOWtests/test_scan.py10CODE
LOWtests/test_scan.py17CODE
LOWtests/test_captcha.py12CODE
LOWtests/test_upload.py9CODE
LOWtests/test_book_formats.py9CODE
LOWtests/test_main.py26CODE
LOWwebserver/main.py100CODE
LOWwebserver/plugins/meta/__init__.py4CODE
LOWwebserver/plugins/meta/__init__.py4CODE
LOWwebserver/plugins/meta/__init__.py4CODE
LOWwebserver/plugins/meta/__init__.py5CODE
LOWwebserver/plugins/meta/__init__.py5CODE
LOWwebserver/plugins/meta/__init__.py8CODE
LOWwebserver/plugins/meta/__init__.py8CODE
LOWwebserver/plugins/meta/__init__.py11CODE
LOWwebserver/plugins/meta/__init__.py11CODE
LOWwebserver/plugins/meta/__init__.py11CODE
LOWwebserver/plugins/meta/__init__.py14CODE
LOWwebserver/plugins/meta/__init__.py14CODE
LOWwebserver/plugins/meta/__init__.py14CODE
LOWwebserver/plugins/meta/__init__.py17CODE
LOWwebserver/plugins/meta/__init__.py17CODE
LOWwebserver/plugins/meta/__init__.py17CODE
LOWwebserver/plugins/meta/__init__.py18CODE
LOWwebserver/plugins/meta/__init__.py21CODE
LOWwebserver/plugins/meta/__init__.py21CODE
LOWwebserver/plugins/meta/__init__.py21CODE
LOWwebserver/plugins/meta/qimao/__init__.py2CODE
LOWwebserver/plugins/meta/qimao/__init__.py2CODE
LOWwebserver/plugins/meta/qimao/__init__.py2CODE
LOWwebserver/plugins/meta/calibre/__init__.py2CODE
LOWwebserver/plugins/meta/calibre/__init__.py2CODE
LOWwebserver/plugins/meta/baike/__init__.py1CODE
LOWwebserver/plugins/meta/baike/__init__.py1CODE
LOWwebserver/plugins/meta/baike/__init__.py1CODE
LOWwebserver/plugins/meta/douban/__init__.py1CODE
LOWwebserver/plugins/meta/douban/__init__.py1CODE
LOWwebserver/plugins/meta/douban/__init__.py1CODE
LOWwebserver/plugins/meta/douban/__init__.py1CODE
LOWwebserver/plugins/meta/douban/__init__.py1CODE
LOWwebserver/plugins/meta/douban/__init__.py1CODE
LOWwebserver/plugins/meta/douban/__init__.py1CODE
32 more matches not shown…
Hallucination Indicators6 hits · 80 pts
SeverityFileLineSnippetContext
CRITICALapp/public/static/candle-reader/js/epub-v0.3.88.js9786 this.book.spine.hooks.content.register(this.injectIdentifier.bind(this));CODE
CRITICALapp/public/static/candle-reader/js/epub-v0.3.88.js9789 this.book.spine.hooks.content.register(this.injectStylesheet.bind(this));CODE
CRITICALapp/public/static/candle-reader/js/epub-v0.3.88.js9793 this.book.spine.hooks.content.register(this.injectScript.bind(this));CODE
CRITICALapp/public/static/epubreader/js/libs/epub.min.js1!function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e(require("JSZip")):"function"==typeof dCODE
CRITICALapp/public/static/js/jquery-1.11.1.min.js4},cur:function(){var a=Zb.propHooks[this.prop];return a&&a.get?a.get(this):Zb.propHooks._default.get(this)},run:functionCODE
CRITICAL…/public/static/readium/lib/thirdparty/jquery-1.11.0.js8058jQuery.each( jQuery.expr.match.bool.source.match( /\w+/g ), function( i, name ) {CODE
Deep Nesting93 hits · 76 pts
SeverityFileLineSnippetContext
LOWtools/kgbook.com/spider.py84CODE
LOWtests/test_admin.py241CODE
LOWtests/test_admin.py285CODE
LOWtests/test_admin.py313CODE
LOWtests/test_book_formats.py105CODE
LOWtests/test_book_formats.py158CODE
LOWtests/cases/update_users_db.py41CODE
LOWtests/cases/update_users_db.py65CODE
LOWtests/cases/update_users_db.py104CODE
LOWtests/cases/update_users_db.py140CODE
LOWtests/cases/update_users_db.py208CODE
LOWtests/cases/update_users_db.py241CODE
LOWwebserver/migrate_db.py53CODE
LOWwebserver/migrate_db.py79CODE
LOWwebserver/migrate_db.py122CODE
LOWwebserver/migrate_db.py223CODE
LOWwebserver/migrate_db.py305CODE
LOWwebserver/plugins/meta/qimao/api.py161CODE
LOWwebserver/plugins/meta/calibre/api.py105CODE
LOWwebserver/plugins/meta/douban_v2/api.py130CODE
LOWwebserver/plugins/meta/xhsd/api.py98CODE
LOWwebserver/plugins/meta/xhsd/api.py211CODE
LOWwebserver/plugins/meta/neodb/api.py35CODE
LOWwebserver/plugins/meta/neodb/plugin.py43CODE
LOWwebserver/plugins/meta/biquge/api.py48CODE
LOWwebserver/plugins/meta/tomato/api.py82CODE
LOWwebserver/plugins/meta/tomato/tomato/tomato.py69CODE
LOWwebserver/plugins/meta/tomato/tomato/tomato.py87CODE
LOWwebserver/plugins/meta/tomato/tomato/tomato.py107CODE
LOWwebserver/plugins/meta/tomato/tomato/tomato.py138CODE
LOWwebserver/plugins/meta/tomato/tomato/tomato.py235CODE
LOWwebserver/plugins/meta/tomato/tomato/tomato.py392CODE
LOWwebserver/plugins/meta/tomato/tomato/tomato.py457CODE
LOWwebserver/webdav/server.py14CODE
LOWwebserver/webdav/dav_provider.py158CODE
LOWwebserver/webdav/dav_provider.py186CODE
LOWwebserver/webdav/dav_provider.py336CODE
LOWwebserver/webdav/dav_provider.py427CODE
LOWwebserver/webdav/dav_provider.py468CODE
LOWwebserver/webdav/dav_provider.py499CODE
LOWwebserver/webdav/dav_provider.py584CODE
LOWwebserver/webdav/dav_provider.py610CODE
LOWwebserver/webdav/dav_provider.py632CODE
LOWwebserver/webdav/dav_provider.py654CODE
LOWwebserver/webdav/dav_provider.py677CODE
LOWwebserver/webdav/dav_provider.py699CODE
LOWwebserver/handlers/user.py448CODE
LOWwebserver/handlers/booksource_admin.py61CODE
LOWwebserver/handlers/opds.py170CODE
LOWwebserver/handlers/opds.py230CODE
LOWwebserver/handlers/admin.py351CODE
LOWwebserver/handlers/admin.py743CODE
LOWwebserver/handlers/admin.py928CODE
LOWwebserver/handlers/admin.py1151CODE
LOWwebserver/handlers/book.py256CODE
LOWwebserver/handlers/book.py436CODE
LOWwebserver/handlers/book.py675CODE
LOWwebserver/handlers/book.py749CODE
LOWwebserver/handlers/book.py1221CODE
LOWwebserver/handlers/book.py1406CODE
33 more matches not shown…
Over-Commented Block46 hits · 46 pts
SeverityFileLineSnippetContext
LOWapp/public/static/candle-reader/js/epub-v0.3.88.js10521 */COMMENT
LOWapp/public/static/candle-reader/js/epub-v0.3.88.js13401 // since Safari 10.1 shipped with fetch, we can use that to detect itCOMMENT
LOWapp/public/static/candle-reader/js/epub-v0.3.88.js13501 var length = bin.length;COMMENT
LOWapp/public/static/candle-reader/js/epub-v0.3.88.js14601// keeping localStorage support intact.COMMENT
LOWapp/public/static/candle-reader/js/epub-v0.3.88.js22961//# sourceMappingURL=epub.js.mapCOMMENT
LOWapp/public/static/readium/Gruntfile.js1// Copyright (c) 2014 Readium Foundation and/or its licensees. All rights reserved.COMMENT
LOWapp/public/static/readium/require_config.js1// Copyright (c) 2014 Readium Foundation and/or its licensees. All rights reserved.COMMENT
LOWapp/public/static/readium/extend_require_config.js1// Copyright (c) 2014 Readium Foundation and/or its licensees. All rights reserved.COMMENT
LOWapp/public/static/readium/css/viewer_audio.css441COMMENT
LOWapp/public/static/readium/grunt/run_grunt.js1// Copyright (c) 2014 Readium Foundation and/or its licensees. All rights reserved.COMMENT
LOWapp/public/static/readium/grunt/copy.js1// Copyright (c) 2014 Readium Foundation and/or its licensees. All rights reserved.COMMENT
LOWapp/public/static/readium/grunt/copy.js101 },COMMENT
LOWapp/public/static/readium/grunt/copy.js121 // dest: 'build/tests/chrome-app'COMMENT
LOWapp/public/static/readium/grunt/requirejs.js1// Copyright (c) 2014 Readium Foundation and/or its licensees. All rights reserved.COMMENT
LOWapp/public/static/readium/grunt/concurrent.js1// Copyright (c) 2014 Readium Foundation and/or its licensees. All rights reserved.COMMENT
LOWapp/public/static/readium/grunt/nodeunit.js1// Copyright (c) 2014 Readium Foundation and/or its licensees. All rights reserved.COMMENT
LOWapp/public/static/readium/grunt/clean.js1// Copyright (c) 2014 Readium Foundation and/or its licensees. All rights reserved.COMMENT
LOWapp/public/static/readium/grunt/express.js1// Copyright (c) 2014 Readium Foundation and/or its licensees. All rights reserved.COMMENT
LOWapp/public/static/readium/grunt/watch.js1// Copyright (c) 2014 Readium Foundation and/or its licensees. All rights reserved.COMMENT
LOWapp/public/static/readium/grunt/aliases.js1// Copyright (c) 2014 Readium Foundation and/or its licensees. All rights reserved.COMMENT
LOWapp/public/static/readium/grunt/cssmin.js1// Copyright (c) 2014 Readium Foundation and/or its licensees. All rights reserved.COMMENT
LOWapp/public/static/readium/grunt/versioning.js1// Copyright (c) 2014 Readium Foundation and/or its licensees. All rights reserved.COMMENT
LOW…ic/static/readium/lib/ReaderSettingsDialog_Keyboard.js221 // key.setScope("captureKeyboardShortcut");COMMENT
LOW…ic/static/readium/lib/ReaderSettingsDialog_Keyboard.js241 // COMMENT
LOWapp/public/static/readium/lib/require.js1821 node;COMMENT
LOWapp/public/static/readium/lib/require.js1841 //if we can NOT find [native code] then it must NOT natively supported.COMMENT
LOWapp/public/static/readium/lib/Keyboard.js101 // }COMMENT
LOWapp/public/static/readium/lib/Keyboard.js321 // //var newE = jQuery.extend(true, {}, e);// deep copyCOMMENT
LOWapp/public/static/readium/lib/EpubReader.js161 // var href = $that.attr("href");COMMENT
LOWapp/public/static/readium/lib/gestures.js1// Copyright (c) 2014 Readium Foundation and/or its licensees. All rights reserved.COMMENT
LOW…lic/static/readium/lib/storage/RemoteStorageManager.js81 // if (wireClient.href && wireClient.token){COMMENT
LOW…ublic/static/readium/lib/workers/ContentTransformer.js1// Copyright (c) 2014 Readium Foundation and/or its licensees. All rights reserved.COMMENT
LOWapp/public/static/readium/lib/thirdparty/deflate.js581 // - if compression is not successful for the first block, all inputCOMMENT
LOWapp/public/static/readium/lib/thirdparty/deflate.js1161 more--;COMMENT
LOWapp/public/static/readium/lib/thirdparty/deflate.js1201 return;COMMENT
LOWapp/public/static/readium/lib/thirdparty/deflate.js1221 }COMMENT
LOWapp/public/static/readium/lib/thirdparty/json2.js441 if (cx.test(text)) {COMMENT
LOW…/public/static/readium/lib/thirdparty/jquery-1.11.0.js1201 if ( (support.qsa = rnative.test( doc.querySelectorAll )) ) {COMMENT
LOW…/public/static/readium/lib/thirdparty/jquery-1.11.0.js9641 // X-Requested-With headerCOMMENT
LOW…ublic/static/readium/lib/thirdparty/backbone-0.9.10.js1// Backbone.js 0.9.10COMMENT
LOW…ublic/static/readium/lib/thirdparty/backbone-0.9.10.js101 return;COMMENT
LOW…ublic/static/readium/lib/thirdparty/backbone-0.9.10.js1281 this.$el = element instanceof Backbone.$ ? element : Backbone.$(element);COMMENT
LOW…ublic/static/readium/lib/thirdparty/backbone-0.9.10.js1361 'update': 'PUT',COMMENT
LOWapp/public/static/readium/i18n/Strings.js1// Copyright (c) 2014 Readium Foundation and/or its licensees. All rights reserved.COMMENT
LOWwebserver/plugins/meta/neodb/api.py1#!/usr/bin/env python3COMMENT
LOW.github/workflows/claude-code-review.yml1name: Claude Code ReviewCOMMENT
AI Slop Vocabulary9 hits · 20 pts
SeverityFileLineSnippetContext
MEDIUMapp/public/static/candle-reader/candle-reader.umd.js19 ${O}`);return}else m.add(g);h&&g!==h&&i.value.set(g,h),S&&n.value.set(g,[]),h!=null&&n.value.set(h,[...n.value.get(h)||CODE
MEDIUMapp/public/static/candle-reader/js/epub-v0.3.88.js11238 this.iframe.seamless = "seamless"; // Back up if seamless isn't supportedCODE
LOWapp/public/static/candle-reader/js/epub-v0.3.88.js20911 // #match works fine because it just return the exec results, even if it hasCOMMENT
MEDIUMapp/public/static/epubreader/js/libs/epub.min.js1!function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e(require("JSZip")):"function"==typeof dCODE
MEDIUMapp/public/static/epubreader/js/libs/epub.min.js1!function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e(require("JSZip")):"function"==typeof dCODE
MEDIUM…/public/static/readium/lib/thirdparty/jquery-1.11.0.js10292// understands anonymous AMD modules. A named AMD is safest and most robustCOMMENT
MEDIUMapp/playwright-report/index.html58`).replace(eA,"")}function Wd(t,e){return e=Fd(e),Fd(t)===e}function Dt(t,e,n,a,i,s){switch(n){case"children":typeof a==CODE
LOWwebserver/models.py30 # for python3, just use: crypt.mksalt(crypt.METHOD_SHA512)COMMENT
LOWwebserver/plugins/meta/xhsd/api.py220 # but for now let's just return what we get unless it's strictly required by Calibre to be JPG.COMMENT
Fake / Example Data16 hits · 17 pts
SeverityFileLineSnippetContext
LOWapp/test/mock-server.js237 email: 'admin@example.com',CODE
LOWapp/test/e2e/install.spec.ts75 await page.getByLabel('管理员Email').fill('admin@example.com');CODE
LOWapp/test/e2e/admin.spec.ts28 await expect(page.locator('tbody tr').first()).toContainText('admin@example.com');CODE
LOW…ic/static/readium/lib/ReaderSettingsDialog_Keyboard.js62 var thatOriginal = $that.attr("placeholder");CODE
LOW…ic/static/readium/lib/ReaderSettingsDialog_Keyboard.js73 var selfOriginal = $self.attr("placeholder");CODE
LOW…ic/static/readium/lib/ReaderSettingsDialog_Keyboard.js265 //$input.val($input.attr("placeholder"));COMMENT
LOW…ic/static/readium/lib/ReaderSettingsDialog_Keyboard.js279 //$input.val($input.attr("placeholder"));COMMENT
LOW…ic/static/readium/lib/ReaderSettingsDialog_Keyboard.js299 var original = $that.attr("placeholder");CODE
LOW…p/public/static/readium/templates/settings-dialog.html24 Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus neque dui, congue a suscipit noCODE
LOW…p/public/static/readium/templates/settings-dialog.html24 Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus neque dui, congue a suscipit noCODE
LOWapp/i18n/locales/zh-CN.json550 "placeholder": {CODE
LOWapp/i18n/locales/zh-CN.json635 "placeholder": {CODE
LOWapp/i18n/locales/zh-CN.json897 "placeholder": {CODE
LOWapp/i18n/locales/en-US.json605 "placeholder": {CODE
LOWapp/i18n/locales/en-US.json867 "placeholder": {CODE
LOWapp/i18n/locales/en-US.json909 "placeholder": {CODE
Synthetic Comment Markers1 hit · 8 pts
SeverityFileLineSnippetContext
HIGHwebserver/plugins/meta/xhsd/api.py32 # Only support ISBN query as requestedCOMMENT
Overly Generic Function Names7 hits · 7 pts
SeverityFileLineSnippetContext
LOWapp/public/static/readium/lib/thirdparty/zip-ext.js47 function getData(callback, onerror) {CODE
LOWapp/public/static/readium/lib/thirdparty/zip-ext.js166 function getData(callback) {CODE
LOWapp/public/static/readium/lib/thirdparty/zip-ext.js199 function getData(callback) {CODE
LOWapp/public/static/readium/lib/thirdparty/zip-fs.js51 function getData(callback) {CODE
LOWapp/public/static/readium/lib/thirdparty/zip.js211 function getData(callback, onerror) {CODE
LOWapp/public/static/readium/lib/thirdparty/zip.js249 function getData(callback) {CODE
LOWapp/public/static/readium/lib/thirdparty/zip.js277 function getData(callback) {CODE
Redundant / Tautological Comments3 hits · 4 pts
SeverityFileLineSnippetContext
LOWwebserver/plugins/meta/baike/api.py23 # Check if the title is start with *[0-9][_-] then remote the prefixCOMMENT
LOWwebserver/plugins/meta/xhsd/api.py33 # Check if title looks like an ISBNCOMMENT
LOWscripts/check_i18n_translation_useless.py102 # Check if used in code (exact match)COMMENT
Modern Structural Boilerplate4 hits · 4 pts
SeverityFileLineSnippetContext
LOWtests/test_webdav.py23logger = logging.getLogger(__name__)CODE
LOWtests/cases/update_users_db.py33logger = logging.getLogger(__name__)CODE
LOWwebserver/migrate_db.py42logger = logging.getLogger(__name__)CODE
LOWwebserver/services/booksource/__init__.py12__all__ = [CODE
Slop Phrases1 hit · 1 pts
SeverityFileLineSnippetContext
LOWapp/public/static/candle-reader/candle-reader.umd.js8`],...Bm(n))}),t}function Bm({vnode:e,recurseCount:t}){const n=t>0?`... (${t} recursive calls)`:"",i=e.component?e.compoCODE
TODO Padding1 hit · 1 pts
SeverityFileLineSnippetContext
LOWapp/public/static/candle-reader/js/epub-v0.3.88.js1043 toString() {// TODO: implement walking between start and end to find textCODE