Skip to content
This repository was archived by the owner on Jan 20, 2025. It is now read-only.
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions squawker/.idea/inspectionProfiles/Project_Default.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

7 changes: 7 additions & 0 deletions squawker/.idea/inspectionProfiles/profiles_settings.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

14 changes: 14 additions & 0 deletions squawker/.idea/misc.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

8 changes: 8 additions & 0 deletions squawker/.idea/modules.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

6 changes: 6 additions & 0 deletions squawker/.idea/sqldialects.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

15 changes: 15 additions & 0 deletions squawker/.idea/squawker.iml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

278 changes: 278 additions & 0 deletions squawker/.idea/workspace.xml

Large diffs are not rendered by default.

10 changes: 7 additions & 3 deletions squawker/schema.sql
Original file line number Diff line number Diff line change
@@ -1,3 +1,7 @@
-- TODO change this
DROP TABLE IF EXISTS mytable;
CREATE TABLE mytable (id integer);

DROP TABLE IF EXISTS squawks;
CREATE TABLE squawks (
id integer primary key autoincrement,
phrase varchar(140) NOT NULL ,
time datetime NOT NULL
);
54 changes: 50 additions & 4 deletions squawker/server.py
Original file line number Diff line number Diff line change
@@ -1,10 +1,18 @@
from flask import Flask, g
import sqlite3

import datetime

# -- leave these lines intact --
from flask import abort
from flask import redirect
from flask import render_template
from flask import request
from flask import url_for

app = Flask(__name__)

COUNT = 20


def get_db():
if not hasattr(g, 'sqlite_db'):
Expand Down Expand Up @@ -34,14 +42,52 @@ def close_connection(exception):
db = getattr(g, 'sqlite_db', None)
if db is not None:
db.close()


# ------------------------------



@app.route('/')
def root():
def show_entries():
page = 0
if request.args.get('page'):
page = int(request.args.get('page'))

start_index = COUNT * page
# print("Page: " + str(page))
# print("StartIndex: " + str(start_index))

conn = get_db()
# TODO change this
return "Hello World!"
cur = conn.execute(
'SELECT id, phrase, time FROM squawks ORDER BY time DESC LIMIT ' + str(COUNT + 1) + ' OFFSET ' + str(
start_index))
entries = cur.fetchall()

more = False
less = False
previous_page = None
if len(entries) > COUNT:
more = True
entries.remove(entries[COUNT])
if page > 0:
less = True
previous_page = page-1

return render_template('show_entries.html', entries=entries, more=more, next_page=(page+1), less=less, previous_page=previous_page)


@app.route('/add', methods=['POST'])
def add_entry():
text = request.form['text']
if len(text) > 140:
abort(400)
return
db = get_db()
db.execute('INSERT INTO squawks (phrase, time) VALUES (?, ?)', [text, datetime.datetime.utcnow()])
db.commit()
# flash('New entry was successfully posted')
return redirect(url_for('show_entries'))


if __name__ == '__main__':
Expand Down
7 changes: 7 additions & 0 deletions squawker/templates/layout.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
<!doctype html>
<title>Squawks</title>
<link rel=stylesheet type=text/css href="{{ url_for('static', filename='style.css') }}">
<div class=page>
<h1>Squawks - Mario Rial, mr2224</h1>
{% block body %}{% endblock %}
</div>
23 changes: 23 additions & 0 deletions squawker/templates/show_entries.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
{% extends "layout.html" %}
{% block body %}
<form action="{{ url_for('add_entry') }}" method=post class=add-entry>
<dl>
<dt>Text:
<dd><textarea name=text rows=5 cols=40 maxlength="140"></textarea>
<dd><input type=submit value=Share>
</dl>
</form>
<ul class=entries>
{% for entry in entries %}
<li><h2>{{ entry[1]|safe }}</h2>
{% else %}
<li><em>Unbelievable. No entries here so far</em>
{% endfor %}
</ul>
{% if less %}
<a href="/?page={{ previous_page }}">Previous Page</a>
{% endif %}
{% if more %}
<a href="/?page={{ next_page }}">Next Page</a>
{% endif %}
{% endblock %}