AI Slop Code RIsk Monitor

zhinianboke/xianyu-auto-reply

闲鱼自动回复管理系统是一个基于 Python + FastAPI 开发的自动化客服系统,专为闲鱼平台设计。系统通过 WebSocket 连接闲鱼服务器,实时接收和处理消息,提供智能化的自动回复服务。同时集成闲鱼自动发货,自动评价,自动擦亮等功能,实现闲鱼虚拟商品自动化流程。

15.7 Elevated pattern signal View on GitHub

Maintenance and Governance Review

This report summarizes scanner evidence for zhinianboke/xianyu-auto-reply, a Python project with 7,544 GitHub stars. SynthScan examined 295,828 lines of code across 1064 source files, recording 3969 pattern matches distributed across 13 syntactic categories. The legacy adjusted pattern signal is 15.7 (Elevated pattern signal); it is not an authorship estimate.

Use the findings to ask whether maintainers can explain intent, verify dependencies, simplify unnecessary scaffolding, and focus review effort. Risk Payload v1 adds ownership, supply-chain, over-engineering, and review-effort vectors when available. These are prompts for human verification, not probabilities, security findings, or measured maintenance costs.

15.7
Adjusted Signal
15.7
Raw Pattern Score
100%
Time Factor
2026-10-11
Last Push
7.5K
Stars
Python
Language
295.8K
Lines of Code
1.1K
Files
4.0K
Pattern Hits
2026-10-12
Scan Date
0.23
HC Hit Rate

Risk Review · v3

Use each vector to guide manual verification of the underlying findings.

Cognitive Ownership Risk 19.3/100 · LOW

Can maintainers explain intent, assumptions, and trade-offs? 1180 finding(s).

Hallucinated Dependency & Supply Chain Risk 11.7/100 · LOW

Are imports declared and package/API names verified? 706 finding(s).

Agent Over-Engineering Ratio 44.5/100 · MEDIUM

Are wrappers, guards, and repeated structures necessary? 2939 finding(s).

PR Review Velocity Impact 59.1/100 · HIGH

Which changes need focused human review? 3969 finding(s).

What These Metrics Mean

Adjusted Signal
Legacy pattern score normalized per 1,000 scanned lines and multiplied by the repository-level time factor. It is not an estimate of AI authorship.
Raw Pattern Score
Sum of severity- and context-weighted pattern findings before applying the time factor.
Time Factor
A coarse multiplier based on repository last-push metadata. It does not identify when individual code was written.
Pattern Hits
Count of configured pattern findings. Review each location and surrounding code before acting.
HC Hit Rate
High- and critical-severity findings per scanned file. Severity is a configured detector weight, not proof of a vulnerability or authorship.
Lines / Files
Scan coverage denominators used by the legacy normalized score.

Pattern-Signal History

This chart tracks the legacy adjusted pattern score across scan runs. Changes can reflect source changes, scan coverage, or detector/scoring versions; they do not measure AI adoption or prove that a team refactored code. Compare runs only when their scoring versions are compatible. The dashed line tracks the raw pattern-hit count.

Severity Breakdown

Groups findings by configured severity weight. Severity is not a confidence estimate, security rating, or proof that a package is missing. Verify imports against the project's manifests and inspect each finding in its local design context.

CRITICAL 0HIGH 240MEDIUM 58LOW 3671

Directory Score Breakdown

This horizontal bar chart shows where configured pattern scores accumulate across directories. Treat the bars as locations to inspect, not as evidence of authorship or code quality. Use the file-level findings to decide whether a directory needs a focused ownership, dependency, complexity, or review check.

Pattern Findings

The scanner identified 3969 distinct pattern matches across 13 syntactic categories. Each entry below represents a discrete location in the source code where the engine recorded a detector match to inspect in context. 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 configured finding weight (CRITICAL / HIGH / MEDIUM / LOW). The Context column identifies whether the match occurred inside executable code, an inline comment, or a string literal — legacy comment-context matches receive a ×1.5 score weight. The ⚡ bolt icon marks clustered matches: three or more patterns within a 10-line window, each receiving an additional ×1.5 density multiplier under the legacy scoring model.

