WIP
This commit is contained in:
parent
d0777e2b85
commit
b02d3db684
41 changed files with 426 additions and 647 deletions
|
@ -1,10 +1,11 @@
|
|||
from flask.ext.assets import Bundle, Environment
|
||||
|
||||
# This can be done better, make it better
|
||||
|
||||
assets = Environment()
|
||||
filters = 'uglifyjs'
|
||||
output = 'assets/%(version)s.js'
|
||||
|
||||
|
||||
def register(*files):
|
||||
assets.debug = True
|
||||
filters = 'uglifyjs'
|
||||
output = 'assets/%(version)s.js'
|
||||
assets.add(Bundle(*files, filters=filters, output=output))
|
||||
def register(name, *files):
|
||||
assets.register(name, Bundle(*files, filters=filters, output=output))
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
import time
|
||||
from functools import update_wrapper
|
||||
from flask import request, g
|
||||
from services import cache
|
||||
from services import db
|
||||
|
||||
|
||||
class RateLimit(object):
|
||||
|
@ -13,7 +13,7 @@ class RateLimit(object):
|
|||
self.limit = limit
|
||||
self.per = per
|
||||
self.send_x_headers = send_x_headers
|
||||
p = cache.pipeline()
|
||||
p = db.pipeline()
|
||||
p.incr(self.key)
|
||||
p.expireat(self.key, self.reset + self.expiration_window)
|
||||
self.current = min(p.execute()[0], limit)
|
||||
|
|
|
@ -1,8 +1,4 @@
|
|||
import redis
|
||||
from flask.ext.sqlalchemy import SQLAlchemy
|
||||
from realms import config
|
||||
|
||||
db = SQLAlchemy()
|
||||
|
||||
# Default Cache connection
|
||||
cache = redis.StrictRedis(host=config.REDIS_HOST, port=config.REDIS_PORT)
|
||||
db = redis.StrictRedis(host=config.REDIS_HOST, port=config.REDIS_PORT, db=config.REDIS_DB)
|
|
@ -3,11 +3,7 @@ import os
|
|||
import hashlib
|
||||
import json
|
||||
|
||||
from flask import request
|
||||
from recaptcha.client import captcha
|
||||
|
||||
from realms import config
|
||||
from realms.lib.services import cache
|
||||
from realms.lib.services import db
|
||||
|
||||
|
||||
class AttrDict(dict):
|
||||
|
@ -41,7 +37,7 @@ def to_dict(data):
|
|||
def cache_it(fn):
|
||||
def wrap(*args, **kw):
|
||||
key = "%s:%s" % (args[0].table, args[1])
|
||||
data = cache.get(key)
|
||||
data = db.get(key)
|
||||
# Assume strings are JSON encoded
|
||||
try:
|
||||
data = json.loads(data)
|
||||
|
@ -63,20 +59,11 @@ def cache_it(fn):
|
|||
data = json.dumps(data, separators=(',', ':'))
|
||||
except TypeError:
|
||||
pass
|
||||
cache.set(key, data)
|
||||
db.set(key, data)
|
||||
return ret
|
||||
return wrap
|
||||
|
||||
|
||||
def validate_captcha():
|
||||
response = captcha.submit(
|
||||
request.form['recaptcha_challenge_field'],
|
||||
request.form['recaptcha_response_field'],
|
||||
config.RECAPTCHA_PRIVATE_KEY,
|
||||
request.remote_addr)
|
||||
return response.is_valid
|
||||
|
||||
|
||||
def mkdir_safe(path):
|
||||
if path and not(os.path.exists(path)):
|
||||
os.makedirs(path)
|
||||
|
@ -134,4 +121,4 @@ def to_canonical(s):
|
|||
|
||||
|
||||
def gravatar_url(email):
|
||||
return "//www.gravatar.com/avatar/" + hashlib.md5(email).hexdigest()
|
||||
return "//www.gravatar.com/avatar/" + hashlib.md5(email).hexdigest()
|
||||
|
|
|
@ -67,7 +67,7 @@ class Wiki():
|
|||
if not page:
|
||||
# Page not found
|
||||
return None
|
||||
commit_info = gittle.utils.git.commit_info(self.repo[commit_sha])
|
||||
commit_info = gittle.utils.git.commit_info(self.repo[commit_sha.encode('latin-1')])
|
||||
message = commit_info['message']
|
||||
return self.write_page(name, page['data'], message=message, username=username)
|
||||
|
||||
|
@ -104,9 +104,8 @@ class Wiki():
|
|||
content = re.sub(r"```(.*?)```", unescape_repl, content, flags=re.DOTALL)
|
||||
|
||||
filename = self.cname_to_filename(to_canonical(name))
|
||||
f = open(self.path + "/" + filename, 'w')
|
||||
f.write(content)
|
||||
f.close()
|
||||
with open(self.path + "/" + filename, 'w') as f:
|
||||
f.write(content)
|
||||
|
||||
if create:
|
||||
self.repo.add(filename)
|
||||
|
@ -118,7 +117,7 @@ class Wiki():
|
|||
username = self.default_committer_name
|
||||
|
||||
if not email:
|
||||
email = "%s@realms.io" % username
|
||||
email = self.default_committer_email
|
||||
|
||||
return self.repo.commit(name=username,
|
||||
email=email,
|
||||
|
@ -135,7 +134,9 @@ class Wiki():
|
|||
|
||||
def get_page(self, name, sha='HEAD'):
|
||||
# commit = gittle.utils.git.commit_info(self.repo[sha])
|
||||
name = self.cname_to_filename(name)
|
||||
name = self.cname_to_filename(name).encode('latin-1')
|
||||
sha = sha.encode('latin-1')
|
||||
|
||||
try:
|
||||
return self.repo.get_commit_files(sha, paths=[name]).get(name)
|
||||
except KeyError:
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue