Beispiel #1
0
    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)
Beispiel #2
0
    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)
Beispiel #3
0
#!/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:
Beispiel #4
0
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
Beispiel #5
0
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)
Beispiel #6
0
    '/',                                 '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)
Beispiel #7
0
    '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()