### 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'); +}