18 次代码提交 45546bea7c ... badd96c0f0

作者 SHA1 备注 提交日期
  Pi badd96c0f0 rename vars in .env file to avoid conflict with sqlpage vars 3 周之前
  Pi 7dda0cccfe import env vars into namespace 3 周之前
  Pi 3fed73379b load config from environment 3 周之前
  Pi 001b4da9de remove sensitive information 3 周之前
  Pi 45546bea7c add theming and systemd service 3 周之前
  Pi bbfa6c22e0 add theming and systemd service 3 周之前
  Pi c910dc4063 refactor sms-sendmail.sh to read better 3 周之前
  Pi 23b6dc0521 refactor sms-sendmail.sh to read better 3 周之前
  Pi e94a53c8c6 remove empty file 3 周之前
  Pi 87f95284cb remove empty file 3 周之前
  Pi 2f2b5b9f6f add init script for db schema 3 周之前
  Pi eeba9e3fda add init script for db schema 3 周之前
  Pi 2f6dbe8678 show contact name if exists 3 周之前
  Pi 55728a61d7 show contact name if exists 3 周之前
  Pi d4a90142fc fix form and guard against nonsense sms 3 周之前
  Pi e1abe8d856 fix form and guard against nonsense sms 3 周之前
  Pi b769e7d998 proof of concept 3 周之前
  Pi dfb97a1cf0 proof of concept 3 周之前
共有 4 个文件被更改,包括 24 次插入21 次删除
  1. 2 0
      run.sh
  2. 1 1
      site/conv.sql
  3. 15 15
      sms-sendmail.sh
  4. 6 5
      webhook.py

+ 2 - 0
run.sh

@@ -1,5 +1,7 @@
 #!/usr/bin/env bash
 sqlpage/target/debug/sqlpage -w site -c config/sqlpage.yaml &
 . .venv/bin/activate
+. .env
+export DB WH_HOST WH_PORT
 python3 webhook.py &
 wait

+ 1 - 1
site/conv.sql

@@ -1,4 +1,4 @@
-SET ":me" = COALESCE($me, '5138996314');
+SET ":me" = COALESCE($me, sqlpage.environment_variable('DEFAULT_ME'));
 SET ":peer" = COALESCE(CASE WHEN $peer = '' THEN NULL ELSE $peer END, NULL);
 
 SET ":title" = CASE WHEN :peer IS NULL THEN 'Conversations' ELSE 'Messages ('||COALESCE((SELECT name FROM contacts WHERE number = '+1'||:peer), :peer)||')' END;

+ 15 - 15
sms-sendmail.sh

@@ -1,37 +1,37 @@
 #!/bin/bash
+#
+# Requires: maildrop, postfix, python3
+#
+
+set -euo pipefail
+
 FROM="$1"
 TO="$2"
 MESSAGE="$3"
-CODE="25203"
 
-if [ -z "$TO" ] || [ -z "$FROM" ] || [ -z "$MESSAGE" ]
-then
-	exit 1
-fi
+. .env
 
-sender="wyn3-14@shandan.one"
 recipient="sms@voip.ms"
 subject="$TO.$CODE.$FROM"
 
 printf 'To:\r\nFrom:\r\nContent-Type:\r\n\r\n%s\r\n' "$MESSAGE" \
 	| reformail \
 		-I"To: $recipient" \
-		-I"From: $sender" \
+		-I"From: $SENDER" \
 		-I"Subject: $subject" \
 		-I"Content-Type: text/plain" -d1 \
-	| sendmail -f "$sender" -t
+	| sendmail -f "$SENDER" -t
 
 export MESSAGE FROM TO
 python3 <<'EOF'
 import sqlite3
 from os import environ as env
-params = [ env.get(x) for x in ('FROM', 'TO', 'MESSAGE') ]
-conn = sqlite3.connect('sms.db')
-cursor = conn.cursor()
-cursor.execute("""
+for x in ('FROM', 'TO', 'MESSAGE', 'DB'):
+    globals()[x] = env.get(x)
+with sqlite3.connect(DB) as conn:
+    cursor = conn.cursor()
+    cursor.execute("""
 INSERT INTO outbox (sent, "from", "to", payload)
 VALUES (CURRENT_TIMESTAMP, '+1'||?, '+1'||?, ?)
-""", params)
-conn.commit()
-conn.close()   
+""", [FROM, TO, MESSAGE])
 EOF

+ 6 - 5
webhook.py

@@ -1,12 +1,13 @@
+from datetime import datetime
 from bottle import Bottle, request, response
+from os import environ as env
 import sqlite3
 import json
-from datetime import datetime
 
 app = Bottle()
-DB = "sms.db"
-HOST="192.168.0.20"
-PORT=25203
+
+for x in ('DB', 'WH_HOST', 'WH_PORT'):
+    globals()[x] = env.get(x)
 
 conn = sqlite3.connect(DB)
 cur = conn.cursor()
@@ -31,6 +32,6 @@ VALUES (?, CURRENT_TIMESTAMP, ?, ?)
     return "ok"
 
 try:
-	app.run(host=HOST, port=PORT, debug=True)
+	app.run(host=WH_HOST, port=WH_PORT, debug=True)
 finally:
 	conn.close()