ezabus / match-sync

0 stars 1 forks source link

Hi, Evgeny. Can you please help me with your code? #1

Closed SportsDataPlayground closed 3 years ago

SportsDataPlayground commented 3 years ago

Евгений, привет. Заметил твой репозиторий.

Я не владею JS, вообще далек от веб программирования. 10 лет назад программировал на С++, но уже много лет ничего не программировал. Хочу попробовать сделать для своей фэнтэзи команды со спортса автоматизацию, может быть какого-то бота в ТГ, который будет при наборе фо игроком по данным спортса сообщать об этом подписчикам в группу в ТГ.

Вижу по исходникам, что кажется, у тебя в репе попытка решить задачу вытягивания со спортса данных про команды, составы, и пр. У тебя получилось, это рабочий код?

Не мог бы ты немного пояснить мне (sports.ru.006@gmail.com), как запустить его в работу и реально что-то вытащить со спортса программно?

Я скачал твой репозиторий, открыл папку в Visual Studio Code, но что дальше?

Нужно что-то поставить, развернуть, настроить?

Где тут main?

Как его запустить?

Буду очень признателен, если подскажешь что сделать, откуда начать.

PS Если будет время, еще интересно, почему ты выбрал js, а не какой-то другой язык? В попытках найти проект для старта и проект, где бы был open live score feed (или не открытый, но чтобы было надежным вытягивание, как у Князева со спортса) перебрал наверное сотню, если не две разных репозиториев на гитхабе и поиском в Сети. Везде разные языки, технологии, голова кругом от того что везде нужны теперь тонны зависимостей и каких-то prerequisites и спец окружений. раньше было как-то попроще, теперь без подготовки ничего не запустишь вот так просто даже проверить работает или нет :-((

ezabus commented 3 years ago

Привет!

Подскажи, как лучше к тебе обращаться?

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

Основной принцип простой. Данные о составах можно получить по ссылке следующего вида: https://www.sports.ru/fantasy/football/team/points/2239474/10500.json Здесь 2239474 - id команды, а 10500 id тура, который можно рассчитать как "id нулевого тура" (в этом сезоне это 10496) + номер тура. Sports в ответ отдаёт данные в формате JSON с составами команды.

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

JS выбрал по причине удобства работы с вебом: нативная поддержка JSON + библиотеки для парсинга html существенно помогают. И плюс это мой основной язык, возможно я предвзят в своём выборе :)

Расскажи пожалуйста про свою задачу подробнее? Был бы очень рад помочь.

С уважением, Евгений

сб, 10 окт. 2020 г. в 22:29, SportsDataPlayground <notifications@github.com

:

Евгений, привет. Заметил твой репозиторий.

Я не владею JS, вообще далек от веб программирования. 10 лет назад программировал на С++, но уже много лет ничего не программировал. Хочу попробовать сделать для своей фэнтэзи команды со спортса автоматизацию, может быть какого-то бота в ТГ, который будет при наборе фо игроком по данным спортса сообщать об этом подписчикам в группу в ТГ.

Вижу по исходникам, что кажется, у тебя в репе попытка решить задачу вытягивания со спортса данных про команды, составы, и пр. У тебя получилось, это рабочий код?

Не мог бы ты немного пояснить мне (sports.ru.006@gmail.com или @Red_GM в ТГ), как запустить его в работу и реально что-то вытащить со спортса программно?

Я скачал твой репозиторий, открыл папку в Visual Studio Code, но что дальше?

Нужно что-то поставить, развернуть, настроить?

Где тут main?

Как его запустить?

Буду очень признателен, если подскажешь что сделать, откуда начать.

PS Если будет время, еще интересно, почему ты выбрал js, а не какой-то другой язык? В попытках найти проект для старта и проект, где бы был open live score feed (или не открытый, но чтобы было надежным вытягивание, как у Князева со спортса) перебрал наверное сотню, если не две разных репозиториев на гитхабе и поиском в Сети. Везде разные языки, технологии, голова кругом от того что везде нужны теперь тонны зависимостей и каких-то prerequisites и спец окружений. раньше было как-то попроще, теперь без подготовки ничего не запустишь вот так просто даже проверить работает или нет :-((

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/ezabus/match-sync/issues/1, or unsubscribe https://github.com/notifications/unsubscribe-auth/ACH6YEXNMHH6OWHPEZBMWH3SKCYYTANCNFSM4SLIHX6Q .

SportsDataPlayground commented 3 years ago

Спасибо большое, что откликнулся и готов помочь. Зови Валерий.

Конкретной задачи как таковой пока нет. Ниже поймешь, почему.

Реально задач \ идей много, несовершенство что фэнтэзи-спортса, что даже Х2Х Князева уже очевидны. Замахиваться на их переделку, впрочем, пока именно мне никак невозможно, там множество проблем, что в редакторе составов с UX и банальными багами, что с чатом под ним (можно прокинуть в ТГ опять же эти коммуникации и не открывать спортс вообще, чтобы с завсегдатаем фэнтэзи чатов спортса Баджеем пообщаться), что... да куда ни ткни )

Князеву поставляю багрепорты и рацпредложения постоянно, но он отказывается проект с кем-то еще вести, хотя видно, что уже не тянет (отдельная история почему). Цели развиваться и расти у него тоже нет.

Короче, решил, что мне надо с чего-то начать и попробовать восстановить навык программирования, лучше это делать на любимом увлечении. Поэтому идея для начала простая - научиться подписаться и реагировать на livescore events. По возможности без поллинга, а как положено это сделать, на событиях.

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

Далее, по идее, надо бы научиться эффективно работать со своими Х2Х командами (на спортсе, у князева, может быть, даже через механизм коннекторов, с любыми другими площадками - у нас кто то в ФФК играет на фантиме с FPL) и сразу с командами всего своего ФФК. Т.е. автоматизация не только для себя одного, но масштабируемо для группы тоже.

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

Коммуникация - может быть, сайт даже какой-то прям спец уже и не нужен, все в ТГ сидят фэнтэзи ребята, тут по идее чат-бот более нужен и если он будет толковый, то его хватит даже делать замены, я смотрел что у них в SDK рекламируется, там есть и GUI и игры в ТГ-ботах, впоне для фэнтэзи хватит.

Но с чего начать? кроме счетов для предиктора, можно попробовать соотнести livescore feed с составами команд в своей ФФК \ подписчика и сообщать, например, когда дали состав - сразу share в группу в ТГ (у нас отдельными группами в ТГ по странам и ЕК оформлены) картинкой, что появились составы (сейчас это руками люди делают, когда на sofascore.com состав появился - и все начинают своих искать - вышел или не вышел).

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

Дальше, из относительно простого, просто сообщать, что набрал\потерял фо кто-то из игроков подписчика, с выдачей того, как это меняет шансы на победу в дуэлях\матчах на Х2Х в этом свете. Скажем, ФФК резко начинает проигрывать. А то все сидят и считают, сколько там у соперников Неймарокэпов, сколько у нас Мбаппекэпов и после каждого асссиста вручную прокликивают по 6 дуэлей в неск матчей на предмет что изменилось.

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

В целом играть стало что-то тяжело, времени уходит много да и выгорел за много лет. Думаю или завязывать с фэнтэзи вообще (и удаляться из нашего ФФК в ТГ и вообще закрыть спортс и Х2Х Князева, но тут ФФК наш может развалиться, там многие устали и никто не программирует) или попробовать найти интерес, как в молодости, в программировании, если только молодые не ушли еще совсем далеко вперед :-)

Летом год назад у меня были попытки что-то сделать, например, на PHP у меня получалось добраться до данных на страничке спортса, используя репозиторий Анисимова. Но потом возникла проблема с публикацией телеграмбота, не смог победить подпись через letsencrypt, а чем нужным подписать под рукой тогда не было - и кроме как локально я его не смог даже запустить :-(

Т.е. на уровне, где там у спортса выковыривать данные я примерно понимаю, но уже не очень понимаю, как все это правильно (быстро и эффективно по памяти) парсить (чем), как хранить в БД (или еще где), кэшировать, чтобы не нарваться с поллингом на количество запросов в ед времени ограничения (но не хотелось бы и потерять в оперативности \ real time в лайве), чтобы не забанили аккаунт на спортсе и пр.

Никогда не программировал ничего для клауда и даже с БД не работал, не верстал и HTML \ CSS темный лес, не использовал (но очень хочу попробовать) очередей сообщений типа Kafka и микросервисов, короче, все что происходит нынче в мире Frontend и мобильной разработки для меня кажется большим зоопарком, где просто нереально все охватить, оно банально устареет пока я что-то пойму. Это вводит в определенный ступор.

Сейчас вроде погуглил - поставил nvm и поднял node.js, чтобы твои js попробовать запустить, вот что вышло:

match-sync@1.0.0 test c:\Users\Valery\source\repos\match-sync-master echo "Error: no test specified" && exit 1

[Running] node "c:\Users\Valery\source\repos\match-sync-master\ecosystem.config.js"

[Done] exited with code=0 in 0.286 seconds

[Running] node "c:\Users\Valery\source\repos\match-sync-master\src\sportsRuLineupLoader.js"

[Done] exited with code=0 in 0.282 seconds

[Running] node "c:\Users\Valery\source\repos\match-sync-master\src\database.js"

[Done] exited with code=0 in 0.226 seconds

[Running] node "c:\Users\Valery\source\repos\match-sync-master\src\Lineup.js"

[Done] exited with code=0 in 0.13 seconds

[Running] node "c:\Users\Valery\source\repos\match-sync-master\src\lineupCollector.js"

[Done] exited with code=0 in 0.264 seconds

[Running] node "c:\Users\Valery\source\repos\match-sync-master\src\Match.js"

[Done] exited with code=0 in 0.227 seconds

[Running] node "c:\Users\Valery\source\repos\match-sync-master\src\matchSync.js"

[Done] exited with code=0 in 0.268 seconds

[Running] node "c:\Users\Valery\source\repos\match-sync-master\src\PlayerResult.js"

[Done] exited with code=0 in 0.218 seconds

[Running] node "c:\Users\Valery\source\repos\match-sync-master\src\PlayersPositionsEnum.js"

[Done] exited with code=0 in 0.137 seconds

[Running] node "c:\Users\Valery\source\repos\match-sync-master\src\server.js" Data sync service started at 4004

но что дальше?

:-)

PS надеюсь, что-то заинтересует из перечисленного выше ) буду рад узнать встречные идеи )

