Big J // README Index

Sökbar programöversikt

Gemensam HTML-sida med alla program från readmefiler.zip. Sök på programnamn, funktion, flagga, filnamn eller text ur README. Klicka på ett kort för originaltext.

80 README-filer
9 kategorier
284 unika CLI-flaggor
55 Python-script hittade
80 träffar visas. Aktiv kategori: Alla

Snabböversikt: alla hittade flaggor

--add-source --affiliate-tag --all --allowed --append --apply --asc --asin --autofix --autofix-dir --b --backoff --backup --badwords --base-url --basename-only --batch-size --bigrams --brand --brand-csv --brand-list --brand-läget --brands --brands-file --bv-meta-inject --calc-unit-price --category --change --change-regex --chart --check-brand-match --check-duplicates --check-links --checkdead --co-occurrence --column --columns --compare-csv --compare-html --compare-json --compare-last --compare-run-id --config --connect-timeout --contains --copper-price --copy-json-to-column --count --count-before-after --crawl --create-if-missing --csv --csv-out --custom-regex --database --date --debug --dedupe --deleteextradata --delimiter --desc --diff --dir --dotall --drop --drop-numeric --drop-short --dry-run --dryrun --dup-threshold --encoding --encoding-fallback --encrypt --ensure-ascii --exclude --exclude-regex --export --export-path --export-tag --ext --extensions --file --filelist --filter --fix-canonical --flex --follow-internal --force-profile --format --group-by --group-outdir --gui --hash-check --header-map --help --history-db --host --html --html-name --html-out --html-title --id --ignore --ignore-blacklist --ignore-case --img-missing-only --include --include-regex --incremental --indent --inject-before --inject-if-missing-only --input --interval --json --json-name --json-out --key --largest --lenient --limit --lines --link-window --list --list-keys --list-runs --live-watch --log --log-name --make-index --make-sitemap --match --max-bytes --max-depth --max-links-check --max-pages --max-rows --maxpagerank --maxpages --maxpics --maxscore --min-confidence --min-len --minhits --minpagerank --minscore --missing --mode --new --no-color --no-html --no-json --no-log --no-progress --no-recursive --no-save-history --no-skip-existing --noprint --normalize-header --old --only-empty --only-empty-target --only-if-contains --order-by --out --outdir --output --overwrite --pack-analysis --pagerankguide --password --per-file --per-file-out --port --pretty --preview --price-col --price-errors --print-all-scores --print-canonical --progress --progress-every --project-key --qty-col --quality --query --read-timeout --recursive --regex --replace-from-file --report --report-html --report-json --report-out --required --respect-robots --retries --role --rule --run-label --same-domain-only --sample --save-db --save-filelist --save-html --save-js --save-json --scan --scan-all --scanfolder --schema --search --seed --select --seo-scan --set-category --set-first-word-as-brand --set-first-word-as-brand-only-empty --set-model --show-invalid --show-priority --show-requirements --show-url --sitemap --sleep --slow-ms --smart-buy --sort --sort-desc --sort-keys --sort-numeric --sqlite --start-url --stats --stats-json --stop-en --stop-file --stop-sv --strict --strip-html --strip-params --summary --table --tables --tag --target --template --text --thin-words --threads --threshold --timeout --title-width --top --top-deals --topn --topsearch --trigrams --truncate --undervalued-only --undo --unique --unit-col --update --upgrade --url-flag --urls-file --user --user-agent --validate-only --value-stats --var --verbose --version --warn-links-per-1000w --warn-links-per-page --watch --watch-interval --where-col --where-op --where-val --workers --write-mode --zip
#01

SEO Audit Scan v2

amazon-asin-scraper-pro-v2 (3).txt

Amazon / MySQL / Produktdata

Funktioner

  • seo_audit_scan_v2.py
  • README.txt
  • README.html
  • example_filelist.txt
  • requirements.txt
  • Skannar lokala HTML-filer
  • Skannar online-sidor via http/https
  • Stöd för --file fillista.txt
  • Färger i terminalen
  • Progressbar
  • AI-vänlig text-rapport i en enda fil
  • --autofix för vanliga SEO-fel

Filer / script

seo_audit_scan_v2.py

Flaggor

--autofix--autofix-dir--file--output--recursive
Visa original README-text
SEO Audit Scan v2
=================

Detta paket innehåller:
- seo_audit_scan_v2.py
- README.txt
- README.html
- example_filelist.txt
- requirements.txt

Funktioner
----------
- Skannar lokala HTML-filer
- Skannar online-sidor via http/https
- Stöd för --file fillista.txt
- Färger i terminalen
- Progressbar
- AI-vänlig text-rapport i en enda fil
- --autofix för vanliga SEO-fel

Installation
------------
pip install -r requirements.txt

Eller:
pip install beautifulsoup4 lxml requests tqdm colorama

Exempel
-------
1) Skanna en katalog:
   python seo_audit_scan_v2.py ./site/ --recursive

2) Skanna lokala filer + online-sida:
   python seo_audit_scan_v2.py index.html about.html https://example.com/

3) Kör från fillista:
   python seo_audit_scan_v2.py --file example_filelist.txt

4) Med autofix:
   python seo_audit_scan_v2.py --file example_filelist.txt --autofix --autofix-dir ./fixed_html

5) Egen rapportfil:
   python seo_audit_scan_v2.py ./site/ --recursive --output audit_resultat.txt

Format för --file
-----------------
En rad per input. Du kan blanda:
- lokala html-filer
- kataloger
- glob-mönster
- URL:er

Exempel:
./index.html
./tips/
./tips/*.html
https://example.com/
https://example.com/about

Om --autofix
------------
Autofix gör vanliga säkra förbättringar och sparar nya HTML-filer lokalt.
Den ändrar inte remote-sidor online.
För URL:er sparas en lokal fixad kopia i autofix-katalogen.

Autofix försöker bland annat:
- lägga till html lang
- lägga till charset
- lägga till viewport
- skapa/fixa title
- skapa/fixa meta description
- lägga till H1 om den saknas
- minska extra H1 genom att göra om dem till H2
- lägga till canonical
- lägga till og:title och og:description
- lägga till twitter:card
- lägga till saknade alt-texter
- lägga till enkel JSON-LD WebPage

Rapporten
---------
Rapporten sparas som textfil och innehåller:
- sammanfattning
- score per sida
- tydliga issue-koder
- exakt längd på title/meta description
- AI_FIX_INSTRUCTIONS
- autofix-resultat om --autofix används

Målet är att du enkelt ska kunna iterera tills varje sida når 99/100 eller bättre.
#02

Amazon Product Rule Prompt Pack

amazon_rule_prompt_pack.txt

Amazon / MySQL / Produktdata

Funktioner

  • Ingen separat funktionslista hittades – se originaltexten.

Filer / script

Ingen .py-fil hittad i README

Flaggor

Inga --flaggor hittade
Visa original README-text
Amazon Product Rule Prompt Pack

Contents:
15 prompts designed to help generate product classification rules,
model extraction rules, and metadata from Amazon product titles.

Includes:
- model alias generator
- category rule generator
- size extractor
- material identifier
- DIN/ISO detection
- SEO title generator
- rule conflict detector
- auto rule generator

Also includes:
example_prompt1_output.sql
Example SQL rules generated from the first prompt.
#03

README — Rensa Amazon tag + uppdatera bild-URL

amazon_url_clean_and_image_update_tools.txt

Amazon / MySQL / Produktdata

Funktioner

  • Ingen separat funktionslista hittades – se originaltexten.

Filer / script

fix_amazon_urls_and_images.py

Flaggor

--out--sleep--upgrade--verbose
Visa original README-text
README — Rensa Amazon tag + uppdatera bild-URL
=============================================

Du bad om:
1) Ta bort ?tag=billigaverkty-21 från AFFILIATE_URL_PRIMARY
2) Uppdatera JSON med en fungerande PRODUCT_IMG_URL efteråt

Jag har gjort två saker:
- Skapat en "clean"-version av din JSON där tag= är borttagen:
  bahco_domkrafer_clean_urls.json
- Skapat ett CLI-script som på din dator (med internet) även kan hämta
  en ny fungerande bild-URL från Amazon-sidan och skriva en updated-json:

  fix_amazon_urls_and_images.py

Install:
  python -m pip install --upgrade requests

Kör (skriver ny fil, rör inte originalet):
  python fix_amazon_urls_and_images.py -json bahco_domkrafer.json

Verbose + snällare mot Amazon:
  python fix_amazon_urls_and_images.py -json bahco_domkrafer.json --verbose --sleep 1.5

Skriv till eget filnamn:
  python fix_amazon_urls_and_images.py -json bahco_domkrafer.json --out bahco_domkrafer_updated.json

OBS:
Amazon kan ibland blocka automatiska requests (t.ex. 503/robot-check). Då kommer "images_failed" bli hög.
I så fall: kör med --sleep och testa igen, eller använd en färsk scrape från din befintliga scraper.
#04

Amazon URL Tool PRO (BilligaVerktyg.se)

amazon_url_tool_pro.txt

Amazon / MySQL / Produktdata

Funktioner

  • Ingen separat funktionslista hittades – se originaltexten.

Filer / script

amazon_gui.pyamazon_url_tool_pro.py

Flaggor

--diff--dry-run--ext--mode--strict--warn-links-per-1000w--warn-links-per-page
Visa original README-text
Amazon URL Tool PRO (BilligaVerktyg.se)
======================================

Detta verktyg hjälper dig att QA:a och normalisera Amazon-affiliate-länkar i en hel webbplats:

- scan: scanna alla filer efter Amazon-länkar och markera OK/BAD
- fix:  normalisera länkar direkt i HTML och/eller JSON (dry-run + diff)
- report: skapa HTML SEO-rapport
- dedupe: hitta dubletter (URL/ASIN)
- check-affiliate-compliance: kontrollera disclosure + affiliate-tag i HTML
- extract-products: extrahera produktlista (ASIN + clean_url) till JSON/CSV
- auto-bv-meta-check: flagga sidor med Amazon-länkar utan BV_META
- scan-performance: varna för hög affiliate-densitet (länkar per sida / per 1000 ord)
- ci-mode: exit codes 0/1/2 för cron/CI

Kräver: Python 3.10+ (endast standardbibliotek)

Filer
-----
- amazon_url_tool_pro.py   (CLI)
- amazon_gui.py            (GUI, Tkinter)
- README.txt / README.html

Hjälp
-----
python amazon_url_tool_pro.py -h
python amazon_url_tool_pro.py report -h

Snabbstart
----------
1) Scanna HTML/JSON:
   python amazon_url_tool_pro.py scan "C:\siter\billigaverktyg.se" --ext .html .json

2) Fixa länkar (dry-run + diff):
   python amazon_url_tool_pro.py fix "C:\siter\billigaverktyg.se" --mode auto --dry-run --diff

3) Fixa på riktigt:
   python amazon_url_tool_pro.py fix "C:\siter\billigaverktyg.se" --mode auto

4) Affiliate compliance:
   python amazon_url_tool_pro.py check-affiliate-compliance "C:\siter\billigaverktyg.se"

5) BV_META-check:
   python amazon_url_tool_pro.py auto-bv-meta-check "C:\siter\billigaverktyg.se"

6) Performance:
   python amazon_url_tool_pro.py scan-performance "C:\siter\billigaverktyg.se" --warn-links-per-page 25 --warn-links-per-1000w 30

7) Dedupe:
   python amazon_url_tool_pro.py dedupe "C:\siter\billigaverktyg.se"

8) Extract products:
   python amazon_url_tool_pro.py extract-products "C:\siter\billigaverktyg.se" -o products.json
   python amazon_url_tool_pro.py extract-products "C:\siter\billigaverktyg.se" -o products.csv

9) Rapport:
   python amazon_url_tool_pro.py report "C:\siter\billigaverktyg.se" -o amazon_report.html

GUI
---
python amazon_gui.py

CI / cron
---------
Exit codes:
- 0 = OK
- 1 = WARN
- 2 = ERROR

Exempel:
python amazon_url_tool_pro.py ci-mode "C:\siter\billigaverktyg.se" --strict
#05

Big J Cart update viewer (MySQL) v2.0 (20260101)

bigjcartupdateviewer_mysql_v2.0_20260101.txt

Amazon / MySQL / Produktdata

Funktioner

  • Ingen separat funktionslista hittades – se originaltexten.

Filer / script

Ingen .py-fil hittad i README

Flaggor

Inga --flaggor hittade
Visa original README-text
Big J Cart update viewer (MySQL) v2.0 (20260101)

Start (LAN/dev):
  php -S 0.0.0.0:5050 -t .

Open:
  http://SERVER_IP:5050/bigJcartupdateviewer_mysql_v2_0.php

DB:
  Edit the $DB array at top of the PHP file.

Tables expected:
  amazon_data.price_updates
  amazon_data.amazon_products

History modal loads via ajax:
  ?ajax=history&asin=...

If your column names differ:
  Update the COLUMN MAP section in the PHP file.
#06

Big J - compare_csv_vs_sitemap (CLI + GUI)

Big_J-compare_csv_vs_sitemap_v3.txt

SEO / Crawl / Sitemap

Funktioner

  • Ingen separat funktionslista hittades – se originaltexten.

Filer / script

big_j_compare_csv_vs_sitemap.pybig_j_compare_csv_vs_sitemap_gui.py

Flaggor

--no-color
Visa original README-text
Big J - compare_csv_vs_sitemap (CLI + GUI)

FILER
- big_j_compare_csv_vs_sitemap.py          (CLI + kärnlogik)
- big_j_compare_csv_vs_sitemap_gui.py      (Tkinter GUI)
- README.txt / README.html

KRAV
- Python 3.9+ (ofta även 3.8)
- requests: pip install requests
- Tkinter (ingår normalt i Python på Windows/macOS)

INSTALL
pip install requests

CLI – EXEMPEL
1) Standard:
   python big_j_compare_csv_vs_sitemap.py input.csv

2) Skanna alla URL:er i filen:
   python big_j_compare_csv_vs_sitemap.py input.csv -allurl

3) Export:
   python big_j_compare_csv_vs_sitemap.py input.csv -savecsv missing.csv -savetxt missing.txt -savehtml report.html

4) Tyst läge:
   python big_j_compare_csv_vs_sitemap.py input.csv -allurl -noprintt -savecsv missing.csv

5) Stäng av färger:
   python big_j_compare_csv_vs_sitemap.py input.csv --no-color

GUI
Starta:
   python big_j_compare_csv_vs_sitemap_gui.py
#07

Big J CSS Designer PRO v1.0

big_j_css_designer_pro_v1.0.txt

HTML / Mallar / Kod

Funktioner

  • Ingen separat funktionslista hittades – se originaltexten.

Filer / script

Ingen .py-fil hittad i README

Flaggor

Inga --flaggor hittade
Visa original README-text
Big J CSS Designer PRO v1.0
================================

Vad är detta?
-------------
En fristående (offline) visuell CSS-designer för nybörjare.
Du bygger en sida med element (hero, wrapper, cards osv), ser live preview,
och kan exportera HTML + CSS. Appen har ett hacker-grönt terminaltema.

Start
-----
1) Öppna index.html i din webbläsare (Chrome/Firefox).
2) Klicka på element i vänsterspalten för att välja.
3) Ändra egenskaper i högerspalten (padding, färg, flex, border osv).
4) Exportera:
   - Download HTML / Download CSS
   - Export ZIP (index.html + styles.css + project.json)

Kortkommandon
-------------
- Ctrl+S: Save (sparar i webbläsaren / LocalStorage)
- Delete: Ta bort valt element

Tips (nybörjare)
----------------
1) Börja med container:
   - max-width: 1200px
   - margin: 0 auto
   - padding: 26px 16px

2) Vill du ha kort (cards)?
   - cards: display:flex
   - gap: 14px
   - card: border-radius: 16px, box-shadow: 0 10px 30px rgba(0,0,0,.06)

3) Hero:
   - padding: 80px 16px
   - text-align: center
   - background: mörk färg eller gradient

Filer
-----
- index.html          Själva appen (allt i en fil)
- README.txt          Den här filen
- README.html         Samma info i HTML-format

Exportformat
------------
- HTML-export innehåller inbäddad <style> med genererad CSS.
- CSS-export ger en fristående CSS-fil.
- ZIP-export (knapp i appen) innehåller:
  - index.html (exporterad sida)
  - styles.css (genererad CSS)
  - project.json (projektdata)

Licens
------
Du får använda fritt för dina egna projekt.
#08

Big J – Remote Tools (Docs + Scripts)

bigj_remote_tools_docs_pack.txt

Verktyg / Backup / Setup

Funktioner

  • index.html (start)
  • vnc_felsokare.html + vnc_felsokare.py
  • bigj_remote_desktop_felsokare.html + bigj_remote_desktop_felsokare.py
  • bigj_remote_access_felsokare.html + bigj_remote_access_felsokare.py

Filer / script

bigj_remote_access_felsokare.pybigj_remote_desktop_felsokare.pyvnc_felsokare.py

Flaggor

Inga --flaggor hittade
Visa original README-text
Big J – Remote Tools (Docs + Scripts)
=================================

Innehåll:
- index.html  (start)
- vnc_felsokare.html + vnc_felsokare.py
- bigj_remote_desktop_felsokare.html + bigj_remote_desktop_felsokare.py
- bigj_remote_access_felsokare.html + bigj_remote_access_felsokare.py

Öppna index.html i webbläsaren.
Kör scripts med python3 enligt instruktionerna på respektive docs-sida.
#09

BV Block Injector PRO v2 (Python)

bv_block_injector_pro_v2.txt

HTML / Mallar / Kod

Funktioner

  • block_injector_pro.py
  • README.txt
  • README.html
  • Python 3.9+ (rekommenderat 3.11+)
  • Inga externa bibliotek

Filer / script

block_injector_pro.py

Flaggor

--all--append--backup--create-if-missing--diff--dir--file--hash-check--inject-before--inject-if-missing-only--interval--log--report--var
Visa original README-text
BV Block Injector PRO v2 (Python)

Datum: 2026-02-27

Det här verktyget hanterar markerade HTML-block i formatet:
  <!-- start footer -->
  ... kod ...
  <!-- stop footer -->

Innehåll i ZIP
  - block_injector_pro.py
  - README.txt
  - README.html

Krav
  - Python 3.9+ (rekommenderat 3.11+)
  - Inga externa bibliotek

Hjälp
  python3 block_injector_pro.py -h
  python3 block_injector_pro.py inject -h

----------------------------------------
1) Inject / Replace / Append
----------------------------------------

A) Ersätt blocket "footer" i en fil:
  python3 block_injector_pro.py inject footer footer_source.html --file page.html --backup

B) Ersätt i alla HTML-filer i en katalog:
  python3 block_injector_pro.py inject footer footer_source.html --all --dir ./ --backup

C) Append-läge (lägg till nytt content i befintligt block):
  --append before   (nytt content först)
  --append after    (nytt content sist)

Ex:
  python3 block_injector_pro.py inject footer footer_source.html --file page.html --append after --backup

D) Skapa block om det saknas:
  python3 block_injector_pro.py inject footer footer_source.html --all --dir ./ --create-if-missing --backup

E) Infoga block före/efter valfri tagg/sträng (om block saknas):
  python3 block_injector_pro.py inject ga4 ga4_source.html --all --dir ./ --inject-before "</head>" --create-if-missing

F) Endast om block saknas (rör inte filer där block redan finns):
  python3 block_injector_pro.py inject footer footer_source.html --all --dir ./ --inject-if-missing-only --create-if-missing

G) Template-variabler i blocket:
  I källblocket kan du ha {YEAR} etc.
  Kör:
    python3 block_injector_pro.py inject footer footer_source.html --file page.html --var YEAR=2026 --var SITE=BilligaVerktyg.se

H) Hash-check (hoppa över identiska block snabbt):
  python3 block_injector_pro.py inject footer footer_source.html --all --dir ./ --hash-check

----------------------------------------
2) Lista block
----------------------------------------
  python3 block_injector_pro.py list --all --dir ./
  python3 block_injector_pro.py list --file page.html

----------------------------------------
3) Validera block
----------------------------------------
Hittar t.ex.:
  - start utan stop
  - stop utan start
  - duplicerade block
  - överlapp (heuristik)

  python3 block_injector_pro.py validate --all --dir ./

----------------------------------------
4) Ta bort / Byt namn på block
----------------------------------------
Ta bort block:
  python3 block_injector_pro.py delete footer --all --dir ./ --backup

Byt namn på marker (footer -> global-footer):
  python3 block_injector_pro.py rename footer global-footer --all --dir ./ --backup

----------------------------------------
5) Diff / logg / rapport
----------------------------------------
Unified diff:
  python3 block_injector_pro.py inject footer footer_source.html --file page.html --diff

CSV-logg:
  --log changes.csv

HTML-rapport:
  --report report.html

----------------------------------------
6) JSON-config (kör flera operationer)
----------------------------------------
Skapa en config.json (lista av objekt). Exempel:

[
  {
    "op": "inject",
    "block": "footer",
    "source": "footer_source.html",
    "create_if_missing": true,
    "inject_before": "</body>",
    "vars": {"YEAR":"2026"}
  },
  {
    "op": "rename",
    "old": "footer",
    "new": "global-footer"
  }
]

Kör:
  python3 block_injector_pro.py apply config.json --all --dir ./ --backup

----------------------------------------
7) Watch (polling)
----------------------------------------
Övervakar config.json och kör apply när filen ändras:

  python3 block_injector_pro.py watch config.json --all --dir ./ --backup --interval 2

Avsluta: Ctrl+C
#10

BV Block Injector PRO v2.1 (CLI + GUI)

bv_block_injector_pro_v2_1.txt

HTML / Mallar / Kod

Funktioner

  • block_injector_pro.py (CLI, v2.1, färgkodad output)
  • block_injector_gui.py (Tkinter-GUI)
  • README.txt
  • README.html
  • Python 3.9+ (rekommenderat 3.11+)
  • Inga externa bibliotek

Filer / script

block_injector_gui.pyblock_injector_pro.py

Flaggor

--all--backup--dir--dry-run--file--no-color
Visa original README-text
BV Block Injector PRO v2.1 (CLI + GUI)

Datum: 2026-03-02

Innehåll i ZIP
  - block_injector_pro.py   (CLI, v2.1, färgkodad output)
  - block_injector_gui.py   (Tkinter-GUI)
  - README.txt
  - README.html

Krav
  - Python 3.9+ (rekommenderat 3.11+)
  - Inga externa bibliotek

----------------------------------------
1) CLI – snabbstart
----------------------------------------
Hjälp:
  python3 block_injector_pro.py -h
  python3 block_injector_pro.py inject -h

Inject footer (en fil):
  python3 block_injector_pro.py inject footer footer_source.html --file page.html --backup

Inject footer (alla filer):
  python3 block_injector_pro.py inject footer footer_source.html --all --dir ./ --backup

Dry-run:
  python3 block_injector_pro.py inject footer footer_source.html --all --dir ./ --dry-run

Färger:
  - Auto (om terminal stödjer ANSI)
  - Stäng av:
      python3 block_injector_pro.py ... --no-color

----------------------------------------
2) GUI – körning
----------------------------------------
Starta GUI:
  python3 block_injector_gui.py

Tips i GUI:
  - Dry-run är PÅ som standard
  - Backup är PÅ som standard
  - Output-rutan färgkodar rader som:
      [FEL] / [ÄNDRAD] / [SKULLE ÄNDRA] / [OK]

Knapp:
  - "README (kort)" visar en kort sammanfattning
  - "Öppna README.html" öppnar den snygga manualen
#11

BV Canonical Rename

bv_canonical_rename_2026-02-22_v1.txt

SEO / Crawl / Sitemap

Funktioner

  • bv_canonical_rename.py (Python 3-program)
  • README.txt (denna fil)
  • README.html (HTML-version av README)

Filer / script

bv_canonical_rename.py

Flaggor

--apply--dry-run--no-recursive--print-canonical
Visa original README-text
BV Canonical Rename

Innehåll
--------
- bv_canonical_rename.py    (Python 3-program)
- README.txt     (denna fil)
- README.html    (HTML-version av README)

Syfte
-----
Skannar alla .html-filer i en angiven katalog (rekursivt som standard),
letar efter en canonical-tag i formatet:

  <link rel="canonical" href="https://exempel.se/sokvag/filnamn.html">

Programmet verifierar att den lokala filens namn matchar filnamnet i canonical-URL:en.
Om det inte matchar, byter programmet filnamn så det stämmer.

Viktiga regler
--------------
- Om canonical path slutar med / antas filnamnet vara "index.html".
- Om canonical slutar med ett segment utan filändelse (t.ex. /tips/1) antas "1.html".
- Vid filnamnskrock skapas ett unikt namn: _2, _3, ... (t.ex. sida.html -> sida_2.html).

OBS
---
Programmet ändrar INTE innehållet i HTML-filen (dvs canonical-taggen lämnas orörd).
Det byter bara filnamn på disk.

Krav
----
- Python 3.8+ rekommenderas (fungerar normalt även på 3.7+).
- Inga externa bibliotek behövs.

Installation
------------
1) Packa upp zip-filen.
2) Kör med dry-run först:

   python3 bv_canonical_rename.py /var/www/html/tips --dry-run

3) Om utskriften ser korrekt ut, kör i apply-läge:

   python3 bv_canonical_rename.py /var/www/html/tips --apply

Flaggor
-------
--dry-run          Simulerar byten (standard om ingen flagga anges)
--apply            Utför faktiska namnbyten
--no-recursive     Scanna endast toppnivån i katalogen
--print-canonical  Skriv även ut canonical href i rapporten

Exempel
-------
Visa vad som skulle ändras, inkl canonical:
  python3 bv_canonical_rename.py /var/www/html --dry-run --print-canonical

Kör utan rekursion:
  python3 bv_canonical_rename.py /var/www/html/tips --dry-run --no-recursive

Vanliga fallgropar
------------------
- Om dina canonical-URL:er pekar på "fel" URL (t.ex. gammal slug) kommer programmet
  att döpa om filen efter canonical. Rätta canonical i HTML om du vill att filnamnet
  ska följa en annan standard.
- Programmet byter namn i samma katalog som filen ligger i. Det flyttar inte filer
  mellan kataloger även om canonical pekar på annan path.

Version
-------
2026-02-22 v1
#12

BV HTML GENERATOR – README (TXT)

bv_html_generator_pack.txt

HTML / Mallar / Kod

Funktioner

  • Ingen separat funktionslista hittades – se originaltexten.

Filer / script

bv_html_generator.py

Flaggor

--input--outdir--template
Visa original README-text
BV HTML GENERATOR – README (TXT)
================================

Se README.html för en snygg, fullständig guide med många exempel.

Snabbstart:
-----------
python bv_html_generator.py --template example_template.html --input example_data.json --outdir ./out

Filer i detta paket:
- bv_html_generator.py  (själva generatorn)
- README.txt            (denna fil)
- README.html           (snygg dokumentation i webbläsaren)
- example_template.html (exempel-template)
- example_data.json     (exempel-JSON)

Kort om funktioner:
-------------------
- {{PLACEHOLDER}} ersätts från JSON
- {{nested.key}} stöds
- Loopar med:
  <!-- BV_BLOCK_START:items -->
  ...
  <!-- BV_BLOCK_END:items -->
- Stöd för en eller flera sidor (multi-page)
- Filnamn styrs av: output_filename, slug, id eller title

Öppna README.html i din webbläsare för full dokumentation och exempel.
#13

BV HTML Generator v2 (bv_html_generator_v2.py)

bv_html_generator_v2_2026-02-22.txt

HTML / Mallar / Kod

Funktioner

  • Ingen separat funktionslista hittades – se originaltexten.

Filer / script

bv_html_generator_v2.py

Flaggor

--affiliate-tag--bv-meta-inject--diff--dry-run--make-index--pretty
Visa original README-text
BV HTML Generator v2 (bv_html_generator_v2.py)
================================================

Detta verktyg genererar en eller flera HTML-filer från:
- En template (HTML)
- En JSON-input (1 sida eller flera)

Nytt i v2
---------
1) BV_META auto-inject
   --bv-meta-inject
   Om HTML saknar BV_META-block så injiceras ett automatiskt block överst.

2) Affiliate-länk smartifiering
   --affiliate-tag billigaverkty-21
   Uppdaterar/adderar query-parametern 'tag' på Amazon/Amzn-länkar i href="...".

3) Automatisk index-/list-sida
   --make-index
   Skapar index.html i outdir som listar alla genererade sidor (titel, beskrivning).

4) Diff-läge
   --diff
   Visar unified diff mot befintliga filer om de redan finns på disk.

Filnamn / SLUG
--------------
Filnamnet för varje genererad sida blir primärt värdet från:
- "SLUG" (versaler) eller "slug" (gemener)
=> {slug}.html (sanitiserat)

Om SLUG saknas används output_filename, id, title eller page_0001.html.

Input-format (JSON)
-------------------
A) Lista av sidor:
[
  { "SLUG": "min-sida", "title": "Titel", ... },
  { "SLUG": "min-sida-2", "title": "Titel 2", ... }
]

B) Objekt med pages:
{ "pages": [ {..}, {..} ] }

C) Objekt (en sida):
{ "SLUG": "min-sida", "title": "Titel", ... }

Template placeholders
--------------------
- {{title}}, {{description}}, {{nested.key}} osv
- Loopblock:
  <!-- BV_BLOCK_START:products -->
    <li><a href="{{url}}">{{title}}</a></li>
  <!-- BV_BLOCK_END:products -->

Kommandoexempel
---------------
1) Generera till ./out + BV_META + affiliate-tag + index + diff
python bv_html_generator_v2.py -t template.html -i data.json -o ./out \
  --bv-meta-inject --affiliate-tag billigaverkty-21 --make-index --diff

2) Dry-run (skriver inga filer)
python bv_html_generator_v2.py -t template.html -i data.json -o ./out --dry-run --pretty

Tips
----
- Kör först med --dry-run --pretty och eventuellt --diff om du vill se vad som ändras.
- Om du redan har BV_META i templaten eller i output så injiceras inget nytt.
#14

BV HTML Generator v2 (bv_html_generator_v2.py)

bv_html_generator_v2_gui.txt

HTML / Mallar / Kod

Funktioner

  • Ingen separat funktionslista hittades – se originaltexten.

Filer / script

bv_html_generator_gui.pybv_html_generator_v2.py

Flaggor

--affiliate-tag--bv-meta-inject--diff--dry-run--make-index--pretty
Visa original README-text
BV HTML Generator v2 (bv_html_generator_v2.py)
================================================

Detta verktyg genererar en eller flera HTML-filer från:
- En template (HTML)
- En JSON-input (1 sida eller flera)

Nytt i v2
---------
1) BV_META auto-inject
   --bv-meta-inject
   Om HTML saknar BV_META-block så injiceras ett automatiskt block överst.

2) Affiliate-länk smartifiering
   --affiliate-tag billigaverkty-21
   Uppdaterar/adderar query-parametern 'tag' på Amazon/Amzn-länkar i href="...".

3) Automatisk index-/list-sida
   --make-index
   Skapar index.html i outdir som listar alla genererade sidor (titel, beskrivning).

4) Diff-läge
   --diff
   Visar unified diff mot befintliga filer om de redan finns på disk.

Filnamn / SLUG
--------------
Filnamnet för varje genererad sida blir primärt värdet från:
- "SLUG" (versaler) eller "slug" (gemener)
=> {slug}.html (sanitiserat)

Om SLUG saknas används output_filename, id, title eller page_0001.html.

Input-format (JSON)
-------------------
A) Lista av sidor:
[
  { "SLUG": "min-sida", "title": "Titel", ... },
  { "SLUG": "min-sida-2", "title": "Titel 2", ... }
]

B) Objekt med pages:
{ "pages": [ {..}, {..} ] }

C) Objekt (en sida):
{ "SLUG": "min-sida", "title": "Titel", ... }

Template placeholders
--------------------
- {{title}}, {{description}}, {{nested.key}} osv
- Loopblock:
  <!-- BV_BLOCK_START:products -->
    <li><a href="{{url}}">{{title}}</a></li>
  <!-- BV_BLOCK_END:products -->

Kommandoexempel
---------------
1) Generera till ./out + BV_META + affiliate-tag + index + diff
python bv_html_generator_v2.py -t template.html -i data.json -o ./out \
  --bv-meta-inject --affiliate-tag billigaverkty-21 --make-index --diff

2) Dry-run (skriver inga filer)
python bv_html_generator_v2.py -t template.html -i data.json -o ./out --dry-run --pretty

Tips
----
- Kör först med --dry-run --pretty och eventuellt --diff om du vill se vad som ändras.
- Om du redan har BV_META i templaten eller i output så injiceras inget nytt.


GUI (Tkinter)
=============
En enkel GUI finns i: bv_html_generator_gui.py

Starta GUI:
  python bv_html_generator_gui.py

I GUI kan du:
- Välja template (.html), input (.json) och output-mapp
- Slå på/av: BV_META auto-inject, affiliate-tag smartifiering, index-sida, dry-run, diff, pretty-logg
- Se logg + diff direkt i programfönstret
- Öppna README (txt/html) via knappar

Tips
----
- Diff visas endast om målfilen redan finns på disk.
- Dry-run + diff är perfekt för att QA:a innan du skriver över något.

#15

BV Idea Archiver (Python CLI)

bv_idea_archiver_2026-02-22_v1.txt

Övrigt

Funktioner

  • Ingen separat funktionslista hittades – se originaltexten.

Filer / script

bv_idea_archiver.py

Flaggor

--html-name--json-name--link-window--log-name--min-len--no-html--no-json--role
Visa original README-text
BV Idea Archiver (Python CLI)
==========================

Syfte
-----
Det här verktyget läser en ChatGPT-export (export.json) och extraherar "programidéer" från chattarnas text.
Sedan genererar det:

- ideas.json  (strukturerad export av idéerna)
- ideas.html  (fristående HTML med sök/filter/sort + dark mode)
- run.log     (körlogg + statistik)

Stödda exportformat
-------------------
1) OpenAI/ChatGPT export med "conversations": [...]
2) Export med "mapping" (node-graph)
3) Generiska listor av messages med {role, content}

Installera
----------
Kräver Python 3.9+ (ingen extern dependency).

Körning
-------
Grund:
  python bv_idea_archiver.py export.json -o out

Det skapar:
  out/ideas.html
  out/ideas.json
  out/run.log

Vanliga flaggor
---------------
- Byt output-katalog:
    -o outdir

- Skapa bara JSON (ingen HTML):
    --no-html

- Skapa bara HTML (ingen JSON):
    --no-json

- Byt filnamn:
    --html-name custom.html
    --json-name custom.json
    --log-name  custom.log

- Koppla "lägg till / add" som feature-requests till senaste idé inom N meddelanden:
    --link-window 5

- Ignorera korta meddelanden:
    --min-len 30

- Begränsa vilka roller som får starta en ny idé (feature-requests kopplas ändå):
    --role user
    --role assistant
    --role any

Tips
----
Om du får för många "idéer" som egentligen är brus:
  * höj --min-len
  * använd --role user

Om verktyget missar idéer:
  * sänk --min-len
  * öka --link-window

Sekretess
---------
Allt kör lokalt. Ingen data skickas någonstans.
#16

BV JSON Validator PRO (CLI + GUI)

bv_json_validator_pro.txt

Övrigt

Funktioner

  • Ingen separat funktionslista hittades – se originaltexten.

Filer / script

gui_tk.pyjson_validator_pro.py

Flaggor

--autofix--backup--dir--dry-run--ensure-ascii--file--indent--lenient--report-html--report-json--schema--sort-keys--write-mode
Visa original README-text
BV JSON Validator PRO (CLI + GUI)
================================

Det här projektet innehåller:
- json_validator_pro.py  : CLI-verktyg för validering + (valfri) AutoFix
- gui_tk.py              : Tkinter-GUI (dark mode default) som kör CLI:t
- requirements.txt       : valfritt beroende för JSON Schema (jsonschema)
- README.txt / README.html

Mål
---
Validera JSON-filer snabbt och säkert, och (om du vill) auto-fixa dem till ett
deterministiskt format (indent + ev sort_keys) utan att hitta på data.

Install
-------
1) Python 3.9+ (rekommenderat 3.11+)

2) (Valfritt) JSON Schema stöd:
   pip install -r requirements.txt

Kör GUI
-------
python3 gui_tk.py

Kör CLI (snabbt)
----------------
Validera en fil:
  python3 json_validator_pro.py --file data.json

Validera en katalog rekursivt:
  python3 json_validator_pro.py --dir ./data

Lenient (tar bort //, /* */ och trailing commas innan parse):
  python3 json_validator_pro.py --dir ./data --lenient

