Upgrade to Pro — share decks privately, control downloads, hide ads and more …

트위터 봇 개발 후기

트위터 봇 개발 후기

Clojure, AWS, Travis CI, Heroku와 함께한 트위터 봇 개발 후기

Jongbin Oh

May 21, 2022
Tweet

More Decks by Jongbin Oh

Other Decks in Programming

Transcript

  1. 봇이 트윗하는 인용구는 어떻게? 자동화는 섹시해 뭐라? Heroku 1 dynos는

    공짜라고? 봇 발사대는 AWS Clojure로 트위터 봇을 제작
  2. [{:source "Modern C++ Design" :quotes ["시스템 아키텍처의..." "단위전략 인터페이스의..."]} {:source

    ... :quotes [“...”]}] 출처 책을 매번 적기 귀찮아서 map 사용
  3. (defn adjust-quote [quote url] (if (<= (count quote) 140) quote

    (str (apply str (take 100 quote)) "... " url))) 앞에서부터 100자만 살아 남는다
  4. (defn append-hash-val [quotes] (map (fn [q] {:key (d/md5 q) :quote

    q}) quotes)) (“q1” “q2”) ({:key “h1” :quote “q1”} {:key “h2” :quote “q2”})
  5. (map (fn [p] (let [k (:key p) q (:quote p)

    out-path (str output-dir "/" k ".html")] (with-open [w (io/writer out-path)] (.write w (build-html q twitter-card-creator))))) key-quote-pairs) :key 값인 hash value를 html 이름으로 사용
  6. (defn build-html [q twitter-card-creator] (let [twitter-card-desc (if (> (count q)

    100) (apply str (drop 100 q)) q)] (hp/html5 {:lang "en"} [:head [:meta {:name "twitter:description" :content twitter-card-desc}] ...]))) 100자 이후를 메타 정보에 저장
  7. language: clojure ... install: - git clone ... --branch=gh-pages result

    - git clone ... builder - cd builder;lein uberjar script: - cd ..;java -jar... after_success: ... - git commit -m "Travis build $TRAVIS_BUILD_NUMBER ..." - git push -fq origin gh-pages 소스, 결과물 브랜치 클론 결과물 커밋, 푸시 리포지토리 루트에 있는 .travis.yml 클로저 무시 노노.
  8. -----> Clojure app detected -----> Installing OpenJDK 1.8...done -----> Using

    cached Leiningen 1.7.1 Downloading: rlwrap-0.3.7 Writing: lein script -----> Building with Leiningen Running: lein deps -----> Discovering process types Procfile declares types -> worker -----> Compressing... done, 62.4MB -----> Launching... done, v18 알아서 빌드 해 줌 worker: lein trampoline run
  9. 개발 일기가 좋은 연료가 될 수 있어요. 기록하며 생각 정리.

    잘하고 있는 것 같은 착각. http://ohyecloudy.com/ddiary/categories.html#tbot-800-ref
  10. CC BY-NC-SA 3.0 진행중인 개인프로젝트 있나요? 진행하는 데 도움되는 습관?

    tbot-800 https://github.com/ohyecloudy/tbot-800 tbot-quote-builder https://github.com/ohyecloudy/tbot-quote-builder 블로그에 쓴 후기 http://ohyecloudy.com/pnotes/archives/1850/