summaryrefslogtreecommitdiff
path: root/portal/tools/search/generic.php
blob: 8ae2b1f3c540881155869f490681520af002dc44 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
#!/usr/bin/php
<?php
   function __autoload($class) { require_once("classes/$class.class.php"); }
   ini_set("memory_limit", "32M");

   $full = 0;
   $site = '';

	array_shift($argv);
   while ($a = array_shift($argv)) {
      switch ($a) {
         case '-h': Usage();
         case '-?': Usage();
         case '-site': $site = array_shift($argv);if (!$site) Usage("-site requires site name to be specified");break;
         case '-empty': $site = '%';break;
         case '-all': $site = '*';break;
         case '-full': $full = 1; break;
         default: Usage("Unknown argument $a");
      }
   }

   if ($site == '') Usage("Must specify site, -empty or -all");

   if ($site == '*' || $site == '%') {
      if ($site == '*') {
         $sites = SearchDB::QueryArray("SELECT id,baseurl,allowquestionmark,pagecount FROM sites WHERE NOT id=1 ORDER BY id");
      } else {
         $sites = SearchDB::QueryArray("SELECT id,baseurl,allowquestionmark,pagecount FROM sites WHERE NOT id=1 AND pagecount=0 ORDER BY id");
      }
      foreach ($sites as $siteinfo) {
         print "Starting site " . $siteinfo['baseurl'] . " [" . $siteinfo['id'] . "]\n";
         $gsi = new GenericSiteIndexer($siteinfo['id'], $siteinfo['baseurl'], $siteinfo['allowquestionmark']);
         if (!$full && $siteinfo['pagecount'] == 0) {
            print "No pages yet, doing full scan\n";
            $gsi->IndexSite(1);
         }
         else {
            $gsi->IndexSite($full);
         }
      }
   }
   else {
      $siteid = SearchDB::QueryArray("SELECT id,allowquestionmark FROM sites WHERE baseurl='" . $site . "'");
      if (!$siteid || count($siteid)!=1) {
         die("Could not find site $site\n");
      }
      $siteinfo = $siteid[0];
      $gsi = new GenericSiteIndexer($siteinfo['id'], $site, $siteinfo['allowquestionmark']);
      $gsi->IndexSite($full);
   }

   function Usage($err='') {
      if ($err != "") {
         print $err . "\n\n";
      }
      print "Usage:\n";
      print "  generic.php (-site <site> | -all | -empty) [-full]\n\n";
      exit(1);
   }
?>