StackOverflow omdømme ved hjælp af Windows Command Prompt (cmd.exe)

Indlæg af Hanne Mølgaard Plasc

Problem



Hvordan kan jeg se mit ry med et kommandoprompt script?


(Som svar på StackOverflows omdømme ved hjælp af PowerShell, fordi jeg keder mig som helvede.)

Bedste reference


@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

Andre referencer 1


I en kommandoprompt vindue type:


start iexplore http://stackoverflow.com/users/flair/{your UID here}.html

Andre referencer 2


Der findes mere detaljerede data for brugere, der er tilgængelige via (JSON):


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


Du kan få nogle interessante data ved at analysere den pågældende streng. Jon Skeet bruger det til sin rep tracker. [5]