realJoshByrnes revised this gist . Go to revision
1 file changed, 67 insertions
passportupdater.mrc(file created)
@@ -0,0 +1,67 @@ | |||
1 | + | ; The last ever MSN Chat passport updater - 16/05/2017 | |
2 | + | ; - Based on my previous work (sslupdatefix.mrc) - 10/04/2006 | |
3 | + | ; - Update $sockerr check for AdiIRC compatibility - 14/01/2025 | |
4 | + | ||
5 | + | ; - Why doesn't it get my PassportProfile? It's no longer sent by MSN. | |
6 | + | ||
7 | + | ;Just type /ppu.update to update passport | |
8 | + | ;You may need to change the %variables to suit your connection | |
9 | + | ||
10 | + | alias PPU.Update { | |
11 | + | if (!$sslready) { PPU.Result NeedSSL | halt } | |
12 | + | if ($2) getinfo $1 $2 | |
13 | + | else { | |
14 | + | if (!%Email) set %Email $$?"Please enter your email address" | |
15 | + | if (!%Passwd) set %Passwd $$?"Please enter your password" | |
16 | + | PPU.Getinfo %Email %Passwd | |
17 | + | } | |
18 | + | set %PPU.time $ticks | |
19 | + | } | |
20 | + | ||
21 | + | alias PPU.Result { | |
22 | + | if ($1 == Fail) echo -at [Update Status] Passport Update Failed. Please check your username and password | |
23 | + | elseif ($1 == GotTP) { | |
24 | + | if ($right($gettok($2,1,38), -2) != $null) { | |
25 | + | set %Ticket $ifmatch | |
26 | + | } | |
27 | + | if ($right($gettok($2,2,38), -2) != $null) { | |
28 | + | set %Profile $ifmatch | |
29 | + | } | |
30 | + | echo -at [Update Status] Complete ( $+ $iif(%Email,%Email,unknown) - $calc(($ticks - %PPU.time) / 1000) $+ s) | |
31 | + | unset %PPU.time | |
32 | + | } | |
33 | + | elseif ($1 == NeedSSL) { | |
34 | + | echo -at [Update Status] Passport Update Failed. SSL not available. | |
35 | + | } | |
36 | + | else echo -at [Update Status] Unknown. (An Error Has Occurred) $1- | |
37 | + | } | |
38 | + | ||
39 | + | on 1:SOCKOPEN:PPU.Update.*:{ | |
40 | + | if (!$sockerr) { | |
41 | + | sockwrite -t $sockname GET /login2.srf HTTP/1.0 $+ $crlf $+ $& | |
42 | + | Authorization: Passport1.4 OrgVerb=GET,OrgURL=?,sign-in= $+ $PPU.URLEncode(%Email) $+ ,pwd= $+ $PPU.URLEncode(%Passwd) $+ ,id=507 $+ $crlf $+ $& | |
43 | + | Host: login.live.com $+ $crlf $+ $crlf | |
44 | + | } | |
45 | + | } | |
46 | + | ||
47 | + | on 1:sockread:PPU.Update.*:{ | |
48 | + | var %x | sockread %x | tokenize 32 %x | |
49 | + | if ($1 isin authentication-info: www-authenticate:) { | |
50 | + | if ($gettok($3,1,44) == da-status=failed) PPU.Result Fail NoRetry | |
51 | + | elseif ($gettok($3,1,44) == da-status=success) PPU.Result GotTP $gettok($3,2,39) | |
52 | + | } | |
53 | + | elseif ($1 == Location:) { sockopen -e PPU.Update. $+ $r(1111,9999) $gettok($2-,2,47) 443 } | |
54 | + | } | |
55 | + | ||
56 | + | alias PPU.URLEncode { | |
57 | + | var %encode = $1- | |
58 | + | while ($regex($eval(%encode,1), /([^a-zA-Z0-9_\-\.])/)) { | |
59 | + | var %t = $regsub($eval(%encode,1), /([^a-zA-Z0-9_\-\.])/, $+(,$base($asc($regml(1)),10,16,2)), %encode) | |
60 | + | } | |
61 | + | return $replace(%encode, , %) | |
62 | + | } | |
63 | + | ||
64 | + | alias PPU.GetInfo { | |
65 | + | if ($2) { set %Email $1 | set %Passwd $2 } | |
66 | + | sockopen -e PPU.Update. $+ $r(1111,9999) login.live.com 443 | |
67 | + | } |
Newer
Older