Validera mot JSON Schema:
  python3 json_validator_pro.py --dir ./data --schema schema.json

AutoFix (formattera) - rekommenderat med backup + dry-run först:
  python3 json_validator_pro.py --dir ./data --autofix --dry-run --backup

Skriv ändringar inplace (utan dry-run):
  python3 json_validator_pro.py --dir ./data --autofix --backup

Skriv fixade filer som suffix istället (*_fixed.json):
  python3 json_validator_pro.py --dir ./data --autofix --write-mode suffix

AutoFix inställningar:
  --indent 2            (default 2)
  --sort-keys           (deterministisk sortering)
  --ensure-ascii        (om du vill ASCII-escapes)

Rapporter
---------
JSON rapport:
  --report-json report.json

HTML rapport (dark mode):
  --report-html report.html

Exempel:
  python3 json_validator_pro.py --dir ./data --schema schema.json \
    --report-html report.html --report-json report.json

Exit codes (för CI/cron)
------------------------
0 = allt OK
1 = valideringsfel / schemafel
2 = IO/övrigt fel

Tips
----
- Kör alltid med --dry-run första gången om du ska AutoFix:a stora kataloger.
- Använd --write-mode suffix om du vill jämföra innan du skriver över original.
- Om du använder JSON Schema: se till att schema.json själv är valid JSON.

#17

BV Links Editor v2 PRO (PHP)

bv_links_editor_v2_pro.txt

Länkar / Arkiv

Funktioner

  • Sida-lista med sök/filter
  • Skapa/ändra/radera sidor
  • Breadcrumbs / FAQ / Cross-links
  • Kategorier och länkar
  • Inline-edit för kategorier och länkar
  • Drag & drop-sortering (categories + links + breadcrumb + faq + cross)
  • Importera länklistor (TSV/pipe/"Name - URL") per kategori
  • Editor för links[].urls[] (label+url) via link_urls-tabellen (om du använder den)
  • JSON Export (masterformat)
  • JSON Import + Sync med diff-preview:
  • Ladda upp master JSON
  • Visar vad som kommer ändras (antal sidor, kategorier, länkar, faq, etc.)
  • Apply kör transaktion: UPSERT pages + ersätter under-tabeller per sida
  • PHP 8.1+ rekommenderas (funkar ofta på 8.0+)
  • MySQL 8.0+
  • PDO MySQL aktiverat
  • Slå på Basic Auth i config.php om editorn ligger publikt.
  • Kör helst bakom VPN / admin-nät.

Filer / script

Ingen .py-fil hittad i README

Flaggor

Inga --flaggor hittade
Visa original README-text
BV Links Editor v2 PRO (PHP)
===========================

Funktioner
- Sida-lista med sök/filter
- Skapa/ändra/radera sidor
- Breadcrumbs / FAQ / Cross-links
- Kategorier och länkar
- Inline-edit för kategorier och länkar
- Drag & drop-sortering (categories + links + breadcrumb + faq + cross)
- Importera länklistor (TSV/pipe/"Name - URL") per kategori
- Editor för links[].urls[] (label+url) via link_urls-tabellen (om du använder den)
- JSON Export (masterformat)
- JSON Import + Sync med diff-preview:
  - Ladda upp master JSON
  - Visar vad som kommer ändras (antal sidor, kategorier, länkar, faq, etc.)
  - Apply kör transaktion: UPSERT pages + ersätter under-tabeller per sida

Krav
- PHP 8.1+ rekommenderas (funkar ofta på 8.0+)
- MySQL 8.0+
- PDO MySQL aktiverat

Install
1) Packa upp katalogen "bv_links_editor_v2_pro/" på din server.
2) Redigera config.php (DB uppgifter, auth).
3) Öppna: /bv_links_editor_v2_pro/index.php

Säkerhet
- Slå på Basic Auth i config.php om editorn ligger publikt.
- Kör helst bakom VPN / admin-nät.

JSON Import (Sync)
- Gå till "Import/Sync" i toppmenyn.
- Ladda upp din masterfil (t.ex. links-schema.json)
- Granska diff-siffror och tryck "Apply Sync".

Importformat för länkar
- TSV: name<TAB>url<TAB>desc<TAB>region<TAB>tag1,tag2
- Pipe: name|url|desc|region|tag1,tag2
- Fallback: "Name - https://url"
- Bara URL: url används som name också

#18

BV Links Editor v3 PRO (PHP)

bv_links_editor_v3_pro.txt

Länkar / Arkiv

Funktioner

  • Ingen separat funktionslista hittades – se originaltexten.

Filer / script

Ingen .py-fil hittad i README

Flaggor

Inga --flaggor hittade
Visa original README-text
BV Links Editor v3 PRO (PHP)
===========================

NYTT i v3
- Ny sida: Importera sid-data från (1) uppladdad HTML-fil eller (2) URL
  - Alltid PREVIEW innan "Apply to form"
  - Parser: <title>, meta description, robots, canonical, og:image, första H1
  - (Valfritt) hero intro: första <p> efter H1 om den finns
- Importera länkar från CSV eller JSON till valfri kategori
  - Alltid PREVIEW innan riktig import
  - CSV med header: name,url,description,region,tags (tags = komma-separerat)
  - JSON: array av links eller objekt med "links":[...]
    - stöd: {name,url,description,region,tags:[..]}

Övrigt (från v2 PRO)
- Sidor/kategorier/länkar/FAQ/cross-links
- Inline edit
- Drag & drop-sortering (breadcrumbs/faq/cross/categories/links/link_urls)
- Importera länklistor via textarea (TSV/pipe/Name - URL)
- JSON Export (masterformat)
- JSON Import + Sync med preview (diff) och apply (transaktion)

Krav
- PHP 8.1+ (8.0+ fungerar ofta)
- MySQL 8.0+ (PDO)
- DOM extension (vanligt i PHP)

Install
1) Packa upp "bv_links_editor_v3_pro/" på din server.
2) config.php: fyll DB + ev auth.
3) Öppna: /bv_links_editor_v3_pro/index.php

Säkerhet (URL-import)
- URL-import hämtar HTML via servern.
- Blockar icke-http(s) scheman.
- Standard blockar private/localhost (kan slås av i config).

#19

BV Links Editor v3 PRO (PHP)

bv_links_editor_v3_pro (1).txt

Länkar / Arkiv

Funktioner

  • Ingen separat funktionslista hittades – se originaltexten.

Filer / script

Ingen .py-fil hittad i README

Flaggor

Inga --flaggor hittade
Visa original README-text
BV Links Editor v3 PRO (PHP)
===========================

NYTT i v3
- Ny sida: Importera sid-data från (1) uppladdad HTML-fil eller (2) URL
  - Alltid PREVIEW innan "Apply to form"
  - Parser: <title>, meta description, robots, canonical, og:image, första H1
  - (Valfritt) hero intro: första <p> efter H1 om den finns
- Importera länkar från CSV eller JSON till valfri kategori
  - Alltid PREVIEW innan riktig import
  - CSV med header: name,url,description,region,tags (tags = komma-separerat)
  - JSON: array av links eller objekt med "links":[...]
    - stöd: {name,url,description,region,tags:[..]}

Övrigt (från v2 PRO)
- Sidor/kategorier/länkar/FAQ/cross-links
- Inline edit
- Drag & drop-sortering (breadcrumbs/faq/cross/categories/links/link_urls)
- Importera länklistor via textarea (TSV/pipe/Name - URL)
- JSON Export (masterformat)
- JSON Import + Sync med preview (diff) och apply (transaktion)

Krav
- PHP 8.1+ (8.0+ fungerar ofta)
- MySQL 8.0+ (PDO)
- DOM extension (vanligt i PHP)

Install
1) Packa upp "bv_links_editor_v3_pro/" på din server.
2) config.php: fyll DB + ev auth.
3) Öppna: /bv_links_editor_v3_pro/index.php

Säkerhet (URL-import)
- URL-import hämtar HTML via servern.
- Blockar icke-http(s) scheman.
- Standard blockar private/localhost (kan slås av i config).

#20

BV Links Editor v4 PRO (PHP)

bv_links_editor_v4_1_pro.txt

Länkar / Arkiv

Funktioner

  • Ingen separat funktionslista hittades – se originaltexten.

Filer / script

Ingen .py-fil hittad i README

Flaggor

Inga --flaggor hittade
Visa original README-text
BV Links Editor v4 PRO (PHP)
===========================

NYTT i v3
- Ny sida: Importera sid-data från (1) uppladdad HTML-fil eller (2) URL
  - Alltid PREVIEW innan "Apply to form"
  - Parser: <title>, meta description, robots, canonical, og:image, första H1
  - (Valfritt) hero intro: första <p> efter H1 om den finns
- Importera länkar från CSV eller JSON till valfri kategori
  - Alltid PREVIEW innan riktig import
  - CSV med header: name,url,description,region,tags (tags = komma-separerat)
  - JSON: array av links eller objekt med "links":[...]
    - stöd: {name,url,description,region,tags:[..]}

Övrigt (från v2 PRO)
- Sidor/kategorier/länkar/FAQ/cross-links
- Inline edit
- Drag & drop-sortering (breadcrumbs/faq/cross/categories/links/link_urls)
- Importera länklistor via textarea (TSV/pipe/Name - URL)
- JSON Export (masterformat)
- JSON Import + Sync med preview (diff) och apply (transaktion)

Krav
- PHP 8.1+ (8.0+ fungerar ofta)
- MySQL 8.0+ (PDO)
- DOM extension (vanligt i PHP)

Install
1) Packa upp "bv_links_editor_v3_pro/" på din server.
2) config.php: fyll DB + ev auth.
3) Öppna: /bv_links_editor_v3_pro/index.php

Säkerhet (URL-import)
- URL-import hämtar HTML via servern.
- Blockar icke-http(s) scheman.
- Standard blockar private/localhost (kan slås av i config).


NYTT i v4
- Import siddata även i Edit-läge (HTML/URL/CSV/JSON) med preview→apply
- Export av ENBART siddatan (meta+hero+seo+render_mode+disclaimer) till CSV/JSON/HTML
- Copy-knapp vid varje fält
- AI-knapp vid varje fält: genererar färdig SEO-prompt (sv-SE)
- 'Fyll i'-knapp efter slug: fyller URL-fält med https://billigaverktyg.se/<slug>
- 'Random' efter Cross links: fyller 6 slumpmässiga cross-links från DB
#21

BV Links Editor v4 PRO (PHP)

bv_links_editor_v4_2_pro.txt

Länkar / Arkiv

Funktioner

  • Ingen separat funktionslista hittades – se originaltexten.

Filer / script

Ingen .py-fil hittad i README

Flaggor

Inga --flaggor hittade
Visa original README-text
BV Links Editor v4 PRO (PHP)
===========================

NYTT i v3
- Ny sida: Importera sid-data från (1) uppladdad HTML-fil eller (2) URL
  - Alltid PREVIEW innan "Apply to form"
  - Parser: <title>, meta description, robots, canonical, og:image, första H1
  - (Valfritt) hero intro: första <p> efter H1 om den finns
- Importera länkar från CSV eller JSON till valfri kategori
  - Alltid PREVIEW innan riktig import
  - CSV med header: name,url,description,region,tags (tags = komma-separerat)
  - JSON: array av links eller objekt med "links":[...]
    - stöd: {name,url,description,region,tags:[..]}

Övrigt (från v2 PRO)
- Sidor/kategorier/länkar/FAQ/cross-links
- Inline edit
- Drag & drop-sortering (breadcrumbs/faq/cross/categories/links/link_urls)
- Importera länklistor via textarea (TSV/pipe/Name - URL)
- JSON Export (masterformat)
- JSON Import + Sync med preview (diff) och apply (transaktion)

Krav
- PHP 8.1+ (8.0+ fungerar ofta)
- MySQL 8.0+ (PDO)
- DOM extension (vanligt i PHP)

Install
1) Packa upp "bv_links_editor_v3_pro/" på din server.
2) config.php: fyll DB + ev auth.
3) Öppna: /bv_links_editor_v3_pro/index.php

Säkerhet (URL-import)
- URL-import hämtar HTML via servern.
- Blockar icke-http(s) scheman.
- Standard blockar private/localhost (kan slås av i config).


NYTT i v4
- Import siddata även i Edit-läge (HTML/URL/CSV/JSON) med preview→apply
- Export av ENBART siddatan (meta+hero+seo+render_mode+disclaimer) till CSV/JSON/HTML
- Copy-knapp vid varje fält
- AI-knapp vid varje fält: genererar färdig SEO-prompt (sv-SE)
- 'Fyll i'-knapp efter slug: fyller URL-fält med https://billigaverktyg.se/<slug>
- 'Random' efter Cross links: fyller 6 slumpmässiga cross-links från DB
#22

BV Links Editor v4 PRO (PHP)

bv_links_editor_v4_pro.txt

Länkar / Arkiv

Funktioner

  • Ingen separat funktionslista hittades – se originaltexten.

Filer / script

Ingen .py-fil hittad i README

Flaggor

Inga --flaggor hittade
Visa original README-text
BV Links Editor v4 PRO (PHP)
===========================

NYTT i v3
- Ny sida: Importera sid-data från (1) uppladdad HTML-fil eller (2) URL
  - Alltid PREVIEW innan "Apply to form"
  - Parser: <title>, meta description, robots, canonical, og:image, första H1
  - (Valfritt) hero intro: första <p> efter H1 om den finns
- Importera länkar från CSV eller JSON till valfri kategori
  - Alltid PREVIEW innan riktig import
  - CSV med header: name,url,description,region,tags (tags = komma-separerat)
  - JSON: array av links eller objekt med "links":[...]
    - stöd: {name,url,description,region,tags:[..]}

Övrigt (från v2 PRO)
- Sidor/kategorier/länkar/FAQ/cross-links
- Inline edit
- Drag & drop-sortering (breadcrumbs/faq/cross/categories/links/link_urls)
- Importera länklistor via textarea (TSV/pipe/Name - URL)
- JSON Export (masterformat)
- JSON Import + Sync med preview (diff) och apply (transaktion)

Krav
- PHP 8.1+ (8.0+ fungerar ofta)
- MySQL 8.0+ (PDO)
- DOM extension (vanligt i PHP)

Install
1) Packa upp "bv_links_editor_v3_pro/" på din server.
2) config.php: fyll DB + ev auth.
3) Öppna: /bv_links_editor_v3_pro/index.php

Säkerhet (URL-import)
- URL-import hämtar HTML via servern.
- Blockar icke-http(s) scheman.
- Standard blockar private/localhost (kan slås av i config).


NYTT i v4
- Import siddata även i Edit-läge (HTML/URL/CSV/JSON) med preview→apply
- Export av ENBART siddatan (meta+hero+seo+render_mode+disclaimer) till CSV/JSON/HTML
- Copy-knapp vid varje fält
- AI-knapp vid varje fält: genererar färdig SEO-prompt (sv-SE)
- 'Fyll i'-knapp efter slug: fyller URL-fält med https://billigaverktyg.se/<slug>
- 'Random' efter Cross links: fyller 6 slumpmässiga cross-links från DB
#23

BV Links Editor v4 PRO (PHP)

bv_links_editor_v5_1_1_pro.txt

Länkar / Arkiv

Funktioner

  • Ingen separat funktionslista hittades – se originaltexten.

Filer / script

Ingen .py-fil hittad i README

Flaggor

Inga --flaggor hittade
Visa original README-text
BV Links Editor v4 PRO (PHP)
===========================

NYTT i v3
- Ny sida: Importera sid-data från (1) uppladdad HTML-fil eller (2) URL
  - Alltid PREVIEW innan "Apply to form"
  - Parser: <title>, meta description, robots, canonical, og:image, första H1
  - (Valfritt) hero intro: första <p> efter H1 om den finns
- Importera länkar från CSV eller JSON till valfri kategori
  - Alltid PREVIEW innan riktig import
  - CSV med header: name,url,description,region,tags (tags = komma-separerat)
  - JSON: array av links eller objekt med "links":[...]
    - stöd: {name,url,description,region,tags:[..]}

Övrigt (från v2 PRO)
- Sidor/kategorier/länkar/FAQ/cross-links
- Inline edit
- Drag & drop-sortering (breadcrumbs/faq/cross/categories/links/link_urls)
- Importera länklistor via textarea (TSV/pipe/Name - URL)
- JSON Export (masterformat)
- JSON Import + Sync med preview (diff) och apply (transaktion)

Krav
- PHP 8.1+ (8.0+ fungerar ofta)
- MySQL 8.0+ (PDO)
- DOM extension (vanligt i PHP)

Install
1) Packa upp "bv_links_editor_v3_pro/" på din server.
2) config.php: fyll DB + ev auth.
3) Öppna: /bv_links_editor_v3_pro/index.php

Säkerhet (URL-import)
- URL-import hämtar HTML via servern.
- Blockar icke-http(s) scheman.
- Standard blockar private/localhost (kan slås av i config).


NYTT i v4
- Import siddata även i Edit-läge (HTML/URL/CSV/JSON) med preview→apply
- Export av ENBART siddatan (meta+hero+seo+render_mode+disclaimer) till CSV/JSON/HTML
- Copy-knapp vid varje fält
- AI-knapp vid varje fält: genererar färdig SEO-prompt (sv-SE)
- 'Fyll i'-knapp efter slug: fyller URL-fält med https://billigaverktyg.se/<slug>
- 'Random' efter Cross links: fyller 6 slumpmässiga cross-links från DB

V5: HTML-import wizard (checkbox urval), Info-popups på importknappar, page_key auto från slug vid import.

V5.1: Page base view + Page categories view + Category edit page (links per category) + fix redirects for link/import actions.


FELSÖKNING: BV_DEBUG är aktivt i lib/debug_bootstrap.php och skriver logg till /storage/php_runtime.log.
#24

BV Links Editor v4 PRO (PHP)

bv_links_editor_v5_1_pro.txt

Länkar / Arkiv

Funktioner

  • Ingen separat funktionslista hittades – se originaltexten.

Filer / script

Ingen .py-fil hittad i README

Flaggor

Inga --flaggor hittade
Visa original README-text
BV Links Editor v4 PRO (PHP)
===========================

NYTT i v3
- Ny sida: Importera sid-data från (1) uppladdad HTML-fil eller (2) URL
  - Alltid PREVIEW innan "Apply to form"
  - Parser: <title>, meta description, robots, canonical, og:image, första H1
  - (Valfritt) hero intro: första <p> efter H1 om den finns
- Importera länkar från CSV eller JSON till valfri kategori
  - Alltid PREVIEW innan riktig import
  - CSV med header: name,url,description,region,tags (tags = komma-separerat)
  - JSON: array av links eller objekt med "links":[...]
    - stöd: {name,url,description,region,tags:[..]}

Övrigt (från v2 PRO)
- Sidor/kategorier/länkar/FAQ/cross-links
- Inline edit
- Drag & drop-sortering (breadcrumbs/faq/cross/categories/links/link_urls)
- Importera länklistor via textarea (TSV/pipe/Name - URL)
- JSON Export (masterformat)
- JSON Import + Sync med preview (diff) och apply (transaktion)

Krav
- PHP 8.1+ (8.0+ fungerar ofta)
- MySQL 8.0+ (PDO)
- DOM extension (vanligt i PHP)

Install
1) Packa upp "bv_links_editor_v3_pro/" på din server.
2) config.php: fyll DB + ev auth.
3) Öppna: /bv_links_editor_v3_pro/index.php

