Перейти на форум
Уведомления
Очистить все

usunpokertools - бесплатная пробивка в OPR, SharkScope, ProLabs в HUD нотсы

354 Посты
36 Пользователи
3 Реакции
80.9 Тыс. Просмотры

Оригинал пользователя Tramantana09
У тебя раньше в todo списке было : последних добавленных пробивать первыми. Это уже реализовано или пока отложил ?
Мысль появилась -- в хенд хистори уровень блайндов же можно посмотреть. Было бы прикольно добавить приоритет пробивки по уровню блайдов.
Для тех ко сесию сетами играет == разницы нету , там все само-собой получается, а для тех кто нон-стопом или много столов сразу -- было бы значительно удобнее.
Тобишь == на тех столах где блайнды выше -- пробивать в первую очередь новых.

небольшие улучшения есть, теперь новых игроков (т.е. тех, которые добавились с предыдущего цикла, до того как уснуть) будет пробивать первыми. Практический смысл этого, только если большая порция не найденых была с предыдущих (или с прокси временные проблемы). Может быть их даже и в порядке от последнего берет в рамках каждой новой порции - но на это не стоит полагаться, от рума зависит.
Мне только сейчас пришло в голову, как их еще можно чуть лучше выстраивать в очередь - сортируя файлы по дате модификации, чего я не сделал еще - тормознул, признаю. Я вернул этот пункт в TODO, будет сделано через релиз, после того как отрефакторю все глобально и добавлю пролабс поддержку (или какую другую - еще посмотрю).

увы более тонкая сортировка, типа как по блайндам не будет реализована в обозримом будущем - она потребует куда более тонкий парсинг хэнд хистори для всех румов. Мало того, что это технически гораздо сложнее и породит множество багов и проблем пока не устаканится, но и сделает тулы очень зависимыми от любого апдейта рума в плане формата хэндхистори - от чего меня пока защищает максимальная топорность текущих алгоритмов парсинга.

И вообще, тулы пока мало предназначены для сильного мультитейблинга, потому совершенно не годятся для раша, и больших сетов SNG-MTSNG. Тут даже не в порциях и порядке дело - а в общей организации, они не потянут пока большой нагрузки. Но в планах у меня есть замена локальных кэшей на базу данных и там же я проведу нагрузочное тестирование, что производительность должно увеличить в несколько раз само по себе и сделает впринципе возможным использовать ее и для настоящих мультитейблеров с SNG-MTSNG. Может быть Opentool лучше подходит пока для большой нагрузки - не знаю, не щупал :)


Ответить
Цитата
Tramantana09
Зарегистрирован: 13.07.2010

Оригинал пользователя usun
Мне только сейчас пришло в голову, как их еще можно чуть лучше выстраивать в очередь - сортируя файлы по дате модификации.

Супер :f_thumbsup:!!! Это как раз и будет то что нужно, смысл по блайндам парсить отпадает == тот файл который был первым создан и будет иметь наивысший приоритет.

По поводу увеличения быстродействия -- может имеет смысл запаралелить пробивку и обработку результатов ? у меня за минуту в среднем 3 опа пробивает -- интересно как у других ?
Сейчас просмотрел кеш -- 22к записей -- а при 6 столах уже виснуть проц начинает (50% загрузки ). Тоже любопытно как у других работает?
Хочу попробовать перебросить тул на другой комп -- чтоб на одном играть нормально без лагов ,а второй пробивку и запись в базу делал . Как думаешь -- получится ?

