function feeditems() { global $feedids; global $feeditems; global $lifeobjects; global $meavgnewstats; global $scoredate; $scoredate = time(); feedarray(); $feedsize = count($feedids); // need to look at number of feeds needing processed and if over 400 batch $batch = 100; if ($feedsize / $batch < 1) { $nochunks = 0; } else { $nochunks = ceil($feedsize / $batch); //$nochunks = 0; //echo $nochunks; } $batchchunk = array_chunk($feedids, $batch, true); //print_r($batchchunk); $feeditems = array(); lifestylestartarray(); for ($x = 0; $x <= $nochunks; $x++) { //echo $x; //echo '<br /><br />'; //print_r($batchchunk[$x]); $meavgnewstats = ''; foreach ($batchchunk[$x] as $fed) { //echo $fed.'fed'; foreach ($lifeobjects as $def) { // could LEFT JOIN scores and then use memory to do sum need to test. $db->query = "SELECT " . RSSDATA . ".items.id, " . RSSDATA . ".lifestylelightscorea.lifestyleid, " . RSSDATA . ".lifestylelightscorea.score50, " . RSSDATA . ".lifestylelightscorea.lifestyleid, " . RSSDATA . ".lifestylelightscorea.matched1 FROM " . RSSDATA . ".items LEFT JOIN " . RSSDATA . ".lifestylelightscorea ON " . RSSDATA . ".lifestylelightscorea.itemid = items.id WHERE " . RSSDATA . ".items.feed_id = '{$fed} ' AND " . RSSDATA . ".lifestylelightscorea.lifestyleid = {$def} "; //echo $db->query; $resultfeditem = mysql_query($db->query) or die("Error in query: {$db->query}. " . mysql_error()); if (mysql_num_rows($resultfeditem) > 0) { while ($row = mysql_fetch_object($resultfeditem)) { $feeditems[$fed][$def][0][] = $row->score50; $feeditems[$fed][$def][1][] = $row->matched1; } } // put calculatation of stats in here??? statcalulator($fed, $def, $feeditems); } // closes foreach lifestyle loop } // closes foreach feed loop //print_r($feeditems); $meavgnewstats = substr($meavgnewstats, 0, strLen($meavgnewstats) - 2); //this will eat the last comma //echo $meavgnewstats; $db->query = "INSERT INTO " . RSSDATA . ".lifestylelightstats (feed_id, idlifestart, noposts, scoposts, lifestylescore, topmatch, avgscore, scoreratio, scoredate) VALUES "; $db->query .= $meavgnewstats; //echo $db->query; $resultinsertavg = mysql_query($db->query) or die(mysql_error()); } // closes for chunkloop }
$num = date("d") - 1; $day = sprintf("%02d", $num); $datest = date("Y-m-") . $day . $starttime; $datefin = date("Y-m-") . $day . $endtime; } // closes function setdailytime(); if (isset($_POST['fdates'])) { $fsdate = empty($_POST['fstartdate']) ? die("Error: Enter fstartdate") : mysql_real_escape_string($_POST['fstartdate']); $fedate = empty($_POST['fenddate']) ? die("Error: Enter fenddate") : mysql_real_escape_string($_POST['fenddate']); //$idstart = empty($_POST['idstart']) ? die ("Error: Enter idstart") : mysql_real_escape_string($_POST['idstart']); require_once ABSPATH . 'phpFlickr-2.3.0.1/phpFlickr.php'; $f = new phpFlickr("6cb8b950ac1b34c2300dc789c8da52af"); // all the search variables //$searcharglist = array("user_id"=>"", "tags"=>"", "tag_mode"=>"", "text"=>"", "min_upload_date"=>"", "max_upload_date"=>"", "min_taken_date"=>"", "max_taken_date"=>"", "license"=>"", "sort"=>"", "privacy_filter"=>"", "bbox"=>"", "accuracy"=>"", "safe_search"=>"", "content_type"=>"", "machine_tags"=>"", "machine_tag_mode"=>"", "group_id"=>"", "contacts"=>"", "woe_id"=>"", "place_id"=>"", "media"=>"", "has_geo"=>"", "geo_context"=>"", "lat"=>"", "lon"=>"", "radius"=>"", "radius_units"=>"", "is_commons"=>"", "extras"=>"", "per_page"=>"", "page"=>"" ); lifestylestartarray(); // loop to find top photos for each lifestyle object foreach ($lifeobjects as $idstart) { $db->query = "SELECT * FROM " . RSSDATA . ".lifestyledefinition WHERE " . RSSDATA . ".lifestyledefinition.idlifestart = '{$idstart}' ORDER BY " . RSSDATA . ".lifestyledefinition.votes DESC LIMIT 4"; $resultdef = mysql_query($db->query) or die("Error in query: {$db->query}. " . mysql_error()); //echo $db->query; $defwords = ''; if (mysql_num_rows($resultdef) > 0) { while ($row = mysql_fetch_object($resultdef)) { $defwords .= "{$row->lifestylewords} OR "; } } //print_r($defwords); $defwords = substr($defwords, 0, strLen($defwords) - 4); //this will eat the last OR //echo $defwords;
function scalelist() { global $lifeobjects; global $newinputurl; // need to find out last date. $db->query = "SELECT * FROM " . RSSDATA . ".melife ORDER BY " . RSSDATA . ".melife.date DESC LIMIT 1 "; //echo $db->query; $resultmeldate = mysql_query($db->query) or die("Error in query: {$db->query}. " . mysql_error()); if (mysql_num_rows($resultmeldate) > 0) { $row = mysql_fetch_object($resultmeldate); $newfdate = $row->date; } // closes if // need wrap this in a loop for each current lifesstyle definition lifestylestartarray(); foreach ($lifeobjects as $ldef) { $newurls = ''; $newurlmatch = ''; $newinputfeeds = ''; $newinputurl = ''; //$db->query ="SELECT * FROM ".RSSDATA.".feeds ORDER BY ".RSSDATA.".feeds.id DESC LIMIT 1 "; $db->query = "SELECT " . RSSDATA . ".melife.feed_id, " . RSSDATA . ".feeds.url, " . RSSDATA . ".melife.idlifestart, " . RSSDATA . ".melife.topmatch, " . RSSDATA . ".melife.diffavg FROM " . RSSDATA . ".melife LEFT JOIN " . RSSDATA . ".feeds ON " . RSSDATA . ".feeds.id = " . RSSDATA . ".melife.feed_id WHERE " . RSSDATA . ".melife.diffavg > 0 AND " . RSSDATA . ".melife.date = {$newfdate} AND " . RSSDATA . ".melife.idlifestart = {$ldef} GROUP BY " . RSSDATA . ".melife.feed_id ORDER BY " . RSSDATA . ".melife.diffavg desc"; echo $db->query; $resulttopfeeds = mysql_query($db->query) or die("Error in query: {$db->query}. " . mysql_error()); if (mysql_num_rows($resulttopfeeds) > 0) { while ($row = mysql_fetch_object($resulttopfeeds)) { // create array of feed_ids $newurls[$row->feed_id] = $row->url; } // closes while loop } // closes if echo '<br />starttttt'; print_r($newurls); // see whether feeds_id have already been use to add new urls? (need to setup new database table to log this) $db->query = "SELECT * FROM " . RSSDATA . ".newcheck WHERE " . RSSDATA . ".newcheck.feed_id = "; foreach ($newurls as $key => $chfeed) { $db->query .= " '{$key}' OR"; } //closes foreach $db->query = substr($db->query, 0, strLen($db->query) - 2); //this will eat the last comma echo $db->query; $resultcheckn = mysql_query($db->query) or die("Error in query: {$db->query}. " . mysql_error()); if (mysql_num_rows($resultcheckn) > 0) { while ($row = mysql_fetch_object($resultcheckn)) { // if they are matched, then the feed has already been used. // left with a list of feedsids and urls that are new and should progress for inclusion in mepath.com $newurlmatch[$row->feed_id] = $row->url; } // closes while loop } else { $newurlmatch = null; } echo '<br />matcheeeeed'; print_r($newurlmatch); // we have original array and those that have been used, so 'merge' arrays to remove urls already used. echo 'countone ' . count($newurlmatch); if (count($newurlmatch) > 0) { $newinputfeeds = array_diff_key($newurls, $newurlmatch); echo 'INPUTTTa <br /><br />'; print_r($newinputfeeds); echo 'closes inputtta'; } else { $newinputfeeds = $newurls; echo 'INPUTTTb'; print_r($newinputfeeds); } //echo 'INPUTTT'; //print_r($newinputfeeds); echo count($newinputfeeds); if (count($newinputfeeds) > 0) { $chedurls = ''; // need to add these urls to newcheck to show the have been used. $db->query = " INSERT INTO " . RSSDATA . ".newcheck (feed_id, newcheck) VALUES "; foreach ($newinputfeeds as $keych => $checkupd) { $chedurls .= "('{$keych}', '1' ), "; } // closes foreach $chedurls = substr($chedurls, 0, strLen($chedurls) - 2); //this will eat the last comma $db->query .= $chedurls; echo $db->query; echo '<br /><br />'; $resultcheckurls = mysql_query($db->query) or die(mysql_error()); print_r($newinputfeeds); // now need to lookup those urls to find new crawled urls from that domain if (count($newinputfeeds) > 0) { $db->query = "SELECT * FROM " . RSSDATA . ".crawlurlsb WHERE " . RSSDATA . ".crawlurlsb.rawurl LIKE "; foreach ($newinputfeeds as $feid => $starturl) { // need to loose the http://www from url $removehttp = 'http://www.'; $shorturl = trim($starturl, $removehttp); // form array of new ursl to be added $db->query .= "'%{$shorturl}%' OR "; } // closes while loop $db->query = substr($db->query, 0, strLen($db->query) - 3); //this will eat the last comma //echo $db->query; $resultfindnurl = mysql_query($db->query) or die("Error in query: {$db->query}. " . mysql_error()); // create array of all url that will make it be inputted for the first time if (mysql_num_rows($resultfindnurl) > 0) { while ($row = mysql_fetch_object($resultfindnurl)) { // if they are matched, then the feed has already been used. // left with a list of feedsids and urls that are new and should progress for inclusion in mepath.com $newinputurl[] = $row->rawurl; } // closes while loop } // closes if // make global print_r($newinputurl); } // closes if new urls are ready } // closes if no new urls matched } // closes foreach loop each definition echo '<br />total new'; print_r($newinputurl); }
function avgofavg() { global $lifeobjects; global $avgofavg; // need list of all definitions lifestylestartarray(); //$date = time(); foreach ($lifeobjects as $def) { // find out latest avg avg date $db->query = "SELECT * FROM " . RSSDATA . ".lifestyleaverage WHERE " . RSSDATA . ".lifestyleaverage.idlifestart = {$def} ORDER BY " . RSSDATA . ".lifestyleaverage.date DESC LIMIT 1 "; $resultavdate = mysql_query($db->query) or die(mysql_error()); if (mysql_num_rows($resultavdate) == 1) { $row = mysql_fetch_object($resultavdate); $avgdate = $row->date; } // need array of lastest averages $db->query = " SELECT * FROM " . RSSDATA . ".lifestyleaverage WHERE " . RSSDATA . ".lifestyleaverage.idlifestart = {$def} HAVING " . RSSDATA . ".lifestyleaverage.date = {$avgdate} "; //echo $db->query; $resultavgavg = mysql_query($db->query) or die(mysql_error()); if (mysql_num_rows($resultavgavg) == 1) { $row = mysql_fetch_object($resultavgavg); $avgofavg[$row->idlifestart][] = $row->postratio; $avgofavg[$row->idlifestart][] = $row->avglife; } } // closes foreachloop //return $avgofavg; //print_r($avgofavg); }
function dailylifestlyeposts($finishtime) { global $lifeobjects; global $dlposts; global $feedd; global $dayparr; global $finishtime; lifestylestartarray(); // this should be performed on a 24 regular period thus the time period for loop should be a period of 24hrs of seconds. $secondsday = 86400; $startday = $finishtime - $secondsday; $stoptime = $finishtime - 1; for ($x = $startday; $x <= $stoptime; $x += $secondsday) { //unset($dayparr); $newday = $x + 1; $endday = $x + $secondsday; //echo $endday; // first find all post id for the 24 hr time period $db->query = "SELECT DISTINCT " . RSSDATA . ".items.id, " . RSSDATA . ".items.feed_id FROM " . RSSDATA . ".items WHERE " . RSSDATA . ".items.dcdate BETWEEN {$newday} AND {$endday} "; //echo $db->query; $resultdayposts = mysql_query($db->query) or die(mysql_error()); if (mysql_num_rows($resultdayposts) > 0) { while ($row = mysql_fetch_object($resultdayposts)) { $dayparr[$row->id] = $row->feed_id; } } $prefeed = $dayparr; $dfeeds = array_unique($prefeed); if (count($dayparr) > 0) { // need to find out last date used to calculate melife data $db->query = "SELECT * FROM " . RSSDATA . ".melife ORDER BY " . RSSDATA . ".melife.date DESC LIMIT 1 "; $resultdaymelife = mysql_query($db->query) or die(mysql_error()); if (mysql_num_rows($resultdaymelife) == 1) { $rowmed = mysql_fetch_object($resultdaymelife); $med = $rowmed->date; } // need to find out last scoredate for lifestylelightstats(take out so not repeated in loop? $db->query = "SELECT * FROM " . RSSDATA . ".lifestylelightstats ORDER BY " . RSSDATA . ".lifestylelightstats.scoredate DESC LIMIT 1 "; $resultdaystatlife = mysql_query($db->query) or die(mysql_error()); if (mysql_num_rows($resultdaystatlife) == 1) { $rowstd = mysql_fetch_object($resultdaystatlife); $statd = $rowstd->scoredate; } foreach ($dfeeds as $fedd) { // for each post looks up feedid to find out if lifestyleid is within top5 places for this individual, if yes, post get included in results $db->query = "SELECT * FROM " . RSSDATA . ".melife WHERE " . RSSDATA . ".melife.feed_id = {$fedd} AND " . RSSDATA . ".melife.date = {$med} ORDER BY " . RSSDATA . ".melife.diffavg DESC LIMIT 5"; //echo $db->query; $resultmel = mysql_query($db->query) or die(mysql_error()); if (mysql_num_rows($resultmel) > 0) { while ($row = mysql_fetch_object($resultmel)) { $dlmel[$row->feed_id][1][] = $row->idlifestart; } } } // closes foreach loop // loop through each deinfinition to build array of score data per post foreach ($lifeobjects as $lifestyleidc) { // build array of scoring data for each post $db->query = "SELECT " . RSSDATA . ".lifestylelightscorea.itemid, " . RSSDATA . ".lifestylelightscorea.lifestyleid, " . RSSDATA . ".lifestylelightscorea.matched1, " . RSSDATA . ".lifestylelightscorea.matched2, " . RSSDATA . ".lifestylelightscorea.matched3, " . RSSDATA . ".lifestylelightscorea.matched5, " . RSSDATA . ".lifestylelightscorea.matched10, " . RSSDATA . ".lifestylelightscorea.matched50, " . RSSDATA . ".lifestylelightscorea.score10, " . RSSDATA . ".lifestylelightscorea.score50 FROM " . RSSDATA . ".lifestylelightscorea WHERE "; foreach ($dayparr as $ditem => $fe) { $db->query .= "(" . RSSDATA . ".lifestylelightscorea.itemid = {$ditem}) OR"; } $db->query = substr($db->query, 0, strLen($db->query) - 3); //this will eat the last OR $db->query .= "HAVING " . RSSDATA . ".lifestylelightscorea.lifestyleid = {$lifestyleidc} "; //echo $db->query; $resultscoredate = mysql_query($db->query) or die("Error in query: {$db->query}. " . mysql_error()); // create array for further analysis etc. if (mysql_num_rows($resultscoredate) > 0) { while ($row = mysql_fetch_object($resultscoredate)) { $dlposts[$lifestyleidc][$row->itemid][] = $row->matched1; $dlposts[$lifestyleidc][$row->itemid][] = $row->matched2; //$dlposts[$lifestyleidc][$row->itemid][] = $row->matched10; $dlposts[$lifestyleidc][$row->itemid][] = $row->score50; } } // form array of lifedata on a per feed basis $db->query = "SELECT * FROM " . RSSDATA . ".melife WHERE "; foreach ($dfeeds as $fedd) { $db->query .= "(" . RSSDATA . ".melife.feed_id = {$fedd} ) OR"; } $db->query = substr($db->query, 0, strLen($db->query) - 3); //this will eat the last OR $db->query .= "HAVING " . RSSDATA . ".melife.idlifestart = {$lifestyleidc} AND " . RSSDATA . ".melife.date = {$med} "; //echo $db->query; $resultdmelife = mysql_query($db->query) or die("Error in query: {$db->query}. " . mysql_error()); if (mysql_num_rows($resultdmelife) > 0) { while ($row = mysql_fetch_object($resultdmelife)) { $feedd[$lifestyleidc][$row->feed_id][] = $row->topmatch; $feedd[$lifestyleidc][$row->feed_id][] = $row->diffavg; } } // foreach ($dfeeds as $fedd) { // check another avg stat. if scoring post for lifestyle is over 75% then include the post even though the postscore context is low. $db->query = "SELECT * FROM " . RSSDATA . ".lifestylelightstats WHERE " . RSSDATA . ".lifestylelightstats.feed_id = {$fedd} AND " . RSSDATA . ".lifestylelightstats.idlifestart = {$lifestyleidc} ORDER BY " . RSSDATA . ".lifestylelightstats.date DESC LIMIT 1 "; //echo $db->query; $resultfstats = mysql_query($db->query) or die(mysql_error()); if (mysql_num_rows($resultfstats) == 1) { $row = mysql_fetch_object($resultfstats); $dlmel[$row->feed_id][] = $row->scoreratio; } } // closes foreach feed //echo 'before calc'; //print_r($dayparr); //print_r($lifestyleidc); resultcalc($lifestyleidc, $dayparr, $dlmel); } // closes foreach defintion loop } // closes if new feed items for time period } // closes for each 24hr for loop }
function memenu($meurlfeedid) { global $lifeobjects; global $feedids; global $lifequalify; lifestylestartarray(); feedarray(); // select lifestyle that an individual qualify for and build array // form two arrays of ranks based on top score and distance from average, merge out rankings and that will be order menu list will be, limit to 5 and suggested add more button. NB need to remove lifestyle presented to edit add, remove, order too I suppose. $fid = $meurlfeedid; //echo $fid; // need to find out date of latest me avarage data $db->query = "SELECT * FROM " . RSSDATA . ".melife WHERE " . RSSDATA . ".melife.feed_id = {$fid} ORDER BY " . RSSDATA . ".melife.date DESC LIMIT 1 "; //echo $db->query; $resultldate = mysql_query($db->query) or die(mysql_error()); if (mysql_num_rows($resultldate) == 1) { $rowldate = mysql_fetch_object($resultldate); $ldate = $rowldate->date; } $db->query = "SELECT * FROM " . RSSDATA . ".melife WHERE " . RSSDATA . ".melife.feed_id = {$fid} AND " . RSSDATA . ".melife.date = {$ldate} ORDER BY " . RSSDATA . ".melife.topmatch DESC "; //echo $db->query; $resulttopm = mysql_query($db->query) or die(mysql_error()); if (mysql_num_rows($resulttopm) > 0) { while ($rowtop = mysql_fetch_object($resulttopm)) { $toprank[] = $rowtop->idlifestart; } } $db->query = "SELECT * FROM " . RSSDATA . ".melife WHERE " . RSSDATA . ".melife.feed_id = {$fid} AND " . RSSDATA . ".melife.date = {$ldate} ORDER BY " . RSSDATA . ".melife.diffavg DESC "; //echo $db->query; $resultdiffavg = mysql_query($db->query) or die(mysql_error()); if (mysql_num_rows($resultdiffavg) > 0) { while ($rowdif = mysql_fetch_object($resultdiffavg)) { $topdif[] = $rowdif->idlifestart; } } if ($toprank && $topdif) { //print_r($toprank); //print_r($topdif); $rankone = array_intersect($toprank, $lifeobjects); $rankonea = array_flip($rankone); //print_r($rankonea); $ranktwo = array_intersect($topdif, $lifeobjects); $ranktwoa = array_flip($ranktwo); //print_r($ranktwoa); foreach ($lifeobjects as $key => $obj) { $memrank = ($rankonea[$obj] + $ranktwoa[$obj]) / 2; //echo $memrank; $lifequalify[$key] = $memrank; //$lifequalify[$obj][] = $key; } $lifesort = asort($lifequalify); //print_r($lifesort); //print_r($lifequalify); $_SESSION[lifequalify] = $lifequalify; } return $lifequalify; }