swift로 앱을 써서 아이튠즈에서 들은 곡을 슬랙에게 알렸다

Electron으로 프로그램을 만들어서 아이튠즈에서 들은 곡을 슬랙에 알렸다 이렇게 좋은 기사를 찾았어요. 그러고 보니 최근에 비슷한 걸 한 것 같아서 이 글을 썼어요.
기사만 소개하면 재미가 없으니 애플뮤직에 어떻게 대응했는지 적어볼까 합니다.

가장 간단하게 만들면 Apple Script가 편리합니다.저도 요즘은 단순히 틀어놓은 곡을 슬랙에 넣었으면 좋겠어요. 그래서 루비+osascrite 지령으로 이루어졌어요.

애플 스크립트를 통해 iTunes 정보 얻기


대체로 이런 코드로 재생 중인 곡 자체를 얻을 수 있다.
OSX를 사용하는 사용자는 응용 프로그램 - 기타 - 스크립트 편집기 등에 다음 파일을 만듭니다.
getTrack.scpt
tell application "iTunes"
  set trackName to name of current track
  set trackArtist to artist of current track
  return trackName & " - " & trackArtist
end tell
일단 파일을 만들고 저장하면 스크립트 편집기에서 직접 실행할 수도 있고 컨트롤러에서 실행할 수도 있다
$ osascript path/to/getTrack.scpt
네.
나는 표준 출력에 재생 중인 곡을 표시하고 그 다음slackcat이면 직접curlpost할 수 있다고 생각한다.
하지만 이 방법으로는 애플 뮤직에 대한 정보를 얻을 수 없습니다.

애플 스크립트 처리 가능 정보


Apple Script에서 처리할 수 있는 정보를 조사하려면 스크립트 편집기의 용어 설명을 사용합니다.

Apple Script에서 액세스할 수 있는 응용 프로그램 참조를 열려면 파일 열기 - 용어 설명 을 클릭합니다.

iTunes 를 선택하면 다음과 같은 참조 메시지가 표시됩니다.

조사해도 애플 뮤직 정보를 얻을 수 없다.

그럼에도 불구하고 Apple Music의 재생성 정보를 얻고자 합니다!


왜 애플뮤직 곡 정보를 얻지 못했는지는 접근권이 없기 때문이다(인터넷상의 정보이기 때문이다.내 음악에 추가되면 로컬에서 온 접근권이 있기 때문에 애플스크립트 등을 통해 접근할 수 있다). 그럼에도 슬랙에 투고하기 위해서는 곡 정보, 곡 정보가 필요하다.갖고 싶죠?
그래서 나는 다른 방법을 시도할 것이다.
네, 통지 센터입니다.

이렇게 재생 정보를 표시할 수 있다면 어떤 방법으로 같은 정보를 얻을 수 있겠는가!
결론적으로 NSDistributedNotificationCenter.defaultCenter에'com.apple.iTunes.player Info'를 등록한 관찰자, 애플뮤직의 음악도 노래 정보를 얻을 수 있다.
NSNotificationCenter는 프로그램 간에 임의의 메시지를 보내고 알림 센터에 임의의 메시지를 보낼 수 있는 통신이 매우 쉽다.
자세한 내용은 을 참조하십시오.
http://www15.plala.or.jp/NovemberKou/programming/columnHome/column/whatIsNotification.html
자세한 건 기다리고 싶은데요.

감상


원래는 swift를 전혀 사용할 계획이 없었지만, 가장 간단하게 Notification Center를 준비하는 관찰자의 방법은 이였기 때문에 코코아 앱으로 실현될 수 없었다.
Electron이 잘했다고 생각해요. 여러분도 Electron의 알림센터의 관찰자 설치에 도전해 볼까요?
또한 SlackMood의 설치는 매우 간단합니다.
단지 어떤 소식도 받아들이고 결정된 slackapi post에 대한 것일 뿐입니다.
Listen의 정보 전환과post 목적지 전환은 원본 코드만 고치면 바로 이루어질 수 있다고 생각합니다. 그러므로 반드시 적당히 포크를 해서 당신만의 mood 메시지 publisher를 만들어 주십시오!

좋은 웹페이지 즐겨찾기