0) $limit=$_GET['limit']; else $limit=400; if ($limit>5000) $limit=5000; if ($_GET['minrefs']>0) $minrefs=$_GET['minrefs']; else $minrefs=1; if ($_GET['minlength']>0) $minlength=$_GET['minlength']; else $minlength=1; if (eregi("http://toolserver.org/~magnus/catscan_rewrite.php?", $_GET['url']) || eregi("http://tools.wmflabs.org/catscan2/catscan2.php?", $_GET['url'])) { $url=$_GET['url']; $articlelist=get_articles_from_catscan2($url, $minlength); } else if (ereg("http://fi.wikipedia.org/wiki", $_GET['url'])) { $url=$_GET['url']; $articlelist=get_articles_from_article($url); } else { $url=$_GET['url']; } #echo $url; function db_create_table() { $query="DROP TABLE refcount_cache"; $result = mysql_query($query) or print_error('Virhe: Kannan poisto epäonnistui.' . mysql_error()); $query="CREATE TABLE refcount_cache ( id INTEGER UNSIGNED NOT NULL, title VARCHAR(255) NOT NULL, refcount INTEGER UNSIGNED NOT NULL, wantedrefcount INTEGER UNSIGNED NOT NULL, length INTEGER UNSIGNED NOT NULL, ts TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, PRIMARY KEY (title) );"; $result = mysql_query($query) or print_error('Virhe: Kannan luonti epäonnistui.' . mysql_error()); $query="DROP TABLE refcount_cat_cache"; $result = mysql_query($query) or print_error('Virhe: Kannan poisto epäonnistui.' . mysql_error()); $query="CREATE TABLE refcount_cat_cache ( id INTEGER UNSIGNED NOT NULL, category VARCHAR(255) NOT NULL, article VARCHAR(255) NOT NULL, ts TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, PRIMARY KEY (category, article) );"; $result = mysql_query($query) or print_error('Virhe: Kannan luonti epäonnistui.' . mysql_error()); } function db_get_from_cache($title) { $query="SELECT title, refcount, wantedrefcount, length FROM refcount_cache WHERE DATE_SUB(CURDATE(),INTERVAL 90 DAY) <= ts "; $query.=" AND title like '" . mysql_real_escape_string($title) ."'"; $result = mysql_query($query) or die('Query failed: ' . mysql_error()); $cache=array(); while ( $row=mysql_fetch_assoc($result)) { return $row; } } function db_get_cats_from_cache($article) { $query="SELECT category FROM refcount_cat_cache WHERE "; $query.=" article like '" . mysql_real_escape_string($article) ."'"; $result = mysql_query($query) or die('Query failed: ' . mysql_error() .$query); $cats=array(); while ( $row=mysql_fetch_assoc($result)) { array_push($cats, $row['category']); } return $cats; } function db_insert_cat_cache($article, $category) { $query="SELECT id FROM refcount_cat_cache WHERE article like '" . mysql_real_escape_string($article) ."'"; $query.=" AND category like '" . mysql_real_escape_string($category) ."'"; $result = mysql_query($query) or print_error('Virhe: Tiedonhaku epäonnistui. ' .$query ); $oldresult=$query; if (mysql_num_rows($result) == 0) { $query="INSERT refcount_cat_cache (category, article) VALUES ("; $query.="'" . mysql_real_escape_string($category) ."'"; $query.=",'" . mysql_real_escape_string($article) ."')"; $result = mysql_query($query) or print_error('Virhe: Luokan tallennus epäonnistui' . $oldresult ." " . mysql_error() . $query); } } function db_insert_cache($title, $refcount, $wantedrefcount, $length) { $query="SELECT id FROM refcount_cache WHERE title like '" . mysql_real_escape_string($title) ."'"; $result = mysql_query($query) or print_error('Virhe: Tiedonhaku epäonnistui. ' .$query ); if (mysql_num_rows($result) == 0) { $query="INSERT refcount_cache (title, refcount, wantedrefcount, length) VALUES ("; $query.="'" . mysql_real_escape_string($title) ."'"; $query.=",'" . mysql_real_escape_string($refcount) ."'"; $query.=",'" . mysql_real_escape_string($wantedrefcount) ."'"; $query.=",'" . mysql_real_escape_string($length) ."');"; $result = mysql_query($query) or print_error('Virhe: Tiedon tallennus epäonnistui.' . mysql_error() ); } else if (mysql_num_rows($result) > 1) { $query="DELETE FROM refcount_cache WHERE title like '" . mysql_real_escape_string($title) ."'"; $result = mysql_query($query) or print_error('Virhe: Rivin poisto epäonnistui.' . mysql_error()); $query="INSERT refcount_cache (title, refcount, wantedrefcount, length) VALUES ("; $query.="'" . mysql_real_escape_string($title) ."'"; $query.=",'" . mysql_real_escape_string($refcount) ."'"; $query.=",'" . mysql_real_escape_string($wantedrefcount) ."'"; $query.=",'" . mysql_real_escape_string($length) ."' );"; $result = mysql_query($query) or print_error('Virhe: Tiedon tallennus epäonnistui.' . mysql_error()); } else { $query="UPDATE refcount_cache SET "; $query.="title='" . mysql_real_escape_string($title) ."'"; $query.=", refcount= '" . mysql_real_escape_string($refcount) ."'"; $query.=", wantedrefcount= '" . mysql_real_escape_string($wantedrefcount) ."'"; $query.=", length='" . mysql_real_escape_string($length) ."'"; $query.=" WHERE title like '" . mysql_real_escape_string($title) ."'" ; $result = mysql_query($query) or print_error('Virhe: Tiedon päivitys epäonnistui.' . mysql_error()); } } function get_articles_from_catscan2($url) { $url=preg_replace("/\&format=(.*?)\&?/", "", $url) ; $url=preg_replace("/\&doit=(.*?)(&|$)/", "", $url) ; $url=str_replace("\r\n", "%0D%0A",$url); $url=str_replace("http://toolserver.org/~magnus/catscan_rewrite.php", "http://tools.wmflabs.org/catscan2/catscan2.php", $url); $url2=$url ."&format=tsv&doit=1"; $file=file_get_contents($url2); $out=array(); $rows=split("\n", $file); if (!ereg("sortby=", $url) && ereg("sortorder=descending", $url)) $rows=array_reverse($rows); foreach ($rows as $key=>$row) { if (ereg("subset", $row) || ereg("title", $row)) continue; $cols=split("\t", $row); if ($cols[3]>$minlength) array_push($out, $cols[0]); $query="select * from refcount_cache where title like '" . mysql_real_escape_string($cols[0]) ."'"; $query.=" AND ts < '" . mysql_real_escape_string($cols[4]) ."'"; $result = mysql_query($query) or print_error('Virhe: tiedon haku epäonnistui.' . mysql_error()); if (mysql_num_rows($result) > 0) { $query="DELETE FROM refcount_cache WHERE title like '" . mysql_real_escape_string($title) ."'"; $result = mysql_query($query) or print_error('Virhe: rivin poisto epäonnistui.' . mysql_error()); $query="DELETE FROM refcount_cat_cache WHERE article like '" . mysql_real_escape_string($title) ."'"; $result = mysql_query($query) or print_error('Virhe: rivin poisto epäonnistui.' . mysql_error()); } } return $out; } function testi($article, $minrefs, $minheight, $color) { global $wpq, $wpapi, $count; if ($a=db_get_from_cache($article)) { $cached=1; $length=$a['length']; $refcount=$a['refcount']; $wantedrefcount=$a['wantedrefcount']; $cats=db_get_cats_from_cache($article); } else { $cached=""; $page=$wpq->getpage($article); $length=strlen($page); $match="//ism"; preg_match_all($match, $page, $m); $refcount=count($m[0]); $match="/\{\{lähde/ism"; preg_match_all($match, $page, $m); $wantedrefcount=count($m[0]); // if ($wantedrefcount<$minrefs) return ""; db_insert_cache($article, $refcount, $wantedrefcount, $length); $categories=$wpapi->categories($article); $cats=array(); foreach($categories as $c) { db_insert_cat_cache($article, $c['title']); array_push($cats, $c['title']); } sleep(0.01); $count++; } if ($length<$minlength) return ""; if ($refcount<$minrefs) return ""; $prefix=""; foreach ($cats as $cat) { $cat=str_replace("_", " ", $cat); $cattitle=str_replace("_", " ", str_replace("Luokka:", "", $cat)); $catstr.=$prefix . "" . colorCat($cattitle, "$cat") .""; $prefix=", "; } /* $match="/\[\[(Luokka|Category):(.*?)[\|\]]/ism"; if (preg_match_all($match, $page, $m)) { $prefix=""; foreach($m[2] as $cat) { $cat=str_replace("_", " ", $cat); $catstr.=$prefix . "" . colorCat($cat, "Luokka:$cat") .""; $prefix=", "; } } */ $outstr=""; $outstr.="*"; $outstr.="" . str_replace("_", " ", $article) .""; $outstr.="$refcount " . ($wantedrefcount ? "/ -$wantedrefcount": "") . ""; $outstr.="$length"; $outstr.="$catstr"; $outstr.="$cached"; $outstr.=""; return $outstr; } function get_articles_from_article($url) { global $wpapi; $ret=array(); $file=curl_get_contents($url); $match="/wgPageName=\"(.*?)\",/s"; if (!preg_match($match, $file, $m)) return array(); $continue=null; if (eregi("Luokka:", $m[1])) { $articles=$wpapi->categorymembers(str_replace("Luokka:", "", $m[1])); foreach($articles as $article) { array_push($ret, $article['title']); } } else { $links=$wpapi->links($m[1]); $links=array_pop($links); foreach($links['links'] as $article) { array_push($ret, $article['title']); } } return $ret; } function curl_get_contents ($url) { $curl = curl_init(); $useragent="Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.1) Gecko/20061204 Firefox/2.0.0.1"; curl_setopt($curl, CURLOPT_USERAGENT, $useragent); curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); // curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1); curl_setopt($curl, CURLOPT_HEADER, false); curl_setopt($curl, CURLOPT_URL, $url); $html = curl_exec($curl); curl_close($curl); return $html; } function colorCat($str, $cat) { $goodcat=array("Luokka:Hyvät artikkelit", "Luokka:Suositellut sivut", "Luokka:Lupaavat artikkelit"); $badcat=array( "Luokka:Artikkelit, joissa on laajennusta kaipaavia osia", "Luokka:Epäselvät artikkelit", "Luokka:Korjattavat sivut", "Luokka:Lähteettömät artikkelit", "Luokka:Puutteelliset lähdemerkinnät", "Luokka:Käännetyt lähteettömät artikkelit", "Luokka:Päivitystä kaipaavat sivut", "Luokka:Lähdeviitteet puuttuvat", "Luokka:Merkitse lähde tarkemmin", "Luokka:Artikkelit, joista taksonomia puuttuu", "Luokka:Kesken jääneet artikkelit", "Luokka:Keskeneräiset käännökset", "Luokka:Kielenhuoltoa kaipaavat sivut", "Luokka:Mahdollista mainontaa sisältävät artikkelit", "Luokka:Mahdollisesti väärässä aikamuodossa olevat sivut", "Luokka:Muodon korjausta kaipaavat sivut", "Luokka:Määritelmän korjausta kaipaavat sivut", "Luokka:Neutraali näkökulma keskustelunalainen", "Luokka:Näkökulman laajennusta kaipaavat sivut", "Luokka:Painotuksen korjausta kaipaavat sivut", "Luokka:Resentistiset artikkelit", "Luokka:Ristiriitaiset sivut", "Luokka:Tapahtumalle ei ole merkitty tapahtuma-aikaa", "Luokka:Suomenna", "Luokka:Tarkistettava", "Luokka:Translitteroinnin tarkistusta kaipaavat sivut", "Luokka:Artikkelit, joista taksonomia puuttuu", "Luokka:Uudeksi tutkimukseksi epäillyt artikkelit", "Luokka:Uudelleenkirjoitusta vaativat sivut", "Luokka:Viitteiden korjausta kaipaavat sivut", "Luokka:Virheellisiä koordinaatteja sisältävät sivut", "Luokka:Väitteelle ei ole merkitty esittäjää", "Luokka:Väliotsikoimattomat artikkelit", "Luokka:Väärännimiset artikkelit", "Luokka:Yhdistettävät artikkelit", "Luokka:Ääntämisohjeen korjausta kaipaavat sivut" ); if (in_array($cat, $goodcat)) return "$str"; else if (in_array($cat, $badcat)) return "$str"; else return $str; } function print_error($msg="Ei virheilmoitusta") { $str=' Virhe.
'.$msg .'
'; die($str); } ?> refcount
Url:
Viitteitä vähintään | Pituus vähintään Tuloksia enintään
Läpikäytäviä artikkeleita on 0 kappaletta.
$limit) break; if ($color_counter==1) $color="#ffffff"; else $color="#eeeeee"; $str=testi($article, $minrefs, $minheight, $color); if ($str!="") { if ($color_counter==1) $color_counter=0; else $color_counter=1; echo $str; // ob_flush(); // flush(); } } ?>
ArtikkeliViitteitäPituusLuokatC
ArtikkeliViitteitäPituusLuokatC
Haettiin yhteensä artikkelin tiedot. Loput tuli cachesta.