From 6a329e3ba9c3d87a55618cabb774c82aadf4b34c Mon Sep 17 00:00:00 2001
From: Tanner Collin
Date: Mon, 1 Dec 2025 21:07:01 +0000
Subject: [PATCH] Misc fixes
---
apiserver/server.py | 16 ++++++++++++----
apiserver/utils.py | 3 ++-
webclient/src/App.js | 4 ++--
webclient/src/Feed.js | 1 +
webclient/src/Submit.js | 2 +-
5 files changed, 18 insertions(+), 8 deletions(-)
diff --git a/apiserver/server.py b/apiserver/server.py
index 46e8e4f..5d50d56 100644
--- a/apiserver/server.py
+++ b/apiserver/server.py
@@ -20,7 +20,7 @@ import settings
import database
import search
import feed
-from utils import gen_rand_id
+from utils import gen_rand_id, NUM_ID_CHARS
from flask import abort, Flask, request, render_template, stream_with_context, Response
from werkzeug.exceptions import NotFound
@@ -60,6 +60,8 @@ def apistats():
'ref_list': ref_list,
'len_ref_list': len(ref_list),
'current_item': current_item,
+ 'total_stories': database.count_stories(),
+ 'id_space': 26**NUM_ID_CHARS,
}
return stats
@@ -111,7 +113,12 @@ def submit():
ref = url
existing = database.get_story_by_ref(ref)
- if existing and not DEBUG:
+
+ if existing and DEBUG:
+ ref = ref + '#' + str(time.time())
+ existing = False
+
+ if existing:
return {'nid': existing.sid}
else:
story = dict(id=nid, ref=ref, source=source)
@@ -129,9 +136,10 @@ def submit():
raise Exception('Invalid article')
except Exception as e:
- logging.error('Problem with article submission: {} - {}'.format(e.__class__.__name__, str(e)))
+ msg = 'Problem with article submission: {} - {}'.format(e.__class__.__name__, str(e))
+ logging.error(msg)
print(traceback.format_exc())
- return {'error': str(e)}, 400
+ return {'error': msg.split('\n')[0]}, 400
@flask_app.route('/api/')
diff --git a/apiserver/utils.py b/apiserver/utils.py
index a0073a3..9478533 100644
--- a/apiserver/utils.py
+++ b/apiserver/utils.py
@@ -16,8 +16,9 @@ def alert_tanner(message):
except BaseException as e:
logging.error('Problem alerting Tanner: ' + str(e))
+NUM_ID_CHARS = 4
def gen_rand_id():
- return ''.join(random.choice(string.ascii_uppercase) for _ in range(4))
+ return ''.join(random.choice(string.ascii_uppercase) for _ in range(NUM_ID_CHARS))
def render_md(md):
if md:
diff --git a/webclient/src/App.js b/webclient/src/App.js
index 87e7c7e..170a065 100644
--- a/webclient/src/App.js
+++ b/webclient/src/App.js
@@ -99,8 +99,6 @@ function App() {
Hacker News, Reddit, Lobsters, and Tildes articles rendered in reader mode.
-
-
{fullScreenAvailable &&
!isFullScreen ?
@@ -108,6 +106,8 @@ function App() {
} />
}
+
+
} />
diff --git a/webclient/src/Feed.js b/webclient/src/Feed.js
index 3482355..a109d2c 100644
--- a/webclient/src/Feed.js
+++ b/webclient/src/Feed.js
@@ -100,6 +100,7 @@ function Feed({ updateCache }) {
Connection error? Click to expand.
{error}
+ {stories && Loaded feed from cache.
}
}
{stories ?
diff --git a/webclient/src/Submit.js b/webclient/src/Submit.js
index e0ae501..3d4b834 100644
--- a/webclient/src/Submit.js
+++ b/webclient/src/Submit.js
@@ -45,7 +45,7 @@ function Submit() {
ref={inputRef}
/>
- {progress ? progress : ''}
+ {progress && {progress}
}
);
}