From 733450ed8b524585b8a7699ddf0172fc8d2be24b Mon Sep 17 00:00:00 2001 From: MadMakz Date: Fri, 21 Sep 2012 14:06:28 +0200 Subject: [PATCH] First working version Still needs some input validation and the "INFO" panel might not be final --- SMACheck.au3 | 50 +++++++++++++++++++++------------- SMACheck.kxf | 16 +++++++++++ includes/functions.inc.au3 | 36 ++++++++++++++++++++++++ resources/gfx/placeholder.ico | Bin 0 -> 32206 bytes 4 files changed, 83 insertions(+), 19 deletions(-) create mode 100644 resources/gfx/placeholder.ico diff --git a/SMACheck.au3 b/SMACheck.au3 index b451928..81136c3 100644 --- a/SMACheck.au3 +++ b/SMACheck.au3 @@ -12,13 +12,13 @@ ;#AutoIt3Wrapper_Res_ProductVersion=x.x.x.x ; Broken, use #AutoIt3Wrapper_Res_Field=ProductVersion|x.x.x as workarround. #AutoIt3Wrapper_Res_Field=ProductVersion|Freeware -#AutoIt3Wrapper_Res_Fileversion=1.0.0.1 +#AutoIt3Wrapper_Res_Fileversion=1.0.0.3 #AutoIt3Wrapper_Res_FileVersion_AutoIncrement=P ;(Y/N/P) AutoIncrement FileVersion After Aut2EXE is finished. default=N. P=Prompt, Will ask at Compilation time if you want to increase the versionnumber #AutoIt3Wrapper_Res_Language=1031 ;Resource Language code . german = 1031, english (U.S.) = 1033. default 2057=English (United Kingdom). For a List see http://technet.microsoft.com/en-us/library/dd346950.aspx #AutoIt3Wrapper_OutFile=..\..\COMPILED\SMACheck.exe #AutoIt3Wrapper_OutFile_X64=..\..\COMPILED\SMACheck_x64.exe -#AutoIt3Wrapper_Icon=.\src\ico\SMACheck.ico +#AutoIt3Wrapper_Icon=.\resources\gfx\placeholder.ico #AutoIt3Wrapper_Res_Field=OriginalFileName|SMACheck.exe ;#AutoIt3Wrapper_res_file_add=I:\SVN\_Mercurial\ZNC Tool\src\bg.jpg, rt_rcdata, img_bg; http://www.autoitscript.com/forum/topic/51103-resources-udf/ @@ -33,27 +33,39 @@ ;############################################################################################ +Global $VERSION = "1.0.0 alpha 1" + +#NoTrayIcon + #include <_XMLDomWrapper.au3> #include +#include +#include +#include +#include +#include #include "includes/functions.inc.au3" -Global $oXML = ObjCreate("Microsoft.XMLHTTP") -$oXML.Open("GET", "http://api.smacbans.com/xml/getbanninfo_multiple/STEAM_0:0:34038101/", 0) -$oXML.Send -Global $sFile = _TempFile(@TempDir, '~', '.xml') -FileWrite($sFile, $oXML.responseText) +;; GUi +$GUi = GUICreate("SMACheck", 370, 177, 353, 206) +$gTitle = GUICtrlCreateLabel("SMACheck", 0, 0, 369, 52, $SS_CENTER) +GUICtrlSetFont(-1, 30, 400, 0, "Tahoma") +$gSteamID = GUICtrlCreateInput("", 112, 64, 145, 21, BitOR($GUI_SS_DEFAULT_INPUT,$ES_CENTER)) +$gButton_Submit = GUICtrlCreateButton("Check", 144, 104, 83, 25, $BS_CENTER) +$gCopyright = GUICtrlCreateLabel("©2012 SMACbans.com && SpiffyTek", 0, 159, 369, 17, $SS_CENTER) +GUICtrlSetFont(-1, 8, 400, 0, "Tahoma") +$gVersion = GUICtrlCreateLabel("v" & $VERSION, 280, 30, 82, 17) +GUISetState(@SW_SHOW) -If _XMLFileOpen($sFile) Then - Global $pStatus = _XMLGetValue('/isbanned/singleBan/status') -EndIf -If $pStatus[1] = "Y" Then - Global $bReason = _XMLGetValue('/isbanned/singleBan/reason') - Global $bNick = _XMLGetValue('/isbanned/singleBan/nickname') - Global $bTime = _XMLGetValue('/isbanned/singleBan/banTime') -EndIf - -MsgBox(64, "INFO", $pStatus[1] & @LF & $bTime[1] & @LF & $bReason[1] & @LF & $bNick[1]) - -FileDelete($sFile) \ No newline at end of file +While 1 + $nMsg = GUIGetMsg() + Switch $nMsg + Case $GUI_EVENT_CLOSE + Exit + Case $gButton_Submit + $iSteamID = GUICtrlRead($gSteamID) + _GetStatusFromSMACb($iSteamID) + EndSwitch +WEnd \ No newline at end of file diff --git a/SMACheck.kxf b/SMACheck.kxf index a94fa04..2ccbec9 100644 --- a/SMACheck.kxf +++ b/SMACheck.kxf @@ -102,5 +102,21 @@ + + + 280 + 30 + 82 + 17 + alCustom + v1.0.0 + 4 + False + 1342308608 + 0 + + + + \ No newline at end of file diff --git a/includes/functions.inc.au3 b/includes/functions.inc.au3 index 11cb9bf..39acfed 100644 --- a/includes/functions.inc.au3 +++ b/includes/functions.inc.au3 @@ -1,3 +1,39 @@ +;; SMAC XML APi +Func _GetStatusFromSMACb($steamid) + Global $oXML = ObjCreate("Microsoft.XMLHTTP") + $oXML.Open("GET", "http://api.smacbans.com/xml/getbanninfo_multiple/" & $steamid & "/", 0) + $oXML.Send + + Global $sFile = _TempFile(@TempDir, '~', '.xml') + FileWrite($sFile, $oXML.responseText) + + If _XMLFileOpen($sFile) Then + Global $pStatus = _XMLGetValue('/isbanned/singleBan/status') + EndIf + + If $pStatus[1] = "Y" Then + Local $bReason = _XMLGetValue('/isbanned/singleBan/reason') + Local $bNick = _XMLGetValue('/isbanned/singleBan/nickname') + Local $bTime = _XMLGetValue('/isbanned/singleBan/banTime') + EndIf + + FileDelete($sFile) + + + If $pStatus[1] = "Y" Then + Local $oStatus = "SteamID is Banned" + MsgBox(64, "INFO", "Status: " & $oStatus & @LF & "Nick: " & $bNick[1] & @LF & "Reason: " & $bReason[1] & @LF & "Time: " & $bTime[1]) + Else + Local $oStatus = "SteamID is not banned" + MsgBox(64, "INFO", "Status: " & $oStatus) + EndIf + +EndFunc + + + + +;; SteamID Convert Dim Const $COMM_ID_START = 76561197960265728 Func _CommunityIDToSteamID($sComID) diff --git a/resources/gfx/placeholder.ico b/resources/gfx/placeholder.ico new file mode 100644 index 0000000000000000000000000000000000000000..5974fc55821a17f0f8e8be861dc1ffc3fe65d0a4 GIT binary patch literal 32206 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