Säkerhet (URL-import)
- URL-import hämtar HTML via servern.
- Blockar icke-http(s) scheman.
- Standard blockar private/localhost (kan slås av i config).


NYTT i v4
- Import siddata även i Edit-läge (HTML/URL/CSV/JSON) med preview→apply
- Export av ENBART siddatan (meta+hero+seo+render_mode+disclaimer) till CSV/JSON/HTML
- Copy-knapp vid varje fält
- AI-knapp vid varje fält: genererar färdig SEO-prompt (sv-SE)
- 'Fyll i'-knapp efter slug: fyller URL-fält med https://billigaverktyg.se/<slug>
- 'Random' efter Cross links: fyller 6 slumpmässiga cross-links från DB

V5: HTML-import wizard (checkbox urval), Info-popups på importknappar, page_key auto från slug vid import.

V5.1: Page base view + Page categories view + Category edit page (links per category) + fix redirects for link/import actions.
#25

BV Links Editor v5.2.2 PRO (PHP)

bv_links_editor_v5_2_2_pro.txt

Länkar / Arkiv

Funktioner

  • Ingen separat funktionslista hittades – se originaltexten.

Filer / script

Ingen .py-fil hittad i README

Flaggor

Inga --flaggor hittade
Visa original README-text
BV Links Editor v5.2.2 PRO (PHP)
===========================

NYTT i v3
- Ny sida: Importera sid-data från (1) uppladdad HTML-fil eller (2) URL
  - Alltid PREVIEW innan "Apply to form"
  - Parser: <title>, meta description, robots, canonical, og:image, första H1
  - (Valfritt) hero intro: första <p> efter H1 om den finns
- Importera länkar från CSV eller JSON till valfri kategori
  - Alltid PREVIEW innan riktig import
  - CSV med header: name,url,description,region,tags (tags = komma-separerat)
  - JSON: array av links eller objekt med "links":[...]
    - stöd: {name,url,description,region,tags:[..]}

Övrigt (från v2 PRO)
- Sidor/kategorier/länkar/FAQ/cross-links
- Inline edit
- Drag & drop-sortering (breadcrumbs/faq/cross/categories/links/link_urls)
- Importera länklistor via textarea (TSV/pipe/Name - URL)
- JSON Export (masterformat)
- JSON Import + Sync med preview (diff) och apply (transaktion)

Krav
- PHP 8.1+ (8.0+ fungerar ofta)
- MySQL 8.0+ (PDO)
- DOM extension (vanligt i PHP)

Install
1) Packa upp "bv_links_editor_v3_pro/" på din server.
2) config.php: fyll DB + ev auth.
3) Öppna: /bv_links_editor_v3_pro/index.php

Säkerhet (URL-import)
- URL-import hämtar HTML via servern.
- Blockar icke-http(s) scheman.
- Standard blockar private/localhost (kan slås av i config).


NYTT i v4
- Import siddata även i Edit-läge (HTML/URL/CSV/JSON) med preview→apply
- Export av ENBART siddatan (meta+hero+seo+render_mode+disclaimer) till CSV/JSON/HTML
- Copy-knapp vid varje fält
- AI-knapp vid varje fält: genererar färdig SEO-prompt (sv-SE)
- 'Fyll i'-knapp efter slug: fyller URL-fält med https://billigaverktyg.se/<slug>
- 'Random' efter Cross links: fyller 6 slumpmässiga cross-links från DB

V5: HTML-import wizard (checkbox urval), Info-popups på importknappar, page_key auto från slug vid import.

V5.1: Page base view + Page categories view + Category edit page (links per category) + fix redirects for link/import actions.


FELSÖKNING: BV_DEBUG är aktivt i lib/debug_bootstrap.php och skriver logg till /storage/php_runtime.log.


V5.2: tydlig navigation + docs-sida, debug avstängt som standard, Grunddata/Kategorier alltid synliga.


MYSQL-KONFIG (NYTT v5.2.2):
- Appen läser DB-inställningar från extern fil en nivå upp: ../mysql.php
- Skapa filen genom att kopiera mysql.example.php till ../mysql.php
- Extern fil ska returnera array med: host, port, name, user, pass, charset

Exempel sökväg:
/var/www/html/links/mysql.php
/var/www/html/links/bv_links_editor_v5_2_2_pro/index.php
#26

BV Links Editor v5.2.2 PRO (PHP)

bv_links_editor_v5_2_2_pro(1).txt

Länkar / Arkiv

Funktioner

  • Ingen separat funktionslista hittades – se originaltexten.

Filer / script

Ingen .py-fil hittad i README

Flaggor

Inga --flaggor hittade
Visa original README-text
BV Links Editor v5.2.2 PRO (PHP)
===========================

NYTT i v3
- Ny sida: Importera sid-data från (1) uppladdad HTML-fil eller (2) URL
  - Alltid PREVIEW innan "Apply to form"
  - Parser: <title>, meta description, robots, canonical, og:image, första H1
  - (Valfritt) hero intro: första <p> efter H1 om den finns
- Importera länkar från CSV eller JSON till valfri kategori
  - Alltid PREVIEW innan riktig import
  - CSV med header: name,url,description,region,tags (tags = komma-separerat)
  - JSON: array av links eller objekt med "links":[...]
    - stöd: {name,url,description,region,tags:[..]}

Övrigt (från v2 PRO)
- Sidor/kategorier/länkar/FAQ/cross-links
- Inline edit
- Drag & drop-sortering (breadcrumbs/faq/cross/categories/links/link_urls)
- Importera länklistor via textarea (TSV/pipe/Name - URL)
- JSON Export (masterformat)
- JSON Import + Sync med preview (diff) och apply (transaktion)

Krav
- PHP 8.1+ (8.0+ fungerar ofta)
- MySQL 8.0+ (PDO)
- DOM extension (vanligt i PHP)

Install
1) Packa upp "bv_links_editor_v3_pro/" på din server.
2) config.php: fyll DB + ev auth.
3) Öppna: /bv_links_editor_v3_pro/index.php

Säkerhet (URL-import)
- URL-import hämtar HTML via servern.
- Blockar icke-http(s) scheman.
- Standard blockar private/localhost (kan slås av i config).


NYTT i v4
- Import siddata även i Edit-läge (HTML/URL/CSV/JSON) med preview→apply
- Export av ENBART siddatan (meta+hero+seo+render_mode+disclaimer) till CSV/JSON/HTML
- Copy-knapp vid varje fält
- AI-knapp vid varje fält: genererar färdig SEO-prompt (sv-SE)
- 'Fyll i'-knapp efter slug: fyller URL-fält med https://billigaverktyg.se/<slug>
- 'Random' efter Cross links: fyller 6 slumpmässiga cross-links från DB

V5: HTML-import wizard (checkbox urval), Info-popups på importknappar, page_key auto från slug vid import.

V5.1: Page base view + Page categories view + Category edit page (links per category) + fix redirects for link/import actions.


FELSÖKNING: BV_DEBUG är aktivt i lib/debug_bootstrap.php och skriver logg till /storage/php_runtime.log.


V5.2: tydlig navigation + docs-sida, debug avstängt som standard, Grunddata/Kategorier alltid synliga.


MYSQL-KONFIG (NYTT v5.2.2):
- Appen läser DB-inställningar från extern fil en nivå upp: ../mysql.php
- Skapa filen genom att kopiera mysql.example.php till ../mysql.php
- Extern fil ska returnera array med: host, port, name, user, pass, charset

Exempel sökväg:
/var/www/html/links/mysql.php
/var/www/html/links/bv_links_editor_v5_2_2_pro/index.php
#27

BV Links Editor v4 PRO (PHP)

bv_links_editor_v5_2_pro.txt

Länkar / Arkiv

Funktioner

  • Ingen separat funktionslista hittades – se originaltexten.

Filer / script

Ingen .py-fil hittad i README

Flaggor

Inga --flaggor hittade
Visa original README-text
BV Links Editor v4 PRO (PHP)
===========================

NYTT i v3
- Ny sida: Importera sid-data från (1) uppladdad HTML-fil eller (2) URL
  - Alltid PREVIEW innan "Apply to form"
  - Parser: <title>, meta description, robots, canonical, og:image, första H1
  - (Valfritt) hero intro: första <p> efter H1 om den finns
- Importera länkar från CSV eller JSON till valfri kategori
  - Alltid PREVIEW innan riktig import
  - CSV med header: name,url,description,region,tags (tags = komma-separerat)
  - JSON: array av links eller objekt med "links":[...]
    - stöd: {name,url,description,region,tags:[..]}

Övrigt (från v2 PRO)
- Sidor/kategorier/länkar/FAQ/cross-links
- Inline edit
- Drag & drop-sortering (breadcrumbs/faq/cross/categories/links/link_urls)
- Importera länklistor via textarea (TSV/pipe/Name - URL)
- JSON Export (masterformat)
- JSON Import + Sync med preview (diff) och apply (transaktion)

Krav
- PHP 8.1+ (8.0+ fungerar ofta)
- MySQL 8.0+ (PDO)
- DOM extension (vanligt i PHP)

Install
1) Packa upp "bv_links_editor_v3_pro/" på din server.
2) config.php: fyll DB + ev auth.
3) Öppna: /bv_links_editor_v3_pro/index.php

Säkerhet (URL-import)
- URL-import hämtar HTML via servern.
- Blockar icke-http(s) scheman.
- Standard blockar private/localhost (kan slås av i config).


NYTT i v4
- Import siddata även i Edit-läge (HTML/URL/CSV/JSON) med preview→apply
- Export av ENBART siddatan (meta+hero+seo+render_mode+disclaimer) till CSV/JSON/HTML
- Copy-knapp vid varje fält
- AI-knapp vid varje fält: genererar färdig SEO-prompt (sv-SE)
- 'Fyll i'-knapp efter slug: fyller URL-fält med https://billigaverktyg.se/<slug>
- 'Random' efter Cross links: fyller 6 slumpmässiga cross-links från DB

V5: HTML-import wizard (checkbox urval), Info-popups på importknappar, page_key auto från slug vid import.

V5.1: Page base view + Page categories view + Category edit page (links per category) + fix redirects for link/import actions.


FELSÖKNING: BV_DEBUG är aktivt i lib/debug_bootstrap.php och skriver logg till /storage/php_runtime.log.


V5.2: tydlig navigation + docs-sida, debug avstängt som standard, Grunddata/Kategorier alltid synliga.
#28

BV Links Editor v4 PRO (PHP)

bv_links_editor_v5_pro.txt

Länkar / Arkiv

Funktioner

  • Ingen separat funktionslista hittades – se originaltexten.

Filer / script

Ingen .py-fil hittad i README

Flaggor

Inga --flaggor hittade
Visa original README-text
BV Links Editor v4 PRO (PHP)
===========================

NYTT i v3
- Ny sida: Importera sid-data från (1) uppladdad HTML-fil eller (2) URL
  - Alltid PREVIEW innan "Apply to form"
  - Parser: <title>, meta description, robots, canonical, og:image, första H1
  - (Valfritt) hero intro: första <p> efter H1 om den finns
- Importera länkar från CSV eller JSON till valfri kategori
  - Alltid PREVIEW innan riktig import
  - CSV med header: name,url,description,region,tags (tags = komma-separerat)
  - JSON: array av links eller objekt med "links":[...]
    - stöd: {name,url,description,region,tags:[..]}

Övrigt (från v2 PRO)
- Sidor/kategorier/länkar/FAQ/cross-links
- Inline edit
- Drag & drop-sortering (breadcrumbs/faq/cross/categories/links/link_urls)
- Importera länklistor via textarea (TSV/pipe/Name - URL)
- JSON Export (masterformat)
- JSON Import + Sync med preview (diff) och apply (transaktion)

Krav
- PHP 8.1+ (8.0+ fungerar ofta)
- MySQL 8.0+ (PDO)
- DOM extension (vanligt i PHP)

Install
1) Packa upp "bv_links_editor_v3_pro/" på din server.
2) config.php: fyll DB + ev auth.
3) Öppna: /bv_links_editor_v3_pro/index.php

Säkerhet (URL-import)
- URL-import hämtar HTML via servern.
- Blockar icke-http(s) scheman.
- Standard blockar private/localhost (kan slås av i config).


NYTT i v4
- Import siddata även i Edit-läge (HTML/URL/CSV/JSON) med preview→apply
- Export av ENBART siddatan (meta+hero+seo+render_mode+disclaimer) till CSV/JSON/HTML
- Copy-knapp vid varje fält
- AI-knapp vid varje fält: genererar färdig SEO-prompt (sv-SE)
- 'Fyll i'-knapp efter slug: fyller URL-fält med https://billigaverktyg.se/<slug>
- 'Random' efter Cross links: fyller 6 slumpmässiga cross-links från DB

V5: HTML-import wizard (checkbox urval), Info-popups på importknappar, page_key auto från slug vid import.
#29

Big J – BV Page Generator PRO v5

bv_page_generator_pro_v5_tested.txt

HTML / Mallar / Kod

Funktioner

  • Ingen separat funktionslista hittades – se originaltexten.

Filer / script

bv_page_generator_pro_v5.py

Flaggor

--make-index--make-sitemap--out--schema--validate-only
Visa original README-text
Big J – BV Page Generator PRO v5

Det här programmet bygger SEO-anpassade HTML-sidor till BilligaVerktyg.se i samma katalogstruktur som meta.slug anger.

Viktigt:
- BASE_URL ligger överst i Python-filen och är lätt att ändra.
- Slug används som riktig sökväg, t.ex.
  /links/2/verktyg-outlet-rea-utforsaljning-lankar.html
  blir
  ./site_output/links/2/verktyg-outlet-rea-utforsaljning-lankar.html
- Stöd för type=links och type=article
- Breadcrumb, canonical, OpenGraph, Twitter Card, JSON-LD, GA4 och valfritt BV_META-block
- Genererar även sitemap-generated.xml och _generated_index.html om du vill
- Sparar manifest med hash för only-changed-körningar

Körning:
  python3 bv_page_generator_pro_v5.py --schema sample_pages.json --out ./site
  python3 bv_page_generator_pro_v5.py --schema sample_pages.json --out ./site --make-sitemap --make-index
  python3 bv_page_generator_pro_v5.py --schema sample_pages.json --out ./site --validate-only

#30

BV Random Tables (Bahco) — generator

bv_random_tables_package.txt

Övrigt

Funktioner

  • Ingen separat funktionslista hittades – se originaltexten.

Filer / script

bv_random_tables.py

Flaggor

--count--input--outdir--seed--tables
Visa original README-text
BV Random Tables (Bahco) — generator

Det här paketet innehåller ett Python-program som:
- Läser din Bahco-JSON (t.ex. bahco_domkrafer.json)
- Väljer slumpade produkter (seedbar slump => reproducerbara resultat)
- Skapar:
  1) loop_template.html  (Handlebars/Mustache loop-template)
  2) items_1.json .. items_N.json  (data att stoppa in i templaten)
  3) tables.html  (färdig HTML med <table> som blandar interna länkar + Amazon affiliate)

Filer i zip:
- bv_random_tables.py
- README.txt
- README.html

KRAV
- Python 3.9+ (funkar även 3.8 i de flesta fall)

SNABBSTART
1) Lägg din JSON i samma katalog (eller peka på den med --input)
2) Kör:
   python bv_random_tables.py --input bahco_domkrafer.json --outdir out --count 6 --tables 3 --seed 123

OUTPUT (i out/)
- loop_template.html
- tables.html
- items_1.json, items_2.json, items_3.json
- items_all_groups.json  (alla grupper samlade)

VIKTIGT OM INTERNLÄNKAR
Programmet bygger interna länkar som:
  /bahco/{{slug}}.html
Det matchar templaten och din struktur (anpassa vid behov i koden).

HUR DU ANVÄNDER LOOP-TEMPLATEN
- loop_template.html är en “Handlebars/Mustache”-stil mall.
- Du renderar den i din pipeline med en template-motor och matar in items_1.json (eller annan items_*.json)
- items_*.json har format:
  { "items": [ {slug, product_name, product_short_desc, affiliate_url_primary, affiliate_button_text, top_pill_label}, ... ] }

TIPS
- För reproducibel slump: använd alltid --seed
- Vill du ha flera block/tabeller på en sida: --tables 5
#31

BV Template Tool (bv_template_tool.py)

bv_template_tool_v1.txt

HTML / Mallar / Kod

Funktioner

  • Hittar placeholders (default: {{name}}) och räknar total + per placeholder
  • Kan scanna en fil eller en hel katalog (rekursivt)
  • Kan visa radnummer och rader där placeholders hittas
  • Kan exportera JSON, CSV och en enkel HTML-rapport
  • Validerar hittade placeholders mot:
  • allowed (whitelist): okända placeholders flaggas
  • required: saknade placeholders flaggas
  • Exit code 0 vid OK, 1 vid fail
  • Byter placeholder-namn (t.ex. {{price}} -> {{price_current}})
  • Stöd för dry-run, diff och backup (.bak/.bak2/...)
  • Listar inbyggda placeholder-format

Filer / script

bv_template_tool.py

Flaggor

--allowed--backup--csv-out--custom-regex--diff--ext--format--html-out--html-title--ignore--json-out--lines--new--old--recursive--required--summary--top
Visa original README-text
BV Template Tool (bv_template_tool.py)
====================================

Ett CLI-verktyg för att hitta, räkna, validera och byta namn (rename) på placeholders i HTML/template-filer.

Funktioner
----------
1) scan
   - Hittar placeholders (default: {{name}}) och räknar total + per placeholder
   - Kan scanna en fil eller en hel katalog (rekursivt)
   - Kan visa radnummer och rader där placeholders hittas
   - Kan exportera JSON, CSV och en enkel HTML-rapport

2) validate
   - Validerar hittade placeholders mot:
     - allowed (whitelist): okända placeholders flaggas
     - required: saknade placeholders flaggas
   - Exit code 0 vid OK, 1 vid fail

3) rename
   - Byter placeholder-namn (t.ex. {{price}} -> {{price_current}})
   - Stöd för dry-run, diff och backup (.bak/.bak2/...)

4) formats
   - Listar inbyggda placeholder-format

Global flagga
-------------
-noprint
  Tyst läge: skriver inget till skärmen. Användbart i pipelines/cron.
  (Exit codes och exportfiler fungerar som vanligt.)

Installation
------------
Kräver Python 3.9+ (bör fungera på 3.8+ också). Inga externa dependencies.

Körning
-------
1) Scanna en fil:
  python bv_template_tool.py scan template.html --summary --top 50

2) Scanna katalog rekursivt (bara html/htm):
  python bv_template_tool.py scan /var/www/html --recursive --ext html --ext htm --summary

3) Tyst läge (ingen output, men skriver JSON):
  python bv_template_tool.py -noprint scan template.html --json-out out.json

4) Visa radnummer:
  python bv_template_tool.py scan template.html --lines --top 20

5) Export (JSON + CSV + HTML-rapport):
  python bv_template_tool.py scan ./templates --recursive     --json-out report.json --csv-out counts.csv --html-out report.html --html-title "Placeholder Report"

6) Validera mot whitelist + required:
  python bv_template_tool.py validate template.html     --allowed allowed_placeholders.txt --required required_placeholders.txt

7) Rename med backup + diff:
  python bv_template_tool.py rename ./templates --recursive     --old price --new price_current --backup --diff

Ignore-filer
------------
--ignore <fil>
  Filen ska innehålla en token per rad. Om token finns som substring i filens sökväg
  så hoppas filen över.

Format
------
Default-format: double_curly => {{ name }}

Du kan lägga till fler format genom att ange flera --format:
  python bv_template_tool.py scan template.html --format double_curly --format double_square

Lista format:
  python bv_template_tool.py formats

Custom regex:
  --custom-regex "<regex>"
  OBS: måste ha exakt en fångstgrupp (group 1) som representerar placeholder-namnet.

Exit codes
----------
0 = OK
1 = validate fail (okända/saknade)
2 = fel (t.ex. fil saknas / fel format)
130 = avbruten (Ctrl+C)

Licens
------
Gör vad du vill med koden (intern användning/produktion).
#32

BV Template Tool (CLI + Tkinter GUI)

bv_template_tool_v2.txt

HTML / Mallar / Kod

Funktioner

  • bv_template_tool.py (CLI)
  • bv_template_tool_gui.py (GUI, Tkinter)
  • README.txt
  • README.html

Filer / script

bv_template_tool.pybv_template_tool_gui.py

Flaggor

Inga --flaggor hittade
Visa original README-text
BV Template Tool (CLI + Tkinter GUI)
===================================

Innehåll i zip
--------------
- bv_template_tool.py       (CLI)
- bv_template_tool_gui.py   (GUI, Tkinter)
- README.txt
- README.html

Starta GUI
----------
python bv_template_tool_gui.py

Starta CLI
----------
python bv_template_tool.py -h

Notis (Linux)
-------------
På vissa Linux behöver du installera Tkinter separat:
  sudo apt install python3-tk
#33

URL Compare Tool – CSV vs sitemap.xml (BilligaVerktyg.se)

bv_url_compare_csv_vs_sitemap_v2.txt

SEO / Crawl / Sitemap

Funktioner

  • Läser CSV med kolumnen "URL" eller "Webbadress"
  • Alternativet -allurl skannar HELA filen och plockar ut alla http/https-URL:er oavsett kolumnnamn
  • Hämtar sitemap från angiven URL (default: http://billigaverktyg.se/sitemap.xml)
  • Stöd för sitemap-index (sitemapindex) som pekar på flera sitemaps
  • Normaliserar URL:er vid jämförelse (tar bort trailing slash i path, lower-case på scheme/host)
  • Export av saknade URL:er:
  • -savecsv filnamn.csv
  • -savetxt filnamn.txt
  • -savehtml filnamn.html
  • -noprintt: skriver inte ut resultat/statistik på skärmen
  • Python 3.9+ (funkar oftast även med 3.8)
  • Paket: requests

Filer / script

compare_csv_vs_sitemap.py

Flaggor

Inga --flaggor hittade
Visa original README-text
URL Compare Tool – CSV vs sitemap.xml (BilligaVerktyg.se)

Detta verktyg jämför URL:er i en CSV-fil mot en sitemap.xml och listar (och kan exportera) de URL:er som saknas i sitemapen.

FUNKTIONER
- Läser CSV med kolumnen "URL" eller "Webbadress"
- Alternativet -allurl skannar HELA filen och plockar ut alla http/https-URL:er oavsett kolumnnamn
- Hämtar sitemap från angiven URL (default: http://billigaverktyg.se/sitemap.xml)
- Stöd för sitemap-index (sitemapindex) som pekar på flera sitemaps
- Normaliserar URL:er vid jämförelse (tar bort trailing slash i path, lower-case på scheme/host)
- Export av saknade URL:er:
  - -savecsv  filnamn.csv
  - -savetxt  filnamn.txt
  - -savehtml filnamn.html
- -noprintt: skriver inte ut resultat/statistik på skärmen

KRAV
- Python 3.9+ (funkar oftast även med 3.8)
- Paket: requests

INSTALLATION
1) Installera requests:
   pip install requests

2) Kör:
   python compare_csv_vs_sitemap.py dina_urls.csv

ANVÄNDNING (EXEMPEL)

1) Standard: använd kolumnen URL eller Webbadress
   python compare_csv_vs_sitemap.py input.csv

2) Ange annan sitemap:
   python compare_csv_vs_sitemap.py input.csv -sitemap https://billigaverktyg.se/sitemap.xml

3) Exportera saknade URL:er:
   python compare_csv_vs_sitemap.py input.csv -savecsv missing.csv -savetxt missing.txt -savehtml report.html

4) Hitta alla URL:er i filen (oavsett kolumnnamn) och jämför:
   python compare_csv_vs_sitemap.py input.csv -allurl

5) Kör helt tyst (bra i scripts/cron):
   python compare_csv_vs_sitemap.py input.csv -allurl -noprintt -savecsv missing.csv

CSV-FORMAT
Stöds direkt om du har en kolumn som heter:
- URL
- Webbadress

Exempel:
URL
https://billigaverktyg.se/i/produkt1.html

ELLER:
Webbadress
https://billigaverktyg.se/tips/1.html

TIPS
- Om din CSV innehåller URL:er utspridda i flera kolumner, använd -allurl.
- Om din sitemap är ett index (sitemapindex) följer verktyget under-sitemaps automatiskt.

EXIT-KODER
0 = OK
2 = Fel vid läsning av sitemap eller CSV
3 = Fel vid export

Licens: Gör vad du vill :-)
#34

KABEL COPPER VALUATOR

cable_copper_valuator_mysql.txt

Amazon / MySQL / Produktdata

Funktioner

  • Ingen separat funktionslista hittades – se originaltexten.

Filer / script

cable_copper_valuator.py

Flaggor

--brand--copper-price--limit--min-confidence--query--save-db--table--truncate
Visa original README-text
KABEL COPPER VALUATOR
=====================

Det här programmet ansluter till MySQL och försöker identifiera kabelprodukter
i tabellen `products`. För varje träff försöker det läsa ut:

- antal ledare
- area i mm²
- AWG om det används i titeln
- längd i meter

Sedan räknar programmet ut:

- uppskattad kopparvikt i kg
- uppskattat skrotvärde baserat på angivet kopparpris (kr/kg)
- relation mellan skrotvärde och produktpris

STANDARDUPPGIFTER
-----------------
Host: 192.168.0.220
Databas: amazon_products
Användare: amazon
Lösenord: amazon

INSTALLATION
------------
Installera en av dessa:
  pip install mysql-connector-python
eller
  pip install pymysql

KÖRNING
-------
1) Kör mot hela databasen med standard kopparpris 70 kr/kg:
   python3 cable_copper_valuator.py

2) Kör med eget kopparpris:
   python3 cable_copper_valuator.py --copper-price 72

3) Filtrera på brand:
   python3 cable_copper_valuator.py --brand Nexans

4) Filtrera på query:
   python3 cable_copper_valuator.py --query kabel --limit 500

5) Bara medium/hög confidence:
   python3 cable_copper_valuator.py --min-confidence medium

6) Spara även till MySQL:
   python3 cable_copper_valuator.py --save-db --table cable_valuations --truncate

OUTPUT
------
Programmet skapar som standard:
- cable_valuation_results.csv
- cable_valuation_results.html

VIKTIGT
-------
Programmet använder heuristik / regex. Det betyder:
- resultatet blir bäst när titel, category eller description innehåller tydliga data
- kablar utan längd eller area får lägre confidence
- nätverkskabel, koax, USB/HDMI m.m. kan behöva specialregler senare

BRA NÄSTA STEG
--------------
1. Lägg till fler regex-regler för svenska/engelska kabelnamn.
2. Lägg till specifika regler för CAT5/CAT6, koax, solarkabel, svetskabel.
3. Lägg till stöd för att skriva tillbaka beräknade fält till `products`.
4. Lägg till whitelist/blacklist-regler för att minska falska träffar.
#35

KABEL COPPER VALUATOR V2

cable_copper_valuator_v2.txt

Kabel / Koppar / Beskrivningar

Funktioner

  • Ingen separat funktionslista hittades – se originaltexten.

Filer / script

cable_copper_valuator_v2.py

Flaggor

--brand--config--limit--save-db--table--truncate--undervalued-only
Visa original README-text
KABEL COPPER VALUATOR V2
========================

Den här versionen har:

- extern config-fil (JSON)
- fler kabeltyper
- badwords-lista
- blacklist för ASIN
- blacklist för titelfraser
- funktion för "undervärderade kablar"

UNDERVÄRDERADE KABLAR
---------------------
En kabel markeras som undervärderad om:

    uppskattat kopparskrotvärde / produktpris * 100 >= undervalued_ratio_pct

Exempel:
- produktpris = 100 kr
- uppskattat kopparskrotvärde = 75 kr
- ratio = 75%

Om config har:
    "undervalued_ratio_pct": 60.0

så markeras den som undervärderad.

EXTERN CONFIG
-------------
Programmet läser allt från:
    cable_valuator_config.json

