This commit is contained in:
Tobias Reisinger 2021-03-05 01:12:34 +01:00
commit ed79985fba
5 changed files with 83 additions and 0 deletions

30
.drone.yml Normal file
View file

@ -0,0 +1,30 @@
kind: pipeline
name: default
steps:
- name: generate
image: knovus/drone-openfaas
settings:
template: python3-http
- name: build
image: plugins/docker
settings:
username:
from_secret: docker_registry_user
password:
from_secret: docker_registry_pass
registry: registry.serguzim.me
repo: registry.serguzim.me/faas/${DRONE_REPO_NAME}
context: ./build/${DRONE_REPO_NAME}/
dockerfile: ./build/${DRONE_REPO_NAME}/Dockerfile
tags: latest
- name: deploy
image: knovus/drone-openfaas
settings:
deploy: true
url: https://faas.serguzim.me
password:
from_secret: openfaas_password
registry: registry.serguzim.me

2
.gitignore vendored Normal file
View file

@ -0,0 +1,2 @@
build/
template/

39
src/handler.py Normal file
View file

@ -0,0 +1,39 @@
from bs4 import BeautifulSoup
import numpy as np
import requests
def handle(event, context):
page = requests.get('https://courses.wiso.uni-tuebingen.de/matrix/matrix-of-the-day')
soup = BeautifulSoup(page.text, 'html.parser')
matrix_tag = soup.find_all('div', class_='matrix')[0].contents
matrix_msg = matrix_tag[1].contents[0]
matrix_split = matrix_tag[2].split('\n')
while '' in matrix_split:
matrix_split.remove('')
for i in range(len(matrix_split)):
char = matrix_split[i]
if char == '&':
matrix_split[i] = ' '
if char == '\\\\':
matrix_split[i] = ';'
a = np.matrix(''.join(matrix_split[1:-1]).rstrip(';'))
result = {}
result['message'] = matrix_msg
result['matrix'] = str(a)
result['determinant'] = np.linalg.det(a)
return {
"statusCode": 200,
"body": result,
"headers": {
"content-type": "application/json",
},
}

3
src/requirements.txt Normal file
View file

@ -0,0 +1,3 @@
beautifulsoup4==4.9.3
numpy==1.20.1
requests==2.25.1

9
stack.yml Normal file
View file

@ -0,0 +1,9 @@
provider:
name: openfaas
gateway: https://faas.serguzim.me
functions:
determinant-of-the-day:
lang: python3-http
handler: ./src
image: registry.serguzim.me/faas/determinant-of-the-day