MSN probably doesn't work, and we don't like it anyway

This commit is contained in:
Mikael Nordfeldth 2014-05-05 23:02:17 +02:00
parent 7028c16d1c
commit 150a1abecb
27 changed files with 0 additions and 6789 deletions

View File

@ -1,209 +0,0 @@
<?php
/**
* StatusNet - the distributed open-source microblogging tool
* Copyright (C) 2009, StatusNet, Inc.
*
* Send and receive notices using the MSN network
*
* PHP version 5
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
* @category IM
* @package StatusNet
* @author Luke Fitzgerald <lw.fitzgerald@googlemail.com>
* @copyright 2010 StatusNet, Inc.
* @license http://www.fsf.org/licensing/licenses/agpl-3.0.html AGPL 3.0
* @link http://status.net/
*/
if (!defined('STATUSNET')) {
// This check helps protect against security problems;
// your code file can't be executed directly from the web.
exit(1);
}
// We bundle the phpmsnclass library...
set_include_path(get_include_path() . PATH_SEPARATOR . dirname(__FILE__) . '/extlib/phpmsnclass');
/**
* Plugin for MSN
*
* @category Plugin
* @package StatusNet
* @author Luke Fitzgerald <lw.fitzgerald@googlemail.com>
* @copyright 2010 StatusNet, Inc.
* @license http://www.fsf.org/licensing/licenses/agpl-3.0.html AGPL 3.0
* @link http://status.net/
*/
class MsnPlugin extends ImPlugin {
public $user = null;
public $password = null;
public $nickname = null;
public $transport = 'msn';
/**
* Get the internationalized/translated display name of this IM service
*
* @return string Name of service
*/
public function getDisplayName() {
// TRANS: Display name of the MSN instant messaging service.
return _m('MSN');
}
/**
* Normalize a screenname for comparison
*
* @param string $screenname screenname to normalize
* @return string an equivalent screenname in normalized form
*/
public function normalize($screenname) {
$screenname = str_replace(" ","", $screenname);
return strtolower($screenname);
}
/**
* Get the screenname of the daemon that sends and receives messages
*
* @return string Screenname
*/
public function daemonScreenname() {
return $this->user;
}
/**
* Validate (ensure the validity of) a screenname
*
* @param string $screenname screenname to validate
* @return boolean
*/
public function validate($screenname) {
return Validate::email($screenname, common_config('email', 'check_domain'));
}
/**
* Load related modules when needed
*
* @param string $cls Name of the class to be loaded
* @return boolean hook value; true means continue processing, false means stop.
*/
public function onAutoload($cls) {
$dir = dirname(__FILE__);
switch ($cls) {
case 'MSN':
require_once(INSTALLDIR.'/plugins/Msn/extlib/phpmsnclass/msn.class.php');
return false;
}
return parent::onAutoload($cls);
}
/*
* Start manager on daemon start
*
* @return boolean
*/
public function onStartImDaemonIoManagers(&$classes) {
parent::onStartImDaemonIoManagers($classes);
$classes[] = new MsnManager($this); // handles sending/receiving
return true;
}
/**
* Ensure the database table is present
*
*/
public function onCheckSchema() {
$schema = Schema::get();
// For storing messages while sessions become ready
$schema->ensureTable('msn_waiting_message', Msn_waiting_message::schemaGet());
return true;
}
/**
* Get a microid URI for the given screenname
*
* @param string $screenname
* @return string microid URI
*/
public function microiduri($screenname) {
return 'msnim:' . $screenname;
}
/**
* Send a message to a given screenname
*
* @param string $screenname Screenname to send to
* @param string $body Text to send
* @return boolean success value
*/
public function sendMessage($screenname, $body) {
$this->enqueueOutgoingRaw(array('to' => $screenname, 'message' => $body));
return true;
}
/**
* Accept a queued input message.
*
* @param array $data Data
* @return true if processing completed, false if message should be reprocessed
*/
public function receiveRawMessage($data) {
$this->handleIncoming($data['sender'], $data['message']);
return true;
}
/**
* Initialize plugin
*
* @return boolean
*/
public function initialize() {
if (!isset($this->user)) {
// TRANS: Exception thrown when configuration for the MSN plugin is incomplete.
throw new Exception(_m('Must specify a user.'));
}
if (!isset($this->password)) {
// TRANS: Exception thrown when configuration for the MSN plugin is incomplete.
throw new Exception(_m('Must specify a password.'));
}
if (!isset($this->nickname)) {
// TRANS: Exception thrown when configuration for the MSN plugin is incomplete.
throw new Exception(_m('Must specify a nickname.'));
}
return true;
}
/**
* Get plugin information
*
* @param array $versions array to insert information into
* @return void
*/
public function onPluginVersion(&$versions) {
$versions[] = array(
'name' => 'MSN',
'version' => GNUSOCIAL_VERSION,
'author' => 'Luke Fitzgerald',
'homepage' => 'http://status.net/wiki/Plugin:MSN',
'rawdescription' =>
// TRANS: Plugin description.
_m('The MSN plugin allows users to send and receive notices over the MSN network.')
);
return true;
}
}

View File

@ -1,32 +0,0 @@
The MSN plugin allows users to send and receive notices over the MSN network.
Required PHP extensions:
curl pcre mhash mcrypt bcmath
Installation
============
add "addPlugin('msn',
array('setting'=>'value', 'setting2'=>'value2', ...);"
to the bottom of your config.php
scripts/imdaemon.php included with StatusNet must be running. It will be started
by the plugin along with their other daemons when you run
scripts/startdaemons.sh. See the StatusNet README for more about queuing and
daemons.
Settings
========
user*: username (screenname) to use when logging into MSN
password*: password for that user
nickname*: nickname for the bot
* required
default values are in (parenthesis)
Example
=======
addPlugin('msn', array(
'user' => '...',
'password' => '...',
'nickname' => '...'
));

View File

@ -1,87 +0,0 @@
<?php
/**
* Table Definition for msn_waiting_message
*/
require_once INSTALLDIR.'/classes/Memcached_DataObject.php';
class Msn_waiting_message extends Managed_DataObject {
public $__table = 'msn_waiting_message'; // table name
public $id; // int primary_key not_null auto_increment
public $screenname; // varchar(255) not_null
public $message; // text not_null
public $claimed; // datetime()
public $created; // datetime() not_null
public $modified; // timestamp() not_null default_CURRENT_TIMESTAMP
public static function schemaDef()
{
return array(
'fields' => array(
'id' => array('type' => 'serial', 'not null' => true, 'description' => 'Unique ID for entry'),
'screenname' => array('type' => 'varchar', 'length' => 255, 'description' => 'from screenname'),
'message' => array('type' => 'text', 'not null' => true, 'description' => 'MSN message text'),
'claimed' => array('type' => 'datetime', 'description' => 'date this irc message was claimed'),
'created' => array('type' => 'datetime', 'not null' => true, 'description' => 'date this record was created'),
'modified' => array('type' => 'timestamp', 'not null' => true, 'description' => 'date this record was modified'),
),
'primary key' => array('id'),
'indexes' => array(
'msn_waiting_message_prioritise_idx' => array('screenname'),
),
);
}
/**
* @param string $screenname screenname or array of screennames to pull from
* If not specified, checks all queues in the system.
*/
public static function top($screenname = null) {
$wm = new Msn_waiting_message();
if ($screenname) {
if (is_array($screenname)) {
// @fixme use safer escaping
$list = implode("','", array_map('addslashes', $screenname));
$wm->whereAdd("screenname in ('$list')");
} else {
$wm->screenname = $screenname;
}
}
$wm->orderBy('created');
$wm->whereAdd('claimed is null');
$wm->limit(1);
$cnt = $wm->find(true);
if ($cnt) {
// XXX: potential race condition
// can we force it to only update if claimed is still null
// (or old)?
common_log(LOG_INFO, 'claiming msn waiting message id = ' . $wm->id);
$orig = clone($wm);
$wm->claimed = common_sql_now();
$result = $wm->update($orig);
if ($result) {
common_log(LOG_INFO, 'claim succeeded.');
return $wm;
} else {
common_log(LOG_INFO, 'claim failed.');
}
}
$wm = null;
return null;
}
/**
* Release a claimed item.
*/
public function releaseClaim() {
// DB_DataObject doesn't let us save nulls right now
$sql = sprintf("UPDATE msn_waiting_message SET claimed=NULL WHERE id=%d", $this->id);
$this->query($sql);
$this->claimed = null;
$this->encache();
}
}

File diff suppressed because it is too large Load Diff

View File

@ -1,63 +0,0 @@
#!/usr/bin/php
<?php
global $msn;
function ChildSignalFunction($signal)
{
global $msn;
switch($signal)
{
case SIGTRAP:
case SIGTERM:
case SIGHUP:
if(is_object($msn)) $msn->End();
return;
}
}
// network:
// 1: WLM/MSN
// 2: LCS
// 4: Mobile Phones
// 32: Yahoo!
function getNetworkName($network)
{
switch ($network)
{
case 1:
return 'WLM/MSN';
case 2:
return 'LCS';
case 4:
return 'Mobile Phones';
case 32:
return 'Yahoo!';
}
return "Unknown ($network)";
}
require_once('config.php');
include_once('msn.class.php');
$msn = new MSN(array(
'user' => 'xxx@hotmail.com',
'password' => 'mypassword',
'alias' => 'myalias',
'psm' => 'psm',
// 'PhotoSticker' => 'msntitle.jpg',
'debug'=> true,
/* 'Emotions' => array(
'aaa' => 'emotion.gif'
),*/
));
$fp=fopen(MSN_CLASS_LOG_DIR.DIRECTORY_SEPARATOR.'msnbot.pid', 'wt');
if($fp)
{
fputs($fp,posix_getpid());
fclose($fp);
}
declare(ticks = 1);
$msn->Run();
$msn->log_message("done!");
@unlink(dirname($_SERVER['argv'][0]).DIRECTORY_SEPARATOR.'log'.DIRECTORY_SEPARATOR.'msnbot.pid');

View File