Все таки не покидает желание подстроить тул под свои нужды , а именно field size 45мах. Крупные заносы в МТТ искажают реальную картину (. Появились новые мысли по старой теме , сделаю перепост :

Spoiler

На примере для игрока Mecrusse покер-рум - PokerStars Field Size - 11-45 я правильно понимаю ? запрос получается вида, :

 http://www.officialpokerrankings.com/content/DistributedDetails.asp?playerid=4757364A-B2E1-427E-BC24-166F4BF707C5&details_type=3&details_monthid=999999&details_gamesizeid=3&DTCHECK=22152076&DD=9&ShowZero=&period=201111&EstMax=2 

details_gamesizeid=3 -- это как раз для 11-45 мах details_gamesizeid=4 - для 46-180 из таблицы нужно выпарсить вот эту строчку - $0 - $5($4.99) $17,117 $2,197 15% $1.25 45 0% 2417/11900 20% 2/9/52/26/11 PlayerID у тебя есть. На первый взгляд вроде не сложно. Ты через этот GET запрос работаешь ?

Оригинал пользователя usun
Вот что у меня в кэше на каждого пробитого по OPR.

TOTAL: +9ROI/16ITM/1825($10)/$20.1k($1.7k)/3380AFS/30RA 9/16/38/22/14

$0 - $5($4.99): +25ROI/17ITM/1042($5)/$7.4k($1.5k)/3072AFS/46RA 7/13/39/25/16
$5 - $10: -18ROI/13ITM/312($9)/$2.4k($-1)/2076AFS/15RA 12/21/39/18/10
$10 - $20: +80ROI/18ITM/360($13)/$8.7k($3.9k)/5925AFS/3RA 13/17/35/20/14
$20 - $40: -50ROI/16ITM/88($29)/$1.3k($-1)/1108AFS/3RA 7/22/39/20/12
$40 - $60: -53ROI/25ITM/12($58)/$324($-1)/5683AFS/8RA 25/25/25/0/25
$60 - $100: -100ROI/0ITM/6($79)/$0($-1)/226AFS/0RA 17/17/67/0/0
$100 - $200: -100ROI/0ITM/3($179)/$0($-1)/1898AFS/33RA 0/67/33/0/0
$200 - $400: -100ROI/0ITM/2($215)/$0($-1)/6575AFS/0RA 0/50/50/0/0

А если когда первого дефолтного игрока пробиваешь ,задать details_gamesizeid=4, по идее все остальные пробивки уже для 45-180 будут идти. Парсишь ты всеравно одну и туже таблицу -- структура данных не поменяется в кеше. Вроде все сходится . Поправь если ошибаюсь.


Ответить
Цитата

Оригинал пользователя Tramantana09

Оригинал пользователя usun
Мне только сейчас пришло в голову, как их еще можно чуть лучше выстраивать в очередь - сортируя файлы по дате модификации.

Супер :f_thumbsup:!!! Это как раз и будет то что нужно, смысл по блайндам парсить отпадает == тот файл который был первым создан и будет иметь наивысший приоритет.

По поводу увеличения быстродействия -- может имеет смысл запаралелить пробивку и обработку результатов ? у меня за минуту в среднем 3 опа пробивает -- интересно как у других ?
Сейчас просмотрел кеш -- 22к записей -- а при 6 столах уже виснуть проц начинает (50% загрузки ). Тоже любопытно как у других работает?
Хочу попробовать перебросить тул на другой комп -- чтоб на одном играть нормально без лагов ,а второй пробивку и запись в базу делал . Как думаешь -- получится ?

Все таки не покидает желание подстроить тул под свои нужды , а именно field size 45мах. Крупные заносы в МТТ искажают реальную картину (. Появились новые мысли по старой теме , сделаю перепост :

Spoiler

На примере для игрока Mecrusse покер-рум - PokerStars Field Size - 11-45 я правильно понимаю ? запрос получается вида, :

 http://www.officialpokerrankings.com/content/DistributedDetails.asp?playerid=4757364A-B2E1-427E-BC24-166F4BF707C5&details_type=3&details_monthid=999999&details_gamesizeid=3&DTCHECK=22152076&DD=9&ShowZero=&period=201111&EstMax=2 

details_gamesizeid=3 -- это как раз для 11-45 мах details_gamesizeid=4 - для 46-180 из таблицы нужно выпарсить вот эту строчку - $0 - $5($4.99) $17,117 $2,197 15% $1.25 45 0% 2417/11900 20% 2/9/52/26/11 PlayerID у тебя есть. На первый взгляд вроде не сложно. Ты через этот GET запрос работаешь ?

Оригинал пользователя usun
Вот что у меня в кэше на каждого пробитого по OPR.

TOTAL: +9ROI/16ITM/1825($10)/$20.1k($1.7k)/3380AFS/30RA 9/16/38/22/14

$0 - $5($4.99): +25ROI/17ITM/1042($5)/$7.4k($1.5k)/3072AFS/46RA 7/13/39/25/16
$5 - $10: -18ROI/13ITM/312($9)/$2.4k($-1)/2076AFS/15RA 12/21/39/18/10
$10 - $20: +80ROI/18ITM/360($13)/$8.7k($3.9k)/5925AFS/3RA 13/17/35/20/14
$20 - $40: -50ROI/16ITM/88($29)/$1.3k($-1)/1108AFS/3RA 7/22/39/20/12
$40 - $60: -53ROI/25ITM/12($58)/$324($-1)/5683AFS/8RA 25/25/25/0/25
$60 - $100: -100ROI/0ITM/6($79)/$0($-1)/226AFS/0RA 17/17/67/0/0
$100 - $200: -100ROI/0ITM/3($179)/$0($-1)/1898AFS/33RA 0/67/33/0/0
$200 - $400: -100ROI/0ITM/2($215)/$0($-1)/6575AFS/0RA 0/50/50/0/0

А если когда первого дефолтного игрока пробиваешь ,задать details_gamesizeid=4, по идее все остальные пробивки уже для 45-180 будут идти. Парсишь ты всеравно одну и туже таблицу -- структура данных не поменяется в кеше. Вроде все сходится . Поправь если ошибаюсь.

1) запареллелить пробивку - очень хорошая идея, многопоточность при этом решит еще одну надоедливую проблему - затор при зависе пробивки на каком-то оппе или изза плохой прокси. Подобная организация позволит добавить возможность отрубать пробивку по тайм ауту и пробовать другой прокси изсписка, если они есть.

Возможно многопоточность как таковая будет включена даже в след релиз как часть рефакторинга. Из минусов только риск нестабильной работы (если я облажаюсь и устрою где дедлок или плохую синхронизацию - но это мелочь, никто не мешает настроить только один поток). Еще минус, энтузиасты быстрой пробивки будут иметь риск бана со стороны OPR в несколько раз выше.

2) проблема большого кэша будет решена только когда я заменю локальные файлы кэша на нормальную базу данных. Это одна из основных фич в очереди, но будет не раньше чем через два релиза.

