Source of file classify.php

Size: 4,529 Bytes - Last Modified: 2017-04-08T22:09:52+02:00

C:/Users/Mike/Desktop/NewsScraper/Article_Analytics/classify.php

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129
<?php if(isset($_GET["answer"])){
	try{
		$pdo = new PDO('mysql:host=localhost;dbname=newsscraper;charset=utf8', "root", "");
		$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
	}
	catch(PDOException $p){
		print 'Exception : '.$p->getMessage();
		return;
	}
	if($_GET["answer"] > -1 && isset($_GET["ID"])){
		$q = $pdo->exec("UPDATE `Fragments-Table` SET `IsSource`=".$_GET["answer"].", `Time_Classified`=NOW() WHERE `ID` =".$_GET["ID"]);
	}
	$q = $pdo->query("SELECT `ID`, `Fragment`, `IsSource`, `Guess` FROM `Fragments-Table` WHERE `IsSource` = -1 ORDER BY RAND() LIMIT 0,1");
	$new_fragment = $q->fetchAll()[0];
	//$prediction = exec('python ../Auto_Classifier/app.py -p "'.$new_fragment["Fragment"].'"');
	$prediction = $new_fragment["Guess"];
	echo json_encode(["ID"=>$new_fragment["ID"], "Fragment"=>$new_fragment["Fragment"], "Prediction"=>intval($prediction)]);
}
if(!isset($_GET["answer"])){
?>
<html>
<head>
	<title>Classify These Fragments</title>
	<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.0/jquery.min.js"></script>
	<script src="https://cdnjs.cloudflare.com/ajax/libs/tether/1.4.0/js/tether.min.js" integrity="sha384-DztdAPBWPRXSA/3eYEEUWrWCy7G5KFbe8fFjk5JAIxUYHKkDx6Qin1DkWx51bBrb" crossorigin="anonymous"></script>
	<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-alpha.6/css/bootstrap.min.css" crossorigin="anonymous">
	<script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-alpha.6/js/bootstrap.min.js" crossorigin="anonymous"></script>
	<style>
	</style>
</head>
<body>
	<div class="container-fluid">
		<div class="row mt-5">
			<div class="offset-2 col-8 d-flex justify-content-center">
				<h4 id="fragment"></h4>
			</div>
			<div class="offset-2 col-8 d-flex justify-content-center mt-2">
				<h5><em id="prediction"></em></h5>
			</div>
		</div>
		<div class="row m-5">
			<div class="col-12 d-flex justify-content-center">
				<button class="btn btn-outline-success original-rep m-1"><u>O</u>riginal Reporting</button>
				<button class="btn btn-outline-primary primary-src m-1"><u>P</u>rimary Source</button>
				<button class="btn btn-outline-primary sec-src m-1"><u>S</u>econdary Source</button>
				<button class="btn btn-outline-primary quote-src m-1"><u>Q</u>uote</button>
				<button class="btn btn-outline-primary not-src m-1"><u>N</u>ot a Source</button>
				<button class="btn btn-outline-primary should-src m-1">Should <u>B</u>e Sourced</button>
				<button class="btn btn-outline-danger skip-src m-1">S<u>k</u>ip</button>
			</div>
		</div>
	</div>
	<script>
		function intToText(p){
			switch(p){
				case 0:
					return "Not a Source";
				case 1:
					return "Original Reporting";
				case 2:
					return "Primary Source";
				case 3:
					return "Secondary Source";
				case 4:
					return "Quote";
				case 5:
					return "Should Source"
			}
		}
		var ID = -1;
		$(document).ready(function(){
			$.get("?answer=-1", function(data){
				data = JSON.parse(data);
				$("#fragment").text(data["Fragment"]);
				console.log(intToText(data["Prediction"]));
				ID = data["ID"];
				$("#prediction").text(intToText(data["Prediction"]));
				}
			);
		});

		function saveResult(id, result){
			$.get("?answer="+result+"&ID="+id, function(data){
					data = JSON.parse(data);
					console.log(intToText(data["Prediction"]));
					$("#fragment").text(data["Fragment"]);
					ID = data["ID"];
					$("#prediction").text(intToText(data["Prediction"]));
				}
			);
		}

		$(".original-rep").on("click", function(){saveResult(ID, 1)});
		$(".primary-src").on("click", function(){saveResult(ID, 2)});
		$(".sec-src").on("click", function(){saveResult(ID, 3)});
		$(".quote-src").on("click", function(){saveResult(ID, 4)});
		$(".should-src").on("click", function(){saveResult(ID, 5)});
		$(".not-src").on("click", function(){saveResult(ID, 0)});
		$(".skip-src").on("click", function(){saveResult(ID, -1)});
		$(document).on('keyup', function(event){
			var k = event.key.toLowerCase();
			switch(k){
				case 'b':
					saveResult(ID, 5);
					break;
				case 'o':
					saveResult(ID, 1);
					break;
				case 'p':
					saveResult(ID, 2);
					break;
				case 's':
					saveResult(ID, 3);
					break;
				case 'q':
					saveResult(ID, 4);
					break;
				case 'n':
					saveResult(ID, 0);
					break;
				case 'k':
					saveResult(ID, -1);
					break;
			}
		});
	</script>
</body>
</html>
<?php }?>