Excessive Try-Catch Wrapping1733 hits · 1494 pts
SeverityFileLineSnippetContext
LOW⚡promotion/backend/_bootstrap.py36 except Exception as exc:CODE
LOWpromotion/backend/app/api/routes/cookies.py318 except Exception:CODE
LOWpromotion/backend/app/api/routes/auth.py51 except Exception:CODE
LOWpromotion/backend/app/api/routes/geetest.py132 except Exception as e:CODE
LOWpromotion/backend/app/api/routes/geetest.py197 except Exception as e:CODE
LOWpromotion/backend/app/api/routes/settings.py57 except Exception as e:CODE
LOWpromotion/backend/app/api/routes/settings.py90 except Exception as e:CODE
LOW…omotion/backend/app/services/taobao_alliance_detail.py81 except Exception as e:CODE
LOW…omotion/backend/app/services/taobao_alliance_detail.py227 except Exception as e:CODE
LOW…omotion/backend/app/services/taobao_alliance_detail.py328 except Exception as e:CODE
LOW…on/backend/app/services/publish_coupon_card_service.py86 except Exception as exc:CODE
LOW…ckend/app/services/publish_rule_persistence_service.py46 except Exception as exc:CODE
LOW…ckend/app/services/publish_rule_persistence_service.py73 except Exception as exc:CODE
LOW…ckend/app/services/publish_rule_persistence_service.py98 except Exception as exc:CODE
LOW…ckend/app/services/publish_rule_persistence_service.py153 except Exception as card_exc:CODE
LOW…ckend/app/services/publish_rule_persistence_service.py156 except Exception as exc:CODE
LOW…otion/backend/app/services/item_delete_sync_service.py80 except Exception as e:CODE
LOW…omotion/backend/app/services/publish_rule_scheduler.py187 except Exception as e:CODE
LOW…omotion/backend/app/services/publish_rule_scheduler.py212 except Exception as e:CODE
LOW…omotion/backend/app/services/publish_rule_scheduler.py322 except Exception as e:CODE
LOW…omotion/backend/app/services/publish_rule_scheduler.py449 except Exception as e:CODE
LOW…omotion/backend/app/services/publish_rule_scheduler.py546 except Exception as e:CODE
LOW⚡…end/app/services/published_item_id_repair_scheduler.py39 except Exception as exc:CODE
LOW…end/app/services/published_item_id_repair_scheduler.py129 except Exception as exc:CODE
LOW…end/app/services/published_item_id_repair_scheduler.py215 except Exception as exc:CODE
LOW⚡…nd/app/services/material_short_url_repair_scheduler.py34 except Exception as exc:CODE
LOW…nd/app/services/material_short_url_repair_scheduler.py86 except Exception as exc:CODE
LOW…nd/app/services/material_short_url_repair_scheduler.py151 except Exception as exc:CODE
LOWpromotion/backend/app/services/delete_rule_scheduler.py41 except Exception as e:CODE
LOWpromotion/backend/app/services/delete_rule_scheduler.py68 except Exception as e:CODE
LOWpromotion/backend/app/services/delete_rule_scheduler.py73 except Exception as e:CODE
LOWpromotion/backend/app/services/delete_rule_scheduler.py324 except Exception as e:CODE
LOW…motion/backend/app/services/taobao_alliance_service.py313 except Exception as e:CODE
LOW⚡…/backend/app/services/publish_coupon_card_scheduler.py27 except Exception as exc:CODE
LOW…/backend/app/services/publish_coupon_card_scheduler.py139 except Exception as exc:CODE
LOW…omotion/backend/app/services/database_check_service.py37 except Exception as e:CODE
LOW…omotion/backend/app/services/database_check_service.py66 except Exception as e:CODE
LOW…omotion/backend/app/services/product_rule_scheduler.py47 except Exception as e:CODE
LOW…omotion/backend/app/services/product_rule_scheduler.py82 except Exception as e:CODE
LOW…omotion/backend/app/services/product_rule_scheduler.py119 except Exception as e:CODE
LOW…omotion/backend/app/services/product_rule_scheduler.py277 except Exception as e:CODE
LOW…omotion/backend/app/services/product_rule_scheduler.py296 except Exception as e:CODE
LOW…omotion/backend/app/services/product_rule_scheduler.py312 except Exception as e:CODE
LOWbackend-web/_bootstrap.py63 except Exception as e:CODE
LOW⚡backend-web/_bootstrap.py85 except Exception:CODE
LOW⚡backend-web/_bootstrap.py93 except Exception as e:CODE
LOW⚡backend-web/_bootstrap.py100 except Exception as e:CODE
LOW⚡backend-web/_bootstrap.py107 except Exception as e:CODE
LOW⚡backend-web/_bootstrap.py115 except Exception as e:CODE
LOWbackend-web/_bootstrap.py145 except Exception as e:CODE
LOWbackend-web/_bootstrap.py160 except Exception as e:CODE
LOWbackend-web/_bootstrap.py166 except Exception as e:CODE
LOWbackend-web/_bootstrap.py182 except Exception:CODE
LOWbackend-web/_bootstrap.py216 except Exception as e:CODE
LOWbackend-web/_bootstrap.py230 except Exception as e:CODE
LOWbackend-web/_bootstrap.py280 except Exception as e:CODE
LOWbackend-web/app/core/http_client.py146 except Exception:CODE
LOWbackend-web/app/api/routes/listing_monitor.py201 except Exception as exc: # noqa: BLE001CODE
LOWbackend-web/app/api/routes/listing_monitor.py282 except Exception as exc: # noqa: BLE001CODE
LOWbackend-web/app/api/routes/listing_monitor.py423 except Exception as exc: # noqa: BLE001CODE
1673 more matches not shown…
Empty Error Handlers165 hits · 825 pts
SeverityFileLineSnippetContext
HIGHpromotion/backend/_bootstrap.py114except asyncio.CancelledError:CODE
HIGHpromotion/backend/app/core/config.py61except json.JSONDecodeError:CODE
HIGHpromotion/backend/app/api/routes/cookies.py318except Exception:CODE
HIGHpromotion/backend/app/api/routes/cookies.py59except ValueError:CODE
HIGH…omotion/backend/app/services/publish_rule_scheduler.py484except (json.JSONDecodeError, TypeError):CODE
HIGHbackend-web/_bootstrap.py188except asyncio.CancelledError:CODE
HIGHbackend-web/app/core/config.py127except json.JSONDecodeError:CODE
HIGHbackend-web/app/api/routes/cookies.py631except Exception:CODE
HIGHbackend-web/app/api/routes/feedback.py78except ValueError:CODE
HIGHbackend-web/app/api/routes/advertisements.py157except ValueError:CODE
HIGHbackend-web/app/api/routes/advertisements.py162except ValueError:CODE
HIGHbackend-web/app/api/routes/advertisements.py282except ValueError:CODE
HIGHbackend-web/app/api/routes/chat_new.py871except Exception:CODE
HIGHbackend-web/app/api/routes/chat_new.py864except Exception:CODE
HIGHbackend-web/app/api/routes/admin.py1201except ValueError:CODE
HIGHbackend-web/app/api/routes/admin.py1209except ValueError:CODE
HIGHbackend-web/app/api/routes/admin.py1372except ValueError:CODE
HIGHbackend-web/app/api/routes/admin.py1380except ValueError:CODE
HIGHbackend-web/app/api/routes/admin.py569except Exception:CODE
HIGHbackend-web/app/api/routes/chat_new_image.py136except Exception:CODE
HIGHbackend-web/app/services/settlement_service.py116except Exception:CODE
HIGHbackend-web/app/services/pickup_service.py115except Exception:CODE
HIGHbackend-web/app/services/xianyu_direct_payload.py192except Exception:CODE
HIGHbackend-web/app/services/account_login_log_service.py67except ValueError:CODE
HIGHbackend-web/app/services/account_login_log_service.py74except ValueError:CODE
HIGHbackend-web/app/services/xianyu_publisher.py345except Exception:CODE
HIGHbackend-web/app/services/xianyu_publisher.py1048except Exception:CODE
HIGHbackend-web/app/services/xianyu_publisher.py1671except Exception:CODE
HIGHbackend-web/app/services/xianyu_publisher.py390except Exception:CODE
HIGHbackend-web/app/services/xianyu_publisher.py1421except Exception:CODE
HIGHbackend-web/app/services/xianyu_publisher.py1566except Exception:CODE
HIGHbackend-web/app/services/version_service.py49except Exception:CODE
HIGHbackend-web/app/services/db_backup_log_service.py60except ValueError:CODE
HIGHbackend-web/app/services/db_backup_log_service.py69except ValueError:CODE
HIGHbackend-web/app/services/chat_new/avatar_service.py74except (json.JSONDecodeError, TypeError):CODE
HIGHbackend-web/app/services/chat_new/im_client.py1094except asyncio.CancelledError:CODE
HIGHbackend-web/app/services/chat_new/im_client.py1138except Exception:CODE
HIGHbackend-web/app/services/chat_new/im_client.py1228except asyncio.CancelledError:CODE
HIGHbackend-web/app/services/chat_new/im_client.py241except Exception:CODE
HIGHbackend-web/app/services/chat_new/im_client.py249except Exception:CODE
HIGHbackend-web/app/services/chat_new/im_client.py225except asyncio.CancelledError:CODE
HIGHwebsocket/_bootstrap.py141except asyncio.CancelledError:CODE
HIGHwebsocket/app/utils/image_uploader.py157except Exception:CODE
HIGHwebsocket/app/api/routes/internal.py2007except Exception:CODE
HIGHwebsocket/app/api/routes/internal.py2831except Exception:CODE
HIGHwebsocket/app/api/routes/password_login.py281except Exception:CODE
HIGHwebsocket/app/api/routes/password_login.py550except Exception:CODE
HIGHwebsocket/app/services/xianyu/xianyu_async.py1288except Exception:CODE
HIGHwebsocket/app/services/xianyu/xianyu_async.py1209except Exception:CODE
HIGHwebsocket/app/services/xianyu/xianyu_async.py1948except Exception:CODE
HIGHwebsocket/app/services/xianyu/cookie_token_manager.py601except Exception:CODE
HIGHwebsocket/app/services/xianyu/cookie_token_manager.py1687except Exception:CODE
HIGHwebsocket/app/services/xianyu/cookie_token_manager.py1876except Exception:CODE
HIGHwebsocket/app/services/xianyu/cookie_token_manager.py965except Exception:CODE
HIGHwebsocket/app/services/xianyu/cookie_token_manager.py987except Exception:CODE
HIGHwebsocket/app/services/xianyu/cookie_token_manager.py1006except Exception:CODE
HIGHwebsocket/app/services/xianyu/connection_manager.py177except (ValueError, TypeError):CODE
HIGHwebsocket/app/services/xianyu/auto_delivery_handler.py240except Exception:CODE
HIGHwebsocket/app/services/xianyu/auto_delivery_handler.py279except Exception:CODE
HIGHwebsocket/app/services/xianyu/auto_delivery_handler.py2728except Exception:CODE
105 more matches not shown…
Hyper-Verbose Identifiers816 hits · 787 pts
SeverityFileLineSnippetContext
LOWpromotion/frontend/src/api/publishRule.ts113export async function getExecutePublishRuleStatus(taskId: string): Promise<ApiResponse<PublishRuleExecuteTask>> {CODE
LOW⚡promotion/backend/_bootstrap.py29def _setup_windows_event_loop_policy() -> None:CODE
LOWpromotion/backend/app/api/routes/cookies.py323async def _get_account_with_permission(session: AsyncSession, account_pk: int, current_user: User):CODE
LOW…omotion/backend/app/services/taobao_alliance_detail.py347def _parse_short_url_response(data: dict) -> dict:CODE
LOW…on/backend/app/services/publish_coupon_card_service.py54async def _get_publish_coupon_card_lock(user_id: int, published_item_id: str) -> asyncio.Lock:CODE
LOW…on/backend/app/services/publish_coupon_card_service.py64async def ensure_publish_coupon_card(CODE
LOW…on/backend/app/services/publish_coupon_card_service.py95async def _ensure_publish_coupon_card_once(CODE
LOW…on/backend/app/services/publish_coupon_card_service.py185async def get_publish_coupon_card_status(CODE
LOWpromotion/backend/app/services/product_rule_service.py291async def sync_product_rules_to_publish_accounts(CODE
LOWpromotion/backend/app/services/product_rule_service.py388async def sync_material_accounts_from_product_rules(CODE
LOW…ckend/app/services/publish_rule_persistence_service.py25async def save_publish_rule_progress(CODE
LOW…ckend/app/services/publish_rule_persistence_service.py54async def get_account_product_total_count(owner_id: int, account_id: str) -> int:CODE
LOW⚡…omotion/backend/app/services/publish_rule_scheduler.py89def _generate_publish_trace_code() -> str:CODE
LOW⚡…omotion/backend/app/services/publish_rule_scheduler.py92def _build_publish_title_with_trace(title: str | None, trace_code: str) -> str:CODE
LOW⚡…omotion/backend/app/services/publish_rule_scheduler.py98async def _find_published_item_id_by_trace_code(CODE
LOW…omotion/backend/app/services/publish_rule_scheduler.py33def _build_rule_execution_key(rule_id: int, user_id: int) -> str:CODE
LOW…omotion/backend/app/services/publish_rule_scheduler.py133async def get_manual_execute_publish_rule_status(task_id: str, user_id: int) -> dict:CODE
LOW…omotion/backend/app/services/publish_rule_scheduler.py139async def _run_manual_execute_publish_rule_task(task_id: str, rule_id: int, user_id: int) -> None:CODE
LOW…omotion/backend/app/services/publish_rule_scheduler.py199async def run_publish_rule_scheduler():CODE
LOW…omotion/backend/app/services/publish_rule_scheduler.py217async def manual_execute_publish_rule(rule_id: int, user_id: int) -> dict:CODE
LOW…omotion/backend/app/services/publish_rule_scheduler.py277async def _execute_all_publish_rules():CODE
LOW…omotion/backend/app/services/publish_rule_scheduler.py331async def _execute_single_publish_rule(CODE
LOW…omotion/backend/app/services/publish_rule_scheduler.py458async def _publish_material_to_xianyu(CODE
LOW⚡…end/app/services/published_item_id_repair_scheduler.py31async def run_published_item_id_repair_scheduler() -> None:CODE
LOW⚡…end/app/services/published_item_id_repair_scheduler.py44async def _repair_published_item_ids() -> None:CODE
LOW…end/app/services/published_item_id_repair_scheduler.py146async def _find_item_id_by_trace_code(CODE
LOW…end/app/services/published_item_id_repair_scheduler.py176async def _update_material_published_item_id(CODE
LOW⚡…nd/app/services/material_short_url_repair_scheduler.py26async def run_material_short_url_repair_scheduler() -> None:CODE
LOW⚡…nd/app/services/material_short_url_repair_scheduler.py39async def repair_material_short_urls_once() -> None:CODE
LOW…nd/app/services/material_short_url_repair_scheduler.py161async def _update_material_short_url(material_id: int, short_url: str) -> bool:CODE
LOWpromotion/backend/app/services/material_service.py204def _normalize_material_items(items: list[dict]) -> list[dict]:CODE
LOWpromotion/backend/app/services/material_service.py224async def _get_material_upsert_context(CODE
LOWpromotion/backend/app/services/material_service.py275async def collect_creatable_material_items(CODE
LOWpromotion/backend/app/services/material_service.py420def _normalize_publish_status_filter(publish_status: str, legacy_published: str) -> str:CODE
LOWpromotion/backend/app/services/delete_rule_scheduler.py28async def run_delete_rule_scheduler() -> None:CODE
LOWpromotion/backend/app/services/delete_rule_scheduler.py328def _is_session_expired_error(message: str) -> bool:CODE
LOWpromotion/backend/app/services/publish_rule_service.py266async def _get_user_rule_by_account(CODE
LOWpromotion/backend/app/services/publish_rule_service.py285async def _get_total_published_count_map(CODE
LOWpromotion/backend/app/services/publish_rule_service.py325def _is_publish_rule_account_duplicate_error(exc: IntegrityError) -> bool:CODE
LOWpromotion/backend/app/services/delete_rule_service.py251async def _get_user_rule_by_account(CODE
LOWpromotion/backend/app/services/delete_rule_service.py270def _is_delete_rule_account_duplicate_error(exc: IntegrityError) -> bool:CODE
LOW…motion/backend/app/services/taobao_alliance_service.py499def _build_coupon_info_from_promotion_path(promotion_path: list[dict]) -> str:CODE
LOW⚡…/backend/app/services/publish_coupon_card_scheduler.py20async def run_publish_coupon_card_scheduler() -> None:CODE
LOW⚡…/backend/app/services/publish_coupon_card_scheduler.py32async def _load_existing_catalog_item_keys(rows: list[tuple[int, int, str | None]]) -> set[tuple[int, str]]:CODE
LOW…/backend/app/services/publish_coupon_card_scheduler.py56async def _repair_publish_coupon_cards() -> None:CODE
LOW…omotion/backend/app/services/database_check_service.py31async def check_database_connection() -> bool:CODE
LOW…omotion/backend/app/services/database_check_service.py96async def _get_table_unique_constraints(conn: AsyncConnection, table_name: str) -> list[dict]:CODE
LOW…omotion/backend/app/services/database_check_service.py115async def _ensure_unique_constraint(CODE
LOW…omotion/backend/app/services/database_check_service.py168async def _check_product_rules_columns(conn: AsyncConnection, existing_tables: list[str]) -> bool:CODE
LOW…omotion/backend/app/services/database_check_service.py308async def _check_publish_rules_columns(conn: AsyncConnection, existing_tables: list[str]) -> None:CODE
LOW…omotion/backend/app/services/database_check_service.py372async def _check_delete_rules_columns(conn: AsyncConnection, existing_tables: list[str]) -> None:CODE
LOW…omotion/backend/app/services/database_check_service.py443async def _sync_rule_account_dimensions() -> None:CODE
LOW…omotion/backend/app/services/product_rule_scheduler.py34async def run_product_rule_scheduler():CODE
LOW…omotion/backend/app/services/product_rule_scheduler.py325def merge_short_url_into_description(description: str, short_url: str) -> str:CODE
LOWbackend-web/_bootstrap.py48async def check_database_connection():CODE
LOWbackend-web/_bootstrap.py319async def request_validation_exception_handler(CODE
LOWbackend-web/app/api/deps.py109async def get_default_reply_service(session: AsyncSession = Depends(get_db_session)):CODE
LOWbackend-web/app/api/deps.py121async def get_notification_channel_service(session: AsyncSession = Depends(get_db_session)):CODE
LOWbackend-web/app/api/deps.py127async def get_system_setting_service(session: AsyncSession = Depends(get_db_session)):CODE
LOWbackend-web/app/api/deps.py140async def get_account_login_log_service(session: AsyncSession = Depends(get_db_session)):CODE
756 more matches not shown…
Unused Imports687 hits · 642 pts
SeverityFileLineSnippetContext
LOWpromotion/backend/_bootstrap.py15CODE
LOWpromotion/backend/main.py2CODE
LOWpromotion/backend/main.py12CODE
LOWpromotion/backend/app/core/config.py9CODE
LOWpromotion/backend/app/core/security.py9CODE
LOWpromotion/backend/app/api/deps.py9CODE
LOWpromotion/backend/app/api/_exports.py7CODE
LOWpromotion/backend/app/api/__init__.py2CODE
LOWpromotion/backend/app/api/routes/delete_rule.py12CODE
LOWpromotion/backend/app/api/routes/cookies.py11CODE
LOWpromotion/backend/app/api/routes/auth.py9CODE
LOWpromotion/backend/app/api/routes/auth.py11CODE
LOWpromotion/backend/app/api/routes/material.py9CODE
LOWpromotion/backend/app/api/routes/product_rule.py11CODE
LOWpromotion/backend/app/api/routes/taobao_alliance.py9CODE
LOWpromotion/backend/app/api/routes/dashboard.py8CODE
LOWpromotion/backend/app/api/routes/settings.py8CODE
LOWpromotion/backend/app/api/routes/publish_rule.py13CODE
LOW…omotion/backend/app/services/taobao_alliance_detail.py8CODE
LOW…on/backend/app/services/publish_coupon_card_service.py9CODE
LOWpromotion/backend/app/services/product_rule_service.py9CODE
LOW…ckend/app/services/publish_rule_persistence_service.py9CODE
LOWpromotion/backend/app/services/auth_service.py10CODE
LOW…otion/backend/app/services/item_delete_sync_service.py10CODE
LOW…omotion/backend/app/services/publish_rule_scheduler.py11CODE
LOW…end/app/services/published_item_id_repair_scheduler.py10CODE
LOW…end/app/services/published_item_id_repair_scheduler.py16CODE
LOW…nd/app/services/material_short_url_repair_scheduler.py10CODE
LOWpromotion/backend/app/services/material_service.py10CODE
LOWpromotion/backend/app/services/material_service.py18CODE
LOWpromotion/backend/app/services/delete_rule_scheduler.py10CODE
LOWpromotion/backend/app/services/publish_rule_service.py10CODE
LOWpromotion/backend/app/services/delete_rule_service.py9CODE
LOW…motion/backend/app/services/taobao_alliance_service.py9CODE
LOW…/backend/app/services/publish_coupon_card_scheduler.py1CODE
LOW…motion/backend/app/services/item_delete_api_service.py2CODE
LOW…motion/backend/app/services/item_delete_api_service.py2CODE
LOW…motion/backend/app/services/item_delete_api_service.py2CODE
LOW…motion/backend/app/services/item_delete_api_service.py2CODE
LOW…motion/backend/app/services/item_delete_api_service.py2CODE
LOW…motion/backend/app/services/item_delete_api_service.py2CODE
LOW…omotion/backend/app/services/database_check_service.py9CODE
LOW…omotion/backend/app/services/database_check_service.py24CODE
LOW…omotion/backend/app/services/database_check_service.py25CODE
LOW…omotion/backend/app/services/database_check_service.py26CODE
LOW…omotion/backend/app/services/database_check_service.py27CODE
LOW…omotion/backend/app/services/database_check_service.py28CODE
LOW…omotion/backend/app/services/product_rule_scheduler.py12CODE
LOWbackend-web/_bootstrap.py15CODE
LOWbackend-web/main.py2CODE
LOWbackend-web/main.py22CODE
LOWbackend-web/app/core/config.py9CODE
LOWbackend-web/app/core/paths.py9CODE
LOWbackend-web/app/core/http_client.py11CODE
LOWbackend-web/app/core/security.py14CODE
LOWbackend-web/app/api/deps.py10CODE
LOWbackend-web/app/api/__init__.py6CODE
LOWbackend-web/app/api/__init__.py9CODE
LOWbackend-web/app/api/__init__.py10CODE
LOWbackend-web/app/api/routes/listing_monitor.py9CODE
627 more matches not shown…
Docstring Block Structure48 hits · 240 pts
SeverityFileLineSnippetContext
HIGHbackend-web/app/core/http_client.py86 发送HTTP请求(带重试) Args: method: HTTP方法 url: 请求URL headers: 请求头 STRING
HIGHbackend-web/app/api/routes/external_publish.py116 将公开请求转换为现有单品发布执行服务使用的数据结构。 Args: payload: 公开发布请求。 account: 已校验归属的闲鱼账号。 Returns: 现有STRING
HIGHbackend-web/app/services/amap_inputtips_service.py71 根据关键词查询高德 POI 输入提示。 Args: keywords: 用户输入的所在地关键词。 city: 搜索城市,默认全国且不限制城市范围。 STRING
HIGHbackend-web/app/services/platform_category_selection.py114 构造选择分类后重新获取动态属性所需的平台参数。 与单品发布界面一致,不要求调用方回传完整的分类字段:只要能用 channel_cat_id、tb_cat_id、cat_id 或分类名称中任意一个定位到分类卡里的选STRING
HIGHbackend-web/app/services/platform_category_service.py328 根据标题和描述返回平台分类候选,令牌过期时自动刷新并重试一次。 Args: title: 商品标题。 description: 商品描述。 STRING
HIGHbackend-web/app/services/account_service.py527协议化账号密码登录成功后保存账号(按前端传入的 account_id upsert)。 与扫码登录 upsert_account_from_qr 的差异:按 account_id(非 unb)定位, 并保存STRING
HIGH…end-web/app/services/external_publish_media_service.py36 校验媒体类型。 Args: media_type: 调用方传入的媒体类型。 Returns: 规范化后的媒体类型。 RaisSTRING
HIGH…end-web/app/services/external_publish_media_service.py73 将静态目录内文件转为发布器可读取的静态 URL。 Args: filepath: 静态目录内的媒体文件路径。 Returns: 以 /staSTRING
HIGH…end-web/app/services/external_publish_media_service.py95 保存一份公开发布媒体并返回 media_id。 Args: account: 已通过秘钥校验的闲鱼账号。 media_type: image、spec_imSTRING
HIGH…end-web/app/services/external_publish_media_service.py141 按账号和预期类型解析 media_id 对应的静态地址。 Args: account: 已通过秘钥校验的闲鱼账号。 media_id: 公开上传接口返回的媒STRING
HIGH…end-web/app/services/external_publish_media_service.py173 批量解析媒体 ID 并拒绝重复引用。 Args: account: 已通过秘钥校验的闲鱼账号。 media_ids: 媒体 ID 列表。 STRING
HIGHbackend-web/app/services/xianyu_item_payload_builder.py306构造 idleitem.publish / idleitem.edit 共用的 inputJson 载荷。 Args: item_data: 前端表单数据(标题、描述、图片、价格、规格、分类、发货设置等)。 STRING
HIGHbackend-web/app/services/ai_listing_text_generator.py68解析模型返回的 JSON 文案 Args: text: 模型输出。 expect: 本批期望条数。 Returns: 清洗后的条目列表(title/description/pSTRING
HIGHbackend-web/app/services/ai_listing_text_generator.py109生成一批文案 Args: client: 复用的 httpx 客户端。 config: AI 铺货配置。 params: 任务参数快照。 keyword: 生成主题。STRING
HIGHbackend-web/app/services/external_account_service.py115 获取分销秘钥所属用户的指定账号,不校验启用状态。 公开接口只做归属校验:禁用账号也允许调用分类和发布接口, Cookie 失效等问题由平台调用结果如实返回给调用方。 ArSTRING
HIGHbackend-web/app/services/ai_listing_runner.py81为单条素材生成图片(受全局并发闸门约束) Args: client: 复用的 httpx 客户端。 config: AI 铺货配置。 keyword: 生成主题。 tSTRING
HIGHbackend-web/app/services/chat_new/im_client.py1030发送 LWP 请求;遇到 code=400(Token/连接失效)时刷新 Token 重连 除自身收到 code=400 外,还处理「并发请求已把连接重连」的情况:本次请求可能 被那次 disconnectSTRING
HIGHbackend-web/app/services/chat_new/im_session_manager.py45 获取已连接的客户端,或新建连接 Args: account_id: 账号ID Returns: 已连接的GoofishImClient STRING
HIGHwebsocket/app/services/xianyu/xianyu_async.py2185创建(或获取)单聊会话,返回会话ID(chat_id) 通过 LWP 协议 /r/SingleChatConversation/create 请求服务端: - 服务端基于 (pairFirsSTRING
HIGHwebsocket/app/services/xianyu/xianyu_async.py2330发送一次「创建会话」LWP 请求并等待响应,解析出 cid。 每次调用都重新读取当前 self.connection_manager.ws(断线重连后为新的 ws 对象)。 Args: STRING
HIGHscheduler/app/core/http_client.py84 发送HTTP请求(带重试) Args: method: HTTP方法 url: 请求URL headers: 请求头 STRING
HIGHcommon/utils/local_video_upload.py47校验并保存一个视频文件。 Args: video: FastAPI 上传文件对象 upload_dir: 保存目录 max_size: 单文件最大字节数 Returns: STRING
HIGHcommon/utils/xianyu_utils.py30将cookies字符串转换为字典 Args: cookies_str: Cookie字符串,格式如 "key1=value1; key2=value2" 兼容 "kSTRING
HIGHcommon/utils/xianyu_utils.py420解密消息数据 Args: data: Base64编码的MessagePack数据 Returns: 解密后的JSON字符串 RaisesSTRING
HIGHcommon/utils/agree_deliver.py107在提货URL上追加订单号与订单表主键两个 GET 参数。 原提货URL由用户自行配置,可能本来就带查询参数(如 ?src=xy),此时按 & 合并追加、 不会重复出现 ?;原URL没有查询参数时才补 ?。原有同名参数以本次STRING
HIGHcommon/utils/local_image_upload.py102读取上传文件全部字节并按 ``max_size`` 校验大小。 Args: image: FastAPI 上传文件对象。 max_size: 最大字节数。``<= 0`` 表示不做大小校验 STRING
HIGHcommon/utils/local_image_upload.py161统一处理图片上传:类型校验 → 大小校验 → 生成唯一文件名 → 写盘。 URL 拼接、失败回滚、业务保存等仍由调用方负责,函数只返回必要的中间结果。 Args: image: FastAPI 上传文件对STRING
HIGHcommon/utils/local_image_upload.py246把图片字节写入本地静态目录:格式校验 → 大小校验 → 唯一文件名 → 写盘。 与 :func:`save_uploaded_image` 的区别是入口不是 FastAPI ``UploadFile``, 而是已经拿到手的STRING
HIGHcommon/utils/internal_token_service.py74 只读取已有的服务间 API 令牌,不创建或修改数据库记录。 Args: settings: 当前服务配置对象。 Returns: 已加载的服务间 API 令牌。 RaiseSTRING
HIGHcommon/db/session.py58 将SQL语句和参数编译成完整的可执行SQL Args: statement: SQL语句 parameters: 参数字典或元组 Returns: STRING
HIGHcommon/services/im_token_api.py130调用闲鱼 IM Token API。 Args: cookies_str: 账号 Cookie 字符串。 device_id: 本次请求必须使用的 Device ID。 api_moSTRING
HIGHcommon/services/im_token_api.py282调用远程 Token 接口并记录完整的风控日志。 远程接口请求超时(asyncio.TimeoutError)时,最多尝试 ``REMOTE_TOKEN_TIMEOUT_MAX_ATTEMPTS`` 次(首次 + 重试 2STRING
HIGHcommon/services/im_token_api.py387按系统设置调用 Token 接口。 网页模式仅调用本地网页端接口;远程模式在缓存未命中后直接调用远程接口, 不再请求本地网页端接口。远程失败时返回远程失败结果,由调用方继续处理 滑块或令牌过期。 ArgsSTRING
HIGHcommon/services/listing_monitor_category_access.py30校验分类存在且当前用户有权引用,返回分类对象。 Args: session: 数据库会话 category_id: 分类ID;None 表示"无分类",直接放行并返回 None owSTRING
HIGHcommon/services/ai_image_client.py102流式下载图片并限制总字节数 先看 Content-Length 快速拒绝,再边收边累计实际字节,超限立即中断, 避免第三方返回超大文件把内存/磁盘打满。 Args: client: httpx 异STRING
HIGHcommon/services/ai_image_client.py146从响应体中取出图片条目列表 Args: data: /images/generations 响应体。 Returns: 图片条目列表,每项可能含 url 或 b64_json。 RaSTRING
HIGHcommon/services/ai_image_client.py166把单个图片条目还原成字节内容 Args: client: httpx 异步客户端。 item: 图片条目(含 url 或 b64_json)。 timeout: 下载超时秒数。 STRING
HIGHcommon/services/ai_image_client.py204调用图片生成接口并把结果落盘 Args: base_url: 图片接口基础地址。 api_key: 接口密钥,仅用于 Authorization 头。 model: 图片模型名称。 STRING
HIGHcommon/services/ai_text_client.py110发一次 POST 请求并把失败统一转成 AiCallError 这里不复用 ai_provider_service.ensure_success_response:它会把完整请求地址写进日志, 部分中转网关把密钥放在 URSTRING
HIGHcommon/services/ai_text_client.py149从响应体中取出模型输出的文本 Args: data: chat/completions 响应体。 Returns: 去除首尾空白的文本内容。 Raises: AiCaSTRING
HIGHcommon/services/ai_text_client.py185带退避重试的 POST:只重试网络异常/限流/服务端错误 401/403/400、以及响应体不是 JSON 这类问题重试也不会变,直接抛出。 Args: client: httpx 异步客户端。 STRING
HIGHcommon/services/ai_text_client.py230调用 OpenAI 兼容的 chat/completions 生成文本 收到 400 时按"字符串content+关闭思考 → 字符串content → 数组content+关闭思考 → 数组content" 四种形态依次STRING
HIGHcommon/services/token_request_lock.py78获取账号级 Token 请求 Redis 锁。 Args: account_identifier: 闲鱼账号唯一标识,优先使用 unb/myid。 wait_timeout: 等待其他 Token STRING
HIGHcommon/services/listing_monitor_service.py180校验分类存在且当前用户有权使用。 普通用户只能使用自己创建的分类;管理员(owner_id=None)可使用任意分类。 与分类列表的隔离规则保持一致,防止普通用户通过构造请求挂用他人分类。 STRING
HIGHcommon/services/xianyu_publish_media.py88下载远程图片,带浏览器请求头并对图床限流做有限重试。 Args: url: 图片地址(http/https)。 Returns: tuple: (图片字节, Content-Type) STRING
HIGHcommon/services/listing_monitor_category_service.py142创建分类 Args: owner_id: 当前用户ID name: 分类名称 Returns: 创建的分类详情 RSTRING
HIGHcommon/services/listing_monitor_category_service.py181修改分类名称 Args: category_id: 分类ID owner_id: 当前用户ID name: 新分类名称 ReturnSTRING
HIGHcommon/services/xianyu_login/face_verification.py73 执行纯 API 人脸验证链路 Args: client: 贯穿登录全流程的 httpx.AsyncClient(携带 login.do 的 cookie jar) iframe_url: STRING
Deep Nesting270 hits · 200 pts
SeverityFileLineSnippetContext
LOWpromotion/backend/app/api/routes/cookies.py309CODE
LOWpromotion/backend/app/services/product_rule_service.py291CODE
LOW…ckend/app/services/publish_rule_persistence_service.py106CODE
LOW…omotion/backend/app/services/publish_rule_scheduler.py331CODE
LOW…omotion/backend/app/services/publish_rule_scheduler.py458CODE
LOW…end/app/services/published_item_id_repair_scheduler.py44CODE
LOW…nd/app/services/material_short_url_repair_scheduler.py39CODE
LOW…nd/app/services/material_short_url_repair_scheduler.py132CODE
LOW…/backend/app/services/publish_coupon_card_scheduler.py56CODE
LOWbackend-web/app/api/routes/cookies.py591CODE
LOWbackend-web/app/api/routes/auth.py35CODE
LOWbackend-web/app/api/routes/shared_scan.py226CODE
LOWbackend-web/app/api/routes/orders.py436CODE
LOWbackend-web/app/api/routes/qr_login.py108CODE
LOWbackend-web/app/api/routes/captcha.py384CODE
LOWbackend-web/app/api/routes/chat_new.py78CODE
LOWbackend-web/app/api/routes/chat_new.py244CODE
LOWbackend-web/app/api/routes/chat_new.py737CODE
LOWbackend-web/app/api/routes/chat_new.py830CODE
LOWbackend-web/app/api/routes/admin.py404CODE
LOWbackend-web/app/api/routes/agree_deliver.py67CODE
LOWbackend-web/app/api/routes/cookie_refresh.py188CODE
LOWbackend-web/app/api/routes/notifications.py74CODE
LOWbackend-web/app/api/routes/auto_rate.py233CODE
LOWbackend-web/app/api/routes/goofish_crawler.py245CODE
LOWbackend-web/app/api/routes/message_filters.py82CODE
LOWbackend-web/app/api/routes/items.py36CODE
LOWbackend-web/app/services/product_publish_service.py230CODE
LOWbackend-web/app/services/withdraw_risk_check.py129CODE
LOWbackend-web/app/services/withdraw_risk_check.py241CODE
LOWbackend-web/app/services/publish_execution_service.py241CODE
LOWbackend-web/app/services/platform_category_service.py315CODE
LOWbackend-web/app/services/account_service.py792CODE
LOWbackend-web/app/services/account_service.py882CODE
LOWbackend-web/app/services/pickup_service.py59CODE
LOWbackend-web/app/services/xianyu_direct_payload.py198CODE
LOWbackend-web/app/services/xianyu_item_payload_builder.py297CODE
LOWbackend-web/app/services/xianyu_publisher.py399CODE
LOWbackend-web/app/services/xianyu_publisher.py586CODE
LOWbackend-web/app/services/xianyu_publisher.py646CODE
LOWbackend-web/app/services/xianyu_publisher.py1127CODE
LOWbackend-web/app/services/xianyu_publisher.py1198CODE
LOWbackend-web/app/services/xianyu_publisher.py1288CODE
LOWbackend-web/app/services/xianyu_publisher.py1331CODE
LOWbackend-web/app/services/xianyu_publisher.py1581CODE
LOWbackend-web/app/services/xianyu_publisher.py1698CODE
LOWbackend-web/app/services/xianyu_publisher.py1742CODE
LOWbackend-web/app/services/xianyu_publisher.py1835CODE
LOWbackend-web/app/services/xianyu_publisher.py984CODE
LOWbackend-web/app/services/xianyu_publisher.py1223CODE
LOWbackend-web/app/services/xianyu_publisher.py989CODE
LOWbackend-web/app/services/account_export_service.py142CODE
LOWbackend-web/app/services/qr_login/face_verification.py46CODE
LOWbackend-web/app/services/password_login/flow.py191CODE
LOWbackend-web/app/services/chat_new/avatar_service.py39CODE
LOWbackend-web/app/services/chat_new/avatar_service.py250CODE
LOWbackend-web/app/services/chat_new/im_client.py676CODE
LOWbackend-web/app/services/chat_new/im_client.py1169CODE
LOWwebsocket/app/utils/image_uploader.py46CODE
LOWwebsocket/app/api/routes/internal.py275CODE
210 more matches not shown…
Decorative Section Separators45 hits · 156 pts
SeverityFileLineSnippetContext
MEDIUMbuild_backend_web.sh2# ==========================================COMMENT
MEDIUMbuild_backend_web.sh5# ==========================================COMMENT
MEDIUMbuild_scheduler.sh2# ==========================================COMMENT
MEDIUMbuild_scheduler.sh5# ==========================================COMMENT
MEDIUMbuild_websocket.sh2# ==========================================COMMENT
MEDIUMbuild_websocket.sh5# ==========================================COMMENT
MEDIUMbuild.sh2# ==========================================COMMENT
MEDIUMbuild.sh6# ==========================================COMMENT
MEDIUMbuild.sh72# ==========================================COMMENT
MEDIUMbuild.sh74# ==========================================COMMENT
MEDIUMupdate.sh2# ==========================================COMMENT
MEDIUMupdate.sh13# ==========================================COMMENT
MEDIUMupdate.sh377# ==========================================COMMENT
MEDIUMupdate.sh379# ==========================================COMMENT
MEDIUMdeploy_remote.sh2# ==========================================COMMENT
MEDIUMdeploy_remote.sh7# ==========================================COMMENT
MEDIUMdeploy_remote.sh54# ==========================================COMMENT
MEDIUMdeploy_remote.sh56# ==========================================COMMENT
MEDIUMdeploy.sh2# ==========================================COMMENT
MEDIUMdeploy.sh6# ==========================================COMMENT
MEDIUMdeploy.sh53# ==========================================COMMENT
MEDIUMdeploy.sh55# ==========================================COMMENT
MEDIUMbuild_frontend.sh2# ==========================================COMMENT
MEDIUMbuild_frontend.sh5# ==========================================COMMENT
MEDIUM⚡backend-web/app/services/withdraw_risk_check.py87# ────────────────────────────────────────────────────────────────────────────COMMENT
MEDIUM⚡backend-web/app/services/withdraw_risk_check.py89# ────────────────────────────────────────────────────────────────────────────COMMENT
MEDIUM⚡backend-web/app/services/withdraw_risk_check.py124# ────────────────────────────────────────────────────────────────────────────COMMENT
MEDIUM⚡backend-web/app/services/withdraw_risk_check.py126# ────────────────────────────────────────────────────────────────────────────COMMENT
MEDIUM⚡backend-web/app/services/withdraw_risk_check.py183# ────────────────────────────────────────────────────────────────────────────COMMENT
MEDIUM⚡backend-web/app/services/withdraw_risk_check.py185# ────────────────────────────────────────────────────────────────────────────COMMENT
MEDIUM⚡backend-web/app/services/withdraw_risk_check.py238# ────────────────────────────────────────────────────────────────────────────COMMENT
MEDIUM⚡backend-web/app/services/withdraw_risk_check.py240# ────────────────────────────────────────────────────────────────────────────COMMENT
MEDIUM⚡backend-web/app/services/withdraw_risk_check.py284# ────────────────────────────────────────────────────────────────────────────COMMENT
MEDIUM⚡backend-web/app/services/withdraw_risk_check.py286# ────────────────────────────────────────────────────────────────────────────COMMENT
MEDIUM⚡backend-web/app/services/email_service.py512 # ── 风控检验 ──────────────────────────────────────────────────────────COMMENT
MEDIUM⚡backend-web/app/services/email_service.py521 # ─────────────────────────────────────────────────────────────────────COMMENT
MEDIUMwebsocket/app/services/xianyu/connection_manager.py275 # ──────────────────────────────────────────────────────────────COMMENT
MEDIUM⚡common/utils/service_restart.py371# ---------------------------------------------------------------------------COMMENT
MEDIUM⚡common/utils/service_restart.py374# ---------------------------------------------------------------------------COMMENT
MEDIUMcommon/services/xianyu_order_client.py84 # ------------------------------------------------------------------COMMENT
MEDIUMcommon/services/xianyu_order_client.py86 # ------------------------------------------------------------------COMMENT
MEDIUMcommon/services/xianyu_order_client.py120 # ------------------------------------------------------------------COMMENT
MEDIUMcommon/services/xianyu_order_client.py122 # ------------------------------------------------------------------COMMENT
MEDIUMcommon/services/xianyu_order_client.py233 # ------------------------------------------------------------------COMMENT
MEDIUMcommon/services/xianyu_order_client.py235 # ------------------------------------------------------------------COMMENT
Modern Structural Boilerplate130 hits · 130 pts
SeverityFileLineSnippetContext
LOW⚡promotion/backend/_bootstrap.py29def _setup_windows_event_loop_policy() -> None:CODE
LOWpromotion/backend/app/api/_exports.py49__all__ = ["api_router"]CODE
LOW…omotion/backend/app/services/publish_rule_scheduler.py54def _update_manual_task(task_id: str, **kwargs) -> None:CODE
LOW…motion/backend/app/services/item_delete_api_service.py12__all__ = [CODE
LOWbackend-web/app/core/paths.py89__all__ = [CODE
LOWbackend-web/app/core/http_client.py22logger = logging.getLogger(__name__)CODE
LOWbackend-web/app/api/__init__.py12__all__ = ["api_router", "deps"]CODE
LOWbackend-web/app/api/routes/_exports.py211__all__ = ["api_router"]CODE
LOWbackend-web/app/api/routes/external_orders.py144__all__ = ["router"]CODE
LOWbackend-web/app/api/routes/external_message_logs.py114__all__ = ["router"]CODE
LOW…ckend-web/app/api/routes/product_publish_capability.py82__all__ = ["router"]CODE
LOWbackend-web/app/api/routes/external_accounts.py137__all__ = ["router"]CODE
LOWbackend-web/app/api/routes/advertisements.py35logger = logging.getLogger(__name__)CODE
LOWbackend-web/app/api/routes/activation.py27logger = logging.getLogger(__name__)CODE
LOWbackend-web/app/api/routes/external_category.py190__all__ = ["router"]CODE
LOWbackend-web/app/api/routes/external_shared.py121__all__ = [CODE
LOWbackend-web/app/api/routes/items.py31logger = logging.getLogger(__name__)CODE
LOWbackend-web/app/api/routes/external_publish.py303__all__ = ["router"]CODE
LOWbackend-web/app/api/routes/external_api_route.py52__all__ = ["ExternalApiRoute"]CODE
LOWbackend-web/app/services/ai_listing_task_service.py503__all__ = [CODE
LOWbackend-web/app/services/xianyu_direct_publisher.py116__all__ = ["DirectPublishError", "XianyuDirectPublisher"]CODE
LOWbackend-web/app/services/recharge_service.py28logger = logging.getLogger(__name__)CODE
LOW…ckend-web/app/services/external_message_log_service.py126__all__ = [CODE
LOWbackend-web/app/services/withdraw_risk_check.py30logger = logging.getLogger(__name__)CODE
LOW…ckend-web/app/services/user_publish_address_service.py15__all__ = ["UserPublishAddressService", "_address_to_dict"]CODE
LOWbackend-web/app/services/platform_category_fields.py42__all__ = ["category_result", "first_text"]CODE
LOW…web/app/services/publish_account_capability_service.py330__all__ = ["PublishAccountCapabilityService"]CODE
LOWbackend-web/app/services/dashboard_stats_service.py31logger = logging.getLogger(__name__)CODE
LOWbackend-web/app/services/settlement_service.py31logger = logging.getLogger(__name__)CODE
LOWbackend-web/app/services/websocket_client.py24logger = logging.getLogger(__name__)CODE
LOWbackend-web/app/services/xianyu_personal_publisher.py217__all__ = ["XianyuPersonalPublisher"]CODE
LOWbackend-web/app/services/item_service.py16__all__ = ["ItemService"]CODE
LOWbackend-web/app/services/order_service.py15__all__ = ["OrderService"]STRING
LOWbackend-web/app/services/remote_content_service.py20logger = logging.getLogger(__name__)CODE
LOWbackend-web/app/services/platform_category_selection.py264__all__ = ["CategorySelectionError", "build_category_selection"]CODE
LOWbackend-web/app/services/xianyu_item_edit_mapper.py353__all__ = ["map_edit_detail_to_form"]CODE
LOW⚡backend-web/app/services/account_service.py396 async def update_pause_duration(self, account: XYAccount, duration: int) -> None:CODE
LOW⚡backend-web/app/services/account_service.py401 async def update_message_expire_time(self, account: XYAccount, expire_time: int) -> None:CODE
LOW⚡backend-web/app/services/account_service.py407 async def update_reply_delay(self, account: XYAccount, delay_seconds: int) -> None:CODE
LOW⚡backend-web/app/services/account_service.py430 async def update_scheduled_redelivery(self, account: XYAccount, scheduled_redelivery: bool) -> None:CODE
LOW⚡backend-web/app/services/account_service.py436 async def update_scheduled_rate(self, account: XYAccount, scheduled_rate: bool) -> None:CODE
LOW⚡backend-web/app/services/account_service.py593 async def update_auto_polish(self, account: XYAccount, auto_polish: bool) -> None:CODE
LOW⚡backend-web/app/services/account_service.py599 async def update_confirm_before_send(self, account: XYAccount, confirm_before_send: bool) -> None:CODE
LOWbackend-web/app/services/account_service.py360 async def update_cookie(self, account: XYAccount, value: str) -> None:CODE
LOWbackend-web/app/services/account_service.py366 async def update_status(self, account: XYAccount, enabled: bool, disable_reason: str | None = None) -> None:CODE
LOWbackend-web/app/services/account_service.py380 async def update_remark(self, account: XYAccount, remark: str) -> None:CODE
LOWbackend-web/app/services/account_service.py385 async def update_auto_confirm(self, account: XYAccount, auto_confirm: bool) -> None:CODE
LOWbackend-web/app/services/account_service.py612 async def update_send_before_confirm(self, account: XYAccount, send_before_confirm: bool) -> None:CODE
LOWbackend-web/app/services/account_service.py625 async def update_only_send_card(self, account: XYAccount, only_send_card: bool) -> None:CODE
LOWbackend-web/app/services/account_service.py643 async def update_auto_red_flower(self, account: XYAccount, auto_red_flower: bool) -> None:CODE
LOWbackend-web/app/services/account_service.py659 async def update_ai_reply_block_ordered_users(self, account: XYAccount, ai_reply_block_ordered_users: bool) -> None:CODE
LOWbackend-web/app/services/__init__.py13__all__ = [CODE
LOWbackend-web/app/services/xianyu_item_snapshot.py303__all__ = [CODE
LOWbackend-web/app/services/alipay_service.py30logger = logging.getLogger(__name__)CODE
LOW…end-web/app/services/external_publish_media_service.py191__all__ = ["ExternalPublishMediaError", "ExternalPublishMediaService"]CODE
LOWbackend-web/app/services/xianyu_item_payload_builder.py485__all__ = ["DirectPublishError", "build_item_payload"]CODE
LOWbackend-web/app/services/publish_address_service.py17__all__ = ["PublishAddressService", "ResolvedPublishAddress", "PublishAddressQueueState", "_address_to_dict"]CODE
LOWbackend-web/app/services/xianyu_item_edit_service.py341__all__ = ["edit_seller_item", "fetch_seller_item_edit_detail"]CODE
LOWbackend-web/app/services/listing_monitor_service.py12__all__ = ["ListingMonitorService", "_task_to_dict"]CODE
LOWbackend-web/app/services/ai_listing_text_generator.py149__all__ = ["TEXT_BATCH_SIZE", "generate_text_batch", "parse_generated_items"]CODE
70 more matches not shown…
Cross-Language Confusion17 hits · 90 pts
SeverityFileLineSnippetContext
HIGHbackend-web/app/api/routes/payment.py177 body: body.toString()CODE
HIGHbackend-web/app/api/routes/payment.py269 body: body.toString()CODE
HIGHbackend-web/app/services/xianyu_publisher.py135 Object.defineProperty(navigator, 'webdriver', { get: () => undefined });CODE
HIGHbackend-web/app/services/search/slider_handler.py299 return null;CODE
HIGH…bsocket/app/services/xianyu/cookies_refresh_service.py153 Object.defineProperty(navigator, 'webdriver', { get: () => undefined });STRING
HIGHlauncher/service_manager.py140 error_msg = f'{{"success":false,"code":502,"message":"代理请求失败: {str(e)}","data":null}}'CODE
HIGHcommon/services/captcha/verification_checker.py159 if (button && track) {CODE
HIGHcommon/services/captcha/verification_checker.py164 return null;CODE
HIGHcommon/services/captcha/browser_features.py36 get: () => undefined,CODE
HIGH⚡common/services/captcha/xianyu_slider_stealth.py1009 if (verifyButton && verifyButton.innerText && verifyButton.innerText.includes('立即验证')) {CODE
HIGH⚡common/services/captcha/xianyu_slider_stealth.py1010 const href = verifyButton.href || verifyButton.getAttribute('href') || null;CODE
HIGH⚡common/services/captcha/xianyu_slider_stealth.py1010 const href = verifyButton.href || verifyButton.getAttribute('href') || null;CODE
HIGH⚡common/services/captcha/xianyu_slider_stealth.py1016 return null;CODE
HIGHcommon/services/captcha/real_mouse_slider.py129try { Object.defineProperty(navigator, 'webdriver', { get: () => undefined, configurable: true }); } catch (e) {}CODE
HIGHcommon/services/captcha/real_mouse_slider.py140 window.__cal.push([e.clientX, e.clientY, e.screenX, e.screenY, e.timeStamp, e.buttons]);CODE
HIGHcommon/services/captcha/real_mouse_coordinates.py90 if (!button || !track) return null;STRING
HIGHcommon/services/captcha/slider_stealth.py146 raise ImportError("Playwright 未安装,请运行: pip install playwright && playwright install chromium")CODE
Cross-File Repetition10 hits · 50 pts
SeverityFileLineSnippetContext
HIGHpromotion/backend/app/services/product_rule_service.py0分页查询删除规则 args: session: 数据库会话 user_id: 用户id page: 页码 page_size: 每页条数 is_admin: 是否管理员(管理员查看所有用户数据) returns: 包含规则列表和总数的字典STRING
HIGHpromotion/backend/app/services/publish_rule_service.py0分页查询删除规则 args: session: 数据库会话 user_id: 用户id page: 页码 page_size: 每页条数 is_admin: 是否管理员(管理员查看所有用户数据) returns: 包含规则列表和总数的字典STRING
HIGHpromotion/backend/app/services/delete_rule_service.py0分页查询删除规则 args: session: 数据库会话 user_id: 用户id page: 页码 page_size: 每页条数 is_admin: 是否管理员(管理员查看所有用户数据) returns: 包含规则列表和总数的字典STRING
HIGH…heduler/app/services/scheduler/listing_monitor_task.py0主动清理过期的补评价日志 删除 created_at 早于 (当前北京时间 - log_retention_days 天) 的日志记录, 避免日志表无限增长。使用参数化的 orm delete 语句,避免 sql 注入。STRING
HIGHscheduler/app/services/scheduler/polish_task.py0主动清理过期的补评价日志 删除 created_at 早于 (当前北京时间 - log_retention_days 天) 的日志记录, 避免日志表无限增长。使用参数化的 orm delete 语句,避免 sql 注入。STRING
HIGHscheduler/app/services/scheduler/redelivery_task.py0主动清理过期的补评价日志 删除 created_at 早于 (当前北京时间 - log_retention_days 天) 的日志记录, 避免日志表无限增长。使用参数化的 orm delete 语句,避免 sql 注入。STRING
HIGHscheduler/app/services/scheduler/red_flower_task.py0主动清理过期的补评价日志 删除 created_at 早于 (当前北京时间 - log_retention_days 天) 的日志记录, 避免日志表无限增长。使用参数化的 orm delete 语句,避免 sql 注入。STRING
HIGHscheduler/app/services/scheduler/login_renew_task.py0主动清理过期的补评价日志 删除 created_at 早于 (当前北京时间 - log_retention_days 天) 的日志记录, 避免日志表无限增长。使用参数化的 orm delete 语句,避免 sql 注入。STRING
HIGH…eduler/app/services/scheduler/api_cookie_renew_task.py0主动清理过期的补评价日志 删除 created_at 早于 (当前北京时间 - log_retention_days 天) 的日志记录, 避免日志表无限增长。使用参数化的 orm delete 语句,避免 sql 注入。STRING
HIGHscheduler/app/services/scheduler/rate_task.py0主动清理过期的补评价日志 删除 created_at 早于 (当前北京时间 - log_retention_days 天) 的日志记录, 避免日志表无限增长。使用参数化的 orm delete 语句,避免 sql 注入。STRING
AI Structural Patterns40 hits · 36 pts
SeverityFileLineSnippetContext
LOWpromotion/backend/app/api/routes/material.py35CODE
LOWpromotion/backend/app/api/routes/taobao_alliance.py69CODE
LOWpromotion/backend/app/api/routes/taobao_alliance.py21CODE
LOWpromotion/backend/app/api/routes/taobao_alliance.py93CODE
LOWpromotion/backend/app/api/routes/taobao_alliance.py124CODE
LOW…motion/backend/app/services/taobao_alliance_service.py78CODE
LOW…motion/backend/app/services/taobao_alliance_service.py198CODE
LOWbackend-web/app/api/routes/listing_monitor.py445CODE
LOWbackend-web/app/api/routes/cookies.py230CODE
LOWbackend-web/app/api/routes/cookies.py1050CODE
LOWbackend-web/app/api/routes/product_publish.py370CODE
LOWbackend-web/app/api/routes/risk_control_logs.py30CODE
LOWbackend-web/app/api/routes/cards.py185CODE
LOWbackend-web/app/api/routes/auto_reply_logs.py15CODE
LOWbackend-web/app/api/routes/orders.py56CODE
LOWbackend-web/app/api/routes/distribution.py109CODE
LOWbackend-web/app/api/routes/distribution.py198CODE
LOWbackend-web/app/api/routes/distribution.py177CODE
LOWbackend-web/app/api/routes/distribution.py338CODE
LOWbackend-web/app/api/routes/distribution.py356CODE
LOWbackend-web/app/api/routes/distribution.py376CODE
LOWbackend-web/app/api/routes/distribution.py451CODE
LOWbackend-web/app/api/routes/distribution.py503CODE
LOWbackend-web/app/api/routes/distribution.py529CODE
LOWbackend-web/app/api/routes/account_login_logs.py21CODE
LOWbackend-web/app/api/routes/items.py107CODE
LOWbackend-web/app/api/routes/payment.py46CODE
LOWbackend-web/app/services/websocket_client.py280CODE
LOWbackend-web/app/services/publish_execution_service.py45CODE
LOWbackend-web/app/services/account_service.py70CODE
LOWbackend-web/app/services/auto_reply_log_service.py96CODE
LOWbackend-web/app/services/dock_record_service.py305CODE
LOWwebsocket/app/services/xianyu/auto_delivery_handler.py3091CODE
LOWcommon/services/publish_log_service.py37CODE
LOWcommon/services/order_service.py95CODE
LOWcommon/services/listing_monitor_service.py1103CODE
LOWcommon/services/delivery_block_rule_meta.py62CODE
LOWcommon/services/xianyu_mtop.py128CODE
LOWcommon/services/captcha/real_mouse_slider.py99CODE
LOWcommon/services/captcha/orchestrator.py124CODE
Over-Commented Block6 hits · 6 pts
SeverityFileLineSnippetContext
LOWupdate.sh1#!/bin/bashCOMMENT
LOWwebsocket/app/api/routes/internal.py1821 card_source = rel_row[0] or 'own'COMMENT
LOWfrontend/src/pages/items/Items.tsx301 // 搜索关键词变更时自动触发查询(已改为手动点击查询按钮)COMMENT
LOWxianyu-mobile/ios/app/app-Bridging-Header.h1//COMMENT
LOWxianyu-mobile/hooks/usePagedList.ts1import { useCallback, useEffect, useRef, useState } from 'react';COMMENT
LOWxianyu-mobile/api/wrappers/admin.ts281// 风控日志(对齐 web RiskLogs)COMMENT
Fake / Example Data2 hits · 2 pts
SeverityFileLineSnippetContext
LOWcommon/db/init_database.py3690 VALUES ('admin', 'admin@example.com', :password_hash, 'ACTIVE', 'ADMIN', NOW(), NOW())CODE
LOWcommon/services/promotion_address_selector.py227 placeholder = str(await current_input.get_attribute("placeholder") or "")CODE