3) Если только сразу получится может где воткну эту фичу :)


Ответить
Цитата
Tramantana09
Зарегистрирован: 13.07.2010

Еще минус, энтузиасты быстрой пробивки будут иметь риск бана со стороны OPR в несколько раз выше.

Кстати -- после последнего апдейта OPR -- бан по IP пока не наблюдался .. Хотя катаю не меньше . Это у меня только так --или может они вообще его убрали ?


Ответить
Цитата

Да, пока банить перестали, думаю просто новую систему и процесс внедряют а пока статистику собирают. На старой системе слишком топорно банили, наверное жалоб много было.

Я приступил к дизайн фазе рефакторинга для релиза 0.12.
Я веду документацию для промежуточного планирования и дизайн на английском вот тут: https://sourceforge.net/p/usunpokertools/wiki/Technical%20Design/ - если кому интересно, и вдруг есть какие предложения по исправлению или улучшению, можно поднять аларму заранее, ибо после того как я проведу рефакторинг шансы на исправления будут уменьшаться в прогрессии :)

Скоуп на рефакторинг к след релизу (он большой, может что-то выкинется):
- реорганизовать все Java packages

- все тулы по пробивке будут сгруппированы для лучшего реиспользования кода и расширений. Все они будут отныне работать с одного системного процесса и соотв будут иметь одну точку входа (т.е. придется мне таки прикрутить самый базовый UI, с несколькими кнопочками вместо тепершних bat файлов и пусть кидают свои логи в какую текст эрию на UI). это снимет большинство проблем со случайным запуском нескольких сканнеров одного типа, что портилобы локальный файл кэша (полностью проблема будет решена в будущем после миграции локальных кэшей тулов с файловой системы в локальную базу данных - и это именно тот момент, когда я наконец смогу начать добавлять графики в пробивке)

- все пробивки будут идти в отдельных потоках, с возможностью множества паралелльных пробивок для каждого типа пробивки.

- интеграция с базами данных трэкера будет немного отрефакторена, ибо сейчас там один большой костыль, так как изначально я писал только для PT3 интеграцию, соотв остальные базы висят рядом как уродливые подпорки.


Ответить
Цитата
Tramantana09
Зарегистрирован: 13.07.2010

Все -- Hello, Java world! в командной вывел :grin: Буду потихоньку разбираться дальше :f_biggrin:


Ответить
Цитата
Tramantana09
Зарегистрирован: 13.07.2010

Сегодня лаги в край достали, ноут водвешивало на 5-10сек. Всетаки проблема в большом файле кеше была -- удалил и забекапил. С новым -- вообще летает :f_thumbsup:


Ответить
Цитата
BOBKAhappy
Зарегистрирован: 13.02.2010

