| 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 = 'BQBU1Qs3ROpkN9CwlQNpZS00khdSU61zuejyKbjS4KiIszK8aiLaTd9TfPiSH0OsmtWStOVL7ym-QYEBWyLX3qlFIN5peit0n6_B-LLtz4C8KSh3Dxj5O3jf4HSWf3fFISC4cLbznfSV3QnpQ4vdnCTehz4vT8V54XDiG2hX275Uw_gDHzKjqFWQo249-rY42rBv7pf555wQ2PSBymuZMcDlIDEeAbGiyRI'; |
| 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 | 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 | } |