v0.3:
[Marketplaylister.git] / searchify.php
1 <?php
2
3 const BASE_URL = 'https://api.spotify.com/v1/';
4 // Currently updated manually whenever I get one from the server
5 const SPOT_TOKEN = 'BQCQTtwO2kiMcV_VDgfSmTXQzGlO47rUuPyc4oCHpRunPQx2ZhhVYOtksVZPMbSgoCy3cGiRMHMygon5-SleqfsP0lvRMQW3gm1Q_a8TRv5MfCGQdNwdUcUu_NBpcSjWDNUadWeg3ps-WTDWxjUWm_FOlfxMy7a2AdI_RHWZ0Lx56WHf8gYA4-YVUm_HxpqDlReqEkWE9DHppQ';
6
7 $pdo = new PDO("sqlite:mktplc.sqlite3");
8
9 $stmt = $pdo->prepare("SELECT * FROM SONGS WHERE uri IS NULL");
10 $upstmt = $pdo->prepare("UPDATE songs SET (uri) = :uri WHERE id = :id");
11 $upstmt->bindParam(':uri', $uri);
12 $upstmt->bindParam(':id', $id);
13
14 if ($stmt->execute()) {
15
16 print_r($stmt->fetchAll());
17 exit(0);
18 while ($row = $stmt->fetch()) {
19
20 $track_opts = [
21 'http' => [
22 'method' => 'GET',
23 'header' => 'Authorization: Bearer ' . SPOT_TOKEN . "\r\n"
24 ]
25 ];
26
27 $track_context = stream_context_create($track_opts);
28
29 $track_search_url = BASE_URL . 'search?q=track:' . urlencode($row['track'])
30 . '+artist:' . urlencode($row['artist']) . '&type=track';
31
32 $trackReq = file_get_contents($track_search_url, false, $track_context);
33 if ($trackReq) {
34 $trackJSON = json_decode($trackReq, true);
35 $trackJSON = $trackJSON['tracks'];
36 if ($trackJSON['total'] === 0) {
37 continue;
38 }
39
40 $uri = $trackJSON['items'][0]['uri'];
41 $id = $row['id'];
42 $upstmt->execute();
43
44 #rate limit
45 sleep(1);
46
47 }
48 }
49 }