@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
grawity
source share