Där styr du:
- DB-anslutning
- kopparpris
- confidence-nivå
- query/brand/category-filter
- badwords
- blacklist
- kabeltyp-regler

STÖDDA KABELTYPER I V2
----------------------
- generic kabel
- network / ethernet / CAT5-CAT8
- speaker cable / högtalarkabel
- coax / koax / RG59 / RG6
- solar / PV cable
- battery cable / batterikabel / svetskabel / startkabel
- alarm / signal / styrkabel
- usb / hdmi / displayport (igenkänns men kan exkluderas från värdeberäkning)

KÖRNING
-------
1) Standard:
   python3 cable_copper_valuator_v2.py

2) Med egen config:
   python3 cable_copper_valuator_v2.py --config cable_valuator_config.json

3) Endast undervärderade:
   python3 cable_copper_valuator_v2.py --undervalued-only

4) Spara även till MySQL:
   python3 cable_copper_valuator_v2.py --save-db --table cable_valuations_v2 --truncate

5) Override från CLI:
   python3 cable_copper_valuator_v2.py --brand Nexans --limit 500

VIKTIGT
-------
Programmet bygger fortfarande på regex och heuristik.
För bästa träffsäkerhet bör du fylla på config-filen med fler regler, badwords
och blacklistade ASIN efterhand när du hittar felträffar.
#36

KABEL VALUATOR V3

cable_copper_valuator_v3.txt

Kabel / Koppar / Beskrivningar

Funktioner

  • Ingen separat funktionslista hittades – se originaltexten.

Filer / script

cable_copper_valuator_v3.py

Flaggor

Inga --flaggor hittade
Visa original README-text
KABEL VALUATOR V3

Ny funktion:
- mailar automatiskt alla undervärderade kablar till:

    jens.melander@gmail.com

Funktioner
-----------
✔ identifierar kabel
✔ räknar kopparvikt
✔ räknar skrotvärde
✔ hittar undervärderade kablar
✔ skickar mail

För Gmail måste du skapa en
APP PASSWORD

https://myaccount.google.com/apppasswords

Sedan sätt:

smtp_user
smtp_password

i config-filen.

Kör:
python cable_copper_valuator_v3.py
#37

CABLE DESCRIPTION CLEANER v2

cable_description_cleaner_v2.txt

Kabel / Koppar / Beskrivningar

Funktioner

  • Ingen separat funktionslista hittades – se originaltexten.

Filer / script

clean_descriptions.py

Flaggor

--backup--brands
Visa original README-text
CABLE DESCRIPTION CLEANER v2
==========================

Städar och normaliserar kabelbeskrivningar i CSV för flera kabeltyper:

Stödda profiler:
- CAT (nätverkskablar Cat5/Cat5e/Cat6/Cat6a/Cat7/Cat8)
- HDMI
- USB
- Fiber
- Coax
- Strömkablar

Default: DRY-RUN (inget skrivs). Använd -write för att skriva.

Exempel:
--------
# Dry-run
python clean_descriptions.py -in produkter.csv -column beskrivning

# Skriv tillbaka + backup
python clean_descriptions.py -in produkter.csv -column beskrivning -write --backup

# Med brand-kolumn
python clean_descriptions.py -in produkter.csv -column beskrivning -brand-col brand -write

# Försök hitta brand i texten
python clean_descriptions.py -in produkter.csv -column beskrivning --brands "Deltaco,Digitus,Ubiquiti" -write

Profiler:
---------
Programmet försöker automatiskt avgöra vilken kabeltyp det är (CAT/HDMI/USB/Fiber/Coax/Power)
och bygger en städad beskrivning enligt logiska regler för varje typ.

Tips:
-----
- Kör alltid först utan -write.
- Justera reglerna per profil i scriptet om du vill vara ännu striktare.
#38

CABLE DESCRIPTION CLEANER v3 (CLI + Tkinter GUI)

cable_description_cleaner_v3.txt

Kabel / Koppar / Beskrivningar

Funktioner

  • Ingen separat funktionslista hittades – se originaltexten.

Filer / script

clean_descriptions.pycleaner.pygui_tkinter.py

Flaggor

--backup--brands--force-profile
Visa original README-text
CABLE DESCRIPTION CLEANER v3 (CLI + Tkinter GUI)
==========================================

Det här verktyget städar och normaliserar kabelbeskrivningar i CSV.

Profiler (auto-detekteras)
--------------------------
- CAT (nätverk): Cat5/Cat5e/Cat6/Cat6a/Cat7/Cat8 + skärmning + Solid/Stranded (patchkabel) + AWG + MHz + LSZH/CM/CMR/CMP + standarder + längd + (övrigt)
- HDMI: HDMI + version (1.4/2.0/2.1) + upplösning (4K/8K/1080p/1440p) + HDR/ARC/eARC + längd + (övrigt)
- USB: USB + version (2.0/3.0/3.1/3.2/4) + kontakt (Type-A/B/C, Micro-B, Mini-B) + PD + längd + (övrigt)
- Fiber: Fiber + SM/MM + kontakter (LC/SC/ST/FC/MPO/…) + längd + (övrigt)
- Coax: Coax + RG-typ + kontakt (F-type/BNC/SMA/…) + längd + (övrigt)
- Power/Strömkabel: Strömkabel + V/A/W + längd + (övrigt)

VIKTIGT: Default är DRY-RUN
---------------------------
CLI skriver INTE till fil om du inte anger -write.
GUI har en checkbox "Write changes" som måste vara ikryssad för att skriva.

KRAV
----
Python 3.9+ (inga externa dependencies)

CLI – Exempel
-------------
Dry-run:
  python clean_descriptions.py -in produkter.csv -column beskrivning

Skriv tillbaka + backup (.bak):
  python clean_descriptions.py -in produkter.csv -column beskrivning -write --backup

Brand i egen kolumn:
  python clean_descriptions.py -in produkter.csv -column beskrivning -brand-col tillverkare -write --backup

Försök hitta brand i text:
  python clean_descriptions.py -in produkter.csv -column beskrivning --brands "Deltaco,Digitus,Ubiquiti" -write

Tvinga profil:
  python clean_descriptions.py -in produkter.csv -column beskrivning --force-profile cat

GUI
---
Starta GUI:
  python gui_tkinter.py

Filer
-----
- cleaner.py              (core logic)
- clean_descriptions.py   (CLI)
- gui_tkinter.py          (Tkinter GUI)
- README.txt / README.html
#39

CAT DESCRIPTION CLEANER (CSV) v1

cat_description_cleaner_v1.txt

Kabel / Koppar / Beskrivningar

Funktioner

  • Ingen separat funktionslista hittades – se originaltexten.

Filer / script

clean_descriptions.py

Flaggor

--backup--brands--brands-file--delimiter--encoding--out
Visa original README-text
CAT DESCRIPTION CLEANER (CSV) v1
================================

Syfte
-----
Städar beskrivningstexter för nätverkskablar (Cat-kablar) enligt logiska regler.

Regler (Cat-kablar)
-------------------
Bygger en normaliserad beskrivning med ordning:

1) Tillverkare/brand (om kan identifieras)
2) Cat-klass: Cat5, Cat5e, Cat6, Cat6a, Cat7, Cat8
   - Accepterar varianter: "cat 5", "cat-5", "cat,5", "cat5", "Cat 5e" osv.
3) Skärmning (t.ex. UTP, FTP, S/FTP, U/UTP, U/FTP, F/UTP, SF/UTP)
4) Kabeltyp:
   - Solid
   - Stranded (patchkabel)  <-- patchkabel skrivs i parentes för stranded
5) Ledartjocklek: 23AWG, 24AWG
6) Bandbredd/frekvens: 250 MHz, 500 MHz, 600 MHz
7) Brandklassning/manteltyp: LSZH, CM, CMR, CMP, PVC, PE (normaliserar LSOH->LSZH)
8) Standardcertifieringar: ANSI/TIA-568, ISO/IEC 11801, ETL, RoHS, REACH, CE
9) Längdmarkering: t.ex. 0-100m, 10FT, XXXXFT
10) All övrig text läggs sist: (övrigt: ...)

Default: DRY-RUN
----------------
Programmet är automatiskt "dry-run" och skriver inte till fil.
Du MÅSTE ange -write för att skriva ändringar.

Körning
-------
python clean_descriptions.py -in produkter.csv -column description

Skriv tillbaka (med backup):
python clean_descriptions.py -in produkter.csv -column description -write --backup

Skriv till annan fil:
python clean_descriptions.py -in produkter.csv -column description -write --out produkter_clean.csv

Brand-hantering
---------------
Om du har en separat brand-kolumn:
  -brand-col brand

Om du vill att programmet försöker hitta brand i texten:
  --brands "Deltaco,Digitus,Ubiquiti"
eller
  --brands-file brands.txt   (en brand per rad)

CSV
---
--delimiter ";"    om semikolon-separerat
--encoding utf-8   (default)

Tips
----
- Börja alltid med dry-run och granska diffarna.
- Just nu städas endast rader där Cat-klass faktiskt hittas.
- Vill du bredda till fler produkttyper senare (t.ex. fiber/koax), lägg fler "profiler".

#40

TYPE: python

crawl_budget_analyzer_package.txt

SEO / Crawl / Sitemap

Funktioner

  • Ingen separat funktionslista hittades – se originaltexten.

Filer / script

crawl_budget_analyzer.py

Flaggor

--csv--follow-internal--html--json--max-depth--max-pages--no-color--sitemap--slow-ms--start-url--strip-params--thin-words--threads--timeout--urls-file
Visa original README-text
#TYPE: python
#SAVE_AS: crawl_budget_analyzer.py
beskrivning
Crawl Budget Analyzer är ett avancerat Python CLI-program för att analysera crawl budget,
indexeringsslöseri och tekniska SEO-problem på en webbplats.

HUVUDFUNKTIONER
- Läser URL:er från sitemap.xml, start-URL eller textfil
- Kan följa interna länkar till valt djup
- Hämtar robots.txt och flaggar blockerade URL:er
- Analyserar statuskoder, redirects, canonical, meta robots, X-Robots-Tag,
  svarstid, ordantal, interna länkar och dupliceringssignaler
- Beräknar crawl waste score 0-100 per URL
- Bygger prioriterad åtgärdslista
- Exporterar rapporter till CSV, JSON och HTML

INSTALLATION
pip install requests beautifulsoup4

EXEMPEL
1) Sitemap-analys
python3 crawl_budget_analyzer.py \
  --sitemap https://example.com/sitemap.xml \
  --csv crawl.csv \
  --json crawl.json \
  --html crawl.html

2) Intern crawl från startsida
python3 crawl_budget_analyzer.py \
  --start-url https://example.com \
  --follow-internal \
  --max-pages 500 \
  --max-depth 4 \
  --html report.html

3) Kör mot egen URL-lista
python3 crawl_budget_analyzer.py \
  --urls-file urls.txt \
  --strip-params \
  --csv urls_report.csv

VIKTIGA FLAGGOR
--sitemap         URL till sitemap.xml eller sitemapindex
--start-url       Start-URL för crawl
--urls-file       Textfil med URL:er
--follow-internal Följ interna länkar
--max-pages       Max antal URL:er
--max-depth       Max djup
--threads         Antal parallella trådar
--timeout         Timeout i sekunder
--slow-ms         Tröskel för långsam sida
--thin-words      Tröskel för tunt innehåll
--strip-params    Ta bort query-parametrar vid normalisering
--csv             Spara CSV-rapport
--json            Spara JSON-rapport
--html            Spara HTML-rapport
--no-color        Stäng av färger i terminal

TOLKNING
- Hög crawl waste score betyder större sannolikhet att URL:en slösar crawl budget.
- Vanliga orsaker är 404, 5xx, redirects, noindex, canonical till annan URL,
  parameter-URL:er, tunt innehåll, långsamma svarstider eller robots-blockering.
- Sidor som ligger i sitemap men inte är indexerbara är ofta extra viktiga att städa bort.

VIDARE UTVECKLING
Bra nästa steg är att lägga till:
- JavaScript-rendering via Playwright
- Stöd för loggfiler från webbserver / Googlebot
- Jämförelse mellan sitemap och Google Search Console-export
- Canonical-kluster och redirect-kedjeanalys
- Separata rapporter per katalog, template eller sidtyp
#41

Crawl Budget Analyzer v2.1 PRO EXPERT

crawl_budget_analyzer_v2_1_pro_package.txt

SEO / Crawl / Sitemap

Funktioner

  • Ingen separat funktionslista hittades – se originaltexten.

Filer / script

crawl_budget_analyzer_v2_1_pro.py

Flaggor

--compare-csv--compare-html--compare-json--compare-last--compare-run-id--csv--follow-internal--history-db--html--json--list-runs--max-depth--max-pages--no-save-history--project-key--run-label--sitemap--start-url
Visa original README-text
Crawl Budget Analyzer v2.1 PRO EXPERT
====================================

Nyheter i denna version
-----------------------
1. Fixad interaktiv HTML-export
   - tidigare JS-fel i CSV-export kunde göra rapporten tom
   - denna version bygger HTML via säker JSON-injektion och korrekt \n-hantering
   - inbyggd try/catch visar JS-fel direkt i rapporten om något ändå kraschar

2. Körhistorik i SQLite
   - varje körning kan sparas i en SQLite-fil
   - summary + URL-data sparas per run
   - lätt att köra återkommande på samma site/project

3. Jämförelse mellan körningar
   - jämför mot senaste tidigare körning eller specifik run_id
   - visar bättre / sämre URL:er
   - summary-delta för t.ex. indexerbara URL:er, noindex, robots, waste score, SEO score och svarstid

4. Internal Linking Booster
   - listar viktiga sidor med för få interna inlänkar
   - föreslår källsidor att länka från

Stöd
----
- sitemap.xml / sitemap index
- start-url för crawl
- urls-file
- intern crawl med max-depth
- robots.txt
- canonical / noindex / X-Robots-Tag
- thin content
- redirect och redirect chains
- directory report
- log import (.log och .gz)
- export till HTML, CSV, JSON
- compare export till HTML, CSV, JSON

Installation
------------
pip install requests beautifulsoup4

Exempel
-------
1) Vanlig körning från sitemap
python3 crawl_budget_analyzer_v2_1_pro.py \
  --sitemap https://example.com/sitemap.xml \
  --html report.html \
  --csv report.csv \
  --json report.json

2) Spara historik och jämför mot senaste körningen
python3 crawl_budget_analyzer_v2_1_pro.py \
  --sitemap https://example.com/sitemap.xml \
  --history-db history.sqlite \
  --compare-last \
  --html report.html \
  --compare-csv compare.csv \
  --compare-json compare.json

3) Crawl från startsida + interna länkar
python3 crawl_budget_analyzer_v2_1_pro.py \
  --start-url https://example.com/ \
  --follow-internal \
  --max-pages 500 \
  --max-depth 4 \
  --html crawl.html

4) Lista tidigare körningar
python3 crawl_budget_analyzer_v2_1_pro.py \
  --project-key https://example.com \
  --history-db history.sqlite \
  --list-runs

Viktiga flaggor
---------------
--history-db FILE      SQLite-fil för historik
--compare-last         jämför med senaste tidigare körning i samma project_key
--compare-run-id ID    jämför med specifik äldre körning
--project-key TEXT     egen projektnyckel
--run-label TEXT       egen etikett för körningen
--no-save-history      spara inte körning i historiken
--compare-csv FILE     CSV med improved / worsened / added / removed
--compare-json FILE    JSON med jämförelsedata
--compare-html FILE    extra HTML-export

Tips
----
- Kör gärna samma site med samma --project-key varje gång för ren historik
- För sitemap-körningar är det ofta bäst att använda samma sitemap-URL eller ett fast project_key
- Om du importerar loggar blir prioriteringen bättre eftersom scriptet då ser faktisk crawl-aktivitet
#42

Run: python crawl_budget_analyzer_v2_2_pro.py --sitemap URL --html report.html

crawl_budget_analyzer_v2_2_pro_fixed.txt

SEO / Crawl / Sitemap

Funktioner

  • Ingen separat funktionslista hittades – se originaltexten.

Filer / script

crawl_budget_analyzer_v2_2_pro.py

Flaggor

--html--sitemap
Visa original README-text
Run: python crawl_budget_analyzer_v2_2_pro.py --sitemap URL --html report.html
#43

v2.3 PRO DEBUG NEW

crawl_budget_analyzer_v2_3_pro_NEW.txt

SEO / Crawl / Sitemap

Funktioner

  • Ingen separat funktionslista hittades – se originaltexten.

Filer / script

Ingen .py-fil hittad i README

Flaggor

Inga --flaggor hittade
Visa original README-text
v2.3 PRO DEBUG NEW
#44

CSV Column Export Tool (CLI)

csv_export_tool_v1.txt

CSV / Datahantering

Funktioner

  • Ingen separat funktionslista hittades – se originaltexten.

Filer / script

export_columns_from_csv.py

Flaggor

--columns--delimiter--diff--dry-run--group-by--group-outdir--match--preview--sample--seed--sort--sort-desc--sort-numeric--stats--stats-json--unique--where-col--where-op--where-val
Visa original README-text
CSV Column Export Tool (CLI)
==========================

Filer
-----
- export_columns_from_csv.py  (huvudscript)

Krav
----
- Python 3.8+ (ingen extern dependency)

Install / kör
-------------
Windows:
  py export_columns_from_csv.py input.csv output.csv --columns asin,url

Linux/macOS:
  python3 export_columns_from_csv.py input.csv output.csv --columns asin,url

Grundfunktioner
---------------
1) Exportera en eller flera kolumner
  --columns asin,url,price

2) Stöd för alla kolumner
  --columns all
  --columns *

3) Output-format baserat på filändelse
  output.csv  -> CSV
  output.txt  -> TXT (tab-separerat)
  output.json -> JSON array av objekt

4) Unika rader
  --unique

5) Sortering
  --sort price
  --sort-numeric
  --sort-desc

6) Regex-filter (matchar någon av valda kolumner)
  --match "bahco|facom"

7) WHERE-filter (enkel jämförelse)
  --where-col price --where-op ">" --where-val 500

8) Sampling (slumpmässigt urval) – deterministiskt med seed
  --sample 100 --seed 12345

9) Group-by (en output per grupp)
  --group-by brand --group-outdir out/
  Outputfilen används som basnamn, t.ex:
    output.csv -> output__Bahco.csv, output__Facom.csv ...

10) Stats
  --stats           (skriv stats till skärmen som JSON)
  --stats-json file.json   (spara stats till fil)

11) Dry-run + diff
  --dry-run         (skriver inget)
  --diff            (om output redan finns: visa diff-sammanfattning)
  --preview 10       (antal rader i preview under dry-run)

Delimiter
---------
Om din CSV använder semikolon:
  --delimiter ";"

Exempel
-------
A) Exportera ASIN + URL till CSV
  python export_columns_from_csv.py produkter.csv out.csv --columns asin,url

B) Exportera allt till JSON
  python export_columns_from_csv.py produkter.csv out.json --columns all

C) Bara unika URL:er, sortera
  python export_columns_from_csv.py produkter.csv urls.txt --columns url --unique --sort url

D) Dyra produkter (price > 500), exportera title+price
  python export_columns_from_csv.py produkter.csv dyra.csv --columns title,price --where-col price --where-op ">" --where-val 500 --sort price --sort-numeric

E) Regex-filter: bara rader som innehåller "bahco" i valda kolumner
  python export_columns_from_csv.py produkter.csv bahco.csv --columns asin,title,brand --match "bahco"

F) Sample: ta 50 rader (deterministiskt)
  python export_columns_from_csv.py produkter.csv sample.csv --columns asin,title --sample 50 --seed 7

G) Group-by brand, en fil per brand
  python export_columns_from_csv.py produkter.csv export.csv --columns asin,title,price --group-by brand --group-outdir grupper --sort price --sort-numeric

H) Dry-run + diff (ingen skrivning)
  python export_columns_from_csv.py produkter.csv out.csv --columns asin,url --unique --dry-run --diff --preview 5

Tips
----
- Kör --dry-run först när du testar filter/regex.
- För numerisk sortering på pris: använd --sort-numeric.
- Group-by använder värdet i gruppkolumnen för filnamn (sanitizerar tecken).

Licens
------
Fri att använda i dina projekt.
#45

csv_vs_filelist_matcher_v6_1

csv_vs_filelist_matcher_v6_1_package.txt

CSV / Datahantering

Funktioner

  • Ingen separat funktionslista hittades – se originaltexten.

Filer / script

csv_vs_filelist_matcher_v6_1.py

Flaggor

--basename-only--check-duplicates--column--csv--dup-threshold--filelist--print-all-scores--save-filelist--scan--threshold
Visa original README-text
csv_vs_filelist_matcher_v6_1

Beskrivning
Detta program kan:

1. läsa en CSV-fil eller alla CSV-filer i en katalog
2. matcha text i CSV mot filnamn i en fillista
3. fylla kolumnen meta med bästa filträff
4. spara ej matchade titlar i en textfil
5. spara gamla meta-värden för ej matchade rader i en separat textfil
6. scanna valfri sökväg efter videofiler och skapa ny fillista
7. hitta liknande dubletter i CSV

Viktig fix i v6.1
Tidigare kunde filen med namnet *_notfound_meta.txt upplevas som felaktig eftersom den i praktiken sparade text från matchkolumnen, t.ex. name.
I denna version är det uppdelat tydligt:

- *_notfound_titles.txt
  Sparar texten från kolumnen som används för matchning, t.ex. namn/title/name, för rader som inte matchade.

- *_notmatched_meta_values.txt
  Sparar det gamla värdet som redan fanns i kolumnen meta, men bara för rader som inte matchade.

Standardkolumn om --column inte anges
Programmet testar i denna ordning:
1. namn
2. title
3. name

Standard fillista
Om --filelist inte anges används:
filelist.txt

Filer som skapas
Om input är filmer.csv skapas normalt:

- filmer_with_meta.csv
- filmer_notfound_titles.txt
- filmer_notmatched_meta_values.txt
- filmer_duplicates.txt   (om --check-duplicates används)

Exempel på körning

1. Kör en CSV med standard filelist.txt
python3 csv_vs_filelist_matcher_v6_1.py --csv filmer.csv

2. Ange egen fillista
python3 csv_vs_filelist_matcher_v6_1.py --csv filmer.csv --filelist minlista.txt

3. Scanna disk efter videofiler och spara fillista
python3 csv_vs_filelist_matcher_v6_1.py --scan /mnt/14tb --save-filelist filelist.txt

4. Scanna disk och matcha direkt
python3 csv_vs_filelist_matcher_v6_1.py --csv filmer.csv --scan /mnt/14tb --save-filelist filelist.txt

5. Kör alla CSV-filer i aktuell katalog
python3 csv_vs_filelist_matcher_v6_1.py -allcsv

6. Kör alla CSV-filer i annan katalog
python3 csv_vs_filelist_matcher_v6_1.py -allcsv /mnt/data/csv

7. Kör dublettkontroll
python3 csv_vs_filelist_matcher_v6_1.py --csv filmer.csv --check-duplicates

8. Justera matchningsnivå
python3 csv_vs_filelist_matcher_v6_1.py --csv filmer.csv --threshold 0.72

9. Justera dublettnivå
python3 csv_vs_filelist_matcher_v6_1.py --csv filmer.csv --check-duplicates --dup-threshold 0.92

Viktiga flaggor
--csv FIL.csv
    Kör en enskild CSV-fil

-allcsv [KATALOG]
    Kör alla CSV-filer i katalogen
    Om katalog inte anges används aktuell katalog

--column KOLUMN
    Tvinga viss kolumn för matchning

--filelist FIL.txt
    Fillista att matcha mot
    Standard: filelist.txt

--scan SÖKVÄG
    Scanna efter videofiler

--save-filelist FIL.txt
    Spara resultatet från scan i txt-fil

--basename-only
    Spara bara filnamn i fillistan, inte full sökväg

--threshold 0.60
    Lägsta nivå för matchning CSV -> fil

--check-duplicates
    Scanna CSV efter liknande dubletter

--dup-threshold 0.88
    Lägsta nivå för dublettträff

--print-all-scores
    Visa mer debug-info

Hur ej matchade rader sparas
När en rad inte matchar händer två saker:

1. Titeltexten från vald matchkolumn sparas i:
   *_notfound_titles.txt

2. Om raden redan hade ett värde i meta innan matchningen, sparas det gamla meta-värdet i:
   *_notmatched_meta_values.txt

Exempel

CSV:
title,meta
Movie One,oldfile1.mp4
Movie Two,oldfile2.mp4
Movie Three,oldfile3.mp4

Fillista:
Movie One.mp4
Movie Three.mp4

Resultat:
- Movie One matchar
- Movie Three matchar
- Movie Two matchar inte

Skapade filer:
filmer_notfound_titles.txt
    Movie Two

filmer_notmatched_meta_values.txt
    oldfile2.mp4

Tips
- Börja med threshold 0.60
- För striktare matchning, prova 0.70-0.80
- För dubletter är 0.88 en bra start
- Vid stora listor blir programmet snabbare tack vare token-indexering och kandidatfiltrering
#46

csv_vs_filelist_matcher_v6

csv_vs_filelist_matcher_v6_package.txt

CSV / Datahantering

Funktioner

  • Ingen separat funktionslista hittades – se originaltexten.

Filer / script

csv_vs_filelist_matcher_v6.py

Flaggor

--basename-only--check-duplicates--column--csv--dup-threshold--filelist--print-all-scores--save-filelist--scan--threshold
Visa original README-text
csv_vs_filelist_matcher_v6
=========================

Beskrivning
-----------
Detta program läser en eller flera CSV-filer och jämför texten i en vald kolumn mot filnamn i en TXT-fillista eller mot videofiler som skannas fram från en sökväg.

Programmet kan också:
- fylla kolumnen meta med matchat filnamn
- spara ej matchade rader till *_notfound_meta.txt
- spara gamla meta-värden från ej matchade rader till *_notmatched_meta_values.txt
- hitta liknande dubletter i CSV
- köra alla CSV-filer i en katalog med -allcsv
- visa live progressbar och färgad status i terminalen

Filer i paketet
---------------
- csv_vs_filelist_matcher_v6.py
- README.txt
- README.html

Krav
----
- Python 3.8 eller nyare
- Inga externa Python-paket krävs

Snabbstart
----------
1. Lägg scriptet i en katalog.
2. Ha en CSV-fil och eventuellt en filelist.txt.
3. Kör ett av exemplen nedan.

Vanliga exempel
---------------
Kör en CSV mot filelist.txt:
python3 csv_vs_filelist_matcher_v6.py --csv filmer.csv

Kör en CSV och skanna videofiler från disk:
python3 csv_vs_filelist_matcher_v6.py --csv filmer.csv --scan /mnt/14tb --save-filelist filelist.txt

Kör alla CSV-filer i aktuell katalog:
python3 csv_vs_filelist_matcher_v6.py -allcsv

Kör alla CSV-filer i annan katalog:
python3 csv_vs_filelist_matcher_v6.py -allcsv /mnt/data/csv

Dublettkontroll i CSV:
python3 csv_vs_filelist_matcher_v6.py --csv filmer.csv --check-duplicates

Viktiga flaggor
---------------
--csv FIL
    Kör en specifik CSV-fil.

-allcsv [KATALOG]
    Kör alla CSV-filer i angiven katalog. Om katalog utelämnas används aktuell katalog.

--column KOLUMN
    Anger kolumn att matcha mot.
    Om den inte anges testas automatiskt i ordningen:
    namn -> title -> name

--filelist FIL
    TXT-fillista att matcha mot.
    Standard: filelist.txt

--scan SÖKVÄG
    Skannar sökvägen efter videofiler.

--save-filelist FIL
    Sparar ny fillista från skanningen.

--basename-only
    Sparar bara filnamn utan full sökväg när fillistan skrivs.

--threshold FLOAT
    Tröskel för CSV -> filmatchning.
    Standard: 0.60

--check-duplicates
    Söker efter liknande dubletter i CSV.

--dup-threshold FLOAT
    Tröskel för dublettkontroll.
    Standard: 0.88

