Forum:Memory-Alpha suche für Firefox

aus Memory Alpha, der freien deutschen Star-Trek-Datenbank
Spring zu: Navigation, suche

vieleicht können die Firefox User unter euch, dies gebrauchen--ShismaBitte korrigiert mich 11:03, 26. Jul. 2008 (UTC)

Genial! Klasse Idee, das wird sich als praktisch erweisen. Vielen Dank! -- Plasmarelais Ξ TALK Ξ 21:59, 26. Jul. 2008 (UTC)
Wobei man zumindest beim Firefox 3 Suchmaschinen von Seiten auf denen man grade ist im Firefox selber hinzufügen kann. --HenK | discuss 09:13, 27. Jul. 2008 (UTC)

Ubiquity[Bearbeiten]

für Nutzer des neuen Firefox plugin Ubiquity (kann ich nur empfehlen) habe ich ein Script zum durchsuchen der Wikipedia geändert so das man mit dem befehl ma-de (suchwort) die ma durchsuchen kann. um es nutzen zu können müsst ihr command-editor eintippen und anschließend die Enter taste. In das Textfeld, das sich nun öffnet müsst ihr den folgenden Text kopieren:


CmdUtils.CreateCommand({
  name: "ma-de",
  takes: {search: noun_arb_text},
  locale: "de-DE",
  homepage: "http://theunfocused.net/moz/ubiquity/verbs/",
  author: {name: "Blair McBride (Original), Shisma(Modifiecation)", email: "blair@theunfocused.net"},
  license: "MPL",
  icon: "http://images.wikia.com/memoryalpha/de/images/6/64/Favicon.ico",
  description: "Durchsucht die Deutsche Memory-Alpha",
  preview: function(previewBlock, directObject) {
    var apiUrl = "http://memory-alpha.org/de/api.php";

    var searchText = jQuery.trim(directObject.text);
    if(searchText.length < 1) {
      previewBlock.innerHTML = "Durchsucht Memory Alpha (deutsch)";
      return;
    }

    var previewTemplate = "Durchsuche Memory Alpha nach <b>${query}</b> ...";
    var previewData = {query: searchText};
    previewBlock.innerHTML = CmdUtils.renderTemplate(previewTemplate, previewData);

    var apiParams = {
      format: "json",
      action: "query",
      list: "search",
      srlimit: 5, // is this a good limit?
      srwhat: "title",
      srsearch: searchText
    };

    jQuery.ajax({
      type: "GET",
      url: apiUrl,
      data: apiParams,
      datatype: "string",
      error: function() {
        previewBlock.innerHTML = "Fehler beim suchen";
      },
      success: function(searchReponse) {
        searchReponse = Utils.decodeJson(searchReponse);

        if(!("query" in searchReponse && "search" in searchReponse.query)) {
          previewBlock.innerHTML = "Fehler beim suchen";
          return;
        }

        function generateWikipediaLink(title) {
          var madeUrl = "http://memory-alpha.org/de/wiki/";
          return madeUrl + title.replace(/ /g, "_");
        }

        previewData = {
          query: searchText,
          results: searchReponse.query.search,
          _MODIFIERS: {wikilink: generateWikipediaLink}
        };

        previewBlock.innerHTML = CmdUtils.renderTemplate({file:"wikipedia.html"}, previewData);

        jQuery(previewBlock).find("div[wikiarticle]").each(function() {
          var article = jQuery(this).attr("wikiarticle");
          fetchMemoryAlphaArticle(this, article);
        });

      }
    });
  },
  execute: function(directObject) {
    var searchUrl = "http://memory-alpha.org/de/wiki/Spezial:Suche";
    var searchParams = {search: directObject.text};
    Utils.openUrlInBrowser(searchUrl + Utils.paramsToString(searchParams));
  }
});


function fetchMemoryAlphaArticle(previewBlock, articleTitle) {
  /* TODO
   - apply CSS max-height & overflow-y to summary container
  */
  var apiUrl = "http://memory-alpha.org/de/api.php";
  var apiParams = {
    format: "json",
    action: "parse",
    page: articleTitle
  };

  jQuery.ajax({
    type: "GET",
    url: apiUrl,
    data: apiParams,
    datatype: "string",
    error: function() {
      previewBlock.innerHTML = "<i>Error retreiving summary.</i>";
    },
    success: function(responseData) {
      responseData = Utils.decodeJson(responseData);

      var tempElement = CmdUtils.getHiddenWindow().document.createElementNS("http://www.w3.org/1999/xhtml", "div");
      tempElement.innerHTML = responseData.parse.text["*"];

      //take only the text from summary because links won't work either way
      var articleSummary = jQuery(tempElement).find('p').eq(0).text();
      //remove citations [3], [citation needed], etc.
      //TODO: also remove audio links (.audiolink & .audiolinkinfo)
      articleSummary = articleSummary.replace(/\[([^\]]+)\]/g,"");

      //TODO: remove "may refer to" summaries

      var articleImageSrc = jQuery(tempElement).find(".wiki-sidebar img").attr("src") ||
      jQuery(tempElement).find(".thumbimage").attr("src");

      var previewTemplate = "<img src=\"${img}\" style=\"float: right; max-width: 80px;background-color: black; margin-left:1em;\" />" +
      "<span class=\"wikisummary\">${summary}</span>";

      var previewData = {
        img: articleImageSrc,
        summary: articleSummary
      };

      previewBlock.innerHTML = CmdUtils.renderTemplate(previewTemplate, previewData);
    }
  });
}

viel Spaß damit--ShismaBitte korrigiert mich 21:30, 4. Sep. 2008 (UTC)

ich habe gerade bemerkt das die live vorschau seit version 0.1.2 nicht mehr funktioniert. ich würde den befehl überarbeiten wenn nachfrage besteht :/--ShismaBitte korrigiert mich 23:09, 25. Nov. 2008 (UTC)