Guest User

NFSW szerverek állapota V1 2013.03.06.

a guest
Mar 5th, 2013
14
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. ;Need for Speed World szerverek állapotát lekérő AutoHotkey script v1 2013.03.06. (nem szép, ne azt nézd:)
  2. ;http://www.autohotkey.com/
  3.  
  4.  
  5. s_tempfile = %A_Temp%\autohotkey_nfsw.txt ;a script ebbe az állományba tölti le a szerverállapotot a felhasználó ideiglenes könyvtárába
  6. s_status := """status"":""" ;ez a karakterlánc találja meg az "status":" szöveget, amit a lényegi szerverállapot-infó követ...
  7. sa_status := Object() ;a szerverek állapotát tartalmazó tömb létrehozása
  8.  
  9.  
  10. UrlDownloadToFile, http://world.needforspeed.com/SpeedAPI/ws/game/nfsw/servers/status?output=json, %s_tempfile% ;a szerverállapotot tartalmazó állomány letöltése
  11. Sleep, 500 ;500 ms várakozás, hogy a szerverállapotot tartalmazó állomány biztosan letöltődjön
  12. FileRead, s_filetext, %s_tempfile% ;a szerverállapotot tartalmazó állomány tartalmának kiolvasása
  13. FileDelete, %s_tempfile% ;a szerverállapotot tartalmazó állomány törlése
  14.  
  15. StringReplace, s_filetext, s_filetext, %A_SPACE%, , All ;szóközök eltávolítása a szövegből
  16. i_position := RegExMatch(s_filetext, s_status) ;az első (APEX) szerver állapota helyének meghatározása a szövegben
  17. sa_status.Insert(SubStr(s_filetext, i_position + 10, 1)) ;az első (APEX) szerver állapota első karakterének tárolása (U = UP, D = DOWN)
  18. i_position := RegExMatch(s_filetext, s_status, Mode 1, i_position + 10) ;a második (CHICANE) szerver állapota helyének meghatározása a szövegben
  19. sa_status.Insert(SubStr(s_filetext, i_position + 10, 1)) ;a második (CHICANE) szerver állapota első karakterének tárolása (U = UP, D = DOWN)
  20.  
  21.  
  22. loop 2
  23. {
  24.   if sa_status[A_Index] = "D"
  25.   {
  26.     sa_status[A_Index] := "DOWN" ;D átírása DOWN-ra (ez jelenik meg az ablakban)
  27.     i_status = 16 ;ha legalább az egyik szerver áll, piros ikon jelenik meg az ablakban
  28.   }
  29.   else if sa_status[A_Index] = "U"
  30.   {
  31.     sa_status[A_Index] := "UP" ;U átírása UP-ra (ez jelenik meg az ablakban)
  32.   }
  33.   else
  34.   {
  35.     sa_status[A_Index] := "?" ;ismeretlen állapot (ez jelenik meg az ablakban, például olyankor is, amikor a szerverállapotot nem sikerült letölteni)
  36.   }
  37. }
  38.  
  39.  
  40. msgbox % i_status, NFSW, % "APEX: " . sa_status[1] . "`n" . "CHICANE: " . sa_status[2] ;ablak megjelenítése
  41.  
  42.  
  43.  
  44. ;A script ezen a struktúrán alapul (URL: http://world.needforspeed.com/SpeedAPI/ws/game/nfsw/servers/status?output=json):
  45. ;
  46. ;{"worldServerStatus": {
  47. ; "lastChangedDate": null,
  48. ; "worldServerStatusList":  [
  49. ;    {
  50. ;   "customMessage": "",
  51. ;   "localizedMessage": "The servers are currently up and running.",
  52. ;   "message": "ALL_SYSTEMS_GO",
  53. ;   "shard": "APEX",
  54. ;   "status": "UP"
  55. ;  },
  56. ;    {
  57. ;   "customMessage": "",
  58. ;   "localizedMessage": "The servers are currently up and running.",
  59. ;   "message": "ALL_SYSTEMS_GO",
  60. ;   "shard": "CHICANE",
  61. ;   "status": "UP"
  62. ;  }
  63. ; ]
  64. ;}}
Advertisement
Add Comment
Please, Sign In to add comment