Hi Tom,
> Anyone else having problems with yy? Yahoo have been
> rejigging their site so that might have messed things up.
Yep.
I played with it a bit tonight to see what the problem was, and they
indeed did change the way some of their forms are working (even provide
MD5 hashing now using random seeds). I fixed the code, then tested it.
Exactly half my tests failed. I spent no less than an hour fighting with
it trying to figure out why one user ID worked and another didn't. Then
I realized I recently changed the failing accounts' password and never
updated the prefs file. Oops. My bad.
Attached is a revised and working yy.xml. Really. Sigh.
The new system does have ONE caveat. It uses much more forceful cookies
from Yahoo. If you find that it continues to demand that you sign in to
an account you just logged out of, click the link to "sign in as a
different user" (then close the browser and "yy" again), otherwise those
cookies may never actually get removed. Signing out DOES NOT completely
remove them and it will try to make you login to the wrong account!
-Shawn
<search function="yy">
<name>My Yahoo!</name>
<category>News</category>
<contributor>Shawn K. Hall</contributor>
<email>[EMAIL PROTECTED]</email>
<description>Login to My Yahoo
<div class="helpboxDescLabels">Example:</div>
<table class="helpboxDescTable">
<tr><td>yy</td></tr>
<tr><td>yy myid</td></tr>
<tr><td>yy myotherid</td></tr>
</table>
<div class="helpboxDescLabels">Profiles:</div>
<table class="helpboxDescTable">
<tr><td>yyid = Array('user', 'pwd', 'http://groups.yahoo.com/');</td></tr>
<tr><td>yy2 = Array('user2', 'pwd2', 'http://my.yahoo.com/');</td></tr>
<tr><td>yy3 = Array('user3', 'pwd3', 'http://games.yahoo.com/');</td></tr>
<tr><td>yy4 = Array('user3', 'pwd3');</td></tr>
</table>
<div class="helpboxDescLabels">Variables:</div>
<table class="helpboxDescTable">
<tr><td>yyid</td><td>An array storing a user and password
profile for Yahoo! The third parameter to the array is the address to visit once you're logged
in.<br />
You SHOULD provide the <em>yyid()</em> variable, however, you may also provide as many other
profiles as necessary to account for your Yahoo ID's. If you were to create a 'second' profile
you would need only to pass the variable name on the command line: <br />
<strong>yy yy2</strong><br />
or<br />
<strong>yy yy3</strong><br />
These variables are, however, case sensitive. If the variable passed does not exist (misspelled,
incorrect case...), this search will 'default' to using the <em>yyid</em> variable.</td></tr>
</table>
</description>
<link>http://my.yahoo.com/</link>
<comment>
This is pretty spiffy, eh?
</comment>
<form name="yyf" method="post" action="https://login.yahoo.com/config/login?">
<input type="hidden" name=".tries" value="1" />
<input type="hidden" name=".src" value="" />
<input type="hidden" name=".md5" value="" />
<input type="hidden" name=".hash" value="" />
<input type="hidden" name=".js" value="" />
<input type="hidden" name=".last" value="" />
<input type="hidden" name="promo" value="" />
<input type="hidden" name=".intl" value="us" />
<input type="hidden" name=".bypass" value="" />
<input type="hidden" name=".partner" value="" />
<input type="hidden" name=".u" value="" />
<input type="hidden" name=".v" value="0" />
<input type="hidden" name=".challenge" value="" />
<input type="hidden" name=".yplus" value="" />
<input type="hidden" name=".emailCode" value="" />
<input type="hidden" name="pkg" value="" />
<input type="hidden" name="stepid" value="" />
<input type="hidden" name=".ev" value="" />
<input type="hidden" name="hasMsgr" value="0" />
<input type="hidden" name=".chkP" value="Y" />
<input type="hidden" name=".done" value="http://my.yahoo.com" />
<input type="hidden" name=".pd" value="" />
<input type="hidden" name="login" value="" />
<input type="hidden" name="passwd" value="" />
<input type="hidden" name=".persistent" value="y" />
<input type="hidden" name=".save" value="Sign In" />
</form>
<script><![CDATA[
function yy(q){
if (q == "?"){qsfind("yy /function"); return false;}
var yyids = Array("",""); if (typeof yyid != "undefined") yyids = yyid;
try{
if (q != "") eval("var yyids = " + q + ";");
}catch(e){
var yyids = Array("",""); if (typeof yyid != "undefined") yyids = yyid;
}
try{
sUrl = "https://login.yahoo.com/config/login?";
var xmlHttp = new ActiveXObject("Microsoft.XmlHttp");
xmlHttp.open("GET", sUrl, false);
xmlHttp.send("");
var sBody = xmlHttp.responseText;
yyfsupport(sBody, /.tries"\svalue\="([^"]+)"\>/g , ".tries");
yyfsupport(sBody, /.src"\svalue\="([^"]+)"\>/g , ".src");
yyfsupport(sBody, /.md5"\svalue\="([^"]+)"\>/g , ".md5");
yyfsupport(sBody, /.hash"\svalue\="([^"]+)"\>/g , ".hash");
yyfsupport(sBody, /.js"\svalue\="([^"]+)"\>/g , ".js");
yyfsupport(sBody, /.last"\svalue\="([^"]+)"\>/g , ".last");
yyfsupport(sBody, /promo"\svalue\="([^"]+)"\>/g , "promo");
yyfsupport(sBody, /.intl"\svalue\="([^"]+)"\>/g , ".intl");
yyfsupport(sBody, /.bypass"\svalue\="([^"]+)"\>/g , ".bypass");
yyfsupport(sBody, /.partner"\svalue\="([^"]+)"\>/g , ".partner");
yyfsupport(sBody, /.u"\svalue\="([^"]+)"\>/g , ".u");
yyfsupport(sBody, /.v"\svalue\="([^"]+)"\>/g , ".v");
yyfsupport(sBody, /.challenge"\svalue\="([^"]+)"\>/g , ".challenge");
yyfsupport(sBody, /.yplus"\svalue\="([^"]+)"\>/g , ".yplus");
yyfsupport(sBody, /.emailCode"\svalue\="([^"]+)"\>/g , ".emailCode");
yyfsupport(sBody, /pkg"\svalue\="([^"]+)"\>/g , "pkg");
yyfsupport(sBody, /stepid"\svalue\="([^"]+)"\>/g , "stepid");
yyfsupport(sBody, /.ev"\svalue\="([^"]+)"\>/g , ".ev");
yyfsupport(sBody, /hasMsgr"\svalue\="([^"]+)"\>/g , "hasMsgr");
yyfsupport(sBody, /.chkP"\svalue\="([^"]+)"\>/g , ".chkP");
yyfsupport(sBody, /.done"\svalue\="([^"]+)"\>/g , ".done");
yyfsupport(sBody, /.pd"\svalue\="([^"]+)"\>/g , ".pd");
document.yyf.login.value = yyids[0];
document.yyf.passwd.value = yyids[1];
if (yyids.length>1){
document.yyf['.done'].value = yyids[2];
}
}catch(e){}
if (document.yyf['.done'].value=="undefined"){
document.yyf['.done'].value = "http://my.yahoo.com/";
}
/*
var passwd = calcMD5(document.yyf["passwd"].value);
var challenge = document.yyf[".challenge"].value;
var fullhash = calcMD5( passwd + challenge );
document.yyf.passwd.value = fullhash;
document.yyf[".md5"].value = 1;
document.yyf[".hash"].value = 1;
document.yyf[".js"].value = 1;
*/
document.yyf.action = "https://login.yahoo.com/config/login?";
// document.yyf.action = "http://reliableanswers.com/test/asptest.asp";
submitForm(yyf);
}
function yyfsupport(sBody,rx,fld){
var r;
while ((r = rx.exec(sBody)) != null){
document.yyf[fld].value = r[1];
//alert(fld + "=" + r[1]);
}
}
]]></script>
<copyright>
Copyright (c) 2003-2008 Shawn K. Hall
Distributed under the terms of the GNU Public License, Version 2 (http://www.gnu.org/copyleft/gpl.txt)
</copyright>
</search>
-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2008.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
_______________________________________________
To unsubscribe visit:
https://lists.sourceforge.net/lists/listinfo/dqsd-users
DQSD-Users@lists.sourceforge.net
http://sourceforge.net/mailarchive/forum.php?forum_id=8601