### Eclipse Workspace Patch 1.0
#P friendlist
Index: friendlist_import_bl2/friendlist_import_bl2.info
===================================================================
RCS file: friendlist_import_bl2/friendlist_import_bl2.info
diff -N friendlist_import_bl2/friendlist_import_bl2.info
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ friendlist_import_bl2/friendlist_import_bl2.info 1 Jan 1970 00:00:00 -0000
@@ -0,0 +1,8 @@
+; $Id$
+name = Friendlist Importer for Buddylist2
+description = Import data from Buddylist2
+core = 6.x
+package = Friendlist
+dependencies[] = friendlist_api
+dependencies[] = buddylist_api
+project = "friendlist"
Index: friendlist_import_bl2/friendlist_import_bl2.module
===================================================================
RCS file: friendlist_import_bl2/friendlist_import_bl2.module
diff -N friendlist_import_bl2/friendlist_import_bl2.module
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ friendlist_import_bl2/friendlist_import_bl2.module 1 Jan 1970 00:00:00 -0000
@@ -0,0 +1,107 @@
+ 'Friendlist Buddylist2 importer',
+ 'description' => 'Import data from Buddylist2',
+ 'page callback' => 'drupal_get_form',
+ 'page arguments' => array('friendlist_import_bl2_form'),
+ 'type' => MENU_NORMAL_ITEM,
+ 'access callback' => 'user_access',
+ 'access arguments' => array('administer site configuration'),
+ );
+
+ return $items;
+}
+
+
+function friendlist_import_bl2_form(&$form_state, $edit=NULL ){
+
+ drupal_set_title("Buddylist2 data importer");
+
+ $form['info'] = array(
+ '#value' => t('
This is DESTRUCTIVE. YOU WILL LOSE ALL YOUR Friendlist DATA. WATCH OUT.
')
+ );
+
+ $form['submit'] = array(
+ '#type' => 'submit',
+ '#value' => t('Import'),
+ );
+
+ return $form;
+
+}
+
+function friendlist_import_bl2_form_submit(&$form_state, $edit=NULL ) {
+ drupal_set_message("Done!");
+
+ // Delete the existing relations and relation types
+ db_query("DELETE FROM {friendlist_relation_types}");
+ db_query("DELETE FROM {friendlist_relations}");
+ db_query("DELETE FROM {friendlist_statuses}");
+
+
+ // Get the relation types from Budylist.
+ $r = db_query("SELECT * FROM {buddylist_relationtypes}");
+ while ($row = db_fetch_object($r)) {
+ db_query("INSERT INTO {friendlist_relation_types} SET rtid=%d, name='%s', name_p='%s', oneway=%s, active=%d",$row->rtid, $row->name, $row->name, $row->oneway, $row->active);
+ if ($row->oneway) {
+ $oneway_list[$row->rtid]=TRUE;
+ }
+ }
+
+
+ $r = db_query("SELECT * FROM {buddylist_relations}");
+ while ($row = db_fetch_object($r)) {
+
+ // Case #1: it's a 1-way relationship, "just add it" (if it's approved)
+ if ($oneway_list[$row->rtid]) {
+ if ($row->state) {
+ friendlist_api_relation_add($row->requester_id, $row->requestee_id, $row->rtid, '', FALSE);
+ db_query("UPDATE {friendlist_relations} SET create_time=%d, message='%s' WHERE requester_id='%d' AND requestee_id=%d AND rtid=%d", $row->create_time, $row->message, $row->requester_id, $row->requestee_id, $row->rtid);
+ }
+
+ // Case #2: it's a 2-way relationship. Watch out: only add the "other side"
+ // if it's been approved
+ } else {
+ friendlist_api_relation_add($row->requester_id, $row->requestee_id, $row->rtid, '', FALSE);
+ db_query("UPDATE {friendlist_relations} SET create_time=%d, message='%s' WHERE requester_id='%d' AND requestee_id=%d AND rtid=%d",$row->create_time, $row->message, $row->requester_id, $row->requestee_id, $row->rtid);
+ if($row->state) {
+ friendlist_api_relation_add($row->requestee_id, $row->requester_id, $row->rtid, '', FALSE);
+ db_query("UPDATE {friendlist_relations} SET create_time=%d WHERE requester_id='%d' AND requestee_id=%d AND rtid=%d",$row->create_time, $row->requestee_id, $row->requester_id, $row->rtid);
+ }
+ }
+ }
+
+ drupal_goto('admin/settings/friendlist_import_bl2');
+}