ezabus commented 3 years ago

Привет, Валера!

Я думаю начать надо с простого, а именно с подгрузки данных со спортса. Для этого можно использовать модуль sportsRuLineupLoader отдельно. В нём есть функция loadRoundData принимающая на вход teamId и roundId (id команды и номер тура) и возвращает массив с игроками из состава фентези команды.

C life score событиями я пока не разобрался, реализовал просто периодический перезапрос данных со спортса.

У моего проекта идея простая, сделать сайт для нашей фентези лиги. Выглядит вот так: https://fishburgfootball.ru/

Сам по себе репо match-sync это лишь часть большого проекта, он зависит от других сервисов и от базы, так что в отрыве от всего остального он не очень интересен. Я могу дать тебе доступ на все репозитории, если ты скажешь мне своего гитхабовского юзера.

Я предлагаю нам сфокусироваться на какой-то одной идее, которая будет интересна обоим и дальше уже решить как будем действовать.

С уважением, Женя

Если что, я есть в телеге: eugenezb

вс, 11 окт. 2020 г. в 00:32, SportsDataPlayground <notifications@github.com

:

Спасибо большое, что откликнулся и готов помочь. Зови Валерий.

Конкретной задачи как таковой пока нет. Ниже поймешь, почему.

Реально задач \ идей много, несовершенство что фэнтэзи-спортса, что даже Х2Х Князева уже очевидны. Замахиваться на их переделку, впрочем, пока именно мне никак невозможно, там множество проблем, что в редакторе составов с UX и банальными багами, что с чатом под ним (можно прокинуть в ТГ опять же эти коммуникации и не открывать спортс вообще, чтобы с завсегдатаем фэнтэзи чатов спортса Баджеем пообщаться), что... да куда ни ткни )

