X-Git-Url: https://git.r.bdr.sh/rbdr/lyricli/blobdiff_plain/38d5d6de414ad69d6a7dc744e4aed39c488ba30f..fdafe0d4012af00e0d9cb613a0146924b8fd8eaf:/Sources/itunes_source.swift diff --git a/Sources/itunes_source.swift b/Sources/itunes_source.swift deleted file mode 100644 index 6f4aef9..0000000 --- a/Sources/itunes_source.swift +++ /dev/null @@ -1,61 +0,0 @@ -import ScriptingBridge - -// Protocol to obtain the track from iTunes -@objc protocol iTunesTrack { - @objc optional var name: String {get} - @objc optional var artist: String {get} -} - -// Protocol to interact with iTunes -@objc protocol iTunesApplication { - @objc optional var currentTrack: iTunesTrack? {get} - @objc optional var currentStreamTitle: String? {get} -} - -extension SBApplication : iTunesApplication {} - -// Source that reads track artist and name from current itunes track -class ItunesSource: Source { - - // Calls the spotify API and returns the current track - var currentTrack: Track? { - - if let iTunes: iTunesApplication = SBApplication(bundleIdentifier: "com.apple.iTunes") { - - // Attempt to fetch the title from a stream - if let currentStreamTitle = iTunes.currentStreamTitle { - if let track = currentStreamTitle { - - let trackComponents = track.characters.split(separator: "-").map(String.init) - - if trackComponents.count == 2 { - let artist = trackComponents[0].trimmingCharacters(in: .whitespaces) - let name = trackComponents[1].trimmingCharacters(in: .whitespaces) - - return Track(withName: name, andArtist: artist) - } - - } - } - - // Attempt to fetch the title from a song - if let currentTrack = iTunes.currentTrack { - if let track = currentTrack { - if let name = track.name { - if let artist = track.artist { - - // track properties are empty strings if itunes is closed - if (!(name != "" && artist != "")) { - return nil - } - return Track(withName: name, andArtist: artist) - } - } - } - } - } - - return nil - } - -}