function get_comic($comic, $date) { global $sql; $res=$sql->query("select gfx, strftime('%s', 'now')-strftime('%s', timestamp) as last from comics_date where comic='$comic' and date='$date'"); if($elem=$sql->fetch_assoc($res)) { if($elem['gfx']) return $elem["gfx"]; elseif(!date_is_after($date, date_add(date_get_today(), -60))) { return null; } elseif((!date_is_after($date, date_add(date_get_today(), -2)))&&($elem['last']>24*60*60)) return null; elseif($elem['last']>60) return null; } $fun="{$comic}_check"; $gfx=$fun($date); if($gfx) $gfx_sql="\"$gfx\""; else $gfx_sql="null"; $sql->query("insert or replace into comics_date values ('$comic', '$date', $gfx_sql, null, datetime('now'))"); return $gfx; }
function date_get_array($date, $base=0, $mode=0) { if(!$date) return 0; if(is_array($date)) { switch($mode) { case 0: return $date; case 1: if(sizeof($date)==5) return null; return $date; case 2: if(sizeof($date)==3) return null; return $date; case 3: return array_slice($date, 0, 3); } } if(eregi("^([0-9][0-9][0-9][0-9])\-([0-9][0-9])\-([0-9][0-9])( ([0-9][0-9]):([0-9][0-9])(:[0-9][0-9])?)?$", $date, $m)) { if(($m[4])&&($mode==1)) return null; if((!$m[4])&&($mode==2)) return null; if((!$m[4])||($mode==3)) return array((int)$m[1], (int)$m[2], (int)$m[3]); else return array((int)$m[1], (int)$m[2], (int)$m[3], (int)$m[5], (int)$m[6]); } if(eregi("^([0-9][0-9]?)\.([0-9][0-9]?)\.([0-9][0-9][0-9][0-9]|[0-9][0-9])?( ([0-9]?[0-9]):([0-9][0-9]))?$", $date, $m)) { if(($m[4])&&($mode==1)) return null; if((!$m[4])&&($mode==2)) return null; if(!$m[3]) { if(!$base) $base=date_get_now(); $base=date_get_last_date($base); $base=date_get_array($base); //print "BASE ";print_r($base); print "<="; $m[3]=$base[0]; if(!date_is_after(array($m[3], $m[2], $m[1]), $base)) $m[3]++; } elseif($m[3]<40) { $m[3]="20".$m[3]; } elseif($m[3]<100) { $m[3]="19".$m[3]; } if((!$m[4])||($mode==3)) return array((int)$m[3], (int)$m[2], (int)$m[1]); else return array((int)$m[3], (int)$m[2], (int)$m[1], (int)$m[5], (int)$m[6]); } if(eregi("^([0-9][0-9]?):([0-9][0-9])(:[0-9][0-9])?$", $date, $m)) { if(($m[4])&&($mode==2)) return null; if(!$base) $base=date_get_now(); $base=date_get_last_date($base); $base=date_get_array($base); if(($m[1]<$base[3])||(($m[1]==$base[3])&&($m[2]<$base[4]))) { $base=date_add($base, 1); } if($mode==3) return array($base[0], $base[1], $base[2]); else return array($base[0], $base[1], $base[2], (int)$m[1], (int)$m[2]); } if(is_integer($date)) { if(($mode==0)||($mode==2)) return explode("\t", date("Y\tm\td\tH\ti", $date)); else return explode("\t", date("Y\tm\td", $date)); } return null; }