#!/usr/bin/env python from subprocess import Popen, PIPE import re import urllib2 import cjson import datetime def retrieve_random(): req = urllib2.Request('http://spraakbanken.gu.se/ws/saldo-ws/lid/json/rnd') req.add_header('Pragma', 'no-cache') content = urllib2.urlopen(req).read().decode('UTF-8') return cjson.decode(content) def pos(random): pos = [] for l in random['l']: pos.append(re.findall(u'\.\.(.+)\.',l)[0]) return ",".join(pos) def sblex(word): return 'http://spraakbanken.gu.se/sblex/%s' % (word) def to_word(lex): return re.split(r'\.\.',lex)[0].replace('_',' ') def render(random): lex = to_word(random['lex']) fp = random['fp'] fm = to_word(random['fm']) if fp != 'PRIM..1': fp = ' + '+to_word(fp) else: fp = '' wc = pos(random) return '%s:%s [ %s%s ]' % (lex,wc,fm,fp) def produce_rss(): random = retrieve_random() date = str(datetime.datetime.now()).split('.')[0] result = ''' SALDO http://spraakbanken.gu.se/saldo SALDO SALDO http://spraakbanken.gu.se/sites/spraakbanken.gu.se/files/img/saldo/saldo.gif http://spraakbanken.gu.se/saldo \n''' random_rendering = render(random) result += ' \n' result += ' %s\n' %(random_rendering) result += ' %s\n' % (date) result += ' %s\n' % (sblex(to_word(random['lex']))) result += ' %s (%s)\n' % (random_rendering,date) result += ' \n' result += '\n' result += '' return result if __name__ == '__main__': print produce_rss().encode('UTF-8')