Jump to content


- - - - -

Помогите с поиском новых матчей


72 replies to this topic

#1 OFFLINE   maxspeed

    Специалист


  • Участник II
  • PipPipPipPip
  • 508 posts
37

Posted 02 January 2015 - 21:59

Привет!
как реализовать на C# (API NG)
поиск новых матчей футбола
по определенным параметрам
Спасибо.

#2 OFFLINE   pozitrone23

    ёпта


  • Участник II
  • PipPipPip
  • 413 posts
19
  • МестоположениеСаранск

Posted 03 January 2015 - 00:56

Ну через фильтры. Скачай pdf с их сайта, там найдешь описание фильтра к каждой функции. А вообще очень неподробный вопрос

#3 OFFLINE   pozitrone23

    ёпта


  • Участник II
  • PipPipPip
  • 413 posts
19
  • МестоположениеСаранск

Posted 03 January 2015 - 01:27

Судя по вопросу, ты совсем новенький. Ну смотри, допустим ты этот pdf скачал, залил - vk.com/doc274855639_355516004, смотришь какие там запросы есть.
Допустим, listMarketBook. У него marketIds обязательно отсылать, priceProjection необязательно, но по не нему-то и фильтруется всё (будешь писать - поймёшь), а в качестве приёма у него List<MarketBook>. Вот в проге ты и пишешь запрос и приём на функцию.

Теперь пример (советую делать на VB.NET, т.к все быстрее будет в 2.5 раза):
Пишешь запрос, задаешь параметры

Attached File  2015-01-03 00-07-25 Скриншот экрана.png   20.45K   3 downloads

Лично я прописывал типы параметров запроса/приёма через классы. Есть другой вариант, но для меня он запутаннее, этот проще)

Attached File  2015-01-03 00-07-41 Скриншот экрана.png   121.55K   3 downloads

Другой вариант есть в примере на сайте бетфаира
Итак, написал запрос, пишем приём:

Attached File  2015-01-03 00-14-00 Скриншот экрана.png   55.42K   2 downloads

Внизу api_response - неотформатированная строка JSONa, ёё надо засунуть в наши классы приёма и взять нужные данные. Пример функции GetOdds

Attached File  2015-01-03 00-17-51 Скриншот экрана.png   40.9K   2 downloads

Готово! Всё.

Ясень пень нужно скачать NewtonsoftJSON 6 библиотеку и засунуть в проект и бот готов)))

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
	    BackgroundWorker1.WorkerReportsProgress = True
	    BackgroundWorker1.RunWorkerAsync()
    End Sub

Забыл про теги) извини)

Да не, без них нагляднее

Ну сориентировался немного?)) :)

#4 OFFLINE   maxspeed

    Специалист


  • Участник II
  • PipPipPipPip
  • 508 posts
37

Posted 03 January 2015 - 09:50

спасибо за ответ
вопрос почему на vb.net будет быстрее чем на с#? начал уже проект на c# хотя познания мои что на с# что на vb.net одинаковые :)
я думал делать через listEvent запрос по определенным competitionId получать список матчей
потом через время еще запрос и сравнивать с предыдущим , только проблема в запросе появляются матчи типа : Друг против друга, или Winner 2014/2015
как эти ненужные события отсеивать

#5 OFFLINE   clerk

    Специалист


  • Модератор
  • 584 posts
102

Posted 03 January 2015 - 10:50

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

#6 OFFLINE   maxspeed

    Специалист


  • Участник II
  • PipPipPipPip
  • 508 posts
37

Posted 03 January 2015 - 11:08

меня интересует только тоталы
как таким образом отфильтровать нужные события?

#7 OFFLINE   clerk

    Специалист


  • Модератор
  • 584 posts
102

Posted 03 January 2015 - 11:33

прогоняете полученный листЭвент через цикл, где по каждому событию делаете запрос листМаркетКаталог. Если в полученном ответе содержатся ваши тоталы, событие открываете или еще чего делаете с ним

#8 OFFLINE   maxspeed

    Специалист


  • Участник II
  • PipPipPipPip
  • 508 posts
37

Posted 03 January 2015 - 11:40

спасибо за мысль
а не трудно помочь с примером на c#?
я начинающий в программировании

#9 OFFLINE   bardmauzer

    Специалист


  • Участник II
  • PipPipPip
  • 368 posts
63

Posted 03 January 2015 - 19:09

Сообщенияmaxspeed, on 03 January 2015 - 11:08, сказал:

меня интересует только тоталы
как таким образом отфильтровать нужные события?

Я думаю тебе нужно заполнять переменную marketTypeCodes в фильтре (типа "MATCH_ODDS", "HALF_TIME_SCORE").Только я не знаю какие аргументы нужны для тоталов.

#10 OFFLINE   bardmauzer

    Специалист


  • Участник II
  • PipPipPip
  • 368 posts
63

Posted 03 January 2015 - 19:20

Сообщенияbardmauzer, on 03 January 2015 - 19:09, сказал:

Я думаю тебе нужно заполнять переменную marketTypeCodes в фильтре (типа "MATCH_ODDS", "HALF_TIME_SCORE").Только я не знаю какие аргументы нужны для тоталов.

