[js] moeilijke vraag over msn-scriptje

Pagina: 1
Acties:
  • 121 views sinds 30-01-2008
  • Reageer

  • aqua_man
  • Registratie: Januari 2002
  • Laatst online: 26-07-2023

aqua_man

one life, live it!

Topicstarter
ik heb dit scriptje:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
<script event="onload" for="window" language="javascript">
<!-- Begin
var textlist = "";
var you = "";
var installed = true;
// Check if MSN Messenger is installed
try {
    var xObj = new ActiveXObject("Messenger.MsgrObject");
    if (xObj == null)
    installed = false;
}
catch (e) {
    installed = false;
}

if (installed) {
    if (isStateOnline(MsgrObj.LocalState)) {
        // Get contact list
        var list = MsgrObj.List(0);
        // Get you!
        you = MsgrObj.LocalFriendlyName + " (" + MsgrObj.LocalLogonName + ")";

        // Get your friends
        for (i=0; i<list.Count; i++)
        textlist = textlist + list.Item(i).FriendlyName + " (" + list.Item(i).EmailAddress + ")\n";
    } 
    else {
        // You must be offline
        you = " - MSN Messenger is not connected. - ";
    }
} 
else {
    // MSN not installed
    you = " - MSN Messenger is not installed. - ";
}

// Is user online?
function isStateOnline(state) {
    var ret;
    switch (state) {
        case 2:
            //online
        case 6:  
            //invisible
        case 10:
            //busy
        case 14:
            //be right back
        case 18:
            //idle
        case 34:
            //away
        case 50:
            //on the phone
        case 66:
            //out to lunch
        ret = true;
        break;
        default:
            ret = false;
        break;
    }
    return ret;
}

// Fill in the form
document.forms.details.you.value = you;
document.forms.details.friends.value = textlist;

// End -->
</script>

dit scriptje pakt je eigen naam bij msn en al je vrienden + email. maar ik snap de functie isStateOnline niet helemaal, zou ik hiermee ook de precieze status van iemand kunnen pakken?

2 swim or not 2 swim, that's the question


  • Bosmonster
  • Registratie: Juni 2001
  • Laatst online: 29-08 19:47

Bosmonster

*zucht*

Met de aangegeven cases (user is online in een of andere status) geeft ie true terug. Default geeft ie false terug, de user is offline.

Het scriptje geeft je netjes alle state-codes en je kunt daar inderdaad vrij simpel zelf iets van maken door iedere case los te behandelen. Je moet dan echter ook de rest aanpassen. De hele isStateOnline functie wordt overbodig.

MsgrObj.LocalState geeft je de exacte status van iemand. Programmeer maar raak dus ;)

  • Clay
  • Registratie: Oktober 1999
  • Laatst online: 22-06 13:51

Clay

cookie erbij?

ja. Die cases geven aan wat de bepaalde status is van iemand, en als je in plaat van of bij die stukkies commentaar wat meer code neerzet kan je bij de return ook die status meegeven, of die status in een globale var stoppen. Ik heb hier geen msn, dus ik kan niet checken of het werkt, maar zoiets zou wel wat moeten doen:
code:
1
2
3
4
5
6
7
8
9
10
11
var stateList = [];
stateList[2] = "online";
stateList[6] = "invisible";
stateList[10] = "busy";
// ... enz.

function isStateOnline(state) {
   // misschien nog een check op numerieke waarde van state
   if(!state) return false;
   return stateList[state];   
}

die andere functie werkt dan ook nog steeds als het goed is, alleen moet je wel ff de waarde opvangen die je terugkrijgt:
code:
1
2
3
4
5
6
7
if(installed) {
   var userState = isStateOnline(MsgrObj.LocalState);
   if (userState) {
    ...
    // userState bevat nu string met status.
   }
}

Maargoed :) ik kan het niet testen hier, dus het is maar een gok.

Instagram | Flickr | "Let my music become battle cries" - Frédéric Chopin


  • Bosmonster
  • Registratie: Juni 2001
  • Laatst online: 29-08 19:47

Bosmonster

*zucht*

Kijk eens aan.. wordt het nog voor je voorgekauwd ook! ;)

simpeler is trouwens die functie dan te schrappen met Clay's methode en gewoon zoiets te doen:

document.write("User is: "+stateList[MsgrObj.LocalState]);

Verwijderd

Is er trouwens al een page waarop je http- based msm kan doen????


Ik bedoel, je gaat naar een page waarop een client draait waarop je kan msm-en, dit om je firewall te omzeilen????

  • DeFeCt
  • Registratie: Juli 2000
  • Laatst online: 02-09 10:13

DeFeCt

je wéét toch

Op maandag 11 februari 2002 10:56 schreef Ome_Les het volgende:
Is er trouwens al een page waarop je http- based msm kan doen????


Ik bedoel, je gaat naar een page waarop een client draait waarop je kan msm-en, dit om je firewall te omzeilen????
Ja, volgens mij een applet die je kan downloaden...

voorbeeldje..

www.bartim.nl

En dan rechtsboven op messenger klikken

Flickr


Verwijderd

www.nimation.nl/desktop/msg_toolbar/index.html

hier heb je echter nog wel msn voor nodig...

plz niet direct linken :) dataverkeer van server is al zo hoog...

Verwijderd

Owk, het gaat mij namelijk om het volgende;

ik zit hier achter een vuurmuur die echt plamuurvast is zeg maar, ik kan er geen enkele client doorheen krijgen die msm of icq of wat dan ook access-t.

Wil dus graag weten of er een webclient voor is...

ssh en telnet zitten hier ook gewoon dicht namelijk.

  • aqua_man
  • Registratie: Januari 2002
  • Laatst online: 26-07-2023

aqua_man

one life, live it!

Topicstarter
tnx voor jullie help!
scriptje wordt steeds beter, maar nog een vraagje:
weet iemand de state-code voor "offline"?
[2] = "online";
[6] = "invisible";
[10] = "busy";
[14] = "be right back";
[18] = "idle";
[34] = "away";
[50] = "on the phone";
[66] = "out of lunch";
en weet iemand wat "idle" is? volgens mij heb ik helemaal niet zo'n status

2 swim or not 2 swim, that's the question

Pagina: 1