Repository Analysis

janeczku/calibre-web

:books: Web app for browsing, reading and downloading eBooks stored in a Calibre database

5.7 Low AI signal View on GitHub

Analysis Overview

This report presents the forensic synthetic code analysis of janeczku/calibre-web, a Fluent project with 17,693 GitHub stars. SynthScan v2.0 examined 149,030 lines of code across 406 source files, recording 612 pattern matches distributed across 15 syntactic categories. The overall adjusted score of 5.7 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).

5.7
Adjusted Score
5.7
Raw Score
100%
Time Factor
2026-05-24
Last Push
17.7K
Stars
Fluent
Language
149.0K
Lines of Code
406
Files
612
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 4HIGH 1MEDIUM 102LOW 505

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 612 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.

Self-Referential Comments81 hits · 241 pts
SeverityFileLineSnippetContext
MEDIUMcps.py4# This file is part of the Calibre-Web (https://github.com/janeczku/calibre-web)COMMENT
MEDIUMcps/subproc_wrapper.py3# This file is part of the Calibre-Web (https://github.com/janeczku/calibre-web)COMMENT
MEDIUMcps/search_metadata.py3# This file is part of the Calibre-Web (https://github.com/janeczku/calibre-web)COMMENT
MEDIUMcps/gevent_wsgi.py3# This file is part of the Calibre-Web (https://github.com/janeczku/calibre-web)COMMENT
MEDIUMcps/db.py3# This file is part of the Calibre-Web (https://github.com/janeczku/calibre-web)COMMENT
MEDIUMcps/isoLanguages.py3# This file is part of the Calibre-Web (https://github.com/janeczku/calibre-web)COMMENT
MEDIUMcps/server.py3# This file is part of the Calibre-Web (https://github.com/janeczku/calibre-web)COMMENT
MEDIUMcps/shelf.py3# This file is part of the Calibre-Web (https://github.com/janeczku/calibre-web)COMMENT
MEDIUMcps/cover.py3# This file is part of the Calibre-Web (https://github.com/janeczku/calibre-web)COMMENT
MEDIUMcps/web.py1# This file is part of the Calibre-Web (https://github.com/janeczku/calibre-web)COMMENT
MEDIUMcps/string_helper.py3# This file is part of the Calibre-Web (https://github.com/janeczku/calibre-web)COMMENT
MEDIUMcps/kobo_sync_status.py3# This file is part of the Calibre-Web (https://github.com/janeczku/calibre-web)COMMENT
MEDIUMcps/ub.py3# This file is part of the Calibre-Web (https://github.com/janeczku/calibre-web)COMMENT
MEDIUMcps/embed_helper.py3# This file is part of the Calibre-Web (https://github.com/janeczku/calibre-web)COMMENT
MEDIUMcps/oauth_bb.py3# This file is part of the Calibre-Web (https://github.com/janeczku/calibre-web)COMMENT
MEDIUMcps/fb2.py3# This file is part of the Calibre-Web (https://github.com/janeczku/calibre-web)COMMENT
MEDIUMcps/constants.py3# This file is part of the Calibre-Web (https://github.com/janeczku/calibre-web)COMMENT
MEDIUMcps/file_helper.py3# This file is part of the Calibre-Web (https://github.com/janeczku/calibre-web)COMMENT
MEDIUMcps/uploader.py3# This file is part of the Calibre-Web (https://github.com/janeczku/calibre-web)COMMENT
MEDIUMcps/converter.py3# This file is part of the Calibre-Web (https://github.com/janeczku/calibre-web)COMMENT
MEDIUMcps/__init__.py3# This file is part of the Calibre-Web (https://github.com/janeczku/calibre-web)COMMENT
MEDIUMcps/editbooks.py3# This file is part of the Calibre-Web (https://github.com/janeczku/calibre-web)COMMENT
MEDIUMcps/debug_info.py3# This file is part of the Calibre-Web (https://github.com/janeczku/calibre-web)COMMENT
MEDIUMcps/about.py3# This file is part of the Calibre-Web (https://github.com/janeczku/calibre-web)COMMENT
MEDIUMcps/logger.py3# This file is part of the Calibre-Web (https://github.com/janeczku/calibre-web)COMMENT
MEDIUMcps/gdriveutils.py3# This file is part of the Calibre-Web (https://github.com/janeczku/calibre-web)COMMENT
MEDIUMcps/updater.py3# This file is part of the Calibre-Web (https://github.com/janeczku/calibre-web)COMMENT
MEDIUMcps/opds.py3# This file is part of the Calibre-Web (https://github.com/janeczku/calibre-web)COMMENT
MEDIUMcps/comic.py3# This file is part of the Calibre-Web (https://github.com/janeczku/calibre-web)COMMENT
MEDIUMcps/admin.py3# This file is part of the Calibre-Web (https://github.com/janeczku/calibre-web)COMMENT
MEDIUMcps/cli.py3# This file is part of the Calibre-Web (https://github.com/janeczku/calibre-web)COMMENT
MEDIUMcps/kobo_auth.py4# This file is part of the Calibre-Web (https://github.com/janeczku/calibre-web)COMMENT
MEDIUMcps/kobo_auth.py21"""This module is used to control authentication/authorization of Kobo sync requests.STRING
MEDIUMcps/basic.py1# This file is part of the Calibre-Web (https://github.com/janeczku/calibre-web)COMMENT
MEDIUMcps/fs.py3# This file is part of the Calibre-Web (https://github.com/janeczku/calibre-web)COMMENT
MEDIUMcps/cache_buster.py3# This file is part of the Calibre-Web (https://github.com/janeczku/calibre-web)COMMENT
MEDIUMcps/gdrive.py3# This file is part of the Calibre-Web (https://github.com/janeczku/calibre-web)COMMENT
MEDIUMcps/helper.py3# This file is part of the Calibre-Web (https://github.com/janeczku/calibre-web)COMMENT
MEDIUMcps/jinjia.py3# This file is part of the Calibre-Web (https://github.com/janeczku/calibre-web)COMMENT
MEDIUMcps/usermanagement.py3# This file is part of the Calibre-Web (https://github.com/janeczku/calibre-web)COMMENT
MEDIUMcps/search.py1# This file is part of the Calibre-Web (https://github.com/janeczku/calibre-web)COMMENT
MEDIUMcps/tornado_wsgi.py3# This file is part of the Calibre-Web (https://github.com/janeczku/calibre-web)COMMENT
MEDIUMcps/audio.py3# This file is part of the Calibre-Web (https://github.com/janeczku/calibre-web)COMMENT
MEDIUMcps/error_handler.py3# This file is part of the Calibre-Web (https://github.com/janeczku/calibre-web)COMMENT
MEDIUMcps/kobo.py4# This file is part of the Calibre-Web (https://github.com/janeczku/calibre-web)COMMENT
MEDIUMcps/tasks_status.py1# This file is part of the Calibre-Web (https://github.com/janeczku/calibre-web)COMMENT
MEDIUMcps/config_sql.py3# This file is part of the Calibre-Web (https://github.com/janeczku/calibre-web)COMMENT
MEDIUMcps/schedule.py3# This file is part of the Calibre-Web (https://github.com/janeczku/calibre-web)COMMENT
MEDIUMcps/pagination.py3# This file is part of the Calibre-Web (https://github.com/janeczku/calibre-web)COMMENT
MEDIUMcps/clean_html.py3# This file is part of the Calibre-Web (https://github.com/janeczku/calibre-web)COMMENT
MEDIUMcps/remotelogin.py3# This file is part of the Calibre-Web (https://github.com/janeczku/calibre-web)COMMENT
MEDIUMcps/MyLoginManager.py3# This file is part of the Calibre-Web (https://github.com/janeczku/calibre-web)COMMENT
MEDIUMcps/main.py3# This file is part of the Calibre-Web (https://github.com/janeczku/calibre-web)COMMENT
MEDIUMcps/epub.py3# This file is part of the Calibre-Web (https://github.com/janeczku/calibre-web)COMMENT
MEDIUMcps/render_template.py3# This file is part of the Calibre-Web (https://github.com/janeczku/calibre-web)COMMENT
MEDIUMcps/epub_helper.py3# This file is part of the Calibre-Web (https://github.com/janeczku/calibre-web)COMMENT
MEDIUMcps/oauth.py3# This file is part of the Calibre-Web (https://github.com/janeczku/calibre-web)COMMENT
MEDIUMcps/iso_language_names.py3# This file is part of the Calibre-Web (https://github.com/janeczku/calibre-web)COMMENT
MEDIUMcps/iso_language_names.py9# This file is autogenerated, do NOT add, change, or delete ANY stringCOMMENT
MEDIUMcps/tasks/mail.py3# This file is part of the Calibre-Web (https://github.com/janeczku/calibre-web)COMMENT
21 more matches not shown…
Hyper-Verbose Identifiers128 hits · 130 pts
SeverityFileLineSnippetContext
LOWcps/search_metadata.py98def metadata_change_active_provider(prov_name):CODE
LOWcps/db.py863 def fill_indexpage_with_archived_books(self, page, database, pagesize, db_filter, order, allow_show_archived,CODE
LOWcps/isoLanguages.py70def get_language_code_from_name(locale, language_names, remainder=None):CODE
LOWcps/isoLanguages.py83def get_valid_language_codes_from_code(locale, language_names, remainder=None):CODE
LOWcps/server.py100 def _make_gevent_socket_activated():CODE
LOWcps/shelf.py342def check_shelf_edit_permissions(cur_shelf):CODE
LOWcps/shelf.py352def check_shelf_view_permissions(cur_shelf):CODE
LOWcps/ub.py69def signal_store_user_session(object, user):CODE
LOWcps/ub.py205 def list_denied_column_values(self):CODE
LOWcps/ub.py209 def list_allowed_column_values(self):CODE
LOWcps/ub.py578def migrate_registration_table(engine, _session):CODE
LOWcps/ub.py592def migrate_user_session_table(engine, _session):CODE
LOWcps/oauth_bb.py218def generate_oauth_blueprints():CODE
LOWcps/editbooks.py576def table_xchange_author_title():CODE
LOWcps/editbooks.py851def prepare_authors_on_upload(title, authr):CODE
LOWcps/editbooks.py1039def render_delete_book_result(book_format, book_id, location=""):CODE
LOWcps/editbooks.py1635def create_objects_for_addition(db_element, add_element, db_type):CODE
LOWcps/gdriveutils.py614def get_metadata_backup_via_gdrive(metadata_path):CODE
LOWcps/updater.py424 def _nightly_available_updates(self, request_method):CODE
LOWcps/updater.py481 def _stable_updater_set_status(self, i, newer, status, parents, commit):CODE
LOWcps/updater.py502 def _stable_updater_parse_major_version(self, commit, i, parents, current_version, status):CODE
LOWcps/updater.py527 def _stable_available_updates(self, request_method):CODE
LOWcps/opds.py450def get_metadata_calibre_companion(uuid, library):CODE
LOWcps/comic.py64def _extract_cover_from_archive(original_file_extension, tmp_file_name, rar_executable):CODE
LOWcps/cw_babel.py40def get_available_translations():CODE
LOWcps/admin.py569def update_view_configuration():CODE
LOWcps/admin.py965def check_valid_restricted_column(column):CODE
LOWcps/admin.py1124def _configuration_gdrive_helper(to_save):CODE
LOWcps/admin.py1155def _configuration_oauth_helper(to_save):CODE
LOWcps/admin.py1177def _configuration_logfile_helper(to_save):CODE
LOWcps/admin.py1193def _configuration_ldap_helper(to_save):CODE
LOWcps/admin.py1710def _db_configuration_update_helper():CODE
LOWcps/admin.py1780def _configuration_update_helper():CODE
LOWcps/admin.py2110def extract_user_data_from_field(user, field):CODE
LOWcps/admin.py2118def extract_dynamic_field_from_filter(user, filtr):CODE
LOWcps/kobo_auth.py137def disable_failed_auth_redirect_for_blueprint(bp):CODE
LOWcps/kobo_auth.py148def register_url_value_preprocessor(kobo):CODE
LOWcps/cache_buster.py70 def reverse_to_cache_busted_url(endpoint, values):CODE
LOWcps/gdrive.py54def authenticate_google_drive():CODE
LOWcps/gdrive.py123 def on_received_watch_confirmation():CODE
LOWcps/helper.py1122def clear_cover_thumbnail_cache(book_id):CODE
LOWcps/helper.py1127def replace_cover_thumbnail_cache(book_id):CODE
LOWcps/helper.py1137def add_book_to_thumbnail_cache(book_id):CODE
LOWcps/helper.py152def check_send_to_ereader_with_converter(formats):CODE
LOWcps/helper.py394def rename_all_files_on_change(one_book, new_path, old_path, all_new_name, gdrive=False):CODE
LOWcps/helper.py448def update_dir_structure_file(book_id, calibre_path, original_filepath, new_author, db_filename):CODE
LOWcps/helper.py497def update_dir_structure_gdrive(book_id, first_author):CODE
LOWcps/helper.py786def get_series_thumbnail_on_failure(series_id, resolution):CODE
LOWcps/helper.py797def get_series_cover_thumbnail(series_id, resolution=None):CODE
LOWcps/helper.py801def get_series_cover_internal(series_id, resolution=None):CODE
LOWcps/helper.py852def save_cover_from_filestorage(filepath, saved_filename, img):CODE
LOWcps/helper.py979def do_kepubify_metadata_replace(book, file_path):CODE
LOWcps/usermanagement.py60def requires_basic_auth_if_no_ano(f):CODE
LOWcps/usermanagement.py116def load_user_from_reverse_proxy_header(req):CODE
LOWcps/search.py74def adv_search_custom_columns(cc, term, q):CODE
LOWcps/search.py255def render_adv_search_results(term, offset=None, order=None, limit=None):CODE
LOWcps/search.py388def render_prepare_search_form(cc):CODE
LOWcps/kobo.py68def get_store_url_for_current_request():CODE
LOWcps/kobo.py89def make_request_to_kobo_store(sync_token=None):CODE
LOWcps/kobo.py108def redirect_or_proxy_request(auth=False):CODE
68 more matches not shown…
Excessive Try-Catch Wrapping112 hits · 129 pts
SeverityFileLineSnippetContext
LOWcps.py61 except Exception:CODE
LOWcps/db.py541 except Exception:CODE
LOWcps/db.py658 except Exception:CODE
LOWcps/db.py709 except Exception as ex:CODE
LOWcps/db.py901 except Exception as ex:CODE
LOWcps/db.py983 except Exception:CODE
LOWcps/db.py997 except Exception as ex:CODE
LOWcps/db.py1177 except Exception as ex:CODE
MEDIUMcps/db.py766def delete_dirty_metadata(self, book_id):CODE
MEDIUMcps/db.py1174def lcase(s):CODE
LOWcps/server.py223 except Exception:CODE
LOWcps/server.py280 except Exception:CODE
LOWcps/server.py300 except Exception as ex:CODE
MEDIUMcps/server.py302 print("Error starting server: %s" % ex)CODE
MEDIUMcps/server.py293def start(self):CODE
LOWcps/shelf.py359 except Exception as e:CODE
LOWcps/shelf.py402 except Exception as ex:CODE
MEDIUMcps/shelf.py352def check_shelf_view_permissions(cur_shelf):CODE
LOWcps/web.py202 except Exception as ex:CODE
LOWcps/web.py1300 except Exception as ex:CODE
LOWcps/web.py1323 except Exception:CODE
LOWcps/web.py1493 except Exception as ex:CODE
MEDIUMcps/web.py704def render_language_books(page, name, order):CODE
LOWcps/ub.py658 except Exception:CODE
LOWcps/ub.py675 except Exception:CODE
LOWcps/ub.py719 except Exception:CODE
LOWcps/ub.py751 except Exception:CODE
LOWcps/ub.py756 except Exception:CODE
MEDIUMcps/ub.py94def delete_user_session(user_id, session_key):CODE
LOWcps/oauth_bb.py160 except Exception as ex:CODE
LOWcps/oauth_bb.py208 except Exception as ex:CODE
LOWcps/uploader.py102 except Exception as ex:CODE
LOWcps/uploader.py136 except Exception as ex:CODE
LOWcps/uploader.py184 except Exception as exc:CODE
LOWcps/uploader.py253 except Exception as ex:CODE
LOWcps/converter.py44 except Exception as ex:CODE
LOWcps/__init__.py215 except Exception as e:CODE
LOWcps/editbooks.py757 except Exception as ex:CODE
LOWcps/editbooks.py1098 except Exception as ex:CODE
LOWcps/editbooks.py1126 except Exception as ex:CODE
LOWcps/logger.py199 except Exception:CODE
MEDIUMcps/logger.py192def write(self, message):CODE
LOWcps/gdriveutils.py182 except Exception as ex:CODE
LOWcps/gdriveutils.py199 except Exception as ex:CODE
LOWcps/gdriveutils.py252 except Exception:CODE
LOWcps/gdriveutils.py531 except Exception as ex:CODE
MEDIUMcps/gdriveutils.py130def __init__(self):CODE
LOWcps/updater.py372 except Exception:CODE
LOWcps/comic.py95 except Exception as ex:CODE
MEDIUMcps/admin.py684def delete_domain():CODE
LOWcps/admin.py406 except Exception as ex:CODE
LOWcps/admin.py542 except Exception as ex:CODE
LOWcps/admin.py1064 except Exception:CODE
LOWcps/admin.py1072 except Exception:CODE
LOWcps/admin.py1321 except Exception as ex:CODE
LOWcps/admin.py1342 except Exception as e:CODE
LOWcps/admin.py1569 except Exception:CODE
LOWcps/admin.py1604 except Exception as ex:CODE
LOWcps/admin.py1624 except Exception as ex:CODE
LOWcps/admin.py1661 except Exception as ex:CODE
52 more matches not shown…
Over-Commented Block108 hits · 106 pts
SeverityFileLineSnippetContext
LOWcps.py1#!/usr/bin/env pythonCOMMENT
LOWqodana.yaml1#-------------------------------------------------------------------------------#COMMENT
LOWcps/subproc_wrapper.py1# -*- coding: utf-8 -*-COMMENT
LOWcps/search_metadata.py1# -*- coding: utf-8 -*-COMMENT
LOWcps/gevent_wsgi.py1# -*- coding: utf-8 -*-COMMENT
LOWcps/db.py1# -*- coding: utf-8 -*-COMMENT
LOWcps/isoLanguages.py1# -*- coding: utf-8 -*-COMMENT
LOWcps/server.py1# -*- coding: utf-8 -*-COMMENT
LOWcps/shelf.py1# -*- coding: utf-8 -*-COMMENT
LOWcps/cover.py1# -*- coding: utf-8 -*-COMMENT
LOWcps/web.py1# This file is part of the Calibre-Web (https://github.com/janeczku/calibre-web)COMMENT
LOWcps/string_helper.py1# -*- coding: utf-8 -*-COMMENT
LOWcps/kobo_sync_status.py1# -*- coding: utf-8 -*-COMMENT
LOWcps/ub.py1# -*- coding: utf-8 -*-COMMENT
LOWcps/redirect.py1# -*- coding: utf-8 -*-COMMENT
LOWcps/embed_helper.py1# -*- coding: utf-8 -*-COMMENT
LOWcps/oauth_bb.py1# -*- coding: utf-8 -*-COMMENT
LOWcps/fb2.py1# -*- coding: utf-8 -*-COMMENT
LOWcps/constants.py1# -*- coding: utf-8 -*-COMMENT
LOWcps/file_helper.py1# -*- coding: utf-8 -*-COMMENT
LOWcps/uploader.py1# -*- coding: utf-8 -*-COMMENT
LOWcps/converter.py1# -*- coding: utf-8 -*-COMMENT
LOWcps/__init__.py1# -*- coding: utf-8 -*-COMMENT
LOWcps/editbooks.py1# -*- coding: utf-8 -*-COMMENT
LOWcps/editbooks.py301# Separated from /editbooks so that /editselectedbooks can also use thisCOMMENT
LOWcps/debug_info.py1# -*- coding: utf-8 -*-COMMENT
LOWcps/about.py1# -*- coding: utf-8 -*-COMMENT
LOWcps/logger.py1# -*- coding: utf-8 -*-COMMENT
LOWcps/gdriveutils.py1# -*- coding: utf-8 -*-COMMENT
LOWcps/gdriveutils.py441 "mimeType": "application/vnd.google-apps.folder"})COMMENT
LOWcps/updater.py1# -*- coding: utf-8 -*-COMMENT
LOWcps/opds.py1# -*- coding: utf-8 -*-COMMENT
LOWcps/comic.py1# -*- coding: utf-8 -*-COMMENT
LOWcps/admin.py1# -*- coding: utf-8 -*-COMMENT
LOWcps/cli.py1# -*- coding: utf-8 -*-COMMENT
LOWcps/kobo_auth.py1#!/usr/bin/env pythonCOMMENT
LOWcps/basic.py1# This file is part of the Calibre-Web (https://github.com/janeczku/calibre-web)COMMENT
LOWcps/fs.py1# -*- coding: utf-8 -*-COMMENT
LOWcps/cache_buster.py1# -*- coding: utf-8 -*-COMMENT
LOWcps/gdrive.py1# -*- coding: utf-8 -*-COMMENT
LOWcps/helper.py1# -*- coding: utf-8 -*-COMMENT
LOWcps/jinjia.py1# -*- coding: utf-8 -*-COMMENT
LOWcps/usermanagement.py1# -*- coding: utf-8 -*-COMMENT
LOWcps/search.py1# This file is part of the Calibre-Web (https://github.com/janeczku/calibre-web)COMMENT
LOWcps/tornado_wsgi.py1# -*- coding: utf-8 -*-COMMENT
LOWcps/audio.py1# -*- coding: utf-8 -*-COMMENT
LOWcps/error_handler.py1# -*- coding: utf-8 -*-COMMENT
LOWcps/kobo.py1#!/usr/bin/env pythonCOMMENT
LOWcps/tasks_status.py1# This file is part of the Calibre-Web (https://github.com/janeczku/calibre-web)COMMENT
LOWcps/config_sql.py1# -*- coding: utf-8 -*-COMMENT
LOWcps/schedule.py1# -*- coding: utf-8 -*-COMMENT
LOWcps/pagination.py1# -*- coding: utf-8 -*-COMMENT
LOWcps/clean_html.py1# -*- coding: utf-8 -*-COMMENT
LOWcps/remotelogin.py1# -*- coding: utf-8 -*-COMMENT
LOWcps/MyLoginManager.py1# -*- coding: utf-8 -*-COMMENT
LOWcps/main.py1# -*- coding: utf-8 -*-COMMENT
LOWcps/epub.py1# -*- coding: utf-8 -*-COMMENT
LOWcps/render_template.py1# -*- coding: utf-8 -*-COMMENT
LOWcps/epub_helper.py1# -*- coding: utf-8 -*-COMMENT
LOWcps/oauth.py1# -*- coding: utf-8 -*-COMMENT
48 more matches not shown…
Deep Nesting89 hits · 78 pts
SeverityFileLineSnippetContext
LOWcps/db.py122CODE
LOWcps/db.py167CODE
LOWcps/db.py511CODE
LOWcps/db.py567CODE
LOWcps/db.py863CODE
LOWcps/server.py154CODE
LOWcps/shelf.py107CODE
LOWcps/shelf.py153CODE
LOWcps/shelf.py466CODE
LOWcps/web.py375CODE
LOWcps/web.py837CODE
LOWcps/web.py1196CODE
LOWcps/web.py1383CODE
LOWcps/web.py1563CODE
LOWcps/dep_check.py24CODE
LOWcps/dep_check.py75CODE
LOWcps/oauth_bb.py128CODE
LOWcps/file_helper.py58CODE
LOWcps/uploader.py83CODE
LOWcps/uploader.py175CODE
LOWcps/editbooks.py107CODE
LOWcps/editbooks.py314CODE
LOWcps/editbooks.py455CODE
LOWcps/editbooks.py538CODE
LOWcps/editbooks.py617CODE
LOWcps/editbooks.py796CODE
LOWcps/editbooks.py993CODE
LOWcps/editbooks.py1048CODE
LOWcps/editbooks.py1080CODE
LOWcps/editbooks.py1300CODE
LOWcps/editbooks.py1375CODE
LOWcps/editbooks.py1411CODE
LOWcps/editbooks.py1597CODE
LOWcps/editbooks.py1635CODE
LOWcps/gdriveutils.py277CODE
LOWcps/updater.py162CODE
LOWcps/updater.py213CODE
LOWcps/updater.py263CODE
LOWcps/updater.py341CODE
LOWcps/updater.py527CODE
LOWcps/comic.py64CODE
LOWcps/comic.py112CODE
LOWcps/comic.py133CODE
LOWcps/admin.py205CODE
LOWcps/admin.py447CODE
LOWcps/admin.py613CODE
LOWcps/admin.py841CODE
LOWcps/admin.py889CODE
LOWcps/admin.py1539CODE
LOWcps/admin.py2020CODE
LOWcps/cli.py54CODE
LOWcps/cache_buster.py31CODE
LOWcps/helper.py263CODE
LOWcps/helper.py279CODE
LOWcps/helper.py306CODE
LOWcps/helper.py355CODE
LOWcps/helper.py394CODE
LOWcps/helper.py422CODE
LOWcps/helper.py530CODE
LOWcps/helper.py737CODE
29 more matches not shown…
Hallucination Indicators4 hits · 55 pts
SeverityFileLineSnippetContext
CRITICALcps/static/js/libs/epub.min.js1!function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e(require("JSZip")):"function"==typeof dCODE
CRITICALcps/static/js/libs/jquery.min.js2!function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):fCODE
CRITICAL…atic/js/libs/bootstrap-table/bootstrap-editable.min.js5!function(a){"use strict";var b=function(b,c){this.options=a.extend({},a.fn.editableform.defaults,c),this.$div=a(b),thisCODE
CRITICAL…atic/js/libs/bootstrap-table/bootstrap-editable.min.js7daysMin:["Su","Mo","Tu","We","Th","Fr","Sa","Su"],months:["January","February","March","April","May","June","July","AuguCODE
Unused Imports55 hits · 46 pts
SeverityFileLineSnippetContext
LOWcps/subproc_wrapper.py19CODE
LOWcps/search_metadata.py22CODE
LOWcps/cover.py19CODE
LOWcps/gdriveutils.py25CODE
LOWcps/comic.py25CODE
LOWcps/admin.py73CODE
LOWcps/tornado_wsgi.py32CODE
LOWcps/tornado_wsgi.py33CODE
LOWcps/schedule.py22CODE
LOWcps/tasks/convert.py22CODE
LOWcps/metadata_provider/amazon.py25CODE
LOWcps/cw_login/__init__.py2CODE
LOWcps/cw_login/__init__.py3CODE
LOWcps/cw_login/__init__.py4CODE
LOWcps/cw_login/__init__.py5CODE
LOWcps/cw_login/__init__.py6CODE
LOWcps/cw_login/__init__.py7CODE
LOWcps/cw_login/__init__.py8CODE
LOWcps/cw_login/__init__.py9CODE
LOWcps/cw_login/__init__.py10CODE
LOWcps/cw_login/__init__.py11CODE
LOWcps/cw_login/__init__.py12CODE
LOWcps/cw_login/__init__.py13CODE
LOWcps/cw_login/__init__.py14CODE
LOWcps/cw_login/__init__.py15CODE
LOWcps/cw_login/__init__.py16CODE
LOWcps/cw_login/__init__.py17CODE
LOWcps/cw_login/__init__.py18CODE
LOWcps/cw_login/__init__.py19CODE
LOWcps/cw_login/__init__.py20CODE
LOWcps/cw_login/__init__.py21CODE
LOWcps/cw_login/__init__.py22CODE
LOWcps/cw_login/__init__.py23CODE
LOWcps/cw_login/__init__.py25CODE
LOWcps/cw_login/__init__.py26CODE
LOWcps/cw_login/__init__.py27CODE
LOWcps/cw_login/__init__.py28CODE
LOWcps/cw_login/__init__.py29CODE
LOWcps/cw_login/__init__.py30CODE
LOWcps/cw_login/__init__.py31CODE
LOWcps/cw_login/__init__.py32CODE
LOWcps/cw_login/__init__.py33CODE
LOWcps/cw_login/__init__.py34CODE
LOWcps/cw_login/__init__.py35CODE
LOWcps/cw_login/__init__.py36CODE
LOWcps/cw_login/__init__.py37CODE
LOWcps/cw_advocate/__init__.py19CODE
LOWcps/cw_advocate/__init__.py20CODE
LOWcps/cw_advocate/__init__.py21CODE
LOWcps/cw_advocate/__init__.py22CODE
LOWcps/services/background_scheduler.py19CODE
LOWcps/services/background_scheduler.py26CODE
LOWcps/services/SyncToken.py20CODE
LOWcps/services/simpleldap.py19CODE
LOWcps/services/simpleldap.py27CODE
Fake / Example Data16 hits · 22 pts
SeverityFileLineSnippetContext
LOWcps/ub.py666 user.email = "admin@example.org"CODE
LOWcps/static/js/libs/wysihtml5-0.0.3.js51 this.setAttr('placeholder');CODE
LOWcps/static/js/libs/viewer.js2370 input: ["alt", "placeholder"],CODE
LOWcps/static/js/libs/viewer.js2377 textarea: ["placeholder"],CODE
LOWcps/static/js/libs/viewer.js2385 textbox: ["placeholder", "value"]CODE
LOWcps/static/js/libs/wysihtml5-0.3.0.min.js110hasCurrentStyleProperty:function(){return"currentStyle"in c},insertsLineBreaksOnReturn:function(){return d},supportsPlacCODE
LOWcps/static/js/libs/wysihtml5-0.3.0.min.js156(function(b){b.simulatePlaceholder=function(c,a,d){var e=function(){a.hasPlaceholderSet()&&a.clear();b.removeClass(a.eleCODE
LOWcps/static/js/libs/wysihtml5-0.3.0.min.js218this.hasPlaceholderSet()&&this.clear();this.base();var c=this.element.lastChild;a&&c&&("BR"===c.nodeName?this.selection.CODE
LOWcps/static/js/libs/wysihtml5-0.3.0.min.js221e),c.addClass(this.iframe,e));(e="string"===typeof this.config.placeholder?this.config.placeholder:this.textarea.elementCODE
LOWcps/static/js/libs/wysihtml5-0.3.0.min.js228q=p.hasAttribute("placeholder"),r=q&&p.getAttribute("placeholder");this.focusStylesHost=this.focusStylesHost||e.cloneNodCODE
LOWcps/static/js/libs/wysihtml5-0.3.0.min.js229var m=b.lang.array(g).without(["display"]);n?n.focus():p.blur();q&&p.setAttribute("placeholder",r);if(!b.browser.hasCurrCODE
LOWcps/static/js/libs/wysihtml5-0.3.0.min.js240wysihtml5.views.Textarea=wysihtml5.views.View.extend({name:"textarea",constructor:function(b,c,a){this.base(b,c,a);this.CODE
LOWcps/static/js/libs/tinymce/tinymce.min.js9!function(){"use strict";function r(e){if(null===e)return"null";if(void 0===e)return"undefined";var t=typeof e;return"obCODE
LOWcps/static/js/libs/tinymce/themes/silver/theme.min.js9!function(){"use strict";function t(o){return function(t){return e=typeof(n=t),(null===n?"null":"object"==e&&(Array.protCODE
LOW…atic/js/libs/bootstrap-table/bootstrap-editable.min.js5!function(a){"use strict";var b=function(b,c){this.options=a.extend({},a.fn.editableform.defaults,c),this.$div=a(b),thisCODE
LOW…atic/js/libs/bootstrap-table/bootstrap-editable.min.js7daysMin:["Su","Mo","Tu","We","Th","Fr","Sa","Su"],months:["January","February","March","April","May","June","July","AuguCODE
AI Slop Vocabulary5 hits · 14 pts
SeverityFileLineSnippetContext
MEDIUMcps/static/js/libs/compromise.min.js3!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&defineCODE
MEDIUMcps/static/js/libs/epub.min.js1!function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e(require("JSZip")):"function"==typeof dCODE
MEDIUMcps/static/js/libs/epub.min.js1!function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e(require("JSZip")):"function"==typeof dCODE
MEDIUMcps/static/js/libs/tinymce/tinymce.min.js9!function(){"use strict";function r(e){if(null===e)return"null";if(void 0===e)return"undefined";var t=typeof e;return"obCODE
MEDIUMcps/static/js/libs/tinymce/tinymce.min.js9!function(){"use strict";function r(e){if(null===e)return"null";if(void 0===e)return"undefined";var t=typeof e;return"obCODE
Redundant / Tautological Comments7 hits · 10 pts
SeverityFileLineSnippetContext
LOWcps/db.py976 # Check if FTS5 table exists before attempting searchCOMMENT
LOWcps/db.py1088 # Check if there are more resultsCOMMENT
LOWcps/updater.py573 # Check if major versions are identical search for newest non-equal commit and update to this oneCOMMENT
LOWcps/helper.py199# Check if a reader is existing for any of the book formats, if not, return empty list, otherwise returnCOMMENT
LOWcps/tasks/thumbnail.py99 # Check if job has been cancelled or endedCOMMENT
LOWcps/tasks/thumbnail.py296 # Check if job has been cancelled or endedCOMMENT
LOWcps/metadata_provider/lubimyczytac.py278 # Check if book is not a bundle, i.e. chapter 1-3COMMENT
Docstring Block Structure1 hit · 5 pts
SeverityFileLineSnippetContext
HIGHcps/gdriveutils.py476Watch for any changes to a specific file. Args: service: Drive API service instance. file_id: ID of the fileSTRING
Slop Phrases3 hits · 4 pts
SeverityFileLineSnippetContext
LOWcps/helper.py137 txt += "Don't forget to change your password after your first login.\r\n"CODE
LOWcps/services/gmail.py52 # don't forget to dump one more time after the refreshCOMMENT
LOWcps/services/gmail.py52 # don't forget to dump one more time after the refreshCOMMENT
Modern Structural Boilerplate1 hit · 1 pts
SeverityFileLineSnippetContext
LOWcps/cw_login/__init__.py43__all__ = [CODE
Overly Generic Function Names1 hit · 1 pts
SeverityFileLineSnippetContext
LOWcps/static/js/compress/libunrar.js15var Module;if(!Module)Module=(typeof Module!=="undefined"?Module:null)||{};var moduleOverrides={};for(var key in Module)CODE
AI Structural Patterns1 hit · 1 pts
SeverityFileLineSnippetContext
LOWcps/cw_advocate/addrvalidator.py85CODE