Вот нашел пример ТБM1,5 - ТБM2,5 :

"filter": {
"eventTypeIds": [
"1"
],
"marketTypeCodes": [
"OVER_UNDER_15",
"OVER_UNDER_25"
]}

Edited by bardmauzer, 03 January 2015 - 19:25.


#11 OFFLINE   maxspeed

    Специалист


  • Участник II
  • PipPipPipPip
  • 508 posts
37

Posted 03 January 2015 - 20:38

разве для listevents есть параметр marketfilter : marketTypeCodes?

я имею в виду что для того чтобы знать eventid для listmarketbook надо сначала через listevent
выбрать события
а для listevent marketfilter такого параметра не имеет markettypecodes

#12 OFFLINE   bardmauzer

    Специалист


  • Участник II
  • PipPipPip
  • 368 posts
63

Posted 03 January 2015 - 21:39

Сообщенияmaxspeed, on 03 January 2015 - 20:38, сказал:

разве для listevents есть параметр marketfilter : marketTypeCodes? я имею в виду что для того чтобы знать eventid для listmarketbook надо сначала через listevent выбрать события а для listevent marketfilter такого параметра не имеет markettypecodes

Ну я не знаю, фильтр на то и фильтр,чтобы сортировать рынки.Попробуй,думаю получится

#13 OFFLINE   maxspeed

    Специалист


  • Участник II
  • PipPipPipPip
  • 508 posts
37

Posted 03 January 2015 - 21:43

попробовал в visualizer не выдает ничего
может поможешь с примером как в цикле сначала выбрать listEvent
потом выбрать по eventId listMarketBook
на c#

#14 OFFLINE   bardmauzer

    Специалист


  • Участник II
  • PipPipPip
  • 368 posts
63

Posted 04 January 2015 - 00:27

Сообщенияmaxspeed, on 03 January 2015 - 21:43, сказал:

попробовал в visualizer не выдает ничего
может поможешь с примером как в цикле сначала выбрать listEvent
потом выбрать по eventId listMarketBook
на c#

Ты напиши как ты получаешь ответ на запрос,как десериализуешь и т.д.А народ уже тебе подскажет.Методов то много есть,но нужно увидеть,чем ты манипулируешь.

#15 OFFLINE   bardmauzer

    Специалист


  • Участник II
  • PipPipPip
  • 368 posts
63

Posted 04 January 2015 - 02:06

Сообщенияmaxspeed, on 03 January 2015 - 21:43, сказал:

попробовал в visualizer не выдает ничего
может поможешь с примером как в цикле сначала выбрать listEvent
потом выбрать по eventId listMarketBook
на c#

Короче,через listMarketCatalogue данный запрос проходит.Но только один рынок тотала.

{"filter":{"eventTypeIds":["1"],"marketTypeCodes":["OVER_UNDER_25"]},"maxResults":200,"marketProjection":["EVENT"]}

#16 OFFLINE   maxspeed

    Специалист


  • Участник II
  • PipPipPipPip
  • 508 posts
37

Posted 04 January 2015 - 15:02

спасибо
вроде через visualizer проходит
теперь попробую реализовать в c#

#17 OFFLINE   denvb

    Специалист


  • Участник II
  • PipPipPip
  • 382 posts
90

Posted 04 January 2015 - 15:25

Сообщенияbardmauzer, on 04 January 2015 - 02:06, сказал:

Короче,через listMarketCatalogue данный запрос проходит.Но только один рынок тотала.

{"filter":{"eventTypeIds":["1"],"marketTypeCodes":["OVER_UNDER_25","OVER_UNDER_35","OVER_UNDER_55"]},"maxResults":200,"marketProjection":["EVENT"]}
здесь массив, поэтому запрашивайте хоть тоталов, хоть других рынков сколько хотите. Я не совсем понимаю исходную задачу, но если надо забрать все текущие тоталы, то это делается проще

#18 OFFLINE   maxspeed

    Специалист


  • Участник II
  • PipPipPipPip
  • 508 posts
37

Posted 04 January 2015 - 15:38

задача искать новые матчи и делать ставки на тоталы как только рынок будет создан в betfair

#19 OFFLINE   bardmauzer

    Специалист


  • Участник II
  • PipPipPip
  • 368 posts
63

Posted 04 January 2015 - 15:43

Сообщенияmaxspeed, on 04 January 2015 - 15:02, сказал:

спасибо
вроде через visualizer проходит
теперь попробую реализовать в c#

Кстати в переменной textQuery фильтра,так же можно использовать "OVER_UNDER_25"

Сообщенияdenvb, on 04 January 2015 - 15:25, сказал:

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

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

#20 OFFLINE   maxspeed

    Специалист


  • Участник II
  • PipPipPipPip
  • 508 posts
37

Posted 04 January 2015 - 20:31

{"filter":{"eventTypeIds":["1"],"marketTypeCodes":["OVER_UNDER_25","OVER_UNDER_35","OVER_UNDER_55"]},"maxResults":200,"marketProjection":["EVENT"]}
помогите сформировать этот запрос как пример