매크로

조회 수 422 추천 0 댓글 2

매크로 만드는건 귀찮고 할건없고 이것저것 명령어나 기능들이나 수집하는 1인입니다.


카카오톡 -> 매크로 명령어하달은 만들어도봤지만 안먹길래 때랴쳤구요...

기타 올라온 API 자료는 뭔말인지 모르겠어서 패스....

매크로 -> 푸시불렛 메세지전송 전송은 소스는 보이는데

스마트폰으로 푸시불렛에 명령어입력 -> 매크로에서 수신후 작동상태 적용이 안보이길래 찾아봤습니다..

그냥 검색으로 안나오는거 자료 저장용 게시글 이라고 보시면 됩니다..


대충 비슷해보이는 언어에 기존 메세지전송 소스와 비슷한게보이길래 확인해보니까

Post를 get으로만 바꾸면 되는거더군요..;;;; 그런데도 검색하면 안나와서 대충 만들어봤습니다.

대신 긁어오는데 시간이 걸려서 수시로 읽게하면

매크로?가 자료를 긁어오는동안 멈추기때문에 수십초에 한번 명령된게 있는지 확인하는게 좋아보입니다.

더 좋은방법이있다면 알아서 바꿔서 쓰시겠죠뭐..... 전 언어관련해서 배운게 없어서 아직까진 이게 최선이네요ㅎㅎ..


사용형식은

채팅내용을 전부 긁어와서 Result 에 저장합니다.

내용을보면 최근 채팅내용이 맨 위에 저장이되기에 처음검색해서 나오는 내용을 뽑아서 사용하면됩니다.

채팅내용중 body":"명령어"} 을 명령어 부분만 추출하기위해 RegExMatch로 앞뒤 잘라내서 내용만 Get1에 저장합니다.

기본적으로 폰으로 내리는 실행, 재실행 이런 명령어들을 사용하기 위함인데

한번 보내놓으면 계속 읽어오면서 해당명령어를 계속 수행하려 하기에 명령어 작동전에

푸시불렛 메세지 전송으로 다른명령어 즉, "매크로가 실행되었습니다."같은 메세지를 보내서

폰으로 내린명령어를 밀어버리면 계속 읽어오는일이 없습니다.


global PB_Token:="토큰입력칸"


SETTIMER, GetPushbullet, 30000; 30초에 한번실행


GetPushbullet:

WinHTTP := ComObjCreate("WinHTTP.WinHttpRequest.5.1")

WinHTTP.Open("Get", "https://api.pushbullet.com/v2/pushes", False)

WinHTTP.SetCredentials(PB_Token, "", 0)

WinHTTP.SetRequestHeader("Content-Type", "application/json")

WinHTTP.Send()

Result := WinHTTP.ResponseText

RegExMatch(Result,"\C\Cbody\C:\C(.*?)\C}", Get)

if (Get1="실행")

{

PB_PushNote("작동", "매크로를 시작합니다.")

Goto, Start

}

if (Get1="재실행")

{

PB_PushNote("중지", "매크로가 재실행 되었습니다.")

Goto, Reload

}

return



PB_PushNote(PB_Title, PB_Message)

