#include <infodrom.style>
#include <quote.style>
#include <db.style>
#include "fortunes.inc"

<?
  if (isset ($_GET["js"]) && $_GET["js"] == 1) {
    if (isset($_GET["type"]) && strlen($_GET["type"])) {
      $db = array();
      $db["general"] = "linux infodrom infodrom-linux knghtbrd linuxcookie linuxtag infodrom-startrek channel-debian-de";
      $db["general-en"] = "linux infodrom-linux knghtbrd linuxcookie";
      $db["linux"] = "linux infodrom-linux knghtbrd linuxcookie";
      $db["infodrom"] = "infodrom infodrom-linux infodrom-startrek linuxtag";

      if (!isset($db[$_GET["type"]]))
        exit();

      $cookie = array();
      $cmd = "/usr/games/fortune -s " . $db[$_GET["type"]] . " 2> /dev/null";
      chdir ("/org/infodrom.org/fortunes");

      $fortunes = popen ($cmd, "r");
      if ($fortunes === false || !is_resource($fortunes)) exit();

      while (!feof ($fortunes)) {
        $line = fgets ($fortunes, 255);
	$cookie[] = $line;
      }
      pclose ($fortunes);
      echo format_cookie ($cookie, "0");
      exit();
    }

    if (!isset ($_GET["keyword"]) || !strlen($_GET["keyword"]))
      exit();

    $dbh = pg_pconnect ("<dbhost>", "<dbport>", "<dbname>");
    if ($dbh) {
      $query = sprintf ("SELECT keyword FROM fortunes_compiled WHERE keyword LIKE '%s%%' ORDER BY scores DESC,keyword LIMIT 10",
                        pg_escape_string($_GET["keyword"]));
      $sth = pg_exec ($dbh, $query);
      $result = array ();
      $count = 0;
      for ($nr=0; $nr < pg_NumRows ($sth) && $count < 85; $nr++) {
        $row = pg_fetch_array ($sth, $nr);
	if ($result)
	  $count += 2;
        $result[] = $row["keyword"];
	$count += strlen($row["keyword"]);
      }
      if ($count > 85)
        unset ($result[count($result)-1]);
      echo json_encode ($result) . "\n";
      exit();
    } else {
      exit();
    }
  }
?>

<page title="Infodrom Fortune Cookies Lookup">

<p>The following results have been found.<p>

<format_cookie>
<display_cookies>

<div class=fortunes>

<?php
  if (!strcmp ($_GET['category'], "infodrom")) {
    $db = "infodrom";
  } elseif (!strcmp ($_GET['category'], "infodrom-linux")) {
    $db = "infodrom-linux";
  } elseif (!strcmp ($_GET['category'], "linuxtag")) {
    $db = "linuxtag";
  } elseif (!strcmp ($_GET['category'], "debian-de")) {
    $db = "channel-debian-de";
  } elseif (!strcmp ($_GET['category'], "linux")) {
    $db = "linux";
  } elseif (!strcmp ($_GET['category'], "linuxcookie")) {
    $db = "linuxcookie";
  } elseif (!strcmp ($_GET['category'], "knghtbrd")) {
    $db = "knghtbrd";
  } elseif (!strcmp ($_GET['category'], "all")) {
    $db = "25% infodrom 25% infodrom-linux 25% linuxtag 25% channel-debian-de ";
  } elseif (!strcmp ($_GET['category'], "reallyall")) {
    $db = "/org/infodrom.org/fortunes";
  } else {
    $db = "34% infodrom 33% infodrom-linux 33% linuxtag";
  }

  if (strlen ($_GET['keyword']) > 0) {
    $keyword = $_GET['keyword'];
    $keyword = str_replace (array("'","`","\""),
			    array("", "", ""),
			    $keyword);

    $dbh = pg_pconnect ("", "", "web");
    if ($dbh) {
      $query = sprintf ("INSERT INTO fortunes_keywords VALUES ('%s','%s','%s')",
		        pg_escape_string($keyword),
			date ("Y-m-d H:i"),
			$_SERVER['REMOTE_ADDR']);
      pg_exec ($dbh, $query);
    }
  }
  if (strlen ($keyword) == 0) {
    $keyword = 'Debian';
  }

  display_cookies ($db, $keyword, 0, 0);
?>

</div>

</page>

# Local variables:
# mode: html
# mode: auto-fill
# mode: iso-accents
# end:
