def GET(self): db = swissturnier.db.DB() with db.session_scope() as session: total_teams = session.query(swissturnier.db.Team).count() stats = { 'total_teams': total_teams, } web.header('Content-Type', 'text/html') render = render_cheetah('reports/api') return render.index(title='Teams', statistics=stats)
def GET(self): db = athrank.db.DB() total_athletes = db.store.find(athrank.db.Athlete).count() count_per_category = db.store.execute( 'SELECT category, COUNT(id_athlete) FROM Athlete GROUP BY category ORDER BY category' ).get_all() stats = { 'total_athletes': total_athletes, 'count_per_category': count_per_category, } render = render_cheetah('reports/api') return render.index(title='Athrank', statistics=stats)
#!/usr/bin/python # -*- coding: utf-8 -*- # # Developed by WalterCool! under GPL-2 License # Feel free of modify (using GPL-2 rules) or reporting bugs # mailto: waltercool [at] slash [dot] cl # http://www.slash.cl # import web from web.contrib.template import render_cheetah valido = 0 urls = ('/', 'index', '/main', 'main', '/insert', 'insert') db = web.database(dbn='sqlite', db='test.db') render = render_cheetah('templates/') user = "" class index: def GET(self): return render.login(error = '') def POST(self): params = web.input() login = db.select('users') for x in login: if params.loguser == x.user: if params.logpasswd == x.passwd: globals() ['valido'] = 1 if globals() ['valido'] == 1:
def face_main(data): content_type = "text/html" render = render_cheetah('templates/') locale = data.get("lang", "be") userip = os.environ.get("REMOTE_ADDR", "0.0.0.0") if locale not in ('en', 'ru', 'be', 'be-tarask'): locale = "be" if data.get('request') == 'describe': content_type = "text/javascript" lat = float(data["lat"]) lon = float(data["lon"]) zoom = float(data.get("zoom", 10)) userid = data.get("id", "none") r = redis.Redis(host=os.environ['REDIS_HOST'], port=int(os.environ['REDIS_PORT']), db=int(os.environ['REDIS_DB'])) r.rpush("osmbyusers:" + userip + ":" + userid, json.dumps([lat, lon, zoom, locale, time.time()])) r.expire("osmbyusers:" + userip + ":" + userid, 3600) a = {"breadcrumbs": geocoder_describe((lon, lat), zoom, locale)} a = json.dumps(a, ensure_ascii=False) elif data.get('request') == 'getusersnow': content_type = "text/javascript" r = redis.Redis(host=os.environ['REDIS_HOST'], port=int(os.environ['REDIS_PORT']), db=int(os.environ['REDIS_DB'])) a = r.keys("osmbyusers*") b = [] for i in a: b.append([json.loads(j) for j in r.lrange(i, 0, 1000)]) a = b a = json.dumps(a) elif data.get('request') == 'geocode': content_type = "text/javascript" lat = float(data.get("lat", 53.9)) lon = float(data.get("lon", 27.5)) text = data.get("text", 'Minsk') a = {"results": geocoder_geocode(text, (lon, lat))} try: logfile = open('req.txt', "a") print(len(a["results"]), lon, lat, text, file=logfile) logfile.close() if len(a["results"]) == 0: logfile = open('notfound.txt', "a") print(len(a["results"]), lon, lat, text, file=logfile) logfile.close() except: pass a = json.dumps(a, ensure_ascii=False) elif data.get('request') == 'click_about': content_type = "text/javascript" lat = float(data.get("lat", 53.9)) lon = float(data.get("lon", 27.5)) a = {"results": organisations_around_point((lon, lat), locale), "coords": (lon, lat)} a = json.dumps(a, ensure_ascii=False) elif data.get('request') == 'locale-tracebug': lang = data.get("lang", None) tt = data.get("lines", "|")[:-1] # string%1|string2%3 if (lang in LOCALES) and tt: r = redis.Redis(host=os.environ['REDIS_HOST'], port=int(os.environ['REDIS_PORT']), db=int(os.environ['REDIS_DB'])) tt = [(i.split('%')[0], float(i.split('%')[1])) for i in tt.split('|')] for i in tt: r.zincrby('locale:' + lang, i[1], i[0]) a = "ok" else: lat, lon, zoom = (0, 0, 1) layer = "osm" try: # first try to get map postiton from URL lat = float(data["lat"]) lon = float(data["lon"]) zoom = float(data.get("zoom", 10)) except (KeyError, ValueError): user_geoip = GeoIpCache.record_by_addr(userip) # try GeoIP try: lat = user_geoip["latitude"] lon = user_geoip["longitude"] except TypeError: lat = 53.907169 lon = 27.579460 zoom = 8 description = "OpenStreetMap Беларусь. Карта, рисуемая людьми." import math def deg2num(lat_deg, lon_deg, zoom): lat_rad = math.radians(lat_deg) n = 2.0 ** zoom xtile = ((lon_deg + 180.0) / 360.0 * n) ytile = ((1.0 - math.log(math.tan(lat_rad) + (1 / math.cos(lat_rad))) / math.pi) / 2.0 * n) return (xtile, ytile) snippeturl = "" if data.get("lat"): offzoom = int(max(zoom - 2, 0)) snippeturl = "http://twms.kosmosnimki.ru/?layers=osm&request=GetTile&z=%s&x=%s&y=%s&format=image/png" % ( offzoom, deg2num(lat, lon, offzoom)[0] - .5, deg2num(lat, lon, offzoom)[1] - .5) try: description = [i[1] for i in geocoder_describe((lon, lat), zoom, locale)] description.reverse() description = ", ".join(description) + " на картах OpenStreetMap Беларусь" description.replace('"', '') except: pass a = render.index(_=i18n, locale=locale, longitude=lon, latitude=lat, zoom=zoom, description=description, snippeturl=snippeturl) if data.get("beta"): a = render.indexb(_=i18n, locale=locale, longitude=lon, latitude=lat, zoom=zoom, description=description, snippeturl=snippeturl) return OK, content_type, a
def face_main(data): content_type = "text/html" render = render_cheetah('templates/') a = "" locale = data.get("locale","be") userip = os.environ.get("REMOTE_ADDR", "0.0.0.0") if locale not in ('en','ru','be'): locale = "be" if data.get('request') == 'describe': content_type = "text/javascript" lat = float(data["lat"]) lon = float(data["lon"]) zoom = float(data.get("zoom", 10)) userid = data.get("id", "none") r = redis.Redis(host='localhost', port=6379, db=0) r.rpush("osmbyusers:"+userip+":"+userid, json.dumps([lat,lon,zoom, locale, time.time()])) r.expire("osmbyusers:"+userip+":"+userid, 3600) a = {} a["breadcrumbs"] = geocoder_describe((lon,lat), zoom, locale) a = json.dumps(a, ensure_ascii=False) elif data.get('request') == 'getusersnow': content_type = "text/javascript" r = redis.Redis(host='localhost', port=6379, db=0) a = r.keys("osmbyusers*") b = [] for i in a: b.append([json.loads(j) for j in r.lrange(i,0,1000)]) a = b a = json.dumps(a) elif data.get('request') == 'geocode': content_type = "text/javascript" lat = float(data.get("lat", 53.9)) lon = float(data.get("lon", 27.5)) text = data.get("text",'Minsk') a = {} a["results"] = geocoder_geocode(text,(lon,lat)) try: logfile = open('req.txt', "a") print >> logfile, len(a["results"]), lon, lat, text logfile.close() if len(a["results"]) == 0: logfile = open('notfound.txt', "a") print >> logfile, len(a["results"]), lon, lat, text logfile.close() except: pass a = json.dumps(a, ensure_ascii=False) elif data.get('request') == 'click_about': content_type = "text/javascript" lat = float(data.get("lat", 53.9)) lon = float(data.get("lon", 27.5)) locale = data.get("locale","be") if locale not in ('en','ru','be'): locale = "be" a = {} a["results"] = organisations_around_point((lon,lat), locale) a["coords"] = (lon, lat) a = json.dumps(a, ensure_ascii=False) elif data.get('request') == 'leech': page = data.get('page', 'navitel') url = '' rxp = "(<table.*?/table>)" if page == "navitel": url = "http://code.google.com/p/maps-by/wiki/Navitel" elif page == "garmin": url = "http://code.google.com/p/maps-by/wiki/garmin" a = urllib.urlopen(url).read() a = re.search("(<table.*?/table>)",a).group() a += "<br /><s>Project page:</s> <a href='%s'>%s</a>"%(url, url) elif data.get('request') == 'bugs-table': bbox = data.get("bbox", "27.303566420912,53.757177366664,27.873482192375,54.037560030818") bbox = tuple([float(a) for a in bbox.split(",")]) url = "http://openstreetbugs.schokokeks.org/api/0.1/getGPX?l=%s&b=%s&r=%s&t=%s&limit=1000&open=1"%bbox GPX = urllib2.urlopen(url) lon=0 lat=0 text="" bugs = [] #b = "" for event, element in etree.iterparse(GPX): tag = element.tag.split("}")[-1] params = dict(element.items()) #a += "-" + tag if tag == "wpt": q = {} q["lon"] = float(params["lon"]) q["lat"] = float(params["lat"]) q["text"] = text bugs.append(q) #b += "<tr><td>%s,%s</td><td>%s</td></tr>"%(q["lon"], q["lat"], q["text"]) if tag == "desc": text = element.text text = text.replace("<hr","<br") a = render.bugstable(bugs=bugs) elif data.get('request') == 'locale-tracebug': lang = data.get("lang", None) tt = data.get("lines", "|")[:-1] # string%1|string2%3 if (lang in LOCALES) and tt: r = redis.Redis(host='localhost', port=6379, db=0) tt = [(i.split('%')[0], float(i.split('%')[1]) ) for i in tt.split('|')] for i in tt: r.zincrby('locale:'+lang, i[0], i[1]) a = "ok" else: lat, lon, zoom = (0, 0, 1) layer = "osm" try: # first try to get map postiton from URL lat = float(data["lat"]) lon = float(data["lon"]) zoom = float(data.get("zoom", 10)) except KeyError, ValueError: user_geoip = GeoIpCache.record_by_addr(userip) # try GeoIP try: lat = user_geoip["latitude"] lon = user_geoip["longitude"] except TypeError: lat = 53.90716974946899 lon = 27.57946014404297 zoom = 8 description = "OpenStreetMap Беларусь. Карта, рисуемая людьми." import math def deg2num(lat_deg, lon_deg, zoom): lat_rad = math.radians(lat_deg) n = 2.0 ** zoom xtile = ((lon_deg + 180.0) / 360.0 * n) ytile = ((1.0 - math.log(math.tan(lat_rad) + (1 / math.cos(lat_rad))) / math.pi) / 2.0 * n) return (xtile, ytile) snippeturl = "" if data.get("lat"): offzoom = int(max(zoom-2,0)) snippeturl = "http://twms.kosmosnimki.ru/?layers=osm&request=GetTile&z=%s&x=%s&y=%s&format=image/png"%(offzoom, deg2num(lat,lon,offzoom)[0]-.5,deg2num(lat,lon,offzoom)[1]-.5) try: description = [i[1] for i in geocoder_describe((lon,lat), zoom, locale)] description.reverse() description = ", ".join(description) + " на картах OpenStreetMap Беларусь" description.replace('"','') except: pass a = render.index( _=i18n, longitude=lon, latitude=lat, zoom=zoom, description=description, snippeturl = snippeturl) if data.get("beta"): a = render.indexb( _=i18n, longitude=lon, latitude=lat, zoom=zoom, description=description, snippeturl = snippeturl)
'/', 'RedditRiver', '/page/(\d+)/?', 'RedditRiverPage', '/r/([a-zA-Z0-9_.-]+)/?', 'SubRedditRiver', '/r/([a-zA-Z0-9_.-]+)/page/(\d+)/?', 'SubRedditRiverPage', '/reddits/?', 'SubReddits', '/reddits/page/(\d+)/?', 'SubRedditsPage', '/stats/?', 'Stats', '/stats/([a-zA-Z0-9_.-]+)/?', 'SubStats', '/about/?', 'AboutRiver' ) webapi.internalerror = debugerror # no escaping needs to be done as the data we get from reddit is already escaped net.htmlquote = lambda x: x render = render_cheetah(path.join(cwd, 'templates')) ################ # page handlers ################ class RedditRiver(object): def GET(self): st = stories.RiverStories() story_page = st.get() return render.stories_tpl(**story_page) class RedditRiverPage(object): def GET(self, page): st = stories.RiverStoriesPage(page) story_page = st.get() return render.stories_tpl(**story_page)
'deref', # for merged request '/apex_wiki.*', 'home', '/static/([^\.].*)', 'static', '/(credits|downloads|support|publications)', 'page', ) conn = server.connect('zhishi291') conn_lookup = server.connect('lookup29') app = web.application(urls, globals()) application = web.application(urls, globals(), autoreload=False).wsgifunc() render = render_cheetah('./') class index: def GET(self): return render.__getattr__('index')() class page: def GET(self, path): if path == 'credits': return render.credits() elif path == 'downloads': return render.downloads() elif path == 'support': return render.support()