{

WinHTTP := ComObjCreate("WinHTTP.WinHttpRequest.5.1")

WinHTTP.SetProxy(0)

WinHTTP.Open("POST", "https://api.pushbullet.com/v2/pushes", 0)

WinHTTP.SetCredentials(PB_Token, "", 0)

WinHTTP.SetRequestHeader("Content-Type", "application/json")

PB_Body := "{""type"": ""note"", ""title"": """ PB_Title """, ""body"": """ PB_Message """}"

WinHTTP.Send(PB_Body)

Result := WinHTTP.ResponseText

Status := WinHTTP.Status

return Status

}



  • Hangoon 2018.04.16 18:17

    저도 대충 저래 비슷하게 만들어 쓰고있는데... 

    주의할점은 푸쉬불렛 API는 무제한이 아니라 RateLlimit라는 개념이 있습니다


    1시간 단위로 리셋되며 일반계정의 RateLimit 제한은 16384입니다 (제 계정 기준입니다... 다른분도 뭐 같겠지요)

    RateLimit는 API요청 당 1소모되고 Database 작업당 4 소모됩니다


    본문에 나온대로 push내역 확인 요청을 보내면 최근 20개 푸쉬 내역을 가져오는데,

    1(API요청)  + 4(계정정보 확인) + 20*4(20개 푸쉬 데이터 확인) 총 85의 RateLimit가 소모됩니다

    적어보여도 30초마다 한번씩 요청을 보내면 10,200의 RateLimit가 소모되고... 만약 명령 수신에 30초 간격을 두는게 길게 느껴져서 좀 줄인다고 한다면 문제가 되버립니다. 20초로만 줄여도 15300을 소모해서 남은 리미트가 거의 없게 돼요


    사실 명령 확인을 위해서는 최신메시지 하나만 가져와도 되기 때문에 Limit파라미터를 주면 리미트 부담이 적어집니다.

    Get방식이니 url에 그냥 파라미터를 주면 돼요. https://api.pushbullet.com/v2/pushes?Limit=1 이런식으로


    이러면 하나만 가져오게 되고, 총 9의 리미트가 소모됩니다. 3초마다 한번씩 가져와도 시간당 10800으로 기존에 30초에 한번 리셋하는것과 비슷한 리미트만 소비하게 되죠.


    푸쉬 확인뿐만 아니라 푸쉬보내기, 이미지업로드 및 보내기 모두 리미트가 소모되는 활동입니다.

    생각보다 꽤 많이 소모가 되구요... 참고로 텍스트 메시지 하나 보낼때 제 계정 테스트 기준 37~41정도 소모가 되더군요.


    어쨌든 좀 빡빡하긴해도 매크로 하나에서 명령확인하고 푸쉬전송 하는 용도로는 어찌어찌 쓸만한 레이트가 나오긴 하더라구요.


    개발하실때 참고하셨으면 합니다

  • 꿀대표 2019.03.06 15:53
    외국에서 만든 매크로인지.. 받아서 사용하고 있는데,
    Hangoon님과 같은 이유로 푸시불렛 서비스를 중단하는 대신
    텔레그램 API로 사용하더라구요.

List of Articles
분류 제목 글쓴이 최근변경 추천
정보 활성화된 창으로 esc보내는 라이브러리. 1 헐키 2015.06.19 0/0
정보 혹시나 오토핫키 매크로 직접 만드시는분들~~ 4 프린치크 2014.10.29 0/0
정보 호성님 무한인증 뜨시는분 팁 4 우아아앙이잉 2015.01.06 1/0
정보 현재 사용하고 있는 PC 공인 IP 조회하기 2 저녁말고전역 2018.04.20 0/0
정보 해당이미지를 검색영역에서 모두 찾기 3 와이로 2015.11.11 1/0
정보 항상위에있는 메모장 스크립트 성지순례왔다 2015.06.21 0/0
정보 핫키 하나로 온오프 하기 2 저녁말고전역 2022.07.21 0/0
정보 한/영 전환 및 한글인지 영어인지 체크하는 방법 3 sistt 2017.04.08 1/0
정보 하나의 지정 픽셀로 마우스를 고정 압살맨블로그 2022.12.14 0/0
정보 프로그램 간이 비밀번호 임시 1 T7GG 2016.09.10 0/0
정보 푸시불렛자료-스마트폰으로 매크로에 명령하달입니다. 2 단백질 2019.03.06 0/0
정보 폴더내 이미지 찾는 Loop 5 묵치기 2014.12.01 0/0
정보 팝업 알림, CleanNotify 3 예지력1 2015.11.11 4/0
정보 테일스타 내 포인트 조회기 16 와이로 2017.07.04 4/0
정보 탭타이탄 연타 매크로 입니다. (초보만) 2 피겨맨 2015.07.01 1/0
정보 타이머 샘플입니다. 3 모바게 2014.11.28 1/0
정보 쿠키런 매크로(ImageSearch활용) 입니다. 10 멕아리 2015.02.09 1/0
정보 초보가 초보에게;; 핫키 사용법 8 악동주성 2016.09.03 4/0
정보 지니모션 테마 및 윈도우 버전 상관없이 해상도 변경하... 로뎀나무 2015.01.16 2/0
정보 지니모션 안보이게 하고 매크로 동작 24 Works 2015.04.10 0/0
Board Pagination Prev 1 23456 7 Next
/ 7

전체 최신 인기글

전체 주간 인기글