Major refactor: Fix SQLite concurrency, remove rate limiting, simplify architecture
- Switch to single Gunicorn worker to eliminate SQLite database locking issues - Remove Flask-Limiter and all rate limiting complexity - Remove Cloudflare proxy setup and dependencies - Simplify configuration and remove unnecessary features - Update all templates and static files for streamlined operation - Clean up old files and documentation - Restore stable database from backup - System now runs fast and reliably without database locks
This commit is contained in:
@@ -116,6 +116,9 @@ input.button:hover {
|
||||
display: inline-block;
|
||||
min-width: 12px;
|
||||
text-align: center;
|
||||
border-radius: 2px;
|
||||
user-select: none;
|
||||
-webkit-user-select: none;
|
||||
}
|
||||
|
||||
.qa:hover {
|
||||
@@ -129,6 +132,13 @@ input.button:hover {
|
||||
border: 1px inset #808080;
|
||||
}
|
||||
|
||||
/* Quote controls wrapper for better mobile layout */
|
||||
.quote-controls {
|
||||
display: inline-block;
|
||||
white-space: nowrap;
|
||||
margin: 0 2px;
|
||||
}
|
||||
|
||||
.quote {
|
||||
font-family: 'Courier New', 'Lucida Console', monospace;
|
||||
font-size: smaller;
|
||||
@@ -187,10 +197,14 @@ footer {
|
||||
color: #c08000;
|
||||
text-decoration: none;
|
||||
font-weight: bold;
|
||||
padding: 2px 4px;
|
||||
margin-right: 4px;
|
||||
}
|
||||
|
||||
.quote-id:hover {
|
||||
text-decoration: underline;
|
||||
background-color: rgba(192, 128, 0, 0.1);
|
||||
border-radius: 2px;
|
||||
}
|
||||
|
||||
/* Dark Mode Toggle Button */
|
||||
@@ -415,14 +429,17 @@ html.dark-theme font {
|
||||
padding: 5px;
|
||||
}
|
||||
|
||||
/* Quote buttons - make them touch-friendly */
|
||||
/* Quote buttons - compact but touch-friendly */
|
||||
.qa {
|
||||
padding: 8px 12px;
|
||||
margin: 2px;
|
||||
min-width: 35px;
|
||||
font-size: 16px;
|
||||
padding: 6px 8px;
|
||||
margin: 1px 2px;
|
||||
min-width: 28px;
|
||||
min-height: 32px;
|
||||
font-size: 14px;
|
||||
display: inline-block;
|
||||
text-align: center;
|
||||
border-radius: 3px;
|
||||
line-height: 1.2;
|
||||
}
|
||||
|
||||
/* Quote text - ensure readability */
|
||||
@@ -430,40 +447,43 @@ html.dark-theme font {
|
||||
font-size: 14px;
|
||||
line-height: 1.4;
|
||||
word-wrap: break-word;
|
||||
padding: 8px;
|
||||
}
|
||||
|
||||
/* Quote header - adjust spacing */
|
||||
/* Quote header - adjust spacing and make more compact */
|
||||
.quote {
|
||||
font-size: 14px;
|
||||
margin-bottom: 8px;
|
||||
font-size: 13px;
|
||||
margin-bottom: 6px;
|
||||
line-height: 1.3;
|
||||
}
|
||||
|
||||
/* Form elements - make touch-friendly */
|
||||
input[type="text"], input[type="number"], textarea, select {
|
||||
width: 90%;
|
||||
padding: 10px;
|
||||
padding: 8px;
|
||||
font-size: 16px; /* Prevents zoom on iOS */
|
||||
margin: 5px 0;
|
||||
margin: 3px 0;
|
||||
}
|
||||
|
||||
input[type="submit"], button {
|
||||
padding: 10px 15px;
|
||||
font-size: 16px;
|
||||
margin: 5px;
|
||||
min-height: 44px; /* iOS touch target */
|
||||
padding: 8px 12px;
|
||||
font-size: 14px;
|
||||
margin: 3px;
|
||||
min-height: 40px; /* Reasonable touch target */
|
||||
}
|
||||
|
||||
/* Pagination - mobile friendly */
|
||||
#pagination {
|
||||
font-size: 14px;
|
||||
font-size: 13px;
|
||||
text-align: center;
|
||||
padding: 10px;
|
||||
padding: 8px;
|
||||
}
|
||||
|
||||
#pagination a {
|
||||
padding: 8px 12px;
|
||||
padding: 6px 10px;
|
||||
margin: 2px;
|
||||
display: inline-block;
|
||||
border-radius: 3px;
|
||||
}
|
||||
|
||||
/* ModApp table - horizontal scroll for wide tables */
|
||||
@@ -477,24 +497,35 @@ html.dark-theme font {
|
||||
width: auto;
|
||||
}
|
||||
|
||||
/* Hide less important columns on mobile */
|
||||
/* Compact view for smaller screens */
|
||||
@media screen and (max-width: 480px) {
|
||||
.mobile-hide {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.qa {
|
||||
padding: 6px 10px;
|
||||
font-size: 14px;
|
||||
min-width: 30px;
|
||||
padding: 5px 7px;
|
||||
font-size: 13px;
|
||||
min-width: 26px;
|
||||
min-height: 30px;
|
||||
margin: 1px;
|
||||
}
|
||||
|
||||
.quote {
|
||||
font-size: 12px;
|
||||
margin-bottom: 5px;
|
||||
}
|
||||
|
||||
.qt {
|
||||
font-size: 13px;
|
||||
padding: 6px;
|
||||
}
|
||||
|
||||
/* Stack quote controls for very small screens */
|
||||
.quote-controls {
|
||||
white-space: nowrap;
|
||||
overflow-x: auto;
|
||||
-webkit-overflow-scrolling: touch;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -503,22 +534,30 @@ html.dark-theme font {
|
||||
@media (hover: none) and (pointer: coarse) {
|
||||
/* This targets touch devices */
|
||||
.qa {
|
||||
padding: 10px 15px;
|
||||
margin: 3px;
|
||||
min-height: 44px;
|
||||
min-width: 44px;
|
||||
padding: 7px 10px;
|
||||
margin: 2px;
|
||||
min-height: 36px;
|
||||
min-width: 32px;
|
||||
border-radius: 4px;
|
||||
}
|
||||
|
||||
a {
|
||||
padding: 5px;
|
||||
margin: 2px;
|
||||
padding: 3px;
|
||||
margin: 1px;
|
||||
}
|
||||
|
||||
/* Ensure all interactive elements are large enough */
|
||||
/* Ensure all interactive elements are large enough but not oversized */
|
||||
button, input[type="submit"], input[type="button"] {
|
||||
min-height: 44px;
|
||||
min-width: 44px;
|
||||
padding: 10px;
|
||||
min-height: 40px;
|
||||
min-width: 40px;
|
||||
padding: 8px 12px;
|
||||
}
|
||||
|
||||
/* Theme toggle button - keep compact */
|
||||
#theme-toggle {
|
||||
min-height: 36px;
|
||||
min-width: 36px;
|
||||
padding: 6px 10px;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user