Example #1
0
    def render(self, context):
        output = self.nodelist.render(context)

        items = output.split()

        tweet = {}
        tweets = []
        html = ""

        for item in items:
            tweet = cache.get(item)

            if tweet:
                pass
            else:
                twitter_client = TwitterClient(CONSUMER_KEY, CONSUMER_SECRET)
                print item
                tweet = twitter_client.request('https://api.twitter.com/1.1/statuses/show.json?id={0}'.format(item))

                cache.set(item, tweet, TWITTER_TIMEOUT)

            data = json.loads(tweet)
            # print data['user']['screen_name']
                # print data.user.name
                # print data.user.url
                # print data.user.profile_image_url
                #
                # print data['text']
                # print data.created_at

                # tweets.append(tweet)

            # for tweet in tweets:
            html += """
            <div class="tweet" onClick="window.open('http://twitter.com/{2}/status/{4}/')" >
                <img src="{0}">
                <span class="username">{1}</span>
                <span class="handle" ><a onClick="window.open('http://twitter.com/{2}'); event.preventDefault();" href="https://twitter.com/{2}/" title="users twitter page">@{2}</a></span>
                <p><span class="text">{3}</span></p>
            </div>

            """.format(
                data['user']['profile_image_url'].encode('utf-8').strip(),
                data['user']['name'].encode('utf-8').strip(),
                data['user']['screen_name'].encode('utf-8').strip(),
                data['text'].encode('utf-8').strip(),
                data['id']
                # "text"
            )
        return html
Example #2
0
    def render(self, context):
        output = self.nodelist.render(context)

        items = output.split()

        tweet = {}
        tweets = []
        html = ""

        try:

            for item in items:
                tweet = cache.get(item)

                if tweet:
                    pass
                else:
                    twitter_client = TwitterClient(CONSUMER_KEY,
                                                   CONSUMER_SECRET)
                    print item

                    tweet = twitter_client.request(
                        'https://api.twitter.com/1.1/statuses/show.json?id={0}'
                        .format(item))
                    cache.set(item, tweet, TWITTER_TIMEOUT)

                data = json.loads(tweet)

                html += """
                <div class="tweet" onClick="window.open('http://twitter.com/{2}/status/{4}/')" >
                    <img src="{0}">
                    <span class="username">{1}</span>
                    <span class="handle" ><a onClick="window.open('http://twitter.com/{2}'); event.preventDefault();" href="https://twitter.com/{2}/" title="users twitter page">@{2}</a></span>
                    <p><span class="text">{3}</span></p>
                </div>

                """.format(
                    data['user']['profile_image_url'].replace(
                        "http://a0", "https://si0"),
                    data['user']['name'].encode('utf-8').strip(),
                    data['user']['screen_name'].encode('utf-8').strip(),
                    data['text'].encode('utf-8').strip(), data['id'])
        except:
            html = "oops.. we failed to get some tweets from the api, but believe us, it's all good. :-)"

        return html
Example #3
0
class TweetNode(template.Node):

    def __init__(self, nodelist):
        self.nodelist = nodelist
        self.twitter_client = TwitterClient(CONSUMER_KEY, CONSUMER_SECRET)

    def render(self, context):
        output = self.nodelist.render(context)

        items = output.split()

        tweet = {}
        tweets = []
        html = ""

        try:

            for item in items:
                tweet = cache.get(item)

                if tweet:
                    pass
                else:
                    print item

                    tweet = self.twitter_client.request('https://api.twitter.com/1.1/statuses/show.json?id={0}'.format(item))
                    cache.set(item, tweet, TWITTER_TIMEOUT)

                data = json.loads(tweet)

                html += """
                <div class="tweet" onClick="window.open('http://twitter.com/{2}/status/{4}/')" >
                    <img src="{0}">
                    <span class="username">{1}</span>
                    <span class="handle" ><a onClick="window.open('http://twitter.com/{2}'); event.preventDefault();" href="https://twitter.com/{2}/" title="users twitter page">@{2}</a></span>
                    <p><span class="text">{3}</span></p>
                </div>

                """.format(
                    data['user']['profile_image_url'].replace("http://a0", "https://si0").replace("http://abs", "https://abs"),
                    data['user']['name'].encode('utf-8').strip(),
                    data['user']['screen_name'].encode('utf-8').strip(),
                    data['text'].encode('utf-8').strip(),
                    data['id']
                )
        except:
            html = "oops.. we failed to get some tweets from the api, but believe us, it's all good. :-)"

        return html
Example #4
0
 def __init__(self, nodelist):
     self.nodelist = nodelist
     self.twitter_client = TwitterClient(CONSUMER_KEY, CONSUMER_SECRET)