From e52a0809b8274aea24d7398e87f34e4d78f9877c Mon Sep 17 00:00:00 2001 From: George Hazan Date: Fri, 18 May 2012 12:40:57 +0000 Subject: renamed help files for MRA git-svn-id: http://svn.miranda-ng.org/main/trunk@40 1316c22d-e87f-b044-9b9b-93d7a3e3ba9c --- protocols/MRA/Docs/Mail.ru Agent.files/0.gif | Bin 0 -> 103 bytes protocols/MRA/Docs/Mail.ru Agent.files/1.gif | Bin 0 -> 35 bytes .../MRA/Docs/Mail.ru Agent.files/WindowOpen.js | 44 ++ protocols/MRA/Docs/Mail.ru Agent.files/_mail.gif | Bin 0 -> 929 bytes .../MRA/Docs/Mail.ru Agent.files/agentlogo.gif | Bin 0 -> 1866 bytes .../MRA/Docs/Mail.ru Agent.files/cards-all.gif | Bin 0 -> 240 bytes .../MRA/Docs/Mail.ru Agent.files/cars-all.gif | Bin 0 -> 249 bytes .../MRA/Docs/Mail.ru Agent.files/chat-all.gif | Bin 0 -> 1039 bytes .../MRA/Docs/Mail.ru Agent.files/content-all.gif | Bin 0 -> 599 bytes protocols/MRA/Docs/Mail.ru Agent.files/go-all.gif | Bin 0 -> 1019 bytes protocols/MRA/Docs/Mail.ru Agent.files/index.css | 501 ++++++++++++++++ .../MRA/Docs/Mail.ru Agent.files/love-all.gif | Bin 0 -> 558 bytes .../MRA/Docs/Mail.ru Agent.files/molotok-all.gif | Bin 0 -> 362 bytes protocols/MRA/Docs/Mail.ru Agent.files/proto.css | 39 ++ .../MRA/Docs/Mail.ru Agent.files/tour-all.gif | Bin 0 -> 256 bytes protocols/MRA/Docs/Mail.ru Agent.htm | 635 +++++++++++++++++++++ .../0.gif" | Bin 103 -> 0 bytes .../1.gif" | Bin 35 -> 0 bytes .../WindowOpen.js" | 44 -- .../_mail.gif" | Bin 929 -> 0 bytes .../agentlogo.gif" | Bin 1866 -> 0 bytes .../cards-all.gif" | Bin 240 -> 0 bytes .../cars-all.gif" | Bin 249 -> 0 bytes .../chat-all.gif" | Bin 1039 -> 0 bytes .../content-all.gif" | Bin 599 -> 0 bytes .../go-all.gif" | Bin 1019 -> 0 bytes .../index.css" | 501 ---------------- .../love-all.gif" | Bin 558 -> 0 bytes .../molotok-all.gif" | Bin 362 -> 0 bytes .../proto.css" | 39 -- .../tour-all.gif" | Bin 256 -> 0 bytes ...u \320\220\320\263\320\265\320\275\321\202.htm" | 635 --------------------- 32 files changed, 1219 insertions(+), 1219 deletions(-) create mode 100644 protocols/MRA/Docs/Mail.ru Agent.files/0.gif create mode 100644 protocols/MRA/Docs/Mail.ru Agent.files/1.gif create mode 100644 protocols/MRA/Docs/Mail.ru Agent.files/WindowOpen.js create mode 100644 protocols/MRA/Docs/Mail.ru Agent.files/_mail.gif create mode 100644 protocols/MRA/Docs/Mail.ru Agent.files/agentlogo.gif create mode 100644 protocols/MRA/Docs/Mail.ru Agent.files/cards-all.gif create mode 100644 protocols/MRA/Docs/Mail.ru Agent.files/cars-all.gif create mode 100644 protocols/MRA/Docs/Mail.ru Agent.files/chat-all.gif create mode 100644 protocols/MRA/Docs/Mail.ru Agent.files/content-all.gif create mode 100644 protocols/MRA/Docs/Mail.ru Agent.files/go-all.gif create mode 100644 protocols/MRA/Docs/Mail.ru Agent.files/index.css create mode 100644 protocols/MRA/Docs/Mail.ru Agent.files/love-all.gif create mode 100644 protocols/MRA/Docs/Mail.ru Agent.files/molotok-all.gif create mode 100644 protocols/MRA/Docs/Mail.ru Agent.files/proto.css create mode 100644 protocols/MRA/Docs/Mail.ru Agent.files/tour-all.gif create mode 100644 protocols/MRA/Docs/Mail.ru Agent.htm delete mode 100644 "protocols/MRA/Docs/Mail_ru \320\220\320\263\320\265\320\275\321\202.files/0.gif" delete mode 100644 "protocols/MRA/Docs/Mail_ru \320\220\320\263\320\265\320\275\321\202.files/1.gif" delete mode 100644 "protocols/MRA/Docs/Mail_ru \320\220\320\263\320\265\320\275\321\202.files/WindowOpen.js" delete mode 100644 "protocols/MRA/Docs/Mail_ru \320\220\320\263\320\265\320\275\321\202.files/_mail.gif" delete mode 100644 "protocols/MRA/Docs/Mail_ru \320\220\320\263\320\265\320\275\321\202.files/agentlogo.gif" delete mode 100644 "protocols/MRA/Docs/Mail_ru \320\220\320\263\320\265\320\275\321\202.files/cards-all.gif" delete mode 100644 "protocols/MRA/Docs/Mail_ru \320\220\320\263\320\265\320\275\321\202.files/cars-all.gif" delete mode 100644 "protocols/MRA/Docs/Mail_ru \320\220\320\263\320\265\320\275\321\202.files/chat-all.gif" delete mode 100644 "protocols/MRA/Docs/Mail_ru \320\220\320\263\320\265\320\275\321\202.files/content-all.gif" delete mode 100644 "protocols/MRA/Docs/Mail_ru \320\220\320\263\320\265\320\275\321\202.files/go-all.gif" delete mode 100644 "protocols/MRA/Docs/Mail_ru \320\220\320\263\320\265\320\275\321\202.files/index.css" delete mode 100644 "protocols/MRA/Docs/Mail_ru \320\220\320\263\320\265\320\275\321\202.files/love-all.gif" delete mode 100644 "protocols/MRA/Docs/Mail_ru \320\220\320\263\320\265\320\275\321\202.files/molotok-all.gif" delete mode 100644 "protocols/MRA/Docs/Mail_ru \320\220\320\263\320\265\320\275\321\202.files/proto.css" delete mode 100644 "protocols/MRA/Docs/Mail_ru \320\220\320\263\320\265\320\275\321\202.files/tour-all.gif" delete mode 100644 "protocols/MRA/Docs/Mail_ru \320\220\320\263\320\265\320\275\321\202.htm" (limited to 'protocols/MRA') diff --git a/protocols/MRA/Docs/Mail.ru Agent.files/0.gif b/protocols/MRA/Docs/Mail.ru Agent.files/0.gif new file mode 100644 index 0000000000..427c96bdb9 Binary files /dev/null and b/protocols/MRA/Docs/Mail.ru Agent.files/0.gif differ diff --git a/protocols/MRA/Docs/Mail.ru Agent.files/1.gif b/protocols/MRA/Docs/Mail.ru Agent.files/1.gif new file mode 100644 index 0000000000..1d0c3f9a96 Binary files /dev/null and b/protocols/MRA/Docs/Mail.ru Agent.files/1.gif differ diff --git a/protocols/MRA/Docs/Mail.ru Agent.files/WindowOpen.js b/protocols/MRA/Docs/Mail.ru Agent.files/WindowOpen.js new file mode 100644 index 0000000000..e5f140e382 --- /dev/null +++ b/protocols/MRA/Docs/Mail.ru Agent.files/WindowOpen.js @@ -0,0 +1,44 @@ +// +// Proxomitron Anti-popup code +// + +var PrxLC=new Date(0); +var PrxModAtr=0; +var PrxLd=1; +var PrxInst; if(!PrxInst++) PrxRealOpen=window.open; + +function PrxOMUp(){PrxLC=new Date();} +function PrxNW(){return(this.window);} +function PrxOpen(url,nam,atr){ + if(PrxLC){ + var cdt=new Date(); + cdt.setTime(cdt.getTime()-PrxLC.getTime()); + if(!PrxLd && cdt.getSeconds()<2){ + if(atr){ return(PrxRealOpen(url,nam,PrxWOA(atr))); } + else{ return(PrxRealOpen(url,nam)); } + } + } + return(new PrxNW()); +} + +function PrxWOA(atr){ + var xatr="location=yes,status=yes,resizable=yes,toolbar=yes,scrollbars=yes"; + if(!PrxModAtr) return(atr); + if(atr){ + var hm; + hm=atr.match(/height\=[0-9]+/i); + if(hm) xatr+="," + hm; + hm=atr.match(/width\=[0-9]+/i); + if(hm) xatr+="," + hm; + } + return(xatr); +} + +function PrxRST(){ + if(document.layers){document.captureEvents(Event.MOUSEUP);} + document.onmouseup=PrxOMUp; + PrxLd=0; +} + +window.open=PrxOpen; +submit=PrxOpen; \ No newline at end of file diff --git a/protocols/MRA/Docs/Mail.ru Agent.files/_mail.gif b/protocols/MRA/Docs/Mail.ru Agent.files/_mail.gif new file mode 100644 index 0000000000..c86e89de3a Binary files /dev/null and b/protocols/MRA/Docs/Mail.ru Agent.files/_mail.gif differ diff --git a/protocols/MRA/Docs/Mail.ru Agent.files/agentlogo.gif b/protocols/MRA/Docs/Mail.ru Agent.files/agentlogo.gif new file mode 100644 index 0000000000..5ce7a199a3 Binary files /dev/null and b/protocols/MRA/Docs/Mail.ru Agent.files/agentlogo.gif differ diff --git a/protocols/MRA/Docs/Mail.ru Agent.files/cards-all.gif b/protocols/MRA/Docs/Mail.ru Agent.files/cards-all.gif new file mode 100644 index 0000000000..2ea481c9d4 Binary files /dev/null and b/protocols/MRA/Docs/Mail.ru Agent.files/cards-all.gif differ diff --git a/protocols/MRA/Docs/Mail.ru Agent.files/cars-all.gif b/protocols/MRA/Docs/Mail.ru Agent.files/cars-all.gif new file mode 100644 index 0000000000..908409dbd4 Binary files /dev/null and b/protocols/MRA/Docs/Mail.ru Agent.files/cars-all.gif differ diff --git a/protocols/MRA/Docs/Mail.ru Agent.files/chat-all.gif b/protocols/MRA/Docs/Mail.ru Agent.files/chat-all.gif new file mode 100644 index 0000000000..438ee19590 Binary files /dev/null and b/protocols/MRA/Docs/Mail.ru Agent.files/chat-all.gif differ diff --git a/protocols/MRA/Docs/Mail.ru Agent.files/content-all.gif b/protocols/MRA/Docs/Mail.ru Agent.files/content-all.gif new file mode 100644 index 0000000000..72bc124872 Binary files /dev/null and b/protocols/MRA/Docs/Mail.ru Agent.files/content-all.gif differ diff --git a/protocols/MRA/Docs/Mail.ru Agent.files/go-all.gif b/protocols/MRA/Docs/Mail.ru Agent.files/go-all.gif new file mode 100644 index 0000000000..e6ae399e38 Binary files /dev/null and b/protocols/MRA/Docs/Mail.ru Agent.files/go-all.gif differ diff --git a/protocols/MRA/Docs/Mail.ru Agent.files/index.css b/protocols/MRA/Docs/Mail.ru Agent.files/index.css new file mode 100644 index 0000000000..7842a50367 --- /dev/null +++ b/protocols/MRA/Docs/Mail.ru Agent.files/index.css @@ -0,0 +1,501 @@ +A.ag { + COLOR: black; FONT-FAMILY: Arial,Sans-Serif; TEXT-DECORATION: underline +} +P.sog { + PADDING-RIGHT: 25px; PADDING-LEFT: 20px; FONT-SIZE: 65%; PADDING-BOTTOM: 0px; PADDING-TOP: 3px +} +P.sog A { + COLOR: white; FONT-FAMILY: Arial,Sans-Serif +} +P.sog A:hover { + COLOR: #cce8ff +} +A.font { + FONT-SIZE: 70%; COLOR: black; TEXT-DECORATION: none +} +A.ag:hover { + TEXT-DECORATION: none +} +.ag { + FONT-WEIGHT: normal; PADDING-BOTTOM: 5px; COLOR: black; FONT-FAMILY: Arial,Sans-Serif +} +A.quest { + DISPLAY: block; FONT-SIZE: 90%; MARGIN: 3px 0px 0px +} +.dmar { + PADDING-RIGHT: 170px; FONT-SIZE: 75%; MARGIN: 10px 0px 0px 5px +} +.mar { + MARGIN-TOP: 10px; FONT-SIZE: 75% +} +.yas { + FONT-SIZE: 70%; MARGIN: 0px 0px 15px; COLOR: #676a71 +} +.yas A { + COLOR: #0956a6; TEXT-DECORATION: none +} +.m { + FONT-SIZE: 70%; MARGIN: 0px 0px 0px 10px +} +UL.dpic { + PADDING-RIGHT: 260px; PADDING-LEFT: 10px; FONT-SIZE: 75% +} +UL.pic { + PADDING-LEFT: 10px; FONT-SIZE: 75%; MARGIN-BOTTOM: 15px +} +UL.pic LI.p1 { + PADDING-RIGHT: 0px; PADDING-LEFT: 10px; LIST-STYLE-IMAGE: url(http://img.mail.ru/mail/ru/images/agent/ima1.gif); PADDING-BOTTOM: 2px; PADDING-TOP: 0px +} +UL.pic LI.p2 { + PADDING-RIGHT: 0px; PADDING-LEFT: 10px; LIST-STYLE-IMAGE: url(http://img.mail.ru/mail/ru/images/agent/ima2.gif); PADDING-BOTTOM: 2px; PADDING-TOP: 0px +} +UL.pic LI.p3 { + PADDING-RIGHT: 0px; PADDING-LEFT: 10px; LIST-STYLE-IMAGE: url(http://img.mail.ru/mail/ru/images/agent/ima3.gif); PADDING-BOTTOM: 2px; PADDING-TOP: 0px +} +SPAN.or { + COLOR: #f26d00 +} +UL { + PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px 0px 0px 17px; PADDING-TOP: 0px +} +LI { + PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 3px 0px 0px; LINE-HEIGHT: 120%; PADDING-TOP: 0px +} +.bottom { + PADDING-RIGHT: 0px; PADDING-LEFT: 5px; FLOAT: left; PADDING-BOTTOM: 1px; MARGIN: 0px; PADDING-TOP: 0px +} +.right { + PADDING-RIGHT: 20px; FLOAT: right +} +.img { + PADDING-RIGHT: 320px; BACKGROUND-POSITION: left center; PADDING-LEFT: 40px; FONT-SIZE: 75%; BACKGROUND-IMAGE: url(http://img.mail.ru/mail/ru/images/agent/kar.gif); PADDING-BOTTOM: 10px; MARGIN: 5px 0px 7px 5px; PADDING-TOP: 7px; BACKGROUND-REPEAT: no-repeat +} +.bg1 { + BACKGROUND-POSITION: right bottom; BACKGROUND-IMAGE: url(http://img.mail.ru/mail/ru/images/agent/bg1.gif); BACKGROUND-REPEAT: no-repeat; HEIGHT: 220px +} +.bg12 { + BACKGROUND-POSITION: right top; BACKGROUND-IMAGE: url(http://img.mail.ru/mail/ru/images/agent/bg1_2.gif); MARGIN: 0px; BACKGROUND-REPEAT: no-repeat; HEIGHT: 12px +} +.bg2 { + BACKGROUND-POSITION: right bottom; BACKGROUND-IMAGE: url(http://img.mail.ru/mail/ru/images/agent/bg3.gif); BACKGROUND-REPEAT: no-repeat; HEIGHT: 240px +} +.bg21 { + BACKGROUND-POSITION: right top; BACKGROUND-IMAGE: url(http://img.mail.ru/mail/ru/images/agent/bg3_2.gif); MARGIN: 0px; BACKGROUND-REPEAT: no-repeat; HEIGHT: 12px +} +.bg3 { + BACKGROUND-POSITION: right bottom; BACKGROUND-IMAGE: url(http://img.mail.ru/mail/ru/images/agent/developers.gif); BACKGROUND-REPEAT: no-repeat; HEIGHT: 220px +} +.button { + BORDER-RIGHT: medium none; PADDING-RIGHT: 5px; BORDER-TOP: medium none; PADDING-LEFT: 35px; FONT-WEIGHT: bold; FONT-SIZE: 12px; BACKGROUND: url(http://img.mail.ru/mail/ru/images/agent/button2.gif) no-repeat; PADDING-BOTTOM: 8px; MARGIN: 5px 0px 5px 5px; BORDER-LEFT: medium none; WIDTH: 171px; COLOR: white; PADDING-TOP: 4px; BORDER-BOTTOM: medium none; FONT-FAMILY: Arial,Sans-Serif; HEIGHT: 24px; TEXT-DECORATION: none +} +.button2 { + BORDER-RIGHT: medium none; PADDING-RIGHT: 0px; BORDER-TOP: medium none; PADDING-LEFT: 32px; FONT-WEIGHT: bold; FONT-SIZE: 12px; BACKGROUND: url(http://img.mail.ru/mail/ru/images/agent/button.gif) no-repeat; FLOAT: right; PADDING-BOTTOM: 0px; MARGIN: 12px 0px 5px 5px; BORDER-LEFT: medium none; WIDTH: 123px; COLOR: white; PADDING-TOP: 3px; BORDER-BOTTOM: medium none; FONT-FAMILY: Arial,Sans-Serif; HEIGHT: 24px; TEXT-DECORATION: none +} +A.but { + COLOR: white; TEXT-DECORATION: none +} +A.but:hover { + COLOR: white; TEXT-DECORATION: none +} +TD.gif { + PADDING-RIGHT: 0px; BACKGROUND-POSITION: right 50%; PADDING-LEFT: 0px; BACKGROUND-IMAGE: url(http://img.mail.ru/mail/ru/images/agent/1.gif); PADDING-BOTTOM: 0px; PADDING-TOP: 0px; BACKGROUND-REPEAT: no-repeat +} +A { + COLOR: #0857a6; TEXT-DECORATION: underline +} +A:hover { + COLOR: #f26d00; TEXT-DECORATION: none +} +BODY { + FONT-WEIGHT: normal; FONT-FAMILY: Arial,Sans-Serif +} +TABLE TD { + FONT-WEIGHT: normal; FONT-FAMILY: Arial,Sans-Serif +} +INPUT { + FONT-WEIGHT: normal; FONT-FAMILY: Arial,Sans-Serif +} +SELECT { + FONT-WEIGHT: normal; FONT-FAMILY: Arial,Sans-Serif +} +LABEL { + FONT-WEIGHT: normal; FONT-FAMILY: Arial,Sans-Serif +} +DIV { + FONT-WEIGHT: normal; FONT-FAMILY: Arial,Sans-Serif +} +P { + PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px +} +TABLE.pop TD.up { + PADDING-RIGHT: 10px; PADDING-LEFT: 10px; FONT-SIZE: 80%; PADDING-BOTTOM: 10px; COLOR: black; PADDING-TOP: 10px +} +TABLE.pop H1 { + PADDING-RIGHT: 0px; PADDING-LEFT: 10px; PADDING-BOTTOM: 7px; MARGIN: 0px; PADDING-TOP: 7px +} +H1 { + FONT-SIZE: 100%; FONT-FAMILY: Arial,Sans-Serif +} +H2 { + FONT-SIZE: 90%; MARGIN: 0px 0px 5px; COLOR: #003073; FONT-FAMILY: Arial,Sans-Serif +} +H3 { + FONT-SIZE: 80%; MARGIN: 0px 0px 2px; COLOR: #202020; FONT-FAMILY: Arial,Sans-Serif +} +H3 I { + FONT-WEIGHT: normal; COLOR: black; FONT-STYLE: normal +} +H4 { + FONT-SIZE: 75%; MARGIN: 8px 0px 0px; COLOR: #003073; FONT-FAMILY: Arial,Sans-Serif +} +H4 I { + FONT-WEIGHT: normal; COLOR: black; FONT-STYLE: normal +} +H5 { + FONT-WEIGHT: bold; FONT-SIZE: 70%; MARGIN: 8px 0px 2px; COLOR: #202020; FONT-FAMILY: Arial,Sans-Serif +} +H5 A { + FONT-WEIGHT: bold +} +H5 I A { + FONT-STYLE: normal +} +TABLE.frame { + MARGIN-BOTTOM: 10px +} +TABLE.top { + MARGIN-BOTTOM: 10px +} +TABLE.frame TD.cor { + PADDING-RIGHT: 0px; PADDING-LEFT: 0px; BACKGROUND-IMAGE: url(http://img.mail.ru/mail/ru/images/agent/1.gif); PADDING-BOTTOM: 0px; PADDING-TOP: 0px; BACKGROUND-REPEAT: no-repeat; BACKGROUND-COLOR: #d9d9d9 +} +TABLE.top TD.cor { + PADDING-RIGHT: 0px; PADDING-LEFT: 0px; BACKGROUND-IMAGE: url(http://img.mail.ru/mail/ru/images/agent/1.gif); PADDING-BOTTOM: 0px; PADDING-TOP: 0px; BACKGROUND-REPEAT: no-repeat; BACKGROUND-COLOR: #d9d9d9 +} +TABLE.frame TD.cont { + BORDER-RIGHT: #d9d9d9 1px solid; PADDING-RIGHT: 14px; PADDING-LEFT: 14px; PADDING-BOTTOM: 8px; MARGIN: 0px; BORDER-LEFT: #d9d9d9 1px solid; PADDING-TOP: 8px +} +TD.hd { + BACKGROUND-COLOR: #fedba5 +} +TD.hd H1 { + FONT-WEIGHT: bold; MARGIN: 4px 4px 4px 0px; COLOR: black +} +TD.menuor { + PADDING-BOTTOM: 10px +} +TD.menuor DIV.menur { + BORDER-RIGHT: white 1px solid; PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px 2px; BORDER-LEFT: white 1px solid; PADDING-TOP: 0px; BACKGROUND-COLOR: #ffd57f +} +TD.menuor DIV.bord { + BORDER-RIGHT: #ffa901 2px solid; PADDING-RIGHT: 14px; BORDER-TOP: #ffa901 1px solid; PADDING-LEFT: 15px; FONT-SIZE: 75%; PADDING-BOTTOM: 4px; MARGIN: 0px; BORDER-LEFT: #ffa901 2px solid; PADDING-TOP: 4px; BORDER-BOTTOM: #ffa901 1px solid +} +TD.menuor DIV.bor SPAN.small { + FONT-SIZE: 90%; COLOR: red +} +TD.menuor DIV.bor A { + COLOR: #413f40; TEXT-DECORATION: underline +} +TD.menuor DIV.bor A:hover { + TEXT-DECORATION: none +} +TD.menuor DIV.bor { + BORDER-RIGHT: #ffd57f 1px solid; PADDING-RIGHT: 14px; PADDING-LEFT: 14px; FONT-SIZE: 75%; PADDING-BOTTOM: 4px; MARGIN: 0px 2px; BORDER-LEFT: #ffd57f 1px solid; PADDING-TOP: 4px; BACKGROUND-COLOR: #fff2d8 +} +TD.menuor DIV.b { + BORDER-RIGHT: #ffd57f 1px solid; MARGIN: 0px 2px; BORDER-LEFT: #ffd57f 1px solid; BACKGROUND-COLOR: #fff2d8 +} +.prop { + PADDING-RIGHT: 15px; PADDING-LEFT: 0px; FONT-SIZE: 80%; PADDING-BOTTOM: 10px; PADDING-TOP: 5px +} +TD.prop P { + MARGIN: 0px; COLOR: #00458e; FONT-FAMILY: Arial,Sans-Serif +} +TD.text P { + PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 75%; PADDING-BOTTOM: 5px; PADDING-TOP: 0px +} +TD.text H4 { + MARGIN: 12px 0px 3px +} +TD.text H1 { + FONT-WEIGHT: bold; MARGIN: 10px 0px 5px; COLOR: #003073 +} +TD.text OL { + PADDING-RIGHT: 0px; DISPLAY: block; PADDING-LEFT: 0px; FONT-SIZE: 75%; PADDING-BOTTOM: 0px; MARGIN: 0px 0px 7px 30px; PADDING-TOP: 0px +} +TD.text UL { + PADDING-RIGHT: 0px; MARGIN-TOP: 0px; PADDING-LEFT: 0px; FONT-SIZE: 75%; MARGIN-BOTTOM: 0px; PADDING-BOTTOM: 0px; MARGIN-RIGHT: 0px; PADDING-TOP: 0px +} +LI { + PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 3px 0px 0px; LINE-HEIGHT: 120%; PADDING-TOP: 0px +} +TD.vo { + PADDING-LEFT: 25px +} +TD.vo P { + PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 80%; PADDING-BOTTOM: 5px; PADDING-TOP: 0px +} +TD.vo UL { + PADDING-RIGHT: 0px; MARGIN-TOP: 0px; PADDING-LEFT: 0px; FONT-SIZE: 80%; PADDING-BOTTOM: 0px; PADDING-TOP: 0px +} +TD.vo UL LI { + PADDING-RIGHT: 0px; MARGIN-TOP: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; PADDING-TOP: 0px +} +TABLE.frame TD.cont UL { + FONT-SIZE: 70% +} +TABLE.frame TD.cont P { + FONT-SIZE: 70% +} +TABLE.frame TD.menu { + BORDER-RIGHT: #d9d9d9 1px solid; PADDING-RIGHT: 10px; PADDING-LEFT: 10px; PADDING-BOTTOM: 8px; BORDER-LEFT: #d9d9d9 1px solid; PADDING-TOP: 8px; TEXT-ALIGN: right +} +TABLE.frame TD.menu TABLE TD { + FONT-SIZE: 80% +} +TABLE.top TD { + PADDING-RIGHT: 4px; PADDING-LEFT: 4px; FONT-SIZE: 70%; PADDING-BOTTOM: 4px; PADDING-TOP: 4px +} +TABLE.top TD.cor IMG { + MARGIN: 0px +} +TABLE.top TD.left { + PADDING-LEFT: 22px; BORDER-LEFT: #d9d9d9 1px solid +} +TABLE.top TD.right { + BORDER-RIGHT: #d9d9d9 1px solid; PADDING-RIGHT: 22px; PADDING-LEFT: 5px; PADDING-BOTTOM: 5px; PADDING-TOP: 5px +} +TABLE.top TD IMG.pic { + MARGIN-RIGHT: 2px +} +TD.form { + PADDING-BOTTOM: 10px +} +TD.title { + PADDING-RIGHT: 5px; PADDING-LEFT: 0px; FONT-WEIGHT: bold; PADDING-BOTTOM: 10px; PADDING-TOP: 0px +} +TD.pic { + PADDING-RIGHT: 10px; PADDING-LEFT: 0px; PADDING-BOTTOM: 5px; PADDING-TOP: 5px +} +TABLE.footer TD { + FONT-SIZE: 70%; COLOR: white +} +TABLE.footer TD A { + COLOR: white +} +TABLE.footer TD A:hover { + COLOR: #cce8ff +} +TABLE.footer TD.hide { + FONT-SIZE: 70%; COLOR: #00468c +} +TABLE.footer TD.hide A { + COLOR: #00468c +} +TABLE.footer TD.hide A:hover { + COLOR: #00468c +} +TD.entry { + BACKGROUND-POSITION: left bottom; BACKGROUND-IMAGE: url(http://img.mail.ru/mail/ru/images/agent/dot.gif); WIDTH: 100%; BACKGROUND-REPEAT: repeat-x +} +TABLE.rating TD.entry A { + BACKGROUND-COLOR: white +} +TD.centcol DIV.cor { + MARGIN-BOTTOM: 15px +} +TABLE.menu TD { + BACKGROUND-COLOR: white +} +TD.item { + PADDING-RIGHT: 10px; BORDER-TOP: white 3px solid; PADDING-LEFT: 10px; FONT-SIZE: 75%; PADDING-BOTTOM: 20px; PADDING-TOP: 2px +} +TD.cur { + PADDING-RIGHT: 10px; BORDER-TOP: white 3px solid; PADDING-LEFT: 10px; FONT-SIZE: 75%; PADDING-BOTTOM: 20px; PADDING-TOP: 2px +} +TD.head { + PADDING-LEFT: 15px +} +TD.head2 { + PADDING-RIGHT: 10px; PADDING-LEFT: 5px +} +IMG.pre { + BORDER-RIGHT: #ffb31a 1px solid; BORDER-TOP: #ffb31a 1px solid; MARGIN-BOTTOM: 5px; BORDER-LEFT: #ffb31a 1px solid; BORDER-BOTTOM: #ffb31a 1px solid +} +DIV.footer { + FONT-SIZE: 80%; MARGIN: 10px 0px 20px; TEXT-ALIGN: center +} +DIV.plash { + WIDTH: 100%; BACKGROUND-COLOR: #00468c; TEXT-ALIGN: center +} +DIV.cor { + BACKGROUND-IMAGE: url(http://img.mail.ru/mail/ru/images/agent/1.gif); WIDTH: 100%; BACKGROUND-REPEAT: no-repeat; HEIGHT: 1px; BACKGROUND-COLOR: #d9d9d9; TEXT-ALIGN: right +} +DIV.plash DIV.cor { + BACKGROUND-COLOR: #00468c +} +TD.bg1 DIV.cor { + BACKGROUND-COLOR: #00468c +} +TD.header DIV.cor { + BACKGROUND-COLOR: #00468c +} +DIV.cmnt2 { + MARGIN-TOP: 7px; FONT-SIZE: 70%; MARGIN-BOTTOM: 12px; COLOR: #616161 +} +UNKNOWN { + MARGIN-BOTTOM: 10px +} +UNKNOWN { + MARGIN: 0px +} +TD.header { + BACKGROUND-COLOR: #00468c +} +TD.header TD.text { + PADDING-RIGHT: 15px; PADDING-LEFT: 0px; FONT-SIZE: 70%; PADDING-BOTTOM: 0px; COLOR: white; PADDING-TOP: 1px; FONT-FAMILY: Tahoma +} +.kill { + TEXT-DECORATION: line-through +} +.warn { + BORDER-RIGHT: #ff0000 2px solid; PADDING-RIGHT: 3px; BORDER-TOP: #ff0000 1px solid; PADDING-LEFT: 3px; PADDING-BOTTOM: 3px; BORDER-LEFT: #ff0000 2px solid; PADDING-TOP: 3px; BORDER-BOTTOM: #ff0000 1px solid +} +.knopi { + PADDING-RIGHT: 10px; PADDING-LEFT: 10px; FONT-WEIGHT: bold; FONT-SIZE: 12px; PADDING-BOTTOM: 0px; COLOR: white; PADDING-TOP: 0px; FONT-FAMILY: Arial,Sans-Serif; TEXT-DECORATION: none +} +TD.fail { + BACKGROUND-POSITION: left bottom; BACKGROUND-IMAGE: url(http://img.mail.ru/mail/ru/images/agent/point1.gif); BACKGROUND-REPEAT: repeat-x +} +TD.fail1 { + BACKGROUND-POSITION: left bottom; BACKGROUND-IMAGE: url(http://img.mail.ru/mail/ru/images/agent/point1.gif); BACKGROUND-REPEAT: repeat-x; TEXT-ALIGN: right +} +TD.fail B { + PADDING-RIGHT: 2px; FONT-WEIGHT: normal; BACKGROUND-COLOR: #fff3de +} +TD.fail1 B { + PADDING-RIGHT: 5px; PADDING-LEFT: 3px; FONT-WEIGHT: normal; PADDING-BOTTOM: 0px; COLOR: #676a73; PADDING-TOP: 0px; BACKGROUND-COLOR: #fff3de +} +DIV.gr_line { + BACKGROUND-COLOR: #dadce5 +} +TABLE.stat { + PADDING-RIGHT: 10px; MARGIN-BOTTOM: 20px; BACKGROUND-COLOR: #ffffff; TEXT-ALIGN: left +} +TABLE.stat TR TD { + PADDING-RIGHT: 10px; PADDING-LEFT: 10px; FONT-SIZE: 75%; PADDING-BOTTOM: 5px; PADDING-TOP: 5px; FONT-FAMILY: arial +} +TABLE.stat TR.head TD { + PADDING-RIGHT: 10px; PADDING-LEFT: 10px; FONT-SIZE: 70%; PADDING-BOTTOM: 0px; PADDING-TOP: 3px; FONT-FAMILY: tahoma; BACKGROUND-COLOR: #e6e8ed +} +TABLE.stat TR TD.iskl { + PADDING-RIGHT: 0px; PADDING-LEFT: 4px +} +TABLE.stat TR.head TD A { + COLOR: #393b40 +} +TABLE.stat TR.head TD A:hover { + COLOR: #000000 +} +TR.head TD { + BORDER-BOTTOM: #e6e8ed 3px solid +} +TR.head TD.nizh { + COLOR: #000000; PADDING-TOP: 5px; BORDER-BOTTOM: #acafbf 3px solid +} +TABLE.stat TR.last_tr TD { + PADDING-RIGHT: 0px; BORDER-TOP: #dadde5 3px solid; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; PADDING-TOP: 0px +} +TR.weekend TD { + BACKGROUND-COLOR: #fffbed +} +TR.forced TD { + FONT-WEIGHT: bold +} +TR.or_vid TD { + BACKGROUND-COLOR: #fff7e5 +} +TR.st_vid TD { + BACKGROUND-COLOR: #ffffff +} +TR.cherez TD { + BACKGROUND-COLOR: #f5f5f2 +} +TABLE.frame TD.cont UL.mmenu { + FONT-SIZE: 80% +} +TABLE.frame TD.cont UL.mmenu LI { + MARGIN-BOTTOM: 4px; COLOR: #dbe0e6 +} +TABLE.frame TD.cont UL.mmenu LI .speak { + COLOR: #0857a6 +} +TABLE.frame TD.cont UL.mmenu LI.ai { + COLOR: #000000 +} +TABLE.frame TD.cont UL.mmenu LI UL.smenu { + FONT-SIZE: 85%; MARGIN-BOTTOM: 6px +} +TABLE.frame TD.cont UL.mmenu LI UL.smenu LI { + MARGIN-TOP: 4px; COLOR: #dbe0e6 +} +TABLE.frame TD.cont UL.mmenu LI UL.smenu LI.ai { + COLOR: #000000 +} +TABLE.talkme TD { + PADDING-RIGHT: 5px; PADDING-LEFT: 0px; FONT-SIZE: 70%; PADDING-BOTTOM: 4px; PADDING-TOP: 0px +} +TABLE.talkme TD IMG.avat { + BORDER-RIGHT: #d9d9d9 1px solid; BORDER-TOP: #d9d9d9 1px solid; MARGIN-BOTTOM: 5px; BORDER-LEFT: #d9d9d9 1px solid; BORDER-BOTTOM: #d9d9d9 1px solid +} +TABLE.talkme TD.all { + PADDING-BOTTOM: 13px +} +TABLE.talkme TD.all A { + COLOR: #696973; TEXT-DECORATION: underline +} +TABLE.frame TD.contfr { + BORDER-RIGHT: #d9d9d9 1px solid; PADDING-RIGHT: 60px; PADDING-LEFT: 14px; BACKGROUND: url(http://img.mail.ru/mail/ru/images/agent/friend.jpg) no-repeat right bottom; PADDING-BOTTOM: 8px; MARGIN: 0px; BORDER-LEFT: #d9d9d9 1px solid; PADDING-TOP: 8px +} +TABLE.frame TD.contfr TD { + PADDING-RIGHT: 3px; PADDING-LEFT: 0px; FONT-SIZE: 70%; PADDING-BOTTOM: 0px; COLOR: #646b75; PADDING-TOP: 3px +} +TABLE.frame TD.contfr TD SPAN { + FONT-SIZE: 90% +} +TABLE.frame TD.contfr TD A { + TEXT-DECORATION: none +} +TABLE.frame TD.contfr TD.all { + PADDING-BOTTOM: 13px +} +TABLE.frame TD.contfr TD.all A { + COLOR: #696973; TEXT-DECORATION: underline +} +TABLE.frame TD H2 { + MARGIN-BOTTOM: 10px +} +.pbgla { + BACKGROUND: url(http://img.mail.ru/mail/ru/images/agent/pbg_l1.gif) no-repeat center bottom +} +.pbglba { + BACKGROUND: url(http://img.mail.ru/mail/ru/images/agent/pbg_l2-1.gif) no-repeat left top +} +.pbglbb { + BACKGROUND: url(http://img.mail.ru/mail/ru/images/agent/pbg_l2-2.gif) no-repeat right top +} +TABLE.top_menu { + MARGIN-BOTTOM: 7px +} +TABLE.top_menu TD { + PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 80%; PADDING-BOTTOM: 4px; PADDING-TOP: 2px +} +TABLE.top_menu TD.bord_b { + PADDING-RIGHT: 0px; BACKGROUND-POSITION: right top; PADDING-LEFT: 0px; BACKGROUND-IMAGE: url(http://img.mail.ru/1.gif); PADDING-BOTTOM: 0px; PADDING-TOP: 0px; BACKGROUND-REPEAT: no-repeat; HEIGHT: 1px; BACKGROUND-COLOR: #c2c3cc +} +TABLE.top_menu TD.bord_l { + BORDER-LEFT: #c2c3cc 1px solid +} +TABLE.top_menu TD.bord_r { + BORDER-RIGHT: #c2c3cc 1px solid +} diff --git a/protocols/MRA/Docs/Mail.ru Agent.files/love-all.gif b/protocols/MRA/Docs/Mail.ru Agent.files/love-all.gif new file mode 100644 index 0000000000..c53ccf002a Binary files /dev/null and b/protocols/MRA/Docs/Mail.ru Agent.files/love-all.gif differ diff --git a/protocols/MRA/Docs/Mail.ru Agent.files/molotok-all.gif b/protocols/MRA/Docs/Mail.ru Agent.files/molotok-all.gif new file mode 100644 index 0000000000..8182aba798 Binary files /dev/null and b/protocols/MRA/Docs/Mail.ru Agent.files/molotok-all.gif differ diff --git a/protocols/MRA/Docs/Mail.ru Agent.files/proto.css b/protocols/MRA/Docs/Mail.ru Agent.files/proto.css new file mode 100644 index 0000000000..f471cb4516 --- /dev/null +++ b/protocols/MRA/Docs/Mail.ru Agent.files/proto.css @@ -0,0 +1,39 @@ +TD.text .blue { + COLOR: #003073 +} +TD.text CODE { + MARGIN: 0px 3px; COLOR: #333333 +} +TD.text SPAN.c { + FONT-SIZE: 110%; MARGIN-LEFT: 3px; COLOR: #333333; FONT-STYLE: normal; FONT-FAMILY: Courier New +} +TD.text B { + COLOR: #333333 +} +TD.text PRE { + BORDER-RIGHT: #666666 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #666666 1px solid; PADDING-LEFT: 5px; PADDING-BOTTOM: 5px; BORDER-LEFT: #666666 1px solid; COLOR: #333333; PADDING-TOP: 5px; BORDER-BOTTOM: #666666 1px solid +} +TD.text .pt10 { + PADDING-TOP: 10px +} +TD.text UL.pack LI { + MARGIN-TOP: 12px +} +TD.text UL.pack U { + FONT-SIZE: 100%; TEXT-DECORATION: none +} +TD.text UL.pack P { + FONT-SIZE: 100% +} +TD.text P.pack2 { + LINE-HEIGHT: 1.3em; PADDING-TOP: 4px +} +TD.text P.code { + PADDING-RIGHT: 4px; PADDING-LEFT: 10px; PADDING-BOTTOM: 4px; COLOR: #333333; LINE-HEIGHT: 1.5em; PADDING-TOP: 0px; FONT-FAMILY: Courier New +} +TD.text P.pack2 U { + FONT-SIZE: 90%; COLOR: #666666; TEXT-DECORATION: none +} +TD.text UL.par { + PADDING-RIGHT: 0px; PADDING-LEFT: 35px; PADDING-BOTTOM: 10px; MARGIN-LEFT: 0px; PADDING-TOP: 0px +} diff --git a/protocols/MRA/Docs/Mail.ru Agent.files/tour-all.gif b/protocols/MRA/Docs/Mail.ru Agent.files/tour-all.gif new file mode 100644 index 0000000000..23ae14b79a Binary files /dev/null and b/protocols/MRA/Docs/Mail.ru Agent.files/tour-all.gif differ diff --git a/protocols/MRA/Docs/Mail.ru Agent.htm b/protocols/MRA/Docs/Mail.ru Agent.htm new file mode 100644 index 0000000000..43acddc9dd --- /dev/null +++ b/protocols/MRA/Docs/Mail.ru Agent.htm @@ -0,0 +1,635 @@ + + +Mail.ru Агент + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + +
Поиск ПоискЗнакомства ЗнакомстваОткрытки ОткрыткиЧаты ЧатыРассылки РассылкиМолоток МолотокПутешествия ПутешествияАвто АвтоВсе проекты
+ + + + + + + + + + + + +
[Rambler's Top100]
+ + + + + +
+
+ + + + + +
Агентmail.ru +

загрузить

+

Пользовательское
соглашение


+
+ + + + + +
+ + + + + + + +
+

+

Описание протокола

+

MMP - протокол соединения Mail.Ru Агента с общей сетью Mail.Ru. + Рекомендованный для соединения сервер в любой момент времени можно + получить в текстовом формате ip:port по адресу mrim.mail.ru:443 и mrim.mail.ru:2042. + Взаимодействие с сервером происходит поверх постоянно установленного + tcp-соединения посредством асинхронного обмена командами. Инициатором + установления соединения может быть только клиент, команды могут посылаться + как клиентом, так и сервером.

+

MMP бинарный протокол. Все числовые данные передаются как + четырехбайтные целые НЕ в сетевом формате, т. е. первым идет старший байт, + последним младший. Четырехбайтовые беззнаковые целые обозначаются + UL.

+

Текстовые данные передаются с префексированной длиной, т. е. сначала + UL, а потом строка (в кодировке windows-1251) длины UL без + завершающего нуля. Обозначение в дальнейшем - LPS.

+

Тип данных UIDL используется только при работе с оставленными на + сервере сообщениями. UIDL - последовательность из 8 символов из + множества [a-z A-Z 0-9 _ - = +].

+

Каждая команда или ответ на нее начинаются с заголовка. Поля + указываемые в заголовке: +

    +
  • волшебный ключ, указывающий на то, что это действительно пакет MMP - + версия MMP, поддерживаемая отправителем пакета (текущая версия - 1.7) +
  • номер отправляемой команды в текущем соединении. Ответ на команду + должен иметь тот же номер, что и сама команда. +
  • тип пакета, номер команды и/или ответа +
  • длинна данных пакета (без учета заголовка). При обработке посылаемых + сервером данных длина пакета должна иметь приоритет перед списком его + параметров, т. к. в следующих версиях протокола могут появляться новые + параметры и все они будут дописываться в конец пакета. +
  • порт и ip (в inet_aton() формате) с которых установлено + соединение
+


+

В синтаксисе языка С:

Заголовок пакета
+{
+    u_long	magic;
+    u_long	proto;
+    u_long	seq;
+    u_long	msg;
+    u_long	dlen;
+    u_long	from;
+    u_long	fromport;
+    u_char	reserved[16];
+}
+
+

Вам понадобится заголовочный файл на языке C. Взять его можно здесь.

+

 

+

Последовательность команд

+

После установки tcp-соединения клиент обязан сразу послать MRIM_CS_HELLO, дождаться MRIM_CS_HELLO_ACK, после чего отправить MRIM_CS_LOGIN2 и начать посылать MRIM_CS_PING с установленным в MRIM_CS_HELLO_ACK интервалом. В случае успешной авторизации + дальнейшие пакеты (кроме MRIM_CS_PING) должны + отправляться только в случае пользовательских действий (написания новых + сообщений и т. п.) или ответа на пакеты получаемые от сервера.

+

Типы пакетов

+

Тип пакета: cs - Client -> Server
Тип + пакета: sc - Server -> Client

+

Пакеты

+
    +
  • Пакет: Установка соединения +

    Имя пакета: MRIM_CS_HELLO
    Ответ: MRIM_CS_HELLO_ACK
    Тип пакета: + cs
    Описание: Первый пакет, отправляемый на сервер.

    +
  • Пакет: Подтверждение установки соединения +

    Имя пакета: MRIM_CS_HELLO_ACK
    Тип пакета: + sc
    Параметры:

    +

    UL ## ping_period ## Ожидаемая частота подтверждения + соединения (в секундах)

    +

    Описание: Подтверждает возможность соединения и + сообщает клиенту интервал, с которым надо отправлять пакеты контроля + соединения.

    +
  • Пакет: Успешная авторизация +

    Имя пакета: MRIM_CS_LOGIN_ACK
    Тип пакета: + sc
    Описание: Сообщает, что пара логин-пароль была верна и + клиент успешно авторизовался в сети агента.

    +
  • Пакет: Неверная авторизация +

    Имя пакета: MRIM_CS_LOGIN_REJ
    Тип пакета: + sc
    Параметры:

    +

    LPS ## reason ## причина отказа

    +

    Описание: Сообщает, что пара логин-пароль была + неверна, и соединение будет завершено.

    +
  • Пакет: Контроль соединения +

    Имя пакета: MRIM_CS_PING
    Тип пакета: cs
    Описание: + Отправка этого пакета подтверждает для сервера, что клиент активен. + Пакет должен отправляться с интервалом, определенным в MRIM_CS_HELLO_ACK.

    +
  • Пакет: Сообщение +

    Имя пакета: MRIM_CS_MESSAGE
    Тип пакета: cs
    поле seq + должно содержать номер, который в последствии будет содержаться в + заголовке пакета MRIM_CS_MESSAGE_STATUS, + оповещающем клиента о статусе доставки данного + сообщения.
    Параметры:

    +

    UL ## flags ## флаги ##

    +

    MESSAGE_FLAG_OFFLINE ## + Сообщение пришло, пока клиент был отключен
    MESSAGE_FLAG_NORECV ## + Отправителю сообщения не требуется подтверждения + доставки
    MESSAGE_FLAG_AUTHORIZE ## Сообщение является запросом на + авторизацию
    MESSAGE_FLAG_SYSTEM ## Сообщение является системным + уведомлением администрации
    MESSAGE_FLAG_RTF ## В сообщении содержится + форматированная часть
    MESSAGE_FLAG_CONTACT ## Сообщение представляет + из себя пересланный список контактов. Текст сообщения в этом случае + должен представлять из себя список адресов и ников пересылаемых + контактов, перечисленных через точку с запятой. + <адрес1>;<ник1>;<адрес2>;<ник2>;<адрес3>;<ник3>;...
    MESSAGE_FLAG_NOTIFY + ## Это сообщение-уведомление "Вам пишут". Должно посылаться каждые 10 + секунд, при более длинной паузе клиент-получатель должен считать, что + отправитель прекратил написание. Текст такого сообщения должен состоять + из одного пробела.
    MESSAGE_FLAG_MULTICAST ## Сообщение направлено + списку получателей, а не одному. Поле to в таком случае состоит из + списка получателей, перечисленных через запятую. Максимальная длина + списка - 50 адресов.

    +

    LPS ## to ## email получателя
    LPS ## message ## + текстовая версия отправляемого сообщения
    LPS ## rtf-message ## + отформатированная версия отправляемого сообщения, в случае наличия обоих + версий сообщения приоритет имеет rtf-версия. Она должна содержать + rtf-текст упакованный gzip в base64 представлении. То есть:

    BASE64(
    +  		GZIP(
    +  			UL количество LPS (должно быть не менее 2)
    +  			LPS rtf_text_with_all_rtf_headers_and_tags
    +  			LPS цвет фона в виде UL
    + 			 )
    + 		 )
    +					
    +

    +

    Описание: Основной пакет взаимодействия между + двумя клиентами. Может быть отправлено в любой момент по инициативе + клиента. Ни текстовая, ни rtf части сообщений не могут быть пустыми, при + необходимости следует использовать строку из одного пробела.

    +
  • Пакет: Доставка сообщения +

    Имя пакета: MRIM_CS_MESSAGE_ACK
    Тип пакета: + sc
    Параметры:

    +

    UL ## msg_id ## Номер пакета (Sequence) этого сообщения + для отправителя
    UL ## flags ## Возможные значения описаны в + MRIM_CS_MESSAGE
    LPS ## from ## Адрес отправителя
    LPS ## message ## + текстовая версия сообщения
    LPS ## rtf-message ## форматированная + версия сообщения

    +

    Описание:

    +
  • Пакет: Подтверждение получения сообщения +

    Имя пакета: MRIM_CS_MESSAGE_RECV
    Тип пакета: + cs
    Параметры:

    +

    LPS ## from ##
    UL ## msg_id ##

    +

    Описание: Отправляется получателем сообщения сразу + после прихода MRIM_CS_MESSAGE_ACK, если флаги MRIM_CS_MESSAGE_ACK не содержали MESSAGE_FLAG_NORECV. from и msg_id должны быть скопированы из MRIM_CS_MESSAGE_ACK и имеют то же значение.

    +
  • Пакет: Подтверждение доставки сообщения +

    Имя пакета: MRIM_CS_MESSAGE_STATUS
    Тип пакета: sc
    Поле + seq численно равно полю seq пакета MRIM_CS_MESSAGE
    Параметры:

    +

    UL ## status ## статус доставки ##

    +

    MESSAGE_DELIVERED ## Сообщение + успешно доставлено
    MESSAGE_REJECTED_INTERR ## Произошла внутренняя + ошибка
    MESSAGE_REJECTED_NOUSER ## Не существует + пользователя-получателя сообщения
    MESSAGE_REJECTED_LIMIT_EXCEEDED ## + Пользователь-получатель в данный момент отключен от сети, и сообщение не + помещается в его почтовый ящик
    MESSAGE_REJECTED_TOO_LARGE ## Размер + сообщения превышает максимально + допустимый
    MESSAGE_REJECTED_DENY_OFFMSG ## Пользователь-получатель в + данный момент отключен от сети, а настройки его почтового ящика не + допускают наличие оффлайновых сообщений агента

    +

    Описание: Отправленное сообщение считается + доставленным только после получения этого ответа сервера. Сервер НЕ + ГАРАНТИРУЕТ доставку сообщения. В случае отстутствия MRIM_CS_MESSAGE_STATUS более интервала подтверждения + соединения, программа клиент должна послать сообщение повторно или + проинформировать пользователя о невозможности доставки из-за проблем + связи получателя.

    +
  • Пакет: Смена статуса другого пользователя +

    Имя пакета: MRIM_CS_USER_STATUS
    Тип пакета: + sc
    Параметры:

    +

    UL ## status ## новый статус пользователя ##

    +

    STATUS_OFFLINE ## Пользователь + отключен от сети Агента
    STATUS_ONLINE ## Пользователь находится в + сети
    STATUS_AWAY ## Пользователь в сети, но отошел от + компьютера
    STATUS_UNDETERMINATED ## Настройки пользователя запрещают + показывать его статус
    STATUS_FLAG_INVISIBLE ## Пользователь находится + в сети, но невидим для всех, кроме привилегированных пользователей из + его списка видимости.

    LPS ## user ## email сменившего свой статус + пользователя +

    +

    Описание: Это сообщение отправляется сервером при + смене статуса пользователям всем тем, у кого он находится в + контакт-листе (за исключением группы "Жду Авторизации" и тех, кого он + включил в список игнорируемых или невидящих). Данное сообщение может + быть доставлено клиенту ДО получения им контакт-листа. В такой ситуации + оно должно игнорироваться.

    +
  • Пакет: Закрытие соединения +

    Имя пакета: MRIM_CS_LOGOUT
    Тип пакета: + sc
    Параметры:

    +

    UL ## reason ## причина отключения ##

    +

    LOGOUT_NO_RELOGIN_FLAG ## + Пользователь отключен из-за параллельного входа с его логином. Клиент не + должен осуществлять автоматический перезаход в этом случае.

    +
  • Пакет: Изменение параметров соединения +

    Имя пакета: MRIM_CS_CONNECTION_PARAM
    Тип пакета: + sc
    Параметры:

    +

    UL ## ping_period ## новая ожидаемая частота подтверждения + соединения

    +

    Описание: Ближайший MRIM_CS_PING следует отправлять уже исходя из новой + частоты.

    +
  • Пакет: Добавление нового контакта +

    Имя пакета: MRIM_CS_ADD_CONTACT
    Тип пакета: + cs
    Параметры:

    +

    UL ## flags ## флаги ##

    +

    CONTACT_FLAG_GROUP ## + Добавляется новая группа, а не контакт (несовместим с остальными). + Верхний байт содержит количество уже имеющихся групп в + контакт-листе
    CONTACT_FLAG_INVISIBLE ## Контакт должен попасть в + список "Я всегда невидим для"
    CONTACT_FLAG_VISIBLE ## Контакт должен + попасть в список "Я всегда видим для"
    CONTACT_FLAG_IGNORE ## Контакт + должен попасть в список игнорируемых
    CONTACT_FLAG_SHADOW ## Контакт + не должен попасть в основной контакт-лист (применяется в паре с одним из + трех предыдущих)
    CONTACT_FLAG_REMOVED ## Контакт удален

    +

    UL ## group_id ## группа, в которую должен быть добавлен + контакт (для CONTACT_FLAG_GROUP равно 0)
    LPS ## email ## добавляемый + адрес (имя группы для CONTACT_FLAG_GROUP)
    LPS ## name ## ник + добавляемого пользователя (для отображения в контакт-листе, не + посылается для CONTACT_FLAG_GROUP) LPS ## unused ## неиспользуемый + параметр

    +
  • Пакет: Подтверждение добавления контакта +

    Имя пакета: MRIM_CS_ADD_CONTACT_ACK
    Тип пакета: + sc
    Параметры:

    +

    UL ## status ## результат операции ##

    +

    CONTACT_OPER_SUCCESS ## + добавление произведено успешно
    CONTACT_OPER_ERROR ## переданные + данные были некорректны
    CONTACT_OPER_INTERR ## при обработке запроса + произошла внутренняя ошибка
    CONTACT_OPER_NO_SUCH_USER ## добавляемого + пользователя не существует в системе
    CONTACT_OPER_INVALID_INFO ## + некорректное имя пользователя
    CONTACT_OPER_USER_EXISTS ## + пользователь уже есть в контакт-листе
    CONTACT_OPER_GROUP_LIMIT ## + превышено максимально допустимое количество групп (20)

    +

    ## UL ## contact_id ## присвоенный новому контакту + номер

    +

    Описание: Приходит в ответ на MRIM_CS_ADD_CONTACT. -1 если status + не равен CONTACT_OPER_SUCCESS.

    +
  • Пакет: Изменение контакта +

    Имя пакета: MRIM_CS_MODIFY_CONTACT
    Тип пакета: + cs
    Параметры:

    +

    UL ## id ## номер модифицируемого контакта
    UL ## flags + ##
    UL ## group_id ## Равно 0 для группы
    LPS ## contact ## Если + группа, то имя группы
    LPS ## name ## Если группа, то имя группы

    +

    Описание: Параметры те же, что и у MRIM_CS_ADD_CONTACT. contact до и + после изменения обязаны совпадать.

    +
  • Пакет: Подтверждение изменения контакта +

    Имя пакета: MRIM_CS_MODIFY_CONTACT_ACK
    Тип пакета: + sc
    Параметры:

    +

    UL ## status ## Результат операции. Значения имеют тот же + смысл, что и в MRIM_CS_ADD_CONTACT_ACK

    +
  • Пакет: Сообщение доставленное, пока пользователь не был + подключен к сети +

    Имя пакета: MRIM_CS_OFFLINE_MESSAGE_ACK
    Тип пакета: + sc
    Параметры:

    +

    UIDL ## uidl ## id сообщения
    LPS ## message ## + сообщение. Сообщение приходит в формате RFC/822 письма. Отправитель + сообщения хранится в заголовке From, дата в заголовке Date, флаги + сообщения в X-MRIM-FLAGS, текстовая и форматированная версии сообщения + составляют текст письма и разделяются между собой разделителем из + заголовка Boundary.

    +

    Описание: Каждое полученное за время отсутствия + сообщение приходит отдельным пакетом в том порядке, в каком они + поступали на сервер.

    +
  • Пакет: Удаление сохраненного сообщения +

    Имя пакета: MRIM_CS_OFFLINE_MESSAGE_DEL
    Тип пакета: + cs
    Параметры:

    +

    UIDL ## uidl

    +

    Описание: На каждый полученный MRIM_CS_OFFLINE_MESSAGE_ACK клиент обязан отправить MRIM_CS_OFFLINE_MESSAGE_DEL с тем же uidl, подтверждающий получение данного сообщения. + Сообщение стирается на сервере только при получении этой команды.

    +
  • Пакет: Авторизация пользователя на добавление в + контакт-лист +

    Имя пакета: MRIM_CS_AUTHORIZE
    Тип пакета: + cs
    Параметры:

    +

    LPS ## user ## email пользователя

    +

    Описание: Отправляется, чтобы разрешить user добавление пользователя в контакт-лист и наблюдение + за его статусом.

    +
  • Пакет: Информация об авторизации +

    Имя пакета: MRIM_CS_AUTHORIZE_ACK
    Тип пакета: + sc
    Параметры:

    +

    LPS ## user ## email авторизовавшего пользователя

    +

    Описание: Отсылается сервером после получением им + MRIM_CS_AUTHORIZE от user + тому, кого user авторизовал.

    +
  • Пакет: Изменение статуса +

    Имя пакета: MRIM_CS_CHANGE_STATUS
    Тип пакета: + cs
    Параметры:

    +

    UL ## status ## возможные значения совпадают с + MRIM_CS_USER_STATUS, но не могут посылаться статусы + STATUS_UNDETERMINATED и STATUS_OFFLINE

    +
  • Пакет: Требование ключа для web-авторизации +

    Имя пакета: MRIM_CS_GET_MPOP_SESSION
    Тип пакета: + cs
    Описание: Пользователь агента может заходить в почтовый + ящик Mail.Ru без дополнительной авторизации и не передавая свой пароль в + GET-запросе, для этого используется механизм ключей.

    +
  • Пакет: Ключ для web-авторизации +

    Имя пакета: MRIM_CS_GET_MPOP_SESSION_ACK
    Тип пакета: + sc
    Параметры:

    +

    UL ## status ## успешность операции (1 - ключ получен, 0 - + произошла ошибка)
    LPS ## session ## сам ключ

    +

    Описание: Для входа в ящик можно использовать URL + win.mail.ru/cgi-bin/auth?Login=email&agent=ключ.

    +
  • Пакет: Поиск контакта +

    Имя пакета: MRIM_CS_WP_REQUEST
    Тип пакета: + cs
    Параметры:

    +

    UL ## field ## параметр поиска ##

    +

    MRIM_CS_WP_REQUEST_PARAM_USER ## + логин (без домена), обязан комбинироваться с + доменом
    MRIM_CS_WP_REQUEST_PARAM_DOMAIN ## почтовый + домен
    MRIM_CS_WP_REQUEST_PARAM_NICKNAME ## + ник
    MRIM_CS_WP_REQUEST_PARAM_FIRSTNAME ## имя +
    MRIM_CS_WP_REQUEST_PARAM_LASTNAME ## фамилия, * в конце + ника/имени/фамилии указывает на возможность любого продолжения + имени
    MRIM_CS_WP_REQUEST_PARAM_SEX ## пол. 1 - мужской, 2 - + женский
    MRIM_CS_WP_REQUEST_PARAM_DATE1 ## минимальный возраст (в + годах)
    MRIM_CS_WP_REQUEST_PARAM_DATE2 ## максимальный возраст (в + годах)
    MRIM_CS_WP_REQUEST_PARAM_CITY_ID ## ID региона проживания +
    MRIM_CS_WP_REQUEST_PARAM_ZODIAC ## Знак зодиака (Овен - 1, ..., Рыбы + - 12)
    MRIM_CS_WP_REQUEST_PARAM_BIRTHDAY_MONTH ## Месяц рождения + (Январь - 1, ..., Декабрь - 12)
    MRIM_CS_WP_REQUEST_PARAM_BIRTHDAY_DAY + ## День рождения (обязан комбинироваться с месяцем + рождения)
    MRIM_CS_WP_REQUEST_PARAM_COUNTRY_ID ## ID страны + проживания
    MRIM_CS_WP_REQUEST_PARAM_ONLINE ## ищем ли мы только + подключенных в данный момент пользователей (1)

    +

    LPS ## value все параметры в строковом формате, включая + числа

    +

    Описание: Поиск контактов в базе агента. Параметры + поиска передаются парами параметр-значение. Передача нескольких + параметров имеет семантику "и", т. е. все найденные результаты должны + соответствовать всем переданным параметрам. Комбинироваться могут все + параметры за исключением логина и домена (они обязаны идти парой и не + могут комбинироваться с другими параметрами) в порядке соответствующем + порядку описания (за исключением требования для MRIM_CS_WP_REQUEST_PARAM_ONLINE быть последним в списке). +

    +
  • Пакет: Найденные пользователи +

    Имя пакета: MRIM_CS_ANKETA_INFO
    Тип пакета: + cs
    Параметры:

    +

    UL ## status ## успешность запроса ##

    +

    MRIM_ANKETA_INFO_STATUS_OK ## + поиск успешно завершен
    MRIM_ANKETA_INFO_STATUS_NOUSER ## не найдено + ни одной подходящей записи
    MRIM_ANKETA_INFO_STATUS_RATELIMERR ## + слишком много запросов, поиск временно запрещен

    +

    UL ## fields_num ## количество полей в анкете каждого + пользователя
    UL ## max_rows ## текущее ограничение на количество + результатов поиска (может быть больше, чем количество строк в данном + ответе)
    UL ## server_time ## текущее время на сервере (должно + использоваться для вычисления возраста). Формат времени: Количество + секунд с 00:00:00 1 января 1970 года.
    LPS, LPS, ... ## fields ## + названия полей текущей анкеты (всего fields_num штук)
    LPS, LPS, ... + ## values ## значения полей анкеты для каждого найденного по запросу + пользователя в том же порядке, что в списке полей, по fields_num штук на + каждого

    +

    Описание: Результат поиска контактов. Возвращает + анкеты найденных пользователей (их адреса являются полями анкеты).

    +
  • Пакет: Количество писем в почтовом ящике +

    Имя пакета: MRIM_CS_MAILBOX_STATUS
    Тип пакета: + sc
    Параметры:

    +

    UL ## status ## количество непрочитанных писем

    +

    Описание: Приходит при получении новой почты или + любом другом изменении числа непрочитанных писем в ящике.

    +
  • Пакет: Контакт-лист +

    Имя пакета: MRIM_CS_CONTACT_LIST2
    Тип пакета: + sc
    Параметры:

    +

    UL ## status ## результат запроса контакт-листа

    +

    GET_CONTACTS_OK ## поиск + выполнен успешно
    GET_CONTACTS_ERROR ## найденный контакт-лист + некорректен
    GET_CONTACTS_INTERR ## произошла внутренняя ошибка

    +

    UL ## groups_number ## количество групп в + контакт-листе
    LPS ## group_mask ## маска-описание группы, состоит из + символов 's' (LPS),'u' (UL),'z' (строка оканчивающаяся бинарным нулем, в + данный момент не используется), сейчас "us" - флаги и название, при + расширении описания старые поля сохранят свое расположение
    LPS ## + contacts_mask ## маска-описание пользователя (синтаксис такой же как и у + group_mask), сейчас uussuu (флаги, группа, адрес, ник, серверные флаги, + текущий статус в сети)
    ## groups ## группы (всего groups_number + штук)
    ## contacts ## контакты

    +

    Описание: Контакт-лист пользователя хранится на + сервере. Клиент может хранить локальную копию контакт-листа, но + серверная должна иметь приоритет. Флаги контакта имеют тот же смысл, что + в MRIM_CS_ADD_CONTACT, статус - тот же смысл, что в + MRIM_CS_USER_STATUS. Серверный флаг в данный момент + определён один - CONTACT_INTFLAG_NOT_AUTHORIZED + означает, что контакт еще не авторизовал пользователя и находится в + группе "Жду авторизации". Если маска контакта или группы содержит больше + символов, чем необходимо, клиент должен прочитать значения этих полей и + проигнорировать их.

    +
  • Пакет: Авторизация +

    Имя пакета: MRIM_CS_LOGIN2
    Тип пакета: + cs
    Параметры:

    +

    LPS ## login ## email авторизующегося пользователя
    LPS + ## password ## пароль
    UL ## status ## статус (см. + MRIM_CS_CHANGE_STATUS)
    LPS ## user_agent ## текстовое описание + клиента пользователя, например "Mail.Ru Miranda Plugin v + 1.0"


+ + + +
+

+ + diff --git "a/protocols/MRA/Docs/Mail_ru \320\220\320\263\320\265\320\275\321\202.files/0.gif" "b/protocols/MRA/Docs/Mail_ru \320\220\320\263\320\265\320\275\321\202.files/0.gif" deleted file mode 100644 index 427c96bdb9..0000000000 Binary files "a/protocols/MRA/Docs/Mail_ru \320\220\320\263\320\265\320\275\321\202.files/0.gif" and /dev/null differ diff --git "a/protocols/MRA/Docs/Mail_ru \320\220\320\263\320\265\320\275\321\202.files/1.gif" "b/protocols/MRA/Docs/Mail_ru \320\220\320\263\320\265\320\275\321\202.files/1.gif" deleted file mode 100644 index 1d0c3f9a96..0000000000 Binary files "a/protocols/MRA/Docs/Mail_ru \320\220\320\263\320\265\320\275\321\202.files/1.gif" and /dev/null differ diff --git "a/protocols/MRA/Docs/Mail_ru \320\220\320\263\320\265\320\275\321\202.files/WindowOpen.js" "b/protocols/MRA/Docs/Mail_ru \320\220\320\263\320\265\320\275\321\202.files/WindowOpen.js" deleted file mode 100644 index e5f140e382..0000000000 --- "a/protocols/MRA/Docs/Mail_ru \320\220\320\263\320\265\320\275\321\202.files/WindowOpen.js" +++ /dev/null @@ -1,44 +0,0 @@ -// -// Proxomitron Anti-popup code -// - -var PrxLC=new Date(0); -var PrxModAtr=0; -var PrxLd=1; -var PrxInst; if(!PrxInst++) PrxRealOpen=window.open; - -function PrxOMUp(){PrxLC=new Date();} -function PrxNW(){return(this.window);} -function PrxOpen(url,nam,atr){ - if(PrxLC){ - var cdt=new Date(); - cdt.setTime(cdt.getTime()-PrxLC.getTime()); - if(!PrxLd && cdt.getSeconds()<2){ - if(atr){ return(PrxRealOpen(url,nam,PrxWOA(atr))); } - else{ return(PrxRealOpen(url,nam)); } - } - } - return(new PrxNW()); -} - -function PrxWOA(atr){ - var xatr="location=yes,status=yes,resizable=yes,toolbar=yes,scrollbars=yes"; - if(!PrxModAtr) return(atr); - if(atr){ - var hm; - hm=atr.match(/height\=[0-9]+/i); - if(hm) xatr+="," + hm; - hm=atr.match(/width\=[0-9]+/i); - if(hm) xatr+="," + hm; - } - return(xatr); -} - -function PrxRST(){ - if(document.layers){document.captureEvents(Event.MOUSEUP);} - document.onmouseup=PrxOMUp; - PrxLd=0; -} - -window.open=PrxOpen; -submit=PrxOpen; \ No newline at end of file diff --git "a/protocols/MRA/Docs/Mail_ru \320\220\320\263\320\265\320\275\321\202.files/_mail.gif" "b/protocols/MRA/Docs/Mail_ru \320\220\320\263\320\265\320\275\321\202.files/_mail.gif" deleted file mode 100644 index c86e89de3a..0000000000 Binary files "a/protocols/MRA/Docs/Mail_ru \320\220\320\263\320\265\320\275\321\202.files/_mail.gif" and /dev/null differ diff --git "a/protocols/MRA/Docs/Mail_ru \320\220\320\263\320\265\320\275\321\202.files/agentlogo.gif" "b/protocols/MRA/Docs/Mail_ru \320\220\320\263\320\265\320\275\321\202.files/agentlogo.gif" deleted file mode 100644 index 5ce7a199a3..0000000000 Binary files "a/protocols/MRA/Docs/Mail_ru \320\220\320\263\320\265\320\275\321\202.files/agentlogo.gif" and /dev/null differ diff --git "a/protocols/MRA/Docs/Mail_ru \320\220\320\263\320\265\320\275\321\202.files/cards-all.gif" "b/protocols/MRA/Docs/Mail_ru \320\220\320\263\320\265\320\275\321\202.files/cards-all.gif" deleted file mode 100644 index 2ea481c9d4..0000000000 Binary files "a/protocols/MRA/Docs/Mail_ru \320\220\320\263\320\265\320\275\321\202.files/cards-all.gif" and /dev/null differ diff --git "a/protocols/MRA/Docs/Mail_ru \320\220\320\263\320\265\320\275\321\202.files/cars-all.gif" "b/protocols/MRA/Docs/Mail_ru \320\220\320\263\320\265\320\275\321\202.files/cars-all.gif" deleted file mode 100644 index 908409dbd4..0000000000 Binary files "a/protocols/MRA/Docs/Mail_ru \320\220\320\263\320\265\320\275\321\202.files/cars-all.gif" and /dev/null differ diff --git "a/protocols/MRA/Docs/Mail_ru \320\220\320\263\320\265\320\275\321\202.files/chat-all.gif" "b/protocols/MRA/Docs/Mail_ru \320\220\320\263\320\265\320\275\321\202.files/chat-all.gif" deleted file mode 100644 index 438ee19590..0000000000 Binary files "a/protocols/MRA/Docs/Mail_ru \320\220\320\263\320\265\320\275\321\202.files/chat-all.gif" and /dev/null differ diff --git "a/protocols/MRA/Docs/Mail_ru \320\220\320\263\320\265\320\275\321\202.files/content-all.gif" "b/protocols/MRA/Docs/Mail_ru \320\220\320\263\320\265\320\275\321\202.files/content-all.gif" deleted file mode 100644 index 72bc124872..0000000000 Binary files "a/protocols/MRA/Docs/Mail_ru \320\220\320\263\320\265\320\275\321\202.files/content-all.gif" and /dev/null differ diff --git "a/protocols/MRA/Docs/Mail_ru \320\220\320\263\320\265\320\275\321\202.files/go-all.gif" "b/protocols/MRA/Docs/Mail_ru \320\220\320\263\320\265\320\275\321\202.files/go-all.gif" deleted file mode 100644 index e6ae399e38..0000000000 Binary files "a/protocols/MRA/Docs/Mail_ru \320\220\320\263\320\265\320\275\321\202.files/go-all.gif" and /dev/null differ diff --git "a/protocols/MRA/Docs/Mail_ru \320\220\320\263\320\265\320\275\321\202.files/index.css" "b/protocols/MRA/Docs/Mail_ru \320\220\320\263\320\265\320\275\321\202.files/index.css" deleted file mode 100644 index 7842a50367..0000000000 --- "a/protocols/MRA/Docs/Mail_ru \320\220\320\263\320\265\320\275\321\202.files/index.css" +++ /dev/null @@ -1,501 +0,0 @@ -A.ag { - COLOR: black; FONT-FAMILY: Arial,Sans-Serif; TEXT-DECORATION: underline -} -P.sog { - PADDING-RIGHT: 25px; PADDING-LEFT: 20px; FONT-SIZE: 65%; PADDING-BOTTOM: 0px; PADDING-TOP: 3px -} -P.sog A { - COLOR: white; FONT-FAMILY: Arial,Sans-Serif -} -P.sog A:hover { - COLOR: #cce8ff -} -A.font { - FONT-SIZE: 70%; COLOR: black; TEXT-DECORATION: none -} -A.ag:hover { - TEXT-DECORATION: none -} -.ag { - FONT-WEIGHT: normal; PADDING-BOTTOM: 5px; COLOR: black; FONT-FAMILY: Arial,Sans-Serif -} -A.quest { - DISPLAY: block; FONT-SIZE: 90%; MARGIN: 3px 0px 0px -} -.dmar { - PADDING-RIGHT: 170px; FONT-SIZE: 75%; MARGIN: 10px 0px 0px 5px -} -.mar { - MARGIN-TOP: 10px; FONT-SIZE: 75% -} -.yas { - FONT-SIZE: 70%; MARGIN: 0px 0px 15px; COLOR: #676a71 -} -.yas A { - COLOR: #0956a6; TEXT-DECORATION: none -} -.m { - FONT-SIZE: 70%; MARGIN: 0px 0px 0px 10px -} -UL.dpic { - PADDING-RIGHT: 260px; PADDING-LEFT: 10px; FONT-SIZE: 75% -} -UL.pic { - PADDING-LEFT: 10px; FONT-SIZE: 75%; MARGIN-BOTTOM: 15px -} -UL.pic LI.p1 { - PADDING-RIGHT: 0px; PADDING-LEFT: 10px; LIST-STYLE-IMAGE: url(http://img.mail.ru/mail/ru/images/agent/ima1.gif); PADDING-BOTTOM: 2px; PADDING-TOP: 0px -} -UL.pic LI.p2 { - PADDING-RIGHT: 0px; PADDING-LEFT: 10px; LIST-STYLE-IMAGE: url(http://img.mail.ru/mail/ru/images/agent/ima2.gif); PADDING-BOTTOM: 2px; PADDING-TOP: 0px -} -UL.pic LI.p3 { - PADDING-RIGHT: 0px; PADDING-LEFT: 10px; LIST-STYLE-IMAGE: url(http://img.mail.ru/mail/ru/images/agent/ima3.gif); PADDING-BOTTOM: 2px; PADDING-TOP: 0px -} -SPAN.or { - COLOR: #f26d00 -} -UL { - PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px 0px 0px 17px; PADDING-TOP: 0px -} -LI { - PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 3px 0px 0px; LINE-HEIGHT: 120%; PADDING-TOP: 0px -} -.bottom { - PADDING-RIGHT: 0px; PADDING-LEFT: 5px; FLOAT: left; PADDING-BOTTOM: 1px; MARGIN: 0px; PADDING-TOP: 0px -} -.right { - PADDING-RIGHT: 20px; FLOAT: right -} -.img { - PADDING-RIGHT: 320px; BACKGROUND-POSITION: left center; PADDING-LEFT: 40px; FONT-SIZE: 75%; BACKGROUND-IMAGE: url(http://img.mail.ru/mail/ru/images/agent/kar.gif); PADDING-BOTTOM: 10px; MARGIN: 5px 0px 7px 5px; PADDING-TOP: 7px; BACKGROUND-REPEAT: no-repeat -} -.bg1 { - BACKGROUND-POSITION: right bottom; BACKGROUND-IMAGE: url(http://img.mail.ru/mail/ru/images/agent/bg1.gif); BACKGROUND-REPEAT: no-repeat; HEIGHT: 220px -} -.bg12 { - BACKGROUND-POSITION: right top; BACKGROUND-IMAGE: url(http://img.mail.ru/mail/ru/images/agent/bg1_2.gif); MARGIN: 0px; BACKGROUND-REPEAT: no-repeat; HEIGHT: 12px -} -.bg2 { - BACKGROUND-POSITION: right bottom; BACKGROUND-IMAGE: url(http://img.mail.ru/mail/ru/images/agent/bg3.gif); BACKGROUND-REPEAT: no-repeat; HEIGHT: 240px -} -.bg21 { - BACKGROUND-POSITION: right top; BACKGROUND-IMAGE: url(http://img.mail.ru/mail/ru/images/agent/bg3_2.gif); MARGIN: 0px; BACKGROUND-REPEAT: no-repeat; HEIGHT: 12px -} -.bg3 { - BACKGROUND-POSITION: right bottom; BACKGROUND-IMAGE: url(http://img.mail.ru/mail/ru/images/agent/developers.gif); BACKGROUND-REPEAT: no-repeat; HEIGHT: 220px -} -.button { - BORDER-RIGHT: medium none; PADDING-RIGHT: 5px; BORDER-TOP: medium none; PADDING-LEFT: 35px; FONT-WEIGHT: bold; FONT-SIZE: 12px; BACKGROUND: url(http://img.mail.ru/mail/ru/images/agent/button2.gif) no-repeat; PADDING-BOTTOM: 8px; MARGIN: 5px 0px 5px 5px; BORDER-LEFT: medium none; WIDTH: 171px; COLOR: white; PADDING-TOP: 4px; BORDER-BOTTOM: medium none; FONT-FAMILY: Arial,Sans-Serif; HEIGHT: 24px; TEXT-DECORATION: none -} -.button2 { - BORDER-RIGHT: medium none; PADDING-RIGHT: 0px; BORDER-TOP: medium none; PADDING-LEFT: 32px; FONT-WEIGHT: bold; FONT-SIZE: 12px; BACKGROUND: url(http://img.mail.ru/mail/ru/images/agent/button.gif) no-repeat; FLOAT: right; PADDING-BOTTOM: 0px; MARGIN: 12px 0px 5px 5px; BORDER-LEFT: medium none; WIDTH: 123px; COLOR: white; PADDING-TOP: 3px; BORDER-BOTTOM: medium none; FONT-FAMILY: Arial,Sans-Serif; HEIGHT: 24px; TEXT-DECORATION: none -} -A.but { - COLOR: white; TEXT-DECORATION: none -} -A.but:hover { - COLOR: white; TEXT-DECORATION: none -} -TD.gif { - PADDING-RIGHT: 0px; BACKGROUND-POSITION: right 50%; PADDING-LEFT: 0px; BACKGROUND-IMAGE: url(http://img.mail.ru/mail/ru/images/agent/1.gif); PADDING-BOTTOM: 0px; PADDING-TOP: 0px; BACKGROUND-REPEAT: no-repeat -} -A { - COLOR: #0857a6; TEXT-DECORATION: underline -} -A:hover { - COLOR: #f26d00; TEXT-DECORATION: none -} -BODY { - FONT-WEIGHT: normal; FONT-FAMILY: Arial,Sans-Serif -} -TABLE TD { - FONT-WEIGHT: normal; FONT-FAMILY: Arial,Sans-Serif -} -INPUT { - FONT-WEIGHT: normal; FONT-FAMILY: Arial,Sans-Serif -} -SELECT { - FONT-WEIGHT: normal; FONT-FAMILY: Arial,Sans-Serif -} -LABEL { - FONT-WEIGHT: normal; FONT-FAMILY: Arial,Sans-Serif -} -DIV { - FONT-WEIGHT: normal; FONT-FAMILY: Arial,Sans-Serif -} -P { - PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px -} -TABLE.pop TD.up { - PADDING-RIGHT: 10px; PADDING-LEFT: 10px; FONT-SIZE: 80%; PADDING-BOTTOM: 10px; COLOR: black; PADDING-TOP: 10px -} -TABLE.pop H1 { - PADDING-RIGHT: 0px; PADDING-LEFT: 10px; PADDING-BOTTOM: 7px; MARGIN: 0px; PADDING-TOP: 7px -} -H1 { - FONT-SIZE: 100%; FONT-FAMILY: Arial,Sans-Serif -} -H2 { - FONT-SIZE: 90%; MARGIN: 0px 0px 5px; COLOR: #003073; FONT-FAMILY: Arial,Sans-Serif -} -H3 { - FONT-SIZE: 80%; MARGIN: 0px 0px 2px; COLOR: #202020; FONT-FAMILY: Arial,Sans-Serif -} -H3 I { - FONT-WEIGHT: normal; COLOR: black; FONT-STYLE: normal -} -H4 { - FONT-SIZE: 75%; MARGIN: 8px 0px 0px; COLOR: #003073; FONT-FAMILY: Arial,Sans-Serif -} -H4 I { - FONT-WEIGHT: normal; COLOR: black; FONT-STYLE: normal -} -H5 { - FONT-WEIGHT: bold; FONT-SIZE: 70%; MARGIN: 8px 0px 2px; COLOR: #202020; FONT-FAMILY: Arial,Sans-Serif -} -H5 A { - FONT-WEIGHT: bold -} -H5 I A { - FONT-STYLE: normal -} -TABLE.frame { - MARGIN-BOTTOM: 10px -} -TABLE.top { - MARGIN-BOTTOM: 10px -} -TABLE.frame TD.cor { - PADDING-RIGHT: 0px; PADDING-LEFT: 0px; BACKGROUND-IMAGE: url(http://img.mail.ru/mail/ru/images/agent/1.gif); PADDING-BOTTOM: 0px; PADDING-TOP: 0px; BACKGROUND-REPEAT: no-repeat; BACKGROUND-COLOR: #d9d9d9 -} -TABLE.top TD.cor { - PADDING-RIGHT: 0px; PADDING-LEFT: 0px; BACKGROUND-IMAGE: url(http://img.mail.ru/mail/ru/images/agent/1.gif); PADDING-BOTTOM: 0px; PADDING-TOP: 0px; BACKGROUND-REPEAT: no-repeat; BACKGROUND-COLOR: #d9d9d9 -} -TABLE.frame TD.cont { - BORDER-RIGHT: #d9d9d9 1px solid; PADDING-RIGHT: 14px; PADDING-LEFT: 14px; PADDING-BOTTOM: 8px; MARGIN: 0px; BORDER-LEFT: #d9d9d9 1px solid; PADDING-TOP: 8px -} -TD.hd { - BACKGROUND-COLOR: #fedba5 -} -TD.hd H1 { - FONT-WEIGHT: bold; MARGIN: 4px 4px 4px 0px; COLOR: black -} -TD.menuor { - PADDING-BOTTOM: 10px -} -TD.menuor DIV.menur { - BORDER-RIGHT: white 1px solid; PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px 2px; BORDER-LEFT: white 1px solid; PADDING-TOP: 0px; BACKGROUND-COLOR: #ffd57f -} -TD.menuor DIV.bord { - BORDER-RIGHT: #ffa901 2px solid; PADDING-RIGHT: 14px; BORDER-TOP: #ffa901 1px solid; PADDING-LEFT: 15px; FONT-SIZE: 75%; PADDING-BOTTOM: 4px; MARGIN: 0px; BORDER-LEFT: #ffa901 2px solid; PADDING-TOP: 4px; BORDER-BOTTOM: #ffa901 1px solid -} -TD.menuor DIV.bor SPAN.small { - FONT-SIZE: 90%; COLOR: red -} -TD.menuor DIV.bor A { - COLOR: #413f40; TEXT-DECORATION: underline -} -TD.menuor DIV.bor A:hover { - TEXT-DECORATION: none -} -TD.menuor DIV.bor { - BORDER-RIGHT: #ffd57f 1px solid; PADDING-RIGHT: 14px; PADDING-LEFT: 14px; FONT-SIZE: 75%; PADDING-BOTTOM: 4px; MARGIN: 0px 2px; BORDER-LEFT: #ffd57f 1px solid; PADDING-TOP: 4px; BACKGROUND-COLOR: #fff2d8 -} -TD.menuor DIV.b { - BORDER-RIGHT: #ffd57f 1px solid; MARGIN: 0px 2px; BORDER-LEFT: #ffd57f 1px solid; BACKGROUND-COLOR: #fff2d8 -} -.prop { - PADDING-RIGHT: 15px; PADDING-LEFT: 0px; FONT-SIZE: 80%; PADDING-BOTTOM: 10px; PADDING-TOP: 5px -} -TD.prop P { - MARGIN: 0px; COLOR: #00458e; FONT-FAMILY: Arial,Sans-Serif -} -TD.text P { - PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 75%; PADDING-BOTTOM: 5px; PADDING-TOP: 0px -} -TD.text H4 { - MARGIN: 12px 0px 3px -} -TD.text H1 { - FONT-WEIGHT: bold; MARGIN: 10px 0px 5px; COLOR: #003073 -} -TD.text OL { - PADDING-RIGHT: 0px; DISPLAY: block; PADDING-LEFT: 0px; FONT-SIZE: 75%; PADDING-BOTTOM: 0px; MARGIN: 0px 0px 7px 30px; PADDING-TOP: 0px -} -TD.text UL { - PADDING-RIGHT: 0px; MARGIN-TOP: 0px; PADDING-LEFT: 0px; FONT-SIZE: 75%; MARGIN-BOTTOM: 0px; PADDING-BOTTOM: 0px; MARGIN-RIGHT: 0px; PADDING-TOP: 0px -} -LI { - PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 3px 0px 0px; LINE-HEIGHT: 120%; PADDING-TOP: 0px -} -TD.vo { - PADDING-LEFT: 25px -} -TD.vo P { - PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 80%; PADDING-BOTTOM: 5px; PADDING-TOP: 0px -} -TD.vo UL { - PADDING-RIGHT: 0px; MARGIN-TOP: 0px; PADDING-LEFT: 0px; FONT-SIZE: 80%; PADDING-BOTTOM: 0px; PADDING-TOP: 0px -} -TD.vo UL LI { - PADDING-RIGHT: 0px; MARGIN-TOP: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; PADDING-TOP: 0px -} -TABLE.frame TD.cont UL { - FONT-SIZE: 70% -} -TABLE.frame TD.cont P { - FONT-SIZE: 70% -} -TABLE.frame TD.menu { - BORDER-RIGHT: #d9d9d9 1px solid; PADDING-RIGHT: 10px; PADDING-LEFT: 10px; PADDING-BOTTOM: 8px; BORDER-LEFT: #d9d9d9 1px solid; PADDING-TOP: 8px; TEXT-ALIGN: right -} -TABLE.frame TD.menu TABLE TD { - FONT-SIZE: 80% -} -TABLE.top TD { - PADDING-RIGHT: 4px; PADDING-LEFT: 4px; FONT-SIZE: 70%; PADDING-BOTTOM: 4px; PADDING-TOP: 4px -} -TABLE.top TD.cor IMG { - MARGIN: 0px -} -TABLE.top TD.left { - PADDING-LEFT: 22px; BORDER-LEFT: #d9d9d9 1px solid -} -TABLE.top TD.right { - BORDER-RIGHT: #d9d9d9 1px solid; PADDING-RIGHT: 22px; PADDING-LEFT: 5px; PADDING-BOTTOM: 5px; PADDING-TOP: 5px -} -TABLE.top TD IMG.pic { - MARGIN-RIGHT: 2px -} -TD.form { - PADDING-BOTTOM: 10px -} -TD.title { - PADDING-RIGHT: 5px; PADDING-LEFT: 0px; FONT-WEIGHT: bold; PADDING-BOTTOM: 10px; PADDING-TOP: 0px -} -TD.pic { - PADDING-RIGHT: 10px; PADDING-LEFT: 0px; PADDING-BOTTOM: 5px; PADDING-TOP: 5px -} -TABLE.footer TD { - FONT-SIZE: 70%; COLOR: white -} -TABLE.footer TD A { - COLOR: white -} -TABLE.footer TD A:hover { - COLOR: #cce8ff -} -TABLE.footer TD.hide { - FONT-SIZE: 70%; COLOR: #00468c -} -TABLE.footer TD.hide A { - COLOR: #00468c -} -TABLE.footer TD.hide A:hover { - COLOR: #00468c -} -TD.entry { - BACKGROUND-POSITION: left bottom; BACKGROUND-IMAGE: url(http://img.mail.ru/mail/ru/images/agent/dot.gif); WIDTH: 100%; BACKGROUND-REPEAT: repeat-x -} -TABLE.rating TD.entry A { - BACKGROUND-COLOR: white -} -TD.centcol DIV.cor { - MARGIN-BOTTOM: 15px -} -TABLE.menu TD { - BACKGROUND-COLOR: white -} -TD.item { - PADDING-RIGHT: 10px; BORDER-TOP: white 3px solid; PADDING-LEFT: 10px; FONT-SIZE: 75%; PADDING-BOTTOM: 20px; PADDING-TOP: 2px -} -TD.cur { - PADDING-RIGHT: 10px; BORDER-TOP: white 3px solid; PADDING-LEFT: 10px; FONT-SIZE: 75%; PADDING-BOTTOM: 20px; PADDING-TOP: 2px -} -TD.head { - PADDING-LEFT: 15px -} -TD.head2 { - PADDING-RIGHT: 10px; PADDING-LEFT: 5px -} -IMG.pre { - BORDER-RIGHT: #ffb31a 1px solid; BORDER-TOP: #ffb31a 1px solid; MARGIN-BOTTOM: 5px; BORDER-LEFT: #ffb31a 1px solid; BORDER-BOTTOM: #ffb31a 1px solid -} -DIV.footer { - FONT-SIZE: 80%; MARGIN: 10px 0px 20px; TEXT-ALIGN: center -} -DIV.plash { - WIDTH: 100%; BACKGROUND-COLOR: #00468c; TEXT-ALIGN: center -} -DIV.cor { - BACKGROUND-IMAGE: url(http://img.mail.ru/mail/ru/images/agent/1.gif); WIDTH: 100%; BACKGROUND-REPEAT: no-repeat; HEIGHT: 1px; BACKGROUND-COLOR: #d9d9d9; TEXT-ALIGN: right -} -DIV.plash DIV.cor { - BACKGROUND-COLOR: #00468c -} -TD.bg1 DIV.cor { - BACKGROUND-COLOR: #00468c -} -TD.header DIV.cor { - BACKGROUND-COLOR: #00468c -} -DIV.cmnt2 { - MARGIN-TOP: 7px; FONT-SIZE: 70%; MARGIN-BOTTOM: 12px; COLOR: #616161 -} -UNKNOWN { - MARGIN-BOTTOM: 10px -} -UNKNOWN { - MARGIN: 0px -} -TD.header { - BACKGROUND-COLOR: #00468c -} -TD.header TD.text { - PADDING-RIGHT: 15px; PADDING-LEFT: 0px; FONT-SIZE: 70%; PADDING-BOTTOM: 0px; COLOR: white; PADDING-TOP: 1px; FONT-FAMILY: Tahoma -} -.kill { - TEXT-DECORATION: line-through -} -.warn { - BORDER-RIGHT: #ff0000 2px solid; PADDING-RIGHT: 3px; BORDER-TOP: #ff0000 1px solid; PADDING-LEFT: 3px; PADDING-BOTTOM: 3px; BORDER-LEFT: #ff0000 2px solid; PADDING-TOP: 3px; BORDER-BOTTOM: #ff0000 1px solid -} -.knopi { - PADDING-RIGHT: 10px; PADDING-LEFT: 10px; FONT-WEIGHT: bold; FONT-SIZE: 12px; PADDING-BOTTOM: 0px; COLOR: white; PADDING-TOP: 0px; FONT-FAMILY: Arial,Sans-Serif; TEXT-DECORATION: none -} -TD.fail { - BACKGROUND-POSITION: left bottom; BACKGROUND-IMAGE: url(http://img.mail.ru/mail/ru/images/agent/point1.gif); BACKGROUND-REPEAT: repeat-x -} -TD.fail1 { - BACKGROUND-POSITION: left bottom; BACKGROUND-IMAGE: url(http://img.mail.ru/mail/ru/images/agent/point1.gif); BACKGROUND-REPEAT: repeat-x; TEXT-ALIGN: right -} -TD.fail B { - PADDING-RIGHT: 2px; FONT-WEIGHT: normal; BACKGROUND-COLOR: #fff3de -} -TD.fail1 B { - PADDING-RIGHT: 5px; PADDING-LEFT: 3px; FONT-WEIGHT: normal; PADDING-BOTTOM: 0px; COLOR: #676a73; PADDING-TOP: 0px; BACKGROUND-COLOR: #fff3de -} -DIV.gr_line { - BACKGROUND-COLOR: #dadce5 -} -TABLE.stat { - PADDING-RIGHT: 10px; MARGIN-BOTTOM: 20px; BACKGROUND-COLOR: #ffffff; TEXT-ALIGN: left -} -TABLE.stat TR TD { - PADDING-RIGHT: 10px; PADDING-LEFT: 10px; FONT-SIZE: 75%; PADDING-BOTTOM: 5px; PADDING-TOP: 5px; FONT-FAMILY: arial -} -TABLE.stat TR.head TD { - PADDING-RIGHT: 10px; PADDING-LEFT: 10px; FONT-SIZE: 70%; PADDING-BOTTOM: 0px; PADDING-TOP: 3px; FONT-FAMILY: tahoma; BACKGROUND-COLOR: #e6e8ed -} -TABLE.stat TR TD.iskl { - PADDING-RIGHT: 0px; PADDING-LEFT: 4px -} -TABLE.stat TR.head TD A { - COLOR: #393b40 -} -TABLE.stat TR.head TD A:hover { - COLOR: #000000 -} -TR.head TD { - BORDER-BOTTOM: #e6e8ed 3px solid -} -TR.head TD.nizh { - COLOR: #000000; PADDING-TOP: 5px; BORDER-BOTTOM: #acafbf 3px solid -} -TABLE.stat TR.last_tr TD { - PADDING-RIGHT: 0px; BORDER-TOP: #dadde5 3px solid; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; PADDING-TOP: 0px -} -TR.weekend TD { - BACKGROUND-COLOR: #fffbed -} -TR.forced TD { - FONT-WEIGHT: bold -} -TR.or_vid TD { - BACKGROUND-COLOR: #fff7e5 -} -TR.st_vid TD { - BACKGROUND-COLOR: #ffffff -} -TR.cherez TD { - BACKGROUND-COLOR: #f5f5f2 -} -TABLE.frame TD.cont UL.mmenu { - FONT-SIZE: 80% -} -TABLE.frame TD.cont UL.mmenu LI { - MARGIN-BOTTOM: 4px; COLOR: #dbe0e6 -} -TABLE.frame TD.cont UL.mmenu LI .speak { - COLOR: #0857a6 -} -TABLE.frame TD.cont UL.mmenu LI.ai { - COLOR: #000000 -} -TABLE.frame TD.cont UL.mmenu LI UL.smenu { - FONT-SIZE: 85%; MARGIN-BOTTOM: 6px -} -TABLE.frame TD.cont UL.mmenu LI UL.smenu LI { - MARGIN-TOP: 4px; COLOR: #dbe0e6 -} -TABLE.frame TD.cont UL.mmenu LI UL.smenu LI.ai { - COLOR: #000000 -} -TABLE.talkme TD { - PADDING-RIGHT: 5px; PADDING-LEFT: 0px; FONT-SIZE: 70%; PADDING-BOTTOM: 4px; PADDING-TOP: 0px -} -TABLE.talkme TD IMG.avat { - BORDER-RIGHT: #d9d9d9 1px solid; BORDER-TOP: #d9d9d9 1px solid; MARGIN-BOTTOM: 5px; BORDER-LEFT: #d9d9d9 1px solid; BORDER-BOTTOM: #d9d9d9 1px solid -} -TABLE.talkme TD.all { - PADDING-BOTTOM: 13px -} -TABLE.talkme TD.all A { - COLOR: #696973; TEXT-DECORATION: underline -} -TABLE.frame TD.contfr { - BORDER-RIGHT: #d9d9d9 1px solid; PADDING-RIGHT: 60px; PADDING-LEFT: 14px; BACKGROUND: url(http://img.mail.ru/mail/ru/images/agent/friend.jpg) no-repeat right bottom; PADDING-BOTTOM: 8px; MARGIN: 0px; BORDER-LEFT: #d9d9d9 1px solid; PADDING-TOP: 8px -} -TABLE.frame TD.contfr TD { - PADDING-RIGHT: 3px; PADDING-LEFT: 0px; FONT-SIZE: 70%; PADDING-BOTTOM: 0px; COLOR: #646b75; PADDING-TOP: 3px -} -TABLE.frame TD.contfr TD SPAN { - FONT-SIZE: 90% -} -TABLE.frame TD.contfr TD A { - TEXT-DECORATION: none -} -TABLE.frame TD.contfr TD.all { - PADDING-BOTTOM: 13px -} -TABLE.frame TD.contfr TD.all A { - COLOR: #696973; TEXT-DECORATION: underline -} -TABLE.frame TD H2 { - MARGIN-BOTTOM: 10px -} -.pbgla { - BACKGROUND: url(http://img.mail.ru/mail/ru/images/agent/pbg_l1.gif) no-repeat center bottom -} -.pbglba { - BACKGROUND: url(http://img.mail.ru/mail/ru/images/agent/pbg_l2-1.gif) no-repeat left top -} -.pbglbb { - BACKGROUND: url(http://img.mail.ru/mail/ru/images/agent/pbg_l2-2.gif) no-repeat right top -} -TABLE.top_menu { - MARGIN-BOTTOM: 7px -} -TABLE.top_menu TD { - PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 80%; PADDING-BOTTOM: 4px; PADDING-TOP: 2px -} -TABLE.top_menu TD.bord_b { - PADDING-RIGHT: 0px; BACKGROUND-POSITION: right top; PADDING-LEFT: 0px; BACKGROUND-IMAGE: url(http://img.mail.ru/1.gif); PADDING-BOTTOM: 0px; PADDING-TOP: 0px; BACKGROUND-REPEAT: no-repeat; HEIGHT: 1px; BACKGROUND-COLOR: #c2c3cc -} -TABLE.top_menu TD.bord_l { - BORDER-LEFT: #c2c3cc 1px solid -} -TABLE.top_menu TD.bord_r { - BORDER-RIGHT: #c2c3cc 1px solid -} diff --git "a/protocols/MRA/Docs/Mail_ru \320\220\320\263\320\265\320\275\321\202.files/love-all.gif" "b/protocols/MRA/Docs/Mail_ru \320\220\320\263\320\265\320\275\321\202.files/love-all.gif" deleted file mode 100644 index c53ccf002a..0000000000 Binary files "a/protocols/MRA/Docs/Mail_ru \320\220\320\263\320\265\320\275\321\202.files/love-all.gif" and /dev/null differ diff --git "a/protocols/MRA/Docs/Mail_ru \320\220\320\263\320\265\320\275\321\202.files/molotok-all.gif" "b/protocols/MRA/Docs/Mail_ru \320\220\320\263\320\265\320\275\321\202.files/molotok-all.gif" deleted file mode 100644 index 8182aba798..0000000000 Binary files "a/protocols/MRA/Docs/Mail_ru \320\220\320\263\320\265\320\275\321\202.files/molotok-all.gif" and /dev/null differ diff --git "a/protocols/MRA/Docs/Mail_ru \320\220\320\263\320\265\320\275\321\202.files/proto.css" "b/protocols/MRA/Docs/Mail_ru \320\220\320\263\320\265\320\275\321\202.files/proto.css" deleted file mode 100644 index f471cb4516..0000000000 --- "a/protocols/MRA/Docs/Mail_ru \320\220\320\263\320\265\320\275\321\202.files/proto.css" +++ /dev/null @@ -1,39 +0,0 @@ -TD.text .blue { - COLOR: #003073 -} -TD.text CODE { - MARGIN: 0px 3px; COLOR: #333333 -} -TD.text SPAN.c { - FONT-SIZE: 110%; MARGIN-LEFT: 3px; COLOR: #333333; FONT-STYLE: normal; FONT-FAMILY: Courier New -} -TD.text B { - COLOR: #333333 -} -TD.text PRE { - BORDER-RIGHT: #666666 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #666666 1px solid; PADDING-LEFT: 5px; PADDING-BOTTOM: 5px; BORDER-LEFT: #666666 1px solid; COLOR: #333333; PADDING-TOP: 5px; BORDER-BOTTOM: #666666 1px solid -} -TD.text .pt10 { - PADDING-TOP: 10px -} -TD.text UL.pack LI { - MARGIN-TOP: 12px -} -TD.text UL.pack U { - FONT-SIZE: 100%; TEXT-DECORATION: none -} -TD.text UL.pack P { - FONT-SIZE: 100% -} -TD.text P.pack2 { - LINE-HEIGHT: 1.3em; PADDING-TOP: 4px -} -TD.text P.code { - PADDING-RIGHT: 4px; PADDING-LEFT: 10px; PADDING-BOTTOM: 4px; COLOR: #333333; LINE-HEIGHT: 1.5em; PADDING-TOP: 0px; FONT-FAMILY: Courier New -} -TD.text P.pack2 U { - FONT-SIZE: 90%; COLOR: #666666; TEXT-DECORATION: none -} -TD.text UL.par { - PADDING-RIGHT: 0px; PADDING-LEFT: 35px; PADDING-BOTTOM: 10px; MARGIN-LEFT: 0px; PADDING-TOP: 0px -} diff --git "a/protocols/MRA/Docs/Mail_ru \320\220\320\263\320\265\320\275\321\202.files/tour-all.gif" "b/protocols/MRA/Docs/Mail_ru \320\220\320\263\320\265\320\275\321\202.files/tour-all.gif" deleted file mode 100644 index 23ae14b79a..0000000000 Binary files "a/protocols/MRA/Docs/Mail_ru \320\220\320\263\320\265\320\275\321\202.files/tour-all.gif" and /dev/null differ diff --git "a/protocols/MRA/Docs/Mail_ru \320\220\320\263\320\265\320\275\321\202.htm" "b/protocols/MRA/Docs/Mail_ru \320\220\320\263\320\265\320\275\321\202.htm" deleted file mode 100644 index 574ed83a9b..0000000000 --- "a/protocols/MRA/Docs/Mail_ru \320\220\320\263\320\265\320\275\321\202.htm" +++ /dev/null @@ -1,635 +0,0 @@ - - -Mail.ru Агент - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - -
Поиск ПоискЗнакомства ЗнакомстваОткрытки ОткрыткиЧаты ЧатыРассылки РассылкиМолоток МолотокПутешествия ПутешествияАвто АвтоВсе проекты
- - - - - - - - - - - - -
[Rambler's Top100]
- - - - - -
-
- - - - - -
Агентmail.ru -

загрузить

-

Пользовательское
соглашение


-
- - - - - -
- - - - - - - -
-

-

Описание протокола

-

MMP - протокол соединения Mail.Ru Агента с общей сетью Mail.Ru. - Рекомендованный для соединения сервер в любой момент времени можно - получить в текстовом формате ip:port по адресу mrim.mail.ru:443 и mrim.mail.ru:2042. - Взаимодействие с сервером происходит поверх постоянно установленного - tcp-соединения посредством асинхронного обмена командами. Инициатором - установления соединения может быть только клиент, команды могут посылаться - как клиентом, так и сервером.

-

MMP бинарный протокол. Все числовые данные передаются как - четырехбайтные целые НЕ в сетевом формате, т. е. первым идет старший байт, - последним младший. Четырехбайтовые беззнаковые целые обозначаются - UL.

-

Текстовые данные передаются с префексированной длиной, т. е. сначала - UL, а потом строка (в кодировке windows-1251) длины UL без - завершающего нуля. Обозначение в дальнейшем - LPS.

-

Тип данных UIDL используется только при работе с оставленными на - сервере сообщениями. UIDL - последовательность из 8 символов из - множества [a-z A-Z 0-9 _ - = +].

-

Каждая команда или ответ на нее начинаются с заголовка. Поля - указываемые в заголовке: -

    -
  • волшебный ключ, указывающий на то, что это действительно пакет MMP - - версия MMP, поддерживаемая отправителем пакета (текущая версия - 1.7) -
  • номер отправляемой команды в текущем соединении. Ответ на команду - должен иметь тот же номер, что и сама команда. -
  • тип пакета, номер команды и/или ответа -
  • длинна данных пакета (без учета заголовка). При обработке посылаемых - сервером данных длина пакета должна иметь приоритет перед списком его - параметров, т. к. в следующих версиях протокола могут появляться новые - параметры и все они будут дописываться в конец пакета. -
  • порт и ip (в inet_aton() формате) с которых установлено - соединение
-


-

В синтаксисе языка С:

Заголовок пакета
-{
-    u_long	magic;	
-    u_long	proto;
-    u_long	seq;
-    u_long	msg;
-    u_long	dlen;
-    u_long	from;
-    u_long	fromport;
-    u_char	reserved[16];
-}
-
-

Вам понадобится заголовочный файл на языке C. Взять его можно здесь.

-

 

-

Последовательность команд

-

После установки tcp-соединения клиент обязан сразу послать MRIM_CS_HELLO, дождаться MRIM_CS_HELLO_ACK, после чего отправить MRIM_CS_LOGIN2 и начать посылать MRIM_CS_PING с установленным в MRIM_CS_HELLO_ACK интервалом. В случае успешной авторизации - дальнейшие пакеты (кроме MRIM_CS_PING) должны - отправляться только в случае пользовательских действий (написания новых - сообщений и т. п.) или ответа на пакеты получаемые от сервера.

-

Типы пакетов

-

Тип пакета: cs - Client -> Server
Тип - пакета: sc - Server -> Client

-

Пакеты

-
    -
  • Пакет: Установка соединения -

    Имя пакета: MRIM_CS_HELLO
    Ответ: MRIM_CS_HELLO_ACK
    Тип пакета: - cs
    Описание: Первый пакет, отправляемый на сервер.

    -
  • Пакет: Подтверждение установки соединения -

    Имя пакета: MRIM_CS_HELLO_ACK
    Тип пакета: - sc
    Параметры:

    -

    UL ## ping_period ## Ожидаемая частота подтверждения - соединения (в секундах)

    -

    Описание: Подтверждает возможность соединения и - сообщает клиенту интервал, с которым надо отправлять пакеты контроля - соединения.

    -
  • Пакет: Успешная авторизация -

    Имя пакета: MRIM_CS_LOGIN_ACK
    Тип пакета: - sc
    Описание: Сообщает, что пара логин-пароль была верна и - клиент успешно авторизовался в сети агента.

    -
  • Пакет: Неверная авторизация -

    Имя пакета: MRIM_CS_LOGIN_REJ
    Тип пакета: - sc
    Параметры:

    -

    LPS ## reason ## причина отказа

    -

    Описание: Сообщает, что пара логин-пароль была - неверна, и соединение будет завершено.

    -
  • Пакет: Контроль соединения -

    Имя пакета: MRIM_CS_PING
    Тип пакета: cs
    Описание: - Отправка этого пакета подтверждает для сервера, что клиент активен. - Пакет должен отправляться с интервалом, определенным в MRIM_CS_HELLO_ACK.

    -
  • Пакет: Сообщение -

    Имя пакета: MRIM_CS_MESSAGE
    Тип пакета: cs
    поле seq - должно содержать номер, который в последствии будет содержаться в - заголовке пакета MRIM_CS_MESSAGE_STATUS, - оповещающем клиента о статусе доставки данного - сообщения.
    Параметры:

    -

    UL ## flags ## флаги ##

    -

    MESSAGE_FLAG_OFFLINE ## - Сообщение пришло, пока клиент был отключен
    MESSAGE_FLAG_NORECV ## - Отправителю сообщения не требуется подтверждения - доставки
    MESSAGE_FLAG_AUTHORIZE ## Сообщение является запросом на - авторизацию
    MESSAGE_FLAG_SYSTEM ## Сообщение является системным - уведомлением администрации
    MESSAGE_FLAG_RTF ## В сообщении содержится - форматированная часть
    MESSAGE_FLAG_CONTACT ## Сообщение представляет - из себя пересланный список контактов. Текст сообщения в этом случае - должен представлять из себя список адресов и ников пересылаемых - контактов, перечисленных через точку с запятой. - <адрес1>;<ник1>;<адрес2>;<ник2>;<адрес3>;<ник3>;...
    MESSAGE_FLAG_NOTIFY - ## Это сообщение-уведомление "Вам пишут". Должно посылаться каждые 10 - секунд, при более длинной паузе клиент-получатель должен считать, что - отправитель прекратил написание. Текст такого сообщения должен состоять - из одного пробела.
    MESSAGE_FLAG_MULTICAST ## Сообщение направлено - списку получателей, а не одному. Поле to в таком случае состоит из - списка получателей, перечисленных через запятую. Максимальная длина - списка - 50 адресов.

    -

    LPS ## to ## email получателя
    LPS ## message ## - текстовая версия отправляемого сообщения
    LPS ## rtf-message ## - отформатированная версия отправляемого сообщения, в случае наличия обоих - версий сообщения приоритет имеет rtf-версия. Она должна содержать - rtf-текст упакованный gzip в base64 представлении. То есть:

    BASE64(
    -  		GZIP(
    -  			UL количество LPS (должно быть не менее 2)
    -  			LPS rtf_text_with_all_rtf_headers_and_tags
    -  			LPS цвет фона в виде UL
    - 			 )
    - 		 ) 
    -					
    -

    -

    Описание: Основной пакет взаимодействия между - двумя клиентами. Может быть отправлено в любой момент по инициативе - клиента. Ни текстовая, ни rtf части сообщений не могут быть пустыми, при - необходимости следует использовать строку из одного пробела.

    -
  • Пакет: Доставка сообщения -

    Имя пакета: MRIM_CS_MESSAGE_ACK
    Тип пакета: - sc
    Параметры:

    -

    UL ## msg_id ## Номер пакета (Sequence) этого сообщения - для отправителя
    UL ## flags ## Возможные значения описаны в - MRIM_CS_MESSAGE
    LPS ## from ## Адрес отправителя
    LPS ## message ## - текстовая версия сообщения
    LPS ## rtf-message ## форматированная - версия сообщения

    -

    Описание:

    -
  • Пакет: Подтверждение получения сообщения -

    Имя пакета: MRIM_CS_MESSAGE_RECV
    Тип пакета: - cs
    Параметры:

    -

    LPS ## from ##
    UL ## msg_id ##

    -

    Описание: Отправляется получателем сообщения сразу - после прихода MRIM_CS_MESSAGE_ACK, если флаги MRIM_CS_MESSAGE_ACK не содержали MESSAGE_FLAG_NORECV. from и msg_id должны быть скопированы из MRIM_CS_MESSAGE_ACK и имеют то же значение.

    -
  • Пакет: Подтверждение доставки сообщения -

    Имя пакета: MRIM_CS_MESSAGE_STATUS
    Тип пакета: sc
    Поле - seq численно равно полю seq пакета MRIM_CS_MESSAGE
    Параметры:

    -

    UL ## status ## статус доставки ##

    -

    MESSAGE_DELIVERED ## Сообщение - успешно доставлено
    MESSAGE_REJECTED_INTERR ## Произошла внутренняя - ошибка
    MESSAGE_REJECTED_NOUSER ## Не существует - пользователя-получателя сообщения
    MESSAGE_REJECTED_LIMIT_EXCEEDED ## - Пользователь-получатель в данный момент отключен от сети, и сообщение не - помещается в его почтовый ящик
    MESSAGE_REJECTED_TOO_LARGE ## Размер - сообщения превышает максимально - допустимый
    MESSAGE_REJECTED_DENY_OFFMSG ## Пользователь-получатель в - данный момент отключен от сети, а настройки его почтового ящика не - допускают наличие оффлайновых сообщений агента

    -

    Описание: Отправленное сообщение считается - доставленным только после получения этого ответа сервера. Сервер НЕ - ГАРАНТИРУЕТ доставку сообщения. В случае отстутствия MRIM_CS_MESSAGE_STATUS более интервала подтверждения - соединения, программа клиент должна послать сообщение повторно или - проинформировать пользователя о невозможности доставки из-за проблем - связи получателя.

    -
  • Пакет: Смена статуса другого пользователя -

    Имя пакета: MRIM_CS_USER_STATUS
    Тип пакета: - sc
    Параметры:

    -

    UL ## status ## новый статус пользователя ##

    -

    STATUS_OFFLINE ## Пользователь - отключен от сети Агента
    STATUS_ONLINE ## Пользователь находится в - сети
    STATUS_AWAY ## Пользователь в сети, но отошел от - компьютера
    STATUS_UNDETERMINATED ## Настройки пользователя запрещают - показывать его статус
    STATUS_FLAG_INVISIBLE ## Пользователь находится - в сети, но невидим для всех, кроме привилегированных пользователей из - его списка видимости.

    LPS ## user ## email сменившего свой статус - пользователя -

    -

    Описание: Это сообщение отправляется сервером при - смене статуса пользователям всем тем, у кого он находится в - контакт-листе (за исключением группы "Жду Авторизации" и тех, кого он - включил в список игнорируемых или невидящих). Данное сообщение может - быть доставлено клиенту ДО получения им контакт-листа. В такой ситуации - оно должно игнорироваться.

    -
  • Пакет: Закрытие соединения -

    Имя пакета: MRIM_CS_LOGOUT
    Тип пакета: - sc
    Параметры:

    -

    UL ## reason ## причина отключения ##

    -

    LOGOUT_NO_RELOGIN_FLAG ## - Пользователь отключен из-за параллельного входа с его логином. Клиент не - должен осуществлять автоматический перезаход в этом случае.

    -
  • Пакет: Изменение параметров соединения -

    Имя пакета: MRIM_CS_CONNECTION_PARAM
    Тип пакета: - sc
    Параметры:

    -

    UL ## ping_period ## новая ожидаемая частота подтверждения - соединения

    -

    Описание: Ближайший MRIM_CS_PING следует отправлять уже исходя из новой - частоты.

    -
  • Пакет: Добавление нового контакта -

    Имя пакета: MRIM_CS_ADD_CONTACT
    Тип пакета: - cs
    Параметры:

    -

    UL ## flags ## флаги ##

    -

    CONTACT_FLAG_GROUP ## - Добавляется новая группа, а не контакт (несовместим с остальными). - Верхний байт содержит количество уже имеющихся групп в - контакт-листе
    CONTACT_FLAG_INVISIBLE ## Контакт должен попасть в - список "Я всегда невидим для"
    CONTACT_FLAG_VISIBLE ## Контакт должен - попасть в список "Я всегда видим для"
    CONTACT_FLAG_IGNORE ## Контакт - должен попасть в список игнорируемых
    CONTACT_FLAG_SHADOW ## Контакт - не должен попасть в основной контакт-лист (применяется в паре с одним из - трех предыдущих)
    CONTACT_FLAG_REMOVED ## Контакт удален

    -

    UL ## group_id ## группа, в которую должен быть добавлен - контакт (для CONTACT_FLAG_GROUP равно 0)
    LPS ## email ## добавляемый - адрес (имя группы для CONTACT_FLAG_GROUP)
    LPS ## name ## ник - добавляемого пользователя (для отображения в контакт-листе, не - посылается для CONTACT_FLAG_GROUP) LPS ## unused ## неиспользуемый - параметр

    -
  • Пакет: Подтверждение добавления контакта -

    Имя пакета: MRIM_CS_ADD_CONTACT_ACK
    Тип пакета: - sc
    Параметры:

    -

    UL ## status ## результат операции ##

    -

    CONTACT_OPER_SUCCESS ## - добавление произведено успешно
    CONTACT_OPER_ERROR ## переданные - данные были некорректны
    CONTACT_OPER_INTERR ## при обработке запроса - произошла внутренняя ошибка
    CONTACT_OPER_NO_SUCH_USER ## добавляемого - пользователя не существует в системе
    CONTACT_OPER_INVALID_INFO ## - некорректное имя пользователя
    CONTACT_OPER_USER_EXISTS ## - пользователь уже есть в контакт-листе
    CONTACT_OPER_GROUP_LIMIT ## - превышено максимально допустимое количество групп (20)

    -

    ## UL ## contact_id ## присвоенный новому контакту - номер

    -

    Описание: Приходит в ответ на MRIM_CS_ADD_CONTACT. -1 если status - не равен CONTACT_OPER_SUCCESS.

    -
  • Пакет: Изменение контакта -

    Имя пакета: MRIM_CS_MODIFY_CONTACT
    Тип пакета: - cs
    Параметры:

    -

    UL ## id ## номер модифицируемого контакта
    UL ## flags - ##
    UL ## group_id ## Равно 0 для группы
    LPS ## contact ## Если - группа, то имя группы
    LPS ## name ## Если группа, то имя группы

    -

    Описание: Параметры те же, что и у MRIM_CS_ADD_CONTACT. contact до и - после изменения обязаны совпадать.

    -
  • Пакет: Подтверждение изменения контакта -

    Имя пакета: MRIM_CS_MODIFY_CONTACT_ACK
    Тип пакета: - sc
    Параметры:

    -

    UL ## status ## Результат операции. Значения имеют тот же - смысл, что и в MRIM_CS_ADD_CONTACT_ACK

    -
  • Пакет: Сообщение доставленное, пока пользователь не был - подключен к сети -

    Имя пакета: MRIM_CS_OFFLINE_MESSAGE_ACK
    Тип пакета: - sc
    Параметры:

    -

    UIDL ## uidl ## id сообщения
    LPS ## message ## - сообщение. Сообщение приходит в формате RFC/822 письма. Отправитель - сообщения хранится в заголовке From, дата в заголовке Date, флаги - сообщения в X-MRIM-FLAGS, текстовая и форматированная версии сообщения - составляют текст письма и разделяются между собой разделителем из - заголовка Boundary.

    -

    Описание: Каждое полученное за время отсутствия - сообщение приходит отдельным пакетом в том порядке, в каком они - поступали на сервер.

    -
  • Пакет: Удаление сохраненного сообщения -

    Имя пакета: MRIM_CS_OFFLINE_MESSAGE_DEL
    Тип пакета: - cs
    Параметры:

    -

    UIDL ## uidl

    -

    Описание: На каждый полученный MRIM_CS_OFFLINE_MESSAGE_ACK клиент обязан отправить MRIM_CS_OFFLINE_MESSAGE_DEL с тем же uidl, подтверждающий получение данного сообщения. - Сообщение стирается на сервере только при получении этой команды.

    -
  • Пакет: Авторизация пользователя на добавление в - контакт-лист -

    Имя пакета: MRIM_CS_AUTHORIZE
    Тип пакета: - cs
    Параметры:

    -

    LPS ## user ## email пользователя

    -

    Описание: Отправляется, чтобы разрешить user добавление пользователя в контакт-лист и наблюдение - за его статусом.

    -
  • Пакет: Информация об авторизации -

    Имя пакета: MRIM_CS_AUTHORIZE_ACK
    Тип пакета: - sc
    Параметры:

    -

    LPS ## user ## email авторизовавшего пользователя

    -

    Описание: Отсылается сервером после получением им - MRIM_CS_AUTHORIZE от user - тому, кого user авторизовал.

    -
  • Пакет: Изменение статуса -

    Имя пакета: MRIM_CS_CHANGE_STATUS
    Тип пакета: - cs
    Параметры:

    -

    UL ## status ## возможные значения совпадают с - MRIM_CS_USER_STATUS, но не могут посылаться статусы - STATUS_UNDETERMINATED и STATUS_OFFLINE

    -
  • Пакет: Требование ключа для web-авторизации -

    Имя пакета: MRIM_CS_GET_MPOP_SESSION
    Тип пакета: - cs
    Описание: Пользователь агента может заходить в почтовый - ящик Mail.Ru без дополнительной авторизации и не передавая свой пароль в - GET-запросе, для этого используется механизм ключей.

    -
  • Пакет: Ключ для web-авторизации -

    Имя пакета: MRIM_CS_GET_MPOP_SESSION_ACK
    Тип пакета: - sc
    Параметры:

    -

    UL ## status ## успешность операции (1 - ключ получен, 0 - - произошла ошибка)
    LPS ## session ## сам ключ

    -

    Описание: Для входа в ящик можно использовать URL - win.mail.ru/cgi-bin/auth?Login=email&agent=ключ.

    -
  • Пакет: Поиск контакта -

    Имя пакета: MRIM_CS_WP_REQUEST
    Тип пакета: - cs
    Параметры:

    -

    UL ## field ## параметр поиска ##

    -

    MRIM_CS_WP_REQUEST_PARAM_USER ## - логин (без домена), обязан комбинироваться с - доменом
    MRIM_CS_WP_REQUEST_PARAM_DOMAIN ## почтовый - домен
    MRIM_CS_WP_REQUEST_PARAM_NICKNAME ## - ник
    MRIM_CS_WP_REQUEST_PARAM_FIRSTNAME ## имя -
    MRIM_CS_WP_REQUEST_PARAM_LASTNAME ## фамилия, * в конце - ника/имени/фамилии указывает на возможность любого продолжения - имени
    MRIM_CS_WP_REQUEST_PARAM_SEX ## пол. 1 - мужской, 2 - - женский
    MRIM_CS_WP_REQUEST_PARAM_DATE1 ## минимальный возраст (в - годах)
    MRIM_CS_WP_REQUEST_PARAM_DATE2 ## максимальный возраст (в - годах)
    MRIM_CS_WP_REQUEST_PARAM_CITY_ID ## ID региона проживания -
    MRIM_CS_WP_REQUEST_PARAM_ZODIAC ## Знак зодиака (Овен - 1, ..., Рыбы - - 12)
    MRIM_CS_WP_REQUEST_PARAM_BIRTHDAY_MONTH ## Месяц рождения - (Январь - 1, ..., Декабрь - 12)
    MRIM_CS_WP_REQUEST_PARAM_BIRTHDAY_DAY - ## День рождения (обязан комбинироваться с месяцем - рождения)
    MRIM_CS_WP_REQUEST_PARAM_COUNTRY_ID ## ID страны - проживания
    MRIM_CS_WP_REQUEST_PARAM_ONLINE ## ищем ли мы только - подключенных в данный момент пользователей (1)

    -

    LPS ## value все параметры в строковом формате, включая - числа

    -

    Описание: Поиск контактов в базе агента. Параметры - поиска передаются парами параметр-значение. Передача нескольких - параметров имеет семантику "и", т. е. все найденные результаты должны - соответствовать всем переданным параметрам. Комбинироваться могут все - параметры за исключением логина и домена (они обязаны идти парой и не - могут комбинироваться с другими параметрами) в порядке соответствующем - порядку описания (за исключением требования для MRIM_CS_WP_REQUEST_PARAM_ONLINE быть последним в списке). -

    -
  • Пакет: Найденные пользователи -

    Имя пакета: MRIM_CS_ANKETA_INFO
    Тип пакета: - cs
    Параметры:

    -

    UL ## status ## успешность запроса ##

    -

    MRIM_ANKETA_INFO_STATUS_OK ## - поиск успешно завершен
    MRIM_ANKETA_INFO_STATUS_NOUSER ## не найдено - ни одной подходящей записи
    MRIM_ANKETA_INFO_STATUS_RATELIMERR ## - слишком много запросов, поиск временно запрещен

    -

    UL ## fields_num ## количество полей в анкете каждого - пользователя
    UL ## max_rows ## текущее ограничение на количество - результатов поиска (может быть больше, чем количество строк в данном - ответе)
    UL ## server_time ## текущее время на сервере (должно - использоваться для вычисления возраста). Формат времени: Количество - секунд с 00:00:00 1 января 1970 года.
    LPS, LPS, ... ## fields ## - названия полей текущей анкеты (всего fields_num штук)
    LPS, LPS, ... - ## values ## значения полей анкеты для каждого найденного по запросу - пользователя в том же порядке, что в списке полей, по fields_num штук на - каждого

    -

    Описание: Результат поиска контактов. Возвращает - анкеты найденных пользователей (их адреса являются полями анкеты).

    -
  • Пакет: Количество писем в почтовом ящике -

    Имя пакета: MRIM_CS_MAILBOX_STATUS
    Тип пакета: - sc
    Параметры:

    -

    UL ## status ## количество непрочитанных писем

    -

    Описание: Приходит при получении новой почты или - любом другом изменении числа непрочитанных писем в ящике.

    -
  • Пакет: Контакт-лист -

    Имя пакета: MRIM_CS_CONTACT_LIST2
    Тип пакета: - sc
    Параметры:

    -

    UL ## status ## результат запроса контакт-листа

    -

    GET_CONTACTS_OK ## поиск - выполнен успешно
    GET_CONTACTS_ERROR ## найденный контакт-лист - некорректен
    GET_CONTACTS_INTERR ## произошла внутренняя ошибка

    -

    UL ## groups_number ## количество групп в - контакт-листе
    LPS ## group_mask ## маска-описание группы, состоит из - символов 's' (LPS),'u' (UL),'z' (строка оканчивающаяся бинарным нулем, в - данный момент не используется), сейчас "us" - флаги и название, при - расширении описания старые поля сохранят свое расположение
    LPS ## - contacts_mask ## маска-описание пользователя (синтаксис такой же как и у - group_mask), сейчас uussuu (флаги, группа, адрес, ник, серверные флаги, - текущий статус в сети)
    ## groups ## группы (всего groups_number - штук)
    ## contacts ## контакты

    -

    Описание: Контакт-лист пользователя хранится на - сервере. Клиент может хранить локальную копию контакт-листа, но - серверная должна иметь приоритет. Флаги контакта имеют тот же смысл, что - в MRIM_CS_ADD_CONTACT, статус - тот же смысл, что в - MRIM_CS_USER_STATUS. Серверный флаг в данный момент - определён один - CONTACT_INTFLAG_NOT_AUTHORIZED - означает, что контакт еще не авторизовал пользователя и находится в - группе "Жду авторизации". Если маска контакта или группы содержит больше - символов, чем необходимо, клиент должен прочитать значения этих полей и - проигнорировать их.

    -
  • Пакет: Авторизация -

    Имя пакета: MRIM_CS_LOGIN2
    Тип пакета: - cs
    Параметры:

    -

    LPS ## login ## email авторизующегося пользователя
    LPS - ## password ## пароль
    UL ## status ## статус (см. - MRIM_CS_CHANGE_STATUS)
    LPS ## user_agent ## текстовое описание - клиента пользователя, например "Mail.Ru Miranda Plugin v - 1.0"


- - - -
-

- - -- cgit v1.2.3