Князеву поставляю багрепорты и рацпредложения постоянно, но он отказывается проект с кем-то еще вести, хотя видно, что уже не тянет (отдельная история почему). Цели развиваться и расти у него тоже нет.

Короче, решил, что мне надо с чего-то начать и попробовать восстановить навык программирования, лучше это делать на любимом увлечении. Поэтому идея для начала простая - научиться подписаться и реагировать на livescore events. По возможности без поллинга, а как положено это сделать, на событиях.

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

Далее, по идее, надо бы научиться эффективно работать со своими Х2Х командами (на спортсе, у князева, может быть, даже через механизм коннекторов, с любыми другими площадками - у нас кто то в ФФК играет на фантиме с FPL) и сразу с командами всего своего ФФК. Т.е. автоматизация не только для себя одного, но масштабируемо для группы тоже.

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

Коммуникация - может быть, сайт даже какой-то прям спец уже и не нужен, все в ТГ сидят фэнтэзи ребята, тут по идее чат-бот более нужен и если он будет толковый, то его хватит даже делать замены, я смотрел что у них в SDK рекламируется, там есть и GUI и игры в ТГ-ботах, впоне для фэнтэзи хватит.

Но с чего начать? кроме счетов для предиктора, можно попробовать соотнести livescore feed с составами команд в своей ФФК \ подписчика и сообщать, например, когда дали состав - сразу share в группу в ТГ (у нас отдельными группами в ТГ по странам и ЕК оформлены) картинкой, что появились составы (сейчас это руками люди делают, когда на sofascore.com состав появился - и все начинают своих искать - вышел или не вышел).

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

