Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- if (!function_exists('curl_reset'))
- {
- function curl_reset(&$ch)
- {
- $ch = curl_init();
- }
- }
- //error_reporting(0);
- $site = explode("=",$_SERVER['QUERY_STRING']);
- $date = date("Y-n-j");
- $hari = date("j",strtotime($date));
- $bulan = date("n",strtotime($date));
- $tahun = date("Y",strtotime($date));
- $cDate = strtotime(date('Y-m-d H:i:s'));
- $state = apc_fetch('date');
- $flag=0;
- if(!$state):
- $nDate = strtotime(date('Y-m-d 24:00:00'));
- apc_store('date', $nDate);
- $state = apc_fetch('date');
- endif;
- if($state < $cDate):
- apc_delete('date');
- $nDate = strtotime(date('Y-m-d 24:00:00'));
- apc_store('date', $nDate);
- $flag=1;
- endif;
- require_once __DIR__ . '/vendor/autoload.php';
- $analytics = initializeAnalytics();
- $response = getReport($analytics,$site[1]);
- printResults($response,$site[1],$bulan,$hari,$tahun);
- merge($flag);
- function initializeAnalytics()
- {
- $KEY_FILE_LOCATION = __DIR__ . '/service-account-credentials.json';
- $client = new Google_Client();
- $client->setApplicationName("Hello Analytics Reporting");
- $client->setAuthConfig($KEY_FILE_LOCATION);
- $client->setScopes(['https://www.googleapis.com/auth/analytics.readonly']);
- $analytics = new Google_Service_AnalyticsReporting($client);
- return $analytics;
- }
- function getReport($analytics,$website) {
- $VIEW_ID = "90636734";
- // Create the DateRange object.
- $dateRange = new Google_Service_AnalyticsReporting_DateRange();
- $dateRange->setStartDate("today");
- $dateRange->setEndDate("today");
- // Create the Metrics object.
- $pageview = new Google_Service_AnalyticsReporting_Metric();
- $pageview->setExpression("ga:pageviews");
- $pageview->setAlias("Pageviews");
- // Create the dimension object.
- $id = new Google_Service_AnalyticsReporting_Dimension();
- $id->setName("ga:dimension13");
- $month = new Google_Service_AnalyticsReporting_Dimension();
- $month->setName("ga:dimension16");
- $year = new Google_Service_AnalyticsReporting_Dimension();
- $year->setName("ga:dimension17");
- $day = new Google_Service_AnalyticsReporting_Dimension();
- $day->setName("ga:day");
- $pagePath = new Google_Service_AnalyticsReporting_Dimension();
- $pagePath->setName("ga:pagepath");
- $dimensionFilter = new Google_Service_AnalyticsReporting_SegmentDimensionFilter();
- $dimensionFilter->setDimensionName("ga:dimension5");
- $dimensionFilter->setOperator("EXACT");
- $dimensionFilter->setExpressions(array("$website"));
- $dimensionFilterClause = new Google_Service_AnalyticsReporting_DimensionFilterClause();
- $dimensionFilterClause->setFilters(array($dimensionFilter));
- $ordering = new Google_Service_AnalyticsReporting_OrderBy();
- $ordering->setFieldName("ga:pageviews");
- $ordering->setOrderType("VALUE");
- $ordering->setSortOrder("DESCENDING");
- // Create the ReportRequest object.
- $request = new Google_Service_AnalyticsReporting_ReportRequest();
- $request->setViewId($VIEW_ID);
- $request->setDateRanges($dateRange);
- $request->setDimensions(array($id,$year,$month,$day));
- $request->setMetrics(array($pageview));
- $request->setDimensionFilterClauses(array($dimensionFilterClause));
- $request->setOrderBys($ordering);
- $body = new Google_Service_AnalyticsReporting_GetReportsRequest();
- $body->setReportRequests( array( $request) );
- return $analytics->reports->batchGet( $body );
- }
- function connect_db($tribun,$id,$hit){
- //$servername = "daerah-staging-2.cttdtdmogujb.ap-southeast-1.rds.amazonaws.com";
- $servername = "dbtdaerah.cttdtdmogujb.ap-southeast-1.rds.amazonaws.com";
- $username = "tdaerah-appuse";
- $password = "t12bun7d43rah-7ri3unD1g17alonlin3-app7d43rah-u53r2015";
- $conn = new mysqli($servername, $username, $password);
- // if ($conn->connect_error) {
- // die("Connection failed: " . $conn->connect_error);
- // }
- // if($tribun == "aceh") $db_select = mysqli_select_db($conn, "aceh2");
- // elseif($tribun == "jambi") $db_select = mysqli_select_db($conn, "jambi2");
- // else
- $db_select = mysqli_select_db($conn, "kalteng");
- if (!$db_select) {
- die("Database selection failed: " . mysqli_error($conn))."<br>";
- $mssg = "Database selection failed";
- }
- else {
- $sql = "SELECT h.hit,a.publish_date FROM hit2 h inner join articles a ON h.article_id = a.id where h.article_id ='$id'";
- $result = $conn->query($sql);
- $current = $result->fetch_array();
- if ($result->num_rows > 0) {
- $date = date("Y-n-j");
- $publish_date = date("Y-n-j",strtotime($current[publish_date]));
- if($publish_date != $date):
- $hit = $hit + $current[hit];
- $sql1 = "UPDATE hit2 SET view ='$hit' WHERE article_id='$id'";
- $conn->query($sql1);
- else:
- $sql1 = "UPDATE hit2 SET hit ='$hit' WHERE article_id='$id'";
- $conn->query($sql1);
- endif;
- } else {
- $sql2 = " INSERT INTO hit2 (article_id,hit) VALUES ('$id','$hit')" ;
- $conn->query($sql2);
- }
- }
- $conn->close();
- }
- function merge($flag){
- //$servername = "daerah-staging-2.cttdtdmogujb.ap-southeast-1.rds.amazonaws.com";
- $servername = "dbtdaerah.cttdtdmogujb.ap-southeast-1.rds.amazonaws.com";
- $username = "tdaerah-appuse";
- $password = "t12bun7d43rah-7ri3unD1g17alonlin3-app7d43rah-u53r2015";
- $conn = new mysqli($servername, $username, $password);
- // if ($conn->connect_error) {
- // die("Connection failed: " . $conn->connect_error);
- // }
- // if($tribun == "aceh") $db_select = mysqli_select_db($conn, "aceh2");
- // elseif($tribun == "jambi") $db_select = mysqli_select_db($conn, "jambi2");
- // else
- $db_select = mysqli_select_db($conn, "kalteng");
- if (!$db_select) {
- die("Database selection failed: " . mysqli_error($conn))."<br>";
- $mssg = "Database selection failed";
- }
- else {
- if($flag == 1):
- $cal = "SELECT * from hit2 where view != '0'";
- $resultCal = $conn->query($cal);
- while ($row=mysqli_fetch_row($resultCal))
- { $sum = $row[1]+$row[2];
- $update = "UPDATE hit2 SET hit ='$sum',view = '0' WHERE article_id='$row[0]'";
- $updateCal = $conn->query($update);
- }
- endif;
- }
- $conn->close();
- }
- function printResults($reports,$site,$a,$b,$c) {
- for ( $reportIndex = 0; $reportIndex < count( $reports ); $reportIndex++ ) {
- $report = $reports[ $reportIndex ];
- $header = $report->getColumnHeader();
- $dimensionHeaders = $header->getDimensions();
- $metricHeaders = $header->getMetricHeader()->getMetricHeaderEntries();
- $rows = $report->getData()->getRows();
- for ( $rowIndex = 0; $rowIndex < count($rows); $rowIndex++) {
- $row = $rows[ $rowIndex ];
- $dimensions = $row->getDimensions();
- $metrics = $row->getMetrics();
- for ($i = 0; $i < count($dimensionHeaders) && $i < count($dimensions); $i++) {
- //print($dimensionHeaders[$i] . ": " . $dimensions[$i] . "<br>");
- if($dimensionHeaders[$i] == "ga:dimension13"):
- $id = $dimensions[$i];
- elseif($dimensionHeaders[$i] == "ga:day"):
- $day = $dimensions[$i];
- elseif($dimensionHeaders[$i] == "ga:dimension17"):
- $year = $dimensions[$i];
- else:
- $month = $dimensions[$i];
- endif;
- }
- for ($j = 0; $j < count($metrics); $j++) {
- $values = $metrics[$j]->getValues();
- for ($k = 0; $k < count($values); $k++) {
- $entry = $metricHeaders[$k];
- //print($entry->getName() . ": " . $values[$k] );
- $hit = $values[$k];
- }
- }
- if($month == $a && $day == $b && $year == $c):
- connect_db($site,$id,$hit,$flag);
- echo "site =>".$site." id Article => ".$id." Pageviews =>".$hit." Month =>".$month."<br>";
- endif;
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement