plutopluto

git clone https://git.ce9e.org/plutopluto.git

commit
ae809ce9b45243eae5d93eb9183d6aecc7af8f55
parent
a4360714725ed064a866d95dddbf6f20ce775f33
Author
Tobias Bengfort <tobias.bengfort@gmx.net>
Date
2014-09-25 17:38
server side cache

Diffstat

M server.py 12 +++++++++++-

1 files changed, 11 insertions, 1 deletions


diff --git a/server.py b/server.py

@@ -5,12 +5,14 @@ from time import mktime, time
    5     5 import argparse
    6     6 
    7     7 from flask import Flask, request, jsonify, abort, render_template
   -1     8 from werkzeug.contrib.cache import SimpleCache
    8     9 
    9    10 import feedparser
   10    11 from bs4 import BeautifulSoup
   11    12 
   12    13 
   13    14 app = Flask(__name__)
   -1    15 cache = SimpleCache()
   14    16 
   15    17 
   16    18 def strip_atts(s):
@@ -54,13 +56,21 @@ def parse(url):
   54    56 	}
   55    57 
   56    58 
   -1    59 def cachedParse(url, timeout=5 * 60):
   -1    60 	data = cache.get(url)
   -1    61 	if data is None:
   -1    62 		data = parse(url)
   -1    63 		cache.set(url, data, timeout=timeout)
   -1    64 	return data
   -1    65 
   -1    66 
   57    67 @app.route('/parse', methods=['GET'])
   58    68 def main():
   59    69 	if 'url' in request.values:
   60    70 		url = request.values['url']
   61    71 
   62    72 		try:
   63    -1 			data = parse(url)
   -1    73 			data = cachedParse(url)
   64    74 		except Exception as err:
   65    75 			print(err)
   66    76 			data = {}