6

How can I view my reputation with a Command Prompt script?

(In reply to StackOverflow reputation using PowerShell, because I'm bored as hell.)

3 Answers 3

11
@echo off & setlocal
:: Supports curl, wget, plink, and nc

set SoUID=YOUR UID HERE
:: Example: set SoUID=49849
set SoHost=stackoverflow.com

set FlairPath=/users/flair/%SoUID%.json
set FlairURL=http://%SoHost%%FlairPath%
set TempTag=%SoHost%-%SoUID%-%random%
set TempFile=%TEMP%\%TempTag%.json
set Script=%TEMP%\%TempTag%.script
set RawOut=%TEMP%\%TempTag%.out

call :Check curl
if not "%App%"=="" "%App%" -o "%TempFile%" -s "%FlairURL%" & goto :Next

call :Check wget
if not "%App%"=="" "%App%" -O "%TempFile%" -q "%FlairURL%" & goto :Next

call :Check plink
if not "%App%"=="" call :MakeScript & "%App%" -raw %SoHost% -P 80 -batch  "%RawOut%" & goto :NextHdr

call :Check nc
if not "%App%"=="" call :MakeScript & "%App%" %SoHost% 80  "%RawOut%" & goto :NextHdr

>&2 echo curl, wget, plink or netcat not found. Downloading plink from PuTTY site.
set App=%TEMP%\plink.exe
call :Mirror ftp.chiark.greenend.org.uk /users/sgtatham/putty-latest/x86/plink.exe
if not exist "%App%" call :Mirror ftp.samurai.com /pub/putty/putty-latest/x86/plink.exe
if not exist "%App%" call :Mirror ftp.totem.fix.no /pub/mirrors/putty/putty-latest/x86/plink.exe
if not exist "%App%" call :Mirror ftp.ds5.agh.edu.pl /pub/putty/putty-latest/x86/plink.exe
if not exist "%App%" goto :NoApp
call :MakeScript & "%App%" -raw %SoHost% -P 80 -batch  "%RawOut%" & del "%App%" & goto :NextHdr
:Mirror
if exist "%App%" del "%App%"
> "%Script%" echo=lcd "%TEMP%"
>>"%Script%" echo=binary
>>"%Script%" echo=get %~2
>>"%Script%" echo=bye
ftp -s:"%Script%" -A -v -i %~1 > nul 2> nul
goto :EOF
:NextHdr
for /f "usebackq tokens=1,* delims=:" %%a in ("%RawOut%") do (
    if [%%a]==[{"id"] set Flair=%%a:%%b & del "%Script%" "%RawOut%" & goto :Next2
)
:NoApp
>&2 echo Giving up. & goto :EOF
:Next
if not exist "%TempFile%" echo Error downloading data. & goto :EOF
set /p Flair=&2 echo Something went bad.
) else (
    if "%SoName%"=="" (
        echo Your reputation is %SoReputation%.
    ) else (
        echo Reputation of %SoName% is %SoReputation%.
    )
)
goto :EOF
:Parse
if "%~1"=="" goto :EOF
set Line=%~1
shift
if /i "%Line:~0,11%"=="reputation:" (
    set SoReputation=%Line:~11%
    goto :Parse
)
if /i "%Line:~0,12%"=="displayName:" (
    set SoName=%Line:~12%
    goto :Parse
)
goto :Parse
:Check
set App=
for %%e in (%PATHEXT%) do for %%i in (%1%%e) do if NOT "%%~$PATH:i"=="" set App=%%~$PATH:i
goto :EOF
:MakeScript
> "%Script%" echo=GET %FlairPath% HTTP/1.1
>>"%Script%" echo=Host: %SoHost%
>>"%Script%" echo=Connection: close
>>"%Script%" echo=
goto :EOF
1
  • 2
    It is a very good example about how powershell improves windows command line scripts
    – eKek0
    Commented Jun 4, 2009 at 15:23
4

In a command prompt window type:

start iexplore http://stackoverflow.com/users/flair/{your UID here}.html
3
  • Except iexplore is not in the path by default. Commented Jun 4, 2009 at 16:23
  • 1
    It is on every windows box I have access to. XP, Vista, 2003, 7 Commented Jun 4, 2009 at 19:47
  • 3
    If iexplore is left out then it will open in the default browser, e.g. Opera or Firefox. Commented Sep 8, 2009 at 12:09
0

There is more elaborate data for users available via (JSON):

http://stackoverflow.com/users/rep/50475/2009-01-01/2009-01-31

You could get some interesting data by parsing that string. Jon Skeet uses that for his rep tracker.

Not the answer you're looking for? Browse other questions tagged or ask your own question.