# vtjvlad/cv architecture

> Architecture diagram of the GitHub repository vtjvlad/cv, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-11-14). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/vtjvlad/cv
- Repository: https://github.com/vtjvlad/cv

## Overview

This repository appears to contain utilities for processing Chinese product listings, normalizing titles and prices, and sending content through Telegram. The clearest evidenced workflow is JSON title processing: scripts in `pars/` call helpers in `user_modules/` and read or write JSON files. Telegram senders and China-loading scripts are also present, but no README or sampled call sites establish how they connect. The graph preserves these as separate components; links are limited to dependencies visible in excerpts or the source index.

Main entry points: [`user_modules/foundBrand.js`](https://github.com/vtjvlad/cv/blob/main/user_modules/foundBrand.js) (Brand matching), [`pars/one.js`](https://github.com/vtjvlad/cv/blob/main/pars/one.js) (Title preparation), [`pars/11.js`](https://github.com/vtjvlad/cv/blob/main/pars/11.js) (Title variants), [`user_modules/tryBrand.js`](https://github.com/vtjvlad/cv/blob/main/user_modules/tryBrand.js) (Title markers)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_listing["Listing processing"]
  node_one["Title preparation<br/>[one.js]"]
  node_eleven["Title variants<br/>[11.js]"]
  node_two["Price enrichment<br/>[two.js]"]
  node_brandclean["Brand cleanup<br/>[china-clean.js]"]
  node_tre["Brand processing<br/>[tre.js]"]
  node_end["Final title cleanup<br/>[end.js]"]
  node_china_load["China listing loader<br/>[chinaToLoad.js]"]
  node_china_wle["WLE loader<br/>[chinaLoad-wle.js]"]
  node_fetch["Data fetching<br/>[fetch.js]"]
  node_extract["China extraction<br/>[extract_china.js]"]
end

subgraph group_normalize["Title and price helpers"]
  node_brand["Brand matching<br/>[foundBrand.js]"]
  node_trybrand["Title markers<br/>[tryBrand.js]"]
  node_pricewrap["Price-code wrapping<br/>[warpPrice.js]"]
  node_priceconvert["Price conversion<br/>[convPrice.js]"]
  node_titleclean["Title cleaning<br/>[titleClean.js]"]
end

subgraph group_telegram["Telegram integrations"]
  node_china_tg["China Telegram sender<br/>[chinaToTg.js]"]
  node_china_links["Telegram link sender<br/>[chinaToTgLinks.js]"]
  node_post_tg["Telegram posting<br/>[postToTelegram.js]"]
  node_rename_tg["Renamed Telegram sender<br/>[wrenameToTg.js]"]
  node_no_rename_tg["Unrenamed Telegram sender<br/>[norenameToTg.js]"]
  node_vgram["Group messaging<br/>[vgram.js]"]
  node_bot_ids["Bot identifiers<br/>[botsIds.js]"]
end

subgraph group_other["Other utilities"]
  node_numbers["Title numbering<br/>[add-numbers.js]"]
  node_title_count["Title counting<br/>[countTitles.js]"]
end

node_one -->|"wraps price codes"| node_pricewrap
node_one -->|"extracts title"| node_brand
node_one -->|"marks words"| node_trybrand
node_eleven -->|"wraps price codes"| node_pricewrap
node_eleven -->|"extracts title"| node_brand
node_eleven -->|"marks words"| node_trybrand
node_two -->|"converts prices"| node_priceconvert
node_brandclean -->|"matches brands"| node_brand
node_tre -->|"matches brands"| node_brand
node_end -->|"cleans titles"| node_titleclean
node_vgram -->|"uses identifiers"| node_bot_ids

click node_one "https://github.com/vtjvlad/cv/blob/main/pars/one.js"
click node_eleven "https://github.com/vtjvlad/cv/blob/main/pars/11.js"
click node_two "https://github.com/vtjvlad/cv/blob/main/pars/two.js"
click node_brandclean "https://github.com/vtjvlad/cv/blob/main/pars/china-clean.js"
click node_tre "https://github.com/vtjvlad/cv/blob/main/pars/tre.js"
click node_end "https://github.com/vtjvlad/cv/blob/main/pars/end.js"
click node_brand "https://github.com/vtjvlad/cv/blob/main/user_modules/foundBrand.js"
click node_trybrand "https://github.com/vtjvlad/cv/blob/main/user_modules/tryBrand.js"
click node_pricewrap "https://github.com/vtjvlad/cv/blob/main/user_modules/warpPrice.js"
click node_priceconvert "https://github.com/vtjvlad/cv/blob/main/user_modules/convPrice.js"
click node_titleclean "https://github.com/vtjvlad/cv/blob/main/user_modules/titleClean.js"
click node_china_load "https://github.com/vtjvlad/cv/blob/main/chinaToLoad.js"
click node_china_wle "https://github.com/vtjvlad/cv/blob/main/chinaLoad-wle.js"
click node_china_tg "https://github.com/vtjvlad/cv/blob/main/chinaToTg.js"
click node_china_links "https://github.com/vtjvlad/cv/blob/main/chinaToTgLinks.js"
click node_post_tg "https://github.com/vtjvlad/cv/blob/main/postToTelegram.js"
click node_rename_tg "https://github.com/vtjvlad/cv/blob/main/wrenameToTg.js"
click node_no_rename_tg "https://github.com/vtjvlad/cv/blob/main/norenameToTg.js"
click node_vgram "https://github.com/vtjvlad/cv/blob/main/vgram.js"
click node_bot_ids "https://github.com/vtjvlad/cv/blob/main/botsIds.js"
click node_fetch "https://github.com/vtjvlad/cv/blob/main/pars/fetch.js"
click node_extract "https://github.com/vtjvlad/cv/blob/main/pars/extract_china.js"
click node_numbers "https://github.com/vtjvlad/cv/blob/main/pars/add-numbers.js"
click node_title_count "https://github.com/vtjvlad/cv/blob/main/countTitles.js"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_one,node_eleven,node_two,node_brandclean,node_tre,node_end,node_china_load,node_china_wle,node_fetch,node_extract toneBlue
class node_brand,node_trybrand,node_pricewrap,node_priceconvert,node_titleclean toneAmber
class node_china_tg,node_china_links,node_post_tg,node_rename_tg,node_no_rename_tg,node_vgram,node_bot_ids toneMint
class node_numbers,node_title_count toneRose
```

## Components

### Listing processing

- [Title preparation](https://github.com/vtjvlad/cv/blob/main/pars/one.js): `pars/one.js`
- [Title variants](https://github.com/vtjvlad/cv/blob/main/pars/11.js): `pars/11.js`
- [Price enrichment](https://github.com/vtjvlad/cv/blob/main/pars/two.js): `pars/two.js`
- [Brand cleanup](https://github.com/vtjvlad/cv/blob/main/pars/china-clean.js): `pars/china-clean.js`
- [Brand processing](https://github.com/vtjvlad/cv/blob/main/pars/tre.js): `pars/tre.js`
- [Final title cleanup](https://github.com/vtjvlad/cv/blob/main/pars/end.js): `pars/end.js`
- [China listing loader](https://github.com/vtjvlad/cv/blob/main/chinaToLoad.js): `chinaToLoad.js`
- [WLE loader](https://github.com/vtjvlad/cv/blob/main/chinaLoad-wle.js): `chinaLoad-wle.js`
- [Data fetching](https://github.com/vtjvlad/cv/blob/main/pars/fetch.js): `pars/fetch.js`
- [China extraction](https://github.com/vtjvlad/cv/blob/main/pars/extract_china.js): `pars/extract_china.js`

### Title and price helpers

- [Brand matching](https://github.com/vtjvlad/cv/blob/main/user_modules/foundBrand.js): `user_modules/foundBrand.js`
- [Title markers](https://github.com/vtjvlad/cv/blob/main/user_modules/tryBrand.js): `user_modules/tryBrand.js`
- [Price-code wrapping](https://github.com/vtjvlad/cv/blob/main/user_modules/warpPrice.js): `user_modules/warpPrice.js`
- [Price conversion](https://github.com/vtjvlad/cv/blob/main/user_modules/convPrice.js): `user_modules/convPrice.js`
- [Title cleaning](https://github.com/vtjvlad/cv/blob/main/user_modules/titleClean.js): `user_modules/titleClean.js`

### Telegram integrations

- [China Telegram sender](https://github.com/vtjvlad/cv/blob/main/chinaToTg.js): `chinaToTg.js`
- [Telegram link sender](https://github.com/vtjvlad/cv/blob/main/chinaToTgLinks.js): `chinaToTgLinks.js`
- [Telegram posting](https://github.com/vtjvlad/cv/blob/main/postToTelegram.js): `postToTelegram.js`
- [Renamed Telegram sender](https://github.com/vtjvlad/cv/blob/main/wrenameToTg.js): `wrenameToTg.js`
- [Unrenamed Telegram sender](https://github.com/vtjvlad/cv/blob/main/norenameToTg.js): `norenameToTg.js`
- [Group messaging](https://github.com/vtjvlad/cv/blob/main/vgram.js): `vgram.js`
- [Bot identifiers](https://github.com/vtjvlad/cv/blob/main/botsIds.js): `botsIds.js`

### Other utilities

- [Title numbering](https://github.com/vtjvlad/cv/blob/main/pars/add-numbers.js): `pars/add-numbers.js`
- [Title counting](https://github.com/vtjvlad/cv/blob/main/countTitles.js): `countTitles.js`

## Connections

- Title preparation → Price-code wrapping: wraps price codes (evidence: `pars/one.js`)
- Title preparation → Brand matching: extracts title (evidence: `pars/one.js`)
- Title preparation → Title markers: marks words (evidence: `pars/one.js`)
- Title variants → Price-code wrapping: wraps price codes (evidence: `pars/11.js`)
- Title variants → Brand matching: extracts title (evidence: `pars/11.js`)
- Title variants → Title markers: marks words (evidence: `pars/11.js`)
- Price enrichment → Price conversion: converts prices (evidence: `pars/two.js`)
- Brand cleanup → Brand matching: matches brands (evidence: `pars/china-clean.js`)
- Brand processing → Brand matching: matches brands (evidence: `pars/tre.js`)
- Final title cleanup → Title cleaning: cleans titles (evidence: `pars/end.js`)
- Group messaging → Bot identifiers: uses identifiers (evidence: `vgram.js`)
