v0.3.2:
[Marketplaylister.git] / searchify.php
CommitLineData
16889626
JC
1<?php
2
3 const BASE_URL = 'https://api.spotify.com/v1/';
4 // Currently updated manually whenever I get one from the server
29d84c29 5 const SPOT_TOKEN = 'BQBU1Qs3ROpkN9CwlQNpZS00khdSU61zuejyKbjS4KiIszK8aiLaTd9TfPiSH0OsmtWStOVL7ym-QYEBWyLX3qlFIN5peit0n6_B-LLtz4C8KSh3Dxj5O3jf4HSWf3fFISC4cLbznfSV3QnpQ4vdnCTehz4vT8V54XDiG2hX275Uw_gDHzKjqFWQo249-rY42rBv7pf555wQ2PSBymuZMcDlIDEeAbGiyRI';
16889626
JC
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
29d84c29 16 #print_r($stmt->fetchAll());
16889626
JC
17 while ($row = $stmt->fetch()) {
18
19 $track_opts = [
20 'http' => [
21 'method' => 'GET',
22 'header' => 'Authorization: Bearer ' . SPOT_TOKEN . "\r\n"
23 ]
24 ];
25
26 $track_context = stream_context_create($track_opts);
27
28 $track_search_url = BASE_URL . 'search?q=track:' . urlencode($row['track'])
29 . '+artist:' . urlencode($row['artist']) . '&type=track';
30
31 $trackReq = file_get_contents($track_search_url, false, $track_context);
32 if ($trackReq) {
33 $trackJSON = json_decode($trackReq, true);
34 $trackJSON = $trackJSON['tracks'];
35 if ($trackJSON['total'] === 0) {
36 continue;
37 }
38
39 $uri = $trackJSON['items'][0]['uri'];
40 $id = $row['id'];
41 $upstmt->execute();
42
43 #rate limit
44 sleep(1);
45
46 }
47 }
48 }