Рейтинг серверов World Of Warcraft
 
 








> 

UAWoW ForumГлавныйО сервере
 
Ответить в данную темуНачать новую тему
> UAWoW API, Для разработчиков аддонов, виджетов и клан-сайтов
Импртать

VIP
*******
Группа: Администраторы
сообщение 16.1.2011, 19:22
Сообщение #1
Постепенно будут добавляться скрипты для получения данных которые могут пригодится для работы каких-либо утилит.

Данные будут предоставятся в трех форматах: json, вызов js ф-ии и разделенный вертикальной чертой ("|") текст.
* JSON - формат очень удобный и требует мало трафика. (используется по умолчанию, если не указать другой формат).
* Вызов js ф-ии - легко реализовать статистику на веб-странице методом динамической загрузки js. Скрипт возвратит js c вызовом ф-ии, которую разработчик странички напишет сам ab.gif, с нужными данными в качестве параметров. Например инф. об ОЛО: UpdateWG('tirion', 1,1657,1);
* Разделенный вертикальной чертой ("|") текст - данные легко разбираются, две черты подряд разделяют данные нескольких реалмов, если скрипт возвращает их более чем по одному реалму, одной чертой разделены нужные параметры.

Выбор реалма и формат возвращаемых данных.
sys.uawow.com/api/имя_модуля.php?realm=[illidan|tirion|all]&format=[json|js|text]
Не сложно догадаться что параметр realm - имя реалма, если нужна инф. об одном или all если нужны все, а format - формат возвращаемых данных (если не указать - данные будут в JSON, рекомендую указывать для дальнейшей совместимости).
Пример:
http://sys.uawow.com/api/stat.php?realm=all&format=json - текущее состояние Иллидана в JSON
http://sys.uawow.com/api/stat.php?realm=il...n&format=js - текущее состояние всех реалмов вызовом JavaScript ф-ии

Что уже доступно:
1) Статус реалмов - Структура массива: имя реалма -> uptime в секундах, кол. игроков онлайн, игроков всего
2) Бой на оло - Структура массива: имя реалма -> состояние боя (0 - бой окончен, 1 - бой идет), время до начала/конца боя, фракция владелец замка (0 - альянс, 1 - орда)


Если вы знакомы с структурой БД MaNGOS/TrinityCore можете предложить свои модули.
Пример:
Код
<?

require('core/core.php');

define("WG_CACHE_LIFE", 30);

class WG_info extends uawow_api
{
    function __construct()
    {
        $this->js_handler = 'UpdateWG'; //имя js ф-ии для вывода данных в формате js
        uawow_api::__construct();
    }

    function data_handler($name)              //обязательная процедура, должна возвращать данные для вывода
    {
        global $realm_data;

        $this->cache_init();                       //инициализации кэша,  если необходимо
        $wg_info = $this->cache_get("wg_$name");//получаем данные из кэша
        if (!empty($wg_info) && is_array($wg_info))  //если кэш еще есть
            return $wg_info;                       //возвращаем данные из него

        unset($wg_info);

        $this->db_init($realm_data[$name][1]);       //устанавливаем соединений с БД ($name - имя реалма передаваемое ф-ии, элемент 0 - ид реалма, 1 - бд персонажей, 2 - бд мира)
        $wg_data = $this->db->select("SELECT entry, value FROM ?#.`worldstates` WHERE entry IN (31001, 31002, 31003) ORDER BY entry ASC", $realm_data[$name][1]);
        //получаем данные с бд
        for ($i=0; $i<3; $i++)
            $wg_info[$i] = (int)$wg_data[$wg_data[$i]['entry']-31001]['value'];
        $wg_info[1] = round($wg_info[1]/1000);
                //обрабатываем полученные данные
        $this->cache_set("wg_$name", $wg_info, WG_CACHE_LIFE);//сохраняем результат в кэш

        return $wg_info; //возвращаем результат
    }

    function help() //необязательная ф-ия для вывода справки, вызывается если скрипту не переданы параметры, их недостаточно или они неправильны
    {
        echo 'This is help';
    }
}

$wg = new WG_info(); //создаем объект нашего класса

$wg->echo_data(); // выводим результат

?>


Сообщение отредактировал Импртать - 16.1.2011, 19:23
Перейти в начало страницы
 
