[Affelio-cvs 180] CVS update: affelio/lib/Affelio/SNS

Back to archive index

Tadashi Okoshi slash****@users*****
2005年 6月 26日 (日) 23:20:40 JST


Index: affelio/lib/Affelio/SNS/FriendManager.pm
diff -u affelio/lib/Affelio/SNS/FriendManager.pm:1.4 affelio/lib/Affelio/SNS/FriendManager.pm:1.5
--- affelio/lib/Affelio/SNS/FriendManager.pm:1.4	Sun Jun 26 21:10:42 2005
+++ affelio/lib/Affelio/SNS/FriendManager.pm	Sun Jun 26 23:20:39 2005
@@ -4,7 +4,7 @@
 #    http://affelio.jp/ (Japan)
 #    http://affelio.jp/ (USA and other area)
 #
-# $Id: FriendManager.pm,v 1.4 2005/06/26 12:10:42 slash5234 Exp $
+# $Id: FriendManager.pm,v 1.5 2005/06/26 14:20:39 slash5234 Exp $
 
 package Affelio::SNS::FriendManager;
 {
@@ -17,6 +17,7 @@
     use Affelio::misc::CGIError;
     use Affelio::misc::Debug qw(debug_print);
     use Affelio::misc::Time;
+    use Affelio::misc::DBroutines qw(db_value_replace);
 
     ########################################################################
     #Constructor
@@ -161,14 +162,38 @@
     ########################################################################
     sub remove_friend{               #void
 	my $self = shift;
-	my $af_id = shift;           #arg(1) uid (int)
-	
+	my $uid = shift;           #arg(1) uid (int)
 	my $af = $self->{af};
 
-	#$af_id = $af->{db}->quote($af_id);
-	
-	#XXX
-	#Not implemented yet.
+	Affelio::misc::Debug::debug_print("FM::remove_friend:start.");
+
+	#Remove entry(uid) from AFuser_CORE_friends
+	my $q1 = "DELETE FROM AFuser_CORE_friends WHERE uid = $uid";
+	my $s1 = $af->{db}->prepare($q1) or die $af->{db}->errstr;
+	$s1->execute() or die $af->{db}->errstr;
+	undef($q1);
+	undef($s1);
+	Affelio::misc::Debug::debug_print("FM::remove_friend:\t removed entry($uid) from F1 DB");
+	
+	#Remove uid from friends of others in AFuser_CORE_friends
+	db_value_replace($af->{db},
+			 "AFuser_CORE_friends",
+			 "uid",
+			 "f2list",
+			 ",$uid," ,
+			 ",," , 
+			 );
+	Affelio::misc::Debug::debug_print("FM::remove_friend:\t removed entry($uid) from other's F2list in F1 DB");
+
+	#Remove uid from friends of others in AFuser_CORE_friendsfriends
+	db_value_replace($af->{db},
+			 "AFuser_CORE_friendsfriends",
+			 "uid",
+			 "f1list",
+			 ",$uid," ,
+			 ",," , 
+			 );
+	Affelio::misc::Debug::debug_print("FM::remove_friend:\t removed entry($uid) from other's F1list in F2 DB");
     }
 
 
@@ -558,68 +583,6 @@
 	$sth->execute or die $af->{db}->errstr;
     }
 
-    sub db_value_replace{
-	my $db = shift; 
-	my $dbname = shift;
-	my $key_col = shift;
-	my $target_col = shift;
-	my $old = shift;
-	my $new = shift;
-
-	Affelio::misc::Debug::debug_print("FM::db_replace: start.");
-	######################################
-	#Retrieve data
-	######################################
-	my $q1 = "SELECT $key_col, $target_col FROM $dbname";
-
-	Affelio::misc::Debug::debug_print("FM::db_replace: [$q1]");
-
-	my $s1 = $db->prepare($q1);
-	if($@){
-	    Affelio::misc::Debug::debug_print("FM::db_replace:".$db->errstr);
-	    die $db->errstr;
-	}
-
-	$s1->execute();
-	if($@){
-	    Affelio::misc::Debug::debug_print("FM::db_replace:".$db->errstr);
-	    die $db->errstr;
-	}
-
-	######################################
-	#Distill each line, replace, and store 
-	######################################
-	Affelio::misc::Debug::debug_print("FM::db_replace: distilling...");
-	my $key_data;
-	my $target_data;
-	my $target_data_new;
-	while( ($key_data, $target_data) = $s1->fetchrow_array){
-	    $target_data_new = $target_data;
-	    $old =~ s/\-/\\\-/g;
-	    $target_data_new =~ s/$old/$new/g; 
-
-	    Affelio::misc::Debug::debug_print("FM::db_replace: [$key_data] [$target_data]->[$target_data_new]");
-
-	    my $q2 = "update $dbname set $target_col = '$target_data_new' where $key_col = $key_data";
-	    Affelio::misc::Debug::debug_print("FM::db_replace: [$q2]");
-	    
-	    my $s2 = $db->prepare($q2);
-	    if($@){
-	    Affelio::misc::Debug::debug_print("FM::db_replace:".$db->errstr);
-	    die $db->errstr;
-	    }
-
-	    $s2->execute();
-	    if($@){
-	    Affelio::misc::Debug::debug_print("FM::db_replace:".$db->errstr);
-	    die $db->errstr;
-	    }   
-
-	}
-
-	Affelio::misc::Debug::debug_print("FM::db_replace: end.");
-    }
-    
 
 
     ########################################################################


Affelio-cvs メーリングリストの案内
Back to archive index