feat(dataforth-dos): Add Video Analysis Agent and debug batch files
Video Analysis Agent (.claude/agents/video-analysis.md): - Frame extraction with ffmpeg - DOS console text recognition - Boot sequence documentation - Integration with Photo Agent and DOS Coding Agent Debug batch files for video recording: - ATESYNC-DEBUG.BAT: Orchestrator with PAUSE at each step - CTONW-DEBUG.BAT: Upload with 10 step-by-step pauses - NWTOC-DEBUG.BAT: Download with 11 step-by-step pauses Each step clearly labeled with ECHO for video analysis. Run ATESYNC-DEBUG TS-3R to capture boot process. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
129
projects/dataforth-dos/batch-files/ATESYNC-DEBUG.BAT
Normal file
129
projects/dataforth-dos/batch-files/ATESYNC-DEBUG.BAT
Normal file
@@ -0,0 +1,129 @@
|
||||
@ECHO OFF
|
||||
REM ATESYNC-DEBUG.BAT - ATE Sync with diagnostic pauses
|
||||
REM Version: 1.0 - Debug version for recording boot process
|
||||
REM Last modified: 2026-01-21
|
||||
REM
|
||||
REM This version pauses at each step for video recording
|
||||
|
||||
IF NOT "%1"=="" SET MACHINE=%1
|
||||
IF "%MACHINE%"=="" GOTO NO_MACHINE
|
||||
|
||||
ECHO.
|
||||
ECHO ==============================================================
|
||||
ECHO DEBUG MODE: ATESYNC
|
||||
ECHO ==============================================================
|
||||
ECHO.
|
||||
ECHO STEP 0: Machine name set
|
||||
ECHO MACHINE = %MACHINE%
|
||||
ECHO.
|
||||
ECHO Press any key to continue to Step 1...
|
||||
PAUSE
|
||||
|
||||
REM Verify T: drive
|
||||
ECHO.
|
||||
ECHO ==============================================================
|
||||
ECHO STEP 1: Checking T: drive
|
||||
ECHO ==============================================================
|
||||
IF NOT EXIST T:\*.* GOTO NO_DRIVE
|
||||
ECHO T: drive is accessible
|
||||
ECHO.
|
||||
ECHO Press any key to continue to Step 2...
|
||||
PAUSE
|
||||
|
||||
REM Check machine folder
|
||||
ECHO.
|
||||
ECHO ==============================================================
|
||||
ECHO STEP 2: Checking machine folder T:\%MACHINE%
|
||||
ECHO ==============================================================
|
||||
IF NOT EXIST T:\%MACHINE%\*.* GOTO CREATE_MACHINE
|
||||
ECHO Machine folder exists
|
||||
ECHO.
|
||||
ECHO Press any key to continue to Step 3...
|
||||
PAUSE
|
||||
GOTO START_SYNC
|
||||
|
||||
:CREATE_MACHINE
|
||||
ECHO Machine folder not found - creating...
|
||||
MD T:\%MACHINE%
|
||||
IF NOT EXIST T:\%MACHINE%\*.* GOTO MACHINE_ERROR
|
||||
MD T:\%MACHINE%\LOGS
|
||||
MD T:\%MACHINE%\LOGS\5BLOG
|
||||
MD T:\%MACHINE%\LOGS\7BLOG
|
||||
MD T:\%MACHINE%\LOGS\8BLOG
|
||||
MD T:\%MACHINE%\LOGS\DSCLOG
|
||||
MD T:\%MACHINE%\LOGS\HVLOG
|
||||
MD T:\%MACHINE%\LOGS\PWRLOG
|
||||
MD T:\%MACHINE%\LOGS\SCTLOG
|
||||
MD T:\%MACHINE%\LOGS\VASLOG
|
||||
MD T:\%MACHINE%\ProdSW
|
||||
MD T:\%MACHINE%\Reports
|
||||
ECHO Machine folder structure created
|
||||
ECHO.
|
||||
ECHO Press any key to continue to Step 3...
|
||||
PAUSE
|
||||
|
||||
:START_SYNC
|
||||
ECHO.
|
||||
ECHO ==============================================================
|
||||
ECHO STEP 3: Starting CTONW (Upload test results)
|
||||
ECHO ==============================================================
|
||||
ECHO About to call: CTONW-DEBUG.BAT
|
||||
ECHO.
|
||||
ECHO Press any key to run CTONW-DEBUG...
|
||||
PAUSE
|
||||
CALL CTONW-DEBUG.BAT
|
||||
ECHO.
|
||||
ECHO CTONW-DEBUG completed
|
||||
ECHO.
|
||||
ECHO Press any key to continue to Step 4...
|
||||
PAUSE
|
||||
|
||||
ECHO.
|
||||
ECHO ==============================================================
|
||||
ECHO STEP 4: Starting NWTOC (Download updates)
|
||||
ECHO ==============================================================
|
||||
ECHO About to call: NWTOC-DEBUG.BAT
|
||||
ECHO.
|
||||
ECHO Press any key to run NWTOC-DEBUG...
|
||||
PAUSE
|
||||
CALL NWTOC-DEBUG.BAT
|
||||
ECHO.
|
||||
ECHO NWTOC-DEBUG completed
|
||||
ECHO.
|
||||
ECHO Press any key to finish...
|
||||
PAUSE
|
||||
|
||||
ECHO.
|
||||
ECHO ==============================================================
|
||||
ECHO ATESYNC-DEBUG Complete: %MACHINE%
|
||||
ECHO ==============================================================
|
||||
ECHO.
|
||||
GOTO END
|
||||
|
||||
:NO_MACHINE
|
||||
ECHO.
|
||||
ECHO ==============================================================
|
||||
ECHO ERROR at STEP 0: MACHINE not set
|
||||
ECHO ==============================================================
|
||||
ECHO.
|
||||
ECHO Usage: ATESYNC-DEBUG TS-27
|
||||
PAUSE
|
||||
GOTO END
|
||||
|
||||
:NO_DRIVE
|
||||
ECHO.
|
||||
ECHO ==============================================================
|
||||
ECHO ERROR at STEP 1: T: drive not available
|
||||
ECHO ==============================================================
|
||||
PAUSE
|
||||
GOTO END
|
||||
|
||||
:MACHINE_ERROR
|
||||
ECHO.
|
||||
ECHO ==============================================================
|
||||
ECHO ERROR at STEP 2: Could not create machine folder
|
||||
ECHO ==============================================================
|
||||
PAUSE
|
||||
GOTO END
|
||||
|
||||
:END
|
||||
135
projects/dataforth-dos/batch-files/CTONW-DEBUG.BAT
Normal file
135
projects/dataforth-dos/batch-files/CTONW-DEBUG.BAT
Normal file
@@ -0,0 +1,135 @@
|
||||
@ECHO OFF
|
||||
REM CTONW-DEBUG.BAT - Upload with diagnostic pauses
|
||||
REM Version: 1.0 - Debug version for recording
|
||||
REM Last modified: 2026-01-21
|
||||
|
||||
ECHO.
|
||||
ECHO ==============================================================
|
||||
ECHO DEBUG: CTONW - Computer to Network Upload
|
||||
ECHO ==============================================================
|
||||
ECHO.
|
||||
|
||||
IF "%MACHINE%"=="" GOTO NO_MACHINE
|
||||
|
||||
ECHO CTONW Step 0: Verifying prerequisites
|
||||
ECHO MACHINE = %MACHINE%
|
||||
IF NOT EXIST T:\*.* GOTO NO_DRIVE
|
||||
ECHO T: drive OK
|
||||
IF NOT EXIST T:\%MACHINE%\*.* GOTO NO_FOLDER
|
||||
ECHO T:\%MACHINE% OK
|
||||
ECHO.
|
||||
PAUSE
|
||||
|
||||
IF NOT EXIST C:\ATE\*.* GOTO SKIP_ATE
|
||||
|
||||
ECHO.
|
||||
ECHO CTONW Step 1: Creating LOGS directories on T:\%MACHINE%\LOGS
|
||||
IF NOT EXIST T:\%MACHINE%\LOGS\*.* MD T:\%MACHINE%\LOGS
|
||||
IF NOT EXIST T:\%MACHINE%\LOGS\5BLOG\*.* MD T:\%MACHINE%\LOGS\5BLOG
|
||||
IF NOT EXIST T:\%MACHINE%\LOGS\7BLOG\*.* MD T:\%MACHINE%\LOGS\7BLOG
|
||||
IF NOT EXIST T:\%MACHINE%\LOGS\8BLOG\*.* MD T:\%MACHINE%\LOGS\8BLOG
|
||||
IF NOT EXIST T:\%MACHINE%\LOGS\DSCLOG\*.* MD T:\%MACHINE%\LOGS\DSCLOG
|
||||
IF NOT EXIST T:\%MACHINE%\LOGS\HVLOG\*.* MD T:\%MACHINE%\LOGS\HVLOG
|
||||
IF NOT EXIST T:\%MACHINE%\LOGS\PWRLOG\*.* MD T:\%MACHINE%\LOGS\PWRLOG
|
||||
IF NOT EXIST T:\%MACHINE%\LOGS\SCTLOG\*.* MD T:\%MACHINE%\LOGS\SCTLOG
|
||||
IF NOT EXIST T:\%MACHINE%\LOGS\VASLOG\*.* MD T:\%MACHINE%\LOGS\VASLOG
|
||||
ECHO Directories ready
|
||||
PAUSE
|
||||
|
||||
ECHO.
|
||||
ECHO CTONW Step 2: Uploading 5BLOG
|
||||
IF EXIST C:\ATE\5BLOG\*.DAT ECHO Found files in C:\ATE\5BLOG
|
||||
IF EXIST C:\ATE\5BLOG\*.DAT COPY C:\ATE\5BLOG\*.DAT T:\%MACHINE%\LOGS\5BLOG
|
||||
IF NOT EXIST C:\ATE\5BLOG\*.DAT ECHO No files in C:\ATE\5BLOG
|
||||
PAUSE
|
||||
|
||||
ECHO.
|
||||
ECHO CTONW Step 3: Uploading 7BLOG
|
||||
IF EXIST C:\ATE\7BLOG\*.DAT ECHO Found DAT files in C:\ATE\7BLOG
|
||||
IF EXIST C:\ATE\7BLOG\*.DAT COPY C:\ATE\7BLOG\*.DAT T:\%MACHINE%\LOGS\7BLOG
|
||||
IF EXIST C:\ATE\7BLOG\*.SHT ECHO Found SHT files in C:\ATE\7BLOG
|
||||
IF EXIST C:\ATE\7BLOG\*.SHT COPY C:\ATE\7BLOG\*.SHT T:\%MACHINE%\LOGS\7BLOG
|
||||
IF NOT EXIST C:\ATE\7BLOG\*.* ECHO No files in C:\ATE\7BLOG
|
||||
PAUSE
|
||||
|
||||
ECHO.
|
||||
ECHO CTONW Step 4: Uploading 8BLOG
|
||||
IF EXIST C:\ATE\8BLOG\*.DAT ECHO Found files in C:\ATE\8BLOG
|
||||
IF EXIST C:\ATE\8BLOG\*.DAT COPY C:\ATE\8BLOG\*.DAT T:\%MACHINE%\LOGS\8BLOG
|
||||
IF NOT EXIST C:\ATE\8BLOG\*.DAT ECHO No files in C:\ATE\8BLOG
|
||||
PAUSE
|
||||
|
||||
ECHO.
|
||||
ECHO CTONW Step 5: Uploading DSCLOG
|
||||
IF EXIST C:\ATE\DSCLOG\*.DAT ECHO Found files in C:\ATE\DSCLOG
|
||||
IF EXIST C:\ATE\DSCLOG\*.DAT COPY C:\ATE\DSCLOG\*.DAT T:\%MACHINE%\LOGS\DSCLOG
|
||||
IF NOT EXIST C:\ATE\DSCLOG\*.DAT ECHO No files in C:\ATE\DSCLOG
|
||||
PAUSE
|
||||
|
||||
ECHO.
|
||||
ECHO CTONW Step 6: Uploading HVLOG
|
||||
IF EXIST C:\ATE\HVLOG\*.DAT ECHO Found files in C:\ATE\HVLOG
|
||||
IF EXIST C:\ATE\HVLOG\*.DAT COPY C:\ATE\HVLOG\*.DAT T:\%MACHINE%\LOGS\HVLOG
|
||||
IF NOT EXIST C:\ATE\HVLOG\*.DAT ECHO No files in C:\ATE\HVLOG
|
||||
PAUSE
|
||||
|
||||
ECHO.
|
||||
ECHO CTONW Step 7: Uploading PWRLOG
|
||||
IF EXIST C:\ATE\PWRLOG\*.DAT ECHO Found files in C:\ATE\PWRLOG
|
||||
IF EXIST C:\ATE\PWRLOG\*.DAT COPY C:\ATE\PWRLOG\*.DAT T:\%MACHINE%\LOGS\PWRLOG
|
||||
IF NOT EXIST C:\ATE\PWRLOG\*.DAT ECHO No files in C:\ATE\PWRLOG
|
||||
PAUSE
|
||||
|
||||
ECHO.
|
||||
ECHO CTONW Step 8: Uploading SCTLOG
|
||||
IF EXIST C:\ATE\SCTLOG\*.DAT ECHO Found files in C:\ATE\SCTLOG
|
||||
IF EXIST C:\ATE\SCTLOG\*.DAT COPY C:\ATE\SCTLOG\*.DAT T:\%MACHINE%\LOGS\SCTLOG
|
||||
IF NOT EXIST C:\ATE\SCTLOG\*.DAT ECHO No files in C:\ATE\SCTLOG
|
||||
PAUSE
|
||||
|
||||
ECHO.
|
||||
ECHO CTONW Step 9: Uploading VASLOG
|
||||
IF EXIST C:\ATE\VASLOG\*.DAT ECHO Found files in C:\ATE\VASLOG
|
||||
IF EXIST C:\ATE\VASLOG\*.DAT COPY C:\ATE\VASLOG\*.DAT T:\%MACHINE%\LOGS\VASLOG
|
||||
IF NOT EXIST C:\ATE\VASLOG\*.DAT ECHO No files in C:\ATE\VASLOG
|
||||
PAUSE
|
||||
|
||||
ECHO.
|
||||
ECHO CTONW Step 10: Uploading Reports
|
||||
IF NOT EXIST T:\%MACHINE%\Reports\*.* MD T:\%MACHINE%\Reports
|
||||
IF EXIST C:\Reports\*.TXT ECHO Found TXT files in C:\Reports
|
||||
IF EXIST C:\Reports\*.TXT COPY C:\Reports\*.TXT T:\%MACHINE%\Reports
|
||||
IF NOT EXIST C:\Reports\*.TXT ECHO No TXT files in C:\Reports
|
||||
PAUSE
|
||||
|
||||
ECHO.
|
||||
ECHO ==============================================================
|
||||
ECHO CTONW-DEBUG Complete
|
||||
ECHO ==============================================================
|
||||
GOTO END
|
||||
|
||||
:SKIP_ATE
|
||||
ECHO.
|
||||
ECHO CTONW: No C:\ATE directory found - skipping upload
|
||||
PAUSE
|
||||
GOTO END
|
||||
|
||||
:NO_MACHINE
|
||||
ECHO.
|
||||
ECHO CTONW ERROR: MACHINE variable not set
|
||||
PAUSE
|
||||
GOTO END
|
||||
|
||||
:NO_DRIVE
|
||||
ECHO.
|
||||
ECHO CTONW ERROR: T: drive not available
|
||||
PAUSE
|
||||
GOTO END
|
||||
|
||||
:NO_FOLDER
|
||||
ECHO.
|
||||
ECHO CTONW ERROR: T:\%MACHINE% folder not found
|
||||
PAUSE
|
||||
GOTO END
|
||||
|
||||
:END
|
||||
133
projects/dataforth-dos/batch-files/NWTOC-DEBUG.BAT
Normal file
133
projects/dataforth-dos/batch-files/NWTOC-DEBUG.BAT
Normal file
@@ -0,0 +1,133 @@
|
||||
@ECHO OFF
|
||||
REM NWTOC-DEBUG.BAT - Download with diagnostic pauses
|
||||
REM Version: 1.0 - Debug version for recording
|
||||
REM Last modified: 2026-01-21
|
||||
|
||||
ECHO.
|
||||
ECHO ==============================================================
|
||||
ECHO DEBUG: NWTOC - Network to Computer Download
|
||||
ECHO ==============================================================
|
||||
ECHO.
|
||||
|
||||
ECHO NWTOC Step 0: Verifying prerequisites
|
||||
IF NOT EXIST T:\*.* GOTO NO_DRIVE
|
||||
ECHO T: drive OK
|
||||
IF NOT EXIST T:\COMMON\ProdSW\*.* GOTO NO_COMMON
|
||||
ECHO T:\COMMON\ProdSW OK
|
||||
ECHO.
|
||||
PAUSE
|
||||
|
||||
ECHO.
|
||||
ECHO NWTOC Step 1: Creating local directories
|
||||
IF NOT EXIST C:\BAT\*.* MD C:\BAT
|
||||
ECHO C:\BAT ready
|
||||
IF NOT EXIST C:\ATE\*.* MD C:\ATE
|
||||
ECHO C:\ATE ready
|
||||
IF NOT EXIST C:\ATE\5BDATA\*.* MD C:\ATE\5BDATA
|
||||
IF NOT EXIST C:\ATE\7BDATA\*.* MD C:\ATE\7BDATA
|
||||
IF NOT EXIST C:\ATE\8BDATA\*.* MD C:\ATE\8BDATA
|
||||
IF NOT EXIST C:\ATE\DSCDATA\*.* MD C:\ATE\DSCDATA
|
||||
IF NOT EXIST C:\ATE\HVDATA\*.* MD C:\ATE\HVDATA
|
||||
IF NOT EXIST C:\ATE\PWRDATA\*.* MD C:\ATE\PWRDATA
|
||||
IF NOT EXIST C:\ATE\RMSDATA\*.* MD C:\ATE\RMSDATA
|
||||
IF NOT EXIST C:\ATE\SCTDATA\*.* MD C:\ATE\SCTDATA
|
||||
ECHO C:\ATE subfolders ready
|
||||
IF NOT EXIST C:\NET\*.* MD C:\NET
|
||||
ECHO C:\NET ready
|
||||
PAUSE
|
||||
|
||||
ECHO.
|
||||
ECHO NWTOC Step 2: Downloading batch files to C:\BAT
|
||||
IF EXIST T:\COMMON\ProdSW\*.BAT ECHO Found BAT files in T:\COMMON\ProdSW
|
||||
COPY T:\COMMON\ProdSW\*.BAT C:\BAT
|
||||
PAUSE
|
||||
|
||||
ECHO.
|
||||
ECHO NWTOC Step 3: Downloading 5BDATA
|
||||
IF EXIST T:\Ate\ProdSW\5BDATA\*.* ECHO Found files in T:\Ate\ProdSW\5BDATA
|
||||
IF EXIST T:\Ate\ProdSW\5BDATA\*.* COPY T:\Ate\ProdSW\5BDATA\*.* C:\ATE\5BDATA
|
||||
IF NOT EXIST T:\Ate\ProdSW\5BDATA\*.* ECHO No files in T:\Ate\ProdSW\5BDATA
|
||||
PAUSE
|
||||
|
||||
ECHO.
|
||||
ECHO NWTOC Step 4: Downloading 7BDATA
|
||||
IF EXIST T:\Ate\ProdSW\7BDATA\*.* ECHO Found files in T:\Ate\ProdSW\7BDATA
|
||||
IF EXIST T:\Ate\ProdSW\7BDATA\*.* COPY T:\Ate\ProdSW\7BDATA\*.* C:\ATE\7BDATA
|
||||
IF NOT EXIST T:\Ate\ProdSW\7BDATA\*.* ECHO No files in T:\Ate\ProdSW\7BDATA
|
||||
PAUSE
|
||||
|
||||
ECHO.
|
||||
ECHO NWTOC Step 5: Downloading 8BDATA
|
||||
IF EXIST T:\Ate\ProdSW\8BDATA\*.* ECHO Found files in T:\Ate\ProdSW\8BDATA
|
||||
IF EXIST T:\Ate\ProdSW\8BDATA\*.* COPY T:\Ate\ProdSW\8BDATA\*.* C:\ATE\8BDATA
|
||||
IF NOT EXIST T:\Ate\ProdSW\8BDATA\*.* ECHO No files in T:\Ate\ProdSW\8BDATA
|
||||
PAUSE
|
||||
|
||||
ECHO.
|
||||
ECHO NWTOC Step 6: Downloading DSCDATA
|
||||
IF EXIST T:\Ate\ProdSW\DSCDATA\*.* ECHO Found files in T:\Ate\ProdSW\DSCDATA
|
||||
IF EXIST T:\Ate\ProdSW\DSCDATA\*.* COPY T:\Ate\ProdSW\DSCDATA\*.* C:\ATE\DSCDATA
|
||||
IF NOT EXIST T:\Ate\ProdSW\DSCDATA\*.* ECHO No files in T:\Ate\ProdSW\DSCDATA
|
||||
PAUSE
|
||||
|
||||
ECHO.
|
||||
ECHO NWTOC Step 7: Downloading HVDATA
|
||||
IF EXIST T:\Ate\ProdSW\HVDATA\*.* ECHO Found files in T:\Ate\ProdSW\HVDATA
|
||||
IF EXIST T:\Ate\ProdSW\HVDATA\*.* COPY T:\Ate\ProdSW\HVDATA\*.* C:\ATE\HVDATA
|
||||
IF NOT EXIST T:\Ate\ProdSW\HVDATA\*.* ECHO No files in T:\Ate\ProdSW\HVDATA
|
||||
PAUSE
|
||||
|
||||
ECHO.
|
||||
ECHO NWTOC Step 8: Downloading PWRDATA
|
||||
IF EXIST T:\Ate\ProdSW\PWRDATA\*.* ECHO Found files in T:\Ate\ProdSW\PWRDATA
|
||||
IF EXIST T:\Ate\ProdSW\PWRDATA\*.* COPY T:\Ate\ProdSW\PWRDATA\*.* C:\ATE\PWRDATA
|
||||
IF NOT EXIST T:\Ate\ProdSW\PWRDATA\*.* ECHO No files in T:\Ate\ProdSW\PWRDATA
|
||||
PAUSE
|
||||
|
||||
ECHO.
|
||||
ECHO NWTOC Step 9: Downloading RMSDATA
|
||||
IF EXIST T:\Ate\ProdSW\RMSDATA\*.* ECHO Found files in T:\Ate\ProdSW\RMSDATA
|
||||
IF EXIST T:\Ate\ProdSW\RMSDATA\*.* COPY T:\Ate\ProdSW\RMSDATA\*.* C:\ATE\RMSDATA
|
||||
IF NOT EXIST T:\Ate\ProdSW\RMSDATA\*.* ECHO No files in T:\Ate\ProdSW\RMSDATA
|
||||
PAUSE
|
||||
|
||||
ECHO.
|
||||
ECHO NWTOC Step 10: Downloading SCTDATA
|
||||
IF EXIST T:\Ate\ProdSW\SCTDATA\*.* ECHO Found files in T:\Ate\ProdSW\SCTDATA
|
||||
IF EXIST T:\Ate\ProdSW\SCTDATA\*.* COPY T:\Ate\ProdSW\SCTDATA\*.* C:\ATE\SCTDATA
|
||||
IF NOT EXIST T:\Ate\ProdSW\SCTDATA\*.* ECHO No files in T:\Ate\ProdSW\SCTDATA
|
||||
PAUSE
|
||||
|
||||
ECHO.
|
||||
ECHO NWTOC Step 11: Checking for network client updates
|
||||
IF NOT EXIST T:\COMMON\NET\*.* GOTO SKIP_NET
|
||||
ECHO Found files in T:\COMMON\NET
|
||||
COPY T:\COMMON\NET\*.* C:\NET
|
||||
ECHO Network files copied
|
||||
PAUSE
|
||||
GOTO DONE
|
||||
|
||||
:SKIP_NET
|
||||
ECHO No network updates in T:\COMMON\NET
|
||||
PAUSE
|
||||
|
||||
:DONE
|
||||
ECHO.
|
||||
ECHO ==============================================================
|
||||
ECHO NWTOC-DEBUG Complete
|
||||
ECHO ==============================================================
|
||||
GOTO END
|
||||
|
||||
:NO_DRIVE
|
||||
ECHO.
|
||||
ECHO NWTOC ERROR: T: drive not available
|
||||
PAUSE
|
||||
GOTO END
|
||||
|
||||
:NO_COMMON
|
||||
ECHO.
|
||||
ECHO NWTOC ERROR: T:\COMMON\ProdSW not found
|
||||
PAUSE
|
||||
GOTO END
|
||||
|
||||
:END
|
||||
Reference in New Issue
Block a user