Дальше, из относительно простого, просто сообщать, что набрал\потерял фо кто-то из игроков подписчика, с выдачей того, как это меняет шансы на победу в дуэлях\матчах на Х2Х в этом свете. Скажем, ФФК резко начинает проигрывать. А то все сидят и считают, сколько там у соперников Неймарокэпов, сколько у нас Мбаппекэпов и после каждого асссиста вручную прокликивают по 6 дуэлей в неск матчей на предмет что изменилось.

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

В целом играть стало что-то тяжело, времени уходит много да и выгорел за много лет. Думаю или завязывать с фэнтэзи вообще (и удаляться из нашего ФФК в ТГ и вообще закрыть спортс и Х2Х Князева, но тут ФФК наш может развалиться, там многие устали и никто не программирует) или попробовать найти интерес, как в молодости, в программировании, если только молодые не ушли еще совсем далеко вперед :-)

Летом год назад у меня были попытки что-то сделать, например, на PHP у меня получалось добраться до данных на страничке спортса, используя репозиторий Анисимова. Но потом возникла проблема с публикацией телеграмбота, не смог победить подпись через letsencrypt, а чем нужным подписать под рукой тогда не было - и кроме как локально я его не смог даже запустить :-(

Т.е. на уровне, где там у спортса выковыривать данные я примерно понимаю, но уже не очень понимаю, как все это правильно (быстро и эффективно по памяти) парсить (чем), как хранить в БД (или еще где), кэшировать, чтобы не нарваться с поллингом на количество запросов в ед времени ограничения (но не хотелось бы и потерять в оперативности \ real time в лайве), чтобы не забанили аккаунт на спортсе и пр.

Никогда не программировал ничего для клауда и даже с БД не работал, не верстал и HTML \ CSS темный лес, не использовал (но очень хочу попробовать) очередей сообщений типа Kafka и микросервисов, короче, все что происходит нынче в мире Frontend и мобильной разработки для меня кажется большим зоопарком, где просто нереально все охватить, оно банально устареет пока я что-то пойму. Это вводит в определенный ступор.

Сейчас вроде погуглил - поставил nvm и поднял node.js, чтобы твои js попробовать запустить, вот что вышло:

match-sync@1.0.0 test c:\Users\Valery\source\repos\match-sync-master echo "Error: no test specified" && exit 1

[Running] node "c:\Users\Valery\source\repos\match-sync-master\ecosystem.config.js"

[Done] exited with code=0 in 0.286 seconds

[Running] node "c:\Users\Valery\source\repos\match-sync-master\src\sportsRuLineupLoader.js"

[Done] exited with code=0 in 0.282 seconds

[Running] node "c:\Users\Valery\source\repos\match-sync-master\src\database.js"

[Done] exited with code=0 in 0.226 seconds

[Running] node "c:\Users\Valery\source\repos\match-sync-master\src\Lineup.js"

[Done] exited with code=0 in 0.13 seconds

[Running] node "c:\Users\Valery\source\repos\match-sync-master\src\lineupCollector.js"

[Done] exited with code=0 in 0.264 seconds

[Running] node "c:\Users\Valery\source\repos\match-sync-master\src\Match.js"

[Done] exited with code=0 in 0.227 seconds

[Running] node "c:\Users\Valery\source\repos\match-sync-master\src\matchSync.js"

[Done] exited with code=0 in 0.268 seconds

[Running] node "c:\Users\Valery\source\repos\match-sync-master\src\PlayerResult.js"

[Done] exited with code=0 in 0.218 seconds

[Running] node "c:\Users\Valery\source\repos\match-sync-master\src\PlayersPositionsEnum.js"

[Done] exited with code=0 in 0.137 seconds

[Running] node "c:\Users\Valery\source\repos\match-sync-master\src\server.js" Data sync service started at 4004

но что дальше?

:-)

