Added some HTML

This commit is contained in:
Fergal Moran
2018-09-21 15:28:49 +01:00
parent bf0e6755ca
commit 54401a2928
7 changed files with 169 additions and 43 deletions

3
.gitignore vendored
View File

@@ -105,4 +105,5 @@ numbers.json
# mypy
.mypy_cache/
.idea
app.yaml
app.yaml
google-credentials.json

View File

@@ -1,17 +0,0 @@
FROM python:3.6-alpine
WORKDIR /app
COPY requirements.txt requirements.txt
RUN python -m venv venv
RUN venv/bin/pip install -r requirements.txt
RUN venv/bin/pip install gunicorn
COPY . /app
COPY main.py robots.txt ./
RUN chmod +x boot.sh
ENV FLASK_APP main.py
EXPOSE 80
ENTRYPOINT ["./boot.sh"]

29
data_store.py Normal file
View File

@@ -0,0 +1,29 @@
# Imports the Google Cloud client library
from google.cloud import datastore
def save_number(key, number):
# Instantiates a client
client = datastore.Client()
kind = 'Number'
name = key
task_key = client.key(kind, name)
task = datastore.Entity(key=task_key)
task['number'] = number
client.put(task)
print('Saved {}: {}'.format(task.key.name, task['number']))
def list_numbers():
client = datastore.Client()
query = client.query(kind='Number')
return list(query.fetch())
if __name__ == '__main__':
print(list_numbers())

View File

@@ -1,21 +0,0 @@
version: '3'
services:
emergelope:
container_name: emergelope
image: fergalmoran/emergelope
restart: unless-stopped
environment:
VIRTUAL_HOST: ${DOMAINS}
LETSENCRYPT_HOST: ${DOMAINS}
LETSENCRYPT_EMAIL: ${LETSENCRYPT_EMAIL}
ACCOUNT_SID: ${ACCOUNT_SID}
AUTH_TOKEN: ${AUTH_TOKEN}
NUMBER_LIST: ${NUMBER_LIST}
FROM_NUMBER: ${FROM_NUMBER}
CALL_XML: ${CALL_XML}
networks:
default:
external:
name: ${NETWORK}

View File

@@ -2,9 +2,11 @@ import json
import os
from urllib.request import urlopen
from flask import Flask, jsonify
from flask import Flask, jsonify, render_template
from twilio.rest import Client
from data_store import save_number
app = Flask(__name__)
account_sid = os.environ['ACCOUNT_SID']
auth_token = os.environ['AUTH_TOKEN']
@@ -22,8 +24,7 @@ def parse_json():
@app.route('/')
def home():
return 'Emergelope'
return render_template('index.html')
@app.route('/debug')
def debug():
@@ -40,6 +41,8 @@ def debug():
@app.route('/3c9d6880-107b-4c03-8356-2778b7bd8209')
def initiate_cluster_fuck():
return
client = Client(account_sid, auth_token)
sids = []
numbers = parse_json()

View File

@@ -1,2 +1,4 @@
Flask
twilio
Werkzeug
twilio
google-cloud-datastore

129
templates/index.html Normal file
View File

@@ -0,0 +1,129 @@
<!doctype html>
<html lang="en">
<head>
<title>Title</title>
<!-- Required meta tags -->
<meta charset="utf-8">
<meta name="viewport"
content="width=device-width, initial-scale=1, shrink-to-fit=no">
<!-- Bootstrap CSS -->
<link rel="stylesheet"
href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css"
integrity="sha384-Gn5384xqQ1aoWXA+058RXPxPg6fy4IWvTNh0E263XmFcJlSAwiGgFAW/dAiS6JXm"
crossorigin="anonymous">
</head>
<style>
/* Sticky footer styles
-------------------------------------------------- */
html {
position: relative;
min-height: 100%;
}
body {
/* Margin bottom by footer height */
margin-bottom: 60px;
}
.footer {
position: fixed;
bottom: 0;
width: 100%;
/* Set the fixed height of the footer here */
height: 60px;
line-height: 60px;
/* Vertically center the text there */
background-color: #f5f5f5;
}
/* Custom page CSS
-------------------------------------------------- */
/* Not required for template or sticky footer method. */
body > .container {
padding: 60px 15px 0;
}
.footer > .container {
padding-right: 15px;
padding-left: 15px;
}
code {
font-size: 80%;
}
</style>
<body>
<header>
<!-- Fixed navbar -->
<nav class="navbar navbar-expand-md navbar-dark fixed-top bg-dark">
<a class="navbar-brand"
href="#">Fixed navbar</a>
<button class="navbar-toggler"
type="button"
data-toggle="collapse"
data-target="#navbarCollapse"
aria-controls="navbarCollapse"
aria-expanded="false"
aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span>
</button>
<div class="collapse navbar-collapse"
id="navbarCollapse">
<ul class="navbar-nav mr-auto">
<li class="nav-item active">
<a class="nav-link"
href="#">Home
<span class="sr-only">(current)</span>
</a>
</li>
<li class="nav-item">
<a class="nav-link"
href="#">Link</a>
</li>
<li class="nav-item">
<a class="nav-link disabled"
href="#">Disabled</a>
</li>
</ul>
<form class="form-inline mt-2 mt-md-0">
<input class="form-control mr-sm-2"
type="text"
placeholder="Search"
aria-label="Search">
<button class="btn btn-outline-success my-2 my-sm-0"
type="submit">Search
</button>
</form>
</div>
</nav>
</header>
<!-- Begin page content -->
<main role="main" class="container">
</main>
<footer class="footer">
<div class="container">
<span class="text-muted">Place sticky footer content here.</span>
</div>
</footer>
<!-- Optional JavaScript -->
<!-- jQuery first, then Popper.js, then Bootstrap JS -->
<script src="https://code.jquery.com/jquery-3.2.1.slim.min.js"
integrity="sha384-KJ3o2DKtIkvYIK3UENzmM7KCkRr/rE9/Qpg6aAZGJwFDMVNA/GpGFF93hXpG5KkN"
crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.12.9/umd/popper.min.js"
integrity="sha384-ApNbgh9B+Y1QKtv3Rn7W3mgPxhU9K/ScQsAP7hUibX39j7fakFPskvXusvfa0b4Q"
crossorigin="anonymous"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/js/bootstrap.min.js"
integrity="sha384-JZR6Spejh4U02d8jOt6vLEHfe/JQGiRRSQQxSfFWpi1MquVdAyjUar5+76PVCmYl"
crossorigin="anonymous"></script>
</body>
</html>