+Цитировать сообщение
Последние 20 пользователей, поблагодарившие Импртать за это сообщение:
archi44, Azgard, bloomy, Brutal_Glad, CJ bI!, Deaz, Dubik, Justpal, mr.Scamp, pawel, Shakarr, Spamer, Sprutik, WBC, Xsardas, Zalepoc, Zann, Александр С., Вовік, Лихачь
Импртать

VIP
*******
Группа: Администраторы
сообщение 21.2.2011, 18:56
Сообщение #2
Ревизия
Для совместимости старых приложений с новым api добавлен параметр revision с значение = номеру ревизии используемой приложением.

Статистика реалмов(http://sys.uawow.com/api/stat.php)
revision=0 (пока используется по умолчанию):
Возвращаемые данные: название реалма, uptime, кол. игроков онлайн, всего игроков.

revision=1:
Возвращаемые данные: название реалма, uptime, кол. игроков онлайн, всего игроков., альянс онлайн, орда онлайн.

Простой пример работы с API:
статистика сервера
таймер до начисления АП

Сообщение отредактировал Импртать - 30.4.2011, 22:19
Перейти в начало страницы
 
+Цитировать сообщение
Последние 6 пользователей, поблагодарившие Импртать за это сообщение:
Azgard, djibril, Dubik, Shakarr, Spamer, Лихачь
Spamer

Пользователь
***
Группа: Пользователи
сообщение 10.8.2012, 17:26
Сообщение #3
Напишите пожалуйста скрипт на вывод статистики оло илидана,как на главной странице http://uawow.com/
Перейти в начало страницы
 
+Цитировать сообщение
DesT

Старожил
*****
Группа: Пользователи
сообщение 10.8.2012, 18:12
Сообщение #4
Требует веб-сервер с установленым Curl.
<?php $url='http://sys.uawow.com/api/wg.php?realm=illidan&format=json';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,$url);
curl_setopt($ch, CURLOPT_FAILONERROR, 1);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch, CURLOPT_TIMEOUT, 3);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, "url=index%3Dbooks&field-keywords=PHP+MYSQL");
$result = curl_exec($ch);
curl_close($ch);
$result= json_decode($result);
function showPeriod($time) {
return sprintf("%02d:%02d:%02d", (int)($time / 3600), (int)(($time % 3600) / 60), $time % 60);
}
?>
<html>
<head>
<title>Wintergrasp status</title>
<link rel='stylesheet' type='text/css' href="lolstyle.css">
</head>
<body>
<table border="1">
<tr>
<td>Realm</td>
<td>Time to start</td>
<td>Battle</td>
<td>Owner</td>
</tr>
<tr>
<td>Illidan</td>
<td><?= showPeriod($result->illidan[1])?></td>
<td><?= ($result->illidan[0]==0) ? 'false' : 'true'?></td>
<td><?= ($result->illidan[2]==0) ? 'Aleni' : 'Horde'?></td>
</tr>
</table>
</body>
</html>


Сообщение отредактировал DesT - 10.8.2012, 18:19
Перейти в начало страницы
 
+Цитировать сообщение
Последние 1 пользователей, поблагодарившие DesT за это сообщение:
Spamer
Spamer

Пользователь
***
Группа: Пользователи
сообщение 10.8.2012, 18:25
Сообщение #5
А нет такого плана как делал Импртать
Например как этот с апом

<html>
<head>
<meta http-equiv='Content-type' content='text/html; charset=utf-8'>
<script type='text/javascript' src='http://sys.uawow.com/api/uawowapi.js'></script>
<script>
$UAWOW.Arena.getPeriodically(10000, "all", function(r,t,m){
document.getElementById(r + '_ap').innerHTML = $UAWOW.Arena.timestampToTimer(t);
});
/*setInterval(function(){
$UAWOW.Arena.get("all");
}, 10000);*/
</script>
</head>
<body>
Начисление AP через:<br>
Illidan: <div id="illidan_ap"></div><br>
Tirion: <div id="tirion_ap"></div><br>
<div id="trash"></div><br>
</body>
<html>

только со статистикой оло.

Сообщение отредактировал Spamer - 10.8.2012, 18:26
Перейти в начало страницы
 
+Цитировать сообщение
DesT

Старожил
*****
Группа: Пользователи
сообщение 10.8.2012, 18:28
Сообщение #6
я тибе дал пхпшный, ты уточняй что хочешь с блочной версткой и на javascript/
Перейти в начало страницы
 
