Tadashi Okoshi
slash****@users*****
2005年 12月 10日 (土) 11:12:29 JST
Index: affelio/lib/Affelio/SNS/Handshaker_s.pm
diff -u affelio/lib/Affelio/SNS/Handshaker_s.pm:1.28 affelio/lib/Affelio/SNS/Handshaker_s.pm:1.29
--- affelio/lib/Affelio/SNS/Handshaker_s.pm:1.28 Sat Dec 10 09:51:52 2005
+++ affelio/lib/Affelio/SNS/Handshaker_s.pm Sat Dec 10 11:12:28 2005
@@ -14,7 +14,7 @@
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
#
-# $Id: Handshaker_s.pm,v 1.28 2005/12/10 00:51:52 slash5234 Exp $
+# $Id: Handshaker_s.pm,v 1.29 2005/12/10 02:12:28 slash5234 Exp $
########################################################################
#package Affelio::SNS::Handshaker_s::Util;
@@ -88,28 +88,54 @@
}
#################################
- #authenticate
-
+ #authentication
+ #################################
#distill username
+ $xwsse_mesg =~ /Username="(.*)",(\s*)Password/;
+ my $username = $1;
+ debug_print("S::get_news username = [$username]");
#get password
+ my $passAB = $af->getFM()->get_attribute_by_afid($username, "password");
+ debug_print("S::get_news passAB = [$passAB]");
#auth
+ if(Affelio::misc::WSSE::authenticate($xwsse_mesg,$username,$passAB)){
+ debug_print("S::get_news WSSE authentication OK.");
+ }else{
+ debug_print("S::get_news WSSE authentication NG.");
+ return {
+ flerror => XMLRPC::Data->type('boolean', 1),
+ message => "ERR:201 AuthenticationError"
+ };
+ }
#################################
#get what's new contents
+ #################################
+ my $last_news_out = $af->getFM()->get_attribute_by_afid($username,
+ "last_news_out");
+ debug_print("S::get_news last_news_out=[$last_news_out]");
+
+ my $news = $af->getMyNews()->retrieve_news(laterthan =>$last_news_out);
+
+ my @row=();
+ my $ret="";
+ while(@row = $news->fetchrow_array){
+ $ret .= "$row[1]\n$row[2]\n$row[3]\n$row[4]\n$row[5]\n$row[6]\n";
+ }
+
+ #################################
+ #update last_news_out
+ #################################
+ my $uid = $af->getFM()->get_attribute_by_afid($username, "uid");
+ $af->getFM()->set_attribute_by_id($uid, "last_news_out",
+ Affelio::misc::Time::get_timestamp());
#################################
#send back return message
-
- #FORMAT
- # datetime appname title description creator
- # datetime appname title link
- my $ret= Affelio::misc::Time::get_timestamp()
- . "\ndiary\ntest\ndesc\ncreator\n"
- . $af->{site__web_root};
-
+ #################################
return {
flerror => XMLRPC::Data->type('boolean', 0),
message => $ret