This repository has been archived by the owner on Jun 8, 2023. It is now read-only.
/
tweet-content.coffee
52 lines (45 loc) · 1.65 KB
/
tweet-content.coffee
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
# Description:
# Detect tweet URL and send tweet content
#
# Dependencies:
# "ntwitter": "0.2.10"
# "underscore": "1.5.1"
#
# Configuration:
# HUBOT_TWITTER_CONSUMER_KEY
# HUBOT_TWITTER_CONSUMER_SECRET
# HUBOT_TWITTER_ACCESS_TOKEN_KEY
# HUBOT_TWITTER_ACCESS_TOKEN_SECRET
#
# Commands:
# None
#
# Author:
# Vrtak-CZ, kdaigle
ntwitter = require 'ntwitter'
_ = require 'underscore'
module.exports = (robot) ->
auth =
consumer_key: process.env.HUBOT_TWITTER_CONSUMER_KEY,
consumer_secret: process.env.HUBOT_TWITTER_CONSUMER_SECRET,
access_token_key: process.env.HUBOT_TWITTER_ACCESS_TOKEN_KEY,
access_token_secret: process.env.HUBOT_TWITTER_ACCESS_TOKEN_SECRET,
rest_base: 'https://api.twitter.com/1.1'
if not auth.consumer_key or not auth.consumer_secret or not auth.access_token_key or not auth.access_token_secret
console.log "twitter-content.coffee: HUBOT_TWITTER_CONSUMER_KEY, HUBOT_TWITTER_CONSUMER_SECRET,
HUBOT_TWITTER_ACCESS_TOKEN_KEY, and HUBOT_TWITTER_ACCESS_TOKEN_SECRET are required."
return
twit = new ntwitter auth
robot.hear /https?:\/\/(mobile\.)?twitter\.com\/.*?\/status\/([0-9]+)/i, (msg) ->
twit.getStatus msg.match[2], (err, tweet) ->
if err
console.log err
return
tweet_text = _.unescape(tweet.text)
if tweet.entities.urls?
for url in tweet.entities.urls
tweet_text = tweet_text.replace(url.url, url.expanded_url)
if tweet.entities.media?
for media in tweet.entities.media
tweet_text = tweet_text.replace(media.url, media.media_url)
msg.send "@#{tweet.user.screen_name}: #{tweet_text}"