DotaNoobs main site.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

117 lines
2.7 KiB

  1. import re
  2. from flask import render_template, flash, redirect, g, request, url_for, session
  3. from app import app, db, oid
  4. from models import User
  5. from utils import get_steam_userinfo
  6. from board import latest_news
  7. @app.before_request
  8. def before_request():
  9. g.user = None
  10. if 'user_id' in session:
  11. g.user = User.query.get(session['user_id'])
  12. @app.route('/')
  13. @app.route('/main')
  14. def index():
  15. return render_template("index.html", latest_news=latest_news())
  16. @app.route('/login')
  17. @oid.loginhandler
  18. def login():
  19. if g.user is not None:
  20. return redirect(oid.get_next_url())
  21. return oid.try_login('http://steamcommunity.com/openid')
  22. @oid.after_login
  23. def create_or_login(resp):
  24. match = app.config['STEAM_ID_RE'].search(resp.identity_url)
  25. g.user = User.get_or_create(match.group(1))
  26. steamdata = get_steam_userinfo(g.user.steam_id)
  27. g.user.nickname = steamdata['personaname']
  28. g.user.avatar = steamdata['avatar']
  29. db.session.commit()
  30. session['user_id'] = g.user.id
  31. flash("You are logged in as {}".format(g.user.nickname))
  32. return redirect(oid.get_next_url())
  33. @app.route('/logout')
  34. def logout():
  35. session.pop('user_id', None)
  36. return redirect(oid.get_next_url())
  37. @app.template_filter('shorten')
  38. def shorten_filter(s, num_words=20):
  39. space_iter = re.finditer('\s+', s)
  40. output = u''
  41. while num_words > 0:
  42. match = space_iter.next()
  43. if not match: break
  44. output = s[:match.end()]
  45. num_words -= 1
  46. else:
  47. output += '...'
  48. return output
  49. ### TEMPORARY ###
  50. @app.route('/teamspeak')
  51. def teamspeak():
  52. return "Teamspeak!"
  53. @app.route('/list_events')
  54. def list_events():
  55. return "Events list!"
  56. @app.route('/friends')
  57. def friends():
  58. return render_template('friends.html')
  59. @app.route('/community')
  60. def community():
  61. return "Community!"
  62. @app.route('/ladder')
  63. def ladder():
  64. return "Ladder!"
  65. '''
  66. from flask import render_template, flash, redirect, g, request, url_for
  67. from app import app, oid
  68. @app.route('/login')
  69. @oid.loginhandler
  70. def login():
  71. if g.user is not None:
  72. return redirect(oid.get_next_url())
  73. return oid.try_login('http://www.steamcommunity.com/openid')
  74. @oid.after_login
  75. def check_login(resp):
  76. match = app.config['STEAM_ID_RE'].search(resp.identity_url)
  77. return "none"
  78. @app.route('/')
  79. def main():
  80. return render_template('main.html')
  81. @app.route('/community')
  82. def community():
  83. return render_template('community.html', latest_posts=latest_posts())
  84. @app.route('/friends')
  85. def friends():
  86. return render_template('friends.html')
  87. @app.route('/teamspeak')
  88. def teamspeak():
  89. return render_template('teamspeak.html')
  90. @app.route('/events')
  91. def list_events():
  92. return render_template('events.html')
  93. @app.route('/events/<int:id>')
  94. def event_summary(id):
  95. return render_template('events.html')
  96. @app.route('/ladder')
  97. def ladder():
  98. return render_template('ladder.html')
  99. '''