Add first support for Trackmania Exchange
Move to the new API of MX and add TM2020 compatibility
This commit is contained in:
parent
9c256643fa
commit
2d2f5642a3
@ -37,7 +37,7 @@ class MXMapInfo {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($this->prefix === 'tm') {
|
if ($this->prefix === 'tm.mania-exchange.com' OR $this->prefix === 'trackmania.exchange') {
|
||||||
$this->dir = 'tracks';
|
$this->dir = 'tracks';
|
||||||
$this->id = $mx->TrackID;
|
$this->id = $mx->TrackID;
|
||||||
$this->uid = isset($mx->TrackUID) ? $mx->TrackUID : '';
|
$this->uid = isset($mx->TrackUID) ? $mx->TrackUID : '';
|
||||||
@ -93,23 +93,23 @@ class MXMapInfo {
|
|||||||
$this->lbrating = $this->trkvalue;
|
$this->lbrating = $this->trkvalue;
|
||||||
}
|
}
|
||||||
|
|
||||||
$this->pageurl = 'https://' . $this->prefix . '.mania-exchange.com/' . $this->dir . '/view/' . $this->id;
|
$this->pageurl = 'https://' . $this->prefix . '/' . $this->dir . '/view/' . $this->id;
|
||||||
$this->downloadurl = 'https://' . $this->prefix . '.mania-exchange.com/' . $this->dir . '/download/' . $this->id;
|
$this->downloadurl = 'https://' . $this->prefix . '/' . $this->dir . '/download/' . $this->id;
|
||||||
|
|
||||||
if ($mx->HasScreenshot) {
|
if ($mx->HasScreenshot) {
|
||||||
$this->imageurl = 'https://' . $this->prefix . '.mania-exchange.com/' . $this->dir . '/screenshot/normal/' . $this->id;
|
$this->imageurl = 'https://' . $this->prefix . '/' . $this->dir . '/screenshot/normal/' . $this->id;
|
||||||
} else {
|
} else {
|
||||||
$this->imageurl = '';
|
$this->imageurl = '';
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($mx->HasThumbnail) {
|
if ($mx->HasThumbnail) {
|
||||||
$this->thumburl = 'https://' . $this->prefix . '.mania-exchange.com/' . $this->dir . '/thumbnail/' . $this->id;
|
$this->thumburl = 'https://' . $this->prefix . '/' . $this->dir . '/thumbnail/' . $this->id;
|
||||||
} else {
|
} else {
|
||||||
$this->thumburl = '';
|
$this->thumburl = '';
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($this->prefix === 'tm' && $this->replayid > 0) {
|
if ($this->prefix === 'tm' && $this->replayid > 0) {
|
||||||
$this->replayurl = 'https://' . $this->prefix . '.mania-exchange.com/replays/download/' . $this->replayid;
|
$this->replayurl = 'https://' . $this->prefix . '/replays/download/' . $this->replayid;
|
||||||
} else {
|
} else {
|
||||||
$this->replayurl = '';
|
$this->replayurl = '';
|
||||||
}
|
}
|
||||||
|
@ -160,11 +160,19 @@ class ManiaExchangeManager implements UsageInformationAble {
|
|||||||
* @param string $string
|
* @param string $string
|
||||||
*/
|
*/
|
||||||
public function fetchMaplistByMixedUidIdString($string) {
|
public function fetchMaplistByMixedUidIdString($string) {
|
||||||
// Get Title Prefix
|
|
||||||
$titlePrefix = $this->maniaControl->getMapManager()->getCurrentMap()->getGame();
|
|
||||||
|
|
||||||
|
// For TM2020
|
||||||
|
if ($this->maniaControl->getServer()->titleId == "Trackmania") {
|
||||||
|
// Get Title Prefix
|
||||||
|
$titlePrefix = "trackmania.exchange";
|
||||||
|
|
||||||
|
} else {
|
||||||
|
// Get Title Prefix
|
||||||
|
$titlePrefix = $this->maniaControl->getMapManager()->getCurrentMap()->getGame() . ".mania-exchange.com";
|
||||||
|
|
||||||
|
}
|
||||||
// compile search URL
|
// compile search URL
|
||||||
$url = "https://api.mania-exchange.com/{$titlePrefix}/maps/?ids={$string}";
|
$url = "https://{$titlePrefix}/api/maps/get_map_info/multi/{$string}";
|
||||||
|
|
||||||
/*if ($key = $this->maniaControl->getSettingManager()->getSettingValue($this, self::SETTING_MX_KEY)) {
|
/*if ($key = $this->maniaControl->getSettingManager()->getSettingValue($this, self::SETTING_MX_KEY)) {
|
||||||
$url .= "&key=" . $key;
|
$url .= "&key=" . $key;
|
||||||
@ -261,11 +269,18 @@ class ManiaExchangeManager implements UsageInformationAble {
|
|||||||
* @param callable $function
|
* @param callable $function
|
||||||
*/
|
*/
|
||||||
public function fetchMapInfo($mapId, callable $function) {
|
public function fetchMapInfo($mapId, callable $function) {
|
||||||
// Get Title Prefix
|
// For TM2020
|
||||||
$titlePrefix = $this->maniaControl->getMapManager()->getCurrentMap()->getGame();
|
if ($this->maniaControl->getServer()->titleId == "Trackmania") {
|
||||||
|
// Get Title Prefix
|
||||||
|
$titlePrefix = "trackmania.exchange";
|
||||||
|
|
||||||
|
} else {
|
||||||
|
// Get Title Prefix
|
||||||
|
$titlePrefix = $this->maniaControl->getMapManager()->getCurrentMap()->getGame() . ".mania-exchange.com";
|
||||||
|
|
||||||
|
}
|
||||||
// compile search URL
|
// compile search URL
|
||||||
$url = 'https://api.mania-exchange.com/' . $titlePrefix . '/maps/?ids=' . $mapId;
|
$url = "https://{$titlePrefix}/api/maps/get_map_info/multi/{$mapId}";
|
||||||
|
|
||||||
/*if ($key = $this->maniaControl->getSettingManager()->getSettingValue($this, self::SETTING_MX_KEY)) {
|
/*if ($key = $this->maniaControl->getSettingManager()->getSettingValue($this, self::SETTING_MX_KEY)) {
|
||||||
$url .= "&key=" . $key;
|
$url .= "&key=" . $key;
|
||||||
@ -292,8 +307,15 @@ class ManiaExchangeManager implements UsageInformationAble {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @deprecated
|
* @param callable $function
|
||||||
|
* @param string $name
|
||||||
|
* @param string $author
|
||||||
|
* @param string $env
|
||||||
|
* @param int $maxMapsReturned
|
||||||
|
* @param int $searchOrder
|
||||||
|
* @return bool
|
||||||
* @see \ManiaControl\ManiaExchange\ManiaExchangeMapSearch
|
* @see \ManiaControl\ManiaExchange\ManiaExchangeMapSearch
|
||||||
|
* @deprecated
|
||||||
*/
|
*/
|
||||||
public function getMapsAsync(callable $function, $name = '', $author = '', $env = '', $maxMapsReturned = 100, $searchOrder = ManiaExchangeMapSearch::SEARCH_ORDER_UPDATED_NEWEST) {
|
public function getMapsAsync(callable $function, $name = '', $author = '', $env = '', $maxMapsReturned = 100, $searchOrder = ManiaExchangeMapSearch::SEARCH_ORDER_UPDATED_NEWEST) {
|
||||||
$this->fetchMapsAsync($function, $name, $author, $env, $maxMapsReturned, $searchOrder);
|
$this->fetchMapsAsync($function, $name, $author, $env, $maxMapsReturned, $searchOrder);
|
||||||
@ -308,7 +330,7 @@ class ManiaExchangeManager implements UsageInformationAble {
|
|||||||
* @param string $author
|
* @param string $author
|
||||||
* @param string $env
|
* @param string $env
|
||||||
* @param int $maxMapsReturned
|
* @param int $maxMapsReturned
|
||||||
* @param int $searchOrder
|
* @param int $sortOrder
|
||||||
* @deprecated
|
* @deprecated
|
||||||
* @see \ManiaControl\ManiaExchange\ManiaExchangeMapSearch
|
* @see \ManiaControl\ManiaExchange\ManiaExchangeMapSearch
|
||||||
*/
|
*/
|
||||||
|
@ -100,10 +100,15 @@ class ManiaExchangeMapSearch implements UsageInformationAble {
|
|||||||
public function __construct(ManiaControl $maniaControl) {
|
public function __construct(ManiaControl $maniaControl) {
|
||||||
$this->maniaControl = $maniaControl;
|
$this->maniaControl = $maniaControl;
|
||||||
|
|
||||||
$this->titlePrefix = $this->maniaControl->getMapManager()->getCurrentMap()->getGame();
|
// For TM2020
|
||||||
|
if ($this->maniaControl->getServer()->titleId == "Trackmania")
|
||||||
$this->url = 'https://' . $this->titlePrefix . '.mania-exchange.com/tracksearch2/search?api=on';
|
{
|
||||||
|
$this->titlePrefix = "trackmania.exchange";
|
||||||
|
$this->url = 'https://trackmania.exchange/tracksearch2/search?api=on';
|
||||||
|
}else {
|
||||||
|
$this->titlePrefix = $this->maniaControl->getMapManager()->getCurrentMap()->getGame() . '.mania-exchange.com';
|
||||||
|
$this->url = 'https://' . $this->titlePrefix . '.mania-exchange.com/tracksearch2/search?api=on';
|
||||||
|
}
|
||||||
/*if ($key = $this->maniaControl->getSettingManager()->getSettingValue($this->maniaControl->getMapManager()->getMXManager(), ManiaExchangeManager::SETTING_MX_KEY)) {
|
/*if ($key = $this->maniaControl->getSettingManager()->getSettingValue($this->maniaControl->getMapManager()->getMXManager(), ManiaExchangeManager::SETTING_MX_KEY)) {
|
||||||
$this->url .= "&key=" . $key;
|
$this->url .= "&key=" . $key;
|
||||||
}*/
|
}*/
|
||||||
@ -160,7 +165,7 @@ class ManiaExchangeMapSearch implements UsageInformationAble {
|
|||||||
$parameters .= "&tpack=" . urlencode($this->titlePack);
|
$parameters .= "&tpack=" . urlencode($this->titlePack);
|
||||||
}
|
}
|
||||||
if ($this->replayType) {
|
if ($this->replayType) {
|
||||||
$parameters .= "&rytpe=" . $this->replayType;
|
$parameters .= "&rtype=" . $this->replayType;
|
||||||
}
|
}
|
||||||
if ($this->style) {
|
if ($this->style) {
|
||||||
$parameters .= "&style=" . $this->style;
|
$parameters .= "&style=" . $this->style;
|
||||||
|
Loading…
Reference in New Issue
Block a user