+Цитировать сообщение
Spamer

Пользователь
***
Группа: Пользователи
сообщение 10.8.2012, 22:00
Сообщение #7
Больше никто помоч не может с java скриптом?Имп пропал и умных людей не осталось?
Перейти в начало страницы
 
+Цитировать сообщение
DesT

Старожил
*****
Группа: Пользователи
сообщение 10.8.2012, 23:18
Сообщение #8
Я б сделал, но ща дома без инета, мне нужно посмотреть на js, что инклудится туда. Если подождешь до воскресения(когда приеду в город) то сделаю.
Перейти в начало страницы
 
+Цитировать сообщение
Последние 1 пользователей, поблагодарившие DesT за это сообщение:
Spamer
Spamer

Пользователь
***
Группа: Пользователи
сообщение 12.8.2012, 1:41
Сообщение #9
Анадор прости что отрываю от загрузки на новой роботе...,и отвлекаю от бессрочного отпуска mr.Scampa.Ну неужели вам так сложно дать информер на статистику оло в JavaScript?
Перейти в начало страницы
 
+Цитировать сообщение
Anadorr

VIP
*******
Группа: Администраторы
сообщение 12.8.2012, 12:30
Сообщение #10
Так в первом посте же есть ссылка на статистику ОЛО в формате жсон. Функции по получению данных вам следует писать самим.
Например, так
$.getJSON("http://sys.uawow.com/api/wg.php",
{
realm: "illidan",
format: "json"
},
function(data) {
wgdata = data["illidan"];
}
); alert ("статус боя:"+(wgdata[0]==0?"закончен":"в процессе")+"; осталось времени:"+wgdata[1]+"; владелец замка:"+(wgdata[2]==0?"alliance":"horde"));
Перейти в начало страницы
 
+Цитировать сообщение
Последние 1 пользователей, поблагодарившие Anadorr за это сообщение:
Spamer
Spamer

Пользователь
***
Группа: Пользователи
сообщение 12.8.2012, 12:36
Сообщение #11
Цитата(Anadorr @ 12.8.2012, 13:30) *
Так в первом посте же есть ссылка на статистику ОЛО в формате жсон. Функции по получению данных вам следует писать самим.
Например, так
$.getJSON("http://sys.uawow.com/api/wg.php",
{
realm: "illidan",
format: "json"
},
function(data) {
wgdata = data["illidan"];
}
); alert ("статус боя:"+(wgdata[0]==0?"закончен":"в процессе")+"; осталось времени:"+wgdata[1]+"; владелец замка:"+(wgdata[2]==0?"alliance":"horde"));

Дело в том что php на юкозе на бесплатном хостинге не пашет...
а скрипты что писал имп на статистику сервера и начисление апа написаны на JavaScript.

Сообщение отредактировал Spamer - 12.8.2012, 12:48
Перейти в начало страницы
 
+Цитировать сообщение
Anadorr

VIP
*******
Группа: Администраторы
сообщение 12.8.2012, 12:48
Сообщение #12
Так что тебе мешает написать самому функцию на JS ? )
Выше я указал пример
Перейти в начало страницы
 
+Цитировать сообщение
Последние 1 пользователей, поблагодарившие Anadorr за это сообщение:
Spamer
Spamer

Пользователь
***
Группа: Пользователи
сообщение 12.8.2012, 14:07
Сообщение #13
Цитата(Anadorr @ 12.8.2012, 13:48) *
Так что тебе мешает написать самому функцию на JS ? )
Выше я указал пример

Мб я дуб в этом деле.Ничего не выходит по примеру.Спс за проявленное внимание выше отписавшим.
Перейти в начало страницы
 
+Цитировать сообщение
DesT

Старожил
*****
Группа: Пользователи
сообщение 13.8.2012, 11:25
Сообщение #14
Не требует веб сервера, для юза нужен только браузер, любо кто может создать у себя html файл и открыв его через браузер смотреть статистику.

