def index():
    db = connect_db().message
    items = list(db.find({ '$or' : [ {'urls':{'$exists':True}}, {'imgs':{'$exists':True}}] }, sort=[('time', -1)], limit=15))
    for i in items:
        if "tags" in i:
            i["tags"] = ", ".join(["#%s" % (x) for x in i["tags"]])
    return render_template("index.html", title="Home", items=items, items_len=len(items))
PARTYCHAT_ROOM = environ["PARTYCHAT_ROOM"]
GMAIL_USERNAME = environ["GMAIL_USERNAME"]
GMAIL_PASSWORD = environ["GMAIL_PASSWORD"]

PARTYCHAT_ROOM = PARTYCHAT_ROOM + "@im.partych.at"

reload(sys)
sys.setdefaultencoding('utf8')

# http://mathiasbynens.be/demo/url-regex
url_regex = re.compile(r'(?:(?:https?|ftp)://)(?:\S+(?::\S*)?@)?(?:(?!10(?:\.\d{1,3}){3})(?!127(?:\.\d{1,3}){3})(?!169\.254(?:\.\d{1,3}){2})(?!192\.168(?:\.\d{1,3}){2})(?!172\.(?:1[6-9]|2\d|3[0-1])(?:\.\d{1,3}){2})(?:[1-9]\d?|1\d\d|2[01]\d|22[0-3])(?:\.(?:1?\d{1,2}|2[0-4]\d|25[0-5])){2}(?:\.(?:[1-9]\d?|1\d\d|2[0-4]\d|25[0-4]))|(?:(?:[a-z\u00a1-\uffff0-9]+-?)*[a-z\u00a1-\uffff0-9]+)(?:\.(?:[a-z\u00a1-\uffff0-9]+-?)*[a-z\u00a1-\uffff0-9]+)*(?:\.(?:[a-z\u00a1-\uffff]{2,})))(?::\d{2,5})?(?:/[^\s]*)?', re.IGNORECASE)
img_regex = re.compile(r'.*(gif|jpg|jpeg|png|bmp)$')
tag_regex = re.compile(r'(?:^|\s)#(\w+)')

db = connect_db().message
fs = connect_db()
fs["thumbnail.chunks"].ensure_index([("files_id", 1), ("n", 1)])

fs = GridFS(fs, "thumbnail")


class LolBot(sleekxmpp.ClientXMPP):

    def __init__(self, jid, password):
        sleekxmpp.ClientXMPP.__init__(self, jid, password)
        self.add_event_handler("session_start", self.start)
        self.add_event_handler("message", self.message)

    def start(self, event):
        self.send_presence()
def thumb(thumb_id):
    fs = connect_db()
    fs = GridFS(fs, "thumbnail")
    f = fs.get(objectid.ObjectId(thumb_id))
    f = f.read()
    return app.response_class(f, mimetype="image/png")