Hur output-filer namnges
------------------------
Om input är filmer.csv skapas normalt:
- filmer_with_meta.csv
- filmer_notfound_meta.txt
- filmer_notmatched_meta_values.txt
- filmer_duplicates.txt   (om --check-duplicates används)

Hur matchning fungerar
----------------------
Programmet använder:
- normalisering av text
- tokenisering
- snabb kandidatfiltrering
- fuzzy-likhetsjämförelse
- bonus för innehållsmatchning

Det gör att det fungerar bättre än en enkel exakt jämförelse när CSV har titlar och fillistan har filnamn.

Exempel på auto-kolumnval
-------------------------
Om CSV har kolumnen namn används den först.
Om namn saknas testas title.
Om title saknas testas name.

Tips
----
- Börja med --threshold 0.60
- Höj till 0.70 eller 0.75 om du vill ha striktare matchning
- För dubletter är 0.88 en bra start
- Använd --print-all-scores om du vill felsöka matchningen

Exempel på full körning
-----------------------
python3 csv_vs_filelist_matcher_v6.py -allcsv /mnt/data/csv --scan /mnt/14tb --save-filelist filelist.txt --check-duplicates

Licens / användning
-------------------
Anpassa och använd fritt i dina egna projekt.
#47

extra_data_key_analyzer_pro.py

extra_data_key_analyzer_pro.txt

Amazon / MySQL / Produktdata

Funktioner

  • Ingen separat funktionslista hittades – se originaltexten.

Filer / script

extra_data_key_analyzer_pro.py

Flaggor

--asin--batch-size--brand--category--co-occurrence--deleteextradata--dry-run--key--largest--limit--list-keys--missing--no-progress--show-invalid--value-stats
Visa original README-text
extra_data_key_analyzer_pro.py
=================================

Beskrivning
-----------
Detta Python-program ansluter till en MySQL-databas och analyserar JSON-innehållet
i kolumnen `extra_data` i tabellen `products`.

Programmet kan bland annat:
- räkna vanligaste JSON-nycklarna
- lista alla unika JSON-nycklar
- visa vilka produkter som innehåller en viss nyckel
- visa vanligaste värden för en viss nyckel
- visa vilka nycklar som saknas oftast
- analysera co-occurrence mellan nycklar
- visa rader med störst `extra_data`
- visa ogiltiga JSON-rader
- ta bort en specifik JSON-nyckel från `extra_data`
- köra ändringar som dry-run
- läsa databasen i batchar
- visa färgad terminaloutput och progressbar

Krav
----
- Python 3.9+
- mysql-connector-python
- Åtkomst till MySQL/MariaDB

Installera beroende
-------------------
pip install mysql-connector-python

Standard databasinställningar
-----------------------------
Programmet är förinställt med:
- host: 192.168.0.220
- user: amazon
- password: amazon
- database: amazon_products

Du kan ändra dessa via kommandoraden.

Snabbstart
----------
Visa topp 10 vanligaste JSON-nycklar:
python3 extra_data_key_analyzer_pro.py

Visa topp 25:
python3 extra_data_key_analyzer_pro.py -x 25

Viktiga argument
----------------
-x, --limit N
    Hur många resultat som ska visas. Standard är 10.

--batch-size N
    Hur många rader som läses per batch. Standard är 1000.

--key JSON_KEY
    Visa produkter som innehåller en viss JSON-nyckel.

--value-stats JSON_KEY
    Visa vanligaste värden för angiven nyckel.

--missing
    Visa vilka nycklar som saknas oftast.

--co-occurrence
    Visa vilka nyckelpar som oftast förekommer tillsammans.

--largest
    Visa största raderna i `extra_data`.

--list-keys
    Lista alla unika JSON-nycklar.

--show-invalid
    Visa rader där `extra_data` inte är giltig JSON.

--deleteextradata JSON_KEY
    Ta bort angiven JSON-nyckel från alla matchande rader.

--dry-run
    Simulera ändringar utan att skriva till databasen.

--asin ASIN
    Filtrera på exakt ASIN.

--brand BRAND
    Filtrera på brand.

--category CATEGORY
    Filtrera på category.

--no-progress
    Stäng av progressbar.

Exempel
-------
1. Visa topp 20 vanligaste nycklar:
python3 extra_data_key_analyzer_pro.py -x 20

2. Lista alla nycklar:
python3 extra_data_key_analyzer_pro.py --list-keys

3. Visa produkter som innehåller `a-price-whole`:
python3 extra_data_key_analyzer_pro.py --key a-price-whole -x 20

4. Visa vanligaste värden för `a-price-symbol`:
python3 extra_data_key_analyzer_pro.py --value-stats a-price-symbol -x 20

5. Visa vilka nycklar som saknas oftast:
python3 extra_data_key_analyzer_pro.py --missing -x 30

6. Visa vanligaste nyckelpar:
python3 extra_data_key_analyzer_pro.py --co-occurrence -x 20

7. Visa största JSON-raderna:
python3 extra_data_key_analyzer_pro.py --largest -x 25

8. Visa ogiltiga JSON-rader:
python3 extra_data_key_analyzer_pro.py --show-invalid

9. Dry-run för att ta bort `a-price-symbol`:
python3 extra_data_key_analyzer_pro.py --deleteextradata "a-price-symbol" --dry-run

10. Ta bort `a-price-symbol` på riktigt:
python3 extra_data_key_analyzer_pro.py --deleteextradata "a-price-symbol"

11. Filtrera på ASIN:
python3 extra_data_key_analyzer_pro.py --key a-price-whole --asin B08TEST123

12. Filtrera på brand:
python3 extra_data_key_analyzer_pro.py --missing --brand Bahco

Varning
-------
Argumentet `--deleteextradata` uppdaterar databasen.
Kör alltid först med `--dry-run` så att du ser vad som kommer att ändras.

Tips
----
- Använd `--batch-size 5000` om databasen är stor och servern orkar.
- Använd filter som `--asin`, `--brand` och `--category` för snabbare analys.
- Om du vill köra utan färger kan du sätta miljövariabeln NO_COLOR=1.

Filer i ZIP
-----------
- extra_data_key_analyzer_pro.py
- README.txt
- README.html
#48

extra_data_key_analyzer_pro.py

extra_data_key_analyzer_pro_v2.txt

Amazon / MySQL / Produktdata

Funktioner

  • JSON-nyckeln måste finnas i extra_data.
  • Målkolumnen måste redan finnas i tabellen products.
  • Programmet kontrollerar att kolumnen finns innan uppdatering.
  • Värdet normaliseras till text innan det skrivs till MySQL-kolumnen.
  • Använd --dry-run först så du ser vad som skulle ändras.
  • Använd --only-empty-target om du inte vill skriva över befintliga värden.

Filer / script

extra_data_key_analyzer_pro.py

Flaggor

--asin--batch-size--brand--category--co-occurrence--copy-json-to-column--deleteextradata--dry-run--key--largest--list-keys--missing--no-progress--only-empty-target--show-invalid--value-stats
Visa original README-text
extra_data_key_analyzer_pro.py
========================================

Beskrivning
-----------
Python-program för att analysera JSON-data i kolumnen products.extra_data i MySQL.
Programmet kan:

- räkna vanligaste JSON-nycklar
- visa produkter som innehåller en viss JSON-nyckel
- visa vanligaste värden för en JSON-nyckel
- visa nycklar som saknas ofta
- visa vilka nycklar som förekommer tillsammans
- visa största extra_data-raderna
- lista alla JSON-nycklar
- ta bort en JSON-nyckel från extra_data
- kopiera värdet från en JSON-nyckel till valfri MySQL-kolumn
- köra allt med batch-läsning, färger och dry-run

Krav
----
Python 3.9+
mysql-connector-python

Installera beroende:
  pip install mysql-connector-python

Standard-databas
----------------
Host:     192.168.0.220
User:     amazon
Password: amazon
Database: amazon_products
Tabell:   products
Kolumn:   extra_data

Grundkörning
------------
Visa topp 10 JSON-nycklar:
  python3 extra_data_key_analyzer_pro.py

Visa topp 25:
  python3 extra_data_key_analyzer_pro.py -x 25

Funktioner
----------
1) Visa produkter som innehåller en viss JSON-nyckel
  python3 extra_data_key_analyzer_pro.py --key a-price-whole -x 20

2) Visa vanligaste värden för en JSON-nyckel
  python3 extra_data_key_analyzer_pro.py --value-stats a-price-symbol -x 20

3) Visa vilka nycklar som saknas oftast
  python3 extra_data_key_analyzer_pro.py --missing -x 30

4) Visa vilka nyckelpar som oftast förekommer tillsammans
  python3 extra_data_key_analyzer_pro.py --co-occurrence -x 20

5) Visa största extra_data-raderna
  python3 extra_data_key_analyzer_pro.py --largest -x 20

6) Lista alla unika JSON-nycklar
  python3 extra_data_key_analyzer_pro.py --list-keys

7) Visa ogiltiga JSON-rader
  python3 extra_data_key_analyzer_pro.py --show-invalid

8) Ta bort en JSON-nyckel ur extra_data
  Testkörning:
    python3 extra_data_key_analyzer_pro.py --deleteextradata "a-price-symbol" --dry-run

  Skarp körning:
    python3 extra_data_key_analyzer_pro.py --deleteextradata "a-price-symbol"

9) Kopiera värdet från en JSON-nyckel till en MySQL-kolumn
  Exempel: kopiera JSON-nyckeln bild till image_url

  Testkörning:
    python3 extra_data_key_analyzer_pro.py --copy-json-to-column bild image_url --dry-run

  Skarp körning:
    python3 extra_data_key_analyzer_pro.py --copy-json-to-column bild image_url

10) Uppdatera bara tomma målkolumner
    python3 extra_data_key_analyzer_pro.py --copy-json-to-column bild image_url --only-empty-target --dry-run

Filter
------
Exakt ASIN:
  python3 extra_data_key_analyzer_pro.py --key bild --asin B08ABC123

Brand:
  python3 extra_data_key_analyzer_pro.py --key bild --brand Bahco

Category:
  python3 extra_data_key_analyzer_pro.py --key bild --category Handverktyg

Batch och progress
------------------
Standard batch-size är 1000.
Ändra batch-size:
  python3 extra_data_key_analyzer_pro.py --largest --batch-size 5000

Stäng av progressbar:
  python3 extra_data_key_analyzer_pro.py --largest --no-progress

Viktigt om --copy-json-to-column
--------------------------------
- JSON-nyckeln måste finnas i extra_data.
- Målkolumnen måste redan finnas i tabellen products.
- Programmet kontrollerar att kolumnen finns innan uppdatering.
- Värdet normaliseras till text innan det skrivs till MySQL-kolumnen.
- Använd --dry-run först så du ser vad som skulle ändras.
- Använd --only-empty-target om du inte vill skriva över befintliga värden.

Tips
----
Bra exempel:
  python3 extra_data_key_analyzer_pro.py --list-keys
  python3 extra_data_key_analyzer_pro.py --value-stats bild -x 50
  python3 extra_data_key_analyzer_pro.py --copy-json-to-column bild image_url --only-empty-target --dry-run
  python3 extra_data_key_analyzer_pro.py --copy-json-to-column bild image_url --only-empty-target
#49

get_torrents.py

get_torrents_package.txt

Scrapers / Nedladdning

Funktioner

  • Ingen separat funktionslista hittades – se originaltexten.

Filer / script

get_torrents.py

Flaggor

--all--badwords--csv--date--dry-run--exclude--include--limit--list--no-skip-existing--quality
Visa original README-text
get_torrents.py
================

Beskrivning
-----------
get_torrents.py läser en scrapad CSV-fil, hittar magnetlänkar, filtrerar dem och lägger till godkända länkar i Deluge på linux5.local.

Programmet kan:
- Läsa CSV-filer.
- Extrahera magnetlänkar från alla kolumner.
- Filtrera med include/exclude.
- Köra --all och ta alla länkar förutom badwords.
- Köra --list filnamn.txt och ta rader som innehåller något ord från listan.
- Filtrera på datum med --date.
- Filtrera på kvalitet med --quality.
- Begränsa antal med --limit.
- Spara godkända länkar i approved_magnets.txt.
- Hoppa över redan importerade länkar via imported_magnets.log.
- Testköra med --dry-run.

Viktigt
-------
Använd programmet endast för material du har rätt att ladda ner och dela.

Installation
------------
1. Packa upp ZIP-filen.
2. Öppna get_torrents.py och ändra lösenordet:

   DELUGE_PASS = "DITT_LÖSENORD_HÄR"

3. Kontrollera även dessa inställningar:

   DELUGE_HOST = "linux5.local"
   DELUGE_PORT = 58846
   DELUGE_USER = "jens"
   DOWNLOAD_PATH = "/home/jens/m/nas2_14tb/downloaded/in"

4. Gör scriptet körbart:

   chmod +x get_torrents.py

Exempel
-------
Testa utan att lägga till i Deluge:

   python3 get_torrents.py --csv thepiratebay-2026-04-24.csv --all --dry-run

Ta alla länkar utom badwords:

   python3 get_torrents.py --csv thepiratebay-2026-04-24.csv --all

Ta max 10 länkar:

   python3 get_torrents.py --csv thepiratebay-2026-04-24.csv --all --limit 10

Ta bara 1080p:

   python3 get_torrents.py --csv thepiratebay-2026-04-24.csv --all --quality 1080p

Ta 720p eller 1080p:

   python3 get_torrents.py --csv thepiratebay-2026-04-24.csv --all --quality 720p,1080p

Ta bara rader där datumet 2026-04-24 hittas i någon kolumn:

   python3 get_torrents.py --csv thepiratebay-2026-04-24.csv --all --date 2026-04-24

Använd ordlista:

   python3 get_torrents.py --csv thepiratebay-2026-04-24.csv --list braord.txt

Kombinera ordlista, datum, kvalitet och limit:

   python3 get_torrents.py --csv thepiratebay-2026-04-24.csv --list braord.txt --date 2026-04-24 --quality 1080p --limit 5

Filter
------
--include
Alla angivna ord måste finnas i raden.

Exempel:
   --include ubuntu,iso

--exclude
Inget av orden får finnas i raden.

Exempel:
   --exclude cam,ts,hindi

--all
Tar alla magnetlänkar som inte matchar badwords.txt.
Kan inte användas samtidigt som --list.

--list filnamn.txt
Tar rader som innehåller minst ett ord från filen.
Kan inte användas samtidigt som --all.

--badwords filnamn.txt
Anger fil med blockerade ord. Standard är badwords.txt.

--date datum
Raden måste innehålla datumet i någon kolumn.
Exempel på format:
- 2026-04-24
- 24/04/2026
- 24.04.2026

--quality
Kvalitet som måste finnas i raden.
Om du inte anger --quality används standard:
- 420p
- 720p
- 1080p

Exempel:
   --quality 1080p
   --quality 720p,1080p

--limit
Max antal länkar att lägga till.

Exempel:
   --limit 10

--dry-run
Visar vad som skulle göras utan att lägga till i Deluge.

--no-skip-existing
Lägger till även om magnetlänken redan finns i imported_magnets.log.

Filer
-----
get_torrents.py
Huvudprogrammet.

badwords.txt
Ord som alltid blockerar en rad.

braord.txt
Exempel på ordlista till --list.

approved_magnets.txt
Skapas automatiskt. Innehåller godkända magnetlänkar från senaste körningen.

imported_magnets.log
Skapas automatiskt. Innehåller magnetlänkar som redan skickats till Deluge.

Deluge-felsökning
-----------------
Om du får connection-fel, testa:

   deluge-console "connect linux5.local:58846 jens DITT_LÖSENORD"

Om du får Permission denied i Deluge, testa på linux5:

   sudo -u deluge touch /home/jens/m/nas2_14tb/downloaded/in/test_deluge.txt

Om det failar, kontrollera rättigheter:

   id deluge
   namei -l /home/jens/m/nas2_14tb/downloaded/in
   mount | grep nas2_14tb

Rekommenderad fix:

   sudo usermod -aG jens deluge
   chmod 2775 /home/jens/m/nas2_14tb/downloaded
   chmod 2775 /home/jens/m/nas2_14tb/downloaded/in
   chmod 2775 /home/jens/m/nas2_14tb/downloaded/klart
   sudo systemctl restart deluged

#50

IMGGRAB — README (txt)

imggrab_2026-02-22_v1.txt

Verktyg / Backup / Setup

Funktioner

  • Ingen separat funktionslista hittades – se originaltexten.

Filer / script

imggrab.py

Flaggor

--backoff--connect-timeout--outdir--overwrite--read-timeout--recursive--retries--upgrade
Visa original README-text
IMGGRAB — README (txt)
=====================

Översikt
--------
imggrab.py är ett Python CLI-program som läser JSON-filer och laddar ner bilder som anges
i nyckeln "PRODUCT_IMG_URL". Bilderna sparas lokalt och filnamn kan baseras på "SLUG",
valfri nyckel via -filename, eller originalnamnet från URL:en via -orginalname.

Krav
----
- Python 3.11+
- requests

Installera dependency
---------------------
python -m pip install --upgrade requests

Snabbstart
----------
1) Ladda ner en fil:
   python imggrab.py -json data/product.json

2) Ladda ner alla JSON i en katalog:
   python imggrab.py -alljson ./json_data

3) Rekursivt (underkataloger):
   python imggrab.py -alljson ./json_data --recursive

4) Använd annat fält som filnamnsbas:
   python imggrab.py -alljson ./json_data -filename produkt_nr

5) Använd originalfilnamn från URL:
   python imggrab.py -json one.json -orginalname

6) Ange output-katalog:
   python imggrab.py -alljson ./json_data --outdir ./bilder

7) Skriv över befintliga filer:
   python imggrab.py -alljson ./json_data --overwrite

Flaggar (viktigaste)
--------------------
-json <fil>             Kör på exakt en JSON-fil.
-alljson <katalog>      Kör på alla *.json i en katalog.
--recursive             Sök även i underkataloger (endast med -alljson).
--outdir <katalog>      Var bilder och logg sparas (default: ./downloaded_images).
-filename <nyckel>      Filnamnsbas från JSON-nyckel (fallback: SLUG, fallback: JSON-filnamn).
-orginalname            Använd filnamn från URL:en istället för SLUG/annan nyckel.
--overwrite             Skriv över filer som redan finns (annars skapas _2, _3...).
--retries N             Antal retries vid nätverksfel (default 3).
--backoff S             Exponentiell backoff i sekunder (default 0.6).
--connect-timeout S     Connect-timeout (default 10).
--read-timeout S        Read-timeout (default 30).

JSON-format som stöds
---------------------
A) Objekt:
   { "SLUG": "min-produkt", "PRODUCT_IMG_URL": "https://..." }

B) Lista av objekt:
   [
     { "SLUG": "p1", "PRODUCT_IMG_URL": ["https://...","https://..."] },
     { "SLUG": "p2", "PRODUCT_IMG_URL": "https://..." }
   ]

Filnamn & filändelse
--------------------
- Filnamnsbas:
  * Standard: SLUG
  * Med -filename: värde från nyckeln du anger
  * Med -orginalname: filnamn från URL (utan extension)
- Filändelse:
  1) Content-Type från HTTP-svar (t.ex. image/jpeg -> .jpg)
  2) Annars suffix i URL (t.ex. .png)
  3) Annars magic-bytes sniff (jpg/png/webp/gif)
  4) Fallback: .bin

Loggfil
-------
Programmet skriver en logg i JSONL-format:
  <outdir>/download_log.jsonl

Varje rad är ett JSON-objekt. Detta gör loggen enkel att analysera i efterhand.

Vanliga problem
--------------
- 403/401: Kräver ofta headers/cookies eller är blockerad. Programmet loggar felet och fortsätter.
- Timeouts: Öka --read-timeout eller --retries/--backoff.
- Ogiltiga URL:er: Programmet hoppar över och loggar.

Exit codes
----------
0 = Inga nedladdningsfel
1 = Minst en bild misslyckades
2 = CLI/filfel (t.ex. saknad fil/katalog)

Licens
------
Fri att använda internt i dina projekt.
#51

IMGGRAB — README (txt) v2

imggrab_2026-02-22_v2_fix_pages_wrapper.txt

Verktyg / Backup / Setup

Funktioner

  • Ingen separat funktionslista hittades – se originaltexten.

Filer / script

imggrab.py

Flaggor

--outdir--recursive--upgrade
Visa original README-text
IMGGRAB — README (txt) v2
========================

Vad som var fel (felsökning)
----------------------------
Din fil bahco_domkrafer.json är inte en "ren lista" av objekt, utan en wrapper:
  { "pages": [ {...}, {...}, ... ] }

I första versionen av imggrab.py hanterades bara:
  - toppnivå-objekt { ... }
  - toppnivå-lista [ {...}, {...} ]

Resultat: programmet letade efter PRODUCT_IMG_URL på toppnivån och missade att
bilderna låg inne i pages-listan.

Fix i v2:
---------
Programmet letar nu automatiskt efter listor av objekt i wrapper-nycklar:
  pages, items, products, data
och itererar sedan varje objekt i listan.

Krav
----
- Python 3.11+
- requests

Installera
----------
python -m pip install --upgrade requests

Exempel
-------
1) Kör på din fil:
   python imggrab.py -json bahco_domkrafer.json --outdir ./bilder

2) Alla JSON i en katalog:
   python imggrab.py -alljson ./json_data --recursive --outdir ./bilder

3) Använd produkt_nr som filnamn:
   python imggrab.py -json bahco_domkrafer.json -filename produkt_nr --outdir ./bilder

4) Använd originalfilnamnet från URL:
   python imggrab.py -json bahco_domkrafer.json -orginalname --outdir ./bilder

Logg
----
Logg skrivs till:
  <outdir>/download_log.jsonl
#52

Big J Link Archive PRO v1.2

link_archive_pro_v1_2.txt

Länkar / Arkiv

Funktioner

  • läsa länkar från CSV, JSON, JSONL/NDJSON och TXT
  • jämföra mot huvudarkiv
  • skriva omatchade länkar till ny CSV-fil
  • spara nya poster i MySQL, SQLite eller CSV-backend
  • använda extern MySQL credential-fil
  • spara tag i egen kolumn
  • spara name/titel i egen kolumn
  • exportera till CSV, JSON, TXT och HTML
  • visa statistik i CLI
  • skapa HTML-rapport
  • köra --crawl, --watch, --scanfolder, --checkdead, --update

Filer / script

link_archive_pro_v1_2.py

Flaggor

--checkdead--crawl--csv--dryrun--export--export-path--export-tag--interval--scanfolder--sqlite--stats--tag--update--watch
Visa original README-text
Big J Link Archive PRO v1.2
==========================

Detta paket innehåller ett Python CLI-program för att:
- läsa länkar från CSV, JSON, JSONL/NDJSON och TXT
- jämföra mot huvudarkiv
- skriva omatchade länkar till ny CSV-fil
- spara nya poster i MySQL, SQLite eller CSV-backend
- använda extern MySQL credential-fil
- spara tag i egen kolumn
- spara name/titel i egen kolumn
- exportera till CSV, JSON, TXT och HTML
- visa statistik i CLI
- skapa HTML-rapport
- köra --crawl, --watch, --scanfolder, --checkdead, --update

Filer:
- link_archive_pro_v1_2.py
- link_archive_pro.ini.example
- mysql_credentials.ini.example
- mysql_schema_v2.txt
- README.txt
- README.html

Installera vid behov:
- pip install requests
- pip install mysql-connector-python

Vanliga kommandon:
1) MySQL (standard via config)
   python3 link_archive_pro_v1_2.py input.csv --tag linux

2) SQLite
   python3 link_archive_pro_v1_2.py input.csv --sqlite

3) CSV-backend
   python3 link_archive_pro_v1_2.py input.csv --csv

4) Bara statistik
   python3 link_archive_pro_v1_2.py --stats

5) Exportera bara taggen linux
   python3 link_archive_pro_v1_2.py --export json --export-tag linux --export-path linux.json

6) Scan folder
   python3 link_archive_pro_v1_2.py --scanfolder ./incoming --tag linux

7) Watch folder
   python3 link_archive_pro_v1_2.py --watch ./incoming --interval 30

8) Crawl webbsida
   python3 link_archive_pro_v1_2.py --crawl https://example.com --tag crawl

9) Dry run
   python3 link_archive_pro_v1_2.py input.csv --dryrun

10) Uppdatera befintliga poster
    python3 link_archive_pro_v1_2.py input.csv --update

MySQL schema:
Se filen mysql_schema_v2.txt

Viktigt:
- --checkdead fungerar för http/https.
- magnet:-länkar kan importeras men inte kontrolleras med --checkdead.
- Hash används internt alltid för deduplicering via SHA256.
#53

TYPE: text

merge_csv_pro_v2.txt

CSV / Datahantering

Funktioner

  • antal rader
  • lägsta pris
  • högsta pris
  • snittpris
  • TOP billigaste
  • TOP dyraste
  • TOP billigaste unit_price

Filer / script

merge_csv_pro_v2.py

Flaggor

--add-source--calc-unit-price--contains--dedupe--drop--encoding--filter--flex--header-map--normalize-header--price-col--qty-col--select--stats--top--unit-col--watch--watch-interval
Visa original README-text
#TYPE: text
#SAVE_AS: README_merge_csv_pro_v2.txt
beskrivning: README för merge_csv_pro_v2.py

Merge CSV PRO v2
================

Det här programmet slår ihop alla CSV-filer i en angiven katalog till en ny CSV-fil.
Standardkatalog är aktuell katalog: .

Funktioner i v2 PRO
-------------------
1. --flex
   Tillåter CSV-filer med olika kolumner.
   Saknade kolumner fylls med tomt värde.
   Extra kolumner läggs till i output.

2. --normalize-header
   Normaliserar kolumnnamn.
   Exempel:
   Pris -> price
   Produkt Nr -> produkt_nr
   Varumärke -> brand
   Titel -> title

3. --filter och --contains
   Filtrera rader innan output skapas.
   Exempel:
   --filter "price>100"
   --contains "title=bahco"

5. --calc-unit-price
   Räknar ut unit_price = price / pack_quantity om unit_price saknas.

6. --stats
   Visar statistik och topplistor:
   - antal rader
   - lägsta pris
   - högsta pris
   - snittpris
   - TOP billigaste
   - TOP dyraste
   - TOP billigaste unit_price

15. --watch
   Övervakar katalogen och kör merge automatiskt när CSV-filer ändras.

Grundkörning
------------
python3 merge_csv_pro_v2.py .

Med egen outputfil:
python3 merge_csv_pro_v2.py /home/jens/csvfiler -o alla_produkter.csv

Tillåt olika kolumnstruktur
---------------------------
python3 merge_csv_pro_v2.py . --flex -o merged.csv

Normalisera headers
-------------------
python3 merge_csv_pro_v2.py . --normalize-header -o merged.csv

Flex + normalisering
--------------------
python3 merge_csv_pro_v2.py . --flex --normalize-header -o merged.csv

Filterexempel
-------------
Endast produkter över 100 kr:
python3 merge_csv_pro_v2.py . --normalize-header --filter "price>100" -o dyra.csv

Endast rader där title innehåller bahco:
python3 merge_csv_pro_v2.py . --normalize-header --contains "title=bahco" -o bahco.csv

Kombinera filter:
python3 merge_csv_pro_v2.py . --normalize-header --filter "price>50" --contains "title=bahco" -o bahco_over_50.csv

Deduplicering
-------------
Ta bort dubletter baserat på asin:
python3 merge_csv_pro_v2.py . --normalize-header --dedupe asin -o dedupe.csv

Ta bort dubletter baserat på flera kolumner:
python3 merge_csv_pro_v2.py . --normalize-header --dedupe asin,title -o dedupe.csv

Unit price
----------
Kräver normalt kolumnerna price och pack_quantity.
python3 merge_csv_pro_v2.py . --normalize-header --calc-unit-price -o unit.csv

Om dina kolumner heter annat:
python3 merge_csv_pro_v2.py . --calc-unit-price --price-col pris --qty-col antal --unit-col styckpris -o unit.csv

