--- drupal/modules/blogapi.module	Tue Jun  8 17:22:48 2004
+++ /home/jseng/public_html/drupal/modules/blogapi.module	Tue Jun  8 23:22:27 2004
@@ -13,6 +13,61 @@
   }
 }
 
+function blogapi_settings() {
+  $output = form_select(t("XML-RPC Engine"), "blogapi_engine", variable_get("blogapi_engine",0), array(0 => "Blogger", 1 => "MetaWeblog", 2 => "Movabletype"), t("Select preferred  engine in RSD."));
+  return $output;
+}
+
+function blogapi_link($type, $node = 0, $main) {
+  if ($type == "system") {
+    menu("blogapi", t("RSD"), "blogapi_blogapi", 0, MENU_HIDE);
+  }
+}
+
+function blogapi_blogapi() {
+  switch (arg(1)) {
+    case "rsd":
+      blogapi_rsd();
+      break;
+    default:
+      drupal_not_found();
+      break;
+  }
+}
+
+function blogapi_rsd() {
+  global $base_url;
+
+  $xmlrpc = $base_url . FILE_SEPARATOR . "xmlrpc.php";
+  $base = url("",NULL,NULL,TRUE);
+  $blogid = 1; # until we figure out how to handle multiple bloggers
+
+  $metaweblog = "false"; $blogger = "false"; $mt = "false";
+  if (variable_get("blogapi_engine",0) == 0) {
+    $blogger = "true";
+  } else if (variable_get("blogapi_engine",0) == 1) {
+    $metaweblog = "true";
+  } else if (variable_get("blogapi_engine",0) == 2) {
+    $mt = "true";
+  }
+
+  print <<<__RSD__
+<?xml version="1.0"?> 
+<rsd version="1.0" xmlns="http://archipelago.phrasewise.com/rsd">
+  <service>
+    <engineName>Drupal-4-Bloggers-0.6</engineName> 
+    <engineLink>http://www.drupal.org/</engineLink>
+    <homePageLink>$base</homePageLink>
+    <apis>
+      <api name="MetaWeblog" preferred="$metaweblog" apiLink="$xmlrpc" blogID="$blogid" />
+      <api name="Blogger" preferred="$blogger" apiLink="$xmlrpc" blogID="$blogid" />
+      <api name="Movabletype" preferred="$mt" apiLink="$xmlrpc" blogID="$blogid" />
+    </apis>
+  </service>
+</rsd>
+__RSD__;
+}
+
 /**
  * Implementation of hook_xmlrpc().
  */
@@ -431,4 +673,9 @@
   }
   return $title;
 }
+
+function blogapi_default_node() {
+  drupal_set_html_head('<link rel="EditURI" type="application/rsd+xml" title="RSD" href="' . url('blogapi/rsd',NULL,NULL,TRUE) . '" />');
+}
+
 ?>