вод как ты ей пользуешься не работает =(((


Ответить
Цитата
PYKMEN
Зарегистрирован: 09.11.2010

Оригинал пользователя usun
Я так пересмотрел свою инструкцию по установке и настройке тулов, и выглядит она пугающе наверное для новых пользователей, вот решил сделать облегченный ее вариант для быстрой дефолтной установки (на примере 0.10 версии).
Добавил этот раздел в основном пост о тулах.

0. Быстрая установка - Quick Start
Облегченные необходимые шаги минимальные. Детали в след пунктах, если возникнут затруднения.

Spoiler

1) скачайте и распакуйте PokerUtilsDistrib_* на свою файловую систему
2) установите Java5 или Java6 или Java7, например отсюда:
http://www.oracle.com/technetwork/java/javase/downloads/jdk-7u3-download-1501626.html

Windows x86 (32-bit) 84.12 MB jdk-7u3-windows-i586.exe
Windows x64 (64-bit) 87.41 MB jdk-7u3-windows-x64.exe

первая, если у Вас 32х разрядный комп и винда, вторую - если 64х разрядные
например путь установится в c:/Program Files/jdk_7u3

3) в /bin/_setEnv.bat раскомменьте (уберите rem ) и оставьте команду (нужный путь поставьте к Java): set JAVA_HOME=c:/Program Files/jdk_7u3

4) настройте /config/globalconfig.properties, минимум надо:
- список румов для автоимпорта ROOMS_4_AUTO_IMPORT,
- для каждого указанного выше рума - надо настроить свой ник ROOM_USERNAME_* в системе и список каталогов HAND_HISTORY_ROOT_* с которых автоимпорт проводить для данного рума
- настройки базы данных трэкера, с которой планируется интеграция (т.е. в чей HUD нотсы добавлять пробивки): POSTGRES_DB_*
- настройки OPR (логин и пароль только) OPR_*, если планируете ею пробивать
- настройки SharkScope (логин и пароль только) SHARK_SCOPE_*, если планируете ею пробивать

4) запускайте /bin/runOPRScanTables.bat - для авто импорта с OPR
/bin/runSSScanTables.bat - для авто импорта SharkScope

ТС у меня проблема. Какой то fatal при пробивке :pokerface:


Ответить
Цитата
Tramantana09
Зарегистрирован: 13.07.2010

Написал тебе в скайп. продублирую на всяк случай : Помоему для того чтобы фильтр работал с остальными поисками в OPRBaseLoginHttpTest после 194 строки -- в setSearchPrefence нужно просто добавить
// set default field size 11-45 this.webConversation.getResponse(this.webApplicationPath + "/set.asp?s=details_gamesizeid&i=" + 3);


Ответить
Цитата
Tramantana09
Зарегистрирован: 13.07.2010

PYKMEN - к базе трекера не может подключится -- проверь пароль и логин.


Ответить
Цитата
draftkd
Зарегистрирован: 04.01.2008

