Exemple #1
0
def main():
    global serializer, name

    name = 'fetcher' + str(randint(100, 9999))

    cfg = load(open('/etc/fetch/fetch.cfg'))

    server_addr = cfg['server_addr']

    serializer = url_serializer(cfg['key'])

    get_logger().name = name
    get_logger().setLevel(cfg['log_level'])

    info('starting up')

    fg = feed_getter(server_addr, name, serializer)
    fg.start()
    fg.join()

    warn('not sure why we\'re here')
Exemple #2
0
from feedsync import app, g, request, session, abort, \
    url_for, feeds

from flask.views import MethodView

from itsdangerous import URLSafeTimedSerializer as url_serializer, \
    BadSignature

from hashlib import sha256
from pymongo import Connection

# not sure this is thread-safe
serializer = url_serializer("234jn13lk1jb4tgk4jg4kljgbq;lfasdFADFASDGj3rb3")

fetchers = Connection().sync_db.fetchers

def signed_request(args, form): 
    #form = dict(form)
    signstring = args.get('key')

    #werkzeug does some weird value munging here, have to undo
    form = dict([ (x, y) for x, y in form.items() ])
    payload = sha256(repr(form)).hexdigest()

    try: 
        ret = serializer.loads(signstring, max_age=1.5)
        if payload == ret:
            return True
    except BadSignature, e: 
        app.logger.warning('someone tried to pass us a bogus request: %s' % e)