Monday, November 08, 2010 at 12:01 AM.
system.verbs.apps.identica.authenticate
on authenticate (username, password, server="identi.ca") {
<<Changes
<<3/12/09; 6:05:58 AM by DW
<<New optional param, server, allows you to post to another instance of Laconica.
<<7/19/08; 11:08:21 AM by DW
<<Add a cache.
<<7/19/08; 10:57:49 AM by DW
<<Created. Returns true if the user has a valid identi.ca login false otherwise.
local (adrcache);
bundle { //check the cache
adrcache = @system.temp.identicaAuthentications;
if not defined (adrcache^) {
new (tabletype, adrcache)};
adrcache = @adrcache^.[server];
if not defined (adrcache^) {
new (tabletype, adrcache)};
adrcache = @adrcache^.[username];
if defined (adrcache^) {
if adrcache^ == password {
return (true)}}};
try {
local (replies);
if identica.getReplies (@replies, username, password, server) {
adrcache^ = password;
return (true)}};
return (false)}
<<bundle //test code
<<dialog.alert (authenticate ("georgematesky", "fuckyou!"))
<<dialog.alert (authenticate (user.identica.prefs.username, user.identica.prefs.password, "home.smallpicture.com"))
<<dialog.alert (authenticate (user.identica.prefs.username, user.identica.prefs.password))
This listing is for code that runs in the OPML Editor environment. I created these listings because I wanted the search engines to index it, so that when I want to look up something in my codebase I don't have to use the much slower search functionality in my object database. Dave Winer.