Statistik
---------
python3 merge_csv_pro_v2.py . --normalize-header --stats

Med top 25:
python3 merge_csv_pro_v2.py . --normalize-header --stats --top 25

Välj eller ta bort kolumner
---------------------------
Endast vissa kolumner:
python3 merge_csv_pro_v2.py . --normalize-header --select title,price,asin,url -o slim.csv

Ta bort kolumner:
python3 merge_csv_pro_v2.py . --normalize-header --drop extra_data,__source_file -o clean.csv

Lägg till källfil
-----------------
python3 merge_csv_pro_v2.py . --add-source -o merged_with_source.csv

Watch mode
----------
python3 merge_csv_pro_v2.py . --flex --normalize-header --watch -o merged.csv

Kontrollera varannan sekund:
python3 merge_csv_pro_v2.py . --watch --watch-interval 2 -o merged.csv

Egen header-map
---------------
Skapa t.ex. header_map.json:
{
  "Pris SEK": "price",
  "Produktnamn": "title",
  "Artikel": "produkt_nr"
}

Kör:
python3 merge_csv_pro_v2.py . --normalize-header --header-map header_map.json -o merged.csv

Tips för BilligaVerktyg-produktdata
-----------------------------------
Rekommenderad körning:
python3 merge_csv_pro_v2.py . --flex --normalize-header --dedupe asin --calc-unit-price --stats --add-source -o alla_produkter.csv

Felsökning
----------
Om svenska tecken blir fel, testa:
python3 merge_csv_pro_v2.py . --encoding latin-1 -o merged.csv

Om programmet säger att strukturen skiljer sig:
python3 merge_csv_pro_v2.py . --flex -o merged.csv

Om filter inte fungerar, kontrollera att kolumnnamnet matchar output-headern.
Kör gärna med --normalize-header så används enklare namn som price, title och brand.
#54

mysql_price_stats_cli

mysql_price_stats_cli.txt

Amazon / MySQL / Produktdata

Funktioner

  • Ingen separat funktionslista hittades – se originaltexten.

Filer / script

mysql_price_stats_cli.py

Flaggor

--csv-out--database--host--json-out--limit--no-color--password--show-url--user
Visa original README-text
mysql_price_stats_cli
====================

Beskrivning
-----------
Detta är ett Python CLI-program som ansluter till en MySQL-server och hämtar
produktinformation från tabellen `products` samt prisförändringar från
`price_history` för ett angivet ASIN.

Programmet visar bland annat:
- produktinfo
- nuvarande pris
- första kända pris
- originalpris
- lägsta och högsta observerade pris
- medelpris och medianpris
- total prisförändring i kronor och procent
- största enskilda prisfall och uppgång
- volatilitet
- tidslinje med alla prisändringar
- färgad terminaloutput

Standarddatabas
---------------
Programmet är förifyllt med dessa standardvärden baserat på din uppladdade
MySQL-info:

- server: 192.168.0.220
- användare: amazon
- lösenord: amazon
- databas: amazon_products
- port: 3306

Dessa kan ändras med CLI-flaggor eller miljövariabler.

Krav
----
- Python 3.10 eller nyare rekommenderas
- MySQL-servern måste vara nåbar från datorn där programmet körs
- Paket:
  pip install -r requirements.txt

Installation
------------
1. Packa upp ZIP-filen
2. Gå till katalogen
3. Installera beroenden:

   pip install -r requirements.txt

Exempel på körning
------------------
Vanlig standardkörning:

   python3 mysql_price_stats_cli.py B0ABC12345

Visa bara de senaste 15 prisändringarna:

   python3 mysql_price_stats_cli.py B0ABC12345 --limit 15

Spara historiken till CSV och allt till JSON:

   python3 mysql_price_stats_cli.py B0ABC12345 --csv-out historik.csv --json-out rapport.json

Visa utan färger:

   python3 mysql_price_stats_cli.py B0ABC12345 --no-color

Visa produktens URL:

   python3 mysql_price_stats_cli.py B0ABC12345 --show-url

Ändra databasanslutning:

   python3 mysql_price_stats_cli.py B0ABC12345 --host 127.0.0.1 --user root --password hemligt --database amazon_products

Miljövariabler
--------------
Du kan också styra anslutningen via:
- MYSQL_PRICE_HOST
- MYSQL_PRICE_PORT
- MYSQL_PRICE_USER
- MYSQL_PRICE_PASSWORD
- MYSQL_PRICE_DATABASE

Utdata
------
Programmet hämtar data från:
- `products` via ASIN
- `price_history` via ASIN, sorterat stigande på `changed_at`

Statistiken bygger på observerade prispunkter från:
- `first_seen_price` i products om den finns
- `new_price` i varje rad i price_history
- aktuellt `price` i products om det skiljer sig från sista observerade pris

Filer i paketet
---------------
- mysql_price_stats_cli.py
- README.txt
- requirements.txt

Tips
----
Om du vill göra verktyget ännu större senare kan du lägga till:
- sökning på titel istället för bara ASIN
- jämförelse mellan flera ASIN samtidigt
- HTML-rapport
- graf via matplotlib
- filtrering på datumintervall
- export till SQLite/CSV dashboard
#55

mysql_price_stats_cli

mysql_price_stats_cli_v2.txt

Amazon / MySQL / Produktdata

Funktioner

  • Ingen separat funktionslista hittades – se originaltexten.

Filer / script

mysql_price_stats_cli.py

Flaggor

--brand--brand-läget--csv-out--database--debug--desc--host--json-out--limit--max-rows--no-color--password--port--search--show-url--sort--title-width--user
Visa original README-text
mysql_price_stats_cli
====================

Beskrivning
-----------
Detta är ett Python CLI-program som ansluter till en MySQL-server och visar
prisstatistik för Amazon-produkter i databasen `amazon_products`.

Programmet stöder tre lägen:

1. ASIN-läge
   - Kör: python3 mysql_price_stats_cli.py B0XXXXXXX
   - Hämtar full prisstatistik för en enskild produkt.
   - Visar bland annat nuvarande pris, första pris, originalpris,
     lägsta/högsta observerade pris, medel, median, volatilitet och full
     tidslinje över prisförändringar.

2. Varumärkesläge
   - Kör: python3 mysql_price_stats_cli.py --brand "Bahco"
   - Visar en kompakt lista med max 1 rad per produkt.
   - För varje produkt visas bland annat:
       * ASIN
       * kortad titel
       * nuvarande pris
       * lägsta pris
       * högsta pris
       * antal prisändringar
       * total prisförändring i %
       * volatilitet
       * första/senaste kända pris

3. Fritextläge
   - Kör: python3 mysql_price_stats_cli.py --search "momentnyckel"
   - Söker i titel, ASIN, brand, modell och kategori.
   - Visar samma typ av en-rads-sammanfattning som i --brand-läget.

Standarddatabas
---------------
Programmet använder följande standardvärden om inget annat anges:

- Host: 192.168.0.220
- User: amazon
- Password: amazon
- Database: amazon_products
- Port: 3306

Det går också att styra med argument eller miljövariabler:
- MYSQL_PRICE_HOST
- MYSQL_PRICE_USER
- MYSQL_PRICE_PASSWORD
- MYSQL_PRICE_DATABASE
- MYSQL_PRICE_PORT
- MYSQL_PRICE_MAX_ROWS

Installation
------------
1. Packa upp ZIP-filen.
2. Installera beroenden:

   pip install -r requirements.txt

3. Kör programmet enligt exemplen nedan.

Exempel
-------
En produkt via ASIN:

   python3 mysql_price_stats_cli.py B0ABC12345

Visa bara senaste 10 prisändringarna:

   python3 mysql_price_stats_cli.py B0ABC12345 --limit 10

Varumärkeslista:

   python3 mysql_price_stats_cli.py --brand "Bahco"

Varumärkeslista sorterad på nuvarande pris fallande:

   python3 mysql_price_stats_cli.py --brand "Bahco" --sort current --desc

Sökning i titel/brand/kategori/modell:

   python3 mysql_price_stats_cli.py --search "cat6 30m"

Sökning med bredare listvisning:

   python3 mysql_price_stats_cli.py --search "milwaukee" --max-rows 100 --title-width 60

Exportera listläge till CSV och JSON:

   python3 mysql_price_stats_cli.py --brand "Facom" --csv-out facom.csv --json-out facom.json

Exportera historik för en produkt:

   python3 mysql_price_stats_cli.py B0ABC12345 --csv-out historik.csv --json-out rapport.json

Viktiga argument
----------------
Positional:
- asin                  En produkt att analysera i detalj

Valbara lägen:
- --brand TEXT          Lista produkter för ett visst varumärke
- --search TEXT         Fritextsökning

Databas:
- --host HOST
- --port PORT
- --user USER
- --password PASSWORD
- --database DATABASE

ASIN-läge:
- --limit N             Visa bara senaste N prisförändringarna
- --show-url            Visa produktens URL

Listläge (--brand / --search):
- --max-rows N          Max antal produkter att visa
- --title-width N       Max bredd på titelkolumnen
- --sort FIELD          title, asin, current, min, max, events, change_pct, volatility
- --desc                Sortera fallande

Gemensamt:
- --csv-out FIL         Exportera CSV
- --json-out FIL        Exportera JSON
- --no-color            Stäng av färger
- --debug               Visa felsökningsinfo

Utdata i listläge
-----------------
Varje produkt får exakt en rad i terminalen. Titeln kortas automatiskt om den
är för lång. Under tabellen visas även en sammanfattning för hela träffen,
inklusive antal produkter, antal med historik, snittpris och snittförändring.

Returkoder
----------
- 0 = OK
- 1 = Ingen träff hittades
- 2 = Kunde inte ansluta till databasen
- 3 = Databasfel under körning
#56

mysql_price_stats_cli_v4.py

mysql_price_stats_cli_v4_complete.txt

Amazon / MySQL / Produktdata

Funktioner

  • Ingen separat funktionslista hittades – se originaltexten.

Filer / script

mysql_price_stats_cli_v4.py

Flaggor

--brand--chart--csv-out--database--desc--host--json-out--limit--live-watch--max-rows--no-color--pack-analysis--password--port--price-errors--scan-all--search--show-url--smart-buy--sort--title-width--top-deals--user
Visa original README-text
mysql_price_stats_cli_v4.py
==========================

Beskrivning
-----------
Detta är ett Python CLI-program som ansluter till en MySQL-server och hämtar prisdata
från tabellerna `products` och `price_history`.

Normal användning:
    python3 mysql_price_stats_cli_v4.py B0EXEMPEL123

Programmet visar bland annat:
- nuvarande pris
- första kända pris
- lägsta pris
- högsta pris
- medelpris
- medianpris
- antal prisändringar
- total prisförändring i kronor och procent
- deal score
- smart-buy-beslut
- full historik över prisförändringar
- valfri ASCII-graf
- valfri pack-analys

Databasstandarder
-----------------
Programmet är förifyllt med:
- host: 192.168.0.220
- user: amazon
- password: amazon
- database: amazon_products
- port: 3306

Det kan ändras med flaggor eller miljövariabler:
- MYSQL_HOST
- MYSQL_USER
- MYSQL_PASSWORD
- MYSQL_DATABASE
- MYSQL_PORT

Installation
------------
1. Skapa gärna ett virtualenv
2. Installera beroenden:

    pip install -r requirements.txt

Körningsexempel
---------------
Detaljläge för ett ASIN:
    python3 mysql_price_stats_cli_v4.py B0ABC12345

Detaljläge med graf, smart-buy och pack-analys:
    python3 mysql_price_stats_cli_v4.py B0ABC12345 --chart --smart-buy --pack-analysis

Lista alla produkter för ett varumärke:
    python3 mysql_price_stats_cli_v4.py --brand "Bahco"

Fritextsökning:
    python3 mysql_price_stats_cli_v4.py --search "cat6 30m"

Sortering:
    python3 mysql_price_stats_cli_v4.py --brand "Bahco" --sort current --desc

Scanna hela databasen:
    python3 mysql_price_stats_cli_v4.py --scan-all

Top deals i fullscan:
    python3 mysql_price_stats_cli_v4.py --scan-all --top-deals 50

Prisfel/anomalier:
    python3 mysql_price_stats_cli_v4.py --price-errors

Live watch:
    python3 mysql_price_stats_cli_v4.py B0ABC12345 --live-watch 60

Export:
    python3 mysql_price_stats_cli_v4.py --brand "Bahco" --csv-out bahco.csv --json-out bahco.json

Viktiga flaggor
---------------
Positional:
- asin

Sök/listläge:
- --brand "Märke"
- --search "fritext"
- --scan-all
- --top-deals N
- --sort asin|title|current|min|max|changes|change_pct|deal|pack
- --desc
- --max-rows N
- --title-width N

Analys:
- --price-errors
- --smart-buy
- --pack-analysis
- --chart
- --limit N

Live:
- --live-watch SECONDS

Export:
- --csv-out fil.csv
- --json-out fil.json

Databas:
- --host
- --port
- --user
- --password
- --database

Övrigt:
- --show-url
- --no-color

Hur programmet jobbar
---------------------
1. Ett ASIN hämtas från `products`
2. Historiken hämtas från `price_history`
3. Statistik räknas ut i Python för detaljläge
4. För brand/search/fullscan används SQL-aggregering för snabbare listor
5. Resultaten skrivs ut färgat i terminalen

Tips
----
- `--scan-all` + `--top-deals 50` är bra för att hitta köpbara objekt snabbt
- `--price-errors` kan hitta 0-priser och extrema drops/spikes
- `--pack-analysis` är bra för pack/styckpris-jämförelser

Obs
---
- `--smart-buy` påverkar främst presentationen i detaljläget, men deal score räknas även i listlägen
- `--price-errors` använder heuristik, alltså misstänkta fel, inte garanterade fel
- `--scan-all` kan bli tungt på mycket stora databaser men är byggt med SQL-aggregering för att vara snabbare än Python-loopar
#57

MySQL Price Stats CLI V4 FULL

mysql_price_stats_cli_v4_FULL_REAL.txt

Amazon / MySQL / Produktdata

Funktioner

  • Ingen separat funktionslista hittades – se originaltexten.

Filer / script

mysql_price_stats_cli_v4.py

Flaggor

--brand--chart--csv-out--desc--json-out--live-watch--max-rows--no-color--pack-analysis--price-errors--scan-all--search--show-url--smart-buy--sort--title-width--top-deals
Visa original README-text
MySQL Price Stats CLI V4 FULL
=============================

Detta är ett komplett Python CLI-program för att läsa prisdata från MySQL och visa:
- detaljerad prisrapport för ett ASIN
- brand-listor (--brand)
- fritextsökning (--search)
- full databasscan (--scan-all)
- top deals (--top-deals)
- price errors/anomalier (--price-errors)
- smart buy-beslut (--smart-buy)
- pack-analys (--pack-analysis)
- ASCII-prisgraf (--chart)
- live watch av ett ASIN (--live-watch)
- CSV/JSON-export

Databas
-------
Standardvärden:
- host: 192.168.0.220
- user: amazon
- password: amazon
- database: amazon_products
- port: 3306

Du kan ändra dessa med miljövariabler:
- MYSQL_HOST
- MYSQL_PORT
- MYSQL_USER
- MYSQL_PASSWORD
- MYSQL_DATABASE

Installation
------------
1. Installera Python 3.10+.
2. Installera beroenden:

   pip install -r requirements.txt

3. Kör programmet:

   python3 mysql_price_stats_cli_v4.py B0ABC12345

Exempel
-------
1) Visa full rapport för ett ASIN:
   python3 mysql_price_stats_cli_v4.py B0ABC12345

2) Visa rapport + smart buy + pack-analys + graf:
   python3 mysql_price_stats_cli_v4.py B0ABC12345 --smart-buy --pack-analysis --chart

3) Lista alla produkter för ett märke:
   python3 mysql_price_stats_cli_v4.py --brand "Bahco"

4) Sök i titel, brand, modell, kategori och ASIN:
   python3 mysql_price_stats_cli_v4.py --search "cat6 30m"

5) Fullscan av hela databasen:
   python3 mysql_price_stats_cli_v4.py --scan-all

6) Visa topp-deals från hela databasen:
   python3 mysql_price_stats_cli_v4.py --scan-all --top-deals 50

7) Hitta prisfel:
   python3 mysql_price_stats_cli_v4.py --price-errors

8) Live watch av ett ASIN var 60:e sekund:
   python3 mysql_price_stats_cli_v4.py B0ABC12345 --live-watch 60

9) Exportera till CSV och JSON:
   python3 mysql_price_stats_cli_v4.py --brand "Facom" --csv-out facom.csv --json-out facom.json

Viktiga flaggor
---------------
Positional:
- ASIN                  Visa detaljrapport för ett ASIN

Listläge:
- --brand BRAND         Lista produkter för ett märke
- --search TEXT         Fritextsökning
- --scan-all            Scanna hela databasen
- --top-deals N         Visa topp N deals
- --max-rows N          Max rader i listläge
- --title-width N       Max bredd för titelkolumn
- --sort FIELD          Sortering: asin,title,current,min,max,avg,changes,change_pct,volatility,deal,last_change
- --desc                Sortera fallande

Analys:
- --price-errors        Hitta misstänkta priser
- --smart-buy           Visa köpbeslut för valt ASIN
- --pack-analysis       Jämför pack/styckpris för valt ASIN
- --chart               Rita ASCII-graf för valt ASIN
- --live-watch SEC      Uppdatera valt ASIN löpande

Export:
- --csv-out FILE        Spara resultat som CSV
- --json-out FILE       Spara resultat som JSON

Output/stil:
- --no-color            Stäng av ANSI-färger
- --show-url            Visa produkt-URL i detaljläge

Hur det fungerar
----------------
- products används för aktuell produktinfo
- price_history används för historiska prisändringar
- i scan-all används SQL-aggregering för högre fart
- deal score vägs fram från prisläge, rabatt mot maxpris och volatilitet
- smart-buy klassar produkten ungefär som BUY NOW / WAIT / OVERPRICED

Filer i paketet
---------------
- mysql_price_stats_cli_v4.py   huvudprogram
- requirements.txt              Python-beroende
- .env.example                  exempel på miljövariabler
- run_examples.sh               exempelkörningar
- README.txt                    denna fil

Felsökning
----------
Om du får anslutningsfel:
- kontrollera att MySQL-servern 192.168.0.220 svarar
- kontrollera brandvägg
- kontrollera användare/lösenord/databas
- testa med:

  MYSQL_HOST=192.168.0.220 MYSQL_USER=amazon MYSQL_PASSWORD=amazon MYSQL_DATABASE=amazon_products python3 mysql_price_stats_cli_v4.py --scan-all

Tips
----
- För stora listor: använd --max-rows 50
- För lugnare output: använd --no-color
- För export: använd alltid --csv-out eller --json-out
- För prisbevakning: använd --live-watch 60
#58

MySQL Price Stats CLI V4 PRO

mysql_price_stats_cli_v4_PRO.txt

Amazon / MySQL / Produktdata

Funktioner

  • Ingen separat funktionslista hittades – se originaltexten.

Filer / script

mysql_price_stats_cli_v4.py

Flaggor

--asc--brand--chart--csv-out--database--desc--host--json-out--live-watch--max-rows--no-color--pack-analysis--password--port--price-errors--scan-all--search--smart-buy--sort--title-width--top-deals--user
Visa original README-text
MySQL Price Stats CLI V4 PRO
===========================

Detta är ett Python CLI-program som ansluter till din MySQL-server och visar prisstatistik för Amazon-produkter baserat på ASIN, brand, fritext eller hela databasen.

Standardanslutning
------------------
Programmet använder dessa standardvärden:
- host: 192.168.0.220
- user: amazon
- password: amazon
- database: amazon_products
- port: 3306

Du kan också skriva över dem med flaggor:
--host --user --password --database --port

Installation
------------
1. Skapa gärna virtuell miljö
2. Installera beroenden:

    pip install -r requirements.txt

Körning
-------
1) En produkt via ASIN
    python3 mysql_price_stats_cli_v4.py B0ABC12345

2) En produkt med extra analyser
    python3 mysql_price_stats_cli_v4.py B0ABC12345 --smart-buy --pack-analysis --chart

3) Lista produkter per brand
    python3 mysql_price_stats_cli_v4.py --brand "Bahco"

4) Lista produkter via fritext
    python3 mysql_price_stats_cli_v4.py --search "cat6 30m"

5) Scanna hela databasen och visa top deals
    python3 mysql_price_stats_cli_v4.py --scan-all
    python3 mysql_price_stats_cli_v4.py --scan-all --top-deals 50

6) Hitta prisfel i databasen
    python3 mysql_price_stats_cli_v4.py --price-errors

7) Live watch för en produkt
    python3 mysql_price_stats_cli_v4.py B0ABC12345 --live-watch 60

Viktiga flaggor
---------------
--brand "märke"          Lista matchande produkter, max 1 rad per produkt
--search "fritext"       Söker i title, asin, brand, model och category
--scan-all               Scannar hela databasen med SQL-aggregering
--top-deals N            Hur många top deals som ska visas vid --scan-all
--price-errors           Söker efter nollpriser, extrema drops och spikes
--smart-buy              Ger BUY NOW / WAIT / OVERPRICED
--pack-analysis          Visar pack_quantity, unit_price och beräknat styckpris
--chart                  Ritar ASCII-prisgraf i terminalen
--live-watch SEKUNDER    Uppdaterar en ASIN i loop
--csv-out FIL.csv        Exporterar resultat till CSV
--json-out FIL.json      Exporterar resultat till JSON
--title-width N          Bredd på titelkolumn i listläge
--max-rows N             Max antal rader i brand/search/price-errors
--sort deal|current|min|max|changes|title
--asc / --desc           Sorteringsordning
--no-color               Ingen ANSI-färg i terminalen

Hur deal score fungerar
-----------------------
Score bygger på flera saker:
- hur långt under maxpris produkten ligger
- hur långt under medelpris den ligger
- hur nära lägsta pris den ligger
- senaste 7 dagars prisrörelse
- volatilitet
- antal historiska prisändringar

Detta är en heuristik, inte en garanti.

Exempel: top deals till CSV
---------------------------
    python3 mysql_price_stats_cli_v4.py --scan-all --top-deals 100 --csv-out top_deals.csv

Exempel: brandlista till JSON
-----------------------------
    python3 mysql_price_stats_cli_v4.py --brand "Milwaukee" --json-out milwaukee.json

Filer i paketet
---------------
- mysql_price_stats_cli_v4.py
- README.txt
- requirements.txt

Tips
----
För riktigt stora databaser kan det vara smart att lägga till fler index, men verktyget är redan optimerat för fullscan genom att använda SQL-aggregering i stället för att loopa över varje ASIN i Python.
#59

MySQL Price Stats CLI PRO - FULL VERSION

mysql_price_stats_cli_v5_FULL_PROGRAM.txt

Amazon / MySQL / Produktdata

Funktioner

  • Ingen separat funktionslista hittades – se originaltexten.

Filer / script

mysql_price_stats_cli.py

Flaggor

--brand--chart--csv-out--database--host--json-out--live-watch--no-color--pack-analysis--password--port--price-errors--scan-all--search--smart-buy--top-deals--topsearch--user
Visa original README-text
MySQL Price Stats CLI PRO - FULL VERSION
=======================================

Det här är ett komplett Python CLI-program som hämtar prisdata från MySQL-tabellerna:
- products
- price_history

Standarddatabas enligt din info:
- host: 192.168.0.220
- user: amazon
- password: amazon
- database: amazon_products

INSTALLATION
------------
python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt

KÖRNING
-------
1) En produkt via ASIN
python3 mysql_price_stats_cli.py B0ABC12345

2) Med smart buy, pack-analys och graf
python3 mysql_price_stats_cli.py B0ABC12345 --smart-buy --pack-analysis --chart

3) Sök på brand
python3 mysql_price_stats_cli.py --brand "Bahco"

4) Fritextsökning
python3 mysql_price_stats_cli.py --search "cat6 30m"

5) Scanna hela databasen
python3 mysql_price_stats_cli.py --scan-all

6) Top deals
python3 mysql_price_stats_cli.py --scan-all --top-deals 25

7) Topsearch
python3 mysql_price_stats_cli.py --topsearch
python3 mysql_price_stats_cli.py --topsearch 15

Topsearch visar topprodukter med fokus på:
- flest prissänkningar
- flest prisändringar
- smart buy score som tie-breaker

8) Price errors
python3 mysql_price_stats_cli.py --price-errors

9) Live watch
python3 mysql_price_stats_cli.py B0ABC12345 --live-watch 60
python3 mysql_price_stats_cli.py --topsearch --live-watch 120

10) Export
python3 mysql_price_stats_cli.py --search "milwaukee" --csv-out out.csv --json-out out.json

SÖKFÄLT
-------
--brand söker i:
- products.brand

--search söker i:
- products.title
- products.asin
- products.brand
- products.model
- products.category

VIKTIGA FLAGGOR
---------------
--scan-all
--brand "text"
--search "text"
--top-deals N
--topsearch [N]
--price-errors
--smart-buy
--pack-analysis
--chart
--live-watch SEKUNDER
--csv-out fil.csv
--json-out fil.json
--no-color

NOTERING
--------
Programmet använder hårdkodade standardvärden för din server enligt uppladdad info,
men de kan ändras via CLI-flaggor:
--host
--user
--password
--database
--port

EXEMPEL
-------
python3 mysql_price_stats_cli.py --host 192.168.0.220 --user amazon --password amazon --database amazon_products --topsearch
#60

MySQL Price Stats CLI V4 FULL

mysql_price_stats_cli_v5_topsearch.txt

Amazon / MySQL / Produktdata

Funktioner

  • Ingen separat funktionslista hittades – se originaltexten.

Filer / script

mysql_price_stats_cli_v4.py

Flaggor

--brand--chart--csv-out--desc--json-out--live-watch--max-rows--no-color--pack-analysis--price-errors--scan-all--search--show-url--smart-buy--sort--title-width--top-deals--topsearch
Visa original README-text
MySQL Price Stats CLI V4 FULL
=============================

Detta är ett komplett Python CLI-program för att läsa prisdata från MySQL och visa:
- detaljerad prisrapport för ett ASIN
- brand-listor (--brand)
- fritextsökning (--search)
- full databasscan (--scan-all)
- top deals (--top-deals)
- topsearch (--topsearch) för flest prisändringar/prissänkningar
- price errors/anomalier (--price-errors)
- smart buy-beslut (--smart-buy)
- pack-analys (--pack-analysis)
- ASCII-prisgraf (--chart)
- live watch av ett ASIN (--live-watch)
- CSV/JSON-export

Databas
-------
Standardvärden:
- host: 192.168.0.220
- user: amazon
- password: amazon
- database: amazon_products
- port: 3306

Du kan ändra dessa med miljövariabler:
- MYSQL_HOST
- MYSQL_PORT
- MYSQL_USER
- MYSQL_PASSWORD
- MYSQL_DATABASE

Installation
------------
1. Installera Python 3.10+.
2. Installera beroenden:

   pip install -r requirements.txt

3. Kör programmet:

   python3 mysql_price_stats_cli_v4.py B0ABC12345

Exempel
-------
1) Visa full rapport för ett ASIN:
   python3 mysql_price_stats_cli_v4.py B0ABC12345

2) Visa rapport + smart buy + pack-analys + graf:
   python3 mysql_price_stats_cli_v4.py B0ABC12345 --smart-buy --pack-analysis --chart

3) Lista alla produkter för ett märke:
   python3 mysql_price_stats_cli_v4.py --brand "Bahco"

4) Sök i titel, brand, modell, kategori och ASIN:
   python3 mysql_price_stats_cli_v4.py --search "cat6 30m"

5) Fullscan av hela databasen:
   python3 mysql_price_stats_cli_v4.py --scan-all

6) Visa topp-deals från hela databasen:
   python3 mysql_price_stats_cli_v4.py --scan-all --top-deals 50

