Что-то давно я новых функций не выкладывал... Итак, получаем список пользователей через API. user{ список пользователей } (function(window){ var apiNames = { 'USER_ID': 'id', 'USER_PROFILE': 'profile', 'USER_GROUPID': 'groupId', 'USER_GROUPNAME': 'group', 'USER_USERNAME': 'username', 'USER_NAME': 'name', 'USER_GENDER': 'gender', 'USER_AVATAR': 'avatar', 'USER_EMAIL': 'email', 'USER_ISVERIFIEDEMAIL': 'isVerifiedEmail', 'USER_HOMEPAGE': 'homepage', 'USER_COUNTRY': 'country', 'USER_CITY': 'city', 'USER_ICQ': 'icq', 'USER_AOL': 'aol', 'USER_MSN': 'msn', 'USER_YAHOO': 'yahoo', 'USER_BIRTHDAY': 'birthday', 'USER_ZODIAC': 'zodiac', 'USER_AGE': 'age', 'USER_IPADDRESS': 'ip', 'USER_BANNEDTILL': 'bannedTill', 'USER_RANK': 'rank', 'USER_RANKNAME': 'rankName', 'USER_REPUTATION': 'reputation', 'USER_AWARDS': 'awards', 'USER_REGTIMESTAMP': 'regTimeStamp', 'USER_LOGTIMESTAMP': 'logTimeStamp', 'USER_STATUS': 'status', 'USER_UNETPROFILE': 'unet', 'USER_UNETID': 'unetID', 'USER_REGDATE': 'regDate', 'USER_LASTVISIT': 'lastVisit', 'USER_POSTSNUM': 'postsNum', 'USER_STATE': 'state' }; window.getUsers = function(page,fn){ if(!fn) fn = page, page = '/api/index/15'; else if(Object.prototype.toString.call(page) == '[object Number]') page = '/api/index/15-' + page; $.get(page, function(data){ var arr = []; $('data:eq(0)',data).children('value').children('struct').each(function(){ var obj = {}; $('member', this).each(function(data){ var name = $('name', this).text(); if(apiNames[name]) name = apiNames[name]; obj[name] = $('value', this).text(); }); arr.push(obj); }); fn(arr); }); }
Используем: getUsers(function(users){ // обрабатываем }); Здесь мы получаем всех пользователей с первой страницы (/index/15).
Второй вариант: указываем номер страницы - например, получим всех пользователей со второй страницы: getUsers(2, function(users){ });
Или напрямую адрес страницы: getUsers('/index/15-2', function(users){ });
Здесь users - это массив пользователей. Каждый элемент массива - объект с информацией о пользователе. Параметры: - id - id пользователя
- profile - url профиля
- groupId - id группы
- group - название группы
- username - имя (ник)
- name - имя
- gender - пол
- avatar - url аватарки
- email - email
- isVerifiedEmail - подтверждён ли email?
- homepage - url домашней страницы
- country - страна
- city - город
- icq - ICQ
- aol - AOL
- msn - MSN
- yahoo - Yahoo
- birthday - день рождения
- zodiac - знак зодиака
- age - век
- ip - IP-адрес
- bannedTill - заблокирован?
- rank - id ранга
- rankName - ранг пользователя
- reputation - репутация
- awards - количество наград
- logTimeStamp - время и дата последнего входа (в формате timestamp)
- regTimeStamp - время и дата регистрации (также в timestamp)
- status - статус (online/offline)
- unet - адрес unet-профиля
- unetID - id unet-профиля
- regDate - дата регистрации (в форме строки)
- lastVisit - дата последнего входа (в форме строки)
- postsNum - количество материалов
- state - штат (ну хорошо, область)
Последние четыре параметра, кстати, дополнительные: в функции получения данных одного пользователя их почему-то нет. Косяк uCoz: API кривой (кривое?). И ещё один баг: в поле MSN/AOL/ICQ может содержаться строка 'MSN', или 'AOL', или 'ICQ' (в зависимости от поля).
На этом всё.
|