AHK: PokerStars Tournament History Requester

    • irieill
      irieill
      Bronze
      Dabei seit: 19.02.2008 Beiträge: 796
      Hinweis:
      PokerStrategy.com kann keine Verantwortung für die hier im Thread angebotene Software übernehmen. Wir sind nicht in der Entwicklung eingebunden und können damit für die Fehlerfreiheit und Zuverlässigkeit der angebotenen Software nicht garantieren. Das Benutzen der Software in diesem Thread erfolgt damit auf eure eigene Verantwortung.


      Hallo zusammen...

      Bin die letzten Tage damit beschäftigt meine PT3-DB aufzuräumen. Inzwischen schreibt PokerStars zwar auf Wunsch auch die Summaries auf die Platte, jedoch fehlen mir noch Unmengen (3000+) an alten Histories vor dieser Zeit. Die Funktion zum automatischen Anfordern aus PT2 fehlt ja in PT3 immernoch. Ich habe im Netz nach Scripten/Programmen gesucht, die zumindest die Anforderung (Eingabe der Tourney ID und Dialog-Handling) automatisiert, weil das doch sehr mühseelig ist. Was ich fand war folgendes:

      http://forumserver.twoplustwo.com/45/software/software-automatically-request-missing-tournament-summaries-stars-409085/index8.html

      Dieses Script ist langsam, funktioniert nicht richtig und auch nicht in dem Umfang wie ich mir das vorstelle. Deswegen habe ich mich hingesetzt und ein Eigenes auf dieser Grundlage geschrieben.

      Alles was man benötigt ist eine Liste mit Tourney IDs (zum Beispiel einfach über Export einer SQL-Abfrage auf die PT3 Datenbank). Diese Liste fügt man dann in die Textbox ein (je eine ID pro Zeile) und das Script macht den Rest.

      Mir war wichtig, daß es nebenbei läuft und nicht stört. Man kann also gleichzeitig arbeiten oder spielen ohne daß es zu Konflikten kommt.

      Das Script stellt selber fest ob man das Maximum der Anforderungen pro Stunde erreicht hat und wartet dann eine gewisse Zeit (konfigurierbar) bis zum erneuten Versuch. Es erkennt auch ungültige Tourney IDs und verwirft diese.

      Eventuell hat ja noch der ein oder andere Bedarf für sowas. Dann möchte ich diesen Leuten den kleinen Helfer nicht vorenthalten.

      Hier der AHK-Sourcecode:

      code:
      Wait := 300
      
      SetControlDelay, -1
      Gui, +Resize
      Gui, Add, Text, , Enter the tournament id to request the history for (each in a new row) and click the "Run" button to start the automated request procedure...
      Gui, Add, Edit, VEditTourneyList WP-100 H200 Section
      Gui, Add, Button, VButtonRun W90 YS Default GRun, Run
      Gui, Add, Button, VButtonPause WP Disabled GPause, Pause
      Gui, Add, Button, VButtonResume WP Disabled GResume , Resume
      Gui, Add, Text, VInfo XS W640, Requested tournament history count: 0 | Invalid tournament id count: 0
      Gui, Add, StatusBar, VStatus, Waiting for start...
      Gui, Show, Center, PokerStars Tournament History Requester
      Return
      
      GuiClose:
      	ExitApp
      
      Run:
      	Invalid := 0
      	SB_SetText("Running...")
      	GuiControl, Disable, EditTourneyList
      	GuiControl, Disable, ButtonRun
      	GuiControl, Enable, ButtonPause
      	GuiControlGet, TourneyList, , EditTourneyList
      	Loop, Parse, TourneyList, `n
      	{
      		Tourney := A_LoopField
      		GoSub, Request
      		GuiControl, Text, Info, Requested tournament histroy count: %A_Index% | Invalid tournament id count: %Invalid%
      	}
      	GuiControl, Enable, EditTourneyList
      	GuiControl, Enable, ButtonRun
      	GuiControl, Disable, ButtonPause
      	SB_SetText("Finished...")
      	Return
      
      Pause:
      	SB_SetText("Paused...")
      	GuiControl, Disable, ButtonPause
      	GuiControl, Enable, ButtonResume
      	Return
      
      Resume:
      	SB_SetText("Resumed...")
      	GuiControl, Disable, ButtonResume
      	GuiControl, Enable, ButtonPause
      	Return
      
      Request:
      	GuiControlGet, State, Enabled, ButtonResume
      	If State = 1
      	{
      		Sleep, 10000
      		Goto, Request
      	}
      	Else
      	{
      		SB_SetText("Waiting for PokerStars Lobby...")
      		SetTitleMatchMode, 1
      		WinWait, PokerStars Lobby
      		SB_SetText("Requesting history for tournament #" . Tourney . "...")
      		WinMenuSelectItem, PokerStars Lobby, , 5&, 2&		
      		SetTitleMatchMode, 3
      		WinWait, Tournament History
      		Control, Check, , Button2, Tournament History
      		ControlSetText, Edit2, %Tourney%, Tournament History
      		ControlClick, Button4, Tournament History, , , , NA
      		SB_SetText("Waiting for confirmation dialog of request of history for tournament #" . Tourney . "...")
      		WinWait, PokerStars
      		SB_SetText("Determining success of request of history for tournament #" . Tourney . "...")
      		WinGetPos, , , Width, , PokerStars
      		ControlClick, Button1, PokerStars, OK, , , NA
      		If Width = 440
      		{
      			Invalid := Invalid + 1
      		}
      		Else If Width = 425
      		{
      			Loop, %Wait%
      			{
      				Sleep, 1000
      				Remaining := Wait - A_Index
      				SB_SetText("Reached maximum requests per hour. Waiting " . Remaining . " seconds to request history for tournamnet #" . Tourney . " again...")
      			}
      			Goto, Request
      		}
      	}
      	Return
      


      Der Code ist frei veränder- und erweiterbar. Es wäre schön, wenn Verbesserungen hier gepostet werden damit alle was davon haben.

      Zu guter Letzt für denjenigen der kein Autohotkey installiert hat ein Downloadlink für eine kompilierte Anwendung:

      http://uploaded.to/file/ipwbb3x4
  • 1 Antwort
    • irieill
      irieill
      Bronze
      Dabei seit: 19.02.2008 Beiträge: 796
      Bisher scheint zwar kein Interesse an dem Skript zu bestehen. Dennoch möchte ich ein Update im Zuge der Veränderungen der Buttons bei Stars posten.

      AHK-Sourcecode (Update):
      code:
      Wait := 300
      
      SetControlDelay, -1
      Gui, +Resize
      Gui, Add, Text, , Enter the tournament id to request the history for (each in a new row) and click the "Run" button to start the automated request procedure...
      Gui, Add, Edit, VEditTourneyList WP-100 H200 Section
      Gui, Add, Button, VButtonRun W90 YS Default GRun, Run
      Gui, Add, Button, VButtonPause WP Disabled GPause, Pause
      Gui, Add, Button, VButtonResume WP Disabled GResume , Resume
      Gui, Add, Text, VInfo XS W640, Requested tournament history count: 0 | Invalid tournament id count: 0
      Gui, Add, StatusBar, VStatus, Waiting for start...
      Gui, Show, Center, PokerStars Tournament History Requester
      Return
      
      GuiClose:
      	ExitApp
      
      Run:
      	Invalid := 0
      	SB_SetText("Running...")
      	GuiControl, Disable, EditTourneyList
      	GuiControl, Disable, ButtonRun
      	GuiControl, Enable, ButtonPause
      	GuiControlGet, TourneyList, , EditTourneyList
      	Loop, Parse, TourneyList, `n
      	{
      		Tourney := A_LoopField
      		GoSub, Request
      		GuiControl, Text, Info, Requested tournament histroy count: %A_Index% | Invalid tournament id count: %Invalid%
      	}
      	GuiControl, Enable, EditTourneyList
      	GuiControl, Enable, ButtonRun
      	GuiControl, Disable, ButtonPause
      	SB_SetText("Finished...")
      	Return
      
      Pause:
      	SB_SetText("Paused...")
      	GuiControl, Disable, ButtonPause
      	GuiControl, Enable, ButtonResume
      	Return
      
      Resume:
      	SB_SetText("Resumed...")
      	GuiControl, Disable, ButtonResume
      	GuiControl, Enable, ButtonPause
      	Return
      
      Request:
      	GuiControlGet, State, Enabled, ButtonResume
      	If State = 1
      	{
      		Sleep, 10000
      		Goto, Request
      	}
      	Else
      	{
      		SB_SetText("Waiting for PokerStars Lobby...")
      		SetTitleMatchMode, 1
      		WinWait, PokerStars Lobby
      		SB_SetText("Requesting history for tournament #" . Tourney . "...")
      		WinMenuSelectItem, PokerStars Lobby, , 5&, 2&		
      		SetTitleMatchMode, 3
      		WinWait, Tournament History
      		Control, Check, , Button2, Tournament History
      		ControlSetText, Edit2, %Tourney%, Tournament History
      		ControlClick, Button4, Tournament History, , , , NA
      		SB_SetText("Waiting for confirmation dialog of request of history for tournament #" . Tourney . "...")
      		WinWait, PokerStars
      		SB_SetText("Determining success of request of history for tournament #" . Tourney . "...")
      		WinGetPos, , , Width, , PokerStars
      		ControlClick, PokerStarsButtonClass1, PokerStars, , , , NA
      		If Width = 440
      		{
      			Invalid := Invalid + 1
      		}
      		Else If Width = 425
      		{
      			Loop, %Wait%
      			{
      				Sleep, 1000
      				Remaining := Wait - A_Index
      				SB_SetText("Reached maximum requests per hour. Waiting " . Remaining . " seconds to request history for tournamnet #" . Tourney . " again...")
      			}
      			Goto, Request
      		}
      	}
      	Return