7) Visa topp 15 produkter med flest prisändringar/prissänkningar:
   python3 mysql_price_stats_cli_v4.py --topsearch

8) Hitta prisfel:
   python3 mysql_price_stats_cli_v4.py --price-errors

9) Live watch av ett ASIN var 60:e sekund:
   python3 mysql_price_stats_cli_v4.py B0ABC12345 --live-watch 60

10) Exportera till CSV och JSON:
   python3 mysql_price_stats_cli_v4.py --brand "Facom" --csv-out facom.csv --json-out facom.json

Viktiga flaggor
---------------
Positional:
- ASIN                  Visa detaljrapport för ett ASIN

Listläge:
- --brand BRAND         Lista produkter för ett märke
- --search TEXT         Fritextsökning
- --scan-all            Scanna hela databasen
- --top-deals N         Visa topp N deals
- --topsearch [N]       Visa topp N med flest ändringar/prissänkningar
- --max-rows N          Max rader i listläge
- --title-width N       Max bredd för titelkolumn
- --sort FIELD          Sortering: asin,title,current,min,max,changes,drops,rises,change_pct,deal,pack
- --desc                Sortera fallande

Analys:
- --price-errors        Hitta misstänkta priser
- --smart-buy           Visa köpbeslut för valt ASIN
- --pack-analysis       Jämför pack/styckpris för valt ASIN
- --chart               Rita ASCII-graf för valt ASIN
- --live-watch SEC      Uppdatera valt ASIN löpande

Export:
- --csv-out FILE        Spara resultat som CSV
- --json-out FILE       Spara resultat som JSON

Output/stil:
- --no-color            Stäng av ANSI-färger
- --show-url            Visa produkt-URL i detaljläge

Hur det fungerar
----------------
- products används för aktuell produktinfo
- price_history används för historiska prisändringar
- i scan-all används SQL-aggregering för högre fart
- deal score vägs fram från prisläge, rabatt mot maxpris och volatilitet
- smart-buy klassar produkten ungefär som BUY NOW / WAIT / OVERPRICED

Filer i paketet
---------------
- mysql_price_stats_cli_v4.py   huvudprogram
- requirements.txt              Python-beroende
- .env.example                  exempel på miljövariabler
- run_examples.sh               exempelkörningar
- README.txt                    denna fil

Felsökning
----------
Om du får anslutningsfel:
- kontrollera att MySQL-servern 192.168.0.220 svarar
- kontrollera brandvägg
- kontrollera användare/lösenord/databas
- testa med:

  MYSQL_HOST=192.168.0.220 MYSQL_USER=amazon MYSQL_PASSWORD=amazon MYSQL_DATABASE=amazon_products python3 mysql_price_stats_cli_v4.py --scan-all

Tips
----
- För stora listor: använd --max-rows 50
- För lugnare output: använd --no-color
- För export: använd alltid --csv-out eller --json-out
- För prisbevakning: använd --live-watch 60
#61

MySQL Price Stats CLI V4 FULL

mysql_price_stats_cli_v5_topsearch (1).txt

Amazon / MySQL / Produktdata

Funktioner

  • Ingen separat funktionslista hittades – se originaltexten.

Filer / script

mysql_price_stats_cli_v4.py

Flaggor

--brand--chart--csv-out--desc--json-out--live-watch--max-rows--no-color--pack-analysis--price-errors--scan-all--search--show-url--smart-buy--sort--title-width--top-deals--topsearch
Visa original README-text
MySQL Price Stats CLI V4 FULL
=============================

Detta är ett komplett Python CLI-program för att läsa prisdata från MySQL och visa:
- detaljerad prisrapport för ett ASIN
- brand-listor (--brand)
- fritextsökning (--search)
- full databasscan (--scan-all)
- top deals (--top-deals)
- topsearch (--topsearch) för flest prisändringar/prissänkningar
- price errors/anomalier (--price-errors)
- smart buy-beslut (--smart-buy)
- pack-analys (--pack-analysis)
- ASCII-prisgraf (--chart)
- live watch av ett ASIN (--live-watch)
- CSV/JSON-export

Databas
-------
Standardvärden:
- host: 192.168.0.220
- user: amazon
- password: amazon
- database: amazon_products
- port: 3306

Du kan ändra dessa med miljövariabler:
- MYSQL_HOST
- MYSQL_PORT
- MYSQL_USER
- MYSQL_PASSWORD
- MYSQL_DATABASE

Installation
------------
1. Installera Python 3.10+.
2. Installera beroenden:

   pip install -r requirements.txt

3. Kör programmet:

   python3 mysql_price_stats_cli_v4.py B0ABC12345

Exempel
-------
1) Visa full rapport för ett ASIN:
   python3 mysql_price_stats_cli_v4.py B0ABC12345

2) Visa rapport + smart buy + pack-analys + graf:
   python3 mysql_price_stats_cli_v4.py B0ABC12345 --smart-buy --pack-analysis --chart

3) Lista alla produkter för ett märke:
   python3 mysql_price_stats_cli_v4.py --brand "Bahco"

4) Sök i titel, brand, modell, kategori och ASIN:
   python3 mysql_price_stats_cli_v4.py --search "cat6 30m"

5) Fullscan av hela databasen:
   python3 mysql_price_stats_cli_v4.py --scan-all

6) Visa topp-deals från hela databasen:
   python3 mysql_price_stats_cli_v4.py --scan-all --top-deals 50

7) Visa topp 15 produkter med flest prisändringar/prissänkningar:
   python3 mysql_price_stats_cli_v4.py --topsearch

8) Hitta prisfel:
   python3 mysql_price_stats_cli_v4.py --price-errors

9) Live watch av ett ASIN var 60:e sekund:
   python3 mysql_price_stats_cli_v4.py B0ABC12345 --live-watch 60

10) Exportera till CSV och JSON:
   python3 mysql_price_stats_cli_v4.py --brand "Facom" --csv-out facom.csv --json-out facom.json

Viktiga flaggor
---------------
Positional:
- ASIN                  Visa detaljrapport för ett ASIN

Listläge:
- --brand BRAND         Lista produkter för ett märke
- --search TEXT         Fritextsökning
- --scan-all            Scanna hela databasen
- --top-deals N         Visa topp N deals
- --topsearch [N]       Visa topp N med flest ändringar/prissänkningar
- --max-rows N          Max rader i listläge
- --title-width N       Max bredd för titelkolumn
- --sort FIELD          Sortering: asin,title,current,min,max,changes,drops,rises,change_pct,deal,pack
- --desc                Sortera fallande

Analys:
- --price-errors        Hitta misstänkta priser
- --smart-buy           Visa köpbeslut för valt ASIN
- --pack-analysis       Jämför pack/styckpris för valt ASIN
- --chart               Rita ASCII-graf för valt ASIN
- --live-watch SEC      Uppdatera valt ASIN löpande

Export:
- --csv-out FILE        Spara resultat som CSV
- --json-out FILE       Spara resultat som JSON

Output/stil:
- --no-color            Stäng av ANSI-färger
- --show-url            Visa produkt-URL i detaljläge

Hur det fungerar
----------------
- products används för aktuell produktinfo
- price_history används för historiska prisändringar
- i scan-all används SQL-aggregering för högre fart
- deal score vägs fram från prisläge, rabatt mot maxpris och volatilitet
- smart-buy klassar produkten ungefär som BUY NOW / WAIT / OVERPRICED

Filer i paketet
---------------
- mysql_price_stats_cli_v4.py   huvudprogram
- requirements.txt              Python-beroende
- .env.example                  exempel på miljövariabler
- run_examples.sh               exempelkörningar
- README.txt                    denna fil

Felsökning
----------
Om du får anslutningsfel:
- kontrollera att MySQL-servern 192.168.0.220 svarar
- kontrollera brandvägg
- kontrollera användare/lösenord/databas
- testa med:

  MYSQL_HOST=192.168.0.220 MYSQL_USER=amazon MYSQL_PASSWORD=amazon MYSQL_DATABASE=amazon_products python3 mysql_price_stats_cli_v4.py --scan-all

Tips
----
- För stora listor: använd --max-rows 50
- För lugnare output: använd --no-color
- För export: använd alltid --csv-out eller --json-out
- För prisbevakning: använd --live-watch 60
#62

MySQL Rule Updater GUI (PHP)

mysql_rule_updater_gui_php.txt

Amazon / MySQL / Produktdata

Funktioner

  • Ingen separat funktionslista hittades – se originaltexten.

Filer / script

Ingen .py-fil hittad i README

Flaggor

Inga --flaggor hittade
Visa original README-text
MySQL Rule Updater GUI (PHP)
============================

Filer
-----
- index.php
- README.txt
- README.html

Vad sidan gör
-------------
PHP-sidan är ett GUI för att köra samma typ av funktioner som Python-scriptet:
- uppdatera model/category via flera regler samtidigt
- uppdatera brand via första ordet i title
- kontrollera om första ordet i title matchar brand
- sätta första ordet i title som brand
- köra i view eller write
- filtrera på id, asin, brand och title
- spara rapport till textfil

Standardinställningar
---------------------
- host: linux1.local
- fallback host: 192.168.0.220
- port: 3306
- user: amazon
- password: amazon
- database: amazon_products
- table: products
- mode: view

Krav
----
- PHP 8.0+
- PDO MySQL aktiverat
- åtkomst till databasen

Installera
----------
1. Lägg index.php på din webbserver, t.ex. /var/www/html/mysql_rule_updater/
2. Kontrollera att PHP har PDO MySQL:
   php -m | grep -i pdo
   php -m | grep -i mysql
3. Ge katalogen skrivbehörighet om rapportfiler ska sparas bredvid PHP-filen.

Exempel Apache/Nginx
--------------------
Placera filen i en katalog som kör PHP, t.ex.:
- /var/www/html/mysql_rule_updater/index.php

Öppna sedan:
- http://server/mysql_rule_updater/

Hur regler fungerar
-------------------
Model/category-regler skrivs en per rad:
search|model|category|priority|enabled

Exempel:
makita 18v|Makita 18V|Batteri|10|1
bahco skiftnyckel|Bahco|Handverktyg|20|1

Brand-regler
------------
Brand-lista kan anges som:
Bahco
Makita
dewalt|DeWalt

Brand CSV kan anges som:
first_word,brand_value,enabled
bahco,Bahco,1
makita,Makita,1

Viktigt
-------
- view = visar bara vad som skulle hända
- write = sparar ändringarna i databasen
- brand-regler uppdaterar bara tomma brand-fält
- "set first word as brand" kan köras på alla eller bara tomma brand-fält

Säkerhet
--------
Sidan använder standardinloggning enligt din önskan. Om den ska exponeras på nätet bör du:
- lägga till inloggning
- begränsa IP-adresser
- helst flytta login till config utanför webroot
- använda HTTPS

Tips
----
Börja alltid med view och kontrollera rapporten innan du kör write.
#63

MySQL Rule Updater GUI PHP

mysql_rule_updater_gui_php_v2.txt

Amazon / MySQL / Produktdata

Funktioner

  • host: linux1.local
  • fallback host: 192.168.0.220
  • user: amazon
  • password: amazon
  • database: amazon_products
  • table: products
  • Sök på valfritt ord eller fras
  • Välj sökfält: alla fält, title, brand, model, category, asin eller id
  • Filtrera på id-intervall, specifika id, ASIN, brand exakt eller brand innehåller
  • Kryssruta för bara tomma brand
  • Kryssruta för bara mismatch där första ordet i title inte matchar brand
  • Visar max 50 produkter per sida
  • Knappar per rad:
  • Add first brand
  • Delete brand
  • Set brand 2 first words
  • Se all from <brand>
  • Bulkändringar via checkboxar:

Filer / script

Ingen .py-fil hittad i README

Flaggor

Inga --flaggor hittade
Visa original README-text
MySQL Rule Updater GUI PHP
==========================

Detta paket innehåller en PHP-sida som fungerar som GUI mot databasen:
- host: linux1.local
- fallback host: 192.168.0.220
- user: amazon
- password: amazon
- database: amazon_products
- table: products

Funktioner
----------
- Sök på valfritt ord eller fras
- Välj sökfält: alla fält, title, brand, model, category, asin eller id
- Filtrera på id-intervall, specifika id, ASIN, brand exakt eller brand innehåller
- Kryssruta för bara tomma brand
- Kryssruta för bara mismatch där första ordet i title inte matchar brand
- Visar max 50 produkter per sida
- Knappar per rad:
  * Add first brand
  * Delete brand
  * Set brand 2 first words
  * Se all from <brand>
- Bulkändringar via checkboxar:
  * Add first brand
  * Set brand 2 first words
  * Delete brand
  * Set custom brand
- Sparar rapport till textfil i samma katalog

Krav
----
- PHP 8.1+ rekommenderas
- PDO MySQL måste vara installerat och aktiverat
- Tabellen products måste innehålla minst:
  id, title, brand, model, category
- Om kolumnen asin finns används den också i GUI:t

Installering
------------
1. Packa upp zipfilen i din webbserverkatalog.
2. Kontrollera att PHP har PDO MySQL.
3. Öppna index.php i webbläsaren.
4. Kontrollera att servern kan nå linux1.local eller 192.168.0.220.

Obs
---
- Sida uppdaterar brand direkt vid knapptryckning.
- Rapportfiler sparas som mysql_rule_updater_gui_report_YYYYMMDD_HHMMSS.txt.
- "Se all from brand" visar upp till 50 länkar för valt brand.
#64

MySQL Rule Updater GUI PHP V3

mysql_rule_updater_gui_php_v3.txt

Amazon / MySQL / Produktdata

Funktioner

  • host fallback: linux1.local, 192.168.0.220
  • user: amazon
  • password: amazon
  • database: amazon_products
  • table: products
  • föreslår brand baserat på första ordet i title
  • jämför mot befintliga brands i databasen
  • threshold kan ställas i GUI
  • brand mismatch mot första ordet i title
  • saknar brand/model/category
  • model innehåller brand
  • ignorerar vanliga skräpord i början av title vid förslag
  • lista finns i index.php under JUNK_WORDS
  • No brand
  • No model
  • No category
  • Brand mismatch
  • Alla

Filer / script

Ingen .py-fil hittad i README

Flaggor

Inga --flaggor hittade
Visa original README-text
MySQL Rule Updater GUI PHP V3
=============================

Detta paket innehåller en PHP-sida för att arbeta mot databasen:
- host fallback: linux1.local, 192.168.0.220
- user: amazon
- password: amazon
- database: amazon_products
- table: products

Funktioner
----------
1. Smart brand-förslag
   - föreslår brand baserat på första ordet i title
   - jämför mot befintliga brands i databasen
   - threshold kan ställas i GUI

2. Konflikt-varningar
   - brand mismatch mot första ordet i title
   - saknar brand/model/category
   - model innehåller brand

3. Clean junk words
   - ignorerar vanliga skräpord i början av title vid förslag
   - lista finns i index.php under JUNK_WORDS

4. Snabbfilter
   - No brand
   - No model
   - No category
   - Brand mismatch
   - Alla

5. Brand stats panel
   - visar brand, antal, saknar model/category, mismatch-count
   - klickbar filtrering per brand

6. Auto-brand engine
   - fyller bara tomma brand-fält
   - använder första ordet i title
   - kräver att brandet finns minst threshold gånger i databasen

7. Underpris / felpris detector
   - fungerar om tabellen har en pris-kolumn som price/new_price/current_price/sale_price
   - jämför mot snittpris per exakt title

8. Confidence score
   - poäng 0-100 per produkt
   - bygger på brand/model/category + matchning mot title + kända brands

9. Radknappar
   - Add first brand
   - Delete brand
   - Set brand 2 first words
   - Se all from brand
   - Apply suggested brand
   - Use cleaned first brand

10. Bulk actions
   - markera valfria produkter
   - kör bulk add/delete/set custom/set 2 words/apply suggested brand

11. Rapportfil
   - varje körning sparar en textfil i samma katalog

Krav
----
- PHP 8.0+
- PDO MySQL aktiverat
- nätverksåtkomst till MySQL-servern

Start
-----
Lägg filerna i en katalog på din PHP-webbserver och öppna index.php.

Exempel med PHP:s inbyggda server:

  php -S 0.0.0.0:8080

Öppna sedan:

  http://localhost:8080/

Viktigt
-------
- Sidan kör riktiga UPDATE-kommandon direkt vid knapptryckning.
- Ta gärna backup på databasen först.
- Auto-brand fyller endast tomma brand-fält.
- Underpris-delen visas bara om pris-kolumn finns.

Anpassning
----------
Du kan ändra konstanterna högst upp i index.php:
- DB_HOSTS
- DB_PORT
- DB_USER
- DB_PASS
- DB_NAME
- DB_TABLE
- PER_PAGE
- JUNK_WORDS
#65

mysql_rule_updater.py

mysql_rule_updater_package.txt

Amazon / MySQL / Produktdata

Funktioner

  • Ingen separat funktionslista hittades – se originaltexten.

Filer / script

mysql_rule_updater.py

Flaggor

--asin--b--brand-csv--brand-list--check-brand-match--id--mode--only-empty--rule--set-category--set-first-word-as-brand--set-first-word-as-brand-only-empty--set-model
Visa original README-text
mysql_rule_updater.py
=====================

Ett Python-script för att uppdatera tabellen products i MySQL.

Standardanslutning
- host: linux1.local
- fallback host: 192.168.0.220
- user: amazon
- password: amazon
- database: amazon_products
- mode: view

Huvudfunktioner
- Uppdatera model/category via flera regler i samma körning
- Uppdatera brand om första ordet i title matchar angivet ord
- Stöd för flera --b samtidigt
- Läs brand-regler från TXT eller CSV
- Kontrollera om första ordet i title matchar brand
- Sätt första ordet i title som brand
- Filtrera på id, asin, brand-filter och title-search
- Sparar rapport till textfil

Krav
- Python 3.10+
- mysql-connector-python

Installera beroende
pip install mysql-connector-python

Exempel
1) Kontrollera mismatch mellan first word och brand:
python3 mysql_rule_updater.py --check-brand-match

2) Förhandsgranska brand-uppdatering för flera brands:
python3 mysql_rule_updater.py --b Bahco --b Makita --b DeWalt

3) Skriv till databasen:
python3 mysql_rule_updater.py --mode write --b Bahco --b Makita

4) Läs brand-regler från textfil:
python3 mysql_rule_updater.py --brand-list brands.txt

Exempel brands.txt:
Bahco
Makita
DeWalt|DeWalt
TP-Link|TP-Link

5) Läs brand-regler från CSV:
python3 mysql_rule_updater.py --brand-csv brands.csv

Exempel brands.csv:
first_word,brand_value,enabled
bahco,Bahco,1
makita,Makita,1
dewalt,DeWalt,1
tp-link,TP-Link,1

6) Sätt första ordet i title som brand, bara för tomma brand-fält:
python3 mysql_rule_updater.py --set-first-word-as-brand --set-first-word-as-brand-only-empty

7) Filtrera på ASIN eller ID:
python3 mysql_rule_updater.py --check-brand-match --asin B08ABC1234
python3 mysql_rule_updater.py --set-first-word-as-brand --id 123

8) Regeln för model/category:
python3 mysql_rule_updater.py \
  --rule "makita 18v|Makita 18V|Batteri|10|1" \
  --rule "bahco skiftnyckel|Bahco|Handverktyg|20|1" \
  --set-model --set-category --only-empty

Viktigt
- Default är view, alltså ingen data skrivs förrän du anger --mode write
- Brand-regler via --b / --brand-list / --brand-csv uppdaterar bara tomma brand-fält
- Scriptet kontrollerar anslutning, tabell och kolumner och rapporterar fel tydligt
#66

Image Downloader for Products

product_image_downloader.txt

Amazon / MySQL / Produktdata

Funktioner

  • Ingen separat funktionslista hittades – se originaltexten.

Filer / script

download_missing_images.py

Flaggor

Inga --flaggor hittade
Visa original README-text
Image Downloader for Products

This script downloads missing product images from the image_url field
and stores them in the images/ folder.

Database defaults:
host: localhost
database: amazon_products
user: amazon
password: amazon

Requirements:
pip install pymysql requests

Run:
python3 download_missing_images.py
#67

download_missing_images_v2

product_image_downloader_v2.txt

Amazon / MySQL / Produktdata

Funktioner

  • Ingen separat funktionslista hittades – se originaltexten.

Filer / script

download_missing_images_v2.py

Flaggor

--dry-run--limit--retries--workers
Visa original README-text
download_missing_images_v2

Detta paket innehåller en uppdaterad version som fungerar med Python 3.13+.

Krav:
pip install pymysql requests

Exempel:
python3 download_missing_images_v2.py
python3 download_missing_images_v2.py --dry-run
python3 download_missing_images_v2.py --limit 100
python3 download_missing_images_v2.py --workers 20
python3 download_missing_images_v2.py --retries 5
#68

IMAGE DOWNLOADER V3

product_image_downloader_v3_real.txt

Amazon / MySQL / Produktdata

Funktioner

  • Parallel downloads
  • Retry support
  • CLI sorting
  • Show requirements
  • Show priority rules

Filer / script

download_missing_images_v3.py

Flaggor

--show-priority--show-requirements
Visa original README-text
IMAGE DOWNLOADER V3

Features
--------
- Parallel downloads
- Retry support
- CLI sorting
- Show requirements
- Show priority rules

Install:

pip install pymysql requests

Run:

python download_missing_images_v3.py

Show requirements:

python download_missing_images_v3.py --show-requirements

Show priority:

python download_missing_images_v3.py --show-priority
#69

IMAGE DOWNLOADER V4 PRO

product_image_downloader_v4_pro.txt

Amazon / MySQL / Produktdata

Funktioner

  • Ingen separat funktionslista hittades – se originaltexten.

Filer / script

download_missing_images_v4_pro.py

Flaggor

--asin--brand--category--ignore-blacklist--limit--order-by--show-priority--show-requirements--workers
Visa original README-text
IMAGE DOWNLOADER V4 PRO

Nya funktioner
--------------
- statistik + progressbar
- skippar redan nedladdade bilder via hash
- filter: --brand, --category, --asin
- prioritera största prisfall
- cache + blacklist på trasiga URL:er

Installera:
pip install pymysql requests

Exempel:
python3 download_missing_images_v4_pro.py
python3 download_missing_images_v4_pro.py --show-requirements
python3 download_missing_images_v4_pro.py --show-priority
python3 download_missing_images_v4_pro.py --workers 20 --limit 200
python3 download_missing_images_v4_pro.py --brand "Bahco,Facom"
python3 download_missing_images_v4_pro.py --category "Handverktyg"
python3 download_missing_images_v4_pro.py --asin "B08ABC123,B09XYZ999"
python3 download_missing_images_v4_pro.py --order-by biggest_drop_desc
python3 download_missing_images_v4_pro.py --order-by percent_drop_desc
python3 download_missing_images_v4_pro.py --ignore-blacklist
#70

Python setup pack

python_setup_scripts_pack.txt

Verktyg / Backup / Setup

Funktioner

  • install_python_dev_env.sh -> Basinstallation
  • install_python_dev_env.txt -> Beskrivning av basinstallationen
  • python_dev_env_PRO.sh -> Mer komplett PRO-installation
  • python_dev_env_PRO.txt -> Beskrivning av PRO-installationen
  • ultimate_python_setup.sh -> Tung allt-i-ett-installation
  • ultimate_python_setup.txt -> Beskrivning av Ultimate-installationen
  • Välj install_python_dev_env.sh om du vill ha en lätt och stabil grund
  • Välj python_dev_env_PRO.sh om du ofta jobbar med databaser, scraping och export
  • Välj ultimate_python_setup.sh om du vill ha en så komplett miljö som möjligt direkt
  • Kör gärna ett script i taget
  • Skapa virtuella miljöer för projekt där det passar
  • På Ubuntu kan sudo-lösenord behövas under körning

Filer / script

Ingen .py-fil hittad i README

Flaggor

Inga --flaggor hittade
Visa original README-text
Python setup pack
=================

Innehåll:
- install_python_dev_env.sh      -> Basinstallation
- install_python_dev_env.txt     -> Beskrivning av basinstallationen
- python_dev_env_PRO.sh          -> Mer komplett PRO-installation
- python_dev_env_PRO.txt         -> Beskrivning av PRO-installationen
- ultimate_python_setup.sh       -> Tung allt-i-ett-installation
- ultimate_python_setup.txt      -> Beskrivning av Ultimate-installationen

Rekommendation:
- Välj install_python_dev_env.sh om du vill ha en lätt och stabil grund
- Välj python_dev_env_PRO.sh om du ofta jobbar med databaser, scraping och export
- Välj ultimate_python_setup.sh om du vill ha en så komplett miljö som möjligt direkt

Så använder du filerna:
1. Packa upp zip-filen
2. Gå till katalogen
3. Gör scriptet körbart, t.ex.:
   chmod +x install_python_dev_env.sh
4. Kör scriptet:
   ./install_python_dev_env.sh

Tips:
- Kör gärna ett script i taget
- Skapa virtuella miljöer för projekt där det passar
- På Ubuntu kan sudo-lösenord behövas under körning
#71

REMOVE_TEXT_HTML – ta bort text från HTML-filer (Python)

remove_text_html_tool.txt

HTML / Mallar / Kod

Funktioner

  • remove_text_html.py (huvudprogram)
  • README.txt (detta dokument)
  • README.html (samma info i HTML)
  • Python 3.9+ (rekommenderat 3.11+)
  • Inga externa bibliotek behövs

Filer / script

remove_text_html.py

Flaggor

--all--backup--dir--dry-run--file--regex--text
Visa original README-text
REMOVE_TEXT_HTML – ta bort text från HTML-filer (Python)

Datum: 2026-02-27

Innehåll i denna ZIP:
  - remove_text_html.py   (huvudprogram)
  - README.txt            (detta dokument)
  - README.html           (samma info i HTML)

Krav
  - Python 3.9+ (rekommenderat 3.11+)
  - Inga externa bibliotek behövs

Snabbstart
  1) Öppna en terminal i mappen där filerna ligger.
  2) Kör med -h för hjälp:
       python3 remove_text_html.py -h

Användning (vanligast)
  - En fil, ta bort exakt text (case-sensitive):
       python3 remove_text_html.py --file fil.html --text "bort det här"

  - Alla HTML-filer i en katalog (rekursivt):
       python3 remove_text_html.py --all --dir ./ --text "bort det här"

  - Testkörning (ändrar inget, visar vad som skulle ändras):
       python3 remove_text_html.py --all --dir ./ --text "bort det här" --dry-run

  - Skapa backup innan fil skrivs om:
       python3 remove_text_html.py --file fil.html --text "bort det här" --backup

Regex-läge (om du vill ta bort varianter)
  - En fil, ta bort med regex:
       python3 remove_text_html.py --file fil.html --regex "PATTERN"

  - Exempel: ta bort contentReference[oaicite:X]{index=Y} oavsett siffror:
       python3 remove_text_html.py --all --dir ./ --regex "contentReference\\[oaicite:\\d+\\]\\{index=\\d+\\}"

Tips
  - Kör alltid med --dry-run först när du kör --all.
  - Använd --backup när du gör massändringar.
  - Programmet försöker läsa UTF-8 men faller tillbaka till cp1252/latin-1 om det behövs.
#72

REMOVE_TEXT_HTML v3 PRO (Python)

remove_text_html_tool_v3_pro.txt

HTML / Mallar / Kod

Funktioner

  • remove_text_html.py (huvudprogram)
  • README.txt (detta dokument)
  • README.html (samma info i HTML)
  • Python 3.9+ (rekommenderat 3.11+)
  • Inga externa bibliotek
  • Ta bort exakt text:
  • Ta bort med regex:
  • Byt exakt text:
  • Byt med regex:
  • Alla .html/.htm rekursivt:
  • Begränsa filtyper:
  • Bearbeta bara filer som innehåller viss text:
  • Ord efter ändring:
  • Ord före/efter + diff:
  • Snabba SEO-mått per fil (title/meta/h1/canonical + ord):
  • Sätt/uppdatera canonical baserat på filens relativa sökväg:
  • Dry-run (ändrar inget):
  • Backup:

