SQS로 Twitter 스위치 만들기 - 완성편-

5999 단어 RaspberryPisqsboto
마지막 원형을 만들고 함께
· Twitter의 선택 처리
• Twitter 실패시 재발급 처리
아직 제대로 하지 못했기 때문에 최소한 잘하고 싶다.
의 부분, 트위터 스위치로 완성.
저번 기본편 여기 있어요.
랩스베리 피와 SQS로 Twitter 스위치 만들기
이번에 쓴 부분은 스크립트가github에 포함되어 있습니다.
https://github.com/gacha-ru/tweet_switch

추가 기능


다음 3개가 추가됐다.

보낸 사람: 140자 제한


발송 스크립트에 문자수 검사 추가
주의할 점은 일본어의 문자 수계수다.
utf-8로 decode계수를 진행하면 일본어 문자와 영문 자모의 혼합을 계산할 수 있습니다.
실행 결과는 다음과 같다(OK 메시지가 장황하게 느껴진다...)
$ python sqs_send_queue.py Pythonぱいそんそん
文字数:12 Check OK!!!
evil_tweet へ Pythonぱいそんそん をいれました
$ python sqs_send_queue.py "家のつるべは潰れぬつるべ、隣のつるべは潰れるつるべ
ブスバスガイド バスガス爆発
国語熟語述語主語
打者 走者 勝者 走者一掃
あのアイヌの女のぬう布の名は何?あの布は名のない布なの
ある日昼ニヒルなあひるヒルにひるんだ
歌唄いが来て歌唄えと言うが 歌唄いくらい歌うまければ歌唄うが
歌唄いくらい歌うまくないので歌唄わぬ"
文字数:160 Check NG!!!
140字まで!!こまめに吐き出してこう( ー`дー´)キリッ

수신자: 트위터 실패 시 재발급 처리


트위터 API의 오류 코드는 여기.입니다.
발송이 정상적이지 않으면 대기열만 취소됩니다.
그러나 오류에 따라 다시 보내도 소용없다는 경고가 있는 오류는 취소해야 한다.
모두 대응할 자신이 없기 때문에 검증 과정에서 여러 차례 발생한 Duplicate 오류의 대응...
  • Code: 187 Message: "Status is a duplicate"(같은 내용이 이미 트위터에 올라왔는데 이거 하자! 라는 뜻)
  • tweet_switch.py
    # エラーメッセージの内容を返す
    def return_value_analysis(return_message, msg):
        error_value = return_message["errors"]
        error_message = error_value[0]
    
        # "Status is a duplicate."は同じ内容を既につぶやいていると言う事
        # メッセージを出しキューを削除
        if error_message["message"] in "Status is a duplicate.":
            duplicate_message = ('同じこといっとるでー!かえなかえな〜(^o^)/\n'
                                 '消しとくねー(^-^)それなー(^_<)=★')
            print duplicate_message
            queue.delete_message(msg)
        else:
            print error_message["message"]
            print ("キューは消さずに戻しときますね")
    

    수신자: Twitter 선택 처리


    앞에 스위치를 누르면 트위터예요.
    하지만 어쨌든'보존'장치이기 때문에 트위터를 통해 안 할 것을 선택하고 싶습니다.
    그래서 스위치를 두 자리로 나눠서 만들었어요.

    【절차】
    Raspberry pi를 눌러 실행
  • tweet_switch.py 실행$ python tweet_switch.py
  • "예"스위치를 누릅니다.yes
  • SQS의 "evil Twitter"대기열에 메시지가 있음
  • : "Twitter를 원하십니까?"출력
    선택은 Twitter→4
  • 없음: 출력 "없음"큐
    복귀 1
  • Yos No 스위치를 누릅니다.
  • 예: 문자 트윗
  • 같은 내용이 트위터에 전송된 경우 同じこといっとるでー!かえなかえな〜(^o^)/ 消しとくねー(^-^)それなー(^_<)=★ 메시지 표시 및 삭제
  • 기타 오류
    메시지를 삭제하지 않습니다.(Visibility Timeout 이후 Twitter를 다시 가져오고 다시 실행할 수 있음)
  • 아니오: 메시지 삭제
  • 반환 1
  • 두 번째 스위치


    첫 번째 스위치라고 적힌 내용은 같다.
    누르는 스위치에 따라 되돌아갈 내용이 바뀌었어요.
    # tweetするか確認
    def tweet_review():
        while True:
            time.sleep(0.01)
            GPIO.setmode(GPIO.BOARD)
            GPIO.setup(15, GPIO.OUT)
            GPIO.setup(19, GPIO.IN, pull_up_down=GPIO.PUD_UP)
            GPIO.output(15, False)
            no_input = GPIO.input(19)
            GPIO.output(15, not no_input)
            yes_input = GPIO.input(11)
    
            # メッセージ取得と同じスイッチ
            if yes_input == 0:
                GPIO.cleanup()
                return "Yes"
    
            #
            if no_input == 0:
                GPIO.cleanup()
                return "No"
    

    총결산


    이번에 두 시간 걸렸어요.
    /두 번째 스위치
    나는 퇴근하는 김에 아키하바라에 가서 사려고 했는데 퇴근해서 집에 가도 가게를 놓쳤다.
    그런데 우연히 전교 카메라에서도 파는 걸 발견하고 샀어요.
    이거 샀어요. 리듬 스위치
    애니메이션
    내가 어떻게 하는지 조사한 결과LICEcap는 매우 쓰기 좋았다.
    여러 번 다시 찍었더니 드디어 찍었다.

    좋은 웹페이지 즐겨찾기