gfrenoy / TabT-API

Programming interface for TabT, the free table tennis manager software
http://tabt.frenoy.net
GNU Affero General Public License v3.0
9 stars 5 forks source link

Get head to head information via API. #20

Open kachelle opened 4 years ago

kachelle commented 4 years ago

It would be very nice to get head to head information via the API. In that way it is nice to display whether or not a person has already played against another. And if they already played against eachother, what date it was, and on what tournament/competition. As is now possible on the competitie.vttl.be site: https://competitie.vttl.be/index.php?menu=4&head=1&player_1=Kjell+Kind&player_2=Tim+Sturm

Input: homeplayer list & away player list (limit to X amount of players per team). Or only homeplayer list, then check them all against each other.

{"Credentials": {"Account":"xxx","Password":"xxx"}, "HomePlayers":[ {"UniqueIndex":"500001"}, {"UniqueIndex":"500002"}, {"UniqueIndex":"500003"}, {"UniqueIndex":"500004"} ], "AwayPlayers":[ {"UniqueIndex":"600001"}, {"UniqueIndex":"600002"}, {"UniqueIndex":"600003"}, {"UniqueIndex":"600004"} ], } And in the reply, [ { "HomePlayerUniqueIndex": 500001, "AwayPlayerUniqueIndex": 600001, "IndividualMatchCount": 2, "IndividualMatchResults": [ { "Date": "2017-09-16", "MatchUniqueId": 278627, "HomePlayerRanking": "C2", "AwayPlayerRanking": "C0", "HomeSetCount": 2, "AwaySetCount": 3, "Scores": "1|4,2|-9,3|-14,4|7,5|-9" }, { "Date": "2017-09-16", "MatchUniqueId": 278627, "HomePlayerRanking": "C2", "AwayPlayerRanking": "C0", "HomeSetCount": 2, "AwaySetCount": 3, "Scores": "1|4,2|-9,3|-14,4|7,5|-9" } ] }, { "HomePlayerUniqueIndex": 500001, "AwayPlayerUniqueIndex": 600002, "IndividualMatchCount": 0 }, { "HomePlayerUniqueIndex": 500001, "AwayPlayerUniqueIndex": 600003, "IndividualMatchCount": 0 } ]

gfrenoy commented 4 years ago

Indeed a nice additional feature to have :)

This is not on my personal priorities but if anyone wants to work on this, I'll be happy to help when I can and put it online when ready.

I believe it will require a new API entry. First step is to correctly define the new functions and inputs/ouputs. When this is done, I can probably look at the website code and extract the query that does this.

PR welcome :)