Search code examples
python-3.xpoker

convert code to python


I am learning python at the moment, and this is the kind of project that interests me. I don't know what language the script is written (lisp or autohotkey probably?), but I would like to convert it to python. Can you please point me in the right direction and tell me

  • what language was used for this?
  • what do i need to learn convert it?

Thanks!

; Thois TableOpener for PokerStars v1.05
; Opens new cash game tables from the lobby every x seconds (if there are  less tables opened than your predefined settings). A great tool for multi-tablers.
; Customize the variables below (between the lines)
; 'Thois' on PS for donations

; Customizable variables (between the lines)
;------------------------------------------
rowheight := 13 ;In the PokerStars lobby go to View > Text Size: For Medium & smaller:13, For smallest:12, For Larger:15, For Largest:17
recheck := 50 ;How often the script should open up new tables (if needed),     50=10seconds, 25=5seconds etc... Try not to set this too low for CPU performance issues
;------------------------------------------

Gui, Font, s8, Arial
Gui, Add, Text,, Number Of Tables:
Gui, Add, Edit
Gui, Add, UpDown, vnumberoftablestokeepopen Range1-24, 12
Gui, Add, Checkbox, venabledisable, Run!
Gui, Show,, Thois TableOpener for PokerStars v1.00
Gui, Submit, NoHide

numberofloopinstances := recheck - 1

Loop
{
Gui, Submit, NoHide
SendMessage, 0x115, 0, 0, PokerStarsListClass1, PokerStars Lobby
numberofloopinstances := numberofloopinstances + 1
if (numberofloopinstances = recheck)
    {
    numberofloopinstances := 0
    WinGet, numberofwindows, Count, ahk_class PokerStarsTableFrameClass,,Lobby
    beffen := numberoftablestokeepopen - numberofwindows
    if (beffen > 0 AND enabledisable = 1)
        {
        Loop
            {
            ControlGet, tablesinthelobby, Hwnd, , PokerStarsListClass1, PokerStars Lobby
            yclick := 1 + (rowheight * A_Index) - rowheight
            PostLeftClick(1, yclick, tablesinthelobby)
            ControlClick, PokerStarsButtonClass10, PokerStars Lobby
            Sleep, 500
            WinGet, numberofwindows, Count, ahk_class PokerStarsTableFrameClass,,Lobby
            beffen := numberoftablestokeepopen - numberofwindows
            if (beffen = 0)
                {
                break
                }
            }
        }
    }
Sleep, 200
}

; Hotkeys (disabled)

;~Xbutton1:: ;Endlessly cycles between all tables in the stack the cursor is pointing at (brings the front table to the back), disabled (remove ; marks to enable)
;MouseGetPos,,,tableID
;WinGetClass, classoftableid, ahk_id %tableID%
;if (classoftableid = "PokerStarsTableFrameClass")
;   {
;   WinSet, Bottom,, ahk_id %tableID%
;   }
;return

;~Xbutton2:: ;Closes the table the mouse is pointing at (also clicks the OK warning button), disabled (remove ; marks to enable)
;MouseGetPos,,,tableID
;WinGetClass, classoftableid, ahk_id %tableID%
;if (classoftableid = "PokerStarsTableFrameClass");
;   {
;   WinClose, ahk_id %tableID%
;   Sleep,20
;   ControlClick, Button1, Table, OK
;   }
;return

;Juks rocks - I deactivated WinActivate so that the Lobby doesnt steal focus
PostLeftClick(x, y, table_id, activate=1) {
; ### JUK: Send the down left click, then the mouse-up messages.
; NOTE: This is relative to the top left of the client area and NOT the top left of the
;       window (ie: It *doesn't* include the title-bar like AHK's MouseClick does!!!).
If activate
; WinActivate, ahk_id%table_id%
PostMessage, 0x201, 0x0001, ((y<<16)^x), , ahk_id%table_id%
PostMessage, 0x202 , 0, ((y<<16)^x), , ahk_id%table_id%
}

GuiClose:
ExitApp

Solution

  • That is without a doubt AutoHotKey. What you need to convert this is:

    1. Enough understanding of AutoHotKey to understand what the program does.
    2. Enough understanding of Python to be able to recreate what the program does.

    You should note that AutoHotKey and Python are very different. AutoHotKey is a software for automating Mouse and Keyboard, to control other programs. That is certainly doable with Python but the way you would do it depends on the environment. You probably can't do it without external libraries to help you, because Python is a language you mostly write programs in, not a language you use to control existing programs.

    So I doubt that your conversion effort will be worth it.