@ -1,832 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- edited with XMLSpy v2008 sp1 (http://www.altova.com) by wp (freezingsoft) -->
<xsd:schema xmlns:msnab="http://www.msn.com/webservices/AddressBook" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" targetNamespace="http://www.msn.com/webservices/AddressBook" elementFormDefault="qualified" attributeFormDefault="unqualified" version="1.0">
<xsd:complexType name="abInfoType">
<xsd:sequence>
<xsd:element name="name" type="xsd:string" minOccurs="0"/>
<xsd:element name="ownerPuid" type="xsd:string"/>
<xsd:element name="OwnerCID" type="xsd:integer" minOccurs="0"/>
<xsd:element name="ownerEmail" type="xsd:string"/>
<xsd:element name="fDefault" type="xsd:boolean"/>
<xsd:element name="joinedNamespace" type="xsd:boolean" minOccurs="0"/>
<xsd:element name="IsBot" type="xsd:boolean" minOccurs="0"/>
<xsd:element name="IsParentManaged" type="xsd:boolean" minOccurs="0"/>
<xsd:element name="SubscribeExternalPartner" type="xsd:boolean" minOccurs="0"/>
<xsd:element name="NotifyExternalPartner" type="xsd:boolean" minOccurs="0"/>
<xsd:element name="AddressBookType" type="xsd:string" minOccurs="0"/>
<xsd:element name="MessengerApplicationServiceCreated" type="xsd:boolean" minOccurs="0"/>
<xsd:element name="IsBetaMigrated" type="xsd:boolean" minOccurs="0"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="HandleType">
<xsd:sequence>
<xsd:element name="Id" type="xsd:integer"/>
<xsd:element name="Type" type="xsd:string" default="Messenger"/>
<xsd:element name="ForeignId" type="xsd:string"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="ServiceType">
<xsd:sequence>
<xsd:element name="Memberships" minOccurs="0">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="Membership" type="msnab:Membership" minOccurs="0" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="Info" type="msnab:InfoType"/>
<xsd:element name="Changes" type="xsd:string"/>
<xsd:element name="LastChange" type="xsd:dateTime" default="0001-01-01T00:00:00"/>
<xsd:element name="Deleted" type="xsd:boolean" default="false"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="Membership">
<xsd:sequence>
<xsd:element name="MemberRole" type="xsd:string"/>
<xsd:element name="Members">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="Member" type="msnab:BaseMember" minOccurs="0" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="MembershipIsComplete" type="xsd:boolean" minOccurs="0"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="BaseMember">
<xsd:sequence>
<xsd:element name="MembershipId" type="xsd:positiveInteger" minOccurs="0"/>
<xsd:element name="Type" type="xsd:string"/>
<xsd:element name="Location" minOccurs="0">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="Id" type="msnab:Guid"/>
<xsd:element name="IsPassportNameHidden" type="xsd:boolean"/>
<xsd:element name="CID" type="xsd:long"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="DisplayName" type="xsd:string" minOccurs="0"/>
<xsd:element name="State" type="msnab:MemberState"/>
<xsd:element name="Annotations" minOccurs="0">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="Annotation" type="msnab:Annotation" minOccurs="0" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="Deleted" type="xsd:boolean" default="false" minOccurs="0"/>
<xsd:element name="LastChanged" type="xsd:dateTime" minOccurs="0"/>
<xsd:element name="JoinedDate" type="xsd:dateTime" minOccurs="0"/>
<xsd:element name="ExpirationDate" type="xsd:dateTime" minOccurs="0"/>
<xsd:element name="Changes" type="xsd:string" minOccurs="0"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="CircleMember" mixed="false">
<xsd:complexContent mixed="false">
<xsd:extension base="msnab:BaseMember">
<xsd:sequence>
<xsd:element name="CircleId" type="msnab:Guid"/>
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="PassportMember" mixed="false">
<xsd:complexContent mixed="false">
<xsd:extension base="msnab:BaseMember">
<xsd:sequence>
<xsd:element name="PassportName" type="xsd:string"/>
<xsd:element name="IsPassportNameHidden" type="xsd:boolean" minOccurs="0"/>
<xsd:element name="PassportId" type="xsd:int" minOccurs="0"/>
<xsd:element name="CID" type="xsd:long" minOccurs="0"/>
<xsd:element name="PassportChanges" type="xsd:string" minOccurs="0"/>
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="EmailMember" mixed="false">
<xsd:complexContent mixed="false">
<xsd:extension base="msnab:BaseMember">
<xsd:sequence>
<xsd:element name="Email" type="xsd:string"/>
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="PhoneMember" mixed="false">
<xsd:complexContent mixed="false">
<xsd:extension base="msnab:BaseMember">
<xsd:sequence>
<xsd:element name="PhoneNumber" type="xsd:string"/>
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="RoleMember" mixed="false">
<xsd:complexContent mixed="false">
<xsd:extension base="msnab:BaseMember">
<xsd:sequence>
<xsd:element name="Id" type="xsd:string"/>
<xsd:element name="DefiningService">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="Id" type="xsd:integer"/>
<xsd:element name="Type" type="xsd:string"/>
<xsd:element name="ForeignId" type="xsd:string"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="MaxRoleRecursionDepth" type="xsd:integer"/>
<xsd:element name="MaxDegreesSeparation" type="xsd:integer"/>
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="ServiceMember" mixed="false">
<xsd:complexContent mixed="false">
<xsd:extension base="msnab:BaseMember">
<xsd:sequence>
<xsd:element name="Service" type="msnab:HandleType"/>
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="DomainMember" mixed="false">
<xsd:complexContent mixed="false">
<xsd:extension base="msnab:BaseMember">
<xsd:sequence>
<xsd:element name="DomainName" type="xsd:string"/>
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="EveryoneMember" mixed="false">
<xsd:complexContent mixed="false">
<xsd:extension base="msnab:BaseMember"/>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="GroupMember" mixed="false">
<xsd:complexContent mixed="false">
<xsd:extension base="msnab:BaseMember">
<xsd:sequence>
<xsd:element name="Id" type="msnab:Guid"/>
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:simpleType name="Guid">
<xsd:restriction base="xsd:string">
<xsd:pattern value="[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:element name="MemberType">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:enumeration value="Allow"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:simpleType name="MemberState">
<xsd:restriction base="xsd:string">
<xsd:enumeration value="Accepted"/>
<xsd:enumeration value="Pending"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:complexType name="Annotation">
<xsd:sequence>
<xsd:element name="Name" type="xsd:string"/>
<xsd:element name="Value" type="xsd:string" minOccurs="0"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="ContactType">
<xsd:sequence>
<xsd:element name="contactId" type="msnab:Guid" minOccurs="0"/>
<xsd:element name="contactInfo" type="msnab:contactInfoType" minOccurs="0"/>
<xsd:element name="propertiesChanged" type="xsd:string" minOccurs="0">
<xsd:annotation>
<xsd:documentation>
A space (ASCII #32) separated list of properties that
have changed as part of an update request. The property
names don't always match the name of the associated
element.
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="fDeleted" type="xsd:boolean" minOccurs="0"/>
<xsd:element name="lastChange" type="xsd:dateTime" minOccurs="0"/>
<xsd:element name="CreateDate" type="xsd:dateTime" minOccurs="0"/>
<xsd:element name="LastModifiedBy" type="xsd:integer" minOccurs="0"/>
<xsd:element name="CreatedBy" type="xsd:integer" minOccurs="0"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="ContactIdType">
<xsd:sequence>
<xsd:element name="contactId" type="msnab:Guid" minOccurs="0"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="contactInfoType">
<xsd:sequence>
<xsd:element name="emails" minOccurs="0">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="ContactEmail" type="msnab:contactEmailType" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="phones" minOccurs="0">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="ContactPhone" type="msnab:contactPhoneType" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="locations" minOccurs="0">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="ContactLocation" type="msnab:contactLocationType" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="webSites" minOccurs="0">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="ContactWebSite" type="msnab:contactWebSiteType" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="annotations" minOccurs="0">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="Annotation" type="msnab:Annotation" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="groupIds" minOccurs="0">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="guid" type="msnab:Guid" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="groupIdsDeleted" minOccurs="0">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="guid" type="msnab:Guid" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="contactType" type="xsd:string" minOccurs="0"/>
<xsd:element name="quickName" type="xsd:string" minOccurs="0"/>
<xsd:element name="firstName" type="xsd:string" minOccurs="0"/>
<xsd:element name="MiddleName" type="xsd:string" minOccurs="0"/>
<xsd:element name="lastName" type="xsd:string" minOccurs="0"/>
<xsd:element name="Suffix" type="xsd:string" minOccurs="0"/>
<xsd:element name="NameTitle" type="xsd:string" minOccurs="0"/>
<xsd:element name="passportName" type="xsd:string" minOccurs="0"/>
<xsd:element name="IsPassportNameHidden" type="xsd:boolean" minOccurs="0"/>
<xsd:element name="displayName" type="xsd:string" minOccurs="0"/>
<xsd:element name="puid" type="xsd:long" minOccurs="0"/>
<xsd:element name="CID" type="xsd:long" minOccurs="0"/>
<xsd:element name="BrandIdList" type="xsd:anyType" minOccurs="0"/>
<xsd:element name="comment" type="xsd:string" minOccurs="0"/>
<xsd:element name="IsNotMobileVisible" type="xsd:boolean" minOccurs="0"/>
<xsd:element name="isMobileIMEnabled" type="xsd:boolean" minOccurs="0"/>
<xsd:element name="isMessengerUser" type="xsd:boolean" minOccurs="0"/>
<xsd:element name="isFavorite" type="xsd:boolean" minOccurs="0"/>
<xsd:element name="isSmtp" type="xsd:boolean" minOccurs="0"/>
<xsd:element name="hasSpace" type="xsd:boolean" minOccurs="0">
<xsd:annotation>
<xsd:documentation>
Indicates whether the contact has a Windows Live
Space or not.
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="spotWatchState" type="xsd:string" minOccurs="0"/>
<xsd:element name="birthdate" type="xsd:dateTime" minOccurs="0"/>
<xsd:element name="primaryEmailType" type="msnab:ContactEmailTypeType" minOccurs="0"/>
<xsd:element name="PrimaryLocation" type="msnab:ContactLocationTypeType" minOccurs="0"/>
<xsd:element name="PrimaryPhone" type="msnab:ContactPhoneTypeType" minOccurs="0"/>
<xsd:element name="IsPrivate" type="xsd:boolean" minOccurs="0"/>
<xsd:element name="Anniversary" type="xsd:string" minOccurs="0">
<xsd:annotation>
<xsd:documentation>
Seen is YYYY/MM/DD format.
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="Gender" type="xsd:string" minOccurs="0"/>
<xsd:element name="TimeZone" type="xsd:string" minOccurs="0"/>
<xsd:element name="NetworkInfoList" minOccurs="0">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="NetworkInfo" type="msnab:NetworkInfoType" minOccurs="0" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="PublicDisplayName" type="xsd:string" minOccurs="0"/>
<xsd:element name="IsAutoUpdateDisabled" type="xsd:boolean" minOccurs="0"/>
<xsd:element name="MessengerMemberInfo" type="msnab:MessengerMemberInfo" minOccurs="0"/>
<xsd:element name="PropertiesChanged" type="xsd:anyType" minOccurs="0"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="contactEmailType">
<xsd:sequence>
<xsd:element name="contactEmailType" type="msnab:ContactEmailTypeType"/>
<xsd:element name="email" type="xsd:string"/>
<xsd:element name="isMessengerEnabled" type="xsd:boolean"/>
<xsd:element name="Capability" type="xsd:integer"/>
<xsd:element name="MessengerEnabledExternally" type="xsd:boolean"/>
<xsd:element name="propertiesChanged" type="xsd:string"/>
</xsd:sequence>
</xsd:complexType>
<xsd:simpleType name="ContactEmailTypeType">
<xsd:restriction base="xsd:string">
<xsd:enumeration value="ContactEmailPersonal"/>
<xsd:enumeration value="ContactEmailBusiness"/>
<xsd:enumeration value="ContactEmailOther"/>
<xsd:enumeration value="ContactEmailMessenger"/>
<xsd:enumeration value="Messenger2"/>
<xsd:enumeration value="Messenger3"/>
<xsd:enumeration value="Messenger4"/>
<xsd:enumeration value="Passport"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:complexType name="contactPhoneType">
<xsd:sequence>
<xsd:element name="contactPhoneType" type="msnab:ContactPhoneTypeType"/>
<xsd:element name="number" type="xsd:string"/>
<xsd:element name="isMessengerEnabled" type="xsd:boolean"/>
<xsd:element name="propertiesChanged" type="xsd:string"/>
</xsd:sequence>
</xsd:complexType>
<xsd:simpleType name="ContactPhoneTypeType">
<xsd:restriction base="xsd:string">
<xsd:enumeration value="ContactPhonePersonal"/>
<xsd:enumeration value="ContactPhoneBusiness"/>
<xsd:enumeration value="ContactPhoneMobile"/>
<xsd:enumeration value="ContactPhonePager"/>
<xsd:enumeration value="ContactPhoneOther"/>
<xsd:enumeration value="ContactPhoneFax"/>
<xsd:enumeration value="Personal2"/>
<xsd:enumeration value="Business2"/>
<xsd:enumeration value="BusinessFax"/>
<xsd:enumeration value="BusinessMobile"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:complexType name="contactLocationType">
<xsd:sequence>
<xsd:element name="contactLocationType" type="msnab:ContactLocationTypeType"/>
<xsd:element name="name" type="xsd:string" minOccurs="0"/>
<xsd:element name="street" type="xsd:string"/>
<xsd:element name="city" type="xsd:string"/>
<xsd:element name="state" type="xsd:string"/>
<xsd:element name="country" type="xsd:string"/>
<xsd:element name="postalCode" type="xsd:string"/>
<xsd:element name="Department" type="xsd:string" minOccurs="0"/>
<xsd:element name="Changes" type="xsd:string"/>
</xsd:sequence>
</xsd:complexType>
<xsd:simpleType name="ContactLocationTypeType">
<xsd:restriction base="xsd:string">
<xsd:enumeration value="ContactLocationPersonal"/>
<xsd:enumeration value="ContactLocationBusiness"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:complexType name="contactWebSiteType">
<xsd:sequence>
<xsd:element name="contactWebSiteType" type="msnab:ContactWebSiteTypeType"/>
<xsd:element name="webURL" type="xsd:string"/>
</xsd:sequence>
</xsd:complexType>
<xsd:simpleType name="ContactWebSiteTypeType">
<xsd:restriction base="xsd:string">
<xsd:enumeration value="ContactWebSitePersonal"/>
<xsd:enumeration value="ContactWebSiteBusiness"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:complexType name="GroupType">
<xsd:sequence>
<xsd:element name="groupId" type="msnab:Guid"/>
<xsd:element name="groupInfo" type="msnab:groupInfoType"/>
<xsd:element name="propertiesChanged" type="xsd:string">
<xsd:annotation>
<xsd:documentation>
A space (ASCII #32) separated list of properties that
have changed as part of an update request. The property
names don't always match the name of the associated
element.
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="fDeleted" type="xsd:boolean" minOccurs="0"/>
<xsd:element name="lastChange" type="xsd:dateTime" minOccurs="0"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="groupInfoType">
<xsd:sequence>
<xsd:element name="annotations" minOccurs="0">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="Annotation" type="msnab:Annotation" minOccurs="0" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="groupType" type="msnab:Guid" default="C8529CE2-6EAD-434d-881F-341E17DB3FF8" minOccurs="0"/>
<xsd:element name="name" type="xsd:string" minOccurs="0"/>
<xsd:element name="IsNotMobileVisible" type="xsd:boolean" minOccurs="0"/>
<xsd:element name="IsPrivate" type="xsd:boolean" minOccurs="0"/>
<xsd:element name="IsFavorite" type="xsd:boolean" minOccurs="0"/>
<xsd:element name="fMessenger" type="xsd:boolean" minOccurs="0"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="groupFilterType">
<xsd:sequence>
<xsd:element name="groupIds">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="guid" type="msnab:Guid" minOccurs="0" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
<xsd:element name="InvalidPassportUser">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="errorcode" type="xsd:string"/>
<xsd:element name="errorstring" type="xsd:string"/>
<xsd:element name="additionalDetails">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="originalExceptionErrorMessage" type="xsd:string"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:complexType name="MessengerMemberInfo">
<xsd:sequence>
<xsd:element name="PendingAnnotations" minOccurs="0">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="Annotation" type="msnab:Annotation" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="DisplayName" type="xsd:string" minOccurs="0"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="InfoType">
<xsd:sequence>
<xsd:element name="Handle" type="msnab:HandleType"/>
<xsd:element name="DisplayName" type="xsd:string" minOccurs="0"/>
<xsd:element name="InverseRequired" type="xsd:boolean" default="false"/>
<xsd:element name="AuthorizationCriteria" type="xsd:string" minOccurs="0"/>
<xsd:element name="RSSUrl" type="xsd:anyURI" minOccurs="0"/>
<xsd:element name="IsBot" type="xsd:boolean" default="false"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="NotificationDataType">
<xsd:sequence>
<xsd:element name="StoreService" type="msnab:ServiceType"/>
<xsd:element name="Status" type="xsd:string"/>
<xsd:element name="LastChanged" type="xsd:dateTime"/>
<xsd:element name="Gleam" type="xsd:boolean" default="false"/>
<xsd:element name="InstanceId" type="xsd:string" default="0"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="BaseDynamicItemType">
<xsd:sequence>
<xsd:element name="Type" type="xsd:string"/>
<xsd:element name="Deleted" type="xsd:boolean" minOccurs="0"/>
<xsd:element name="LastChanged" type="xsd:dateTime" minOccurs="0"/>
<xsd:element name="Notifications" minOccurs="0">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="NotificationData" type="msnab:NotificationDataType" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="Changes" type="xsd:string"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="CircleDynamicItem" mixed="false">
<xsd:complexContent mixed="false">
<xsd:extension base="msnab:BaseDynamicItemType">
<xsd:sequence>
<xsd:element name="Id" type="xsd:string"/>
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="PassportDynamicItem" block="" mixed="false">
<xsd:complexContent mixed="false">
<xsd:extension base="msnab:BaseDynamicItemType">
<xsd:sequence>
<xsd:element name="CID" type="xsd:string" minOccurs="0"/>
<xsd:element name="PassportName" type="xsd:string"/>
<xsd:element name="PassportId" type="xsd:string" minOccurs="0"/>
<xsd:element name="SpaceStatus" type="xsd:string"/>
<xsd:element name="SpaceLastChanged" type="xsd:dateTime" minOccurs="0"/>
<xsd:element name="SpaceLastViewed" type="xsd:dateTime" minOccurs="0"/>
<xsd:element name="SpaceGleam" type="xsd:boolean" minOccurs="0"/>
<xsd:element name="ProfileLastChanged" type="xsd:dateTime" minOccurs="0"/>
<xsd:element name="ProfileLastView" type="xsd:dateTime" minOccurs="0"/>
<xsd:element name="ProfileStatus" type="xsd:string"/>
<xsd:element name="ProfileGleam" type="xsd:boolean" minOccurs="0"/>
<xsd:element name="ContactProfileStatus" type="xsd:string"/>
<xsd:element name="ContactProfileLastChanged" type="xsd:dateTime" minOccurs="0"/>
<xsd:element name="ContactProfileLastViewed" type="xsd:dateTime" minOccurs="0"/>
<xsd:element name="LiveContactLastChanged" type="xsd:dateTime" minOccurs="0"/>
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="abType">
<xsd:sequence>
<xsd:element name="abId" type="msnab:Guid"/>
<xsd:element name="abInfo" type="msnab:abInfoType"/>
<xsd:element name="lastChange" type="xsd:dateTime"/>
<xsd:element name="DynamicItemLastChanged" type="xsd:dateTime"/>
<xsd:element name="RecentActivityItemLastChanged" type="xsd:dateTime"/>
<xsd:element name="createDate" type="xsd:dateTime"/>
<xsd:element name="propertiesChanged" type="xsd:anyType"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="CircleResultType">
<xsd:sequence>
<xsd:element name="Circles" minOccurs="0">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="CircleInverseInfo" type="msnab:CircleInverseInfoType" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="CircleTicket" type="xsd:string"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="NetworkInfoType">
<xsd:sequence>
<xsd:element name="DomainId" type="xsd:int" minOccurs="0"/>
<xsd:element name="DomainTag" type="xsd:string" minOccurs="0"/>
<xsd:element name="UserTileURL" type="xsd:string" minOccurs="0"/>
<xsd:element name="ProfileURL" type="xsd:string" minOccurs="0"/>
<xsd:element name="DisplayName" type="xsd:string" minOccurs="0"/>
<xsd:element name="RelationshipType" type="xsd:int" minOccurs="0"/>
<xsd:element name="RelationshipState" type="xsd:int" minOccurs="0"/>
<xsd:element name="RelationshipStateDate" type="xsd:string" minOccurs="0"/>
<xsd:element name="RelationshipRole" type="xsd:int" minOccurs="0"/>
<xsd:element name="NDRCount" type="xsd:int" minOccurs="0"/>
<xsd:element name="InviterCID" type="xsd:long" minOccurs="0"/>
<xsd:element name="CreateDate" type="xsd:dateTime" minOccurs="0"/>
<xsd:element name="LastChanged" type="xsd:dateTime" minOccurs="0"/>
<xsd:element name="PropertiesChanged" type="xsd:anyType" minOccurs="0"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="ContactFilterType">
<xsd:sequence>
<xsd:element name="IncludeHiddenContacts" type="xsd:boolean"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="filterOptionsType">
<xsd:sequence>
<xsd:element name="DeltasOnly" type="xsd:boolean"/>
<xsd:element name="LastChanged" type="xsd:dateTime" minOccurs="0"/>
<xsd:element name="ContactFilter" type="msnab:ContactFilterType"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="entityHandle">
<xsd:sequence>
<xsd:element name="Cid" type="xsd:long"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="NotationType">
<xsd:sequence>
<xsd:element name="Name" type="xsd:string"/>
<xsd:element name="Value" type="xsd:string"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="ListTemplateVariableItemType">
<xsd:sequence>
<xsd:element name="Values">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="Value" type="msnab:SimpleTemplateVariableBaseType" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="TemplateVariableBaseType">
<xsd:sequence>
<xsd:element name="Name" type="xsd:string"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="SimpleTemplateVariableBaseType">
<xsd:complexContent>
<xsd:extension base="msnab:TemplateVariableBaseType">
<xsd:sequence>
<xsd:element name="Value" type="xsd:string"/>
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="PublisherIdTemplateVariable">
<xsd:complexContent>
<xsd:extension base="msnab:TemplateVariableBaseType">
<xsd:sequence>
<xsd:element name="Id" type="xsd:string"/>
<xsd:element name="NameHint" type="xsd:string" minOccurs="0"/>
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="TargetIdTemplateVariable">
<xsd:complexContent>
<xsd:extension base="msnab:PublisherIdTemplateVariable">
<xsd:sequence>
<xsd:element name="IdOwner" type="xsd:string"/>
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="TextTemplateVariable">
<xsd:complexContent>
<xsd:extension base="msnab:SimpleTemplateVariableBaseType"/>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="HlinkTemplateVariable">
<xsd:complexContent>
<xsd:extension base="msnab:SimpleTemplateVariableBaseType">
<xsd:sequence>
<xsd:element name="Text" type="xsd:string"/>
<xsd:element name="Notations">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="Notation" type="msnab:NotationType" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="ListTemplateVariable">
<xsd:complexContent>
<xsd:extension base="msnab:TemplateVariableBaseType">
<xsd:sequence>
<xsd:element name="Items">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="ListTemplateVariableItem" type="msnab:ListTemplateVariableItemType" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="ImageTemplateVariable">
<xsd:complexContent>
<xsd:extension base="msnab:SimpleTemplateVariableBaseType">
<xsd:sequence>
<xsd:element name="Href" type="xsd:anyURI"/>
<xsd:element name="Notations">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="Notation" type="msnab:NotationType" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="ActivityDetailsType">
<xsd:sequence>
<xsd:element name="OwnerCID" type="xsd:string"/>
<xsd:element name="ObjectId" type="xsd:string"/>
<xsd:element name="ApplicationId" type="xsd:string"/>
<xsd:element name="ChangeType" type="xsd:string"/>
<xsd:element name="PublishDate" type="xsd:dateTime"/>
<xsd:element name="TemplateVariables">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="TemplateVariable" type="msnab:TemplateVariableBaseType" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="RecentActivityTemplateType">
<xsd:sequence>
<xsd:element name="Cardinality" type="xsd:string"/>
<xsd:element name="Data" type="xsd:string"/>
<xsd:element name="Title" type="xsd:string"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="RequestedLocalesType">
<xsd:sequence>
<xsd:element name="string" type="xsd:string" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="RecentActivityTemplateContainerType">
<xsd:sequence>
<xsd:element name="ApplicationId" type="xsd:string"/>
<xsd:element name="ApplicationName" type="xsd:string"/>
<xsd:element name="ChangeType" type="xsd:integer"/>
<xsd:element name="Locale" type="xsd:string"/>
<xsd:element name="RequestedLocales" type="msnab:RequestedLocalesType"/>
<xsd:element name="TemplateRevision" type="xsd:integer"/>
<xsd:element name="Templates">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="RecentActivityTemplate" type="msnab:RecentActivityTemplateType" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="CollapseCondition" type="msnab:CollapseConditionType" minOccurs="0"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="CollapseConditionType">
<xsd:sequence>
<xsd:element name="string" type="xsd:string" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="CirclePersonalMembershipType">
<xsd:sequence>
<xsd:element name="Role" type="xsd:string"/>
<xsd:element name="State" type="xsd:string"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="abHandleType">
<xsd:sequence>
<xsd:element name="ABId" type="xsd:string"/>
<xsd:element name="Puid" type="xsd:long"/>
<xsd:element name="Cid" type="xsd:long"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="contactHandleType">
<xsd:sequence>
<xsd:element name="Email" type="xsd:string"/>
<xsd:element name="Puid" type="xsd:long"/>
<xsd:element name="Cid" type="xsd:long"/>
<xsd:element name="CircleId" type="xsd:string"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="MembershipInfoType">
<xsd:sequence>
<xsd:element name="CirclePersonalMembership" type="msnab:CirclePersonalMembershipType"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="PersonalInfoType">
<xsd:sequence>
<xsd:element name="MembershipInfo" type="msnab:MembershipInfoType"/>
<xsd:element name="Name" type="xsd:string"/>
<xsd:element name="IsNotMobileVisible" type="xsd:boolean"/>
<xsd:element name="IsFavorite" type="xsd:boolean"/>
<xsd:element name="IsFamily" type="xsd:boolean"/>
<xsd:element name="Changes" type="xsd:anyType"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="ContentInfoType">
<xsd:sequence>
<xsd:element name="Domain" type="xsd:int"/>
<xsd:element name="HostedDomain" type="xsd:string"/>
<xsd:element name="Type" type="xsd:int"/>
<xsd:element name="MembershipAccess" type="xsd:int"/>
<xsd:element name="IsPresenceEnabled" type="xsd:boolean"/>
<xsd:element name="RequestMembershipOption" type="xsd:int"/>
<xsd:element name="DisplayName" type="xsd:string"/>
<xsd:element name="ProfileLastUpdated" type="xsd:dateTime" minOccurs="0"/>
<xsd:element name="Changes" type="xsd:anyType" minOccurs="0"/>
<xsd:element name="CreateDate" type="xsd:dateTime" minOccurs="0"/>
<xsd:element name="LastChanged" type="xsd:dateTime" minOccurs="0"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="ContentHandleType">
<xsd:sequence>
<xsd:element name="Id" type="xsd:string"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="ContentType">
<xsd:sequence>
<xsd:element name="Handle" type="msnab:ContentHandleType"/>
<xsd:element name="Info" type="msnab:ContentInfoType"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="CircleInverseInfoType">
<xsd:sequence>
<xsd:element name="Content" type="msnab:ContentType"/>
<xsd:element name="PersonalInfo" type="msnab:PersonalInfoType"/>
<xsd:element name="Deleted" type="xsd:boolean"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="callerInfoType">
<xsd:sequence>
<xsd:element name="PublicDisplayName" type="xsd:string"/>
</xsd:sequence>
</xsd:complexType>
</xsd:schema>

View File

@ -1,567 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- edited with XMLSpy v2008 sp1 (http://www.altova.com) by wp (freezingsoft) -->
<xsd:schema xmlns:msnab="http://www.msn.com/webservices/AddressBook" xmlns:xsd="http://www.w3.org/2001/XMLSchema" targetNamespace="http://www.msn.com/webservices/AddressBook" elementFormDefault="qualified" attributeFormDefault="unqualified" version="1.0">
<xsd:include schemaLocation="msnab_datatypes.xsd"/>
<xsd:element name="ABApplicationHeader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="ApplicationId" type="msnab:Guid" fixed="09607671-1C32-421F-A6A6-CBFAA51AB5F4"/>
<xsd:element name="IsMigration" type="xsd:boolean" default="false"/>
<xsd:element name="PartnerScenario" type="xsd:string" default="Initial"/>
<xsd:element name="CacheKey" type="xsd:token" minOccurs="0"/>
<xsd:element name="BrandId" type="xsd:string" minOccurs="0"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="ABAuthHeader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="ManagedGroupRequest" type="xsd:boolean" default="false"/>
<xsd:element name="TicketToken" type="xsd:string"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="ServiceHeader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="Version" type="xsd:token"/>
<xsd:element name="CacheKey" type="xsd:token" minOccurs="0"/>
<xsd:element name="CacheKeyChanged" type="xsd:boolean" minOccurs="0"/>
<xsd:element name="PreferredHostName" type="xsd:string" minOccurs="0"/>
<xsd:element name="SessionId" type="msnab:Guid" minOccurs="0"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="FindMembership" type="msnab:FindMembershipRequestType"/>
<xsd:complexType name="FindMembershipRequestType">
<xsd:sequence>
<xsd:element name="serviceFilter">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="Types">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="ServiceType" type="xsd:string" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="View" type="xsd:string" minOccurs="0"/>
<xsd:element name="deltasOnly" type="xsd:boolean" default="false" minOccurs="0"/>
<xsd:element name="lastChange" type="xsd:dateTime" default="0001-01-01T00:00:00.0000000-08:00" minOccurs="0"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="FindMembershipResultType">
<xsd:sequence>
<xsd:element name="Services">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="Service" type="msnab:ServiceType" minOccurs="0" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="OwnerNamespace">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="Info">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="Handle">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="Id" type="xsd:string"/>
<xsd:element name="IsPassportNameHidden" type="xsd:boolean"/>
<xsd:element name="CID" type="xsd:integer"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="CreatorPuid" type="xsd:integer"/>
<xsd:element name="CreatorCID" type="xsd:integer"/>
<xsd:element name="CreatorPassportName" type="xsd:string"/>
<xsd:element name="CircleAttributes">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="IsPresenceEnabled" type="xsd:boolean"/>
<xsd:element name="IsEvent" type="xsd:boolean" minOccurs="0"/>
<xsd:element name="Domain" type="xsd:string"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="MessengerApplicationServiceCreated" type="xsd:boolean" minOccurs="0"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="Changes" type="xsd:string"/>
<xsd:element name="CreateDate" type="xsd:dateTime"/>
<xsd:element name="LastChange" type="xsd:dateTime"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
<xsd:element name="FindMembershipResponse">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="FindMembershipResult" type="msnab:FindMembershipResultType"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="ABFindAll" type="msnab:ABFindAllRequestType"/>
<xsd:complexType name="ABFindAllRequestType">
<xsd:sequence>
<xsd:element name="abId" type="msnab:Guid" fixed="00000000-0000-0000-0000-000000000000"/>
<xsd:element name="abView" type="xsd:string" minOccurs="0"/>
<xsd:element name="deltasOnly" type="xsd:boolean" default="false" minOccurs="0"/>
<xsd:element name="lastChange" type="xsd:dateTime" default="0001-01-01T00:00:00.0000000-08:00" minOccurs="0"/>
<xsd:element name="dynamicItemView" type="xsd:string" fixed="Gleam" minOccurs="0"/>
<xsd:element name="dynamicItemLastChange" type="xsd:dateTime" default="0001-01-01T00:00:00.0000000-08:00" minOccurs="0"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="ABFindAllResultType">
<xsd:sequence>
<xsd:element name="groups" minOccurs="0">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="Group" type="msnab:GroupType" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="contacts">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="Contact" type="msnab:ContactType" minOccurs="0" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="DynamicItems" minOccurs="0">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="DynamicItem" type="msnab:BaseDynamicItemType" minOccurs="0" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="CircleResult">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="CircleTicket" type="xsd:string"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="ab">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="abId" type="msnab:Guid"/>
<xsd:element name="abInfo" type="msnab:abInfoType"/>
<xsd:element name="lastChange" type="xsd:dateTime"/>
<xsd:element name="DynamicItemLastChanged" type="xsd:dateTime"/>
<xsd:element name="RecentActivityItemLastChanged" type="xsd:dateTime"/>
<xsd:element name="createDate" type="xsd:dateTime"/>
<xsd:element name="propertiesChanged" type="xsd:string"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
<xsd:element name="ABFindAllResponse">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="ABFindAllResult" type="msnab:ABFindAllResultType"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="ABContactAdd" type="msnab:ABContactAddRequestType"/>
<xsd:complexType name="ABContactAddRequestType">
<xsd:sequence>
<xsd:element name="abId" type="msnab:Guid" fixed="00000000-0000-0000-0000-000000000000"/>
<xsd:element name="contacts">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="Contact" type="msnab:ContactType" minOccurs="0" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="options" minOccurs="0">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="EnableAllowListManagement" type="xsd:boolean"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="ABContactAddResultType">
<xsd:sequence>
<xsd:element name="guid" type="msnab:Guid"/>
</xsd:sequence>
</xsd:complexType>
<xsd:element name="ABContactAddResponse">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="ABContactAddResult" type="msnab:ABContactAddResultType" minOccurs="0"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="ABContactDelete" type="msnab:ABContactDeleteRequestType"/>
<xsd:complexType name="ABContactDeleteRequestType">
<xsd:sequence>
<xsd:element name="abId" type="msnab:Guid" fixed="00000000-0000-0000-0000-000000000000"/>
<xsd:element name="contacts">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="Contact" type="msnab:ContactIdType" minOccurs="0" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
<xsd:element name="ABContactDeleteResponse"/>
<xsd:element name="ABGroupContactAdd" type="msnab:ABGroupContactAddRequestType"/>
<xsd:complexType name="ABGroupContactAddRequestType">
<xsd:sequence>
<xsd:element name="abId" type="msnab:Guid" fixed="00000000-0000-0000-0000-000000000000"/>
<xsd:element name="groupFilter" type="msnab:groupFilterType"/>
<xsd:element name="contacts">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="Contact" type="msnab:ContactType" minOccurs="0" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="groupContactAddOptions" minOccurs="0">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="fGenerateMissingQuickName" type="xsd:boolean" minOccurs="0"/>
<xsd:element name="EnableAllowListManagement" type="xsd:boolean" minOccurs="0"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="ABGroupContactAddResultType">
<xsd:sequence>
<xsd:element name="guid" type="msnab:Guid"/>
</xsd:sequence>
</xsd:complexType>
<xsd:element name="ABGroupContactAddResponse">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="ABGroupContactAddResult" type="msnab:ABGroupContactAddResultType" minOccurs="0"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="ABGroupAdd" type="msnab:ABGroupAddRequestType"/>
<xsd:complexType name="ABGroupAddRequestType">
<xsd:sequence>
<xsd:element name="abId" type="msnab:Guid" fixed="00000000-0000-0000-0000-000000000000"/>
<xsd:element name="groupAddOptions">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="fRenameOnMsgrConflict" type="xsd:boolean" minOccurs="0"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="groupInfo">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="GroupInfo" type="msnab:groupInfoType"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="ABGroupAddResultType">
<xsd:sequence>
<xsd:element name="guid" type="msnab:Guid"/>
</xsd:sequence>
</xsd:complexType>
<xsd:element name="ABGroupAddResponse">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="ABGroupAddResult" type="msnab:ABGroupAddResultType" minOccurs="0"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="ABGroupUpdate" type="msnab:ABGroupUpdateRequestType"/>
<xsd:complexType name="ABGroupUpdateRequestType">
<xsd:sequence>
<xsd:element name="abId" type="msnab:Guid" fixed="00000000-0000-0000-0000-000000000000"/>
<xsd:element name="groups">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="Group" type="msnab:GroupType" minOccurs="0" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
<xsd:element name="ABGroupUpdateResponse">
<xsd:complexType/>
</xsd:element>
<xsd:element name="ABGroupDelete" type="msnab:ABGroupDeleteRequestType"/>
<xsd:complexType name="ABGroupDeleteRequestType">
<xsd:sequence>
<xsd:element name="abId" type="msnab:Guid" fixed="00000000-0000-0000-0000-000000000000"/>
<xsd:element name="groupFilter" type="msnab:groupFilterType"/>
</xsd:sequence>
</xsd:complexType>
<xsd:element name="ABGroupDeleteResponse">
<xsd:complexType/>
</xsd:element>
<xsd:element name="ABContactUpdate" type="msnab:ABContactUpdateRequestType"/>
<xsd:complexType name="ABContactUpdateRequestType">
<xsd:sequence>
<xsd:element name="abId" type="msnab:Guid" fixed="00000000-0000-0000-0000-000000000000"/>
<xsd:element name="contacts">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="Contact" type="msnab:ContactType" minOccurs="0" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
<xsd:element name="ABContactUpdateResponse">
<xsd:complexType/>
</xsd:element>
<xsd:element name="ABGroupContactDelete" type="msnab:ABGroupContactDeleteRequestType"/>
<xsd:complexType name="ABGroupContactDeleteRequestType">
<xsd:sequence>
<xsd:element name="abId" type="msnab:Guid" fixed="00000000-0000-0000-0000-000000000000"/>
<xsd:element name="contacts">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="Contact" type="msnab:ContactType" minOccurs="0" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="groupFilter" type="msnab:groupFilterType"/>
</xsd:sequence>
</xsd:complexType>
<xsd:element name="ABGroupContactDeleteResponse">
<xsd:complexType/>
</xsd:element>
<xsd:element name="AddMember" type="msnab:AddMemberRequestType"/>
<xsd:complexType name="AddMemberRequestType">
<xsd:sequence>
<xsd:element name="serviceHandle" type="msnab:HandleType"/>
<xsd:element name="memberships">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="Membership" type="msnab:Membership" minOccurs="0" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
<xsd:element name="AddMemberResponse">
<xsd:complexType/>
</xsd:element>
<xsd:element name="DeleteMember" type="msnab:DeleteMemberRequestType"/>
<xsd:complexType name="DeleteMemberRequestType">
<xsd:sequence>
<xsd:element name="serviceHandle" type="msnab:HandleType"/>
<xsd:element name="memberships">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="Membership" type="msnab:Membership" minOccurs="0" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="nsHandle" type="msnab:ContentHandleType" minOccurs="0"/>
</xsd:sequence>
</xsd:complexType>
<xsd:element name="DeleteMemberResponse">
<xsd:complexType/>
</xsd:element>
<xsd:complexType name="ABAddResponseType">
<xsd:sequence>
<xsd:element name="ABAddResult" type="xsd:string"/>
</xsd:sequence>
</xsd:complexType>
<xsd:element name="ABAddResponse" type="msnab:ABAddResponseType"/>
<xsd:element name="ABAdd" type="msnab:ABAddRequestType"/>
<xsd:complexType name="ABAddRequestType">
<xsd:sequence>
<xsd:element name="abInfo" type="msnab:abInfoType"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="UpdateDynamicItemRequestType">
<xsd:sequence>
<xsd:element name="abId" type="xsd:string"/>
<xsd:element name="dynamicItems">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="DynamicItem" type="msnab:BaseDynamicItemType" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
<xsd:element name="UpdateDynamicItem" type="msnab:UpdateDynamicItemRequestType"/>
<xsd:element name="UpdateDynamicItemResponse"/>
<xsd:element name="ABFindContactsPaged" type="msnab:ABFindContactsPagedRequestType"/>
<xsd:complexType name="ABFindContactsPagedRequestType">
<xsd:sequence>
<xsd:element name="filterOptions" type="msnab:filterOptionsType"/>
<xsd:element name="abView" type="xsd:string"/>
<xsd:element name="extendedContent" type="xsd:string"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="ABFindContactsPagedResultType">
<xsd:sequence>
<xsd:element name="Groups" minOccurs="0">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="Group" type="msnab:GroupType" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="Contacts">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="Contact" type="msnab:ContactType" minOccurs="0" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="CircleResult" type="msnab:CircleResultType"/>
<xsd:element name="Ab">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="abId" type="msnab:Guid"/>
<xsd:element name="abInfo" type="msnab:abInfoType"/>
<xsd:element name="lastChange" type="xsd:dateTime"/>
<xsd:element name="DynamicItemLastChanged" type="xsd:dateTime"/>
<xsd:element name="RecentActivityItemLastChanged" type="xsd:dateTime"/>
<xsd:element name="createDate" type="xsd:dateTime"/>
<xsd:element name="propertiesChanged" type="xsd:string"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
<xsd:element name="ABFindContactsPagedResponse">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="ABFindContactsPagedResult" type="msnab:ABFindContactsPagedResultType"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="WNApplicationHeader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="ApplicationId" type="msnab:Guid"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="WNAuthHeader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="TicketToken" type="xsd:string"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="WNServiceHeader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="Version" type="xsd:token"/>
<xsd:element name="CacheKey" type="xsd:token" minOccurs="0"/>
<xsd:element name="CacheKeyChanged" type="xsd:boolean" minOccurs="0"/>
<xsd:element name="PreferredHostName" type="xsd:string" minOccurs="0"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="GetContactsRecentActivity" type="msnab:GetContactsRecentActivityRequestType"/>
<xsd:complexType name="GetContactsRecentActivityRequestType">
<xsd:sequence>
<xsd:element name="entityHandle" type="msnab:entityHandle"/>
<xsd:element name="locales">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="string" type="xsd:string" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="count" type="xsd:int"/>
</xsd:sequence>
</xsd:complexType>
<xsd:element name="GetContactsRecentActivityResponse">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="GetContactsRecentActivityResult" type="msnab:GetContactsRecentActivityResultType"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:complexType name="GetContactsRecentActivityResultType">
<xsd:sequence>
<xsd:element name="Activities">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="ActivityDetails" type="msnab:ActivityDetailsType" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="Templates">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="RecentActivityTemplateContainer" type="msnab:RecentActivityTemplateContainerType" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="FeedUrl" type="xsd:anyURI"/>
</xsd:sequence>
</xsd:complexType>
<xsd:element name="ManageWLConnection" type="msnab:ManageWLConnectionRequestType"/>
<xsd:complexType name="ManageWLConnectionRequestType">
<xsd:sequence>
<xsd:element name="abHandle" type="msnab:abHandleType"/>
<xsd:element name="contactId" type="xsd:string"/>
<xsd:element name="connection" type="xsd:boolean"/>
<xsd:element name="presence" type="xsd:boolean"/>
<xsd:element name="action" type="xsd:integer"/>
<xsd:element name="relationshipType" type="xsd:int"/>
<xsd:element name="relationshipRole" type="xsd:int"/>
</xsd:sequence>
</xsd:complexType>
<xsd:element name="ManageWLConnectionResponse">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="ManageWLConnectionResult" type="msnab:ContactType"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="CreateContact" type="msnab:CreateContactType"/>
<xsd:complexType name="CreateContactType">
<xsd:sequence>
<xsd:element name="abHandle" type="msnab:abHandleType"/>
<xsd:element name="contactHandle" type="msnab:contactHandleType"/>
</xsd:sequence>
</xsd:complexType>
<xsd:element name="CreateContactResponse">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="CreateContactResult" type="msnab:ContactType"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="CreateCircle" type="msnab:CreateCircleRequestType"/>
<xsd:complexType name="CreateCircleRequestType">
<xsd:sequence>
<xsd:element name="properties" type="msnab:ContentInfoType"/>
<xsd:element name="callerInfo" type="msnab:callerInfoType"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="CreateCircleResponseType">
<xsd:sequence>
<xsd:element name="Id" type="msnab:Guid"/>
</xsd:sequence>
</xsd:complexType>
<xsd:element name="CreateCircleResponse">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="CreateCircleResult" type="msnab:CreateCircleResponseType"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:schema>

View File

@ -1,532 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- edited with XMLSpy v2008 sp1 (http://www.altova.com) by wp (freezingsoft) -->
<definitions xmlns:msnab="http://www.msn.com/webservices/AddressBook" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:ns="http://www.w3.org/2001/XMLSchema" xmlns:ns1="http://schemas.xmlsoap.org/soap/encoding/" xmlns="http://schemas.xmlsoap.org/wsdl/" targetNamespace="http://www.msn.com/webservices/AddressBook">
<types>
<ns:schema xmlns="http://www.w3.org/2001/XMLSchema">
<ns:import schemaLocation="msnab_servicetypes.xsd" namespace="http://www.msn.com/webservices/AddressBook"/>
</ns:schema>
</types>
<message name="ABHeader">
<part name="ApplicationHeader" element="msnab:ABApplicationHeader"/>
<part name="AuthHeader" element="msnab:ABAuthHeader"/>
</message>
<message name="FindMembershipMessage">
<part name="FindMembershipRequest" element="msnab:FindMembership"/>
</message>
<message name="ABFindAllMessage">
<part name="ABFindAllRequest" element="msnab:ABFindAll"/>
</message>
<message name="ABContactAddMessage">
<part name="ABContactAddRequest" element="msnab:ABContactAdd"/>
</message>
<message name="ABContactDeleteMessage">
<part name="ABContactDeleteRequest" element="msnab:ABContactDelete"/>
</message>
<message name="ABGroupContactAddMessage">
<part name="ABGroupContactAddRequest" element="msnab:ABGroupContactAdd"/>
</message>
<message name="ABGroupAddMessage">
<part name="ABGroupAddRequest" element="msnab:ABGroupAdd"/>
</message>
<message name="ABGroupUpdateMessage">
<part name="ABGroupUpdateRequest" element="msnab:ABGroupUpdate"/>
</message>
<message name="ABGroupDeleteMessage">
<part name="ABGroupDeleteRequest" element="msnab:ABGroupDelete"/>
</message>
<message name="ABGroupContactDeleteMessage">
<part name="ABGroupContactDeleteRequest" element="msnab:ABGroupContactDelete"/>
</message>
<message name="ABContactUpdateMessage">
<part name="ABContactUpdateRequest" element="msnab:ABContactUpdate"/>
</message>
<message name="AddMemberMessage">
<part name="AddMemberRequest" element="msnab:AddMember"/>
</message>
<message name="DeleteMemberMessage">
<part name="DeleteMemberRequest" element="msnab:DeleteMember"/>
</message>
<message name="ServiceHeader">
<part name="ServiceHeader" element="msnab:ServiceHeader"/>
</message>
<message name="FindMembershipResponseMessage">
<part name="FindMembershipResponse" element="msnab:FindMembershipResponse"/>
</message>
<message name="ABFindAllResponseMessage">
<part name="ABFindAllResponse" element="msnab:ABFindAllResponse"/>
</message>
<message name="ABContactAddResponseMessage">
<part name="ABContactAddResponse" element="msnab:ABContactAddResponse"/>
</message>
<message name="ABContactDeleteResponseMessage">
<part name="ABContactDeleteResponse" element="msnab:ABContactDeleteResponse"/>
</message>
<message name="ABGroupContactAddResponseMessage">
<part name="ABGroupContactAddResponse" element="msnab:ABGroupContactAddResponse"/>
</message>
<message name="ABGroupAddResponseMessage">
<part name="ABGroupAddResponse" element="msnab:ABGroupAddResponse"/>
</message>
<message name="ABGroupUpdateResponseMessage">
<part name="ABGroupUpdateResponse" element="msnab:ABGroupUpdateResponse"/>
</message>
<message name="ABGroupDeleteResponseMessage">
<part name="ABGroupDeleteResponse" element="msnab:ABGroupDeleteResponse"/>
</message>
<message name="ABGroupContactDeleteResponseMessage">
<part name="ABGroupContactDeleteResponse" element="msnab:ABGroupContactDeleteResponse"/>
</message>
<message name="ABContactUpdateResponseMessage">
<part name="ABContactUpdateResponse" element="msnab:ABContactUpdateResponse"/>
</message>
<message name="AddMemberResponseMessage">
<part name="AddMemberResponse" element="msnab:AddMemberResponse"/>
</message>
<message name="DeleteMemberResponseMessage">
<part name="DeleteMemberResponse" element="msnab:DeleteMemberResponse"/>
</message>
<message name="InvalidPassportUserMessage">
<part name="fault" element="msnab:InvalidPassportUser"/>
</message>
<message name="ABAddMessage">
<part name="ABAddRequest" element="msnab:ABAdd"/>
</message>
<message name="ABAddResponseMessage">
<part name="ABAddResponse" element="msnab:ABAddResponse"/>
</message>
<message name="UpdateDynamicItemMessage">
<part name="UpdateDynamicItem" element="msnab:UpdateDynamicItem"/>
</message>
<message name="UpdateDynamicItemResponseMessage">
<part name="UpdateDynamicItemResponse" element="msnab:UpdateDynamicItemResponse"/>
</message>
<message name="ABFindContactsPagedMessage">
<part name="ABFindContactsPagedRequest" element="msnab:ABFindContactsPaged"/>
</message>
<message name="ABFindContactsPagedResponseMessage">
<part name="ABFindContactsPagedResponse" element="msnab:ABFindContactsPagedResponse"/>
</message>
<message name="GetContactsRecentActivityMessage">
<part name="GetContactsRecentActivityRequest" element="msnab:GetContactsRecentActivity"/>
</message>
<message name="GetContactsRecentActivityResponseMessage">
<part name="GetContactsRecentActivityResponse" element="msnab:GetContactsRecentActivityResponse"/>
</message>
<message name="WNHeader">
<part name="WNApplicationHeader" element="msnab:WNApplicationHeader"/>
<part name="WNAuthHeader" element="msnab:WNAuthHeader"/>
<part name="WNServiceHeader" element="msnab:WNServiceHeader"/>
</message>
<message name="CreateCircleMessage">
<part name="CreateCircleRequest" element="msnab:CreateCircle"/>
</message>
<message name="CreateCircleResponseMessage">
<part name="CreateCircleResponse" element="msnab:CreateCircleResponse"/>
</message>
<message name="CreateContactMessage">
<part name="CreateContactRequest" element="msnab:CreateContact"/>
</message>
<message name="CreateContactResponseMessage">
<part name="CreateContactResponse" element="msnab:CreateContactResponse"/>
</message>
<message name="ManageWLConnectionMessage">
<part name="ManageWLConnection" element="msnab:ManageWLConnection"/>
</message>
<message name="ManageWLConnectionResponseMessage">
<part name="ManageWLConnectionResponse" element="msnab:ManageWLConnectionResponse"/>
</message>
<portType name="SharingServicePortType">
<operation name="FindMembership">
<input message="msnab:FindMembershipMessage"/>
<output message="msnab:FindMembershipResponseMessage"/>
</operation>
<operation name="AddMember">
<input message="msnab:AddMemberMessage"/>
<output message="msnab:AddMemberResponseMessage"/>
</operation>
<operation name="DeleteMember">
<input message="msnab:DeleteMemberMessage"/>
<output message="msnab:DeleteMemberResponseMessage"/>
</operation>
<operation name="CreateCircle">
<input message="msnab:CreateCircleMessage"/>
<output message="msnab:CreateCircleResponseMessage"/>
</operation>
</portType>
<portType name="ABServicePortType">
<operation name="ABFindAll">
<input message="msnab:ABFindAllMessage"/>
<output message="msnab:ABFindAllResponseMessage"/>
</operation>
<operation name="ABContactAdd">
<input message="msnab:ABContactAddMessage"/>
<output message="msnab:ABContactAddResponseMessage"/>
<fault name="InvalidPassportUserException" message="msnab:InvalidPassportUserMessage"/>
</operation>
<operation name="ABContactDelete">
<input message="msnab:ABContactDeleteMessage"/>
<output message="msnab:ABContactDeleteResponseMessage"/>
<fault name="InvalidPassportUserException" message="msnab:InvalidPassportUserMessage"/>
</operation>
<operation name="ABGroupContactAdd">
<input message="msnab:ABGroupContactAddMessage"/>
<output message="msnab:ABGroupContactAddResponseMessage"/>
<fault name="InvalidPassportUserException" message="msnab:InvalidPassportUserMessage"/>
</operation>
<operation name="ABGroupAdd">
<input message="msnab:ABGroupAddMessage"/>
<output message="msnab:ABGroupAddResponseMessage"/>
</operation>
<operation name="ABGroupUpdate">
<input message="msnab:ABGroupUpdateMessage"/>
<output message="msnab:ABGroupUpdateResponseMessage"/>
</operation>
<operation name="ABGroupDelete">
<input message="msnab:ABGroupDeleteMessage"/>
<output message="msnab:ABGroupDeleteResponseMessage"/>
</operation>
<operation name="ABGroupContactDelete">
<input message="msnab:ABGroupContactDeleteMessage"/>
<output message="msnab:ABGroupContactDeleteResponseMessage"/>
</operation>
<operation name="ABContactUpdate">
<input message="msnab:ABContactUpdateMessage"/>
<output message="msnab:ABContactUpdateResponseMessage"/>
</operation>
<operation name="ABAdd">
<input message="msnab:ABAddMessage"/>
<output message="msnab:ABAddResponseMessage"/>
</operation>
<operation name="UpdateDynamicItem">
<input message="msnab:UpdateDynamicItemMessage"/>
<output message="msnab:UpdateDynamicItemResponseMessage"/>
</operation>
<operation name="ABFindContactsPaged">
<input message="msnab:ABFindContactsPagedMessage"/>
<output message="msnab:ABFindContactsPagedResponseMessage"/>
</operation>
<operation name="CreateContact">
<input message="msnab:CreateContactMessage"/>
<output message="msnab:CreateContactResponseMessage"/>
</operation>
<operation name="ManageWLConnection">
<input message="msnab:ManageWLConnectionMessage"/>
<output message="msnab:ManageWLConnectionResponseMessage"/>
</operation>
</portType>
<portType name="WhatsUpServicePortType">
<operation name="GetContactsRecentActivity">
<input message="msnab:GetContactsRecentActivityMessage"/>
<output message="msnab:GetContactsRecentActivityResponseMessage"/>
</operation>
</portType>
<binding name="SharingServiceBinding" type="msnab:SharingServicePortType">
<soap:binding transport="http://schemas.xmlsoap.org/soap/http"/>
<operation name="FindMembership">
<soap:operation soapAction="http://www.msn.com/webservices/AddressBook/FindMembership"/>
<input>
<soap:header message="msnab:ABHeader" part="ApplicationHeader" use="literal"/>
<soap:header message="msnab:ABHeader" part="AuthHeader" use="literal"/>
<soap:body use="literal"/>
</input>
<output>
<soap:header message="msnab:ServiceHeader" part="ServiceHeader" use="literal"/>
<soap:body use="literal"/>
</output>
</operation>
<operation name="AddMember">
<soap:operation soapAction="http://www.msn.com/webservices/AddressBook/AddMember"/>
<input>
<soap:header message="msnab:ABHeader" part="ApplicationHeader" use="literal"/>
<soap:header message="msnab:ABHeader" part="AuthHeader" use="literal"/>
<soap:body use="literal"/>
</input>
<output>
<soap:header message="msnab:ServiceHeader" part="ServiceHeader" use="literal"/>
<soap:body use="literal"/>
</output>
</operation>
<operation name="DeleteMember">
<soap:operation soapAction="http://www.msn.com/webservices/AddressBook/DeleteMember"/>
<input>
<soap:header message="msnab:ABHeader" part="ApplicationHeader" use="literal"/>
<soap:header message="msnab:ABHeader" part="AuthHeader" use="literal"/>
<soap:body use="literal"/>
</input>
<output>
<soap:header message="msnab:ServiceHeader" part="ServiceHeader" use="literal"/>
<soap:body use="literal"/>
</output>
</operation>
<operation name="CreateCircle">
<soap:operation soapAction="http://www.msn.com/webservices/AddressBook/CreateCircle"/>
<input>
<soap:body use="literal"/>
<soap:header message="msnab:ABHeader" part="ApplicationHeader" use="literal"/>
<soap:header message="msnab:ABHeader" part="AuthHeader" use="literal"/>
</input>
<output>
<soap:body use="literal"/>
<soap:header message="msnab:ServiceHeader" part="ServiceHeader" use="literal"/>
</output>
</operation>
</binding>
<binding name="ABServiceBinding" type="msnab:ABServicePortType">
<soap:binding transport="http://schemas.xmlsoap.org/soap/http"/>
<operation name="ABFindAll">
<soap:operation soapAction="http://www.msn.com/webservices/AddressBook/ABFindAll"/>
<input>
<soap:header message="msnab:ABHeader" part="ApplicationHeader" use="literal"/>
<soap:header message="msnab:ABHeader" part="AuthHeader" use="literal"/>
<soap:body use="literal"/>
</input>
<output>
<soap:header message="msnab:ServiceHeader" part="ServiceHeader" use="literal"/>
<soap:body use="literal"/>
</output>
</operation>
<operation name="ABContactAdd">
<soap:operation soapAction="http://www.msn.com/webservices/AddressBook/ABContactAdd"/>
<input>
<soap:header message="msnab:ABHeader" part="ApplicationHeader" use="literal"/>
<soap:header message="msnab:ABHeader" part="AuthHeader" use="literal"/>
<soap:body use="literal"/>
</input>
<output>
<soap:header message="msnab:ServiceHeader" part="ServiceHeader" use="literal"/>
<soap:body use="literal"/>
</output>
<fault name="InvalidPassportUserException">
<soap:fault name="InvalidPassportUserException" use="literal"/>
</fault>
</operation>
<operation name="ABContactDelete">
<soap:operation soapAction="http://www.msn.com/webservices/AddressBook/ABContactDelete"/>
<input>
<soap:header message="msnab:ABHeader" part="ApplicationHeader" use="literal"/>
<soap:header message="msnab:ABHeader" part="AuthHeader" use="literal"/>
<soap:body use="literal"/>
</input>
<output>
<soap:header message="msnab:ServiceHeader" part="ServiceHeader" use="literal"/>
<soap:body use="literal"/>
</output>
<fault name="InvalidPassportUserException">
<soap:fault name="InvalidPassportUserException" use="literal"/>
</fault>
</operation>
<operation name="ABGroupContactAdd">
<soap:operation soapAction="http://www.msn.com/webservices/AddressBook/ABGroupContactAdd"/>
<input>
<soap:header message="msnab:ABHeader" part="ApplicationHeader" use="literal"/>
<soap:header message="msnab:ABHeader" part="AuthHeader" use="literal"/>
<soap:body use="literal"/>
</input>
<output>
<soap:header message="msnab:ServiceHeader" part="ServiceHeader" use="literal"/>
<soap:body use="literal"/>
</output>
<fault name="InvalidPassportUserException">
<soap:fault name="InvalidPassportUserException" use="literal"/>
</fault>
</operation>
<operation name="ABGroupAdd">
<soap:operation soapAction="http://www.msn.com/webservices/AddressBook/ABGroupAdd"/>
<input>
<soap:header message="msnab:ABHeader" part="ApplicationHeader" use="literal"/>
<soap:header message="msnab:ABHeader" part="AuthHeader" use="literal"/>
<soap:body use="literal"/>
</input>
<output>
<soap:header message="msnab:ServiceHeader" part="ServiceHeader" use="literal"/>
<soap:body use="literal"/>
</output>
</operation>
<operation name="ABGroupUpdate">
<soap:operation soapAction="http://www.msn.com/webservices/AddressBook/ABGroupUpdate"/>
<input>
<soap:header message="msnab:ABHeader" part="ApplicationHeader" use="literal"/>
<soap:header message="msnab:ABHeader" part="AuthHeader" use="literal"/>
<soap:body use="literal"/>
</input>
<output>
<soap:header message="msnab:ServiceHeader" part="ServiceHeader" use="literal"/>
<soap:body use="literal"/>
</output>
</operation>
<operation name="ABGroupDelete">
<soap:operation soapAction="http://www.msn.com/webservices/AddressBook/ABGroupDelete"/>
<input>
<soap:header message="msnab:ABHeader" part="ApplicationHeader" use="literal"/>
<soap:header message="msnab:ABHeader" part="AuthHeader" use="literal"/>
<soap:body use="literal"/>
</input>
<output>
<soap:header message="msnab:ServiceHeader" part="ServiceHeader" use="literal"/>
<soap:body use="literal"/>
</output>
</operation>
<operation name="ABGroupContactDelete">
<soap:operation soapAction="http://www.msn.com/webservices/AddressBook/ABGroupContactDelete"/>
<input>
<soap:header message="msnab:ABHeader" part="ApplicationHeader" use="literal"/>
<soap:header message="msnab:ABHeader" part="AuthHeader" use="literal"/>
<soap:body use="literal"/>
</input>
<output>
<soap:header message="msnab:ServiceHeader" part="ServiceHeader" use="literal"/>
<soap:body use="literal"/>
</output>
</operation>
<operation name="ABContactUpdate">
<soap:operation soapAction="http://www.msn.com/webservices/AddressBook/ABContactUpdate"/>
<input>
<soap:header message="msnab:ABHeader" part="ApplicationHeader" use="literal"/>
<soap:header message="msnab:ABHeader" part="AuthHeader" use="literal"/>
<soap:body use="literal"/>
</input>
<output>
<soap:header message="msnab:ServiceHeader" part="ServiceHeader" use="literal"/>
<soap:body use="literal"/>
</output>
</operation>
<operation name="ABAdd">
<soap:operation soapAction="http://www.msn.com/webservices/AddressBook/ABAdd"/>
<input>
<soap:body use="literal"/>
<soap:header message="msnab:ABHeader" part="ApplicationHeader" use="literal"/>
<soap:header message="msnab:ABHeader" part="AuthHeader" use="literal"/>
</input>
<output>
<soap:body use="literal"/>
<soap:header message="msnab:ServiceHeader" part="ServiceHeader" use="literal"/>
</output>
</operation>
<operation name="UpdateDynamicItem">
<soap:operation soapAction="http://www.msn.com/webservices/AddressBook/UpdateDynamicItem"/>
<input>
<soap:body use="literal"/>
<soap:header message="msnab:ABHeader" part="ApplicationHeader" use="literal"/>
<soap:header message="msnab:ABHeader" part="AuthHeader" use="literal"/>
</input>
<output>
<soap:body use="literal"/>
<soap:header message="msnab:ServiceHeader" part="ServiceHeader" use="literal"/>
</output>
</operation>
<operation name="ABFindContactsPaged">
<soap:operation soapAction="http://www.msn.com/webservices/AddressBook/ABFindContactsPaged"/>
<input>
<soap:body use="literal"/>
<soap:header message="msnab:ABHeader" part="ApplicationHeader" use="literal"/>
<soap:header message="msnab:ABHeader" part="AuthHeader" use="literal"/>
</input>
<output>
<soap:body use="literal"/>
<soap:header message="msnab:ServiceHeader" part="ServiceHeader" use="literal"/>
</output>
</operation>
<operation name="CreateContact">
<soap:operation soapAction="http://www.msn.com/webservices/AddressBook/CreateContact"/>
<input>
<soap:body use="literal"/>
<soap:header message="msnab:ABHeader" part="ApplicationHeader" use="literal"/>
<soap:header message="msnab:ABHeader" part="AuthHeader" use="literal"/>
</input>
<output>
<soap:body use="literal"/>
<soap:header message="msnab:ServiceHeader" part="ServiceHeader" use="literal"/>
</output>
</operation>
<operation name="ManageWLConnection">
<soap:operation soapAction="http://www.msn.com/webservices/AddressBook/ManageWLConnection"/>
<input>
<soap:body use="literal"/>
<soap:header message="msnab:ABHeader" part="ApplicationHeader" use="literal"/>
<soap:header message="msnab:ABHeader" part="AuthHeader" use="literal"/>
</input>
<output>
<soap:body use="literal"/>
<soap:header message="msnab:ServiceHeader" part="ServiceHeader" use="literal"/>
</output>
</operation>
</binding>
<binding name="WhatsUpServiceBinding" type="msnab:WhatsUpServicePortType">
<soap:binding transport="http://schemas.xmlsoap.org/soap/http"/>
<operation name="GetContactsRecentActivity">
<soap:operation soapAction="http://www.msn.com/webservices/AddressBook/GetContactsRecentActivity"/>
<input>
<soap:body use="literal"/>
<soap:header message="msnab:WNHeader" part="WNApplicationHeader" use="literal"/>
<soap:header message="msnab:WNHeader" part="WNAuthHeader" use="literal"/>
</input>
<output>
<soap:body use="literal"/>
<soap:header message="msnab:WNHeader" part="WNServiceHeader" use="literal"/>
</output>
</operation>
</binding>
<service name="SharingService">
<port name="FindMembershipPort" binding="msnab:SharingServiceBinding">
<soap:address location="https://contacts.msn.com/abservice/SharingService.asmx"/>
</port>
<port name="AddMemberPort" binding="msnab:SharingServiceBinding">
<soap:address location="https://contacts.msn.com/abservice/SharingService.asmx"/>
</port>
<port name="DeleteMemberPort" binding="msnab:SharingServiceBinding">
<soap:address location="https://contacts.msn.com/abservice/SharingService.asmx"/>
</port>
<port name="CreateCirclePort" binding="msnab:SharingServiceBinding">
<soap:address location="https://contacts.msn.com/abservice/SharingService.asmx"/>
</port>
</service>
<service name="ABService">
<port name="ABFindAllPort" binding="msnab:ABServiceBinding">
<soap:address location="https://contacts.msn.com/abservice/abservice.asmx"/>
</port>
<port name="ABContactAddPort" binding="msnab:ABServiceBinding">
<soap:address location="https://contacts.msn.com/abservice/abservice.asmx"/>
</port>
<port name="ABContactDeletePort" binding="msnab:ABServiceBinding">
<soap:address location="https://contacts.msn.com/abservice/abservice.asmx"/>
</port>
<port name="ABGroupContactAddPort" binding="msnab:ABServiceBinding">
<soap:address location="https://contacts.msn.com/abservice/abservice.asmx"/>
</port>
<port name="ABGroupAddPort" binding="msnab:ABServiceBinding">
<soap:address location="https://contacts.msn.com/abservice/abservice.asmx"/>
</port>
<port name="ABGroupUpdatePort" binding="msnab:ABServiceBinding">
<soap:address location="https://contacts.msn.com/abservice/abservice.asmx"/>
</port>
<port name="ABGroupDeletePort" binding="msnab:ABServiceBinding">
<soap:address location="https://contacts.msn.com/abservice/abservice.asmx"/>
</port>
<port name="ABGroupContactDeletePort" binding="msnab:ABServiceBinding">
<soap:address location="https://contacts.msn.com/abservice/abservice.asmx"/>
</port>
<port name="ABContactUpdatePort" binding="msnab:ABServiceBinding">
<soap:address location="https://contacts.msn.com/abservice/abservice.asmx"/>
</port>
<port name="ABAddPort" binding="msnab:ABServiceBinding">
<soap:address location="https://contacts.msn.com/abservice/abservice.asmx"/>
</port>
<port name="UpdateDynamicItemPort" binding="msnab:ABServiceBinding">
<soap:address location="https://contacts.msn.com/abservice/abservice.asmx"/>
</port>
<port name="ABFindContactsPagedPort" binding="msnab:ABServiceBinding">
<soap:address location="https://contacts.msn.com/abservice/abservice.asmx"/>
</port>
<port name="CreateContactPort" binding="msnab:ABServiceBinding">
<soap:address location="https://contacts.msn.com/abservice/abservice.asmx"/>
</port>
<port name="ManageWLConnectionPort" binding="msnab:ABServiceBinding">
<soap:address location="https://contacts.msn.com/abservice/abservice.asmx"/>
</port>
</service>
<service name="WhatsUpService">
<port name="GetContactsRecentActivityPort" binding="msnab:WhatsUpServiceBinding">
<soap:address location="http://sup.live.com/whatsnew/whatsnewservice.asmx"/>
</port>
</service>
</definitions>

View File

@ -1,276 +0,0 @@
<?php
/*
* StatusNet - the distributed open-source microblogging tool
* Copyright (C) 2008, 2009, StatusNet, Inc.
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
if (!defined('STATUSNET') && !defined('LACONICA')) { exit(1); }
/**
* MSN background connection manager for MSN-using queue handlers,
* allowing them to send outgoing messages on the right connection.
*
* Input is handled during socket select loop, keepalive pings during idle.
* Any incoming messages will be handled.
*
* In a multi-site queuedaemon.php run, one connection will be instantiated
* for each site being handled by the current process that has MSN enabled.
*/
class MsnManager extends ImManager {
public $conn = null;
protected $lastPing = null;
protected $pingInterval;
/**
* Initialise connection to server.
*
* @return boolean true on success
*/
public function start($master) {
if (parent::start($master)) {
$this->requeue_waiting_messages();
$this->connect();
return true;
} else {
return false;
}
}
/**
* Return any open sockets that the run loop should listen
* for input on.
*
* @return array Array of socket resources
*/
public function getSockets() {
$this->connect();
if ($this->conn) {
return $this->conn->getSockets();
} else {
return array();
}
}
/**
* Idle processing for io manager's execution loop.
* Send keepalive pings to server.
*
* @return void
*/
public function idle($timeout = 0) {
if (empty($this->lastPing) || time() - $this->lastPing > $this->pingInterval) {
$this->send_ping();
}
}
/**
* Message pump is triggered on socket input, so we only need an idle()
* call often enough to trigger our outgoing pings.
*/
public function timeout() {
return $this->pingInterval;
}
/**
* Process MSN events that have come in over the wire.
*
* @param resource $socket Socket ready
* @return void
*/
public function handleInput($socket) {
common_log(LOG_DEBUG, 'Servicing the MSN queue.');
$this->stats('msn_process');
$this->conn->receive();
}
/**
* Initiate connection
*
* @return void
*/
public function connect() {
if (!$this->conn) {
$this->conn = new MSN(
array(
'user' => $this->plugin->user,
'password' => $this->plugin->password,
'alias' => $this->plugin->nickname,
// TRANS: MSN bot status message.
'psm' => _m('Send me a message to post a notice'),
'debug' => false
)
);
$this->conn->registerHandler('IMin', array($this, 'handle_msn_message'));
$this->conn->registerHandler('SessionReady', array($this, 'handle_session_ready'));
$this->conn->registerHandler('Pong', array($this, 'update_ping_time'));
$this->conn->registerHandler('ConnectFailed', array($this, 'handle_connect_failed'));
$this->conn->registerHandler('Reconnect', array($this, 'handle_reconnect'));
$this->conn->signon();
$this->lastPing = time();
}
return $this->conn;
}
/**
* Called by the idle process to send a ping
* when necessary
*
* @return void
*/
protected function send_ping() {
$this->connect();
if (!$this->conn) {
return false;
}
$this->conn->sendPing();
$this->lastPing = time();
$this->pingInterval = 50;
return true;
}
/**
* Update the time till the next ping
*
* @param $data Time till next ping
* @return void
*/
public function update_ping_time($data) {
$this->pingInterval = $data;
}
/**
* Called via a callback when a message is received
*
* Passes it back to the queuing system
*
* @param array $data Data
* @return boolean
*/
public function handle_msn_message($data) {
$this->plugin->enqueueIncomingRaw($data);
return true;
}
/**
* Called via a callback when a session becomes ready
*
* @param array $data Data
*/
public function handle_session_ready($data) {
$sessionFailed = false;
$wm = Msn_waiting_message::top($data['to']);
while ($wm != NULL) {
if ($sessionFailed) {
$this->plugin->sendMessage($wm->screenname, $wm->message);
$sessionFailed = true;
} elseif (!$this->conn->sendMessage($wm->screenname, $wm->message, $ignore)) {
$this->plugin->sendMessage($wm->screenname, $wm->message);
}
$wm->delete();
$wm = Msn_waiting_message::top($data['to']);
}
}
/**
* Requeue messages from the waiting table so we try
* to send them again
*
* @return void
*/
protected function requeue_waiting_messages() {
$wm = Msn_waiting_message::top();
while ($wm != NULL) {
$this->plugin->sendMessage($wm->screenname, $wm->message);
$wm->delete();
$wm = Msn_waiting_message::top();
}
}
/**
* Called by callback to log failure during connect
*
* @param string $message error message reported
* @return void
*/
public function handle_connect_failed($message) {
common_log(LOG_NOTICE, 'MSN connect failed, retrying: ' . $message);
}
/**
* Called by callback to log reconnection
*
* @param void $data Not used (there to keep callback happy)
* @return void
*/
public function handle_reconnect($data) {
common_log(LOG_NOTICE, 'MSN reconnecting');
// Requeue messages waiting in the DB
$this->requeue_waiting_messages();
}
/**
* Enters a message into the database for sending via a callback
* when the session is established
*
* @param string $to Intended recipient
* @param string $message Message
*/
protected function enqueue_waiting_message($to, $message) {
$wm = new Msn_waiting_message();
$wm->screenname = $to;
$wm->message = $message;
$wm->created = common_sql_now();
$result = $wm->insert();
if (!$result) {
common_log_db_error($wm, 'INSERT', __FILE__);
// TRANS: Server exception thrown when a message to be sent through MSN cannot be added to the database queue.
throw new ServerException(_m('Database error inserting queue item.'));
}
return true;
}
/**
* Send a message using the daemon
*
* @param $data Message data
* @return boolean true on success
*/
public function send_raw_message($data) {
$this->connect();
if (!$this->conn) {
return false;
}
$waitForSession = false;
if (!$this->conn->sendMessage($data['to'], $data['message'], $waitForSession)) {
if ($waitForSession) {
$this->enqueue_waiting_message($data['to'], $data['message']);
} else {
return false;
}
}
// Sending a command updates the time till next ping
$this->lastPing = time();
$this->pingInterval = 50;
return true;
}
}

View File

@ -1,53 +0,0 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-06-30 11:07+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=CHARSET\n"
"Content-Transfer-Encoding: 8bit\n"
#. TRANS: MSN bot status message.
#: msnmanager.php:112
msgid "Send me a message to post a notice"
msgstr ""
#. TRANS: Server exception thrown when a message to be sent through MSN cannot be added to the database queue.
#: msnmanager.php:244
msgid "Database error inserting queue item."
msgstr ""
#. TRANS: Display name of the MSN instant messaging service.
#: MsnPlugin.php:62
msgid "MSN"
msgstr ""
#. TRANS: Exception thrown when configuration for the MSN plugin is incomplete.
#: MsnPlugin.php:188
msgid "Must specify a user."
msgstr ""
#. TRANS: Exception thrown when configuration for the MSN plugin is incomplete.
#: MsnPlugin.php:192
msgid "Must specify a password."
msgstr ""
#. TRANS: Exception thrown when configuration for the MSN plugin is incomplete.
#: MsnPlugin.php:196
msgid "Must specify a nickname."
msgstr ""
#. TRANS: Plugin description.
#: MsnPlugin.php:216
msgid ""
"The MSN plugin allows users to send and receive notices over the MSN network."
msgstr ""

View File

@ -1,54 +0,0 @@
# Translation of StatusNet - Msn to Arabic (العربية)
# Exported from translatewiki.net
#
# Author: Imksa
# --
# This file is distributed under the same license as the StatusNet package.
#
msgid ""
msgstr ""
"Project-Id-Version: StatusNet - Msn\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-06-30 11:07+0000\n"
"PO-Revision-Date: 2012-06-30 11:09:18+0000\n"
"Language-Team: Arabic <https://translatewiki.net/wiki/Portal:ar>\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-POT-Import-Date: 2011-12-03 13:48:56+0000\n"
"X-Generator: MediaWiki 1.20alpha (233fc08); Translate 2012-06-21\n"
"X-Translation-Project: translatewiki.net <https://translatewiki.net>\n"
"X-Language-Code: ar\n"
"X-Message-Group: #out-statusnet-plugin-msn\n"
"Plural-Forms: nplurals=6; plural=(n == 0) ? 0 : ( (n == 1) ? 1 : ( (n == "
"2) ? 2 : ( (n%100 >= 3 && n%100 <= 10) ? 3 : ( (n%100 >= 11 && n%100 <= "
"99) ? 4 : 5 ) ) ) );\n"
#. TRANS: MSN bot status message.
msgid "Send me a message to post a notice"
msgstr "أرسل لي رسالة لأرسل إشعارًا"
#. TRANS: Server exception thrown when a message to be sent through MSN cannot be added to the database queue.
msgid "Database error inserting queue item."
msgstr "خطأ في قاعدة بيانات إدراج بند قائمة الانتظار."
#. TRANS: Display name of the MSN instant messaging service.
msgid "MSN"
msgstr ""
#. TRANS: Exception thrown when configuration for the MSN plugin is incomplete.
msgid "Must specify a user."
msgstr "يجب تحديد مستخدم."
#. TRANS: Exception thrown when configuration for the MSN plugin is incomplete.
msgid "Must specify a password."
msgstr "يجب تحديد كلمة مرور."
#. TRANS: Exception thrown when configuration for the MSN plugin is incomplete.
msgid "Must specify a nickname."
msgstr "يجب تحديد اسم مستعار."
#. TRANS: Plugin description.
msgid ""
"The MSN plugin allows users to send and receive notices over the MSN network."
msgstr ""
"البرنامج المساعد MSN يسمح للمستخدمين بإرسال وتلقى إشعارات عبر شبكة MSN."

View File

@ -1,51 +0,0 @@
# Translation of StatusNet - Msn to Breton (Brezhoneg)
# Exported from translatewiki.net
#
# Author: Y-M D
# --
# This file is distributed under the same license as the StatusNet package.
#
msgid ""
msgstr ""
"Project-Id-Version: StatusNet - Msn\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2011-04-27 12:36+0000\n"
"PO-Revision-Date: 2011-04-27 12:37:46+0000\n"
"Language-Team: Breton <http://translatewiki.net/wiki/Portal:br>\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-POT-Import-Date: 2011-03-26 16:22:40+0000\n"
"X-Generator: MediaWiki 1.18alpha (r87008); Translate extension (2011-04-26)\n"
"X-Translation-Project: translatewiki.net at http://translatewiki.net\n"
"X-Language-Code: br\n"
"X-Message-Group: #out-statusnet-plugin-msn\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
#. TRANS: MSN bot status message.
msgid "Send me a message to post a notice"
msgstr ""
#. TRANS: Server exception thrown when a message to be sent through MSN cannot be added to the database queue.
msgid "Database error inserting queue item."
msgstr ""
#. TRANS: Display name of the MSN instant messaging service.
msgid "MSN"
msgstr "MSN"
#. TRANS: Exception thrown when configuration for the MSN plugin is incomplete.
msgid "Must specify a user."
msgstr ""
#. TRANS: Exception thrown when configuration for the MSN plugin is incomplete.
msgid "Must specify a password."
msgstr ""
#. TRANS: Exception thrown when configuration for the MSN plugin is incomplete.
msgid "Must specify a nickname."
msgstr ""
#. TRANS: Plugin description.
msgid ""
"The MSN plugin allows users to send and receive notices over the MSN network."
msgstr ""

View File

@ -1,51 +0,0 @@
# Translation of StatusNet - Msn to Catalan (català)
# Exported from translatewiki.net
#
# Author: Toniher
# --
# This file is distributed under the same license as the StatusNet package.
#
msgid ""
msgstr ""
"Project-Id-Version: StatusNet - Msn\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-06-30 11:07+0000\n"
"PO-Revision-Date: 2012-06-30 11:09:18+0000\n"
"Language-Team: Catalan <https://translatewiki.net/wiki/Portal:ca>\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-POT-Import-Date: 2011-12-03 13:48:56+0000\n"
"X-Generator: MediaWiki 1.20alpha (233fc08); Translate 2012-06-21\n"
"X-Translation-Project: translatewiki.net <https://translatewiki.net>\n"
"X-Language-Code: ca\n"
"X-Message-Group: #out-statusnet-plugin-msn\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#. TRANS: MSN bot status message.
msgid "Send me a message to post a notice"
msgstr "Envia'm un missatge per publicar un avís"
#. TRANS: Server exception thrown when a message to be sent through MSN cannot be added to the database queue.
msgid "Database error inserting queue item."
msgstr ""
#. TRANS: Display name of the MSN instant messaging service.
msgid "MSN"
msgstr "MSN"
#. TRANS: Exception thrown when configuration for the MSN plugin is incomplete.
msgid "Must specify a user."
msgstr "Cal especificar un usuari."
#. TRANS: Exception thrown when configuration for the MSN plugin is incomplete.
msgid "Must specify a password."
msgstr "Cal especificar una contrasenya."
#. TRANS: Exception thrown when configuration for the MSN plugin is incomplete.
msgid "Must specify a nickname."
msgstr "Cal especificar un sobrenom."
#. TRANS: Plugin description.
msgid ""
"The MSN plugin allows users to send and receive notices over the MSN network."
msgstr ""

View File

@ -1,54 +0,0 @@
# Translation of StatusNet - Msn to German (Deutsch)
# Exported from translatewiki.net
#
# Author: Giftpflanze
# Author: MF-Warburg
# --
# This file is distributed under the same license as the StatusNet package.
#
msgid ""
msgstr ""
"Project-Id-Version: StatusNet - Msn\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-06-30 11:07+0000\n"
"PO-Revision-Date: 2012-06-30 11:09:18+0000\n"
"Language-Team: German <https://translatewiki.net/wiki/Portal:de>\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-POT-Import-Date: 2011-12-03 13:48:56+0000\n"
"X-Generator: MediaWiki 1.20alpha (233fc08); Translate 2012-06-21\n"
"X-Translation-Project: translatewiki.net <https://translatewiki.net>\n"
"X-Language-Code: de\n"
"X-Message-Group: #out-statusnet-plugin-msn\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#. TRANS: MSN bot status message.
msgid "Send me a message to post a notice"
msgstr "Sende mir eine Nachricht um einen Hinweis bekanntzumachen"
#. TRANS: Server exception thrown when a message to be sent through MSN cannot be added to the database queue.
msgid "Database error inserting queue item."
msgstr "Beim Einfügen des Queue-Items ist ein Datenbankfehler aufgetreten."
#. TRANS: Display name of the MSN instant messaging service.
msgid "MSN"
msgstr "MSN"
#. TRANS: Exception thrown when configuration for the MSN plugin is incomplete.
msgid "Must specify a user."
msgstr "Du musst einen Benutzer angeben."
#. TRANS: Exception thrown when configuration for the MSN plugin is incomplete.
msgid "Must specify a password."
msgstr "Du musst ein Passwort angeben."
#. TRANS: Exception thrown when configuration for the MSN plugin is incomplete.
msgid "Must specify a nickname."
msgstr "Du musst einen Nick angeben."
#. TRANS: Plugin description.
msgid ""
"The MSN plugin allows users to send and receive notices over the MSN network."
msgstr ""
"Das MSN-Plugin ermöglicht Benutzern, Nachrichten über das MSN-Netzwerk zu "
"senden und zu empfangen."

View File

@ -1,51 +0,0 @@
# Translation of StatusNet - Msn to Greek (Ελληνικά)
# Exported from translatewiki.net
#
# Author: Evropi
# --
# This file is distributed under the same license as the StatusNet package.
#
msgid ""
msgstr ""
"Project-Id-Version: StatusNet - Msn\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2011-04-27 12:36+0000\n"
"PO-Revision-Date: 2011-04-27 12:37:46+0000\n"
"Language-Team: Greek <http://translatewiki.net/wiki/Portal:el>\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-POT-Import-Date: 2011-03-26 16:22:40+0000\n"
"X-Generator: MediaWiki 1.18alpha (r87008); Translate extension (2011-04-26)\n"
"X-Translation-Project: translatewiki.net at http://translatewiki.net\n"
"X-Language-Code: el\n"
"X-Message-Group: #out-statusnet-plugin-msn\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#. TRANS: MSN bot status message.
msgid "Send me a message to post a notice"
msgstr ""
#. TRANS: Server exception thrown when a message to be sent through MSN cannot be added to the database queue.
msgid "Database error inserting queue item."
msgstr ""
#. TRANS: Display name of the MSN instant messaging service.
msgid "MSN"
msgstr "MSN"
#. TRANS: Exception thrown when configuration for the MSN plugin is incomplete.
msgid "Must specify a user."
msgstr ""
#. TRANS: Exception thrown when configuration for the MSN plugin is incomplete.
msgid "Must specify a password."
msgstr ""
#. TRANS: Exception thrown when configuration for the MSN plugin is incomplete.
msgid "Must specify a nickname."
msgstr ""
#. TRANS: Plugin description.
msgid ""
"The MSN plugin allows users to send and receive notices over the MSN network."
msgstr ""

View File

@ -1,54 +0,0 @@
# Translation of StatusNet - Msn to Spanish (español)
# Exported from translatewiki.net
#
# Author: Armando-Martin
# Author: Od1n
# --
# This file is distributed under the same license as the StatusNet package.
#
msgid ""
msgstr ""
"Project-Id-Version: StatusNet - Msn\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-06-30 11:07+0000\n"
"PO-Revision-Date: 2012-06-30 11:09:18+0000\n"
"Language-Team: Spanish <http://translatewiki.net/wiki/Portal:es>\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-POT-Import-Date: 2011-12-03 13:48:56+0000\n"
"X-Generator: MediaWiki 1.20alpha (233fc08); Translate 2012-06-21\n"
"X-Translation-Project: translatewiki.net <https://translatewiki.net>\n"
"X-Language-Code: es\n"
"X-Message-Group: #out-statusnet-plugin-msn\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#. TRANS: MSN bot status message.
msgid "Send me a message to post a notice"
msgstr "Envíeme un mensaje para publicar una nota"
#. TRANS: Server exception thrown when a message to be sent through MSN cannot be added to the database queue.
msgid "Database error inserting queue item."
msgstr "Error en la base de datos al insertar un elemento en la cola."
#. TRANS: Display name of the MSN instant messaging service.
msgid "MSN"
msgstr "MSN"
#. TRANS: Exception thrown when configuration for the MSN plugin is incomplete.
msgid "Must specify a user."
msgstr "Debe especificar un usuario."
#. TRANS: Exception thrown when configuration for the MSN plugin is incomplete.
msgid "Must specify a password."
msgstr "Debe especificar una contraseña."
#. TRANS: Exception thrown when configuration for the MSN plugin is incomplete.
msgid "Must specify a nickname."
msgstr "Debe especificar un alias."
#. TRANS: Plugin description.
msgid ""
"The MSN plugin allows users to send and receive notices over the MSN network."
msgstr ""
"El complemento (plugin) MSN permite a los usuarios enviar y recibir mensajes "
"mediante una red MSN."

View File

@ -1,53 +0,0 @@
# Translation of StatusNet - Msn to Basque (euskara)
# Exported from translatewiki.net
#
# Author: Artsuaga
# --
# This file is distributed under the same license as the StatusNet package.
#
msgid ""
msgstr ""
"Project-Id-Version: StatusNet - Msn\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-06-30 11:07+0000\n"
"PO-Revision-Date: 2012-06-30 11:09:18+0000\n"
"Language-Team: Basque <https://translatewiki.net/wiki/Portal:eu>\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-POT-Import-Date: 2011-12-03 13:48:56+0000\n"
"X-Generator: MediaWiki 1.20alpha (233fc08); Translate 2012-06-21\n"
"X-Translation-Project: translatewiki.net <https://translatewiki.net>\n"
"X-Language-Code: eu\n"
"X-Message-Group: #out-statusnet-plugin-msn\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#. TRANS: MSN bot status message.
msgid "Send me a message to post a notice"
msgstr "Bidalidazu mezu bat ohar bat argitaratzeko"
#. TRANS: Server exception thrown when a message to be sent through MSN cannot be added to the database queue.
msgid "Database error inserting queue item."
msgstr "Datubase akatsa zerrendako puntua txertatzerakoan."
#. TRANS: Display name of the MSN instant messaging service.
msgid "MSN"
msgstr "MSN"
#. TRANS: Exception thrown when configuration for the MSN plugin is incomplete.
msgid "Must specify a user."
msgstr "Erabiltzaile bat zehaztu."
#. TRANS: Exception thrown when configuration for the MSN plugin is incomplete.
msgid "Must specify a password."
msgstr "Pasahitz bat zehaztu."
#. TRANS: Exception thrown when configuration for the MSN plugin is incomplete.
msgid "Must specify a nickname."
msgstr "Goitizen bat zehaztu."
#. TRANS: Plugin description.
msgid ""
"The MSN plugin allows users to send and receive notices over the MSN network."
msgstr ""
"MSN pluginak erabiltzaileei MSN sare bidez oharrak bidali eta jasotzen uzten "
"du."

View File

@ -1,55 +0,0 @@
# Translation of StatusNet - Msn to French (français)
# Exported from translatewiki.net
#
# Author: Gomoko
# Author: Hashar
# Author: Od1n
# --
# This file is distributed under the same license as the StatusNet package.
#
msgid ""
msgstr ""
"Project-Id-Version: StatusNet - Msn\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-06-30 11:07+0000\n"
"PO-Revision-Date: 2012-06-30 11:09:18+0000\n"
"Language-Team: French <https://translatewiki.net/wiki/Portal:fr>\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-POT-Import-Date: 2011-12-03 13:48:56+0000\n"
"X-Generator: MediaWiki 1.20alpha (233fc08); Translate 2012-06-21\n"
"X-Translation-Project: translatewiki.net <https://translatewiki.net>\n"
"X-Language-Code: fr\n"
"X-Message-Group: #out-statusnet-plugin-msn\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
#. TRANS: MSN bot status message.
msgid "Send me a message to post a notice"
msgstr "Menvoyer un message pour publier un avis."
#. TRANS: Server exception thrown when a message to be sent through MSN cannot be added to the database queue.
msgid "Database error inserting queue item."
msgstr "Erreur de base de données lors de l'insertion d'un élément de file."
#. TRANS: Display name of the MSN instant messaging service.
msgid "MSN"
msgstr "MSN"
#. TRANS: Exception thrown when configuration for the MSN plugin is incomplete.
msgid "Must specify a user."
msgstr "Il faut spécifier un utilisateur."
#. TRANS: Exception thrown when configuration for the MSN plugin is incomplete.
msgid "Must specify a password."
msgstr "Il faut spécifier un mot de passe."
#. TRANS: Exception thrown when configuration for the MSN plugin is incomplete.
msgid "Must specify a nickname."
msgstr "Il faut indiquer un pseudonyme."
#. TRANS: Plugin description.
msgid ""
"The MSN plugin allows users to send and receive notices over the MSN network."
msgstr ""
"Le plugin MSN permet aux utilisateurs d'envoyer et de recevoir des messages "
"depuis le réseau MSN."

View File

@ -1,53 +0,0 @@
# Translation of StatusNet - Msn to Galician (galego)
# Exported from translatewiki.net
#
# Author: Toliño
# --
# This file is distributed under the same license as the StatusNet package.
#
msgid ""
msgstr ""
"Project-Id-Version: StatusNet - Msn\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-06-30 11:07+0000\n"
"PO-Revision-Date: 2012-06-30 11:09:18+0000\n"
"Language-Team: Galician <https://translatewiki.net/wiki/Portal:gl>\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-POT-Import-Date: 2011-12-03 13:48:56+0000\n"
"X-Generator: MediaWiki 1.20alpha (233fc08); Translate 2012-06-21\n"
"X-Translation-Project: translatewiki.net <https://translatewiki.net>\n"
"X-Language-Code: gl\n"
"X-Message-Group: #out-statusnet-plugin-msn\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#. TRANS: MSN bot status message.
msgid "Send me a message to post a notice"
msgstr "Envíame unha mensaxe para publicar unha nota"
#. TRANS: Server exception thrown when a message to be sent through MSN cannot be added to the database queue.
msgid "Database error inserting queue item."
msgstr "Erro na base de datos ao inserir un elemento na cola."
#. TRANS: Display name of the MSN instant messaging service.
msgid "MSN"
msgstr "MSN"
#. TRANS: Exception thrown when configuration for the MSN plugin is incomplete.
msgid "Must specify a user."
msgstr "Cómpre especificar un usuario."
#. TRANS: Exception thrown when configuration for the MSN plugin is incomplete.
msgid "Must specify a password."
msgstr "Cómpre especificar un contrasinal."
#. TRANS: Exception thrown when configuration for the MSN plugin is incomplete.
msgid "Must specify a nickname."
msgstr "Cómpre especificar un alcume."
#. TRANS: Plugin description.
msgid ""
"The MSN plugin allows users to send and receive notices over the MSN network."
msgstr ""
"O complemento MSN permite aos usuarios enviar e recibir mensaxes desde a "
"rede de MSN."

View File

@ -1,54 +0,0 @@
# Translation of StatusNet - Msn to Interlingua (interlingua)
# Exported from translatewiki.net
#
# Author: McDutchie
# --
# This file is distributed under the same license as the StatusNet package.
#
msgid ""
msgstr ""
"Project-Id-Version: StatusNet - Msn\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-06-30 11:07+0000\n"
"PO-Revision-Date: 2012-06-30 11:09:19+0000\n"
"Language-Team: Interlingua <https://translatewiki.net/wiki/Portal:ia>\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-POT-Import-Date: 2011-12-03 13:48:56+0000\n"
"X-Generator: MediaWiki 1.20alpha (233fc08); Translate 2012-06-21\n"
"X-Translation-Project: translatewiki.net <https://translatewiki.net>\n"
"X-Language-Code: ia\n"
"X-Message-Group: #out-statusnet-plugin-msn\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#. TRANS: MSN bot status message.
msgid "Send me a message to post a notice"
msgstr "Inviar me un message pro publicar un nota"
#. TRANS: Server exception thrown when a message to be sent through MSN cannot be added to the database queue.
msgid "Database error inserting queue item."
msgstr ""
"Error del base de datos durante le insertion de un elemento in le cauda."
#. TRANS: Display name of the MSN instant messaging service.
msgid "MSN"
msgstr "MSN"
#. TRANS: Exception thrown when configuration for the MSN plugin is incomplete.
msgid "Must specify a user."
msgstr "Es necessari specificar un usator."
#. TRANS: Exception thrown when configuration for the MSN plugin is incomplete.
msgid "Must specify a password."
msgstr "Es necessari specificar un contrasigno."
#. TRANS: Exception thrown when configuration for the MSN plugin is incomplete.
msgid "Must specify a nickname."
msgstr "Es necessari specificar un pseudonymo."
#. TRANS: Plugin description.
msgid ""
"The MSN plugin allows users to send and receive notices over the MSN network."
msgstr ""
"Le plug-in de MSN permitte que usatores invia e recipe notas per le rete de "
"MSN."

View File

@ -1,51 +0,0 @@
# Translation of StatusNet - Msn to Italian (italiano)
# Exported from translatewiki.net
#
# Author: GreenFox
# Author: Od1n
# --
# This file is distributed under the same license as the StatusNet package.
#
msgid ""
msgstr ""
"Project-Id-Version: StatusNet - Msn\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-06-30 11:07+0000\n"
"PO-Revision-Date: 2012-06-30 11:09:19+0000\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-POT-Import-Date: 2011-12-03 13:48:56+0000\n"
"X-Translation-Project: translatewiki.net <https://translatewiki.net>\n"
"X-Generator: MediaWiki 1.20alpha (233fc08); Translate 2012-06-21\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#. TRANS: MSN bot status message.
msgid "Send me a message to post a notice"
msgstr "Mandami un messaggio per pubblicare una comunicazione."
#. TRANS: Server exception thrown when a message to be sent through MSN cannot be added to the database queue.
msgid "Database error inserting queue item."
msgstr "Errore nel database inserendo l'elemento in coda."
#. TRANS: Display name of the MSN instant messaging service.
msgid "MSN"
msgstr "MSN"
#. TRANS: Exception thrown when configuration for the MSN plugin is incomplete.
msgid "Must specify a user."
msgstr "Devi specificare un utente."
#. TRANS: Exception thrown when configuration for the MSN plugin is incomplete.
msgid "Must specify a password."
msgstr "Devi specificare una password."
#. TRANS: Exception thrown when configuration for the MSN plugin is incomplete.
msgid "Must specify a nickname."
msgstr "È necessario specificare un soprannome."
#. TRANS: Plugin description.
msgid ""
"The MSN plugin allows users to send and receive notices over the MSN network."
msgstr ""
"Il plugin per MSN consente agli utenti di inviare e ricevere notizie tramite "
"la rete MSN."

View File

@ -1,53 +0,0 @@
# Translation of StatusNet - Msn to Macedonian (македонски)
# Exported from translatewiki.net
#
# Author: Bjankuloski06
# --
# This file is distributed under the same license as the StatusNet package.
#
msgid ""
msgstr ""
"Project-Id-Version: StatusNet - Msn\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-06-30 11:07+0000\n"
"PO-Revision-Date: 2012-06-30 11:09:19+0000\n"
"Language-Team: Macedonian <https://translatewiki.net/wiki/Portal:mk>\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-POT-Import-Date: 2011-12-03 13:48:56+0000\n"
"X-Generator: MediaWiki 1.20alpha (233fc08); Translate 2012-06-21\n"
"X-Translation-Project: translatewiki.net <https://translatewiki.net>\n"
"X-Language-Code: mk\n"
"X-Message-Group: #out-statusnet-plugin-msn\n"
"Plural-Forms: nplurals=2; plural=(n == 1 || n%10 == 1) ? 0 : 1;\n"
#. TRANS: MSN bot status message.
msgid "Send me a message to post a notice"
msgstr "Испрати ми порака за да објавам забелешка"
#. TRANS: Server exception thrown when a message to be sent through MSN cannot be added to the database queue.
msgid "Database error inserting queue item."
msgstr "Грешка во базата при вметнувањето на ставка во редот на чекање."
#. TRANS: Display name of the MSN instant messaging service.
msgid "MSN"
msgstr "MSN"
#. TRANS: Exception thrown when configuration for the MSN plugin is incomplete.
msgid "Must specify a user."
msgstr "Мора да наведете корисник."
#. TRANS: Exception thrown when configuration for the MSN plugin is incomplete.
msgid "Must specify a password."
msgstr "Мора да наведете лозинка."
#. TRANS: Exception thrown when configuration for the MSN plugin is incomplete.
msgid "Must specify a nickname."
msgstr "Мора да наведете прекар."
#. TRANS: Plugin description.
msgid ""
"The MSN plugin allows users to send and receive notices over the MSN network."
msgstr ""
"Приклучокот за MSN им овозможува на корисниците да испраќаат и примаат "
"забелешки преку мрежата на MSN."

View File

@ -1,54 +0,0 @@
# Translation of StatusNet - Msn to Dutch (Nederlands)
# Exported from translatewiki.net
#
# Author: Siebrand
# --
# This file is distributed under the same license as the StatusNet package.
#
msgid ""
msgstr ""
"Project-Id-Version: StatusNet - Msn\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-06-30 11:07+0000\n"
"PO-Revision-Date: 2012-06-30 11:09:19+0000\n"
"Language-Team: Dutch <https://translatewiki.net/wiki/Portal:nl>\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-POT-Import-Date: 2011-12-03 13:48:56+0000\n"
"X-Generator: MediaWiki 1.20alpha (233fc08); Translate 2012-06-21\n"
"X-Translation-Project: translatewiki.net <https://translatewiki.net>\n"
"X-Language-Code: nl\n"
"X-Message-Group: #out-statusnet-plugin-msn\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#. TRANS: MSN bot status message.
msgid "Send me a message to post a notice"
msgstr "Mij een bericht sturen om een mededeling te verzenden"
#. TRANS: Server exception thrown when a message to be sent through MSN cannot be added to the database queue.
msgid "Database error inserting queue item."
msgstr ""
"Er is een databasefout opgetreden tijdens het invoegen van het queueitem."
#. TRANS: Display name of the MSN instant messaging service.
msgid "MSN"
msgstr "MSN"
#. TRANS: Exception thrown when configuration for the MSN plugin is incomplete.
msgid "Must specify a user."
msgstr "Geef een gebruiker op."
#. TRANS: Exception thrown when configuration for the MSN plugin is incomplete.
msgid "Must specify a password."
msgstr "Geef een wachtwoord op."
#. TRANS: Exception thrown when configuration for the MSN plugin is incomplete.
msgid "Must specify a nickname."
msgstr "Geef een nickname op."
#. TRANS: Plugin description.
msgid ""
"The MSN plugin allows users to send and receive notices over the MSN network."
msgstr ""
"Maakt het mogelijk om mededelingen te zenden naar en ontvangen van het MSN-"
"netwerk."

View File

@ -1,51 +0,0 @@
# Translation of StatusNet - Msn to Portuguese (Português)
# Exported from translatewiki.net
#
# Author: SandroHc
# --
# This file is distributed under the same license as the StatusNet package.
#
msgid ""
msgstr ""
"Project-Id-Version: StatusNet - Msn\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2011-04-27 12:36+0000\n"
"PO-Revision-Date: 2011-04-27 12:37:47+0000\n"
"Language-Team: Portuguese <http://translatewiki.net/wiki/Portal:pt>\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-POT-Import-Date: 2011-03-26 16:22:40+0000\n"
"X-Generator: MediaWiki 1.18alpha (r87008); Translate extension (2011-04-26)\n"
"X-Translation-Project: translatewiki.net at http://translatewiki.net\n"
"X-Language-Code: pt\n"
"X-Message-Group: #out-statusnet-plugin-msn\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#. TRANS: MSN bot status message.
msgid "Send me a message to post a notice"
msgstr ""
#. TRANS: Server exception thrown when a message to be sent through MSN cannot be added to the database queue.
msgid "Database error inserting queue item."
msgstr ""
#. TRANS: Display name of the MSN instant messaging service.
msgid "MSN"
msgstr "MSN"
#. TRANS: Exception thrown when configuration for the MSN plugin is incomplete.
msgid "Must specify a user."
msgstr ""
#. TRANS: Exception thrown when configuration for the MSN plugin is incomplete.
msgid "Must specify a password."
msgstr ""
#. TRANS: Exception thrown when configuration for the MSN plugin is incomplete.
msgid "Must specify a nickname."
msgstr ""
#. TRANS: Plugin description.
msgid ""
"The MSN plugin allows users to send and receive notices over the MSN network."
msgstr ""

View File

@ -1,54 +0,0 @@
# Translation of StatusNet - Msn to Swedish (svenska)
# Exported from translatewiki.net
#
# Author: Lokal Profil
# Author: WikiPhoenix
# --
# This file is distributed under the same license as the StatusNet package.
#
msgid ""
msgstr ""
"Project-Id-Version: StatusNet - Msn\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-06-30 11:07+0000\n"
"PO-Revision-Date: 2012-06-30 11:09:19+0000\n"
"Language-Team: Swedish <https://translatewiki.net/wiki/Portal:sv>\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-POT-Import-Date: 2011-12-03 13:48:56+0000\n"
"X-Generator: MediaWiki 1.20alpha (233fc08); Translate 2012-06-21\n"
"X-Translation-Project: translatewiki.net <https://translatewiki.net>\n"
"X-Language-Code: sv\n"
"X-Message-Group: #out-statusnet-plugin-msn\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#. TRANS: MSN bot status message.
msgid "Send me a message to post a notice"
msgstr ""
#. TRANS: Server exception thrown when a message to be sent through MSN cannot be added to the database queue.
msgid "Database error inserting queue item."
msgstr ""
#. TRANS: Display name of the MSN instant messaging service.
msgid "MSN"
msgstr "MSN"
#. TRANS: Exception thrown when configuration for the MSN plugin is incomplete.
msgid "Must specify a user."
msgstr "Du måste ange en användare."
#. TRANS: Exception thrown when configuration for the MSN plugin is incomplete.
msgid "Must specify a password."
msgstr "Du måste ange ett lösenord."
#. TRANS: Exception thrown when configuration for the MSN plugin is incomplete.
msgid "Must specify a nickname."
msgstr "Du måste ange ett smeknamn."
#. TRANS: Plugin description.
msgid ""
"The MSN plugin allows users to send and receive notices over the MSN network."
msgstr ""
"MSN-tillägget tillåter användare skicka och ta emot meddelanden över MSN-"
"nätverket."

View File

@ -1,53 +0,0 @@
# Translation of StatusNet - Msn to Tagalog (Tagalog)
# Exported from translatewiki.net
#
# Author: AnakngAraw
# --
# This file is distributed under the same license as the StatusNet package.
#
msgid ""
msgstr ""
"Project-Id-Version: StatusNet - Msn\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-06-30 11:07+0000\n"
"PO-Revision-Date: 2012-06-30 11:09:19+0000\n"
"Language-Team: Tagalog <https://translatewiki.net/wiki/Portal:tl>\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-POT-Import-Date: 2011-12-03 13:48:56+0000\n"
"X-Generator: MediaWiki 1.20alpha (233fc08); Translate 2012-06-21\n"
"X-Translation-Project: translatewiki.net <https://translatewiki.net>\n"
"X-Language-Code: tl\n"
"X-Message-Group: #out-statusnet-plugin-msn\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#. TRANS: MSN bot status message.
msgid "Send me a message to post a notice"
msgstr "Padalhan ako ng isang mensahe upang makapagpaskil ng isang pabatid"
#. TRANS: Server exception thrown when a message to be sent through MSN cannot be added to the database queue.
msgid "Database error inserting queue item."
msgstr "Kamalian ng kalipunan ng dato sa pagsisingit ng bagay ng pila."
#. TRANS: Display name of the MSN instant messaging service.
msgid "MSN"
msgstr "MSN"
#. TRANS: Exception thrown when configuration for the MSN plugin is incomplete.
msgid "Must specify a user."
msgstr "Dapat tumukoy ng isang tagagamit."
#. TRANS: Exception thrown when configuration for the MSN plugin is incomplete.
msgid "Must specify a password."
msgstr "Dapat tumukoy ng isang hudyat."
#. TRANS: Exception thrown when configuration for the MSN plugin is incomplete.
msgid "Must specify a nickname."
msgstr "Dapat tumukoy ng isang palayaw."
#. TRANS: Plugin description.
msgid ""
"The MSN plugin allows users to send and receive notices over the MSN network."
msgstr ""
"Ang pampasak ng MSN ay nagpapahintulot sa mga tagagamit na makapagpadala at "
"makatanggap ng mga pabatid sa ibabaw ng kalambatan ng MSN."

View File

@ -1,53 +0,0 @@
# Translation of StatusNet - Msn to Ukrainian (українська)
# Exported from translatewiki.net
#
# Author: Boogie
# --
# This file is distributed under the same license as the StatusNet package.
#
msgid ""
msgstr ""
"Project-Id-Version: StatusNet - Msn\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-06-30 11:07+0000\n"
"PO-Revision-Date: 2012-06-30 11:09:19+0000\n"
"Language-Team: Ukrainian <https://translatewiki.net/wiki/Portal:uk>\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-POT-Import-Date: 2011-12-03 13:48:56+0000\n"
"X-Generator: MediaWiki 1.20alpha (233fc08); Translate 2012-06-21\n"
"X-Translation-Project: translatewiki.net <https://translatewiki.net>\n"
"X-Language-Code: uk\n"
"X-Message-Group: #out-statusnet-plugin-msn\n"
"Plural-Forms: nplurals=3; plural=(n%10 == 1 && n%100 != 11) ? 0 : ( (n%10 >= "
"2 && n%10 <= 4 && (n%100 < 10 || n%100 >= 20)) ? 1 : 2 );\n"
#. TRANS: MSN bot status message.
msgid "Send me a message to post a notice"
msgstr "Надіслати повідомлення, щоб опублікувати новий допис."
#. TRANS: Server exception thrown when a message to be sent through MSN cannot be added to the database queue.
msgid "Database error inserting queue item."
msgstr "Помилка бази даних при вставці елемента черги."
#. TRANS: Display name of the MSN instant messaging service.
msgid "MSN"
msgstr "MSN"
#. TRANS: Exception thrown when configuration for the MSN plugin is incomplete.
msgid "Must specify a user."
msgstr "Необхідно зазначити користувача."
#. TRANS: Exception thrown when configuration for the MSN plugin is incomplete.
msgid "Must specify a password."
msgstr "Необхідно вказати пароль."
#. TRANS: Exception thrown when configuration for the MSN plugin is incomplete.
msgid "Must specify a nickname."
msgstr "Необхідно вказати псевдонім."
#. TRANS: Plugin description.
msgid ""
"The MSN plugin allows users to send and receive notices over the MSN network."
msgstr ""
"Додаток MSN дозволяє користувачам надсилати і отримувати дописи у мережі MSN."