Linux-only terminal application with a Bash TUI and Playwright helpers for:
- preparing a legal report from a local template
- filling the related browser flow
- storing sender profiles
- tracking local report history
- checking the public status of reported accounts over time
The project has three layers:
-
report.shMain text UI. It handles menus, profiles, input, progress bars, summaries, and local history. -
config/report.jsonBase legal template. It contains the fields used to build the request payload: country, issue type, legal references, and explanation text. -
scripts/*.mjsNode/Playwright scripts for browser automation:assist.mjs: main form-completion flowcheck-profile-status.mjs: public account-status check used byReport List
In practice:
- choose or create a sender configuration
- enter the
Profile URL - optionally add post links
- the script generates both text and JSON report artifacts
- the Playwright flow starts
- the result is recorded in local history
Report Listcan later check whether the target profile is still publicly available
- Linux
bash- Node.js
18+ npm- a supported browser available in
PATH
Supported browsers:
chromiumchromium-browsergoogle-chromegoogle-chrome-stablemicrosoft-edgemicrosoft-edge-stable
Optional:
PLAYWRIGHT_BROWSER_PATHto explicitly set the browser executable
npm install
chmod +x ./report.shRun:
./report.shOr:
npm run startOn startup, the TUI home screen exposes three sections:
New ReportReport ListConfiguration
Main controls:
UP/DOWN/LEFT/RIGHTto navigateENTERto confirmCTRL+Hto return to the home screen
This section manages saved sender profiles.
Each configuration contains:
First NameLast NameEmail
Signature is generated automatically as:
First Name Last Name
For each profile you can:
- edit it
- delete it
- activate/deactivate it
If a profile is marked as active, New Report uses it directly without asking you to choose one manually.
Flow:
- use the active profile, or ask you to choose a configuration
- request the
Profile URL - request optional
Post Links - build the local report artifacts
- start the browser automation
- show the progress bar
- save the history entry and open the final summary screen
Runtime output files:
out/legal-report.txtout/legal-report.jsonout/assist.logout/assist-sent.pngout/assist-submit-map.json
This section shows reports stored locally in data/reports.json.
Each card displays:
- reported account
- account status
- local date/time of the request
Displayed states:
LoadingPendingBanned
Logic:
- when entering
Report List, the script checks the visible profiles Refreshre-checks only the selected account- the check is performed by
scripts/check-profile-status.mjs
-
report.shBash TUI entry point -
scripts/assist.mjsPlaywright script for the main browser flow -
scripts/check-profile-status.mjsPlaywright script used to verify whether a profile is still publicly available -
config/report.jsonBase legal template used to build the request -
assets/ASCII art and TUI assets
These files are created locally and are not intended for publishing:
config/profiles.jsondata/reports.jsonout/screenshots/
The project builds the request starting from config/report.json.
Current values:
{
"country": "Italy",
"legalIssue": "OtherTDR_Select",
"specificLawUrl": "https://www.normattiva.it/uri-res/N2Ls?urn:nir:stato:legge:1952;645~art4",
"officialEntryUrl": "https://help.instagram.com/contact/406206379945942",
"referenceDocuments": [
"https://www.normattiva.it/uri-res/N2Ls?urn:nir:stato:legge:1952;645~art4"
]
}-
official form / entrypoint:
https://help.instagram.com/contact/406206379945942 -
main legal reference:
https://www.normattiva.it/uri-res/N2Ls?urn:nir:stato:legge:1952;645~art4 -
reference document included in the request:
https://www.normattiva.it/uri-res/N2Ls?urn:nir:stato:legge:1952;645~art4
The current base text used in the why field is:
Ritengo che il contenuto segnalato violi la normativa italiana vigente in materia di apologia del fascismo, in particolare la Legge 20 giugno 1952, n. 645 (Legge Scelba), art. 4.
Ai sensi di tale disposizione, e' punito chiunque:
faccia propaganda per la costituzione di movimenti aventi finalita' fasciste;
oppure esalti pubblicamente esponenti, principi, fatti o metodi del fascismo o le sue finalita' antidemocratiche.
Nel contenuto segnalato si riscontrano elementi riconducibili a tali condotte, in quanto:
vengono presentati e/o valorizzati aspetti ideologici, simbolici o storici legati al fascismo;
tali contenuti risultano idonei a configurare una forma di esaltazione pubblica di un'ideologia vietata dall'ordinamento italiano.
Si evidenzia inoltre che:
la stessa legge prevede un aggravamento della pena quando tali condotte avvengono tramite mezzi di diffusione pubblica, come internet e social media.
Per completezza, si richiama anche il contesto costituzionale:
la XII disposizione transitoria e finale della Costituzione italiana vieta la riorganizzazione del partito fascista, principio attuato proprio dalla Legge Scelba.
Alla luce di quanto sopra, il contenuto segnalato appare potenzialmente in violazione della normativa italiana e merita una valutazione approfondita ai fini della sua rimozione.
The final payload contains:
- country:
Italy - legal issue:
OtherTDR_Select - main legal reference URL
- explanation text (
why) - reported profile URL
- attached post URLs
Generated artifacts:
-
legal-report.txthuman-readable version of the report -
legal-report.jsonJSON payload consumed by the browser scripts
npm run start
npm run assist
npm run check-statusAdvanced direct usage:
-
npm run assistrunsscripts/assist.mjsdirectly -
npm run check-statusrunsscripts/check-profile-status.mjsdirectly
- the project is prepared for Linux
- sender local data and report history are intentionally excluded from publishing
- if no browser is found, set
PLAYWRIGHT_BROWSER_PATH - if the profile is the only URL provided, the script still warns that some flows may prefer direct content URLs