<html>
<head>
<meta http-equiv='Content-type' content='text/html; charset=utf-8'>
<script type='text/javascript' src='http://sys.uawow.com/api/uawowapi.js'></script>
<script>
$UAWOW.WG.getPeriodically(30000, 'all', function(r, w, t, d){
console.log(r, w, t, d);
document.getElementById(r + '_wg').innerHTML =r;
document.getElementById(r+'_wg_start').innerHTML=$UAWOW.Tools.fromUnixtime(t);
document.getElementById(r+'_wg_owner').innerHTML=(d ? "Horde" : "Aleni")
});
</script>
<style>
.wg_status{
border: 1px solid blue;
width:150px;
}
.wg_status div {
display: inline-block;
padding-top: 5px;
}
</style>
</head>
<body>
<div class="wg_status">
Realm: <div id="illidan_wg"></div><br>
Time to start: <div id="illidan_wg_start"></div><br>
Owner: <div id="illidan_wg_owner"></div><br><hr>
Realm: <div id="tirion_wg"></div><br>
Time to start: <div id="tirion_wg_start"></div><br>
Owner: <div id="tirion_wg_owner"></div><br>
</div>
</body>
</html>

Сообщение отредактировал DesT - 13.8.2012, 11:32
Перейти в начало страницы
 
+Цитировать сообщение
Последние 1 пользователей, поблагодарившие DesT за это сообщение:
Spamer
Импртать

VIP
*******
Группа: Администраторы
сообщение 18.10.2012, 15:31
Сообщение #15
Скрипты со старым API больше не доступны, эти же данные можно получить через http://api.uawow.com/

Статус реамов: http://api.uawow.com/all/status/xml
Информация по ОЛО: http://api.uawow.com/all/wg/xml
Таймер арены: http://api.uawow.com/all/arena/xml

Для получения данных по одному реалму следует заменить all на illidan или tirion.
Данные можно получить в фрматах: xml, json, js, plain-text
Перейти в начало страницы
 
+Цитировать сообщение
Последние 3 пользователей, поблагодарившие Импртать за это сообщение:
Spamer, Лихачь, Седан
Spamer

Пользователь
***
Группа: Пользователи
сообщение 18.10.2012, 18:02
Сообщение #16
Цитата(Импртать @ 18.10.2012, 16:31) *
Скрипты со старым API больше не доступны, эти же данные можно получить через http://api.uawow.com/

Статус реамов: http://api.uawow.com/all/status/xml
Информация по ОЛО: http://api.uawow.com/all/wg/xml
Таймер арены: http://api.uawow.com/all/arena/xml

Для получения данных по одному реалму следует заменить all на illidan или tirion.
Данные можно получить в фрматах: xml, json, js, plain-text

Оло и АП илидана показывает по старому API.

Сообщение отредактировал Spamer - 18.10.2012, 18:03
Перейти в начало страницы
 
+Цитировать сообщение
Импртать

VIP
*******
Группа: Администраторы
сообщение 18.10.2012, 18:06
Сообщение #17
Цитата(Spamer @ 18.10.2012, 19:02) *
Оло и АП илидана показывает по старому API.


Это не надолго.
Перейти в начало страницы
 
+Цитировать сообщение
Последние 1 пользователей, поблагодарившие Импртать за это сообщение:
Spamer

Ответить в данную темуНачать новую тему
3 чел. читают эту тему (гостей: 3, скрытых пользователей: 0)
Пользователей: 0

Свернуть

> Похожие темы

  Тема Ответов Автор Просмотров Последнее сообщение
Нет новых сообщений День народження UAWOW
10 geroin 7 325 12.5.2014, 15:30 Посл. сообщение: Маша
Нет новых сообщений АКЦИЯ! Воскрешение на UAWoW!
0 burned 6 658 13.11.2013, 17:48 Посл. сообщение: burned
Нет новых ВАЖНО: UAWOW радио
241 burned 15 589 737 23.7.2013, 11:00 Посл. сообщение: burned
Нет новых сообщений UAWOW 6 лет!
0 burned 6 351 1.5.2013, 10:18 Посл. сообщение: burned
Нет новых сообщений intertelecom vs uawow
Оо
7 Richy 5 580 10.3.2013, 1:48 Посл. сообщение: mr.Scamp

 



Главная

RSS Текстовая версия Сейчас: 24.9.2017, 10:36
Рейтинг@Mail.ru bigmir)net TOP 100 Ramblers Top100 Ramblers Top100 службы мониторинга серверов
All images and World of Warcraft related content are protected by copyright law and are registered by Blizzard Entertainment, Inc.