view newsfeed.py @ 49:a9a3c55ef91c

Made CGI feed script more readable.
author Sascha L. Teichmann <teichmann@intevation.de>
date Thu, 20 Mar 2014 14:01:48 +0100
parents 8cc0036041cf
children f00a8a8d9225
line wrap: on
line source
#!/usr/bin/env python

import urllib2
import simplejson
import time

# SETTINGS

user       = "dive4elements-test"
url        = "http://io.intevation.de/api/user/%s/feed/public" % user
verb       = "share" # post or share
max_posts  = 5
max_length = 350
opacity75  = 20
ocacity50  = 10

# END SETTINGS

output = []

oa = output.append

postcount = 1

oa('<ul style="list-style-type: square; margin-left:-25px;line-height: 23px;">')

response = urllib2.urlopen(url)
data = simplejson.load(response,'utf8')

for item in data["items"]:

    # only shares or posts are interesting
    if item["verb"] != verb: continue

    # max_posts
    if postcount > max_posts: break

    try:
        content = item["object"]["content"]
    except KeyError:
        continue

    postcount += 1
    content = content.encode('utf8')
    oa("<li>")

    if len(content) >= max_length:
        oa(content[:(max_length-opacity75)])
        oa("<a href="+item["actor"]["url"]+">")
        #oa("<a href="+item["object"]["url"]+">")
        oa('<span style="opacity: 0.75;filter:Alpha(opacity=75)">')
        oa(content[(max_length-opacity75):(max_length-ocacity50)])
        oa('</span>')
        oa('<span style="opacity: 0.50;filter:Alpha(opacity=50)">')
        oa(content[(max_length-ocacity50):(max_length)])
        oa('...</span></a>')
    else:
        oa(content)

    oa('<br>')
    actor = item["actor"]
    #oa("<a href="+item["object"]["links"]["self"]["href"]+">more...</a>")
    oa('<span style="font-size:smaller">')
    oa('<a href="'+actor["url"]+'">'+actor["displayName"]+'</a>')
    #oa(item["content"])
    if verb == "share":
        oa(' via <a href="'+item["object"]["url"]+'">'+item["object"]["author"]["displayName"]+'</a>')
    #if verb == "share":
    #   oa(' via <a href="'+item["object"]["author"]["url"]+'">'+item["object"]["author"]["displayName"]+'</a>')

    # 2014-01-03T10:30:02Z
    date = time.strptime(item["updated"],"%Y-%m-%dT%H:%M:%SZ")
    oa(time.strftime(" %d.%m.%Y um %H:%M:%S", date))
    oa('</span>')
    oa("</li>")

oa("</ul>")
#oa('<a href="'+data["author"]["url"]+'">mehr von '+data["author"]["displayName"]+'</a>' )
body = ''.join(output)

print "Content-Type: text/html;charset=utf-8"
print
print body
This site is hosted by Intevation GmbH (Datenschutzerklärung und Impressum | Privacy Policy and Imprint)