Filer / script

remove_text_html.py

Flaggor

--backup--base-url--change--change-regex--count--count-before-after--diff--dotall--dry-run--extensions--fix-canonical--ignore-case--log--only-if-contains--replace-from-file--report--seo-scan--strip-html--threads--undo
Visa original README-text
REMOVE_TEXT_HTML v3 PRO (Python)

Datum: 2026-02-27

Innehåll i ZIP:
  - remove_text_html.py   (huvudprogram)
  - README.txt            (detta dokument)
  - README.html           (samma info i HTML)

Krav
  - Python 3.9+ (rekommenderat 3.11+)
  - Inga externa bibliotek

Hjälp
  python3 remove_text_html.py -h

Grund (ta bort / byt)
  - Ta bort exakt text:
      python3 remove_text_html.py -f fil.html -t "bort det här"

  - Ta bort med regex:
      python3 remove_text_html.py -f fil.html -r "PATTERN" --ignore-case --dotall

  - Byt exakt text:
      python3 remove_text_html.py -f fil.html --change "gammal" "ny"

  - Byt med regex:
      python3 remove_text_html.py -f fil.html --change-regex "FROM_REGEX" "TO" --ignore-case

Batch (alla filer)
  - Alla .html/.htm rekursivt:
      python3 remove_text_html.py -a -d ./ -t "bort det här"

  - Begränsa filtyper:
      python3 remove_text_html.py -a -d ./ --extensions .html,.htm,.php -t "..."

  - Bearbeta bara filer som innehåller viss text:
      python3 remove_text_html.py -a -d ./ --only-if-contains "<h1" -t "..."

Ord-räkning
  - Ord efter ändring:
      python3 remove_text_html.py -f fil.html --count -t "..."

  - Ord före/efter + diff:
      python3 remove_text_html.py -f fil.html --count-before-after --strip-html -t "..."

SEO-scan
  - Snabba SEO-mått per fil (title/meta/h1/canonical + ord):
      python3 remove_text_html.py -a -d ./ --seo-scan --strip-html

Canonical-fix (valfritt)
  - Sätt/uppdatera canonical baserat på filens relativa sökväg:
      python3 remove_text_html.py -a -d ./ --fix-canonical --base-url "https://billigaverktyg.se" --backup

Säkerhet
  - Dry-run (ändrar inget):
      python3 remove_text_html.py -a -d ./ -t "..." --dry-run

  - Backup:
      python3 remove_text_html.py -a -d ./ -t "..." --backup

  - Undo:
      python3 remove_text_html.py -a -d ./ --undo

Rapporter
  - CSV-logg:
      python3 remove_text_html.py -a -d ./ -t "..." --log changes.csv

  - HTML-rapport:
      python3 remove_text_html.py -a -d ./ --seo-scan --strip-html --report report.html

Diff
  - Unified diff till terminal:
      python3 remove_text_html.py -f fil.html -t "..." --diff

Regler från JSON
  --replace-from-file rules.json
  Format (lista med objekt), exempel:

  [
    {"type":"remove","text":"contentReference[oaicite:2]{index=2}"},

    {"type":"remove","regex":"contentReference\\[oaicite:\\d+\\]\\{index=\\d+\\}","flags":"i s"},

    {"type":"change","from":"http://","to":"https://"},

    {"type":"change","regex":"href=\\"http://","to":"href=\"https://","flags":"i"}
  ]

Prestanda
  - Flera trådar:
      python3 remove_text_html.py -a -d ./ -t "..." --threads 4

Tips
  - Kör alltid --dry-run + --report innan du gör stora ändringar.
  - Använd --backup när du kör på många filer.
#73

SEO Audit Scan v7

seo_audit_scan_v7.txt

SEO / Crawl / Sitemap

Funktioner

  • Ingen separat funktionslista hittades – se originaltexten.

Filer / script

seo_audit_scan_v7.py

Flaggor

--crawl--file--max-pages--maxpagerank--maxscore--minpagerank--minscore--pagerankguide--recursive--same-domain-only
Visa original README-text
SEO Audit Scan v7
=================

Nyheter i v7
------------
- --minpagerank XX
- --maxpagerank XX
- --minscore XX
- --maxscore XX
- --pagerankguide

Det här gör v7
--------------
Programmet analyserar fortfarande alla sidor i körningen för att kunna räkna internlänkar och PageRank korrekt.
Men rapporterna kan nu filtreras så att bara sidor inom ett visst score/PageRank-intervall kommer med.

Exempel
-------
python seo_audit_scan_v7.py --file example_filelist.txt --minpagerank 20
python seo_audit_scan_v7.py --file example_filelist.txt --maxpagerank 60 --maxscore 90
python seo_audit_scan_v7.py --crawl https://example.com/ --max-pages 50 --same-domain-only --minscore 70 --pagerankguide
python seo_audit_scan_v7.py ./site/ --recursive --minpagerank 15 --maxpagerank 75 --minscore 50 --maxscore 95 --pagerankguide

Viktigt
-------
- Historik-CSV sparar fortfarande alla analyserade sidor, inte bara rapporturvalet.
- Rapporten visar vilka sidor som exkluderades av filter.
- PageRank-guiden bygger på hela det analyserade klustret, inte bara rapporturvalet.
#74

v8.1 adds --img-missing-only with hero AI prompt

seo_audit_scan_v8_1.txt

SEO / Crawl / Sitemap

Funktioner

  • Ingen separat funktionslista hittades – se originaltexten.

Filer / script

Ingen .py-fil hittad i README

Flaggor

--img-missing-only
Visa original README-text
v8.1 adds --img-missing-only with hero AI prompt
#75

SEO AUDIT TOOL v1.0 — README

seo_audit_v1.txt

SEO / Crawl / Sitemap

Funktioner

  • requests — HTTP-hämtning med retry-stöd
  • beautifulsoup4 — HTML-parsning
  • lxml — Snabb XML/HTML-parser (backend till BeautifulSoup)
  • rich — Färgad terminaloutput (VALFRITT — fungerar utan)

Filer / script

seo_audit.py

Flaggor

--check-links--csv--help--json--limit--list--max-bytes--max-links-check--no-html--no-json--outdir--respect-robots--retries--sitemap--sleep--timeout--url-flag--user-agent--verbose--version
Visa original README-text
================================================================================
  SEO AUDIT TOOL v1.0 — README
  Ett komplett SEO-analysverktyg för teknisk + on-page analys
================================================================================

INNEHÅLL
--------
  1. Krav & Installation
  2. Snabbstart
  3. Alla kommandoradsargument
  4. Output-filer
  5. Poängsystem
  6. Vad analyseras
  7. Felsökning
  8. Exempel på urls.txt


================================================================================
1. KRAV & INSTALLATION
================================================================================

Python-version: 3.10 eller senare (rekommenderas: 3.11+)

Installera beroenden med pip:

    pip install requests beautifulsoup4 lxml rich

  • requests       — HTTP-hämtning med retry-stöd
  • beautifulsoup4 — HTML-parsning
  • lxml           — Snabb XML/HTML-parser (backend till BeautifulSoup)
  • rich           — Färgad terminaloutput (VALFRITT — fungerar utan)

Kontrollera att Python är installerat:

    python --version
    python -m pip --version

Om du använder Windows och får "python not found", prova:

    py seo_audit.py https://example.com/


================================================================================
2. SNABBSTART
================================================================================

Analysera en enda URL:
    python seo_audit.py https://billigaverktyg.se/

Analysera med anpassad utmapp:
    python seo_audit.py https://billigaverktyg.se/ -o mina_rapporter/

Analysera flera URL:er från fil:
    python seo_audit.py --list urls.txt -o rapporter/ --csv

Analysera via sitemap:
    python seo_audit.py --sitemap https://billigaverktyg.se/sitemap.xml --limit 50

Med utökad loggning:
    python seo_audit.py https://billigaverktyg.se/ --verbose

Med länkkontroll (kollar om länkar är brutna):
    python seo_audit.py https://billigaverktyg.se/ --check-links

Generera om rapport från sparad JSON (ingen ny hämtning):
    python seo_audit.py --json rapporter/data_billigaverktyg_se_abc123.json


================================================================================
3. ALLA KOMMANDORADSARGUMENT
================================================================================

URL-KÄLLOR (välj en eller kombinera):
  url                     Positional — en URL direkt efter programnamnet
  -u / --url-flag URL     Samma som ovan men med flagga
  --list / -list FILE     Textfil med en URL per rad
  --sitemap URL           Hämta och analysera URL:er från sitemap.xml
  --limit N               Max antal URL:er från sitemap (standard: 100)
  --json FILE             Läs in sparad JSON och generera om rapporten

OUTPUT:
  -o / --outdir DIR       Mapp för alla output-filer (standard: seo_reports/)
  --no-html               Skippa HTML-rapport, spara bara JSON
  --no-json               Skippa JSON, spara bara HTML-rapport
  --csv                   Exportera summary.csv med alla URL:er på en rad var

NÄTVERK:
  --timeout N             Timeout i sekunder per request (standard: 15)
  --retries N             Antal omförsök vid fel (standard: 2)
  --sleep N               Paus mellan requests i sekunder (standard: 0.5)
  -ua / --user-agent STR  Anpassad User-Agent-sträng
  --respect-robots        Respektera robots.txt (standard: av)
  --max-bytes N           Max sidstorlek i bytes (standard: 5 000 000 = 5 MB)

LÄNKKONTROLL:
  --check-links           Aktivera länkkontroll (gör HEAD-request på ett urval)
  --max-links-check N     Max antal länkar att kontrollera (standard: 30)

ÖVRIGT:
  -v / --verbose          Utförlig loggning i terminalen
  -h / --help             Visa hjälptext


================================================================================
4. OUTPUT-FILER
================================================================================

Alla filer sparas i utmappen (standard: seo_reports/).

  report_<slug>.html    — Interaktiv HTML-rapport med dark/light-läge
                          Innehåller: score, issues, tabbar för Meta / Headings /
                          Links / Images / Schema / Social / Content / Tracking /
                          Technical

  data_<slug>.json      — Rådata + analysresultat i JSON-format
                          Kan användas för vidare bearbetning eller för att
                          generera om rapporten utan ny hämtning

  summary.csv           — En rad per URL med alla nyckelvärden
                          (kräver --csv flaggan)

  index.html            — Översiktssida som listar alla rapporter
                          Går att filtrera på min-score och max-errors


================================================================================
5. POÄNGSYSTEM (0–100)
================================================================================

TOTALSCORE är summan av fem delkategorier:

  Teknisk (0–30)
  ├─ HTTPS/TLS                    (−8 om saknas)
  ├─ HTTP-statuskod               (−15 vid 5xx/404)
  ├─ Redirect-kedja               (−3 om >3 hopp)
  ├─ Mixed content                (−4 om HTTP-resurser på HTTPS-sida)
  ├─ HSTS-header                  (−2 om saknas)
  ├─ Komprimering (gzip/br)       (−2 om saknas)
  ├─ Svarstid                     (−1 till −3 om >1,5 s)
  ├─ Viewport meta                (−3 om saknas)
  └─ Charset-deklaration          (−1 om saknas)

  Indexering (0–20)
  ├─ Noindex                      (−10 om satt)
  ├─ Canonical saknas             (−5)
  ├─ Canonical pekar fel          (−3)
  ├─ Ogiltiga hreflang-värden     (−3)
  └─ lang-attribut saknas         (−2)

  On-page (0–30)
  ├─ Title saknas                 (−10)
  ├─ Title för kort (<30 tecken)  (−4)
  ├─ Title för lång (>65 tecken)  (−2)
  ├─ Meta description saknas      (−6)
  ├─ Meta description kort        (−2)
  ├─ H1 saknas                    (−6)
  ├─ Flera H1                     (−3)
  ├─ Tomma headings               (−2)
  ├─ Bilder saknar alt-text       (−1 till −4)
  └─ Brutna länkar                (−1 per länk, max −5)

  Innehåll (0–10)
  ├─ <100 ord                     (−5)
  └─ 100–299 ord                  (−2)

  Social/Schema (0–10)
  ├─ Inga OpenGraph-taggar        (−3)
  ├─ Saknade OG-taggar (3 st)     (−1 var)
  ├─ Inga Twitter Card-taggar     (−1)
  ├─ Ingen JSON-LD                (−2)
  └─ Ogiltig JSON-LD              (−3)

BETYGSSKALA:
  A  80–100   Utmärkt
  B  65–79    Bra
  C  50–64    Genomsnittligt
  D  35–49    Svagt
  F  0–34     Kritiskt

SVÅRIGHETSGRAD PÅ ISSUES:
  error   Allvarligt problem som bör åtgärdas omedelbart
  warn    Rekommenderad förbättring
  info    Tips och observationer


================================================================================
6. VAD ANALYSERAS PER URL
================================================================================

HTTP / NÄTVERK:
  • HTTP-statuskod och redirect-kedja (upp till 10 hopp)
  • Response headers: cache-control, content-type, server, HSTS, komprimering
  • HTTPS/TLS-användning
  • Mixed content (HTTP-resurser på HTTPS-sida)
  • X-Robots-Tag header
  • Svarstid i millisekunder

INDEXERING:
  • <meta name="robots"> + X-Robots-Tag (noindex, nofollow)
  • <link rel="canonical"> — saknas / self-canonical / pekar fel
  • hreflang — lista + formatvalidering (BCP 47)
  • lang-attribut på <html>
  • Charset-deklaration
  • Viewport meta

ON-PAGE SEO:
  • Title — text, längd i tecken, pixelapproximation (~7,5 px/tecken)
  • Meta description — text och längd
  • Headings H1–H6 — lista, antal H1, tomma headings, hierarki
  • Bilder — saknade alt, tomma alt, lazy loading, storlek
  • Interna/externa länkar — antal, nofollow/ugc/sponsored
  • Brutna länkar (valfritt, kräver --check-links)

INNEHÅLL:
  • Ordräkning (synlig text, script/style/nav/footer borttagna)
  • Top 20 ord med stopwords (svenska + engelska) borttagna
  • LIX-läsbarhetspoäng (skala: <25 Mycket lätt → >60 Mycket svårt)

STRUKTURERAD DATA:
  • Alla <script type="application/ld+json"> block
  • JSON-validering av varje block
  • Listning av @type (Article, Product, BreadcrumbList, Organization etc.)

SOCIAL MEDIA:
  • OpenGraph: og:title, og:description, og:image, og:url, m.fl.
  • Twitter Card: twitter:card, twitter:title, twitter:description, m.fl.

TRACKING-DETEKTION:
  • GA4 Measurement ID (G-XXXXXXXXXX) — söks i script src + inline
  • GTM Container ID (GTM-XXXXX)
  • Meta Pixel, Hotjar, Microsoft Clarity, Segment, Heap, Matomo m.fl.


================================================================================
7. FELSÖKNING
================================================================================

FEL: ModuleNotFoundError: No module named 'requests'
LÖSNING: pip install requests beautifulsoup4 lxml

FEL: pip not recognized
LÖSNING: Prova: py -m pip install requests beautifulsoup4 lxml

FEL: SSL-certifikatfel på en HTTPS-sida
INFO: Rapporten flaggar detta som ett tekniskt fel. Sidan kan fortfarande
      analyseras om --retries ökas.

FEL: Timeout
LÖSNING: Öka timeout: --timeout 30

FEL: Sidan blockerar boten
LÖSNING: Ange en browser User-Agent:
         -ua "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36"

OBS: Alla SEO-rekommendationer i rapporten är heuristiker baserade på
     branschpraxis. De är inga garantier för sökmotorranking.


================================================================================
8. EXEMPEL PÅ urls.txt
================================================================================

# Kommentarsrader ignoreras (börjar med #)
https://billigaverktyg.se/
https://billigaverktyg.se/om-oss
https://billigaverktyg.se/kontakt
https://billigaverktyg.se/kategori/borrmaskiner
https://billigaverktyg.se/kategori/skruvdragare


================================================================================
  SEO Audit Tool v1.0 — github.com/seoaudit
  Alla rekommendationer är heuristiker, inte garantier.
================================================================================
#76

Big J BV SEO Scanner — Web GUI

seo_audit_webgui.txt

SEO / Crawl / Sitemap

Funktioner

  • Ingen separat funktionslista hittades – se originaltexten.

Filer / script

app.pyseo_audit.py

Flaggor

Inga --flaggor hittade
Visa original README-text
Big J BV SEO Scanner — Web GUI
==============================

Det här är ett webbaserat GUI (Flask) som kör din befintliga seo_audit.py och sparar rapporter på disk.

Start (Ubuntu/Linux)
-------------------
1) Packa upp zippen
2) Skapa venv och installera deps:

   python3 -m venv .venv
   source .venv/bin/activate
   pip install -r requirements.txt

3) Starta webbappen:

   python app.py

4) Öppna:
   http://127.0.0.1:5055

Miljövariabler (valfritt)
------------------------
- BV_WEBGUI_BIND=0.0.0.0   (om du vill nå från andra datorer på LAN)
- BV_WEBGUI_PORT=5055
- BV_WEBGUI_DEBUG=1

Var sparas rapporterna?
----------------------
./reports/<run_id>/
- data_<url>.json
- report_<url>.html (full HTML-rapport från seo_audit.py)
- run_meta.json (metadata)

Tips
----
- "Checka länkar" gör extra HEAD-requests, kan vara segt på stora sidor.
- För att analysera många URL:er i bulk: kör original-scriptet i CLI-läge som vanligt.
#77

TRADERA SCRAPER v2

tradera_scraper_v2_only_json_js.txt

Scrapers / Nedladdning

Funktioner

  • Ingen separat funktionslista hittades – se originaltexten.

Filer / script

tradera_scraper_v2.py

Flaggor

--maxpages--maxpics--no-log--output--save-html--save-js--save-json
Visa original README-text
TRADERA SCRAPER v2
=================

Detta verktyg söker på Tradera och laddar ner bilder från annonser.
I v2 kan du även spara:
- HTML per annons (/html)
- JavaScript (externa .js + inline scripts) (/js)
- JSON separat (JSON-LD + heuristiskt extraherade JSON-block i scripts) (/json)
- Loggfil (scraper.log) + kör-rapport (run_report.json)

INSTALLATION
------------
1) Python 3.10+ rekommenderas
2) Installera dependencies:

    pip install requests beautifulsoup4

KÖRNING
--------
Bas:
    python tradera_scraper_v2.py snap-on

Med gränser:
    python tradera_scraper_v2.py snap-on --maxpics 200 --maxpages 10

Spara HTML + JS + JSON:
    python tradera_scraper_v2.py snap-on --save-html --save-js --save-json

Ange output-mapp:
    python tradera_scraper_v2.py snap-on --output C:/bilder/tradera

Stäng av loggfil:
    python tradera_scraper_v2.py snap-on --no-log

UTDATA
------
I output-mappen får du t.ex:

bilder/tradera_snap-on/
  tradera_00001.jpg
  tradera_00002.webp
  ...
  scraper.log              (om ej --no-log)
  run_report.json          (alltid)
  html/                    (om --save-html)
  js/                      (om --save-js)
  json/                    (om --save-json)

run_report.json innehåller per annons:
- url
- images_found
- images_saved
- artifacts { html, js[], json[] }

NOTIS
-----
- Scriptet gör enkla heuristiker för att hitta embedded JSON i scripts.
  Det fungerar ofta men är inte garanterat på alla sidor.
- Respektera Traderas villkor och robots.txt.
#78

WORDCOUNT CLI v3 ("allt")

wordcount_cli_v3.txt

Verktyg / Backup / Setup

Funktioner

  • Ingen separat funktionslista hittades – se originaltexten.

Filer / script

wordcount_cli.py

Flaggor

--bigrams--drop-numeric--drop-short--encoding-fallback--exclude-regex--include-regex--minhits--no-color--per-file--per-file-out--progress-every--recursive--report--report-out--stop-en--stop-file--stop-sv--top--topn--trigrams
Visa original README-text
WORDCOUNT CLI v3 ("allt")
=====================

Det här verktyget räknar ord/fraser i:
- en fil (-file)
- en CSV-kolumn (-file ... -column ...)
- ALLA CSV-filer i en katalog (-allcsv katalog)

NYTT i v3 (utöver v2)
--------------------
- --bigrams / --trigrams (n-grams, kanon för SEO-fraser)
- -outjson (export JSON)
- --per-file + --per-file-out (per-fil statistik vid -allcsv)
- --report + --report-out (ändringsrapport om du kör -append)
- --drop-short N (ta bort korta ord)
- --drop-numeric (ta bort rena siffror)
- Encoding auto-detect: -encoding auto + --encoding-fallback

Output
------
-outcsv  out.csv   -> CSV (word,count)
-outtxt  out.txt   -> TXT (word<TAB>count)
-outhtml out.html  -> HTML tabell (+ report-block om --report)
-outjson out.json  -> JSON list [{word,count}...]

Viktiga flaggor
---------------
Input:
  -file FIL
  -allcsv KATALOG

CSV:
  -column NAME
  -delimiter ";"

Encoding:
  -encoding auto
  -encoding utf-8
  --encoding-fallback "utf-8,utf-8-sig,cp1252,latin-1"

Stopwords:
  --stop-sv
  --stop-en
  --stop-file custom.txt

Filter:
  -minhits N
  --include-regex REGEX
  --exclude-regex REGEX
  --drop-short N
  --drop-numeric
  --topn N

N-grams:
  --bigrams
  --trigrams

ALLCSV extra:
  --recursive
  --per-file
  --per-file-out per_file_stats.json

Report:
  -append
  --report
  --report-out report.json

Visning:
  --top 20
  --progress-every 5
  --no-color

Exempel
-------
1) Räkna fraser (bigrams) i titles i alla CSV i katalogen:
  python wordcount_cli.py -allcsv ./csv --recursive -column title --bigrams --stop-sv --minhits 3 --topn 200 -outcsv bigrams.csv -outjson bigrams.json

2) Räkna trigrams i en fil och exkludera siffror:
  python wordcount_cli.py -file page.html --trigrams --drop-numeric --drop-short 3 --topn 100 -outcsv tri.csv -outhtml tri.html

3) ALLCSV med per-file stats:
  python wordcount_cli.py -allcsv ./csv --recursive -column title --per-file -outcsv out.csv

4) Kör append + report (för att se vad som förändrats jämfört med tidigare körning):
  python wordcount_cli.py -allcsv ./csv -column title -outcsv out.csv
  python wordcount_cli.py -allcsv ./csv -column title -outcsv out.csv -append --report -outhtml out.html

Tips
----
- Kör en första gång utan -append så du får en baseline.
- För SEO: kör --bigrams/--trigrams och kombinera med --stop-sv + --minhits.
- Vill du få "bara produktnamns-liknande" ord? använd --include-regex och --exclude-regex.

#79

WORDCOUNT v4 (CLI + Tkinter GUI)

wordcount_cli_v4.txt

Verktyg / Backup / Setup

Funktioner

  • Ingen separat funktionslista hittades – se originaltexten.

Filer / script

gui_tkinter.pywordcount_cli.pywordcount_core.py

Flaggor

--bigrams--drop-numeric--drop-short--exclude-regex--gui--include-regex--minhits--recursive--stop-sv--topn--trigrams
Visa original README-text
WORDCOUNT v4 (CLI + Tkinter GUI)
===========================

Det här är en uppgraderad version av wordcount-verktyget med:
- Full CLI: stopwords (sv/en), --include-regex/--exclude-regex, -minhits, --topn, bigrams/trigrams, per-file stats, export CSV/TXT/HTML/JSON
- Nytt: Tkinter-GUI (gui_tkinter.py)
- Nytt: --gui flagga i CLI (startar GUI)

Viktigt
-------
- CLI skriver bara om du anger -outcsv/-outtxt/-outhtml/-outjson.
- -append summerar med befintlig output (om den finns).
- GUI skriver bara om du anger output-filer (lämna fält tomt => inget skrivs).

Starta GUI
----------
1) Direkt:
   python gui_tkinter.py

2) Via CLI:
   python wordcount_cli.py --gui

CLI – Exempel
-------------
1) ALLCSV: bigrams från kolumn title (SEO-fraser)
  python wordcount_cli.py -allcsv ./csv --recursive -column title --bigrams --stop-sv --minhits 3 --topn 200 -outcsv bigrams.csv -outjson bigrams.json

2) Trigrams i en fil och exkludera siffror:
  python wordcount_cli.py -file page.html --trigrams --drop-numeric --drop-short 3 --topn 100 -outcsv tri.csv -outhtml tri.html

Filer
-----
- wordcount_core.py
- wordcount_cli.py
- gui_tkinter.py
- stopwords_sv.txt / stopwords_en.txt
- README.txt / README.html
#80

Zip Backup CLI v1.0

zip_backup_cli_v1.0.txt

Verktyg / Backup / Setup

Funktioner

  • zip_backup_cli.py -> originalfilen / CLI-programmet
  • web_gui.php -> PHP-webbgränssnitt för att köra programmet via webbsida
  • README.txt -> textversion av dokumentationen
  • README.html -> HTML-version av dokumentationen
  • incremental backup
  • exclude-regler
  • dry-run
  • progress bar
  • snapshots
  • deduplicering
  • kompression
  • kryptering
  • remote upload via scp/sftp
  • restore
  • verify
  • färgad output
  • statistik
  • loggfil

Filer / script

zip_backup_cli.py

Flaggor

--encrypt--exclude--help--incremental--input--noprint--output--password--progress--stats--target--zip
Visa original README-text
Zip Backup CLI v1.0
===================

Detta paket innehåller:
- zip_backup_cli.py  -> originalfilen / CLI-programmet
- web_gui.php        -> PHP-webbgränssnitt för att köra programmet via webbsida
- README.txt         -> textversion av dokumentationen
- README.html        -> HTML-version av dokumentationen

Funktioner
----------
Programmet går igenom alla underkataloger under --input och skapar en zip-fil per katalog.
Filnamnet blir:

    katalognamn_YYYY-MM-DD_HH-MM-SS.zip

Stöd finns för bland annat:
- incremental backup
- exclude-regler
- dry-run
- progress bar
- snapshots
- deduplicering
- kompression
- kryptering
- remote upload via scp/sftp
- restore
- verify
- färgad output
- statistik
- loggfil
- JSON-output
- config-fil
- SQLite-index
- watch-läge
- webhook alerts
- --noprint
- -h / --help

Grundkommando
-------------

    python3 zip_backup_cli.py --input /din/input --output /din/output

Exempel
-------

1. Enkel körning:
    python3 zip_backup_cli.py --input /data --output /backup

2. Med statistik och progress:
    python3 zip_backup_cli.py --input /data --output /backup --progress --stats

3. Inkrementell backup:
    python3 zip_backup_cli.py --input /data --output /backup --incremental

4. Exclude-regler:
    python3 zip_backup_cli.py --input /data --output /backup --exclude "*.tmp" --exclude ".cache"

5. Kryptering:
    python3 zip_backup_cli.py --input /data --output /backup --encrypt --password hemligt

6. Verify:
    python3 zip_backup_cli.py verify --zip /backup/snapshots/snapshot_x/minmapp_2026-03-08_12-00-00.zip

7. Restore:
    python3 zip_backup_cli.py restore --zip /backup/snapshots/snapshot_x/minmapp_2026-03-08_12-00-00.zip --target /restore

Cron-jobb
---------
Exempel som kör varje natt 02:15:

    15 2 * * * /usr/bin/python3 /var/www/html/zip_backup_cli.py --input /data --output /backup --incremental --stats --noprint

PHP GUI
-------
Lägg web_gui.php på din webbserver.
Justera gärna sökvägen till Python och till zip_backup_cli.py högst upp i filen.
GUI:t visar även färdigt kommandoförslag och cron-rad.

Valfria Python-paket
--------------------
För alla funktioner rekommenderas:

    pip install tqdm requests pyyaml paramiko cryptography

Obs
---
- Remote SCP/SFTP kräver paramiko.
- Kryptering kräver cryptography.
- YAML-config kräver pyyaml.
- Webhook kräver requests.