Оригинал пользователя BOBKAhappy
вод как ты ей пользуешься не работает =(((

+1 запииште кто-нибудь небольшое видео, что за программа.


Ответить
Цитата
PYKMEN
Зарегистрирован: 09.11.2010

Оригинал пользователя Tramantana09
PYKMEN - к базе трекера не может подключится -- проверь пароль и логин.

ммм.... а у меня HM. Сори я вообще в этом чайник :facepalm:


Ответить
Цитата
Tramantana09
Зарегистрирован: 13.07.2010

Если с паролями не изголялся -- то в globalconfig должно быть :
POSTGRES_DB_LOGIN=postgres
POSTGRES_DB_PASSWORD=postgrespass


Ответить
Цитата

PYKMEN: да, база не настроена, если это HM1, то надо настроить (если холдем менеджер дефолтно ставился то скорее всего такие значения по доступе к базе HM1, а иначе поставь имя своей базы и свой пароль для пользователя postgres):

POSTGRES_DB_TYPE=HoldemManager
POSTGRES_DB_URL=jdbc:postgresql://127.0.0.1:5432/holdemmanagerdb
POSTGRES_DB_LOGIN=postgres
POSTGRES_DB_PASSWORD=postgrespass

BOBKAhappy: как не работает, не качается что ли? если не качается, вот другая более быстрая ссылка: http://narod.ru/disk/39569719001.e71a4102a25c32fa81c5e19918e7865f/usun_freezout_ES.mp4.html - там конечно воды много, просто пример реальной сессии как использую тулы.

Да, я запишу скоро нормальное короткое обучающее видео как по установке и настройке, так и по использованию (ну использование простое - смотреть HUD notes для игроков)


Ответить
Цитата

Оригинал пользователя Tramantana09
Сегодня лаги в край достали, ноут водвешивало на 5-10сек. Всетаки проблема в большом файле кеше была -- удалил и забекапил. С новым -- вообще летает :f_thumbsup:
да, удаление кэша - простой самый способ (можно хранить старые файлы кэша, ибо есть возможность сливать их вместе при желании, и в будущем, когда я сделаю внутреннюю базу для тула, чтобы хранить кэши в базе - то можно будет сделать импорт в базу с этих старых кэшей).
Потому я наверное пока не рекоммендую качать отдельно мой локальный кэш 16 метров (40 тыс+ игроков пробитых), а начать с дефолтной установки и пустого кэша - работать будет в несколько раз быстрей и все равно вряд ли пользователи играют на тех же румах и турнирах что и я


Ответить
Цитата

Оригинал пользователя Tramantana09
Написал тебе в скайп. продублирую на всяк случай : Помоему для того чтобы фильтр работал с остальными поисками в OPRBaseLoginHttpTest после 194 строки -- в setSearchPrefence нужно просто добавить
// set default field size 11-45 this.webConversation.getResponse(this.webApplicationPath + "/set.asp?s=details_gamesizeid&i=" + 3);

ага, спасибо большое за исследование, добавлю как только так сразу :)

ps. для новых читателей, которые интересуются, что за программа вообще и для чего: вот собственно коммерческий аналог (только у меня он результаты в HM1, PT3,4 нотсы сам пишет, а не выглядит как отдельный HUD, и еще он SharkScope у меня поддерживает и ряд других румов) OpenTool - софт для OPR - я его рекоммендую, если требуется большая нагрузка для пробивок и есть необходимость в нормальном живом саппорте, да и вообще свистелок и гуделок там больше :)


Ответить
Цитата

Я отрезал кусок того видео большого, где небольшое демо, как я использую тулы, MP4, 21mb, 12 минут:
http://narod.ru/disk/45477435001.b4df0ccb18eff7ffb2c6b8f525c4b416/usunpokerutils_demo1.mp4.html
http://ul.to/ckud9hlc


Ответить
Цитата
Tramantana09
Зарегистрирован: 13.07.2010

таки похоже прикрутил я свою хотелку-свистелку==буду тестить. Не такая она и страшная эта жаба _biggrin:. Еще раз большое спасибо за толково и прозрачно написаный код!!!!!
Заметил один нюанс- может и не критично будет --когда базы подвесишь.Но сейчас у меня(с новым кешем) в нотсы по второму кругу начало данные писать с t3:.(((


Ответить
Цитата

круто, вот и первая кастомизация :) [жаль что в след релизе камня от камня от теперешней архитектуры не останется :coolface: ]

это да, есть такой эффект. не найдя в кэше он пробивает заново с новым префиксом:
t<версия из OPR_PLAYER_INFO_VERSION проперти><а тут текущая дата пробивки, формат ее из OPR_PREFIX_DATE_FORMAT>

сам формат нотса и перфикса:
OPR_NOTES_TEMPLATE=t${playerInfoVersion}${prefixDate}: ${distanceMark}${ROI}ROI/${ITM}ITM/${distance}($${ABI})/${AFS}AFS/${RA}RA/$${prizes}(${profit}) ${stagesFinish}

т.е. имея дату в префиксе ${prefixDate} - она будет на новой пробивке ставить текущаю дату, а в HUD нотсе префикс со старой датой, потому он посчитает, что это не дубликат, а нормальная новая пробивка (например что срок годности истек пробивки и из кжша он был удален автоматически) и добавит строчку новую.

я не тестил, но теоретически можно поменять префикс в шоблоне и выкинуть ${prefixDate} и оставить t${playerInfoVersion}: ${distanceMark}${ROI}ROI/${ITM}ITM/${distance}($${ABI})/${AFS}AFS/${RA}RA/$${prizes}(${profit}) ${stagesFinish}
- но тогда даже если пробивка стухла и пробивает заново через год, то он не добавит новую стрчку в HUD нотса ибо будет считать, что это дубликат. Но это на будущее, текущие нотсы так уже не пофиксаются. ТОлько прямым sql скриптом по базе Postgre SQL можнго подчистить.


Ответить
Цитата