Remove "Community" page link and replace MTVN ad.
Remove "Community" page link and replace MTVN ad.

File last commit:

6c602be266b6
e847f7800b28
Show More
external.php
296 lines | 5.8 KiB | text/x-php | XmlPhpLexer
/ external.php
Add root-directory files.
r2 <?php
require_once 'frontend.inc.php';
class MTAPIi
{
private static $db_conn;
static function construct($db)
{
$db_conn = $db;
return mysqli_ping($db_conn);
}
static function destruct()
{
$db_conn = NULL;
}
#This just returns the current maximum comic
static function getNumStrips()
{
return max_strip_id();
}
static function getNumPanels($comic)
{
return get_num_panels($comic);
}
static function getPanelTranscript($comic, $panel, $xml=false)
{
if(!validate_panel_id($comic, $panel))
{
die("Invalid args: $comic $panel\n");
return false;
}
$script = build_panel_transcript($comic, $panel);
if(!$xml)
{
return $script;
}
else
{
$ret = '<panel id="'.$panel.'">';
foreach($script as $id => $line)
{
$ret .= '<line id="' . ($id+1) . '" speaker="'.utfentities($script[$id]['speaker']).'">';
$ret .= utfentities($script[$id]['speech']);
$ret .= '</line>';
}
$ret .= '</panel>';
}
return $ret;
}
static function getStripTranscript($comic, $xml=false)
{
if(!validate_comic_id($comic))
{
return false;
}
$script = array();
$panels = MTAPIi::getNumPanels((int)$comic);
#Panel numbering is 1-indexed, not 0-indexed, for semantic reasons
for($i=1; $i <= $panels; $i++)
{
$script[]= MTAPIi::getPanelTranscript($comic, $i, $xml);
}
if(!$xml)
{
return $script;
}
else
{
$ret = '<comic id="'.$comic.'">';
$ret .= implode($script, '');
$ret .= '</comic>';
}
return $ret;
}
static function getCharactersByPanel($comic, $panel, $speakersOnly=false)
{
if(!validate_panel_id($comic, $panel))
{
return false;
}
$panels = MTAPIi::getNumPanels($comic);
$query = 'SELECT DISTINCT speaker FROM transcript WHERE strip = '.(int)$comic;
$query .= ' AND panel = '.(int)$panel;
$query .= ' AND speaker NOT LIKE "#%" ';
if($speakersOnly)
{
$query .= " AND search != '' ";
}
$query .= 'ORDER BY speaker';
return query_to_array($query);
}
static function getCharactersByStrip($comic, $speakersOnly=false)
{
if(!validate_comic_id($comic))
{
return false;
}
$query = 'SELECT DISTINCT speaker FROM transcript WHERE strip = '.(int)$comic;
$query .= ' AND speaker NOT LIKE "#%" ';
if($speakersOnly)
{
$query .= " AND search != '' ";
}
$query .= 'ORDER BY speaker';
return query_to_array($query);
}
static function getStripTitle($comic)
{
if(!validate_comic_id($comic))
{
return false;
}
$strip = load_strip($comic);
return $strip['title'];
}
static function getStripPubdate($comic)
{
if(!validate_comic_id($comic))
{
return false;
}
$strip = load_strip($comic);
return $strip['published'];
}
static function getStripType($comic)
{
if(!validate_comic_id($comic))
{
return false;
}
$strip = load_strip($comic);
return $strip['type'];
}
static function getStripTypeName($comic)
{
if(!validate_comic_id($comic))
{
return false;
}
#load_strip() really isn't the best tool for this job, as it would mean two queries instead of one
$query = 'SELECT description FROM strip_t
JOIN strip ON strip.type = strip_t.id
WHERE strip.id = '.(int)$comic;
$qr = query_to_array($query);
return $qr[0];
}
static function getStripMeta($comic)
{
if(!validate_comic_id($comic))
{
return false;
}
$query = 'SELECT meta_t.id FROM meta_t
JOIN meta ON meta_t.id = meta.meta
JOIN strip_t ON meta.type = strip_t.id
JOIN strip ON strip.type = strip_t.id
WHERE strip.id = '.(int)$comic.' ORDER BY meta_t.id';
$qr = query_to_array($query);
return $qr;
}
static function getStrip($comic)
{
if(!validate_comic_id($comic))
{
return false;
}
$strip = load_strip($comic);
$strip['type'] = self::getStripTypeName($strip['type']);
$strip['number'] = self::getStripNumberInType($comic);
unset($strip['udate']);
return $strip;
}
static function getStripNumberInType($comic)
{
if(!validate_comic_id($comic))
{
return false;
}
$type = self::getStripType($comic);
$query = "SELECT count(*)
FROM strip_t JOIN strip ON strip_t.id = strip.type
WHERE strip.id < {$comic}+1
AND strip.type = {$type}";
$qr = query_to_array($query);
return $qr[0];
}
static function getStripMetaName($comic)
{
if(!validate_comic_id($comic))
{
return false;
}
$query = 'SELECT meta_t.name FROM meta_t
JOIN meta ON meta_t.id = meta.meta
JOIN strip_t ON meta.type = strip_t.id
JOIN strip ON strip.type = strip_t.id
WHERE strip.id = '.(int)$comic.' ORDER BY meta_t.name';
$qr = query_to_array($query);
return $qr;
}
static function getTypeMeta($type)
{
if(!validate_type_id($type))
{
return false;
}
$query = 'SELECT meta_t.id FROM meta_t
JOIN meta ON meta_t.id = meta.meta
JOIN strip_t ON meta.type = strip_t.id
WHERE strip_t.id = '.(int)$type.' ORDER BY meta_t.id';
$qr = query_to_array($query);
return $qr;
}
static function getTypeMetaName($type)
{
if(!validate_type_id($type))
{
return false;
}
$query = 'SELECT meta_t.name FROM meta_t
JOIN meta ON meta_t.id = meta.meta
JOIN strip_t ON meta.type = strip_t.id
WHERE strip_t.id = '.(int)$type.' ORDER BY meta_t.name';
$qr = query_to_array($query);
return $qr;
}
static function getStripsByType($type)
{
if(!validate_type_id($type))
{
return false;
}
$query = 'SELECT strip.id FROM strip WHERE strip.type = '.(int)$type.' ORDER BY strip.id';
$qr = query_to_array($query);
return $qr;
}
static function getStripsByMeta($meta)
{
if(!ctype_digit($meta) || $meta < 1)
{
return false;
}
$query = 'SELECT strip.id FROM strip
JOIN strip_t ON strip.type = strip_t.id
JOIN meta ON strip_t.id = meta.type
JOIN meta_t ON meta.meta = meta_t.id
WHERE meta_t.id = '.(int)$meta.' ORDER BY strip.id';
$qr = query_to_array($query);
return $qr;
}
}
?>