PS надеюсь, что-то заинтересует из перечисленного выше ) буду рад узнать встречные идеи )

— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/ezabus/match-sync/issues/1#issuecomment-706614477, or unsubscribe https://github.com/notifications/unsubscribe-auth/ACH6YERWUOCP7EVB2AW7KHDSKDHILANCNFSM4SLIHX6Q .

SportsDataPlayground commented 3 years ago

Женя, привет! огромный завал с делами, извини за паузу с ответами. В вс вечером станет легче.

Про GitHub user не понял, я же из под него пишу? Если что, это мой акк тут, другого нет )

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

Про сайт для лиги мне тоже интересно, только ни одной вебстранички пока не сделал и неясно мне почему нельзя вам было сделать, например, на Х2Х у Князева ФФК и играть командой там? Сайт я ваш заметил недавно, так на твой репозиторий и вышел, собственно, поискав по фишбургу тут.

что сайт должен давать игрокам, какая цель?

начать с загрузки данных полностью поддерживаю, это интересно и нужно

про ТГ подключусь, надеюсь что в вс вечером получится

Валера

ezabus commented 3 years ago

Привет!

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

Сайт делается прежде всего по фану и плюс когда делаешь сам - гораздо больше возможности по кастомизации. У нас например свой формат турнира с плей-офф в конце сезона. Дальше опишу фунционал по разделам:

https://fishburgfootball.ru/#/seasonStats

https://fishburgfootball.ru/#/roundStats/2021/5

https://fishburgfootball.ru/#/match/2120052-2130361-2021-5

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

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

Женя

On Thu, 15 Oct 2020 at 18:54, SportsDataPlayground notifications@github.com wrote:

Женя, привет! огромный завал с делами, извини за паузу с ответами. В вс вечером станет легче.

Про GitHub user не понял, я же из под него пишу? Если что, это мой акк тут, другого нет )

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

Про сайт для лиги мне тоже интересно, только ни одной вебстранички пока не сделал и неясно мне почему нельзя вам было сделать, например, на Х2Х у Князева ФФК и играть командой там? Сайт я ваш заметил недавно, так на твой репозиторий и вышел, собственно, поискав по фишбургу тут.

что сайт должен давать игрокам, какая цель?

начать с загрузки данных полностью поддерживаю, это интересно и нужно

про ТГ подключусь, надеюсь что в вс вечером получится

Валера

— You are receiving this because you commented.

Reply to this email directly, view it on GitHub https://github.com/ezabus/match-sync/issues/1#issuecomment-709420452, or unsubscribe https://github.com/notifications/unsubscribe-auth/ACH6YETC3FXKQ377MSFPLXLSK4LKDANCNFSM4SLIHX6Q .