Script: Mark Current Hand
11-11-2010
, 04:48 PM
Join Date: Aug 2009
Posts: 1,700
I can't understand you guys, which hands do you try to mark if you don't save any handnumbers for marking first?
MUFC LUHG, so enter that password, script worked fine for you.
MUFC LUHG, so enter that password, script worked fine for you.
11-11-2010
, 06:14 PM
Does this work for cereus network?
11-16-2010
, 10:03 AM

no clue what is going on in this thread. but i would love this script to be set up correctly on my end.
when i press cntrl f1 a picture windows help menu appears.
i used the installer from pg1 op
11-16-2010
, 10:15 AM
Wiiiiiiiiiiiiiiiiii, got it set up reasonably easily




for this, tyty
11-23-2010
, 06:54 PM
anyone have any idea what im doing wrong?
12-23-2010
, 09:44 AM
Join Date: Mar 2009
Posts: 1,371
Going to try to use this script.
01-06-2011
, 04:48 PM
Join Date: Jun 2009
Posts: 16
The script do not start get this error
http://picasaweb.google.com/11613154...434785/Pokker#
Any help would be nice
http://picasaweb.google.com/11613154...434785/Pokker#
Any help would be nice
01-09-2011
, 08:02 AM
Quote:
please run this one from your postgres/bin folder
Code:
#noenv
#SingleInstance, Force
SetWinDelay,-1
settitlematchmode,2
StringTrimRight, thisahk, A_ScriptName, 4
SetWorkingDir %A_ScriptDir%
Menu, Tray, NoStandard
Menu, Tray, Add, Reload, Reload
Menu, Tray, Add, Change Settings, GetMHSettings()
Menu, Tray, Add, Suspend Hotkeys, SuspendHotkey
Menu, Tray, Add, Exit, Exit
Gui, Submit
IniRead, StarsHHLogFolderPath, %thisahk%.ini, LogFolder, StarsHHPath, %A_Space%
IniRead, FullTiltHHLogFolderPath, %thisahk%.ini, LogFolder, FullTiltHHPath, %A_Space%
IniRead, PostgresLogPath, %thisahk%.ini, LogFolder, postgrespath, %A_Space%
IniRead, postgresuser, %thisahk%.ini, LogFolder, postgresuser, %A_Space%
IniRead, postgresdb, %thisahk%.ini, LogFolder, postgresdb, %A_Space%
IniRead, HK_mark, %thisahk%.ini, LogFolder, HK_mark, %A_Space%
IniRead, HK_sql , %thisahk%.ini, LogFolder, HK_sql , %A_Space%
If (!StarsHHLogFolderPath or !FullTiltHHLogFolderPath or !PostgresLogPath or !postgresuser or !postgresdb or !HK_mark or !HK_sql)
gosub GetMHSettings()
HotKey, %HK_mark%, l_markhand
HotKey, %HK_sql%, l_processsql
IfExist, gamenumbers.txt
{
MsgBox, 4,, Delete existing file gamenumbers.txt? (press Yes or No)
IfMsgBox Yes
FileDelete, gamenumbers.txt
}
settimer,checksize,100
return
^2::
Suspend
Return
l_markhand:
winget,id,id,A
wingetclass,class,ahk_id%id%
if class=PokerStarsTableFrameClass
{
site=Stars
dir:=StarsHHLogFolderPath
}
else
if class=QWidget
{
site=FullTilt
dir:=FullTiltHHLogFolderPath
}
else
site=
if site
{
filename:=HHFile(id, dir ,site)
FileGetSize, FileSize, % filename
if !FileSize
FileSize:=0
listadd(filelist, id . "-" . FileSize)
}
return
l_processsql:
IfExist, temp.txt
FileDelete, temp.txt
IfExist, temp.bat
FileDelete, temp.bat
FileRead, numbers, gamenumbers.txt
sql1=Update pokerhands
sql2= Set mark_id = 1
sql3= Where gamenumber =
sql4=AND handtimestamp > localtimestamp - interval '1 days';
sql5=Update pokerhands_hero
Loop, Parse, numbers, `n,
{
if A_loopField
{
FileAppend, %sql1% %sql2% %sql3% %A_loopField% %sql4%`n, temp.txt
FileAppend, %sql5% %sql2% %sql3% %A_loopField% %sql4%`n, temp.txt
}
}
FileAppend, psql.exe %postgresdb% %postgresuser% <temp.txt`npause`n, temp.bat
run temp.bat
return
;-----------------------------------------------------------------------------------------------------
checksize:
Loop, Parse, filelist, `,
{
stringsplit,tab,A_loopField,-
wingetclass,class,ahk_id%tab1%
if class=PokerStarsTableFrameClass
{
site=Stars
dir:=StarsHHLogFolderPath
}
else
if class=QWidget
{
site=FullTilt
dir:=FullTiltHHLogFolderPath
}
filename:=HHFile(tab1, dir ,site)
FileGetSize, FileSize, % filename
if FileSize
if FileSize!=%tab2%
{
num:=gethhnumber(tab1,site)
FileAppend, %num%`n, gamenumbers.txt
listDelItem(filelist, A_loopField)
}
}
return
;-----------------------------------------------------------------------------------------------------
gethhnumber(winid,site)
{
global StarsHHLogFolderPath,FullTiltHHLogFolderPath
if site=Stars
path=%StarsHHLogFolderPath%
else
path=%FullTiltHHLogFolderPath%
hh:=LastHH(winid,path,site)
Loop, Parse, hh, `n
{
if instr(A_loopfield,"Game #")
{
stringtrimleft,num,A_loopfield,instr(A_loopfield,"#")
stringleft,num,num,instr(num,":")-1
break
}
}
return num
}
;-----------------------------------------------------------------------------------------------------
HHFile(win, dir, site) {
if site=Stars
ext=HH
else
ext=FT
title := WinGetTitle(win)
if !(instr(title,"Tournament")>0 OR instr(title,"Sit & Go")>0)
{
stringleft,file,title, InStr(title, "-","",0)-2
file := ext . SubStr(a_now, 1, 8) . A_space . file
StringReplace, file, file, /,-,
if site=Stars
{
StringReplace, file, file, USD -,- USD,
StringReplace, file, file, EUR -,- EUR,
}
}
else
if site=Stars
{
stringtrimleft,file,title,instr(title,"Tournament")+10
stringleft,file,file,InStr(file, A_space)-1
}
else
{
stringtrimleft,file,title,instr(title,"(")-1
stringleft,file,file,InStr(file, "-")-2
}
loop %dir%\*.txt
{
if instr(A_LoopFileName,file)>0 & !instr(A_LoopFileName,"Summary")>0
return dir "\" A_LoopFileName
}
EnvAdd, date, -1, d
stringleft,file,title, InStr(title, "-","",0)-2
file := ext . SubStr(date, 1, 8) . A_space . file
StringReplace, file, file, /,-,
if site=Stars
{
StringReplace, file, file, USD -,- USD,
StringReplace, file, file, EUR -,- EUR,
}
loop %dir%\*.txt
{
if instr(A_LoopFileName,file)
return dir "\" A_LoopFileName
}
EnvAdd, date, +1, d
stringleft,file,title, InStr(title, "-","",0)-2
file := ext . SubStr(date, 1, 8) . A_space . file
StringReplace, file, file, /,-,
if site=Stars
{
StringReplace, file, file, USD -,- USD,
StringReplace, file, file, EUR -,- EUR,
}
loop %dir%\*.txt
{
if instr(A_LoopFileName,file)
return dir "\" A_LoopFileName
}
}
return
;-----------------------------------------------------------------------------------------------------
LastHH(win, dir, site) {
if site=Stars
game=PokerStars Game #
else
game=Full Tilt Poker Game #
file@name:=HHFile(win, dir ,site)
FileRead, hh, %file@name%
if !instr(hh,"seat")
{
FileGetSize file@size, %file@name%
FileRead file?buffer, %file@name%
VarSetCapacity(hh, file@size / 2 + 1, 0)
r := DllCall("WideCharToMultiByte"
, "UInt", 0 ; CodePage: CP_ACP=0 (current Ansi), CP_UTF7=65000, CP_UTF8=65001
, "UInt", 0 ; dwFlags
, "Str", file?buffer ; LPCWSTR lpWideCharStr
, "Int", file@size / 2 ; cchWideChar: -1=null terminated
, "Str", hh ; LPSTR lpMultiByteStr
, "Int", file@size / 2 + 1 ; cbMultiByte: 0 to get required size
, "UInt",0 ; LPCSTR lpDefaultChar
, "UInt", 0) ; LPBOOL lpUsedDefaultChar
}
StringTrimLeft, hh, hh, InStr(hh, game, "", 0)-1
if instr(hh,"SUMMARY")
Stringleft, hh, hh, InStr(hh, "*** SUMMARY", "", 0)-1
return hh
}
;-----------------------------------------------------------------------------------------------------
WinGetTitle(win) {
WinGetTitle, title, ahk_id%win%
return title
}
;-----------------------------------------------------------------------------------------------------
StrRep(str,char,rep_char="",all=1) {
StringReplace,str,str,%char%,%rep_char%,% all ? "useErrorLevel" : 0
return str
}
;-----------------------------------------------------------------------------------------------------
StarsHHFolderSelect:
FileSelectFolder, SelectedFolder, *%ProgramFiles%\PokerStars\,, Select the folder with the PokerStars handhistory files
Folder := RegExReplace(Folder, "\\$") ; Removes the trailing backslash, if present.
If SelectedFolder <> ;the user selected a folder
{
GuiControl,, StarsHHLogFolderPath, %SelectedFolder%
StarsHHLogFolderPath := SelectedFolder
IniWrite, %StarsHHLogFolderPath%, %thisahk%.ini, LogFolder, StarsHHPath
Gui, Submit, NoHide
}
return
;-----------------------------------------------------------------------------------------------------
FullTiltHHFolderSelect:
FileSelectFolder, SelectedFolder, *%ProgramFiles%\Full Tilt Poker\,, Select the folder with the FullTilt handhistory files
Folder := RegExReplace(Folder, "\\$") ; Removes the trailing backslash, if present.
If SelectedFolder <> ;the user selected a folder
{
GuiControl,, FullTiltHHLogFolderPath, %SelectedFolder%
FullTiltHHLogFolderPath := SelectedFolder
IniWrite, %FullTiltHHLogFolderPath%, %thisahk%.ini, LogFolder, FullTiltHHPath
Gui, Submit, NoHide
}
return
;-----------------------------------------------------------------------------------------------------
PostgresBinFolderSelect:
FileSelectFolder, SelectedFolder, *%ProgramFiles%\PostgreSQL\,, Select the folder with the Postgres binary files
Folder := RegExReplace(Folder, "\\$") ; Removes the trailing backslash, if present.
If SelectedFolder <> ;the user selected a folder
{
GuiControl,, PostgresLogPath, %SelectedFolder%
PostgresLogPath := SelectedFolder
IniWrite, %PostgresLogPath%, %thisahk%.ini, LogFolder, postgrespath
Gui, Submit, NoHide
}
return
;-----------------------------------------------------------------------------------------------------
postgresuserselect:
InputBox, postgresuser,, enter Postgres Username
IniWrite, %postgresuser%, %thisahk%.ini, LogFolder, postgresuser
return
;-----------------------------------------------------------------------------------------------------
postgresdbselect:
InputBox, postgresdb,, enter Postgres Datbase Name
IniWrite, %postgresdb%, %thisahk%.ini, LogFolder, postgresdb
return
;-----------------------------------------------------------------------------------------------------
GetMHSettings():
{
gosub SuspendHotkey
Gui, Add, Text, x10 y5 w120 h20 Center, Select Folder Location
Gui, Add, Text, x140 y5 w150 h20 Center, Folder Location
Gui, Add, Button, x5 y20 w150 h20 gPostgresBinFolderSelect center, Postgres Binary Folder
Gui, Add, Edit, x160 y20 w520 h20 vPostgresLogpath, %PostgresLogpath%
Gui, Add, Button, x5 y40 w150 h20 gStarsHHFolderSelect center, Poker Stars HH Folder
Gui, Add, Edit, x160 y40 w520 h20 vStarsHHLogFolderPath, %StarsHHLogFolderPath%
Gui, Add, Button, x5 y60 w150 h20 gFullTiltHHFolderSelect center, Full Tilt HH Folder
Gui, Add, Edit, x160 y60 w520 h20 vFullTiltHHLogFolderPath, %FullTiltHHLogFolderPath%
Gui, Add, Text, x5 y120 w150 h20 right, Postgres User Name:
Gui, Add, Edit, x160 y120 w100 h20 vpostgresuser, %postgresuser%
Gui, Add, Text, x5 y140 w150 h20 right, Postgres Database:
Gui, Add, Edit, x160 y140 w100 h20 vpostgresdb, %postgresdb%
Gui, Add, Text, x5 y160 w150 h20 right, Hotkey "mark current Hand" :
Gui, Add, HotKey, x160 y160 w100 h20 vHK_mark, %HK_mark%
Gui, Add, Text, x5 y180 w150 h20 right, Hotkey "process sql":
Gui, Add, HotKey, x160 y180 w100 h20 vHK_sql, %HK_sql%
Gui, Add, Button, x360 y180 w40 h30, OK ; The label ButtonOK (if it exists) will be run when the button is pressed.
Gui, Show,, Markhand
return
ButtonOK:
GuiClose:
GuiEscape:
Gui, Submit
IniWrite, %postgresdb%, %thisahk%.ini, LogFolder, postgresdb
IniWrite, %postgresuser%, %thisahk%.ini, LogFolder, postgresuser
IniWrite, %PostgresLogPath%, %thisahk%.ini, LogFolder, postgrespath
IniWrite, %FullTiltHHLogFolderPath%, %thisahk%.ini, LogFolder, FullTiltHHPath
IniWrite, %StarsHHLogFolderPath%, %thisahk%.ini, LogFolder, StarsHHPath
IniWrite, %HK_sql%, %thisahk%.ini, LogFolder, HK_sql
IniWrite, %HK_mark%, %thisahk%.ini, LogFolder, HK_mark
Gui, Destroy
gosub reload
return
}
;-----------------------------------------------------------------------------------------------------
SuspendHotkey:
SendInPut, {CTRLDOWN}2{CTRLUP}
return
;-----------------------------------------------------------------------------------------------------
;-----------------------------------------------------------------------------------------------------
listAdd( byRef list, item, del="," ) {
list:=( list!="" ? ( list . del . item ) : item )
return list
}
;-----------------------------------------------------------------------------------------------------
listDelItem( byRef list, item, del=",") {
ifEqual, item,, return list
list:=del . list . del
StringReplace, list, list, %item%%del%
StringTrimLeft, list, list, 1
StringTrimRight, list, list, 1
return list
}
;-----------------------------------------------------------------------------------------------------
reload:
reload
return
;-----------------------------------------------------------------------------------------------------
Exit:
exitapp
return
;-----------------------------------------------------------------------------------------------------
01-09-2011
, 08:23 AM
Quote:
please run this one from your postgres/bin folder
Code:
#noenv
#SingleInstance, Force
SetWinDelay,-1
settitlematchmode,2
StringTrimRight, thisahk, A_ScriptName, 4
SetWorkingDir %A_ScriptDir%
Menu, Tray, NoStandard
Menu, Tray, Add, Reload, Reload
Menu, Tray, Add, Change Settings, GetMHSettings()
Menu, Tray, Add, Suspend Hotkeys, SuspendHotkey
Menu, Tray, Add, Exit, Exit
Gui, Submit
IniRead, StarsHHLogFolderPath, %thisahk%.ini, LogFolder, StarsHHPath, %A_Space%
IniRead, FullTiltHHLogFolderPath, %thisahk%.ini, LogFolder, FullTiltHHPath, %A_Space%
IniRead, PostgresLogPath, %thisahk%.ini, LogFolder, postgrespath, %A_Space%
IniRead, postgresuser, %thisahk%.ini, LogFolder, postgresuser, %A_Space%
IniRead, postgresdb, %thisahk%.ini, LogFolder, postgresdb, %A_Space%
IniRead, HK_mark, %thisahk%.ini, LogFolder, HK_mark, %A_Space%
IniRead, HK_sql , %thisahk%.ini, LogFolder, HK_sql , %A_Space%
If (!StarsHHLogFolderPath or !FullTiltHHLogFolderPath or !PostgresLogPath or !postgresuser or !postgresdb or !HK_mark or !HK_sql)
gosub GetMHSettings()
HotKey, %HK_mark%, l_markhand
HotKey, %HK_sql%, l_processsql
IfExist, gamenumbers.txt
{
MsgBox, 4,, Delete existing file gamenumbers.txt? (press Yes or No)
IfMsgBox Yes
FileDelete, gamenumbers.txt
}
settimer,checksize,100
return
^2::
Suspend
Return
l_markhand:
winget,id,id,A
wingetclass,class,ahk_id%id%
if class=PokerStarsTableFrameClass
{
site=Stars
dir:=StarsHHLogFolderPath
}
else
if class=QWidget
{
site=FullTilt
dir:=FullTiltHHLogFolderPath
}
else
site=
if site
{
filename:=HHFile(id, dir ,site)
FileGetSize, FileSize, % filename
if !FileSize
FileSize:=0
listadd(filelist, id . "-" . FileSize)
}
return
l_processsql:
IfExist, temp.txt
FileDelete, temp.txt
IfExist, temp.bat
FileDelete, temp.bat
FileRead, numbers, gamenumbers.txt
sql1=Update pokerhands
sql2= Set mark_id = 1
sql3= Where gamenumber =
sql4=AND handtimestamp > localtimestamp - interval '1 days';
sql5=Update pokerhands_hero
Loop, Parse, numbers, `n,
{
if A_loopField
{
FileAppend, %sql1% %sql2% %sql3% %A_loopField% %sql4%`n, temp.txt
FileAppend, %sql5% %sql2% %sql3% %A_loopField% %sql4%`n, temp.txt
}
}
FileAppend, psql.exe %postgresdb% %postgresuser% <temp.txt`npause`n, temp.bat
run temp.bat
return
;-----------------------------------------------------------------------------------------------------
checksize:
Loop, Parse, filelist, `,
{
stringsplit,tab,A_loopField,-
wingetclass,class,ahk_id%tab1%
if class=PokerStarsTableFrameClass
{
site=Stars
dir:=StarsHHLogFolderPath
}
else
if class=QWidget
{
site=FullTilt
dir:=FullTiltHHLogFolderPath
}
filename:=HHFile(tab1, dir ,site)
FileGetSize, FileSize, % filename
if FileSize
if FileSize!=%tab2%
{
num:=gethhnumber(tab1,site)
FileAppend, %num%`n, gamenumbers.txt
listDelItem(filelist, A_loopField)
}
}
return
;-----------------------------------------------------------------------------------------------------
gethhnumber(winid,site)
{
global StarsHHLogFolderPath,FullTiltHHLogFolderPath
if site=Stars
path=%StarsHHLogFolderPath%
else
path=%FullTiltHHLogFolderPath%
hh:=LastHH(winid,path,site)
Loop, Parse, hh, `n
{
if instr(A_loopfield,"Game #")
{
stringtrimleft,num,A_loopfield,instr(A_loopfield,"#")
stringleft,num,num,instr(num,":")-1
break
}
}
return num
}
;-----------------------------------------------------------------------------------------------------
HHFile(win, dir, site) {
if site=Stars
ext=HH
else
ext=FT
title := WinGetTitle(win)
if !(instr(title,"Tournament")>0 OR instr(title,"Sit & Go")>0)
{
stringleft,file,title, InStr(title, "-","",0)-2
file := ext . SubStr(a_now, 1, 8) . A_space . file
StringReplace, file, file, /,-,
if site=Stars
{
StringReplace, file, file, USD -,- USD,
StringReplace, file, file, EUR -,- EUR,
}
}
else
if site=Stars
{
stringtrimleft,file,title,instr(title,"Tournament")+10
stringleft,file,file,InStr(file, A_space)-1
}
else
{
stringtrimleft,file,title,instr(title,"(")-1
stringleft,file,file,InStr(file, "-")-2
}
loop %dir%\*.txt
{
if instr(A_LoopFileName,file)>0 & !instr(A_LoopFileName,"Summary")>0
return dir "\" A_LoopFileName
}
EnvAdd, date, -1, d
stringleft,file,title, InStr(title, "-","",0)-2
file := ext . SubStr(date, 1, 8) . A_space . file
StringReplace, file, file, /,-,
if site=Stars
{
StringReplace, file, file, USD -,- USD,
StringReplace, file, file, EUR -,- EUR,
}
loop %dir%\*.txt
{
if instr(A_LoopFileName,file)
return dir "\" A_LoopFileName
}
EnvAdd, date, +1, d
stringleft,file,title, InStr(title, "-","",0)-2
file := ext . SubStr(date, 1, 8) . A_space . file
StringReplace, file, file, /,-,
if site=Stars
{
StringReplace, file, file, USD -,- USD,
StringReplace, file, file, EUR -,- EUR,
}
loop %dir%\*.txt
{
if instr(A_LoopFileName,file)
return dir "\" A_LoopFileName
}
}
return
;-----------------------------------------------------------------------------------------------------
LastHH(win, dir, site) {
if site=Stars
game=PokerStars Game #
else
game=Full Tilt Poker Game #
file@name:=HHFile(win, dir ,site)
FileRead, hh, %file@name%
if !instr(hh,"seat")
{
FileGetSize file@size, %file@name%
FileRead file?buffer, %file@name%
VarSetCapacity(hh, file@size / 2 + 1, 0)
r := DllCall("WideCharToMultiByte"
, "UInt", 0 ; CodePage: CP_ACP=0 (current Ansi), CP_UTF7=65000, CP_UTF8=65001
, "UInt", 0 ; dwFlags
, "Str", file?buffer ; LPCWSTR lpWideCharStr
, "Int", file@size / 2 ; cchWideChar: -1=null terminated
, "Str", hh ; LPSTR lpMultiByteStr
, "Int", file@size / 2 + 1 ; cbMultiByte: 0 to get required size
, "UInt",0 ; LPCSTR lpDefaultChar
, "UInt", 0) ; LPBOOL lpUsedDefaultChar
}
StringTrimLeft, hh, hh, InStr(hh, game, "", 0)-1
if instr(hh,"SUMMARY")
Stringleft, hh, hh, InStr(hh, "*** SUMMARY", "", 0)-1
return hh
}
;-----------------------------------------------------------------------------------------------------
WinGetTitle(win) {
WinGetTitle, title, ahk_id%win%
return title
}
;-----------------------------------------------------------------------------------------------------
StrRep(str,char,rep_char="",all=1) {
StringReplace,str,str,%char%,%rep_char%,% all ? "useErrorLevel" : 0
return str
}
;-----------------------------------------------------------------------------------------------------
StarsHHFolderSelect:
FileSelectFolder, SelectedFolder, *%ProgramFiles%\PokerStars\,, Select the folder with the PokerStars handhistory files
Folder := RegExReplace(Folder, "\\$") ; Removes the trailing backslash, if present.
If SelectedFolder <> ;the user selected a folder
{
GuiControl,, StarsHHLogFolderPath, %SelectedFolder%
StarsHHLogFolderPath := SelectedFolder
IniWrite, %StarsHHLogFolderPath%, %thisahk%.ini, LogFolder, StarsHHPath
Gui, Submit, NoHide
}
return
;-----------------------------------------------------------------------------------------------------
FullTiltHHFolderSelect:
FileSelectFolder, SelectedFolder, *%ProgramFiles%\Full Tilt Poker\,, Select the folder with the FullTilt handhistory files
Folder := RegExReplace(Folder, "\\$") ; Removes the trailing backslash, if present.
If SelectedFolder <> ;the user selected a folder
{
GuiControl,, FullTiltHHLogFolderPath, %SelectedFolder%
FullTiltHHLogFolderPath := SelectedFolder
IniWrite, %FullTiltHHLogFolderPath%, %thisahk%.ini, LogFolder, FullTiltHHPath
Gui, Submit, NoHide
}
return
;-----------------------------------------------------------------------------------------------------
PostgresBinFolderSelect:
FileSelectFolder, SelectedFolder, *%ProgramFiles%\PostgreSQL\,, Select the folder with the Postgres binary files
Folder := RegExReplace(Folder, "\\$") ; Removes the trailing backslash, if present.
If SelectedFolder <> ;the user selected a folder
{
GuiControl,, PostgresLogPath, %SelectedFolder%
PostgresLogPath := SelectedFolder
IniWrite, %PostgresLogPath%, %thisahk%.ini, LogFolder, postgrespath
Gui, Submit, NoHide
}
return
;-----------------------------------------------------------------------------------------------------
postgresuserselect:
InputBox, postgresuser,, enter Postgres Username
IniWrite, %postgresuser%, %thisahk%.ini, LogFolder, postgresuser
return
;-----------------------------------------------------------------------------------------------------
postgresdbselect:
InputBox, postgresdb,, enter Postgres Datbase Name
IniWrite, %postgresdb%, %thisahk%.ini, LogFolder, postgresdb
return
;-----------------------------------------------------------------------------------------------------
GetMHSettings():
{
gosub SuspendHotkey
Gui, Add, Text, x10 y5 w120 h20 Center, Select Folder Location
Gui, Add, Text, x140 y5 w150 h20 Center, Folder Location
Gui, Add, Button, x5 y20 w150 h20 gPostgresBinFolderSelect center, Postgres Binary Folder
Gui, Add, Edit, x160 y20 w520 h20 vPostgresLogpath, %PostgresLogpath%
Gui, Add, Button, x5 y40 w150 h20 gStarsHHFolderSelect center, Poker Stars HH Folder
Gui, Add, Edit, x160 y40 w520 h20 vStarsHHLogFolderPath, %StarsHHLogFolderPath%
Gui, Add, Button, x5 y60 w150 h20 gFullTiltHHFolderSelect center, Full Tilt HH Folder
Gui, Add, Edit, x160 y60 w520 h20 vFullTiltHHLogFolderPath, %FullTiltHHLogFolderPath%
Gui, Add, Text, x5 y120 w150 h20 right, Postgres User Name:
Gui, Add, Edit, x160 y120 w100 h20 vpostgresuser, %postgresuser%
Gui, Add, Text, x5 y140 w150 h20 right, Postgres Database:
Gui, Add, Edit, x160 y140 w100 h20 vpostgresdb, %postgresdb%
Gui, Add, Text, x5 y160 w150 h20 right, Hotkey "mark current Hand" :
Gui, Add, HotKey, x160 y160 w100 h20 vHK_mark, %HK_mark%
Gui, Add, Text, x5 y180 w150 h20 right, Hotkey "process sql":
Gui, Add, HotKey, x160 y180 w100 h20 vHK_sql, %HK_sql%
Gui, Add, Button, x360 y180 w40 h30, OK ; The label ButtonOK (if it exists) will be run when the button is pressed.
Gui, Show,, Markhand
return
ButtonOK:
GuiClose:
GuiEscape:
Gui, Submit
IniWrite, %postgresdb%, %thisahk%.ini, LogFolder, postgresdb
IniWrite, %postgresuser%, %thisahk%.ini, LogFolder, postgresuser
IniWrite, %PostgresLogPath%, %thisahk%.ini, LogFolder, postgrespath
IniWrite, %FullTiltHHLogFolderPath%, %thisahk%.ini, LogFolder, FullTiltHHPath
IniWrite, %StarsHHLogFolderPath%, %thisahk%.ini, LogFolder, StarsHHPath
IniWrite, %HK_sql%, %thisahk%.ini, LogFolder, HK_sql
IniWrite, %HK_mark%, %thisahk%.ini, LogFolder, HK_mark
Gui, Destroy
gosub reload
return
}
;-----------------------------------------------------------------------------------------------------
SuspendHotkey:
SendInPut, {CTRLDOWN}2{CTRLUP}
return
;-----------------------------------------------------------------------------------------------------
;-----------------------------------------------------------------------------------------------------
listAdd( byRef list, item, del="," ) {
list:=( list!="" ? ( list . del . item ) : item )
return list
}
;-----------------------------------------------------------------------------------------------------
listDelItem( byRef list, item, del=",") {
ifEqual, item,, return list
list:=del . list . del
StringReplace, list, list, %item%%del%
StringTrimLeft, list, list, 1
StringTrimRight, list, list, 1
return list
}
;-----------------------------------------------------------------------------------------------------
reload:
reload
return
;-----------------------------------------------------------------------------------------------------
Exit:
exitapp
return
;-----------------------------------------------------------------------------------------------------
01-10-2011
, 05:56 AM
Script never worked for me I couldn't figure it out. :-(
01-10-2011
, 01:00 PM
Join Date: Apr 2010
Posts: 21
got it to work, nice little script
01-10-2011
, 08:22 PM
Join Date: Apr 2010
Posts: 21
once the hands are compiled do i need to delete the .txt file in order to mark new hands? cause this morning it worked fine.. then i played another session later and marked a few other hands and trying to compiled them now but its not showing the new hands.. so i guess it didn't mark them.
01-11-2011
, 03:19 PM
Quote:
I've created the gamenumbers.txt manually, now when I press ctr-F1 (the command to start marking hands right?) a cmd prompt appears asking for the postgres password: -
Code:
C:\>"C:\Program Files\PostgreSQL\8.4\bin\psql.exe" "holdemmanager" "postgres" 0 <"C:\temp.txt" Password for user postgres:
01-11-2011
, 04:28 PM
If anyone can get this to work for me I will ship $20.
01-12-2011
, 04:12 PM
Join Date: Apr 2010
Posts: 21
a window should prompt for you to connect to the database and the password should be there
01-12-2011
, 04:16 PM
Join Date: Apr 2010
Posts: 21
when you mark hands with the script by pressing the hotkey, it automatically creates a gamenumbers.txt file with all the hands number written in it. once you're done marking hands, you press the other hotkey which will process it and make it available in HEM. if it asks for a pw, you can check my previous post
te3ce3 on stars.
te3ce3 on stars.
Last edited by khrome; 01-12-2011 at 04:17 PM.
Reason: mistake
01-12-2011
, 05:37 PM
thanks mate
01-13-2011
, 10:17 AM
Join Date: Dec 2008
Posts: 230
got a pm saying scripts not working after 1/11 update. Anoyone else ??
Personally I don't have any issues at all with the update
Personally I don't have any issues at all with the update
01-13-2011
, 12:10 PM
Join Date: Jan 2011
Posts: 49
Yeah i have probs to!
So here is what i noticed.
In the gamenumbers file it dosnt recognise any numbers. So it remains empty all the time. Even though i try to mark hands.
I have tried to delete it. But then it will not be made automaticly again. So ive made it manually.
Ive then tried putting in some randoms number for testing purpose and gets this:

Ive tried both to put the script in the /bin folder and at the root of C:
My other settings are:

It has always worked until last ftp update..
Please help me getting this awesome script working again!!!
So here is what i noticed.
In the gamenumbers file it dosnt recognise any numbers. So it remains empty all the time. Even though i try to mark hands.
I have tried to delete it. But then it will not be made automaticly again. So ive made it manually.
Ive then tried putting in some randoms number for testing purpose and gets this:

Ive tried both to put the script in the /bin folder and at the root of C:
My other settings are:

It has always worked until last ftp update..
Please help me getting this awesome script working again!!!
01-13-2011
, 12:15 PM
Join Date: Apr 2010
Posts: 21
works fine for me on stars, but also got a pm from a guy who wanted some help cause he had issues since the latest updates with FT, so you might want to check into it.
01-13-2011
, 12:36 PM
Join Date: Aug 2009
Posts: 1,700
Everything is working fine for me, tell me which stakes you play and i'll check it out there. I can try helping anyone through teamviewer.
01-13-2011
, 12:39 PM
Join Date: Jan 2011
Posts: 49
its 5.5$ on ftp... ive added you to msn max... hope you can help
Last edited by Miischaa; 01-13-2011 at 12:46 PM.
01-13-2011
, 03:16 PM
Join Date: Aug 2009
Posts: 1,700
Miischaa, i don't see any invitations in msn. Do you mean sngs 5.5$?
01-13-2011
, 05:28 PM
Join Date: Aug 2009
Posts: 1,700
There were some changes in sng table title on FT, here is fixed version
Code:
#noenv
#SingleInstance, Force
SetWinDelay,-1
settitlematchmode,2
Menu, Tray, NoStandard
;Menu, Tray, Icon, Markhands.ico,1,1
Menu, Tray, Add, Reload, Reload
Menu, Tray, Add, Change Settings, showgui
Menu, Tray, Default, Change Settings
Menu, Tray, Add, Suspend Hotkeys, SuspendHotkey
Menu, Tray, Add
Menu, Tray, Add, Submit to Database, l_processsql
Menu, Tray, Add, Exit, Exit
Gui, Submit
StringTrimRight, thisahk, A_ScriptName, 4
SetWorkingDir %A_ScriptDir%
IniRead, StarsHHLogFolderPath, %thisahk%.ini, LogFolder, StarsHHPath, %A_Space%
IniRead, FullTiltHHLogFolderPath, %thisahk%.ini, LogFolder, FullTiltHHPath, %A_Space%
IniRead, PostgresLogPath, %thisahk%.ini, LogFolder, postgrespath, %A_Space%
IniRead, postgresuser, %thisahk%.ini, LogFolder, postgresuser, %A_Space%
IniRead, postgresdb, %thisahk%.ini, LogFolder, postgresdb, %A_Space%
IniRead, HK_mark, %thisahk%.ini, LogFolder, HK_mark, %A_Space%
IniRead, HK_sql , %thisahk%.ini, LogFolder, HK_sql , %A_Space%
If (!StarsHHLogFolderPath or !FullTiltHHLogFolderPath or !PostgresLogPath or !postgresuser or !postgresdb)
{
gosub GetMHSettings
}
if HK_mark
HotKey, %HK_mark%, l_markhand
if HK_sql
HotKey, %HK_sql%, l_processsql
IfExist, gamenumbers.txt
gosub deletetext
settimer,checksize,55
return
^2::
Suspend
Return
l_markhand:
winget,id,id,A
wingetclass,class,ahk_id%id%
if class=PokerStarsTableFrameClass
{
site=Stars
dir:=StarsHHLogFolderPath
}
else
if class=QWidget
{
site=FullTilt
dir:=FullTiltHHLogFolderPath
}
else
site=
if site
{
filename:=HHFile(id, dir ,site)
fileread,tempstr,%filename%
tempstr=
sleep,50
FileGetSize, FileSize, % filename
if !FileSize
FileSize:=0
listadd(filelist, id . "-" . FileSize)
}
return
l_processsql:
IfExist, temp.txt
FileDelete, temp.txt
IfExist, temp.bat
FileDelete, temp.bat
loop gamenumbers.*
FileRead, numbers, %A_LoopFileName%
if numbers
{
sql1=Update pokerhands
sql2=Set mark_id = 1
sql3=Where gamenumber =
sql4=AND handtimestamp > localtimestamp - interval '1 days';
sql5=Update pokerhands_hero
Loop, Parse, numbers, `n,
{
if A_loopField
{
FileAppend, %sql1% %sql2% %sql3% %A_loopField% %sql4%`n, temp.txt
FileAppend, %sql5% %sql2% %sql3% %A_loopField% %sql4%`n, temp.txt
}
}
FileAppend, "%PostgresLogPath%\psql.exe"%A_space%"%postgresdb%"%A_space%"%postgresuser%"%A_space%0<"%A_ScriptDir%\temp.txt"`r`npause`n, temp.bat
run temp.bat
}
else
msgbox, gamenumbers.txt file doesn't exist or file is empty.
numbers=
return
;-----------------------------------------------------------------------------------------------------
checksize:
Loop, Parse, filelist, `,
{
stringsplit,tab,A_loopField,-
wingetclass,class,ahk_id%tab1%
if class=PokerStarsTableFrameClass
{
site=Stars
dir:=StarsHHLogFolderPath
}
else
if class=QWidget
{
site=FullTilt
dir:=FullTiltHHLogFolderPath
}
filename:=HHFile(tab1, dir ,site)
fileread,tempstr,%filename%
tempstr=
sleep,50
FileGetSize, FileSize, % filename
if FileSize
if FileSize!=%tab2%
{
num:=gethhnumber(tab1,site)
FileAppend, %num%`n, gamenumbers.txt
listDelItem(filelist, A_loopField)
}
}
return
;-----------------------------------------------------------------------------------------------------
gethhnumber(winid,site)
{
global StarsHHLogFolderPath,FullTiltHHLogFolderPath
if site=Stars
path=%StarsHHLogFolderPath%
else
path=%FullTiltHHLogFolderPath%
hh:=LastHH(winid,path,site)
Loop, Parse, hh, `n
{
if instr(A_loopfield,"Game #")
{
stringtrimleft,num,A_loopfield,instr(A_loopfield,"#")
stringleft,num,num,instr(num,":")-1
break
}
}
return num
}
;-----------------------------------------------------------------------------------------------------
HHFile(win, dir, site) {
if site=Stars
ext=HH
else
ext=FT
title := WinGetTitle(win)
if !(instr(title,"Tournament")>0 || instr(title,"Sit & Go")>0 || instr(title,"Sit&Go")>0 || instr(title,"table")>0 || instr(title,"Satellite")>0)
{
stringleft,file,title, InStr(title, "-","",0)-2
file := ext . SubStr(a_now, 1, 8) . A_space . file
StringReplace, file, file, /,-,
if site=Stars
{
StringReplace, file, file, USD -,- USD,
StringReplace, file, file, EUR -,- EUR,
}
}
else
if site=Stars
{
stringtrimleft,file,title,instr(title,"Tournament")+10
stringleft,file,file,InStr(file, A_space)-1
}
else
{
stringleft,file,title,InStr(title, "-","",instr(title,"Table"))-2
stringleft,file1,title,InStr(title, ")","",0)
}
loop %dir%\*.txt
{
if instr(A_LoopFileName,file)>0 & !instr(A_LoopFileName,"Summary")>0
return dir "\" A_LoopFileName
}
if instr(title,"Table")
{
if file1
{
loop %dir%\*.txt
{
if instr(A_LoopFileName,file1)>0 & !instr(A_LoopFileName,"Summary")>0
return dir "\" A_LoopFileName
}
}
return 0
}
EnvAdd, date, -1, d
stringleft,file,title, InStr(title, "-","",0)-2
file := ext . SubStr(date, 1, 8) . A_space . file
StringReplace, file, file, /,-,
if site=Stars
{
StringReplace, file, file, USD -,- USD,
StringReplace, file, file, EUR -,- EUR,
}
loop %dir%\*.txt
{
if instr(A_LoopFileName,file)
return dir "\" A_LoopFileName
}
EnvAdd, date, +1, d
stringleft,file,title, InStr(title, "-","",0)-2
file := ext . SubStr(date, 1, 8) . A_space . file
StringReplace, file, file, /,-,
if site=Stars
{
StringReplace, file, file, USD -,- USD,
StringReplace, file, file, EUR -,- EUR,
}
loop %dir%\*.txt
{
if instr(A_LoopFileName,file)
return dir "\" A_LoopFileName
}
}
return
;-----------------------------------------------------------------------------------------------------
LastHH(win, dir, site) {
wingettitle,title,ahk_id%win%
stringtrimleft,hero,title,instr(title,A_space,"",0)
heroaction1:=hero . A_space . "calls"
heroaction2:=hero . A_space . "bets"
heroaction3:=hero . A_space . "raises"
if site=Stars
game=PokerStars Game #
else
game=Full Tilt Poker Game #
file@name:=HHFile(win, dir ,site)
fileread,tempstr,%file@name%
tempstr=
sleep,50
FileRead, hh, %file@name%
if !instr(hh,"seat")
{
FileGetSize,file@size, %file@name%
FileRead,file@buffer, %file@name%
VarSetCapacity(hh, file@size / 2 + 1, 0)
r := DllCall("WideCharToMultiByte"
, "UInt", 0 ; CodePage: CP_ACP=0 (current Ansi), CP_UTF7=65000, CP_UTF8=65001
, "UInt", 0 ; dwFlags
, "Str", file@buffer ; LPCWSTR lpWideCharStr
, "Int", file@size / 2 ; cchWideChar: -1=null terminated
, "Str", hh ; LPSTR lpMultiByteStr
, "Int", file@size / 2 + 1 ; cbMultiByte: 0 to get required size
, "UInt",0 ; LPCSTR lpDefaultChar
, "UInt", 0) ; LPBOOL lpUsedDefaultChar
}
StringTrimLeft, hh, hh, InStr(hh, game, "", 0)-1
if instr(hh,"SUMMARY")
Stringleft, hh, hh, InStr(hh, "*** SUMMARY", "", 0)-1
return hh
}
;-----------------------------------------------------------------------------------------------------
WinGetTitle(win) {
WinGetTitle, title, ahk_id%win%
return title
}
;-----------------------------------------------------------------------------------------------------
StrRep(str,char,rep_char="",all=1) {
StringReplace,str,str,%char%,%rep_char%,% all ? "useErrorLevel" : 0
return str
}
;-----------------------------------------------------------------------------------------------------
StarsHHFolderSelect:
FileSelectFolder, SelectedFolder, *%ProgramFiles%\PokerStars\,, Select the folder with the PokerStars handhistory files
SelectedFolder := RegExReplace(SelectedFolder, "\\$") ; Removes the trailing backslash, if present.
SelectedFolder := RegExReplace(SelectedFolder, "\$")
If SelectedFolder <> ;the user selected a folder
{
GuiControl,, StarsHHLogFolderPath, %SelectedFolder%
StarsHHLogFolderPath := SelectedFolder
IniWrite, %StarsHHLogFolderPath%, %thisahk%.ini, LogFolder, StarsHHPath
Gui, Submit, NoHide
}
return
;-----------------------------------------------------------------------------------------------------
FullTiltHHFolderSelect:
FileSelectFolder, SelectedFolder, *%ProgramFiles%\Full Tilt Poker\,, Select the folder with the FullTilt handhistory files
SelectedFolder := RegExReplace(SelectedFolder, "\\$") ; Removes the trailing backslash, if present.
SelectedFolder := RegExReplace(SelectedFolder, "\$")
If SelectedFolder <> ;the user selected a folder
{
GuiControl,, FullTiltHHLogFolderPath, %SelectedFolder%
FullTiltHHLogFolderPath := SelectedFolder
IniWrite, %FullTiltHHLogFolderPath%, %thisahk%.ini, LogFolder, FullTiltHHPath
Gui, Submit, NoHide
}
return
;-----------------------------------------------------------------------------------------------------
PostgresBinFolderSelect:
FileSelectFolder, SelectedFolder, *%ProgramFiles%\PostgreSQL\,, Select the folder with the Postgres binary files
SelectedFolder := RegExReplace(SelectedFolder, "\\$") ; Removes the trailing backslash, if present.
SelectedFolder := RegExReplace(SelectedFolder, "\$")
If SelectedFolder <> ;the user selected a folder
{
GuiControl,, PostgresLogPath, %SelectedFolder%
PostgresLogPath := SelectedFolder
IniWrite, %PostgresLogPath%, %thisahk%.ini, LogFolder, postgrespath
Gui, Submit, NoHide
}
return
;-----------------------------------------------------------------------------------------------------
postgresuserselect:
InputBox, postgresuser,, enter Postgres Username
IniWrite, %postgresuser%, %thisahk%.ini, LogFolder, postgresuser
return
;-----------------------------------------------------------------------------------------------------
postgresdbselect:
InputBox, postgresdb,, enter Postgres Datbase Name
IniWrite, %postgresdb%, %thisahk%.ini, LogFolder, postgresdb
return
;-----------------------------------------------------------------------------------------------------
listAdd( byRef list, item, del="," ) {
list:=( list!="" ? ( list . del . item ) : item )
return list
}
;-----------------------------------------------------------------------------------------------------
listDelItem( byRef list, item, del=",") {
ifEqual, item,, return list
list:=del . list . del
StringReplace, list, list, %item%%del%
StringTrimLeft, list, list, 1
StringTrimRight, list, list, 1
return list
}
;-----------------------------------------------------------------------------------------------------
reload:
reload
return
;-----------------------------------------------------------------------------------------------------
Exit:
exitapp
return
;-----------------------------------------------------------------------------------------------------
SuspendHotkey:
suspend,toggle
return
;-----------------------------------------------------------------------------------------------------
GetMHSettings:
Gui, Add, Text, x10 y5 w120 h20 Center, Select Folder Location
Gui, Add, Text, x140 y5 w150 h20 Center, Folder Location
Gui, Add, Button, x5 y20 w150 h20 gPostgresBinFolderSelect center, Postgres Binary Folder
Gui, Add, Edit, x160 y20 w520 h20 vPostgresLogpath, %PostgresLogpath%
Gui, Add, Button, x5 y40 w150 h20 gStarsHHFolderSelect center, Poker Stars HH Folder
Gui, Add, Edit, x160 y40 w520 h20 vStarsHHLogFolderPath, %StarsHHLogFolderPath%
Gui, Add, Button, x5 y60 w150 h20 gFullTiltHHFolderSelect center, Full Tilt HH Folder
Gui, Add, Edit, x160 y60 w520 h20 vFullTiltHHLogFolderPath, %FullTiltHHLogFolderPath%
Gui, Add, Text, x5 y120 w150 h20 right, Postgres User Name:
Gui, Add, Edit, x160 y120 w100 h20 vpostgresuser, %postgresuser%
Gui, Add, Text, x5 y140 w150 h20 right, Postgres Database:
Gui, Add, Edit, x160 y140 w100 h20 vpostgresdb, %postgresdb%
Gui, Add, Text, x5 y160 w150 h20 right, Hotkey "mark current Hand" :
Gui, Add, HotKey, x160 y160 w100 h20 vHK_mark, %HK_mark%
Gui, Add, Text, x5 y180 w150 h20 right, Hotkey "process sql":
Gui, Add, HotKey, x160 y180 w100 h20 vHK_sql, %HK_sql%
Gui, Add, Button, w40 h30, OK ; The label ButtonOK (if it exists) will be run when the button is pressed.
Gui, Show,, Markhand
return
showgui:
Gui, Show,, Markhand
return
ButtonOK:
GuiClose:
GuiEscape:
Gui, Submit,nohide
IniWrite, %postgresdb%, %thisahk%.ini, LogFolder, postgresdb
IniWrite, %postgresuser%, %thisahk%.ini, LogFolder, postgresuser
IniWrite, %PostgresLogPath%, %thisahk%.ini, LogFolder, postgrespath
IniWrite, %FullTiltHHLogFolderPath%, %thisahk%.ini, LogFolder, FullTiltHHPath
IniWrite, %StarsHHLogFolderPath%, %thisahk%.ini, LogFolder, StarsHHPath
IniWrite, %HK_sql%, %thisahk%.ini, LogFolder, HK_sql
IniWrite, %HK_mark%, %thisahk%.ini, LogFolder, HK_mark
Gui,Cancel
return
;---------------------------------------------------------------------------------------------------
deletetext:
MsgBox, 4,, Delete existing file gamenumbers.txt? (press Yes or No)
IfMsgBox Yes
FileDelete, gamenumbers.txt
return
;---------------------------------------------------------------------------------------------------
01-15-2011
, 09:07 AM
I didnt try to mark hands jet, but I cant access to settings.
When I run script it appears in system tray, but when I choose "Change Settings" nothing happens, there is no window to change locations and/or hotkeys..
I still got old "markhand.ini" file in "PostgreSQL\8.4\bin", maybe new .ini is required?
When I run script it appears in system tray, but when I choose "Change Settings" nothing happens, there is no window to change locations and/or hotkeys..
I still got old "markhand.ini" file in "PostgreSQL\8.4\bin", maybe new .ini is required?
Feedback is used for internal purposes. LEARN MORE
Powered by:
Hand2Note
Copyright ©2008-2022, Hand2Note Interactive LTD